| Crates.io | atlas_77 |
| lib.rs | atlas_77 |
| version | 0.7.3 |
| created_at | 2025-01-07 00:49:49.140702+00 |
| updated_at | 2026-01-18 17:36:16.817403+00 |
| description | Wannabe systems programming language on a custom VM (for now). |
| homepage | https://atlas77-lang.github.io/atlas77-docs/ |
| repository | https://github.com/atlas77-lang/Atlas77 |
| max_upload_size | |
| id | 1506465 |
| size | 1,359,014 |
An experimental statically typed systems programming language designed to be a goofy cousin to C++.
Explore the docs »
Playground
·
Report Bug
·
Request Feature
Atlas77 is an experimental statically typed systems language designed around a small core and everything else be userland. It runs on a custom VM and aims to provide a clear, minimal foundation for building higher-level abstractions in libraries rather than in the compiler itself.
[!Note] The VM will be reworked soon as it doesn't really fit the language design anymore.
The 2 core philosophies are simple:
Well... Now that I have added full on move semantics, I am not sure about the second point anymore. The language is now safe by default... ig, I could add some features to let you shoot yourself in the foot if you really want to.
[!Note] If you find the code to be messy, it's because it kinda is. I am sort of "speedrunning" the bootstrapping of the language, so the Rust implementation is not really the main focus right now.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Or directly from their website: Rust
cargo install atlas_77
[!Note] I recommend you to build it yourself, as the version on Cargo is not up to date at all. The cargo version is lacking behind regarding bug fixes.
atlas_77 --help
import "std/io"
fun main() {
println("Hello, World!");
}
import "std/io";
fun fib(n: int64) -> int64 {
if n <= 1 {
return n;
}
return fib(n - 1) + fib(n - 2);
}
fun main() {
let n: int64 = 10;
print(fib(n));
}
For more examples, see the examples folder
There never was any official v0.1 or v0.2 releases, they were just internal milestones.
Deprecated, if you want to know more about the v0.3.x, check the releases page.
Deprecated, if you want to know more about the v0.4, check the releases page.
[!Warning] This version no longer compiles for some reason, so the source code is still accessible, but you can't build it.
The v0.5 was a complete rewrite of Atlas77, but because of some major design issues in syntax, semantic, memory management, compiler and everything it didn't get any more updates after the v0.5.2 (which is still accessible).
Deprecated, if you want to know more about the v0.5.x, check the releases page.
The v0.6.x series was a redesign of Atlas77 using everything that worked in the v0.5, but making it better and more consistent. It introduced a lot of new features and improvements, including, but not limited to:
#ifndef MYMODULE_ATLAS77 #define MYMODULE_ATLAS77 #endif
& and dereferencing with *NB: They are kinda broken in this version, it's fixed in v0.7.x
std::copyable constraints for generics to allow only copyable typesIt's only there for the groundwork of move/copy semantics in v0.7.x
Deprecated, if you want to know more about the v0.6.x, check the releases page.
This version will focus on correctness, fix
_copy constructor semanticsmemcpy<T>(&T) -> T for explicit shallow copiesAs the language is still in alpha (not 1.0 yet), I won't make "alpha"/"beta" build, it doesn't really make sense.
The beta phase (before v1.0.0) will focus on stabilizing the language. All features will be finalized, tested extensively, and optimized for real-world use. This phase will serve as a release candidate.
See the open issues for a full list of proposed features (and known issues).
I am making this language for myself, to learn more about programming languages, compilers, VMs and all that stuff.
I'll try to make it easy to use, but still a bit "cringey". I hope I can at least hit one of the long-term goals.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)Made with contrib.rocks.
Here is a list of repositories that helped me a lot while making Atlas77:
I either used them as inspiration, reference or learning material.
Distributed under the MIT License. See LICENSE.txt for more information.
Your Name - @Gipson62_8015 - J.H.Gipson62@gmail.com
Project Link: https://github.com/atlas77-lang/Atlas77