Work can be many things. Complicated equations are often better expressed in other languages, and where the line falls between having to deal with another language and tool set and study results (which one ultimately has to do anyway) vs. using Pharo's debugger to plow into what can be (can't believe I'm saying this<g>) a clumsy parenthesis-laden soup is hard to say. Smalltalk is great at control flow, interfacing (GUI and otherwise) - just about anything but looping over millions of bytes/ints/floats.
The more I think about Cog and NativeBoost, the more I suspect I will find that many snippets like below will not be needed. One concern though: is there any amount of work that has to be done before something gets translated/cached as native code? Depending on count, cache size, granularity of the cached structures, it *might* be better to write the C and put it in a library so there is no question what will run as native code. Bill ________________________________________ From: [email protected] [[email protected]] On Behalf Of Stephen Pair [[email protected]] Sent: Thursday, September 30, 2010 11:33 AM To: [email protected] Subject: Re: [Pharo-project] NativeBoost and Cog. A working protype. On Wed, Sep 29, 2010 at 11:41 PM, Igor Stasenko <[email protected]<mailto:[email protected]>> wrote: On 30 September 2010 06:20, Schwab,Wilhelm K <[email protected]<mailto:[email protected]>> 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. 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 [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
