From db3865004ab617232455f8e6baf7f5b07e2ab166 Mon Sep 17 00:00:00 2001 From: Robert Jacobson Date: Sat, 18 Feb 2023 15:49:42 -0500 Subject: [PATCH 1/2] Added links to referenced research papers in the Phase 2 and Nice to Have Features sections. --- README.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index d421bfa07..4022f26b6 100644 --- a/README.md +++ b/README.md @@ -12,8 +12,7 @@ programming, which is itself written in a high-level language. Produce an implementation of the Warren Abstract Machine in Rust, done according to the progression of languages in [Warren's Abstract -Machine: A Tutorial -Reconstruction](https://github.com/mthom/scryer-prolog/blob/master/wambook/wambook.pdf). +Machine: A Tutorial Reconstruction](https://github.com/mthom/scryer-prolog/blob/master/wambook/wambook.pdf). Phase 1 has been completed in that Scryer Prolog implements in some form all of the WAM book, including lists, cuts, Debray allocation, first @@ -52,9 +51,9 @@ Extend Scryer Prolog to include the following, among other features: `bb_put/2` (non-backtrackable) and `bb_b_put/2` (backtrackable). - [x] Delimited continuations based on reset/3, shift/1 (documented in - "Delimited Continuations for Prolog"). + "[Delimited Continuations for Prolog](https://www.swi-prolog.org/download/publications/iclp2013.pdf)"). - [x] Tabling library based on delimited continuations - (documented in "Tabling as a Library with Delimited Control"). + (documented in "[Tabling as a Library with Delimited Control](https://www.ijcai.org/Proceedings/16/Papers/619.pdf)"). - [x] A _redone_ representation of strings as difference lists of characters, using a packed internal representation. - [x] clp(B) and clp(ℤ) as builtin libraries. @@ -69,7 +68,7 @@ Extend Scryer Prolog to include the following, among other features: - [ ] 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_) + "[Precise Garbage Collection in Prolog](https://www.swi-prolog.org/download/publications/lifegc.pdf)." (_in progress_) - [ ] Mode declarations. ## Phase 3 @@ -88,12 +87,12 @@ nice to have in the future. They'd make a good project for anyone wanting to contribute code to Scryer Prolog. 1. Implement the global analysis techniques described in Peter van -Roy's thesis, "Can Logic Programming Execute as Fast as Imperative -Programming?" +Roy's thesis, "[Can Logic Programming Execute as Fast as Imperative +Programming?](https://www.info.ucl.ac.be/~pvr/Peter.thesis/Peter.thesis.html)" 2. Add unum representation and arithmetic, using either an existing unum implementation or an ad hoc one. Unums are described in -Gustafson's book "The End of Error." +Gustafson's book "[The End of Error](http://www.johngustafson.net/unums.html)." 3. Add concurrent tables to manage shared references to atoms and strings. From e3c9397f2b3406371ae27297884fe7e4fb4c1649 Mon Sep 17 00:00:00 2001 From: Robert Jacobson Date: Sun, 19 Feb 2023 20:10:21 -0500 Subject: [PATCH 2/2] Changed the links for the delimited continuations papers and the precise garbage collection paper. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4022f26b6..6b212b6a8 100644 --- a/README.md +++ b/README.md @@ -51,9 +51,9 @@ Extend Scryer Prolog to include the following, among other features: `bb_put/2` (non-backtrackable) and `bb_b_put/2` (backtrackable). - [x] Delimited continuations based on reset/3, shift/1 (documented in - "[Delimited Continuations for Prolog](https://www.swi-prolog.org/download/publications/iclp2013.pdf)"). + "[Delimited Continuations for Prolog](https://biblio.ugent.be/publication/5646080/file/5646081)"). - [x] Tabling library based on delimited continuations - (documented in "[Tabling as a Library with Delimited Control](https://www.ijcai.org/Proceedings/16/Papers/619.pdf)"). + (documented in "[Tabling as a Library with Delimited Control](https://biblio.ugent.be/publication/6880648/file/6885145.pdf)"). - [x] A _redone_ representation of strings as difference lists of characters, using a packed internal representation. - [x] clp(B) and clp(ℤ) as builtin libraries. @@ -68,7 +68,7 @@ Extend Scryer Prolog to include the following, among other features: - [ ] 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](https://www.swi-prolog.org/download/publications/lifegc.pdf)." (_in progress_) + "[Precise Garbage Collection in Prolog](https://www.complang.tuwien.ac.at/ulrich/papers/PDF/2008-ciclops.pdf)." (_in progress_) - [ ] Mode declarations. ## Phase 3