Jekejeke Prolog 0.8.5: Functional Update

Date: October 11, 2010

Introduction

The newest release 0.8.5 of Jekejeke Prolog serves the purpose of a functional upgrade. Various functions have been newly added and errors in existing functions have been fixed. The compatibility with the ISO core standard has been check by means of an appropriately created test suite. In the following we will present the results of this check in more detail.

Omissions

Compared to the previous release many new functions could be added. We could succeed in adding DCGs, set predicates and bitwise operations to the system. Further we could some problems in connection with the logical operations. Nevertheless our system does not yet cover the full functionality of the ISO core standard. The following predicates and evaluable functions have not yet been implemented:

Type Group Count
Predicate
Atomic term processing
6
Predicate Term input/output
6
Predicate Byte input/output
6
Predicate Character input/output
10
Predicate Stream selection and control
13
Predicate Directives 5
Evaluable function
Trigonometric 7
Total
53

Discrepancies

To check the compatibility between the existing functions and the ISO core standard we have created a test suite. The sources for our test cases in the suite were the examples from the ISO core standard. We could extract ca. 500 test cases from the examples. The test cases are executed by the test tool that is integrated into Jekejeke Prolog. The following bar chart shows the result group by the Jekejeke Prolog theories:


Picture 1: Test Results

In the average 8.1% of the test cases failed. Relatively seen the most test cases failed for the “consult” theory with 20.2%. The fewest test cases failed in the “structure” theory with 3.7%. The results are very promising, since they show that we would not have a very long path ahead for full ISO compliance. There were no test case failures which we could not explain.

Outlook

We have analysed the failures into a set of findings. Some findings we see as errors that need fixing. For other findings we have doubt that the ISO core standard has made the right choice. For these findings we will try to preserve the Jekejeke Prolog functionality via some flags. The full report of our compatibility test can be downloaded from the web site www.jekejeke.ch. Until we reach full ISO compatibility we will continue the beta-test program.

Jan Burse
Managing Director