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 (functor/3 for example). Some 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.