[PD] [PD-announce] jit_expr 0.1: Just in time compiled expr/expr~/fexpr~

Marco Matteo Markidis mm.markidis at gmail.com
Sun Mar 18 22:49:45 CET 2018


Hi Alex,

jit_expr.pd_darwin is in the same folder of help file. Usually it works...
On my machine, Deken puts the externals in Pd/externals and in my path I
have Pd/externals.

Anyway, putting all stuff in verbose I get in console:

/Users/dis/Documents/Pd/externals/jit_expr/jit_expr.pd_darwin:
dlopen(/Users/dis/Documents/Pd/externals/jit_expr/jit_expr.pd_darwin, 10):
Symbol not found: _futimens
  Referenced from:
/Users/dis/Documents/Pd/externals/jit_expr/jit_expr.pd_darwin
(which was built for Mac OS X 10.13)
  Expected in: /usr/lib/libSystem.B.dylib
 in /Users/dis/Documents/Pd/externals/jit_expr/jit_expr.pd_darwin

So there is futimens function that is not found; indeed looking at symbols
present in my /usr/lib/libSystem.B.dylib futimens is not present. So I
suspect that passing from OSX 10.10.5 (my os) to OSX 10.13 (the one you use
to compile) something changes.

Finally, I tried to compile jit_expr. However Cmake 3.10.2 does not find
LLVMConfig.cmake or llvm-config.cmake. I have several llvm installed on my
machine with macports, but even using find command I do not find manually
any of these two files.

Best,
Marco

Ps. I found a LLVM-Config.cmake but I don't know how to add this path or
set a LLVM_DIR.

2018-03-18 19:22 GMT+01:00 Alex <x37v.alex at gmail.com>:

> Hi Marco,
>
> HMM, where did you install jit_expr.pd_darwin ? Deken initially sets up a
> directory for you if you tell it to, I believe. I think on mac this is in
> ~/Documents/Pd/extra ?
> Can you tell me what is in your "path" settings, on mac the "file" menu
> item might be just called "Pd"? I'm not sure [I'm on a linux machine right
> now]
> File -> preferences -> path
>
> -Alex
>
>
> On Sun, Mar 18, 2018 at 10:10 AM, Marco Matteo Markidis <
> mm.markidis at gmail.com> wrote:
>
>> Sorry,
>> I forgot to let you know all the important informations.
>>
>> Pd vanilla 48.1 64 bit, OSX, downloaded from deken binaries and sources.
>> help file doesn't work opening from pd browser and directly double-clicking.
>>
>> I tried even copy pd.lib in the same folder of help & pd.darwin, but
>> without success.
>>
>> 2018-03-18 18:04 GMT+01:00 Alex <x37v.alex at gmail.com>:
>>
>>> Hi Marco,
>>>
>>> Which version of PD are you running? Which OS? I expect you downloaded
>>> jit_expr from deken?
>>> Does the jit_expr help file work if you open it in the pd browser? help
>>> -> browse -> jit_expr -> double click on the jit_expr-help.pd file?
>>>
>>> -Alex
>>>
>>>
>>> On Sun, Mar 18, 2018 at 9:49 AM, Marco Matteo Markidis <
>>> mm.markidis at gmail.com> wrote:
>>>
>>>> Dear Alex,
>>>>
>>>> very happy about this new feature... and incredibly very happy about
>>>> hearing just-in-time compiling dsp graph!
>>>> Anyway, I get only various jit/expr, jit/expr~, jit/fexpr~ couldn't
>>>> create...
>>>> I tried to change the [declare -lib] in [declare -path], jit_expr in
>>>> jit/expr in declare, looking to have the right 64 bit pd but nothing...
>>>>
>>>> Best,
>>>> Marco
>>>>
>>>> 2018-03-18 17:34 GMT+01:00 Alex <x37v.alex at gmail.com>:
>>>>
>>>>> Alexandre,
>>>>>
>>>>> I don't think it has had enough usage to be called "stable" yet, but I
>>>>> could see that happening down the line. In fact, I could see eventually JIT
>>>>> compiling the entire DSP graph.. but of course that would be significant
>>>>> work. At this point I just need more people to try it out and make sure it
>>>>> would be up to it.
>>>>>
>>>>> -Alex
>>>>>
>>>>>
>>>>> On Sun, Mar 18, 2018 at 9:23 AM, Alexandre Torres Porres <
>>>>> porres at gmail.com> wrote:
>>>>>
>>>>>> if this is stable, wouldn't it be a nice idea to propose it as an
>>>>>> update to the expr~ family of objects? since it is basically an optimized
>>>>>> clone?
>>>>>>
>>>>>> cheers
>>>>>>
>>>>>> 2018-03-18 13:08 GMT-03:00 Alex <x37v.alex at gmail.com>:
>>>>>>
>>>>>>> jit_expr is a clone of the pure data expr/expr~/fexpr~ objects. It
>>>>>>> just-in-time compiles its expressions so they should be much more optimized
>>>>>>> than the original. If all works as designed, they should use less CPU than
>>>>>>> the equivalent vanilla, non-expr, patching and have a significant CPU
>>>>>>> advantage over the original expr objects.
>>>>>>>
>>>>>>> I've put the external, compiled for 64-bit Mac-OS and 64-bit Linux,
>>>>>>> up on deken: in pd, go to help menu, find externals, search for "jit_expr".
>>>>>>>
>>>>>>> After installing the external you should be able to change any of
>>>>>>> your expr family of objects to just in time compile by loading the library,
>>>>>>> [declare -lib jit_expr], and then prefixing the object name with "jit/",
>>>>>>> for example [jit/fexpr~ $x1[0] + $y1[-1]].
>>>>>>>
>>>>>>> I believe they are feature complete with the originals but I'd love
>>>>>>> to know if there is anything that I'm missing or any bugs that you discover.
>>>>>>> I'm not exactly sure how to profile pure data patches. If anyone has
>>>>>>> a good approach or original expr~/fexpr~ patches that use a lot of CPU you
>>>>>>> can share, let me know.
>>>>>>>
>>>>>>> Compiling in the object takes a little bit of time, so the initial
>>>>>>> instantiation of the object/expression will be a bit slower than the
>>>>>>> original, FYI.
>>>>>>>
>>>>>>> Please report any issues here:
>>>>>>> https://github.com/x37v/jit-expr/issues
>>>>>>>
>>>>>>>
>>>>>>> BTW, if you're curious to see the llvm assembly produced by your
>>>>>>> expression, send the |print( message into the left most inlet of your
>>>>>>> object then check out the pd console.
>>>>>>>
>>>>>>>
>>>>>>> I would love help building Windows and 32-bit Linux versions of the
>>>>>>> externals. I'm guessing we could also do raspi/arm builds but we'd need
>>>>>>> some changes to the source code as it uses llvm and explicitly generates
>>>>>>> code for x86 right now.
>>>>>>>
>>>>>>> The source code can be found in the git repo:
>>>>>>> https://github.com/x37v/jit-expr
>>>>>>>
>>>>>>> -Alex Norman
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Pd-announce mailing list
>>>>>>> Pd-announce at lists.iem.at
>>>>>>> https://lists.puredata.info/listinfo/pd-announce
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Pd-list at lists.iem.at mailing list
>>>>>>> UNSUBSCRIBE and account-management -> https://lists.puredata.info/li
>>>>>>> stinfo/pd-list
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Pd-list at lists.iem.at mailing list
>>>>>> UNSUBSCRIBE and account-management -> https://lists.puredata.info/li
>>>>>> stinfo/pd-list
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Pd-list at lists.iem.at mailing list
>>>>> UNSUBSCRIBE and account-management -> https://lists.puredata.info/li
>>>>> stinfo/pd-list
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Ho cambiato l'indirizzo email in mm.markidis at autistici.org . Se non è
>>>> un problema, scrivimi a questo nuovo indirizzo email.
>>>>
>>>> I changed my email address in mm.markidis at autistici.org . If it is ok
>>>> for you, please write me to this new email address.
>>>>
>>>> _______________________________________________
>>>> Pd-list at lists.iem.at mailing list
>>>> UNSUBSCRIBE and account-management -> https://lists.puredata.info/li
>>>> stinfo/pd-list
>>>>
>>>>
>>>
>>
>>
>> --
>> Ho cambiato l'indirizzo email in mm.markidis at autistici.org . Se non è un
>> problema, scrivimi a questo nuovo indirizzo email.
>>
>> I changed my email address in mm.markidis at autistici.org . If it is ok
>> for you, please write me to this new email address.
>>
>> _______________________________________________
>> Pd-list at lists.iem.at mailing list
>> UNSUBSCRIBE and account-management -> https://lists.puredata.info/li
>> stinfo/pd-list
>>
>>
>


-- 
Ho cambiato l'indirizzo email in mm.markidis at autistici.org . Se non è un
problema, scrivimi a questo nuovo indirizzo email.

I changed my email address in mm.markidis at autistici.org . If it is ok for
you, please write me to this new email address.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20180318/b9b9b59a/attachment-0001.html>


More information about the Pd-list mailing list