No description
Find a file
2022-07-19 02:02:58 -05:00
bin Lots of work on revamping the type system for structs, also stubs for future pieces 2022-07-19 01:31:00 -05:00
docs Lots of work on revamping the type system for structs, also stubs for future pieces 2022-07-19 01:31:00 -05:00
examples Lots of work on revamping the type system for structs, also stubs for future pieces 2022-07-19 01:31:00 -05:00
ext/e0-vim Vim highlight 2022-07-19 01:51:53 -05:00
rt Lots of work on revamping the type system for structs, also stubs for future pieces 2022-07-19 01:31:00 -05:00
src Lots of work on revamping the type system for structs, also stubs for future pieces 2022-07-19 01:31:00 -05:00
std Lots of work on revamping the type system for structs, also stubs for future pieces 2022-07-19 01:31:00 -05:00
.build.yml Vim highlight 2022-07-19 01:51:53 -05:00
.editorconfig Functions 2022-07-17 22:06:37 -05:00
.envrc direnv 2022-05-11 17:11:50 -05:00
.gitignore Write to .ll files 2022-07-17 21:00:19 -05:00
.ignore meta 2022-03-08 03:22:48 -06:00
build.rs Use pkgsStatic since llvm-sys requires a static library 2022-07-17 11:05:08 -05:00
Cargo.lock Lots of work on revamping the type system for structs, also stubs for future pieces 2022-07-19 01:31:00 -05:00
Cargo.toml Lots of work on revamping the type system for structs, also stubs for future pieces 2022-07-19 01:31:00 -05:00
default.nix Roadmap 2022-07-19 02:02:58 -05:00
flake.lock Use pkgsStatic since llvm-sys requires a static library 2022-07-17 11:05:08 -05:00
flake.nix vim extension 2022-07-19 01:41:30 -05:00
README.md Roadmap 2022-07-19 02:02:58 -05:00
rustfmt.toml fmt 2022-04-05 22:17:53 -05:00
tokei.toml Progress 2022-06-17 09:50:06 -05: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

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.

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