Option Effect --------------------------------------------------------------- [no]debug generate debuggable code [no]expand do goal expansion/inline compilation opt_level(N) set optimizer level (N>=0) [no]skip set the skipped flag for all compiled predicates system set the type of all compiled predicates to 'built_in' [no]warnings generate compiler warningsThe default for debug/nodebug depends on the global flag debug_compile and the debug compiler option. The default for expand/noexpand depends on the global flag goal_expansion and the expand_goals compiler option. The default for opt_level depends on the opt_level compiler option. The default for skip is off. The default for warnings is on. 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