strawberry9/CobaltC

The home of the CobaltC compiler (currently just an interpretor).

Rust

0

0 commits

updated Sep 21, 2026

See the code

See what people are saying (1)

SourceMessageScoreDate

The CobaltC interpreter has landed

1

Sep 21, 2026

README

Project Logo

This is the offical home of the CobaltC Compiler (currently just an interpreter).

CobaltC is a statically typed systems programming language providing explicit ownership, deterministic destruction, compiler-checked borrowing, inferred lifetimes, explicit nullability, bounds-safe operations, structured error handling, safe concurrency, explicit unsafe operations, and explicit foreign-function interfaces.

The language is intended for software requiring predictable resource management, strong memory safety, native execution, and controlled interaction with low-level facilities.

The latest publication version of the specification is available here

Building the interpreter

The interpreter lives in the impl directory and is a standard Rust Cargo project with one dependency (libc).

The build targets the environment it was developed and verified on, and is only known to work there:

  • Ubuntu 22.04 LTS on x86_64 (Linux 6.8)
  • Rust 1.98.1 with Cargo 1.98.1, installed from https://rustup.rs

The interpreter uses libc for the write extern (the POSIX write(2) call) and the standard library's threads, so it will most likely build on other Linux distributions and probably on other POSIX systems, but those have not been tried. Windows is not supported.

Build a release binary:

cd impl
cargo build --release

The binary is written to impl/target/release/coby. It takes one CobaltC source file, runs the static checks and then executes main:

./target/release/coby conformance/06-arithmetic/checked_add_none_and_some.cb

A program that runs to completion exits with status 0. A program the specification rejects prints the diagnostic, the phase it was caught in (static or dynamic), the rule it violated and the source line, then exits with status 1. Setting COBALTC_TRACE=1 in the environment prints additional detail about where a rejection came from.

Run the full test suite, which includes every row of the specification's conformance table:

cd impl
cargo test --release

License

Copyright © 2026 strawberry9.

This repository contains software and other creative content, which are licensed separately.

Source Code

Unless otherwise stated, all source code in this repository is licensed under the BSD 3-Clause License.

See LICENSE for the full license text.

Documentation and Creative Content

Unless otherwise stated, the documentation, language specification, written content, images, graphics, and other original creative content in this repository are licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License (CC BY-NC-ND 4.0).

This means you may share the licensed content for non-commercial purposes, provided that you give appropriate attribution and comply with the license terms. You may not distribute modified versions of the licensed content.

See LICENSE-CC-BY-NC-ND for the complete license text.

Full license: https://creativecommons.org/licenses/by-nc-nd/4.0/

Third-Party Content

Third-party materials included in this repository may be subject to their own licenses and terms. Such materials are not necessarily covered by either license above. Where applicable, their respective licenses and attribution notices are provided alongside the relevant materials.

strawberry9/CobaltC

The home of the CobaltC compiler (currently just an interpretor).

Rust

0

0 commits

updated Sep 21, 2026

See the code

See what people are saying (1)

SourceMessageScoreDate

The CobaltC interpreter has landed

1

Sep 21, 2026

README

Project Logo

This is the offical home of the CobaltC Compiler (currently just an interpreter).

CobaltC is a statically typed systems programming language providing explicit ownership, deterministic destruction, compiler-checked borrowing, inferred lifetimes, explicit nullability, bounds-safe operations, structured error handling, safe concurrency, explicit unsafe operations, and explicit foreign-function interfaces.

The language is intended for software requiring predictable resource management, strong memory safety, native execution, and controlled interaction with low-level facilities.

The latest publication version of the specification is available here

Building the interpreter

The interpreter lives in the impl directory and is a standard Rust Cargo project with one dependency (libc).

The build targets the environment it was developed and verified on, and is only known to work there:

  • Ubuntu 22.04 LTS on x86_64 (Linux 6.8)
  • Rust 1.98.1 with Cargo 1.98.1, installed from https://rustup.rs

The interpreter uses libc for the write extern (the POSIX write(2) call) and the standard library's threads, so it will most likely build on other Linux distributions and probably on other POSIX systems, but those have not been tried. Windows is not supported.

Build a release binary:

cd impl
cargo build --release

The binary is written to impl/target/release/coby. It takes one CobaltC source file, runs the static checks and then executes main:

./target/release/coby conformance/06-arithmetic/checked_add_none_and_some.cb

A program that runs to completion exits with status 0. A program the specification rejects prints the diagnostic, the phase it was caught in (static or dynamic), the rule it violated and the source line, then exits with status 1. Setting COBALTC_TRACE=1 in the environment prints additional detail about where a rejection came from.

Run the full test suite, which includes every row of the specification's conformance table:

cd impl
cargo test --release

License

Copyright © 2026 strawberry9.

This repository contains software and other creative content, which are licensed separately.

Source Code

Unless otherwise stated, all source code in this repository is licensed under the BSD 3-Clause License.

See LICENSE for the full license text.

Documentation and Creative Content

Unless otherwise stated, the documentation, language specification, written content, images, graphics, and other original creative content in this repository are licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License (CC BY-NC-ND 4.0).

This means you may share the licensed content for non-commercial purposes, provided that you give appropriate attribution and comply with the license terms. You may not distribute modified versions of the licensed content.

See LICENSE-CC-BY-NC-ND for the complete license text.

Full license: https://creativecommons.org/licenses/by-nc-nd/4.0/

Third-Party Content

Third-party materials included in this repository may be subject to their own licenses and terms. Such materials are not necessarily covered by either license above. Where applicable, their respective licenses and attribution notices are provided alongside the relevant materials.

Languages

Rust

100.0%