[Pharo-project] NativeBoost and Cog. A working protype.

Igor Stasenko siguctua at gmail.com
Fri Oct 1 04:09:05 EDT 2010


On 1 October 2010 10:33, Fernando olivero <fernando.olivero at usi.ch> wrote:
> Just a thought,
>
> I would say that Lukas Helvetia framework could be used here,  to cleanly embed C++, C or whatever you like  syntax into the existing Smalltalk ambient.
>

Yes, I like the idea of using Helvetia. I would be cool to invent some
kind of platform-neutral assembler language.
If one likes to write C or C++ , it would be cool too.

> So in the background NativeBoost would behave more uniformly, because everything in the end is smalltalk code.
>
> Fernando
>
>
> On Oct 1, 2010, at 8:39 AM, Schwab,Wilhelm K wrote:
>
>> Sig,
>>
>> I'm pointing out that "do it all in Smalltalk" has limits, both in syntax (C++ is generally a better formula translator than Smalltalk; Smalltalk is better at expressing just about anything else) and in performance, unless you can stop boxing/unboxing the floats, which it sounds like you can't.
>>
>> One performance penalty that I look forward to suffering is to have an external library calling into Pharo to do function evaluations.  In most cases, the number of operations will be small and the convenience of having the code in the image will be most welcome.
>>
>> Bill
>>
>>>> ......
>
>
>
>>>> ________________________________________
>>>> From: pharo-project-bounces at lists.gforge.inria.fr [pharo-project-bounces at lists.gforge.inria.fr] On Behalf Of Stephen Pair [stephen at pairhome.net]
>>>> Sent: Thursday, September 30, 2010 11:33 AM
>>>> To: Pharo-project at lists.gforge.inria.fr
>>>> Subject: Re: [Pharo-project] NativeBoost and Cog. A working protype.
>>>>
>>>> On Wed, Sep 29, 2010 at 11:41 PM, Igor Stasenko <siguctua at gmail.com<mailto:siguctua at gmail.com>> wrote:
>>>> On 30 September 2010 06:20, Schwab,Wilhelm K <bschwab at anest.ufl.edu<mailto:bschwab at 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.
>>>>
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project at lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>



-- 
Best regards,
Igor Stasenko AKA sig.




More information about the Pharo-dev mailing list