Option Effect --------------------------------------------------------------- debug debuggable code, no inline compilation nodebug non-debuggable code, inline compilation done skip set the skipped flag for all compiled predicates noskip don't (default) expand do inline compilation noexpand don't system set the type of all compiled predicates to built_inThe default for debug/nodebug depends on the global flag debug_compile. The default for expand/noexpand depends on the global flag goal_expansion. The global flags are set with set_flag/2 and tested with get_flag/2.
Pragmas which the compiler does not recognise are silently ignored by the compiler, but are recorded and can be retrieved using current_pragma/1. Such pragmas can be atoms or structures with arbitrary arguments.
:- pragma(debug). :- pragma(expand). twice(X, Y) :- % this is compiled into debuggable Y is 2*X. % code with expanded arithmetic