insn.module

Generate module definitions.

*bytecode-version*

dynamic

The bytecode version to use for modules if unspecified.

generate

(generate m)
Alias of `visit`.

visit

(visit m)
Generate a module definition from the given map. Returns a map of the
module's class :name (always "module-info") and :bytes. Options:

  :id        name of the module (required). May be given as a simple
             name or as a tuple of [name module-version].

  :flags     seq of module flags (e.g., :open). See `insn.util`.

  :exports   sequence of exported packages. Each export may be given
             as a fully-qualified package name, or a map with :package
             (required), :flags, and :modules keys.

  :opens     sequence of opened packages. Accepts the same element
             values as :exports.

  :provides  map of services provided by this module of the form
             {service impl}, where impl is either a single type or a
             sequence of types that implement the service.

  :requires  sequence of modules required by this module. Each
             dependency may be given as a simple name or a map with
             :id (required), and :flags. Like the top-level :id
             option, :id may be given as a tuple.

  :uses      sequence of service types used by the module.

  :version   bytecode version given as an integer. Must be >= 9.
             Defaults to 9.