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