Nice work!

Doru


> On Jan 9, 2020, at 4:59 AM, Ronie Salgado <ronies...@gmail.com> wrote:
> 
> Hi All,
> 
> I am finally announcing an initial release of my new experimental low-level 
> programming language which I am calling Sysmel (For SYStem MEtaprogramming 
> Language).
> 
> GitHub Page: https://github.com/ronsaldo/sysmel
> Short native game demo: https://www.youtube.com/watch?v=tRoPMbPvqH0
> 
> Sysmel is designed to be a flexible language, and a flexible compiler 
> front-end. The support for garbage collection in Sysmel is an optional 
> feature by design, and the support for dynamic objects and dynamic message 
> lookup it is also optional. If garbage collection is disabled, the code 
> written in Sysmel is mostly equivalent to C/C++ code (only single inheritance 
> is supported for now), but with a hybrid syntax between Smalltalk and C++.
> 
> For the final code generation I am using my custom SSA intermediate 
> representation (the same one that I used in Lowtalk, and in) which it is 
> currently tested with the following two backends:
> - LLVM textual IR backend. This is used for generating native object files by 
> reusing the LLVM infrastructure. This backend also supports emitting DWARF 
> debugging information so the resulting programs can be debugged with gdb.
> - Spir-V backend, for generating shaders for Vulkan and executing them in the 
> GPU.
> 
> One of the objectives of Sysmel is to support the full Smalltalk object model 
> without a VM and with real multi-threading support. So far message lookup is 
> already implemented, but there is still many basic primitives missing, and 
> the implementation of a proper GC that allows implementing #allInstances and 
> #become: . As a quick workaround, currently only the Boehm conservative GC is 
> supported for having an initially working environment.
> 
> In the near future, Woden Engine will adopt Sysmel at least as its shading 
> language for programming the GPU. In a farther future, a higher performance 
> version of the Woden Engine will be made by using Sysmel, mostly because it 
> seems to be much easier to support real multi-threading in Sysmel by making a 
> completely new system.
> 
> I am also re-implementing my previous experiment for converting Pharo block 
> closures into shaders by reusing the Sysmel intermediate level AST, and its 
> type inference machinery. The current version of this new Block -> to Shader 
> infrastructure can only perform basic Map and Reduce operations with blocks 
> that do not define local variables (they will be supported in a future 
> version) in linear arrays.
> 
> Best regards,
> Ronie

--
feenk.com

"Problem solving should be focused on describing
the problem in a way that makes the solution obvious."








Reply via email to