7 Units
On this page:
top
up

7.12Transformer HelpersπŸ”— i

The racket/unit-exptime library provides procedures that are intended for use by macro transformers. In particular, the library is typically imported using for-syntax into a module that defines macro with define-syntax .

procedure

( unit-static-signatures unit-identifier
err-syntax)
unit-identifier:identifier?
err-syntax:syntax?
If unit-identifier is bound to static unit information via define-unit (or other such forms), the result is two values. The first value is for the unit’s imports, and the second is for the unit’s exports. Each result value is a list, where each list element pairs a symbol or #f with an identifier. The symbol or #f indicates the import’s or export’s tag (where #f indicates no tag), and the identifier indicates the binding of the corresponding signature.

If unit-identifier is not bound to static unit information, then the exn:fail:syntax exception is raised. In that case, the given err-syntax argument is used as the source of the error, where unit-identifier is used as the detail source location.

procedure

( signature-members sig-identifier
sig-identifier:identifier?
err-syntax:syntax?
If sig-identifier is bound to static unit information via define-signature (or other such forms), the result is four values:

  • an identifier or #f indicating the signature (of any) that is extended by the sig-identifier binding;

  • a list of identifiers representing the variables supplied/required by the signature;

  • a list of identifiers for variable definitions in the signature (i.e., variable bindings that are provided on import, but not defined by units that implement the signature); and

  • a list of identifiers with syntax definitions in the signature.

Each of the result identifiers is given lexical information that is based on sig-identifier, so the names are suitable for reference or binding in the context of sig-identifier. See define-signature for more information.

If sig-identifier is not bound to a signature, then the exn:fail:syntax exception is raised. In that case, the given err-syntax argument is used as the source of the error, where sig-identifier is used as the detail source location.

procedure

( unit-static-init-dependencies unit-identifier
err-syntax)
unit-identifier:identifier?
err-syntax:syntax?
If unit-identifier is bound to static unit information via define-unit (or other such forms), the result is a list of pairs. Each pair combines a tag (or #f for no tag) and a signature name, indicating an initialization dependency of the unit on the specified import (i.e., the same tag and signature are included in the first result from unit-static-signatures ).

If unit-identifier is not bound to static unit information, then the exn:fail:syntax exception is raised. In that case, the given err-syntax argument is used as the source of the error, where unit-identifier is used as the detail source location.

Added in version 6.1.1.8 of package base.

top
up

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /