a programming language with channels and coroutines
sahl means easy. This is the easiest statically typed language I could come up with. It could be called easy before but it has become bloated now as I am adding or planning to add all sort of stuff.
make
to compile the compiler and the virtual machinecp -r ext ~/.vscode/extensions/sahl
only supports syntax highlighting for now
Initially I made the virtual machine in rust. It was slow so I rewrote the codegen in rust to emit bytes instead of rust enums/structs and then run the bytecode on a virtual machine I wrote in c. Since, the language is statically typed I thought compiling it to native code would be a nice idea so I started writing that using llvm but paused. I also wrote sahl_aot.go
to convert the bytecode to assembly but stopped. I wrote x86 codegen which operated on the ast. Abandoned that soon after. Then reorganized the source to use three-addr-code and a register based vm. After that picked up native codegen using llvm from the three-addr-code.
Right now there is a virtual machine, native code generation with llvm and transpilation to go.