[PD] [Scope~] (was Re: can signal inlets that aren't the main inlet have float or message methods?)

katja katjavetter at gmail.com
Fri Apr 8 22:55:40 CEST 2016


Alexandre, it seems you found a good approach to gradually phase out
upper case (when not needed to avoid name clash). If you change class
name and aliases the C code don't forget to swap upper / lower case in
the symlinks too, which are created for Linux under 'cyclone extra
targets' in the Makefile.

Katja

On Fri, Apr 8, 2016 at 10:29 PM, Alexandre Torres Porres
<porres at gmail.com> wrote:
> 2016-04-08 16:11 GMT-03:00 Jonathan Wilkes <jancsika at yahoo.com>:
>>
>> if the user isn't loading cyclone by default, and their patch does this:
>> [declare -lib cyclone/Scope~]
>
>
> Ok, but what would that do in the first place? I don't think I get [declare]
> yet, can you find a specific individual binary or object inside a library?
>
> Then, cyclone does not come as a library for a long time, and "Scope~" is
> not part of a "-lib"
>
>>
>> If by "traded" you mean you renamed the binary to scope~.pd_linux, this
>> won't load anymore.
>
>
> Nope, I changed stuff in the code as well
>
> I might be wrong, but it seems possible to change it and maintain backwards
> compatibility and get rid of this annoying Capital letter, but I'm
> consulting you guys to be sure.
>
>
>>
>>  you still need  "Append" to differentiate from the internal "append"
>> class, so you can't change that one.
>
>
> Things, to my surprise, things work in a new and weird way to me in Pd
> Vanilla. Any class you call that is not the internal one overwrites the
> internal library. I discussed this on a previous thread these days (Name
> conflicts "class overwritten; old one renamed 'x_aliased').
>
> The way things are in cyclone nowadays, and I had given the example of
> "line~" is that it has the "Line~" official and legacy name version but also
> calls the objects as alias "line~" or "cyclone/line~"
>
>>
>> Also-- why is there a class_addcreator to add "cyclone/*" for each class?
>> That _should_ be superfluous...
>
>
> It's not for every class, but these one with name clashing issues.
>
> So, anyway. How things are now, if I call "Line~", internally it will find
> the alias "line~" and load it overwritting vanilla's line~. That sucks cause
> they're not compatible. And basically you had this Capital letter in the
> first place to avoid name clashing and it was clashing it anyway... (yeah,
> quite ironic).
>
> It seems that this system would allow you to load cyclone/line~ in Pd
> Extended and Pd-L2ork, because in both of them, there is no internal
> overwritting going on. So latest version of extended (0.43) introduced this
> system with the alias. You can call [cyclone/uzi] and [cyclone/line~] for
> example, but the latter won't overwritte the internal vanilla's line~
>
> By the "Uzi" is another example like "Scope~", some Capital letter for some
> reason that is not relevant anymore... and yeah, Uzi comes with the aliases
> "uzi" e "cyclone/uzi".
>
> But back to "Line~"
>
> if I remove the alias "cyclone/line~" I can now call [Line~] or
> [cyclone/line~] in Pd without overwritting the internal, and being able to
> differentiate between [line~] (internal) and [cyclone/line~] external. This
> is the same case as with Append. I think we should keep the weird animal
> "Line~" as an alias and an option over [cyclone/line~].
>
> But Uzi and Scope~ are in another category, they don't overwrite internals.
> In Pd-L2ork you have an old version of Scope~ without the alias, so you
> won't be able to load it as "scope~" or "cyclone/scope~", but [Uzi] is
> updated, so you can call it as [uzi] or [cyclone/uzi]. I can only test this
> in Mac Os, but with the version you provided today, I can do it. Can you do
> it in linux and windows?
>
> Anyway, I assume that if they did it in Pd Extended, it was for the reason
> that the trick worked for every system, or they wouldn't introduce this
> madness or massive inconsistency. And my thought is, if you can do it one
> way to the other, you can also do it the other way around... if I can call
> "uzi" as an alias, then I can call "Uzi" as an alias as well.
>
> So, getting Uzi as an example, if I switch everything to the opposite like
> this:
>
> void uzi_setup(void) { uzi_class = class_new(gensym("uzi") (...)
> class_addcreator((t_newmethod)uzi_new, gensym("Uzi"), A_DEFFLOAT, 0);
> class_addcreator((t_newmethod)uzi_new, gensym("cyclone/Uzi"), A_DEFFLOAT, 0)
> (...)
>
> void Uzi_setup(void) {  uzi_setup(); }
>
> Plus the code to "uzi.c" and compiled the object as uzi.pd_darwin
>
> Well, I can call it as [uzi], or as [Uzi] and [cyclone/Uzi]
>
> If I don't have the "cyclone/Uzi" alias, then that doesn't work.
>
>> I'd actually be in favor of breaking that compatibility if there were a
>> way to get rid of all those capital letters from cyclone.
>
>
> And I'd actually second you on that, and we don't need those capital letters
> for "uzi" or "scope~", so, at least in these two cases, there's a pretty
> simple way to get rid of it.
>
> But, as I'm saying, I think there is a way to change this and keep the alias
> for backwards compatibility.
>
> Cheers
>
> _______________________________________________
> Pd-list at lists.iem.at mailing list
> UNSUBSCRIBE and account-management ->
> https://lists.puredata.info/listinfo/pd-list
>



More information about the Pd-list mailing list