Merge branch 'rebis-dev' into 0.9.0 release
Some checks failed
Test / build (macos-10.15, beta) (push) Has been cancelled
Test / build (macos-10.15, stable) (push) Has been cancelled
Test / build (ubuntu-20.04, beta) (push) Has been cancelled
Test / build (ubuntu-20.04, stable) (push) Has been cancelled

This commit is contained in:
Mark Thom
2022-03-06 09:39:28 -07:00
106 changed files with 38619 additions and 24832 deletions

View File

@@ -61,10 +61,14 @@ Extend Scryer Prolog to include the following, among other features:
- [x] A simple sockets library representing TCP connections as streams.
- [x] Incremental compilation and loading process, newly written,
primarily in Prolog.
- [ ] Improvements to the WAM compiler and heap representation:
- [ ] Replacing choice points pivoting on inlined semi-deterministic predicates
(`atom`, `var`, etc) with if/else ladders. (_in progress_)
- [ ] 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.
- [ ] A compacting garbage collector satisfying the five properties of
"Precise Garbage Collection in Prolog." (_in progress_, see
the [`rebis-dev` branch](https://github.com/mthom/scryer-prolog/tree/rebis-dev)
and its [announcement](https://github.com/mthom/scryer-prolog/discussions/1167))
"Precise Garbage Collection in Prolog." (_in progress_)
- [ ] Mode declarations.
## Phase 3
@@ -132,6 +136,8 @@ $> cargo run [--release]
The optional `--release` flag will perform various optimizations,
producing a faster executable.
Scryer Prolog must be built with **Rust 1.57 and up**.
### Docker Install (All Platforms)
First, install [Docker](https://docs.docker.com/get-docker/) on Linux,
@@ -205,9 +211,10 @@ predicates it defines. For example, with the program shown above:
; What = pure_world.
```
Press `SPACE` to show further answers, if any exist. Press `RETURN` or
 `.` to abort the search and return to the toplevel prompt.
Press `h` to show a help message.
Press `SPACE` to show further answers, if any exist. Press `RETURN`
or `.` to abort the search and return to the
toplevel prompt. Press `f` to see the next 5 answers, and
`a` to see all answers. Press `h` to show a help message.
To quit Scryer Prolog, use the standard predicate `halt/0`:
@@ -554,6 +561,7 @@ The modules that ship with Scryer Prolog are also called
* [`uuid`](src/lib/uuid.pl) UUIDv4 generation and hex representation
* [`tls`](src/lib/tls.pl)
Predicates for negotiating TLS connections explicitly.
* [`ugraphs`](src/lib/ugraphs.pl) Graph manipulation library
To use predicates provided by the `lists` library, write: