Skip to content
/ jule Public

Effective programming language to build efficient, fast, reliable and safe software while maintaining simplicity

License

Notifications You must be signed in to change notification settings

julelang/jule

The Jule Programming Language

An effective programming language to build efficient, fast, reliable and safe software while maintaining simplicity.

This repository is the main source tree of Jule.
It contains the reference compiler, API, and the standard library.

Website | Manual | Future of Jule | Contributing | Community

Key Features

  • Optimized for fast and safe programs
  • Empowered compile-time: reflection, evaluation, matching, and more
  • Deterministic memory management with reference-counting and smart pointers
  • Default immutability, boundary checking, no uninitialized memory, variable shadowing disabled
  • Built-in testing framework
  • Easy low-level development
  • Easy cross compilation: standard library support, target platform IR generation and architecture imitation
  • Easy error-handling with exceptionals, much like optional types
  • Concurrency support: managed threads, channels, mutexes, condition variables, and more
  • High interoperability with C, C++, Objective-C and Objective-C++
  • C++ API for extending Jule with interoperability

Important

Jule does not have a stable version yet and is still becoming more stable with each commit. Some commits may not be fully honored due to some compiler/API errors. Please report any issues you may encounter with the Jule Issue Tracker. You can also join the Discord community to discuss, help, and ask more questions about Jule.

Community

Contribute and get involved in our community.

Join Julenours to support Jule, explore, and interact with the community.
Our main community platforms:

Build from Source

If you want to get Jule from the source, there are many ways to do so. Jule has a bootstrapped compiler, so you'll need to have a working one first. There are two options to do this: obtain a binary from the releases or use the official IR. However, it is recommended to use IR as it is always up to date and ensures master branch compatibility.

If you already have a compiler, you can use build scripts designed for developers to compile JuleC. Remember, these are meant for developers, not for production use. They compile the compiler for debugging new source code.

Contributing

Any contribution to Jule is greatly appreciated, whether it's a typo fix, a brand new compiler feature, or a bug report.

The Jule project uses GitHub issues for things like proposals, bug reports, and security vulnerabilities. If you want to discuss anything, discussions is a better place to do that. If you are interested in reporting a security vulnerability, refer to our security policy.

Please read the Julenour Code of Conduct and the contribution guidelines before contributing.

License

The reference compiler, API, and standard library are distributed under the terms of the BSD 3-Clause license.
See License Details