Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lunacookies/didactic-eureka
WIP systems programming language
https://github.com/lunacookies/didactic-eureka
Last synced: 16 days ago
JSON representation
WIP systems programming language
- Host: GitHub
- URL: https://github.com/lunacookies/didactic-eureka
- Owner: lunacookies
- Created: 2022-07-02T05:43:47.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-07-14T13:55:29.000Z (over 2 years ago)
- Last Synced: 2024-10-22T18:26:26.000Z (2 months ago)
- Language: Rust
- Size: 46.9 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# didactic-eureka
## todo
- [ ] finish first end-to-end prototype
- [ ] implement typechecking for initial language subset
- [ ] implement C code generation for initial language subset
- make sure to have underflow and overflow checks
- [ ] vim syntax highlighting
- [ ] vim `:make` compatible diagnostic formatting
- [ ] add enough language features to make writing useful code _possible_
- [ ] struct field access
- make sure to support through pointer
- [ ] `return`, `break` and `continue`
- don’t worry about checking whether every path through a function returns
- [ ] `bool`, `true` and `false`
- [ ] infinite loops and while loops
- [ ] length-prefixed slices with bounds-checked indexing
- [ ] string literal escapes
- [ ] struct literals
- [ ] bitwise or, and, not, xor
- [ ] C-like enums lowered to integers
- [ ] `malloc` and `free` as special syntax
- [ ] debug printing as special syntax
- [ ] unchecked external C functions
- [ ] write some tiny demo programs to make sure everything works
- [ ] add enough language features to make writing code an alright experience
- [ ] format strings
- [ ] methods
- [ ] nullable types
- look at Zig and Hare for inspiration
- [ ] some form of a `switch`-like construct
- [ ] some form of unions
- could be unchecked unions, Rust-like extended `enum`s with payloads, Hare-like anonymous tagged unions
- [ ] enough of a generics/templates system to allow making collection types and nothing else
- [ ] Zig-like tests
- [ ] basic multi-file support
- [ ] self hosting
- [ ] further features ...
- [ ] replace dedicated `malloc` and `free` syntax with Zig-like custom allocators
- [ ] immutable variables and pointers
- [ ] module system
- [ ] unused warnings
- [ ] actually check if all paths through a function return a value
- [ ] documentation generator
- [ ] autoformatter
- [ ] custom TUI editor with language intelligence
- [ ] LSP server