The Vale Programming Language

The Vale compiler is version 0.2.

This compiler is still in alpha, and not production-ready yet. Keep an eye out for 1.0, when it will be suitable for production. Use at your own risk, and report any bugs!

Releases

0.2 "Kuma" Release

You can download binaries from the releases page.

This release:

  • Enables Higher RAII, one of Vale's main innovations.
  • Adds const generics.
  • Adds concept functions.
  • Simplifies the language's syntax:
    • We no longer need impl MyInterface in override function signatures!
    • There is no longer a readwrite-vs-readonly reference distinction.
    • There is no longer a borrow-vs-pointer reference distinction.
    • Improved ownership rules: method calling on a returned value now sends own.
    • Added postfix borrow!
  • Compiles a bit faster!
  • Uses LLVM13 under the hood now.

0.1.4 "Ember" Release

You can download binaries from the releases page.

This release adds:

  • Better compile times!
  • break statement
  • foreach statement
  • Better array creation syntax!
  • Better extern boundary, no more ValeReleaseMessage
  • A lot of bugfixes!

0.1.3 "Cardinal" Release

Download:

This release adds:

  • Modules and import statements!
  • A standard library!
  • Downcasting
  • Constructing static-sized array via lambda
  • Improved FFI; Midas now generates better headers
  • Better error messages
  • i64 type
  • A lot of bugfixes!

See the 0.1.3 Milestone for all changes.

The .zip includes:

  • valec.exe, the main compiler program. Use valec help for help.
  • stdlib contains the standard library.
  • samples, a collection of small programs written in Vale.
    • roguelike.vale is a program where you are an @ sign and can walk in four directions.
    • The rest are tiny programs that serve as test cases for the compiler.
  • builtins should be ignored, these are .c files used by the compiler itself.

0.1.2 "Maya" Release

Download:

This release adds:

  • Readonly and readwrite references!
  • Externs and exports!
  • A lot of bugfixes! Special thanks (again!) to Ivo Balbaert for searching and finding so many bugs.

0.1.1 "Ivo" Release

Download:

This release adds:

  • A lot of bugfixes! Special thanks to Ivo Balbaert for finding the rough edges and reporting bugs!
  • Much more solid and reproducible building and running of the Vale compiler.
  • More functions and classes to the standard library.

0.1.0 "Eevee" Release

Linux: ValeCompiler-0.1.0.0-Linux.zip

Mac: ValeCompiler-0.1.0.0-Mac.zip

Windows: ValeCompiler-0.1.0.0-Win.zip