Summary

Remove the apply limit wrt the number of arguments

Metadata

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

[2016-09-10 13:33:57 UTC] sjamaan changed status from new to closed