[PD-dev] libpd search paths

Christof Ressi christof.ressi at gmx.at
Wed Feb 13 16:18:24 CET 2019


> Actually I built the externals against pd version 0.49-0 and it makes sense that they load properly with the same version.

actually, Pd externals which only use the public API in m_pd.h are fully backwards compatible, e.g. many ancient externals from Pd extended still work with Pd 0.49.

> node-libpd comes with an arm libpd binary which seems to come from an older version of pd

this is just a wild guess, but maybe the libpd binary was compiled with PDINSTANCE? if yes, externals which are not compiled with PDINSTANCE *and* use the global predefined Pd symbols (s_symbol, s_float, etc.) - instead of gensym() - won't load.
 
Christof 

Gesendet: Mittwoch, 13. Februar 2019 um 15:04 Uhr
Von: "Joseph Larralde" <joseph.larralde at gmail.com>
An: "Giulio Moro" <giuliomoro at yahoo.it>, "Lucas Cordiviola" <lucarda27 at hotmail.com>, pd-dev <pd-dev at lists.iem.at>
Betreff: Re: [PD-dev] libpd search paths

Mmmh you might have found the clue ...
Actually I built the externals against pd version 0.49-0 and it makes sense that they load properly with the same version.
node-libpd comes with an arm libpd binary which seems to come from an older version of pd (added 1 year ago).
I can already tell that it's not an architecture issue because everything is working on my pi : the addon is loading and running abstractions when used in a node program, and pd is loading and running my externals.
Only loading my externals from node-libpd doesn't work.
Still trying to get a local version of node-libpd to work ... then I'll replace the libpd.so with one that I'll build from the latest version.
I can't see another explanation.
Do you know something about incompatibilities between different versions of pd ?
The libpd.so used by the addon is probably not older than 0.47
 
Le 13/02/19 à 13:58, Giulio Moro a écrit :

If loading abstractions works, then it is possible that the external you are trying to load is somehow incompatible. Was it built for this specific architecture, against the same exact version of PureData? Are the externals relying on any external library? Are those libraries - if any - available on the computer you are running this on?
I'd recommend you run a bare-minimum raw libpd program to make sure the externals are loaded properly. 
For instance, you can build and run the program in libpd/samples/c/pdtest/ and verify that it can load your externals successfully, so at least you can temporarily rule out the node.js wrapper as the cause of the issue.
 
Giulio
On Wednesday, 13 February 2019, 12:32:55 GMT, Joseph Larralde <joseph.larralde at gmail.com>[mailto:joseph.larralde at gmail.com] wrote:
 
Hi Lucas,
>From everything you listed, only loading an abstraction from the same
dir worked.
I'll investigate in the addon's code itself and see if I can get it to
work using `libpd_add_to_search_path()` somewhere.

Also, I might precise that usually I declare my externals using their
folder name as a prefix, in this case [jl/gbend~ <name_of_table>]
This frees me from having to use [declare] and avoids eventual name
conflicts.
Could this be an issue because of the library name not being the
external's name when using [declare] ?

Thanks for your suggestions,
Joseph

Le 13/02/19 à 11:58, Lucas Cordiviola a écrit :
> Just a guess:
>
> -- Can you load abstractions on those dirs?
>
> if not:
>
> -- Can you load an abstraction in the same dir as your "main-patch.pd"
>
> If yes:
>
> -- Can you load the [external] in the same dir as "main-patch.pd"
>
>
>
> You can also test if [declare] is working. First with abstractions then
> with [external].
>
>
> Mensaje telepatico asistido por maquinas.
>
> On 2/13/2019 6:42 AM, Joseph Larralde wrote:
>> Hi,
>>
>> A friend of mine wrote this libpd wrapper for nodejs (which is
>> actually a work in progress) :
>> https://github.com/ircam-jstools/node-libpd[https://github.com/ircam-jstools/node-libpd]
>> It's running fine on a pi3 I'm using ATM.
>>
>> Now I need to use some externals I wrote, and I can't get them to load
>> properly.
>> But, they're loading when I start my test patch using pd itself.
>>
>> Before diving into his wrapper code, I'd like to make sure I'm placing
>> the externals in the right path.
>> What makes me think it should be working is this page :
>> https://github.com/libpd/libpd/wiki/misc[https://github.com/libpd/libpd/wiki/misc]
>> And also the fact that in his code, he's calling the init() function
>> from PdBase, which is itself calling the libpd_init() function.
>>
>> I tried putting the externals into /usr/local/lib/pd-externals,
>> /usr/local/lib/pd/extra, /usr/lib/pd/extra and ~/.local/lib/pd/extra.
>> But still no luck ...
>>
>> Can anyone confirm I'm not mistaken ?
>>
>> Cheers,
>> Joseph
>>
>>
>>
>> _______________________________________________
>> Pd-dev mailing list
>> Pd-dev at lists.iem.at[mailto:Pd-dev at lists.iem.at]
>> https://lists.puredata.info/listinfo/pd-dev[https://lists.puredata.info/listinfo/pd-dev]




_______________________________________________
Pd-dev mailing list
Pd-dev at lists.iem.at[mailto:Pd-dev at lists.iem.at]
https://lists.puredata.info/listinfo/pd-dev
 
_______________________________________________ Pd-dev mailing list Pd-dev at lists.iem.at https://lists.puredata.info/listinfo/pd-dev[https://lists.puredata.info/listinfo/pd-dev]





More information about the Pd-dev mailing list