2022-07-19 06:30:25 +00:00
|
|
|
# e0: Experimental Language #0
|
|
|
|
|
|
|
|
`e0` is an experimental language created for the purpose of practicing making a
|
|
|
|
simple language ecosystem. The language is strongly typed but with only a
|
|
|
|
limited set of primitives, and compiles down to LLVM IR.
|
|
|
|
|
|
|
|
Compilation process
|
|
|
|
-------------------
|
|
|
|
|
2022-07-19 06:53:06 +00:00
|
|
|
```text
|
2022-07-19 06:30:25 +00:00
|
|
|
e0 source code => llvm bitcode text => clang => link against e0-rt => binary
|
|
|
|
```
|
|
|
|
|
|
|
|
Currently clang is required as there are no plans for custom codegen yet.
|
2022-07-19 07:02:58 +00:00
|
|
|
|
|
|
|
Roadmap
|
|
|
|
-------
|
|
|
|
|
|
|
|
In development:
|
|
|
|
|
|
|
|
- Structs
|
|
|
|
- Vim extension
|
|
|
|
|
|
|
|
Near future (probably ordered):
|
|
|
|
|
|
|
|
- Modules
|
|
|
|
- Standard library
|
|
|
|
- e0pkg
|
|
|
|
- Arrays
|
|
|
|
- Strings (UTF-8)
|
|
|
|
|
|
|
|
Distant future:
|
|
|
|
|
|
|
|
- LSP
|
|
|
|
- Custom codegen backend
|
|
|
|
|
|
|
|
License
|
|
|
|
-------
|
|
|
|
|
|
|
|
MIT / Apache-2.0
|