compiler, runtime and standard library of the Core programming language – https://core-lang.dev
  • Rust 96.9%
  • JavaScript 1.2%
  • Java 0.9%
  • Ruby 0.6%
  • Shell 0.2%
2026-01-10 19:31:47 +01:00
.github/workflows rename "Dora" to "Core" 2025-10-18 14:37:11 +02:00
.vscode rename "Dora" to "Core" 2025-10-18 14:37:11 +02:00
bench stdlib: rename shiftLeft/shiftRight/shiftRightSigned to shiftUp/shiftDown/shiftDownSigned 2026-01-04 21:32:03 +01:00
core wip 2026-01-10 19:31:47 +01:00
core-asm chore: let cargo fmt do its thing for Rust edition 2024 2025-11-26 23:43:01 +01:00
core-parser lang: introduce contextual keyword of 2025-11-26 23:43:02 +01:00
stdlib stdlib: move stdlib sources out of core crate 2026-01-04 21:32:03 +01:00
tests WIP runtime: vtable space allocation 2026-01-04 21:32:03 +01:00
tooling/core.tmbundle tool: drop enum from TextMate grammar 2025-11-26 23:43:02 +01:00
tools tool: improve error reporting of test runner 2025-11-26 23:43:01 +01:00
.gitignore chore: add .idea directory to .gitignore 2025-10-18 14:37:12 +02:00
Cargo.lock dep: replace uses of libc with rustix 2026-01-04 21:32:03 +01:00
Cargo.toml rename "Dora" to "Core" 2025-10-18 14:37:11 +02:00
LICENSE update and adjust README 2025-10-18 14:37:10 +02:00
LICENSE-DORA update and adjust README 2025-10-18 14:37:10 +02:00
README.md fix formatting in README 2025-10-18 14:37:11 +02:00
rust-toolchain switch back to stable release 2022-04-08 22:48:38 +02:00

The Core Programming Language

The source repository of the Core Programming Language implementation. Works on Linux, Windows and macOS (x86_64 and aarch64).

The source repository of the Core Programming Language website can be found here.

Setup

Install Rust through rustup.rs.

Compilation

# build in debug and release mode
cargo build && cargo build --release

Testing

The test runner is implemented in Ruby and therefore a Ruby interpreter needs to be installed on your system (e.g. brew/dnf/apt install ruby).

# run all tests in debug and release mode (needs Ruby)
tools/test && tools/test-release # Linux and macOS
tools/test.bat && tools/test-release.bat # Windows

Working on the standard library

The standard library (stdlib) is included into the core-binary at compile time. Changing the stdlib therefore requires recompiling Core, even though the stdlib is written in Core. In order to avoid this recompilation when working on the stdlib, simply pass your working directory of the stdlib to Core using the --stdlib argument. With this parameter, Core loads the stdlib from the specified directory instead of the one bundled in the executable.

Acknowledgement

Core is derived from the Dora programming language, created by its contributors. It would not exist without the groundwork laid in the Dora project. Thanks to all contributors!

License

The Core Programming Language is licensed under a mix of MIT and MPL-2.0, as follows:

  • Code derived from Dora is licensed under Dora's MIT license.

  • Contributions made to this repository are licensed under the MPL-2.0.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the MPL-2.0 license, shall be licensed under the MPL-2.0 license, without any additional terms or conditions.