Git Product home page Git Product logo

june's Introduction

June, a gradual, safe systems language

Goals

  • Teachability | Learnability | Readability
  • Efficiency | Productivity
  • Systems and application programming

Also see the philosophy for more info.

Participating in the closed alpha/beta

Status

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.

Running the test suite

To run the June test suite, be sure to have the following installed:

  • A recent rustc
  • A recent cargo
  • A reasonably good clang in your path

The 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)

How to compile

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.

The June language

For more information on the June language, check out the June language documentation

Reporting issues

The best way to file issues is to file them through the GitHub issue tracker.

Roadmap

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.

june's People

Contributors

sophiajt avatar yaahc avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.