Merge remote-tracking branch 'upstream/rebis-dev' into add-ugraphs-library

This commit is contained in:
Adrián Arroyo Calle
2022-01-07 19:14:34 +01:00
93 changed files with 37379 additions and 23840 deletions

View File

@@ -7,6 +7,27 @@ programming, which is itself written in a high-level language.
![Scryer Logo: Cryer](logo/scryer.png)
# Rebis Development Branch
![Art Card](logo/art_card.jpg)
This is the Rebis Development Branch (rebis-dev). This iteration of
Rebis contains sweeping changes to the instruction dispatch loop
alongside a compacted heap representation. These changes are to
enhance the performance and robustness of Scryer Prolog and to prepare
for the introduction of a mark-compacting garbage collector.
Several performance enhancing changes are due before rebis-dev will be
considered ready for merging into master, among them:
* Replacing choice points pivoting on inlined deterministic predicates
(`atom`, `var`, etc) with if/else ladders
* Inlining all built-ins and system call instructions
* Greatly reducing the number of instructions used to compile disjunctives
* Storing short atoms to heap cells without writing them to the atom table
The rebis-dev branch should be built with **Rust 1.57 and up**.
## Phase 1
Produce an implementation of the Warren Abstract Machine in Rust, done