Opened 8 years ago

Closed 7 years ago

#33 closed defect (wontfix)

dynamic-wind

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

Description

New to R5RS, do we reaffirm the sometimes debated dynamic-wind?

Change History (8)

comment:1 Changed 7 years ago by kumoyuki

No. dynamic-wind is properly the realm of WG2 as it is directly implementable on top of the R4RS non-winding call-with-current-continuation.

comment:2 Changed 7 years ago by cowan

Not in Schemes which provide threads.

comment:3 Changed 7 years ago by kumoyuki

Threading requires primitives beyond the scope of WG1. QED.

comment:4 follow-up: Changed 7 years ago by cowan

First of all, nothing is beyond the scope of WG1 unless WG1 declares it so, which has not happened.

Second, not standardizing threads is not equivalent to standardizing the absence of threads. All major Scheme implementations have threads, and that can't just be ignored.

Finally, the fact that a procedure can be implemented in terms of existing procedures has never been a bar to standardizing it. As obvious examples, consider ABS, GCD, LCM, INTEGER?, ZERO? and friends, MAX, MIN, NUMBER->STRING, STRING->NUMBER, LIST, LENGTH, APPEND, REVERSE, LIST-TAIL, ASSOC and friends, MEMBER and friends, CHAR=? and friends, STRING, STRING-APPEND, STRING->LIST, LIST->STRING, VECTOR, MAP, FOR-EACH, EVAL, WITH-*-*-FILE, WRITE, DISPLAY, NEWLINE/.

comment:5 in reply to: ↑ 4 Changed 7 years ago by kumoyuki

Replying to cowan:

First of all, nothing is beyond the scope of WG1 unless WG1 declares it so, which has not happened.

Well it's clear we all have opinions on where the boundaries should lie. Or was that WG2 we signed up for?

Second, not standardizing threads is not equivalent to standardizing the absence of threads.

This is precisely my point. Thank you.

All major Scheme implementations have threads, and that can't just be ignored.

As far as I can tell Larceny as of v0.97 doesn't, although the source code contains strong hints that they have been working on the ideas. Or maybe Larceny isn't a major implementation in your sight.

Finally, the fact that a procedure can be implemented in terms of existing procedures has never been a bar to standardizing it.

If you have only winding continuations you have no other options. If you have classic call-with-current-continuation, you can have both. Additionally, the case of dynamic-wind however, is a fairly clear case of moving in exactly the opposite direction of the Prime Clingerism. WG2 is far less constrained in those terms.

comment:6 Changed 7 years ago by cowan

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

The WG voted to reaffirm R5RS dynamic-wind as part of the core.

comment:7 Changed 7 years ago by cowan

  • Resolution fixed deleted
  • Status changed from closed to reopened

comment:8 Changed 7 years ago by cowan

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