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

Jimmie Houchin jlhouchin at gmail.com
Wed Sep 6 03:58:49 UTC 2017

Thanks for the reply.

On 09/05/2017 05:35 PM, Ronie Salgado wrote:
> Hello Jimmie,
> On ESUG I only presented it for the innovation award. There is no 
> scientific paper on Lowtalk itself yet, because most of the work on 
> this front end is recently. I am probably submitting.
> There is still the possibility on changing the syntax and some of 
> mechanism that are used in Lowtalk, Currently I am showing what is 
> possible to do.
>     What do you believe the best mailing list to list ask questions at
>     some point in the future?
> This is a good question. Currently I do not know. This is an early 
> work, and there is still a lot more to do. We now have to discuss 
> about how to proceed. I have to discuss properly with Eliot about how 
> to keep proceeding. I am reusing some of his techniques for 
> implementing some parts such as the stack to context mapping, and 
> immediates objects.

Maybe it is unique enough that it would need its own mailing list at 
some point. Unless it became potentially a part of Pharo and thus 
suitable for pharo-dev.

> Lowtalk is currently Pharo only, and it is completely standalone from 
> the OpenSmalltalk VM. However, I am going to make a backend for 
> Lowtalk that uses Lowcode to be able to use it inside the current 
> image environment. Both use cases are interesting:
> - standalone executables for embedding and soft realtime (videogames).

Would this also be a good way to do mobile, iOS and Android apps?

> - keeping the current VM and reusing the in-image environment allows 
> to use the full power of the Pharo/Squeak environment. In this case, 
> Lowtalk can be used for getting a performance boost in numerical 
> intensive software loops (e.g: matrix multiplication, typically an 
> O(n^3) algorithm), without having to resort to the FFI for calling 
> externally compiled C code.

I am definitely interested in this. I am interested in arrays of numbers 
and doing calculations on those numbers. I was thinking that I would be 
needing to code this in C and call from UFFI. I read your message and I 
thought that it meant I could code in Lowtalk and then call the new 
library via UFFI.

So, what I understand here is that I can code in Lowtalk for the Lowcode 
backend and not require UFFI? At least at some point in the future. That 
sounds awesome.

> I want to use Lowtalk in Woden 2 exactly for the second use case. 
> Currently in Woden 2 I am using the language described in the Lowcode 
> paper. Because the type system introduces dependencies on the 
> compilation order, it does not behave well with Monticello which I had 
> to patch in Woden 2. With Lowtalk I am solving that problem by using 
> standard text files, and multiple semantic analysis passes over the 
> AST to define circular types lazily. for example:
> Structure named: #LinkedListNode slots: {
>  #next => (LinkedListNode pointer).
>  #value => (Void pointer)
> }.

Ok. I was confused in my brief look at GitHub as to whether we were 
programming in the image on with a text editor.
It would be nice if at some point it could be done from the image. Even 
if it is a with a new editor (possible from the new moldable work) 
understanding Lowtalk and tools to do compilation.

Possibilities are interesting.

Thanks again. I look forward to seeing what happens.


> Best regards,
> Ronie
> 2017-09-05 17:02 GMT+02:00 Jimmie <jlhouchin at gmail.com 
> <mailto:jlhouchin at gmail.com>>:
>     Hello Ronie,
>     I think this looks very interesting. I just downloaded your paper
>     to read. I look forward to seeing the video of your ESUG
>     demonstration.
>     What do you believe the best mailing list to list ask questions at
>     some point in the future?
>     Thanks again for your work on this interesting project.
>     Jimmie
>     On 08/30/2017 11:05 AM, Ronie Salgado wrote:
>         Hi All,
>         I am finally glad to announce an initial version of my secret
>         experiment, Lowtalk: https://github.com/ronsaldo/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.
>         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.
>         - 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.
>         -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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20170905/22ce8189/attachment.html>

More information about the Vm-dev mailing list