Roadmap¶
The roadmap document define the direction that the project is taking.
The initial and decisive part of the project is the implementation of native tensor abstractions backed by Apache Arrow. But in order to get to that point, we need first implement a bunch of small pieces across the Arx + IRx stack. Arx owns the surface front end (lexer, parser, docs, examples), while IRx owns AST definitions, semantic analysis, lowering, and code generation.
Improve the language structure¶
- [ ] Currently, almost everything is a expression, but some structure should be converted to statements.
- [ ]
Forloop - [ ]
If - [ ] Implement
returnkeyword - [ ] Allow multiple lines in a block
- [ ] Add support for
whileloop - [ ] Add support for
switch - [ ] Add support for code structure defined by indentation
- [ ] Add support packaging and
import - [ ] Add support for
docstring - [x] Add support for file objects generation
- [ ] Add support for generating executable files
- [ ] Add support for mutable variables
- [ ] Add support for classes (details TBA)
Data type support¶
ArxLang is based on Kaleidoscope compiler, so it just implements float data type for now.
In order to accept more datatypes, the language should have a way to specify the type for each variable and function returning.
- [x] Wave 1: float32
- [ ] Wave 2: static typing
- [ ] Wave 3: int8, int16, int32, int64
- [ ] Wave 4: float16, float64
- [ ] Wave 5: string
- [ ] Wave 6: datetime
Implement native tensors¶
TBA