C Compatibility with other Prolog dialects
AllApplicationManualNameSummaryHelp

  • Documentation
    • Reference manual
      • Compatibility with other Prolog dialects
        • expects_dialect/1
        • source_exports/2
        • Some considerations for writing portable code
        • Notes on specific dialects
    • Packages
Availability::- use_module(library(dialect)).(can be autoloaded)
Source:- 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.