[Vm-dev] [ANN] Lowtalk, a new Smalltalk dialect that could eventually replace Slang

Ben Coman btc at openinworld.com
Sun Sep 17 14:44:15 UTC 2017

On Thu, Aug 31, 2017 at 12:05 AM, Ronie Salgado <roniesalg at gmail.com> wrote:

> Hi All,
> I am finally glad to announce an initial version of my secret experiment,
> Lowtalk: https://github.com/ronsaldo/lowtalk
> Lowtalk is a new Smalltalk dialect that generates relocatable binary
> object code, that can be linked with any C program or used to generate a
> standalone executable with the C linker. I am designing Lowtalk as a
> language for video game developing, where performance and multi-threading
> support is important. The Lowtalk compiler is completely written in Pharo.

This sounds very cool.

> The main features of Lowtalk are the following:
> - The compiler is actually a meta circular evaluator, whose features are
> used for bootstraping the Lowtalk kernel.

Just to clarify, I guess you mean you provide a native machine
code compiler, so a separate C compiler step is not required?

With the right CPU model, would Lowtalk facilitate generating native
microcontroller machine code from Smalltalk code, for devices like...
which might be interesting to mix with Dennis' work with microcontrollers...


> - The Lowtalk object model, including the layout of the objects is defined
> in the language itself.
> - Direct interface with C. There is an almost 1:1 mapping between the
> Lowtalk native types and the C types. There is a syntax extension for
> calling C functions.

How do you rate generating LLVM intermediate representation (IR) ?  How
otherwise do low level optimisations come into your concept?
I couple of articles I found interesting...


cheers -ben

> -Support for real multi-threading.
> - The current object model uses automatic reference counting, which is
> slow, but makes supporting real multi-threading easier.
> - Immediates are based on the Spur object model.
> - Partial support for generating debugging information in the DWARF
> standard. It is possible to place breakpoints and get correct stack traces
> with gdb.
> Lowtalk is on the line of my work with Lowcode, and I am planning on
> making a Lowtalk backend that uses Lowcode. The Lowtalk type system is
> almost the same as the one that I described at the paper: Lowcode:
> Extending Pharo with C Types to Improve Performance
> I will make a video later, and a proper demonstration at ESUG.
> Best regards,
> Ronie
P.S. @Eliot, et al...
I found it interesting that several alternate calling conventions are
implemented for LLVM.  Could such a thing be useful to support Smalltalk
better, and be a useful research topic for someone?


(although maybe a WebAssembly target might be a better research topic.)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20170917/a144ad71/attachment.html>

More information about the Vm-dev mailing list