June is no longer maintained. For more information, please read my blog post
Also see the philosophy for more info.
The June project is still in its early days of development. While we have developed a compiler in tandem with designing the language, both should be considered experimental and pre-alpha in quality. Significant changes to both the language and the compiler should be expected.
To run the June test suite, be sure to have the following installed:
rustc
cargo
clang
in your pathThe June compiler outputs C code, which you can then build with a C-compatible compiler. The test suite assumes clang
is the compiler that is available. (Note for Windows users: Visual Studio can install 'clang' as an optional install)
June currently provides some rudimentary support for building june projects. We don't yet support creating new june projects. June only supports binary projects at the moment, with a main.june file inside a main
folder. The project root is marked by a June.toml
file which is currently empty and unused, but will eventually contain metadata about the project including the output binary name. Inside of a properly setup june project one should be able to build by simply typing june build
. Once the build step completes you should have a binary in build/debug
calledmain
which you can run manually.
project_dir/
main/
main.june
June.toml
.gitignore
build/
Alternatively, the current version of June can be used compile June code to C by passing the filename directly such as with june main.june
. After outputting C, you'll need to redirect this to a file, and then use a C compiler to build the June application.
For more information on the June language, check out the June language documentation
The best way to file issues is to file them through the GitHub issue tracker.
Our main goal with June is to build out an implementation of its initial design and to test it.
As we dogfood, we will likely change the design of the language where we see it doesn't meet the goals of the project.
We'll likely also work towards support in IDEs (using things like LSP) to make it easier to write larger June projects and get interactive feedback from the tools.