On Mon, Sep 15, 2014 at 6:23 PM, Eliot Miranda <eliot.mira...@gmail.com>
wrote:

> Hi All,
>
> On Mon, Sep 15, 2014 at 6:01 AM, Thierry Goubier <
> thierry.goub...@gmail.com> wrote:
>
>>
>>
>> 2014-09-15 14:39 GMT+02:00 Clément Bera <bera.clem...@gmail.com>:
>>
>>> Hello,
>>>
>>> Note that slang is a subset of smalltalk. The Slang compiler does not
>>> allow to compile smalltalk to C. It allows to compile a smalltalk with
>>> restricted message sends and classes to C.
>>>
>>
>> Yes, I am aware of that. I remember that from the very beginnings of
>> Squeak.
>>
>> Wasn't Smalltalk/X the one which had a more complete version of that C
>> translation? I did an internship in a French company who had a Smalltalk to
>> C translator done for them a long time ago.
>>
>>
>>>
>>> 2014-09-15 13:28 GMT+02:00 Thierry Goubier <thierry.goub...@gmail.com>:
>>>
>>>> Hi Phil,
>>>>
>>>> thanks for the update on Slang to C. Allways significant to have that.
>>>>
>>>
>>>> Two open questions:
>>>>
>>>> - would a slang to x86 asm via NativeBoost be doable / a nice target?
>>>>
>>>
>>> Yes it would be interesting. However, by having a Slang to C compiler,
>>> we're platform-independent, we can compile the C code to x86, x86_64 and
>>> ARM quite easily (some part of the VM are already processor dependent, but
>>> not so much). Targeting direct machine code implies evolving the Slang
>>> compiler for each new assembly code we support. It sounds like a lot of
>>> engineering work compared to our resources and the gain.
>>>
>>
>> It would allow JIT-type compilation experiments than a Slang-to-C chain
>> isn't designed for :) With a lot more work doing the various NB ports, of
>> course.
>>
>>
>>>
>>>> - would targetting LLVM-IR be of interest?
>>>>
>>>> If you compile the C code with Clang instead of gcc, which starts to be
>>> the case because of the lack of support for gcc in the latest Mac OS X, you
>>> are already using LLVM IR because Clang uses it. As the VM use the GNU C
>>> extensions to improve performance, I do not think that targeting directly
>>> the LLVM IR would greatly improve performance. So it sounds like quite some
>>> engineering work for no gain.
>>>
>>
>> I would not suggest replacing C by LLVM-IR for VM work, in part because
>> LLVM-IR is not what I would call a readable source code format... But I do
>> know that even when doing C to C rewritting for embedded compilation, there
>> is some low-level code that you can't write in C.
>>
>
> I find this whole discussion depressing.  It seems people would rather put
> their energy in chasing quick fixes or other technologies instead of
> contributing to the work that is being done in the existing VM.
>

Why so? I am all in for using the VM based technology. Slang is great. Now,
we need to interface with the outside world, and then it is C-based at one
point.


>  People discuss using LLVM as if the code generation capabilities inside
> Cog were somehow poor or have no chance of competing.  Spur is around twice
> as fast as the current memory manager, has much better support for the FFI.
>  Clément and I, now with help from Ronie, are making excellent progress
> towards an adaptive optimizer/speculative inliner that will give us similar
> performance to V8 (the Google JavaScript VM, lead by Lars Bak, who
> implemented the HotSpot VM (Smalltalk and Java)) et al.
>

Super, that's why I bet my company business on Pharo for software
development. I trust you guys.


> We are trying to get person-power for a high-quality FFI and have a
> prototype for a non-blocking VM.  When we succeed C won't be any better and
> so it won't be an interesting target.  One will be able to program entirely
> in Smalltalk and get excellent performance.  But we need effort.
>  Collaboration.
>

Ah, non blocking VM, a super cool thing to have. I am going through hoops
at the moment to avoid doing direct SNMP calls to devices from Pharo...


>
> Personally I feel so discouraged when people talk about using LLVM or
> libffi or whatever instead of having the courage and energy to make our
> system world-class.  I have the confidence in our abilities to compete with
> the best and am saddened that people in the community don't value the
> technology we already have and can't show faith in our abilities to improve
> it further.  Show some confidence and express support and above all get
> involved.
>

That's well said. Let's race to the top!


>
> Collaborators <http://www.mirandabanda.org/cogblog/collaborators/>
> Cog Projects <http://www.mirandabanda.org/cogblog/cog-projects/>
> Spur 1/3
> <https://www.youtube.com/watch?v=k0nBNS1aHZ4&index=49&list=PLJ5nSnWzQXi_6yyRLsMMBqG8YlwfhvB0X>
>   Spur, a new object representa...
> <http://www.slideshare.net/esug/spur-a-new-object-representation-for-cog>
> Sista: Improving Cog's JIT performance 1/2
> <https://www.youtube.com/watch?v=X4E_FoLysJg&list=PLJ5nSnWzQXi_6yyRLsMMBqG8YlwfhvB0X&index=76>
>  Sista: Improving Cog’s JIT pe
> <http://www.slideshare.net/esug/sista-talkesug2>..
> Lowcode: Redoing NativeBoost ...
> <http://www.slideshare.net/esug/03-lowcodeslides>
>

All very interesting things indeed. Now, doing application level code at
the moment, I can't really dig into these. But I can use them and kick ass!

>
>
> However, I think Ronie was interested in doing such work. If he succeeds
>>> and reports performance improvement, then we can consider using his
>>> compiler to compile the VM.
>>>
>>
>> Keep us posted!
>>
>> Thierry
>>
>
> --
> in hope,
>


> Eliot
>

Reply via email to