Summary
srfi-1's list= and lset procedures don't check their first arguments
Metadata
- Id: 2994f01d0bfb75196396c5f2f6360b6c8270e974
- Trac id: 1085
- Type: defect
- Reporter: evhan
- Owner:
- Cc:
- Status: closed
- Component: core libraries
- Estimated difficulty:
- Resolution: fixed
- Priority: not urgent at all
- Milestone: 4.10.0
- Version: 4.8.x
- Changetime: 2014-10-05 20:42:24 UTC
- Created: 2014-01-02 20:53:40 UTC
- Keywords: srfi-1
Description
{{{
(list= '(1) '(2)) ; => #t
(lset= '(1) '(2)) ; => #t
(lset-union '(1) '(2)) ; => (2)
(list= '(1) '(2) '(3)) ; => triggers an error (call of non-procedure: (1))
It seems like these should check the types of their first arguments (which might be as simple as replacing the commented-out check-arg guards from the srfi-1 reference with ##sys#check-closure). On the other hand, some other Schemes (Chibi, Gauche, Racket) do the same thing as we do, currently.
Changes and comments
[2014-07-02 08:48:38 UTC] sjamaan changed milestone from someday to 4.10.0
[2014-07-02 08:48:38 UTC] sjamaan wrote:
Not sure if worth it, but trivial enough to easily get into 4.10.0
[2014-10-05 20:42:24 UTC] sjamaan changed status from new to closed
[2014-10-05 20:42:24 UTC] sjamaan set resolution to fixed
[2014-10-05 20:42:24 UTC] sjamaan wrote:
Fixed by ca281584884f5ab1d5d83e69031b5e61150a42dd (master) and 996b13c0dd045d75dae492e170eaf2e1f66398e4 (chicken-5).