Summary
Remove the apply limit wrt the number of arguments
Metadata
- Id: 9e327edcf89af2d0622c3834c046e982190ed361
- Trac id: 1098
- Type: defect
- Reporter: mario
- Owner:
- Cc:
- Status: closed
- Component: unknown
- Estimated difficulty: medium
- Resolution: fixed
- Priority: minor
- Milestone: 5.0
- Version: 4.8.x
- Changetime: 2016-09-10 13:33:57 UTC
- Created: 2014-02-11 14:58:52 UTC
- Keywords:
Description
If feasible, naturally.
Changes and comments
[2014-07-30 08:59:49 UTC] sjamaan changed milestone from someday to 4.10.0
[2015-08-27 08:58:30 UTC] sjamaan changed milestone from 4.10.0 to 4.11.0
[2015-08-27 08:58:30 UTC] sjamaan wrote:
Maybe we'll find the time to do it for 4.11, otherwise 5 will have to be our target
[2015-10-31 16:53:59 UTC] sjamaan wrote:
I think the argvector fix has removed the limit for all intents & purposes:
#!scm
(use srfi-1)
(print (apply + (make-list 100000 1)))
(use-for-syntax srfi-1)
(define-syntax foo
(ir-macro-transformer
(lambda (e r c)
`(print (+ . ,(make-list (cadr e) 1))))))
(foo 100000)
Compiling and running this prints 100000 twice. Interpreting it does the same.
The only case where this could still fail is a procedure which receives a huge number of arguments, and right at the start the stack is just full, so a reclaim is needed. Then the argvector will be saved on the temporary stack, and it will not fit. So a resize of the temporary stack would be required (which can be done in the C_save_and_reclaim[[_args]|] functions easily).
I'll have to think of a good way to test this...
[2016-01-16 13:43:32 UTC] sjamaan changed milestone from 4.11.0 to 5.0
[2016-01-16 13:43:32 UTC] sjamaan wrote:
Patch submitted for CHICKEN 5. Probably not important enough to fix for CHICKEN 4.
[2016-08-25 21:26:21 UTC] sjamaan set difficulty to medium
[2016-09-10 13:33:57 UTC] sjamaan set resolution to fixed
[2016-09-10 13:33:57 UTC] sjamaan wrote:
Fixed by 5b5b3f7 / a23fa1f