Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #53744 > unrolled thread
| Started by | Mild Shock <janburse@fastmail.fm> |
|---|---|
| First post | 2025-08-02 15:44 +0200 |
| Last post | 2025-08-20 15:12 +0200 |
| Articles | 3 — 1 participant |
Back to article view | Back to comp.lang.java.programmer
ANN: Dogelog Player 1.3.5 (Cyclic Terms) Mild Shock <janburse@fastmail.fm> - 2025-08-02 15:44 +0200
Landin's Knot in Dogelog Player (Re: ANN: Dogelog Player 1.3.5 (Cyclic Terms)) Mild Shock <janburse@fastmail.fm> - 2025-08-15 19:57 +0200
Program Sharing in Dogelog Player (Re: ANN: Dogelog Player 1.3.5 (Cyclic Terms)) Mild Shock <janburse@fastmail.fm> - 2025-08-20 15:12 +0200
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2025-08-02 15:44 +0200 |
| Subject | ANN: Dogelog Player 1.3.5 (Cyclic Terms) |
| Message-ID | <106l4on$366q0$3@solani.org> |
Dear All, We are happy to announce a new edition of the Dogelog player: - Enhanced Core: We provide internally unify_cyclic() which implements Hopcroft & Karp (1971) algorithm and can deal with cyclic terms. It is accessible via the built-in predicate (=)/2 and also used by the Prolog interpreter for solving clauses. Similar there is an enhanced (==)/2 available to the end-user. - Enhanced library(tools): The debugger is now cyclic term aware and uses a term factoring based on a new same_term/2 before printing a goal. The display is simply a conjunction Equation_1, .., Equation_n, Goal, where the equations are necessary to break cycles. As before Prolog variables are still printed by their serial number. - Enhanced library(session): The answer display is now cyclic term aware and uses the same term factoring as the debugger. Answer substitutions and cycle breaking equations are interspersed. We tried hard to not break old features, such as fresh singleton variable names, fresh multiton variable names and marked variables suppression. Have Fun! Jan Burse, https://www.herbrand.ai/ , 02.08.2025
[toc] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2025-08-15 19:57 +0200 |
| Subject | Landin's Knot in Dogelog Player (Re: ANN: Dogelog Player 1.3.5 (Cyclic Terms)) |
| Message-ID | <107nse8$3cc5$4@solani.org> |
| In reply to | #53744 |
Dogelog Player is a Prolog system written in 100% Prolog for the target platforms JavaScript, Python and Java. We recently introduced the display of cyclic terms in the top-level. As a next iteration we turned all built-ins upside down, gave it either a visitor pattern or union find, so that they can deal with cyclic terms. The final step is then to untie Landin's Knot. The new predicates term_decompose/2 and term_canonical/2 have found applications in library(sequence) and library(aggregate). The result is primarily a structural compare among cyclic terms, which the end-user can lift to a canonical compare. See also: Landin's Knot in Dogelog Player https://qiita.com/j4n_bur53/items/f096445f959998768316 Mild Shock schrieb: > Dear All, > > We are happy to announce a new edition > of the Dogelog player: > > - Enhanced Core: > We provide internally unify_cyclic() which implements > Hopcroft & Karp (1971) algorithm and can deal with > cyclic terms. It is accessible via the built-in > predicate (=)/2 and also used by the Prolog interpreter > for solving clauses. Similar there is an enhanced > (==)/2 available to the end-user. > > - Enhanced library(tools): > The debugger is now cyclic term aware and uses a term > factoring based on a new same_term/2 before printing > a goal. The display is simply a conjunction Equation_1, > .., Equation_n, Goal, where the equations are necessary > to break cycles. As before Prolog variables are still > printed by their serial number. > > - Enhanced library(session): > The answer display is now cyclic term aware and uses > the same term factoring as the debugger. Answer > substitutions and cycle breaking equations are > interspersed. We tried hard to not break old features, > such as fresh singleton variable names, fresh multiton > variable names and marked variables suppression. > > Have Fun! > > Jan Burse, https://www.herbrand.ai/ , 02.08.2025
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2025-08-20 15:12 +0200 |
| Subject | Program Sharing in Dogelog Player (Re: ANN: Dogelog Player 1.3.5 (Cyclic Terms)) |
| Message-ID | <1084hke$b2pf$3@solani.org> |
| In reply to | #53745 |
Dogelog Player is a Prolog system for the targets JavaScript, Python and Java. It is a mongrel, half formerly Jekejeke Prolog and half X-Prolog ZIP. Concerning program sharing (PS) it offers a compromise between full sharing in Jekejeke Prolog and no-sharing in X-Prolog ZIP. Without extra syntax like tuple (x1,..,xn) versus list [x1,..,xn] we now have frozen Prolog terms in Dogelog Player. They are beneficial for the garbage collector and provide safer mutations. Regression testing shows that our compilation schemes don’t affect the runtime. See also: Program Sharing in Dogelog Player https://medium.com/@janburse_2989/7b0d9d13cc6f
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.java.programmer
csiph-web