eyeprolog

ISO/WG17 compatibility extensions

EyeProlog separates its strict ISO core from carefully selected compatibility extensions. isoStrict: true targets ISO/IEC 13211-1:1995 plus Corrigenda 1-3; newer or non-core features belong in the normal profile until they are part of the claimed strict baseline.

Selection rule

A proposed extension is a good candidate when it has all of these properties:

  1. it solves a concrete portability or usability problem;
  2. its syntax/semantics are precise enough to test independently;
  3. it has clear WG17 momentum, a published ISO technical specification, or established interoperable implementation practice; and
  4. it does not silently change strict ISO behavior.

This intentionally excludes adopting every discussion item on the ISO Prolog working-notes pages. Draft/editorial proposals can change, and controversial changes are more valuable as tracked tests/documentation than as premature language behavior.

Implemented high-value items

What should be considered next?

The best next work is evidence-driven rather than feature-count driven:

In particular, the digit-separator page currently leaves float separator forms such as 1_1.25, 11.2_5, and 1.0e1_0 unresolved. EyeProlog therefore does not generalize integer separators into float syntax.

Regression expectations

Every accepted compatibility extension should have tests for positive syntax, negative/boundary syntax, stream or conversion entry points where applicable, and an explicit strict-mode rejection when the feature is not in the strict baseline. This keeps the normal profile useful without weakening the meaning of isoStrict: true.