Skip to content

Standards compliance

Paulo Moura edited this page Jun 1, 2015 · 18 revisions

JIProlog offers a high degree of compliance with official and de facto Prolog standards. This includes:

JIProlog builds are regularly tested with the latest version available of the Prolog conformance suite distributed with Logtalk. The contents of this section are expected to reflect the latest build of JIProlog. We plan on fixing most existing compliance issues in future builds.

Updated for version 4.0.18.1.

Deviations from the standard

JIProlog currently allows setting of user-defined stream properties using a set_stream_property/2 built-in predicate. As a consequence, the standard stream_property/2 predicate will fail instead of throwing a domain error when called with its second argument instantiated to a unknown property.

In general, no type-checking is applied to output arguments (e.g. in the sort/2 and keysort/2 ISO standard predicates).

Non-supported directives

  • char_conversion/2

Non-supported built-in predicates

  • set_stream_position/2 (error checking only as stream repositioning is currently not supported)
  • char_conversion/2 (JIProlog supports US-ASCII and UTF-8)
  • current_char_conversion/2

Non-supported built-in predicate options

The open/4 built-in predicate reposition/1 is checked but ignored as stream repositioning is currently not supported.

The write_term/3 built-in predicate standard options are currently not supported. Use as alternative the write/1-2, writeq/1-2, and write_canonical/1 built-in predicates.