Jekejeke Prolog 1.2.3 (type 1 and type 2 API)
Jan Burse, created Oct 02. 2017
We have just uploaded the new release of Jekejeke Prolog. We now provide simultaneously a type 1 and a type 2 API for attributed variables. So whats new in this release:
- Module domain:
There is a new module domain which provides following HTTP redirects and Puny coding domain names. This is used by the loader as well. But since we have added a negative cache for packages that are not subject to interactive make/0, loading of such packages including the startup of the Prolog interpreter is in general now faster.
- Local Modules:
There are new two directives begin_module/1 and end_module/0 which can be either used in the top-level query answer loop or inside consulted files. They will indicated a new local module. Local modules come with a set of new qualification and visibility rules, but do nevertheless also work with the interactve make/0.
- Type 1 and Type 2 API:
When the Jekejeke Minlog extension is used, the Prolog interpreter will also provide type 1 and type 2 attributed variable hooks realized on top of our own low-level attribute variables API. The module term/verify will provide XXX_atts access and pre-unify hooks and the module term/unify will provide XXX_attr access and post-unify hooks.
For a little example see this primitive BDD solver using the post-unify hooks. The same source code runs in Jekejeke Prolog and SWI-Prolog: