Lys compiler CLI, playground and roadmap.

CLI

I created a CLI to start developing thigs outside of the main repository. The first proof of concept is a Keccak256 hashing library.

The objective is to provide a “real life” use case for the language, and gather feedback and ideas from the usage of the tool. As well as detect any kind of gap in the tooling.

The usage of the CLI is simple, it allows you to build and test Lys programs.

Testing code
1
lys main.lys --test

Will compile and execute the “test” function (you have to export it). It works with the support::test package.

Emiting .wast files
1
lys main.lys --wast

Will compile and emit a .wast file in the /build directory

Playground

The working on the playground began with serious performance issues in browsers.

I’ve found a huge gap in performance while creating the playground, the EBNF package doesn’t work well with big grammars (highly recursive) in the browser, it makes no optimizations. Although it works well for quick prototyping in Node.js.

What’s comming next

Now that is possible to create projects using the CLI and run them in a CI and the performance of the parser is not acceptable in web browsers I can set the next steps:

  1. Build a tokenizer in Lys
    • It needs first sugar syntax for index operators (stream[index])
    • Release allocated memory, because parsing huge documents will generate a lot of garbage.
  2. Build a web playground
    • The playground’s development will unlock all the necessary building blocks for a language server to make extensions and to integrate Lys in webassembly.studio