This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home.
Source for ticket #48
cc
changetime
2011-01-24 07:00:19
component
WG1 - Macros
description
Let-syntax has known ambiguities in its behavior. We have the option of altering its semantics to correct this behavior, defining which behavior we intend, or removing let-syntax entirely. We could also leave this ambiguity in there. ModulesAndPackagesArcfide suggests that let-syntax be removed in favor of the `module` syntax.
id
48
keywords
let-syntax,modules
milestone
owner
alexshinn
priority
major
reporter
arcfide
resolution
fixed
severity
status
closed
summary
let-syntax
time
2010-04-06 08:28:06
type
defect
Changes
Change at time 2011-01-24 07:00:19
author
cowan
field
comment
newvalue
WG1 chose to make `let-syntax` a lexical contour.
oldvalue
3
raw-time
1295823619000000
ticket
48
time
2011-01-24 07:00:19
Change at time 2011-01-24 07:00:19
author
cowan
field
resolution
newvalue
fixed
oldvalue
raw-time
1295823619000000
ticket
48
time
2011-01-24 07:00:19
Change at time 2011-01-24 07:00:19
author
cowan
field
status
newvalue
closed
oldvalue
new
raw-time
1295823619000000
ticket
48
time
2011-01-24 07:00:19
Change at time 2010-04-06 08:33:23
author
arcfide
field
comment
newvalue
I should also mention that strictly speaking, the `module` syntax is more expressive as a construct.
oldvalue
2
raw-time
1270517603000000
ticket
48
time
2010-04-06 08:33:23
Change at time 2010-04-06 08:32:15
author
arcfide
field
comment
newvalue
I do not believe it is a good idea to leave `let-syntax` with the ambiguous semantics that we currently have, especially considering that there are three different interpretations that are not clearly superior to one another. In order to fix this, we could specify a single interpretation, but this doesn't make sense given that there is no really better choice than the others. We could revert the splicing nature of `let-syntax` into an unsplicing form, but this removes an useful feature from `let-syntax`.
Regardless, since I do not believe we can leave the semantics as they are, if we fix `let-syntax` we will be breaking it in some fashion. This breaks backwards compatibility with some Scheme implementations. Given this, the clearer and more nicely defined semantics of the `module` syntax mentioned in ModulesAndPackagesArcfide seems to be a better approach, and provides the same expressiveness while being easier to use and less ambiguous. It also has the advantage of being a part of the module system.
oldvalue
1
raw-time
1270517535000000
ticket
48
time
2010-04-06 08:32:15