summaryrefslogtreecommitdiff
path: root/libguile/lightning/tests/boaddr_u.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2019-02-22 15:01:29 +0100
committerAndy Wingo <wingo@pobox.com>2019-02-22 15:11:29 +0100
commit61a8c9300daeb730fe5094f889bf13241942be84 (patch)
treebe251a985ba9d03b04e73f68d1679799298b002d /libguile/lightning/tests/boaddr_u.c
parentc537f938d1c809eb26e42c66bcc2b67ee4f47300 (diff)
downloadguile-61a8c9300daeb730fe5094f889bf13241942be84.tar.gz
Fix race when expanding syntax-parameterize and define-syntax-parameter
* libguile/macros.c (scm_i_make_primitive_macro): Give primitive macros a primitive-macro macro-type. * module/ice-9/psyntax.scm (put-global-definition-hook) (get-global-definition-hook): Inline into uses. (make-binding): Change format of lexically defined or rebound syntax parameters to just be the transformer, not a list of the transformer. (resolve-identifier, expand-install-global, expand-body) (syntax-parameterize): Adapt to use the variable object (box) holding the top-level syntax parameter as the "key" for lookups into the lexical environment, instead of a fresh object associated with the syntax transformer. * module/ice-9/psyntax-pp.scm: Regenerate. Fixes #27476, a horrible race when one thread is expanding a syntax-parameterize form including uses, and another thread is expanding the corresponding define-syntax-parameter. See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27476#102.
Diffstat (limited to 'libguile/lightning/tests/boaddr_u.c')
0 files changed, 0 insertions, 0 deletions