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

Alex x37v.alex at gmail.com
Sun Mar 18 17:08:08 CET 2018

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:

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:

-Alex Norman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20180318/2f4e96e2/attachment-0001.html>
-------------- next part --------------
Pd-announce mailing list
Pd-announce at lists.iem.at

More information about the Pd-list mailing list