<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2016-04-08 16:11 GMT-03:00 Jonathan Wilkes <span dir="ltr"><<a href="mailto:jancsika@yahoo.com" target="_blank">jancsika@yahoo.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:16px;background-color:rgb(255,255,255)"><div><span>if the user isn't </span>loading cyclone by default, and their patch does this: [declare -lib cyclone/Scope~]</div></div></blockquote><div><br></div><div>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?</div><div><br></div><div>Then, cyclone does not come as a library for a long time, and "Scope~" is not part of a "-lib"</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:16px;background-color:rgb(255,255,255)"><div dir="ltr">If by "traded" you mean you renamed the binary to scope~.pd_linux, this won't load anymore.</div></div></div></blockquote><div><br></div><div>Nope, I changed stuff in the code as well</div><div><br></div><div>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.</div><div> </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:16px;background-color:rgb(255,255,255)"><div dir="ltr"> you still need  "Append" to differentiate from the internal "append" class, so you can't change that one.</div></div></blockquote><div><br></div><div>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').</div><div><br></div><div>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~"</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:16px;background-color:rgb(255,255,255)"><div dir="ltr">Also-- why is there a class_addcreator to add "cyclone/*" for each class? That _should_ be superfluous...</div></div></blockquote><div><br></div><div>It's not for every class, but these one with name clashing issues.</div><div><br></div><div>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).</div><div><br></div><div>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~<br></div><div><br></div><div>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".</div><div><br></div><div>But back to "Line~"</div><div><span class=""><br></span></div><div><span class="">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~].</span></div><div><span class=""><br></span></div><div><span class="">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]. </span>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?</div><div><span class=""><br></span></div><div><span class="">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.</span></div><div><span class=""><br></span></div><div><span class="">So, getting Uzi as an example, if I switch everything to the opposite like this:</span></div><div>







<p class=""><i><span class="">void</span><span class=""> uzi_setup(</span><span class="">void</span><span class="">) </span>{ <span class="">uzi_class = class_new(gensym(</span><span class="">"uzi"</span><span class="">) (...) </span><span class="">class_addcreator((t_newmethod)uzi_new, gensym(</span><span class="">"Uzi"</span><span class="">), A_DEFFLOAT, </span><span class="">0</span><span class="">);<br></span><span class="">class_addcreator((t_newmethod)uzi_new, gensym(</span><span class="">"cyclone/Uzi"</span><span class="">), A_DEFFLOAT, </span><span class="">0</span><span class="">) (...)</span></i></p><p class=""><i><span class="">void</span><span class=""> Uzi_setup(</span><span class="">void</span><span class="">) </span><span class="">{</span>  uzi_setup(); }</i></p></div><div><span class="">Plus the code to "uzi.c" and compiled the object as uzi.pd_darwin</span></div><div><span class=""><br></span></div><div><span class="">Well, I can call it as [uzi], or as [Uzi] and [cyclone/Uzi]</span></div><div><span class=""><br></span></div><div><span class="">If I don't have the "cyclone/Uzi" alias, then that doesn't work.</span></div><div><span class=""><br></span></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:16px"><div dir="ltr">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.</div></div></blockquote></div><div> </div><div>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.</div><div><br></div><div>But, as I'm saying, I think there is a way to change this and keep the alias for backwards compatibility.</div><div><br></div><div>Cheers</div></div></div></div>