Treat keyword-only syntax environments differently from runtime environments.
authorChris Hanson <org/chris-hanson/cph>
Wed, 17 Jul 2019 22:54:49 +0000 (18:54 -0400)
committerChris Hanson <org/chris-hanson/cph>
Wed, 17 Jul 2019 22:54:49 +0000 (18:54 -0400)
commit8ab22a695b3801e59c5067fb065e7dfad4e59c96
tree04f235b79725958ea6e5f822fd6aacb244a3f015
parent1afe2dabb341a1247754dbce14cb70cf81f38d54
Treat keyword-only syntax environments differently from runtime environments.

The former are those created by let-syntax and the like; the latter are models
of runtime environments as created by lambda.

This fixes a bug when let-syntax contains a bunch of definitions, which should
be defined in the parent environment of the let-syntax, because it's meaningless
to define them in the let-syntax environment itself.  This was previously worked
around by heuristic means, but this change makes the definitions appear in the
correct syntactic environment corresponding to the runtime environment.
src/runtime/mit-syntax.scm
src/runtime/runtime.pkg
src/runtime/syntax-environment.scm
tests/runtime/test-syntax-rename.scm