Warning
The development of the project has stopped due to memory and thread safety concers. Chain, the philosophical successor of MiniLang is here to take its place. It's been designed from scratch to offer safety guarantees comparable to Rust, while retaining safe ergonomics thanks to its revolutionary pointer semantics. Stay tuned, Chain will soon be available on !
A type-safe C successor that compiles directly to various platforms.
Check out acwj-git, DoctorWkt's tutorial is the main (best) source of inspiration of this project's structure.
- Modern
- Compiled
- Procedural
- Strongly typed
Type and memory safe- Closely match C features
- Bidirectionally compatible with C
- ML must be easy to learn and use
- ML abstractions introduce zero-overhead compared to C
The language is designed to closely match c features along with some zero-overhead quality of life improvements that you would find in a modern language, while maintaining the ease of learning the language (in about 10 minutes or less via QUICKSTART). Moreover, the type system is stricter than c, which prevents common bugs (flaws) of the c language. Memory safety is also a primary concern. As for c compatibility, the language is bidirectionally compatible with c (c can be used in ML, ML can be used in c).
- RAII
- Builtins
- Booleans
- References
- Fixed-length integers
- Fixed-length pointers
- Type inference
- Heredocs
- Aliases
- Defers
- Imports
- Namespaces
- Hygienic macros
- For-each loops
- Generic functions
- Function overloading
- Function signatures
- Uniform function call syntax (UFCS)
- Multi-line statements
The online compiler is provided by ryugod.com. Special thanks to ryusatgat for hosting and maintaining the online compiler!
Warning
The unstable branch is updated more often than the main (stable) branch and offers access to experimental features, but is more prone to breakage/bugs.
To suggest features/fixes, modify IDEAS.md
/BUG.md
and submit a pull request or contact me via the email address in my profile.
Install the VSIX extension ./minilang-highlighter/minilang-highlighter-0.0.1.vsix
.
Extensions -> Views and more actions... (top-left three dots) -> Install from VSIX...
To run a sample or test, specify its directory using the -C
option in mlpx
with arguments build and run
.
Important
It's recommended to use the mlpx
build tool as it's specifically designed for this purpose: no libary redundancy and no configuration compared to using the make
build tool.
Creating a MiniLang
project is easy and straight-forward using the mlpx
utility, which provides two ways with differing build tools.
Note
Statistics were generated with cloc.
Warning
The asm compiler backend is currently far outdated. The latest features exclusively require the c and ml compiler backends.
Note
All MiniLang samples (example projects) are located within the samples
directory. All samples are written entirely in ML.
Copyright © 2023-2024 Nicolae Petri
Licensed under the MIT License.