(sorry, had to edit the post since Iβm a new user and can only put 2 links in a post)
hi Rupert, really happy to see the interest in these projects, and in Guida in particular 
I am Decio Ferreira, the creator of the guida-lang project.
thoughts on stability, speed, compatibility, future directions?
With Guida, the intent is to create a new language that is company friendly and builds on top of Elm, having backward compatibility (respecting existing Elm projects, ensuring a frictionless migration), self-hosted environment (allowing more devs to contribute to the language, helping debug any issues they might find, having a better understanding of how it works and a good example of what can be achieved with the language), and finally I intend to evolve the language to integrate new features and improvements (ideally i would love to see the community contribute to having functionally like tests, format, extra-libraries integrating the core of the language). Also, to provide the environment required to use the language, like registry (package-registry) and other tools (eg. vscode-client).
The package registry can run on a local environment, which means private packages are supported. For this we just need use the GUIDA_REGISTRY
environment variable to point at it (by default it currently uses elm package)
The language can already compile itself, is backward compatibility with elm 0.19, has a few extra functionalities like --yes
flags on commands, uninstall
and test
commands integrated on the compiler, --package
on the init
command, and small additions to the language to represent some of the things that I want to do with it going forward (eg. _name
(underscore) wildcard pattern, tuple with 3+ elements, or source maps).
Here are some details of self compilation of the project:
compiler % time ./bin/index.js make --optimize src/Terminal/Main.elm
Starting downloads...
β Janiczek/elm-vlq 1.0.0
(...)
β stil4m/elm-syntax 7.3.8
Dependencies ready!
Success! Compiled 149 modules.
Terminal.Main βββ> index.html
./bin/index.js make --optimize src/Terminal/Main.elm 58.91s user 2.90s system 122% cpu 50.277 total
compiler % rm -rf guida-stuff
compiler % time ./bin/index.js make --optimize src/Terminal/Main.elm
Dependencies ready!
Success! Compiled 149 modules.
Terminal.Main βββ> index.html
./bin/index.js make --optimize src/Terminal/Main.elm 26.46s user 1.27s system 135% cpu 20.527 total
Line count for elm files on the project:
---------------------------------------------------------------------------------------
Language files blank comment code
---------------------------------------------------------------------------------------
Elm 226 19974 2784 69340
---------------------------------------------------------------------------------------
Guida can already compile code on the browser as well (guida-lang.org/try), and with some extra work, it should also be possible to compile multi-file projects (not done yet).
As @passiomatic said, I am currently working on the format logic, to add it as a command, API, and to introduce it on the vscode-client. The focus is to have the required tools to be able to work on a guida project.
Tried Guida on a 150K LOC project, with a view to comparing compile times. I guess I will have to try something a bit smaller.
I noticed that you were using node v18.16.1, any chance you could try it with v23.10.0? If you still find issues, any chance you could create an issue with your finding? @G4BB3R any details you could share as well? If you have the opportunity to debug it (since this is just a node application, should be fairly simple to do), I would greatly appreciate it.
I would love to get some help on the projects within guida-lang project (bug fixes, new features, help with the documentation page for the website, or just simple bug reports). Feel free to reach out on slack as well.