michalt / chalk

A PROLOG-ish interpreter written in Rust, intended eventually for use in the compiler

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status

chalk

A Prolog-ish interpreter written in Rust, intended perhaps for use in the compiler, but also for experimentation.

FAQ

How does chalk relate to rustc? The plan is to have rustc use the chalk-engine crate (in this repo), which defines chalk's solver. The rest of chalk can then be considered an elaborate unit testing harness. For more details, see the Traits chapter of the rustc-guide.

Where does the name come from? chalk is named after Chalkidiki, the area where Aristotle was born. Since Prolog is a logic programming language, this seemed a suitable reference.

Blog posts

Here are some blog posts talking about chalk:

REPL

There is a repl mainly for debugging purposes which can be run by cargo run. Some basic examples are in libstd.chalk:

$ cargo run
?- load libstd.chalk
?- Vec<Box<i32>>: Clone
Unique; substitution [], lifetime constraints []

Contributing

If you'd like to contribute, consider joining the Traits Working Group. We hang out on the rust-lang zulip in the #wg-traits stream.

See CONTRIBUTING.md for more info.

About

A PROLOG-ish interpreter written in Rust, intended eventually for use in the compiler

License:Other


Languages

Language:Rust 100.0%Language:Emacs Lisp 0.0%