chicken-janitors
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-janitors] #1390: The behavior between `values` and `call/cc


From: Chicken Trac
Subject: Re: [Chicken-janitors] #1390: The behavior between `values` and `call/cc` is inconsistent.
Date: Mon, 08 Apr 2019 10:40:39 -0000

#1390: The behavior between `values` and `call/cc` is inconsistent.
---------------------------------+----------------------
            Reporter:  kooda     |      Owner:
                Type:  defect    |     Status:  reopened
            Priority:  minor     |  Milestone:  someday
           Component:  compiler  |    Version:  4.12.0
          Resolution:            |   Keywords:
Estimated difficulty:  hard      |
---------------------------------+----------------------
Changes (by sjamaan):

 * difficulty:  easy => hard
 * milestone:  5.0 => someday


Comment:

 Reverted in 3e0f640ecf22f6be7af1947b875132415556ca5b

 This turns out not to work because when you capture a generated
 continuation, this assumes it receives one argument and does not check for
 the argument count. Adding these checks would be prohibitively slow, so we
 don't do it.

 There might be a way to avoid doing this (the code hardcodes argcount from
 the lambda, which is not strictly necessary; we could call
 save_and_reclaim with `c` from C, instead of the Scheme `n`, but this
 doesn't solve everything; we generate `t0`...`tn` which index into the
 argvector and we also generate direct calls to trampoline functions with
 `c` set to the argument count we know the trampoline accepts and so on.
 These assumptions need to be removed before we can do this.

 It is not even certain we really should want this feature in the first
 place.

--
Ticket URL: <https://bugs.call-cc.org/ticket/1390#comment:4>
CHICKEN Scheme <https://www.call-cc.org/>
CHICKEN Scheme is a compiler for the Scheme programming language.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]