Ticket #33 (closed defect: wontfix)

Opened 2 years ago

Last modified 16 months ago

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:1 Changed 2 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 2 years ago by cowan

Not in Schemes which provide threads.

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.

comment:7 Changed 16 months ago by cowan

  • Status changed from closed to reopened
  • Resolution fixed deleted

comment:8 Changed 16 months ago by cowan

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