vezel-dev / celerity

An expressive programming language for writing concurrent and maintainable software.
https://docs.vezel.dev/celerity
BSD Zero Clause License
9 stars 1 forks source link
celerity compiler csharp dotnet gc interpreter jit language runtime

Celerity

Celerity

An expressive programming language for writing concurrent and maintainable software.

[![License](https://img.shields.io/github/license/vezel-dev/celerity?color=brown)](LICENSE-0BSD) [![Commits](https://img.shields.io/github/commit-activity/m/vezel-dev/celerity/master?label=commits&color=slateblue)](https://github.com/vezel-dev/celerity/commits/master) [![Build](https://img.shields.io/github/actions/workflow/status/vezel-dev/celerity/build.yml?branch=master)](https://github.com/vezel-dev/celerity/actions/workflows/build.yml) [![Discussions](https://img.shields.io/github/discussions/vezel-dev/celerity?color=teal)](https://github.com/vezel-dev/celerity/discussions) [![Discord](https://img.shields.io/badge/discord-chat-7289da?logo=discord)](https://discord.gg/wtzCfaX2Nj) [![Zulip](https://img.shields.io/badge/zulip-chat-394069?logo=zulip)](https://vezel.zulipchat.com)

[!WARNING] This is currently in-development vaporware.

Celerity is a programming language aiming for a good balance of productivity and scalability while being easily embeddable in host applications.

Celerity is expression-oriented, multi-paradigm, and features optional type checking. Some notable features are pattern matching, first-class functions with closures, opt-in mutability, explicit yet terse error propagation, concurrency based on lightweight agents, and non-suspending garbage collection.

Usage

This project offers the following packages:

Package Description Downloads
celerity Provides the .NET global tool. Downloads
Vezel.Celerity.Language Provides language analysis services such as lexing, parsing, binding, and linting. Downloads
Vezel.Celerity.Language.Library Provides the language's standard library. Downloads
Vezel.Celerity.Language.Tooling Provides user-oriented tooling such as project management and diagnostic rendering. Downloads
Vezel.Celerity.Language.Service Provides the Language Server Protocol implementation. Downloads
Vezel.Celerity.Runtime Provides shared components of the runtime system such as the bytecode lowerer, garbage collector, and agent scheduler. Downloads
Vezel.Celerity.Runtime.Kernel Provides the host operating system interfaces for the runtime system. Downloads
Vezel.Celerity.Runtime.Interpreter Provides the portable bytecode interpreter which does not require dynamic code generation. Downloads
Vezel.Celerity.Runtime.Compiler Provides the optimizing just-in-time compiler for 64-bit systems. Downloads

To install a tool package in a project, run dotnet tool install <name>. To install it globally, also pass -g.

To install a library package, run dotnet add package <name>.

For more information, please visit the project home page.

Building

You will need the .NET SDK and Node.js installed. Simply run ./cake (a Bash script) to build artifacts and run tests. You can also run ./cake pack to avoid running tests, or ./cake test to just build and run tests.

These commands will use the Debug configuration by default, which is suitable for development and debugging. Pass -c Release instead to get an optimized build.

License

This project is licensed under the terms found in LICENSE-0BSD.