2010/9/30 Stephen Pair <stephen@pairhome.net>:
On Wed, Sep 29, 2010 at 11:41 PM, Igor Stasenko <siguctua@gmail.com> wrote:
On 30 September 2010 06:20, Schwab,Wilhelm K <bschwab@anest.ufl.edu> wrote:
One really crazy idea: inline C. Â Is there any way that one could put C code into a method, have it compiled and captured somehow as part of the image? Â Perhaps I am underestimating Cog and will soon not need to bother with stuff like this, but a recent addition was
void LogOnePlus(double * data, unsigned long size) /* Â Â Â Â Add one and take log10() over the buffer; in-place transformation! */ { Â Â Â Â for(unsigned long i=0; i<size; i++){ Â Â Â Â data[i] = log10(data[i]+1); Â Â Â Â } }
That's a simple calculation, but do it millions of times and it adds up. Â Even if Cog is sufficiently far reaching to translate such things, there are still times when C/C++ does a far nicer job of translating formulas than does Smalltalk. Â Like I said, it's a crazy idea, and if I have to choose, I'd rather have callbacks :)
Of course its possible. After porting C parser/compiler into smalltalk :) Or perhaps some meta-language which looks like C, but which easier to translate to native code.
Suddenly, this reminds me ST/X... Nicolas
Indeed. Â It might be less work to just make the Smalltalk run as fast as the equivalent C code (using a bit of dynamic, run time optimization). - Stephen _______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project