ISO Conformance (flowlog.c)

Flowlog targets ISO/IEC 13211-1 behavior: if you write portable ISO Prolog, it should run the same here as in other ISO-focused systems.

This document describes the conformance strategy for Flowlog built from flowlog.c.

What “ISO compliant” means here

ISO/IEC 13211-1 defines the language and its built-in predicates. It does not define what an interactive REPL must look like.

Flowlog aims to match ISO semantics for:

The predicate/flag checklist is tracked in:

Non-ISO behavior (top-level UI)

These are deliberate UX choices for the binary and are not part of the ISO language definition:

Suites

This directory includes:

Notes:

Interpreting warnings

Some suite files temporarily set unknown=warning and intentionally call missing predicates to check the flag’s behavior. Flowlog prints a warning in that case; the suite still passes.

The runner tests/run_inria_suite.sh suppresses per-test stderr by default to keep output clean. To show warnings/errors for every file:

What conformance does not guarantee

Passing the INRIA suite is a strong signal, but it is not a mathematical proof of full ISO compliance. If you find a behavioral mismatch with another ISO-focused system, please reduce it to a small repro program and add it to tests/.