racket/pkgs/racket-doc/scribblings/reference/macros.scrbl
Matthew Flatt 181b9c80ac add syntax-serialize and syntax-deserialize
The new functions provide a more direct way to serialize and
deserialize syntax objects than compiling and running a `quote-syntax`
form. The new functions also offer additional configuration related to
preserving extra syntax properties and limiting the use of shared
"bulk binding" tables (i.e., tables that must provided by module
declarations in the namespace).

This change does not add syntax-object support to `serialize` or
`s-exp->fasl`, because serialized syntax objects are still in many
ways like code: they are version-specific, and their invariants can be
broken by mangling the serialized form (in much the same way that
compiled code can be broken by mangling, and with similar safetly
implications).
2021-04-01 08:05:51 -06:00

29 lines
819 B
Racket

#lang scribble/doc
@(require "mz.rkt")
@title[#:style 'toc]{Macros}
@guideintro["macros"]{Macros}
See @secref["syntax-model"] for general information on how programs
are parsed. In particular, the subsection @secref["expand-steps"]
describes how parsing triggers macros, and
@secref["transformer-model"] describes how macro transformers are
called.
@local-table-of-contents[]
@include-section["stx-patterns.scrbl"]
@include-section["stx-ops.scrbl"]
@include-section["stx-comp.scrbl"]
@include-section["stx-trans.scrbl"]
@include-section["stx-param.scrbl"]
@include-section["splicing.scrbl"]
@include-section["stx-props.scrbl"]
@include-section["stx-taints.scrbl"]
@include-section["stx-expand.scrbl"]
@include-section["stx-serialize.scrbl"]
@include-section["include.scrbl"]
@include-section["syntax-util.scrbl"]