-
1.0.0 Alpha Pre-Release
released this
2025-07-27 00:32:16 +02:00 | 103 commits to main since this releaseChangelog
Reid 1.0.0 alpha, with many features (too many to list), but e.g.:
- Many types of integers, floats, boolean, and string-literals
- Basic algebra binary and unary-operations (e.g. Add, Sub, Div, Mult, And,
Not) - Borrows/derefs, pointers.
- Declaration and call functions with varying parameters and return types
- Type-checking and type-inference such that return-types and
parameter types must always match. - Simple logic-operations (e.g. If/And/Or)
- Accessing, defining and initializing structs and arrays.
- Defining and executing For/While loops
- Outputting detailed debug information
- Defining extern functions that can be linked to outside modules such as
libc
. - Defining custom binary operations for any two types that hasn't been defined
previously (such asu16 + u32
). - Different ways to represent number-literals (Decimal, Hexadecimal, Octal, Binary)
- Arrays and indexing
- Structs and accessing
- Strings and string manipulation in standard library
- Type casting
- Intrinsic functions (functions built-in to the compiler, not in standard library)
- Ability to specify types in literals and variable definitions
- Debug Information
- Fix struct initialization (wrong order and missing fields allowe
- Importing types from other modules
- User-defined binary operations
still missing e.g.
- Associated Functions
- Bitwise operations
- Lexical Scopes for Debug Information
- Language Server
Usage
./cli hello_world.reid
If you wish to pass feature-flags, the CPU-name or change the underlying linker, or add libraries to be linked, they can be set with environment variables like so:
# Mark CPU as "generic" CPU=generic ./cli hello_world.reid # Mark "f16c"-feature REIDFLAGS="+f16c" /cli hello_world.reid # Set linker to "mold" LD=mold /cli hello_world.reid # Link against libSDL3 /cli hello_world.reid SDL3
Requirements
- Linux
libc
ld
(can be changed)whereis
- LLVM 20.1 or newer (because this executable is dynamically linked)
Downloads
- Source Code (ZIP)
- Source Code (TAR.GZ)
-
cli
1.9 MiB