SWI-Prolog 3.3.0 implements all predicates described in ``Prolog: The Standard'' [Deransart et al., 1996].
Exceptions and warning are still weak. Some SWI-Prolog predicates silently fail on conditions where the ISO specification requires an exception (functor3 for example). Many predicates print warnings rather than raising an exception. All predicates where exceptions may be caused due to a correct program operating in an imperfect world (I/O, arithmetic, resource overflows) should behave according to the ISO standard. In other words: SWI-Prolog should be able to execute any program conforming to [Deransart et al., 1996] that does not rely on exceptions generated by errors in the program.