xlang-vm 0.0.5-alpha

A virtual machine for running Xlang programs.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# *xlang* [![Crates.io]https://img.shields.io/crates/d/xlang]https://crates.io/crates/xlang [![GitHub]https://img.shields.io/github/license/xlang-lang/engine]https://github.com/xlang-lang/engine [![GitHub issues]https://img.shields.io/github/issues/xlang-lang/engine]https://github.com/xlang-lang/engine [![GitHub Workflow Status]https://img.shields.io/github/workflow/status/xlang-lang/engine/auto-build]https://github.com/xlang-lang/engine/releases


*xlang* is an experimental, garbage collected, dynamically-typed, interpreted programming language focused on performance.

> **note!** *xlang* is in a pre-release state.  It may not work and it may undergo serious breaking changes.

## resources

- [*xlang* docs]https://github.com/xlang-lang/engine/tree/main/docs
- [todo]https://github.com/xlang-lang/engine/tree/main/TODO.md - *if you want to know what xlang aims to offer in the somewhat distant future*

## philosophy

- syntax, semantics and naming conventions should be consistent and obvious.
- there should only be one obvious way to do things.
- unsafety only occurs on the compiler side.  The virtual machine should assume that any input program is valid, for the sake of performance.
- no "real" multithreading, only lightweight virtual "fibers".  Only native functions are spawned in a different thread, to prevent halting the program.
- minimal implicit type conversions
- no weird or dumb syntax.  Only syntax that makes sense and is easy to read.
- minimal breaking changes.  Breaking changes past the pre-release state must be necessary.