This is a common limitation of all DSP that uses external functions (typically written in C/C++ ). The current LLVM backend can simply not use them because it does not contain the complete needed C/C++ compiler chain.
We have an experimental "libclang" based backend that does the following compilation chain : Faust DSP ==> C backend ==> libclang ==> LLVM IR ==> JIT ==> executable code, that can handle this kind of use case, and that will be activated as soon as we find a reliable way to compile "libclang" on the different platforms. Stéphane Le 22 juin 2015 à 12:43, Ebm Boy <[email protected]> a écrit : > Hi Faust list, > > I'm using libfaust.a from Faust version 2.0.a33, LLVM version 3.3 and Csound > version 6.05 > I have a problem when using foreign functions in csound. > Victor Lazzarini has ported an on-the-fly compiler for faust scripts in > csound which works like this: > > giInst faustcompile{{ > magicFct = ffunction(float cbrtf|cbrt|cbrtl (float), <math.h>,""); > process = 27:magicFct; > > }},"-vec -lv 1" > > iF1, asig faustaudio giInst > > and the other csound opcodes can use the signal (constant=3 here) elsewhere. > > This code compiles but this one doesn't: > > giInst faustcompile{{ > magicValue = ffunction(int getValue(), "myLocalHeader.h",""); > process = magicValue; > > }},"-vec -lv 1" > > LLVM ERROR: Program used external function 'getValue' which could not be > resolved! > > no matter what I put instead of "myLocalHeader.h" (absolute/relative path > relative to current directory/to libfaust.a/to csound/bin/to usr/bin ...) > where myLocalHeader.h contains > > int getValue(void); > const int value = 7; > > int getValue (void){ > return value; > } > > I was told that faust2 was the source of a similar problem with max. > Is is also the case here ? > > Note that > > magicValue=fconstant(int value, "myLocalHeader.h"); > and > magicValue=fvariable(int value, "myLocalHeader.h"); > > compile but the returned value is 0 instead of 7. > > ------------------------------------------------------------------------------ > Monitor 25 network devices or servers for free with OpManager! > OpManager is web-based network management software that monitors > network devices and physical & virtual servers, alerts via email & sms > for fault. Monitor 25 devices for free with no restriction. Download now > http://ad.doubleclick.net/ddm/clk/292181274;119417398;o_______________________________________________ > Faudiostream-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/faudiostream-users ------------------------------------------------------------------------------ Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical & virtual servers, alerts via email & sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o _______________________________________________ Faudiostream-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/faudiostream-users
