Jekejeke Prolog 1.5.0 (Dynamic Freshness)
Jan Burse, created Mar 22. 2021
We just uploaded a new release of Jekejeke Prolog. The following major improvements are provided:
- Dynamic Freshness:
We rolled back the static compilation of unify_linear instructions to optimize away the occurs check. Instead the Prolog interpreter now uses a dynamic runtime heuristic, so that it can decide whether a variable is fresh. Slightly faster and little bit more versatile.
- var/1 Indexing:
We noticed that var/1 indexing was also applied to dynamic predicates and could result in omitted clauses. var/1 Indexing is now only applied to static predicates and as before, ISO core standard compliant, we do not allow clause/2 for static predicates.
- Rule Listing:
There are new predicates sys_rule/3 and sys_rule_ref/4 which allow access to the internal getList() which can retrieve the clauses of a static predicate. Thanks to these predicates listing/[0,1] and friends are now written in Prolog itself.
Happy coding! #StaySafe