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

Alexandre Torres Porres porres at gmail.com
Sun Mar 18 17:23:36 CET 2018


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/
> listinfo/pd-list
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20180318/cbe7cb9a/attachment.html>


More information about the Pd-list mailing list