Skip to content

ursalang/ursa

Repository files navigation

Ursa

logo

© 2023–2024 Reuben Thomas rrt@sc3d.org
https://ursalang.github.io

Ursa is intended to be a friendly, stable general-purpose programming language and runtime: the sort of language you can easily start writing code in, where the code and runtime will still work decades later. For more details, see the rationale.

Currently, Ursa is under development, as reflected in the version number. The intention is that once it reaches version 1, the language will not change or evolve further.

Ursa is free software. The Ohm grammar and the run-time (Ark, and the Ursa prelude) are licensed under the MIT license. All other files are licensed under the GNU GPL version 3 (or, at your option, any later version), unless explicitly mentioned otherwise.

Please ask questions, make comments; you can open bug reports on our GitHub issue tracker. If none of the other methods work for you, do email the author; see above for address.

Installation

Install Ursa with npm (part of Node):

npm install -g @ursalang/ursa

Install the Ursa fork of Topiary (code formatter, you will need a Rust toolchain):

TOPIARY_DIR=/path/to/topiary
git clone https://github.com/rrthomas/topiary "$TOPIARY_DIR" && cd "$TOPIARY_DIR" && cargo install --path topiary-cli

Use

For the Ursa front-end:

ursa --help

For the language and editor support, see the Ursalang web site.

Code-counting support is available for cloc in the file ursa.def. Use as follows:

cloc --read-lang-def=/path/to/ursa.def FILE-OR-DIRECTORY

Development

Check out the git repository and download dependencies with:

git clone https://github.com/ursalang/ursa
npm install

To run the tests:

npm test