Opened 7 years ago

Closed 5 years ago

#92 closed defect (fixed)

Case-folding flags

Reported by: cowan Owned by: alexshinn
Priority: major Milestone:
Component: WG1 - Core Keywords:
Cc:

Description

I propose adopting the R6RS flags #!case-fold and #!no-case-fold to specify the case-sensitivity of files of Scheme code, even though most R5RS Schemes that support flags use #ci and #cs. In Chicken, at least, the latter two refer to the next datum only, which is one argument for using the unambiguous R6RS forms.

For case-sensitivity control in files read by the program, I suggest the method of PortsCowan, which is selective per-file rather than pervasive.

Change History (7)

comment:1 Changed 7 years ago by cowan

What happens when a case-preserving module imports names from a case-folded module? Since Unicode case folding is downcasing, the obvious answer is that all such names are implicitly exported in lower case. Thus a case-preserving module must refer to them in lower case only, and an attempt to reference them in upper case will fail.

The reverse situation is more difficult. A case-preserving module may export foo, Foo, and FOO as three separate names; how can they be written in a case-folding module that imports them? The answer is that case-folding affects only reading and printing; small Scheme identifiers may contain both lowercase and uppercase letters, thanks to the presence of escaping mechanisms in identifier syntax. Consequently, the case-folding module can refer to these identifiers as foo (or FOO), |Foo|, and |FOO| respectively.

comment:2 Changed 6 years ago by cowan

  • Resolution set to fixed
  • Status changed from new to closed

WG1 voted to go with R6RS.

comment:3 Changed 6 years ago by alexshinn

  • Resolution fixed deleted
  • Status changed from closed to reopened

comment:4 Changed 6 years ago by alexshinn

  • Owner alexshinn deleted
  • Status changed from reopened to assigned

comment:5 Changed 6 years ago by alexshinn

  • Status changed from assigned to decided

comment:6 Changed 6 years ago by alexshinn

  • Owner set to alexshinn
  • Status changed from decided to writing

comment:7 Changed 5 years ago by cowan

  • Resolution set to fixed
  • Status changed from writing to closed
Note: See TracTickets for help on using tickets.