Opened 5 months ago

Closed 3 months ago

#1390 closed defect (fixed)

The behavior between `values` and `call/cc` is inconsistent.

Reported by: kooda Owned by:
Priority: minor Milestone: 5.0
Component: compiler Version: 4.12.0
Keywords: Cc:
Estimated difficulty: easy

Description

With regard to multiple return values, values and call/cc behave differently.

I think the call/cc case should not error out.

Also, the error message is a bit unhelpful (sometimes the call to call/cc is not known from the user, for example thread-join! uses it) and in some cases no call trace is available.

(print (values 1 2 3)) ;; no problem
 
(define (stuff)
  (call/cc
    (lambda (return)
      (return 1 2 3))))

(print (stuff)) ;; Error: bad argument count - received 3 but expected 1

Change History (2)

comment:1 Changed 4 months ago by sjamaan

  • Estimated difficulty set to easy
  • Milestone changed from someday to 5.0

Makes more sense to fix for 5.x

comment:2 Changed 3 months ago by sjamaan

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

Fixed with 2dc0c5929a

Note: See TracTickets for help on using tickets.