On Thu, 9 Jan 2020 at 12:00, 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. > > 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. > Side note, for academics needing interesting final projects for students, one would be have this infrastructure for Pharo blocks generate/load code for the Programmable Real-time Units on a Beaglebone - useful for a dynamically programmable hard-real-time system for robotics. https://www.ti.com/lit/ug/tidu461/tidu461.pdf https://www.youtube.com/watch?v=B1DssoXzUXw https://www.youtube.com/results?search_query=beagleboard+pru cheers -ben