<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px"><div><span>My point is that if you leave these things as an exercise to the user, then the user loses.  The rules for how things load are too confusing, and Pd traditionally has too few tools for the user to inspect path order, aside from trying every single possibility.</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;"><span><br></span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;"><span>A user shipping an abstraction library with abstraction helpers that load with impunity... is not actually
 possible.</span><span>  That means the author of a library of abstractions is subject to whatever search path the parent canvases have set for it, which will _supercede_ the abstraction's directory. "Use your own name-mangling" isn't a serious solution.</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;"><br><span></span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;"><span>-Jonathan<br></span></div> <div class="qtdSeparateBR"><br><br></div><div style="display: block;" class="yahoo_quoted"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;"> <div style="font-family: HelveticaNeue, Helvetica Neue,
 Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;"> <div dir="ltr"> <font face="Arial" size="2"> On Tuesday, October 21, 2014 4:40 AM, Frank Barknecht <fbar@footils.org> wrote:<br> </font> </div>  <br><br> <div class="y_msg_container">Hi,<br clear="none"><br clear="none">maybe I didn't make clear enough, that of course some of these fail to load the<br clear="none">abstractions they may try to load: That's intentional and the whole point of<br clear="none">this routine.<br clear="none"><br clear="none">The interesting point that in my experience many Pd users are not aware of, is<br clear="none">just this: The directory of a calling patch (0*.pd in this case) is not part of<br clear="none">the search path for abstractions used by this patch! <br clear="none"><br clear="none">This not only applies to abstractions, but also to other material like<br clear="none">soundfiles, textfile, textures etc. because there is only one search
 path.<br clear="none"><br clear="none">If you compare 01_loadhere.pd and 03_loadhere-declare-dot.pd you see:<br clear="none"><br clear="none">[declare -path .] is a way out here. As Jonathan has analysed most cleverly and<br clear="none">as I have shown in a more frugal way: With the directory of the toplevel patch<br clear="none">added to its search path it becomes possible to load here.pd from an abstraction<br clear="none">as intended.<br clear="none"><br clear="none">A side effect is a possible nameclash, illustrated in both.pd. This makes it<br clear="none">tricky to use other objects in the library. Using a prefix or more<br clear="none">path-mangling is necessary. Updated examples in the attachement should<br clear="none">illustrate this as well. <br clear="none"><br clear="none">It is left as an exercise for the reader to implement a mylib/meta-metaload.pd that <br clear="none">loads "metaload both" while being called from a toplevel patch like
 <br clear="none">[meta-metaload both].<br clear="none"><br clear="none">Have fun,<div class="yqt4203538616" id="yqtfd24845"><br clear="none">-- <br clear="none"> Frank Barknecht                                     _ ______footils.org__<br clear="none"></div><br><div class="yqt4203538616" id="yqtfd07394">_______________________________________________<br clear="none"><a shape="rect" ymailto="mailto:Pd-list@lists.iem.at" href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list<br clear="none">UNSUBSCRIBE and account-management -> <a shape="rect" href="http://lists.puredata.info/listinfo/pd-list" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><br clear="none"></div><br><br></div>  </div> </div>  </div> </div></body></html>