Skip to main content

Module profile

Module profile 

Source
Expand description

Expression profile: the tuple of (revision, extensions, host context) that governs which functions, operators, and types are available for a given evaluation.

A profile is passed to FunctionLibrary::for_profile to obtain a library that matches the requested revision, extensions, and host context. Libraries are cached per rules-independent profile key, so callers that construct many libraries with the same spec shape and different path-mapping rules pay only the host-context registration cost per call.

The three axes modelled here correspond to the axes identified in the forward-compatibility evaluation report:

  • Axis A — revision: which base functions and operators exist (see ExprRevision).
  • Axis B — extensions: which add-on functions exist (see ExprExtension).
  • Axis C — host state: whether host-context implementations are real, stubbed, or absent (see HostContext).

Axis D (scope-specific symbol availability) is handled by the caller building an appropriate SymbolTable — it is orthogonal to the profile.

Structs§

ExprProfile
A complete expression profile: revision, enabled extensions, and host context.

Enums§

ExprExtension
Expression-language extensions.
ExprRevision
Expression-language specification revision.
HostContext
Host-context state available to expression evaluation.