:- expects_dialect(+Dialect)This directive states that the code following the directive is written
for the given Prolog Dialect. See also dialect.
The declaration holds until the end of the file in which it appears. The
current dialect is available using prolog_load_context/2.
The exact behaviour of this predicate is still subject to discussion.
Of course, if Dialect matches the running dialect the
directive has no effect. Otherwise we check for the existence of
library(dialect/Dialect) and load it if the file is found.
Currently, this file has this functionality:
- Define system predicates of the requested dialect we do not have.
- Apply goal_expansion/2
rules that map conflicting predicates to versions emulating the
requested dialect. These expansion rules reside in the dialect
compatibility module, but are applied if prolog_load_context(dialect,
Dialect) is active.
- Modify the search path for library directories, putting libraries
compatible with the target dialect before the native libraries.
- Setup support for the default filename extension of the dialect.