Ticket #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
comment:3 Changed 2 years ago by kumoyuki
Threading requires primitives beyond the scope of WG1. QED.
comment:4 follow-up: ↓ 5 Changed 2 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 2 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 19 months ago by cowan
- Status changed from new to closed
- Resolution set to fixed
The WG voted to reaffirm R5RS dynamic-wind as part of the core.

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.