Skip to main content

Crate sim_lib_binding

Crate sim_lib_binding 

Source
Expand description

Binding behavior for the SIM runtime: lexical, dynamic, and scoped binding.

The kernel defines the binding-related contracts; this crate supplies the concrete binding organ (lexical/letrec scopes, dynamic parameters, modes).

Structs§

BindingProfileModes
The binding and hygiene modes selected for a language profile.
DynamicEnv
A stack of dynamic-extent binding frames shared across clones.
LexicalEnv
A lexical scope: a frame of name-to-value slots chained to its parent.
LexicalFunction
A closure that captures a LexicalEnv and is callable as a runtime object.
Parameter
A dynamic parameter: a named fluid binding with a fallback default.

Enums§

BindingScopeMode
How a language profile scopes its bindings.
HygieneMode
How a language profile treats macro hygiene.

Statics§

RECIPES
Cookbook recipes for the binding organ, embedded at build time.

Functions§

binding_dynamic_let_op_key
Operation key for the dynamic-let form (dynamic-extent binding).
binding_let_op_key
Operation key for the let form (parallel lexical binding).
binding_let_star_op_key
Operation key for the let* form (sequential lexical binding).
binding_letrec_op_key
Operation key for the letrec form (mutually recursive lexical binding).
binding_op_keys
All operation keys contributed by the binding organ, in claim order.
binding_organ_symbol
Symbol identifying the binding organ in the claim store.
binding_parameterize_op_key
Operation key for the parameterize form (dynamic parameter rebinding).
binding_profile_modes_op_key
Operation key for the profile-modes form (per-profile binding/hygiene modes).
eval_let
Evaluates a let form: parallel bindings in a fresh child scope.
eval_let_star
Evaluates a let* form: sequential bindings in a fresh child scope.
eval_letrec
Evaluates a letrec form: mutually recursive bindings in a child scope.
lexical_function_value
Wraps a LexicalFunction as an opaque, callable runtime Value.
publish_binding_organ_claims
Publishes the binding organ’s claims and operation keys into a Cx.
publish_binding_organ_claims_for_lib
Publishes binding organ claims as part of a loaded lib receipt.

Type Aliases§

BindingInitializer
Computes a binding’s initial value within a (possibly partial) scope.