[PD] PureData to C/C++ language

Ludwig Maes ludwig.maes at gmail.com
Mon Sep 27 10:38:08 CEST 2010


I think that if we could write a Pd => GIMPLE converter (hence a Pd
frontend) for gcc, that gcc could do quite a lot of optimization for
us.
I could be wrong but I have the impression that every message between
Pd objects is sent as an abstracted structure and not optimized for
architecture to the extent compilers do (could be wrong, but would be
positively amazed if I am).

This ability would further not only the goals of optimization freaks
but also those of dataflow programming in general (stepping into C or
other is like admitting -whether correct or not- dataflow is
insufficient, at least in practice as long as we cant compile...)

Also people would be able to write general software in dataflow
languages. Whether it be drivers, pd-developer code, ...

We could bootstrap Pd for example, so that users who at first use Pd
for audio, then start to code in GEM later could also start to adapt
their interface or fix inner workings of Pd, in my view the original
poster is a vote towards this end.

The opensource fanatics fear could be that software written in Pd,
could be shared in a non-opensource way.
I have the impression this is the reason none of the devellopers work on this:
http://puredata.info/docs/faq/standalone
states:

"This is currently not possible to compile a patch into a binary
program. Pd patch files are always plain text and need the Pd program
to run.

However, the main reason why Max/MSP and similar allow you to create a
standalone application is to distribute a patch without having to pay
license fees to the distributor. Since Pure Data is Free Software, you
can just distribute your patch along with the needed Pd binary.

On Mac OS X, Pd-extended 0.41.4 makes it easy to make such a
distribution. You can make a standalone .app using the "Make app from"
menu options in the File menu."

First it is mentioned that it is currently not possible (without any
concrete reference to existant intention or not)
Then it inverts the reason why Pd does or does not have this to the
reason why Max/MSP have mechanisms to distribute without having to pay
the distributor (being Max/MSP?) as opposed to the patch creator?

Without speaking for the original poster, I view his question as a
desire for compiling dataflow (in his example Pd).
He clearly states he searches for a way to do this without having to
recode the entire patch (devaluating his original work in Pd itself).
That a similar question resides in Frequently (!) Asked Questions
confirms my suspicion that there is a user base which would benefit
from such possibility.

I think as soon as the GIMPLE Front End has materialized enough
(currently a Google Summer of Code project) would be a very good time
to design a Pd => Gimple converter (Front End). (GIMPLE is the
intermediate language AST GCC uses, C++ and other Front Ends convert
to GIMPLE so that language independent optimization can take place).

I am searching for people who would be interested in helping this make
happen, having a list of emails of interested people could be a good
start.

Every year computer science students around the world have to design a
simple compiler in their education programme. Chances are a few of
them are interested in Pd already. Some might be allowed to write a Pd
front end by their teachers. We Pd users are also not incapable to do
this.

Lets get together and make this happen!

Greetings!

On 25 September 2010 20:45, ankur gandhe <ankool.g at gmail.com> wrote:
> I was working on a Sound renderer project made in PD and to reduce the
> latency, we wanted to write the module in C, implementing all the features.
> Is their a simple way of doing so?
> If so, please do help
>
> Ankur
>
>
>
> _______________________________________________
> Pd-list at iem.at mailing list
> UNSUBSCRIBE and account-management ->
> http://lists.puredata.info/listinfo/pd-list
>
>



More information about the Pd-list mailing list