hi all,
last release was a joke. really. from now on it's serious. thanks to aymeric, rama, yves & artem for testing.
pdp 0.13 is an unstable intermediate release based on packet forth (libtile/libpdp). if you use pd/pdp/pidip to make a living, stick with 0.12 for a while. especially libtile (the image processing engine) is still very experimental.
gemheads, see at the bottom of the page.
stuff below is a lotta verbose yada.
PF
the only real extra feature 0.13 brings is packet forth. packet forth (pf) is like mole, only more highlevel. a forth interpreter working with packets (and strings and network streams and other subprocesses etc...)
pf's core (packets + forth interpreter) is now reasonably stable. it's been a while since i found a bug there, but there are still a whole lot of small bugs in the modules. i'm hunting them down atm. major pain is that 3dp (opengl drawing) still does not work.
DOC
one thing you can do with the forth is to write pd objects that can communicate with other pd/pdp/pidip objects. in the same spirit as Thomas' py/pyext objects for python. the advantage of pf is that the language is tailored for real-time use, python is not.
it also has support for video, audio (there are dsp2pdp~ and pdp@dsp objects that enable you to convert audio streams to pdp vector packets) and other data types. vectors can be operated on using matrix operations and other functions from gsl. yeah, it's just the old pdp in a new jacket.
the disadvantage is that pf is of course a forth, and not even a standard forth.
now pf is linked to guile already, and a link to python will hopefully happen soon after most of the bugs for the current features are fixed, so there is hope.
i'm working on some docs to explain how to get started. this is in doc/pf.xml (convert this to html using 'xmlto xhtml pf.xml'). it's pretty raw.
to see some example objects written in pf, have a look at the files in /usr/local/lib/pdp/script/puredata
these can be loaded in pd with [pdp <name>] you can load an arbitrary script with [pf <filename>] 3dp works like this too [3dp <object>], but is not working atm.
eventually, i plan to write a whole lot of extra pdp modules, there is a lot of functionality in pf which just needs to be combined and exported as pdp modules. there's not much of them right now, because the language has been continuously in flux, breaking everything again. in 0.14 it will be frozen and backward compatible. the pdp 0.12 api (which pidip uses) will remain there until the end of the fishing season.
BUILD
last week i kicked out the autotools and replaced them with a very small perl script. most of the configure&build process is the same as it was before, only that libpdp is now 2-pass (libpdp compile+install and pf+plugins compile+install). to do this in one go, use
make all_install
after running (./bootstrap and) ./configure in the libpdp dir.
this builds and installs libpdp and the plugins. by default all the plugins try to build, and only those that succeed will be installed. this seems like the least hassle. it's very straightforward. each plugin needs its set of libraries. most is the same as pdp 0.12.x
if something fails, you can check build/build.log for details. all the error messages of the build are dumped there. most build problems seem to be fixed now. if you encounter any, please email me the build.log file.
CVS
distribution is still CVS only. see http://zwizwa.fartit.com/pd/pdp/doc/ for details.
GCC
small note on libtile (small virtual machine for image tile processing).
this makes extensive use of some gcc vector extensions and agressive inlining and optimization. some versions of gcc seem to choke on this. i use gcc.real (GCC) 3.3.4 (Debian 1:3.3.4-6sarge1) which seems to work, but i had to navigate around a bug.
problems are reported with these versions: 3.2.2 (crashes, or at least runs into some inconsistency) 3.3.3 warning: can't inline 3.4.? warning: can't inline
i didn't find a pattern yet.
this sucks, i know, and i'm trying to find a workaround. the -Werror flag is removed so it at least builds. 'can't inline' in libtile really is an error, since inlining is the whole point of libtile ('codelets').
FINK & CYGWIN
i tried to build libpdp on OSX/fink, which works for the most part. but since libtile does not work yet, there's not too much you can do with it.
same for cygwin. compiling the core seems to pose no problems. i think the rest has been done by carmen (pdp base library). so, a windows port is definitely in reach. now somebody needs to just do it (write native input/output modules).
GEM
for the platform-dependent stuff it might be wise to start piggybacking on GEM, a kind advice i've been ignoring for a while.
seriously, talking about gem. i think the moment has come to connect a headless pf (libpdp) to gem. this should be really straightforward. the only thing i'd need is a point in the control flow, where i can execute some opengl statements in the current context.
then in a later step all the data types (and processors?) of GEM could be mapped to pf's or wrapped as abstract data types, intertwining them a bit more. this would lead to a situation where 'the user' could choose an interface or a policy or hair style (gem or pdp) and all the functionality would be available. pf uses pdp/pidip's data format, so when pf is connected to gem, pdp/pidip is too. (livido will come soon).
that should be enough pf promo for today. as usual, if you encounter a problem, don't hesitate to report it.
cheers, tom
Hallo, Tom Schouten hat gesagt: // Tom Schouten wrote:
last release was a joke. really. from now on it's serious. thanks to aymeric, rama, yves & artem for testing.
pdp 0.13 is an unstable intermediate release based on packet forth (libtile/libpdp). if you use pd/pdp/pidip to make a living, stick with 0.12 for a while. especially libtile (the image processing engine) is still very experimental.
Some quick notes:
Something seems to be wrong with the installation of libtile. I used "--prefix=/usr" for this, and everything is installed there just fine, but then I cannot load pdp anymore:
PDP: pure data packet PDP: version 0.13.0 (pf) can't load codelet library /usr/local/lib/codelets.so: /usr/local/lib/codelets.so: cannot open shared object file: No such file or directory pd_gui: pd process exited Segmentation fault
Note, that codelets.so is in /usr/lib/codelets.so
Removein libtile again lets me load pdp, but there are some messages I don't understand:
PDP: pure data packet PDP: version 0.13.0 (pf) error e_type loading pdp's puredata support module <runtime>: e_type: invalid argument type in primitive throw <DS> <2> "/usr/lib/pdp/script/" #<undef> <RS> <4> ->#xt:jmp ->#xt:leave ->#xt:loadscript ->#xt:leave #0 0x082334b8 in empty-poly-word #1 0x0823a2e8 in load #2 0x0823ab78 in load-puredata #3 0x0822ed18 in interpreter
Is this bad? Basic pdp seems to work, although I don't have luck with loading pf-scripts:
$ cd /usr/lib/pdp/script $ pd -lib pdp [...]
pf doc ... couldn't create pf doc.pf ... couldn't create
Now trying [pdp doc.pf]
PDP: pure data packet PDP: version 0.13.0 (pf) /usr/lib/pdp/script/setup.pf:521: e_type: invalid argument type in primitive throw <2> #<-1:invalid> "/plugins/" <2> ->#xt:jmp ->#xt:leave Fatal error. Exiting. pd_gui: pd process exited
There were some errors in build.log:
running pconfigure Thu Aug 26 01:03:18 CEST 2004
uname -a : Linux fliwatut.scifi 2.6.4 #1 Tue Mar 23 18:14:22 CET 2004 i686 GNU/Linux
In file included from /tmp/cvs/libpdp/plugins/gmp/bignum.c:24:
/tmp/cvs/libpdp/plugins/gmp/bignum.h:25:17: gmp.h: No such file or directory
make[3]: *** [bignum.d] Error 1
/tmp/cvs/libpdp/plugins/livido/livido.c: In function get_parameter': /tmp/cvs/libpdp/plugins/livido/livido.c:44: error:
a' undeclared (first use in this function)
/tmp/cvs/libpdp/plugins/livido/livido.c:44: error: (Each undeclared identifier is reported only once
/tmp/cvs/libpdp/plugins/livido/livido.c:44: error: for each function it appears in.)
/tmp/cvs/libpdp/plugins/livido/livido.c: In function print_plugin': /tmp/cvs/libpdp/plugins/livido/livido.c:71: error:
plugin_param' undeclared (first use in this func
tion)
/tmp/cvs/libpdp/plugins/livido/livido.c: In function load_plugin': /tmp/cvs/libpdp/plugins/livido/livido.c:136: warning: initialization makes pointer from integer with out a cast /tmp/cvs/libpdp/plugins/livido/livido.c:146: error:
handle' undeclared (first use in this function)
/tmp/cvs/libpdp/plugins/livido/livido.c:152: error: plugin_class' undeclared (first use in this fun ction) /tmp/cvs/libpdp/plugins/livido/livido.c:157: error:
livido_plugin_class' undeclared (first use in t
his function)
/tmp/cvs/libpdp/plugins/livido/livido.c:157: error: parse error before "return"
make[3]: *** [livido.o] Error 1
I won't be able to do more testing until the weekend, unfortunatly.
Frank Barknecht _ ______footils.org__
hi frank,
Some quick notes:
Something seems to be wrong with the installation of libtile. I used "--prefix=/usr" for this, and everything is installed there just fine, but then I cannot load pdp anymore:
can't load codelet library /usr/local/lib/codelets.so: /usr/local/lib/codelets.so: cannot open shared object file: No such file or directory
ok, that's a thing i didn't try yet. some hardcoded prefix stuff. but the crash after that shouldn't be there :)
2 points
Note, that codelets.so is in /usr/lib/codelets.so
Removein libtile again lets me load pdp, but there are some messages I don't understand:
PDP: pure data packet PDP: version 0.13.0 (pf) error e_type loading pdp's puredata support module <runtime>: e_type: invalid argument type in primitive throw <DS> <2> "/usr/lib/pdp/script/" #<undef> <RS> <4> ->#xt:jmp ->#xt:leave ->#xt:loadscript ->#xt:leave #0 0x082334b8 in empty-poly-word #1 0x0823a2e8 in load #2 0x0823ab78 in load-puredata #3 0x0822ed18 in interpreter
Is this bad?
that's because it can't load libtile, which is a requirement for pdp. if there is an error like this during the startup process, pf will not work properly. so i will make this an exit().
1 point
There were some errors in build.log:
running pconfigure Thu Aug 26 01:03:18 CEST 2004 uname -a : Linux fliwatut.scifi 2.6.4 #1 Tue Mar 23 18:14:22 CET 2004 i686 GNU/Linux In file included from /tmp/cvs/libpdp/plugins/gmp/bignum.c:24: /tmp/cvs/libpdp/plugins/gmp/bignum.h:25:17: gmp.h: No such file or directory
that's libgmp, gnu multiprecision library. it's not really necessary. basicly just for doing some tricks with big numbers and permutations.
make[3]: *** [bignum.d] Error 1 /tmp/cvs/libpdp/plugins/livido/livido.c: In function `get_parameter':
livido is not working yet. no points here.
I won't be able to do more testing until the weekend, unfortunatly.
you're score at 3 bugs atm. you're good, you should participate in the official pdp bug finding contest. :)
thanks
tom
Hallo, Tom Schouten hat gesagt: // Tom Schouten wrote:
i'm working on some docs to explain how to get started. this is in doc/pf.xml (convert this to html using 'xmlto xhtml pf.xml'). it's pretty raw.
I can't find this in my CVS checkout from some minutes ago. "find" cannot find it as well.
Frank Barknecht _ ______footils.org__
On Thu, 26 Aug 2004, Frank Barknecht wrote:
Hallo, Tom Schouten hat gesagt: // Tom Schouten wrote:
i'm working on some docs to explain how to get started. this is in doc/pf.xml (convert this to html using 'xmlto xhtml pf.xml'). it's pretty raw.
I can't find this in my CVS checkout from some minutes ago. "find" cannot find it as well.
ok, forgot to add it to CVS. cd libtile && cvs update -d
On Thu, Aug 26, 2004 at 12:25:46AM +0200, Tom Schouten wrote:
pdp 0.13 is an unstable intermediate release based on packet forth (libtile/libpdp).
Hi, I want to say about my little test of new version of pdp, I hope that this can help in the development.
No error in compilation (GCC 3.3.4 - slackware 10) unless that the ./configure scripts did not find libpng, but I have resolved compiling and installing libpng-1.2.6.
When I try to load the library I read this message:
PDP: pure data packet
PDP: version 0.13.0 (pf)
error e_file loading pdp's puredata support module
/usr/lib/pdp/script/image.pf:3: e_file: /usr/lib/pdp/plugins/image.so: cannot open shared object file: No such
file or directory
in primitive loadplugin
<DS> <0>
<RS> <6> ->#xt:jmp ->#xt:leave ->#xt:leave #stream:/usr/lib/pdp/script/puredata.pf ->#xt:r> ->#xt:jmp
#0 0x08217450 in stream-interpret
#1 0x082177e0 in loadscript
#stream:/usr/lib/pdp/script/puredata.pf
#2 0x08217ea0 in load
#3 0x08218700 in load-puredata
#4 0x0820c8c0 in interpreter
and if I try to run (random chosen) the pdp_plasma.pd patch (5.reference) when I bang on the pdp_plasma object I read this message:
error converting image/P411/16/320/240/3 (155) to bitmap/yv12/* <runtime>: e_undef: unbound symbol 'convert' in primitive throw <DS> <0> <RS> <6> ->#xt:jmp ->#xt:leave ->#xt:leave #stream:/usr/lib/pdp/script/puredata.pf ->#xt:r> ->#xt:jmp #0 0x08217450 in stream-interpret #1 0x082177e0 in loadscript #stream:/usr/lib/pdp/script/puredata.pf #2 0x08217ea0 in load #3 0x08218700 in load-puredata #4 0x0820c8c0 in interpreter pdp_xv: autocreate window pdp_xvideo: grabbed port 145 on adaptor 0
the object pdp_plasma not work, the xv window is black (but PD does not go in crash).
Lazzaro
hi lazzaro,
PDP: pure data packet PDP: version 0.13.0 (pf) error e_file loading pdp's puredata support module /usr/lib/pdp/script/image.pf:3: e_file: /usr/lib/pdp/plugins/image.so: cannot open shared object file: No such file or directory
probably it did not find libtile when trying to build image.so
maybe try 'ldconfig' after the './configure && make && make install' in libtile, before you compile pdp plugins.
please let me know if this fixes the problem, then i will add it automaticly.
and if I try to run (random chosen) the pdp_plasma.pd patch (5.reference) when I bang on the pdp_plasma object I read this message:
error converting image/P411/16/320/240/3 (155) to bitmap/yv12/* <runtime>: e_undef: unbound symbol 'convert' in primitive throw
this is because the 'image.so' is not loaded. it has the image conversion routines.
thanks for the report, lazzaro.
just a small remark. the libtile 'codelets.so' library has a hardcoded path /usr/local/lib/codelets.so (one of the bugs from frank's email) which i can't just remove atm.
if you install to another prefix, please make sure /usr/local/lib/codelets.so exists (by copying or linking)
sorry for that one, but i will fix it in a couple of days together with some other build problems for libtile.
cheers tom
Hallo, Tom Schouten hat gesagt: // Tom Schouten wrote:
if you install to another prefix, please make sure /usr/local/lib/codelets.so exists (by copying or linking)
Yeah, linking fixed it. On to checking out the xml file ...
Frank Barknecht _ ______footils.org__
On Thu, Aug 26, 2004 at 08:47:42PM +0200, Tom Schouten wrote:
probably it did not find libtile when trying to build image.so
maybe try 'ldconfig' after the './configure && make && make install' in libtile, before you compile pdp plugins.
please let me know if this fixes the problem, then i will add it automaticly.
Yes it fix the problem.
Now when I start pd the output is (I imagine) the correct one:
PDP: pure data packet PDP: version 0.13.0 (pf) PF: modules loaded PF: opengl modules loaded
and if I try to run the pdp_plasma.pd patch (5.reference)
now it work correctly
but because I am a fan of pidip I have rebuilded and reinstalled pidip and when I use a pidip obyect returns the same message of error:
error converting image/P411/16/320/240/3 (213) to image/P411/16/*/*/1 <runtime>: e_inval: can't create image/P411/16/320/240/1 in primitive image:convert
<no backtrace> (where the number in the parenthesis autoincrement to every frame).
Since I have not listened something on this argument in list, perhaps I have mistaken to configure pidip, I will try with more attention.
if you install to another prefix, please make sure /usr/local/lib/codelets.so exists (by copying or linking)
Yes, I have nstalled in standard slackware prefix (/usr) I have copied it in /usr/local/lib/ and it is OK.
Lazzaro
maybe try 'ldconfig' after the './configure && make && make install' in libtile, before you compile pdp plugins.
please let me know if this fixes the problem, then i will add it automaticly.
Yes it fix the problem.
thanks.
Now when I start pd the output is (I imagine) the correct one:
PDP: pure data packet PDP: version 0.13.0 (pf) PF: modules loaded PF: opengl modules loaded
this is indeed how it should be
but because I am a fan of pidip I have rebuilded and reinstalled pidip and when I use a pidip obyect returns the same message of error:
error converting image/P411/16/320/240/3 (213) to image/P411/16/*/*/1 <runtime>: e_inval: can't create image/P411/16/320/240/1
Since I have not listened something on this argument in list, perhaps I have mistaken to configure pidip, I will try with more attention.
not your fault, i should have mentioned this in the release email (this info is hidden in libpdp/README in the pdp package)
to compile pidip, you currently need some trick:
if you compile pdp with --enable-pf, (this replaces some parts of pdp 0.12.x with stuff from libpdp/pf) pidip will only work if you change the pdp path in pidip's configure.ac
from: <blabla-src>/pdp to <blabla-src>/pdp/libpdp
appending 'libpdp' directs pidip to the 0.12.x api adaptor, and not the new 0.13.x api which is libpdp/pf, and incompatible with pidip 0.12.x
On Fri, Aug 27, 2004 at 03:31:24PM +0200, Tom Schouten wrote:
not your fault, i should have mentioned this in the release email (this info is hidden in libpdp/README in the pdp package)
Yes, I remember your email.
from: <blabla-src>/pdp to <blabla-src>/pdp/libpdp
but it for me (pidip 0.12.16) dont work.
Lazzaro
On Fri, 27 Aug 2004, Lazzaro N. Ciccolella wrote:
On Fri, Aug 27, 2004 at 03:31:24PM +0200, Tom Schouten wrote:
not your fault, i should have mentioned this in the release email (this info is hidden in libpdp/README in the pdp package)
Yes, I remember your email.
from: <blabla-src>/pdp to <blabla-src>/pdp/libpdp
but it for me (pidip 0.12.16) dont work.
ok, i'll check.
On Fri, 27 Aug 2004, Lazzaro N. Ciccolella wrote:
On Fri, Aug 27, 2004 at 03:31:24PM +0200, Tom Schouten wrote:
not your fault, i should have mentioned this in the release email (this info is hidden in libpdp/README in the pdp package)
Yes, I remember your email.
from: <blabla-src>/pdp to <blabla-src>/pdp/libpdp
but it for me (pidip 0.12.16) dont work.
i found the prob. it is fixed in cvs. i just tested with pidip 0.12.16 and it seems to work.
cheers tom
if you compile pdp with --enable-pf, (this replaces some parts of pdp 0.12.x with stuff from libpdp/pf) pidip will only work if you change the pdp path in pidip's configure.ac
from: <blabla-src>/pdp to <blabla-src>/pdp/libpdp
didn't react on time to this, but now, quiet at the base, i should have mentionned that with the latest PiDiP, you don't need to edit configure.ac anymore ( this time is over ), you can do a :
./configure --with-pdp=<blabla-src>/pdp/libpdp
oops, not even documented.
cheers, sevy
and if I try to run the pdp_plasma.pd patch (5.reference)
now it work correctly
but because I am a fan of pidip I have rebuilded and reinstalled pidip and when I use a pidip obyect returns the same message of error:
error converting image/P411/16/320/240/3 (213) to image/P411/16/*/*/1 <runtime>: e_inval: can't create image/P411/16/320/240/1 in primitive image:convert
<no backtrace> (where the number in the parenthesis autoincrement to every frame).
Since I have not listened something on this argument in list, perhaps I have mistaken to configure pidip, I will try with more attention.
i'm sorry that pidip doesn't support pf yet, cause i don't have any time for this.
any help is welcome.
suerte, sevy