martinevald.net

Via (GitHub)

Scheme-inspired language with an embeddable interpreter. Work in progress!

Focus at this stage is on features and usability. “Via” means “road” in Latin, and there is yet some way to go. But it is fully servicable!

Features

Core Language Features

Implementation Features

Planned Features

(In no particular order:)

Building

Prerequisites

Additionally, in order to build the via-cpp wrapper, a C++ compiler supporting the C++17 standard is required (again for example GCC, Clang or Visual C++).

CMake

A project can be generated using CMake. Support for in-source builds explicitly is explicitly disabled. The recommended process is to create a directory named build in the project root directory, and run CMake from there:

cd vialang
mkdir build
cd build
cmake ..

The generated project can then be built using your regular build toolchain (or whichever toolchain CMake defaults to, such as Make).

Example

Building everything and running the included tests, using Make:

make
make test

Configuration Flags

To disable building via-cpp, the CMake variable DISABLE_CPP can be set:

cmake .. -DDISABLE_CPP=1

Status

Working pre-alpha. API and implementation subject to breaking changes.

Example Code

See the examples folder.