Skip to content

catocat/Vale

 
 

Repository files navigation

Vale

Vale is a programming language whose goal is to show the world that speed and safety can be easy! Vale is:

  • Fast: Vale is an AOT compiled language that uses an entirely new approach to memory management: generational references, which have zero aliasing costs and no garbage collection pauses.
  • Fearless: It is the safest native language: memory safety, data-race safety, region isolation, extern boundaries, and dependency extern whitelisting.
  • Flexible: Its new take on regions enables alternate memory management and allocation strategies, with the region borrow checker enabling seamless, fast, and easy interop between them.

Vale is part of the Vale Language Project, which explores, discovers, and publishes new programming language mechanisms that enable speed, safety, and ease of use.

See http://vale.dev/ for more information on the language, and please consider sponsoring us so that we can work on this even more!

See also our treasure trove of working examples, grouped by functionality.

Building a Vale Program

  1. Download the latest binary at http://vale.dev/download
  2. Unzip it into, for example, ~/Vale, and cd into it.
  3. Compile a program: valec build hello=./samples/helloworld --output_dir target
  4. Run the program: target/main

Learning Vale

See the Guide for how to use Vale.

Building the compiler itself

For instructions for building the compiler itself, see Building the Compiler.

For an overview of the project structure, see Compiler Overview.

Editor plugins

Thank you to our sponsors!

Notes

Vale started in January 2013, and back then we called it "VLang", though there's now another language with that name. We then called it GelLLVM, in honor of Gel, the first language to offer constraint references. Since then, we've settled on the name "Vale". Note that Vale and Vala are two different languages.

About

Compiler for the Vale programming language - http://vale.dev/

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Scala 50.7%
  • C++ 46.6%
  • C 2.0%
  • Shell 0.5%
  • CMake 0.1%
  • Batchfile 0.1%