#low-level #multi-threading #programming-language #data-structures #compilation #incremental #catalist

nightly catalyst_entities

Low level data-structures for multithreaded and incremental compilation

3 releases

0.1.2 Mar 18, 2023
0.1.1 Mar 18, 2023
0.1.0 Mar 18, 2023

#471 in Programming languages

44 downloads per month

MIT license

155KB
4.5K SLoC

Catalyst

General purpose Programming language, focused on metaprogramming (not quite threre yet). Language is designed with simple syntax that does not face any parsing edge cases. Catalist tries to offer similar to same features as Rust and Nim combined. Language is low level, powered by Cranelift backend. Compiler is highly paralelized and incemental, I in general consider performance for better or worse.

Quick-Start

Requirements

Either of:

All of:

Support

Tested on:

  • Arch Linux

Untested but should work:

  • Windows - maybe
  • Mac - unlikely
  • Linux - likely

Installation

git clone --depth 1 http://github.com/jakubDoka/Catalyst
cd Catalyst
cargo install --path .

Trouble-Shooting

TODO

Why should I try Catalyst?

Its a baby language that needs some stress testing. By that I mean I need someone who does not know how language works internally, to use the language. Tests that are performed are more of a sanity checks that verify key features work but in general dont test for correct error messages.

To put it simply, using Catalyst is charitative deed, not nesscesarly something you would do to be produdctive yet.

Why should I contribute to Catalyst?

If you tryed the language, and feel like some feature is missing or you are annoyed by some bug, and waiting for me to fix it is boring, you can take things into your own hands and make a pull request. Note though that pull request needs issue first.

Typos are categorized under bugs you can fix. (I do a lot of them :])


lib.rs:

Catalyst Enities

Crate contains core datastructures used by the catalyst programming language. This crate uses tons of nightly features, keep that in mind.

Contents

Main purpose of this crate is offer paralelized datastructiures with incremental compilation in mind. Things are highly specialized for processing acyclic dependency graphs, but also offers thread local specialized allocators for performant temporary allocations.

Some datastructures need to be persistent, and so they implement rkyv traits.

Package also reexports some crates for convenience of catalyst compiler.

More information in respective item docs.

Dependencies

~3–11MB
~119K SLoC