[PD] declare vs. namespaces - current best practice

Alexandre Torres Porres porres at gmail.com
Thu Jan 4 22:14:02 CET 2018


2018-01-02 12:37 GMT-03:00 Christof Ressi <christof.ressi at gmx.at>:

> what do you mean by [declare cyclone]?
>
> in case you mean [declare -stdpath cyclone]:
>

I meant adding a library as path or a lib, either in -stdpath / -path /
-stdlib / -lib  (is there a difference in behaviour between them?)


> a) this would only work if cyclone is in the user's stdpath (which you
> can't know as a library writer)
>

why?


> b) it only adds the cyclone folder to the search path. writing [gate] is a
> gamble because iemlib could be earlier in the search path (or the single
> binary library could've been loaded).
>
>
> Gesendet: Dienstag, 02. Januar 2018 um 15:58 Uhr
> Von: "Alexandre Torres Porres" <porres at gmail.com>
> An: "Christof Ressi" <christof.ressi at gmx.at>
> Cc: "João Pais" <jmmmpais at gmail.com>, pd-list at mail.iem.at
> Betreff: Re: [PD] declare vs. namespaces - current best practice
>
> questions
>
> 2018-01-02 8:02 GMT-03:00 Christof Ressi <christof.ressi at gmx.at[mailto:
> christof.ressi at gmx.at]>:Hi, I think in your case you shouldn't need
> [declare] at all. [declare -stdlib somelib] makes the assumption that
> 'somelib' is installed in one of Pd's standard paths. This was maybe true
> for Pd extended where all libraries were in the /extra folder but actually
> it could be any other folder (which the user added to their search paths).
>
> IMHO, best practice is to explicitly list your dependencies and have the
> user set them up correctly.
>
> regarding namespaces:
>
> In an abstraction library I would always use them if I can (unfortunately
> it's not possible with externals which are part of a single binary
> library). It eliminates the possibility that a wrong abstraction/external
> is called. My favourite example:
> Say that for some weird reason you're using [gate] from cyclone. If a
> users happens to have iemlib earlier in their search path, all your
> abstractions will have iemlib's [gate] object instead - which works exactly
> the other way around! This actually happened to a friend of mine :-D.
>
> won't [declare cyclone] force a priority of it over iemlib? If not,
> shouldn't it?
>
> now, for related discussions on declare/standard paths, see
> https://github.com/pure-data/pure-data/pull/205[https:
> //github.com/pure-data/pure-data/pull/205] & https://github.com/pure-
> data/pure-data/pull/183[https://github.com/pure-data/pure-data/pull/183]
>
> cheers,
> happy 2018
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20180104/76bac82f/attachment.html>


More information about the Pd-list mailing list