<div dir="ltr">Well, here's what I have, an object named [allpass.rev~]<div><br></div><div>I compiled a file name "allpass.rev~.pd_darwin", I have a allpass.rev~-help.pd, all works fine here in the mac, and all I had to do was having a  <span style="background-color:rgb(246,247,249);color:rgb(29,33,41);font-family:"SF Optimized",system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;font-size:12px;letter-spacing:-0.12px">setup_allpass0x2erev_tilde()</span><span style="background-color:rgb(246,247,249);color:rgb(29,33,41);font-family:"SF Optimized",system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;font-size:12px;letter-spacing:-0.12px"> </span> function in the code.</div><div><br></div><div>Now, what am I missing? Is this not gonna work elsewhere? Say, Windows, Linux?</div><div><br></div><div>cheers</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-10-17 16:41 GMT-02:00 IOhannes m zmölnig <span dir="ltr"><<a href="mailto:zmoelnig@iem.at" target="_blank">zmoelnig@iem.at</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 10/17/2017 07:44 PM, Jonathan Wilkes via Pd-list wrote:<br>
><br>
>> and how come underline works just fine?<br>
> Because Pd's loader mechanism searches for the symbol "${libname}_setup",<br>
> where "${libname}" is the name of the library being loaded.<br>
</span>> If you make sure that "${libname}" is drawn from the set of characters thatcan appear in a C function name, then users will be able to load your object<br>
<span class="">> in all the ways that Pd provides (using declare, using an absolute path name,<br>
> etc.)<br>
> If instead you use characters that cannot appear in a C function name, you<br>
> either limit the ways that users can load that library or require complicated<br>
> workarounds like hexloader in order to make the library generally loadable.<br>
><br>
<br>
</span>for what it is worth, hexloader is not *very* complicated.<br>
<br>
what most people seem to forget is, that hexloader really consists of<br>
two parts, solving two different problems:<br>
- allowing file names that would otherwise be forbidden (by the<br>
underlying filesystem)<br>
- allowing setup functions names that would otherwise be forbidden (by<br>
the C-standard)<br>
<br>
the allowed characters in C functions are well defined, e.g. [1]<br>
the allowed characters in filenames are filesystem dependent, but a good<br>
overview can be found at [2].<br>
<br>
both problems are somewhat similar, as they try to encode the forbidden<br>
characters into something not forbidden.<br>
they both use the same method: replacing the forbidden characters with a<br>
hex-representation.<br>
<br>
now the good news is, that if your object name only falls into one<br>
category, then you only need to deal with that part.<br>
<br>
the part of the hexloader implementation that is built into Pd, only<br>
tackles the 2nd problem (function names).<br>
since C function names are much more restrictive than file names, this<br>
usually covers most problems (though obviously not all).<br>
<br>
so, if you want an external that contains characters allowed on the<br>
filesystem but forbidden as (part of) a function name, you only need to<br>
provide a hexloadable name for the setup function, and don't have to<br>
worry about ugly filenames that nobody understands.<br>
<br>
furthermore, you don't even need to remember the way those hexloadable<br>
setup function name is to be constructed. simply compile your external<br>
into "foo.bar.pd_linux", start Pd with "-verbose" and try to instantiate<br>
[foo.bar].<br>
Pd will fail to load the external (as it cannot find and call the setup<br>
function), but will display the setup name it tried to find when setting<br>
the log-level to "all".<br>
<span class=""><br>
>> What other easy options do I have besides "_"?<br>
> Why do you want to avoid using an underscore?<br>
<br>
</span>+1<br>
<br>
<br>
gamdsr<br>
IOhannes<br>
<br>
<br>
[1] <a href="http://www.c4learn.com/c-programming/c-variable-nameing-rules/" rel="noreferrer" target="_blank">http://www.c4learn.com/c-<wbr>programming/c-variable-<wbr>nameing-rules/</a><br>
[2] <a href="https://en.wikipedia.org/wiki/Filename#Reserved_characters_and_words" rel="noreferrer" target="_blank">https://en.wikipedia.org/wiki/<wbr>Filename#Reserved_characters_<wbr>and_words</a><br>
<br>
<br>______________________________<wbr>_________________<br>
<a href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list<br>
UNSUBSCRIBE and account-management -> <a href="https://lists.puredata.info/listinfo/pd-list" rel="noreferrer" target="_blank">https://lists.puredata.info/<wbr>listinfo/pd-list</a><br>
<br></blockquote></div><br></div>