> Hi all,
> 
> Now that we're using argvectors, we're no longer limited by any arbitrary
> C macros or platform-specific hacks.  The only two things that determine
> the number of arguments that can be passed to a procedure are:
> 
> 1) The size of the C stack (because that's where argvectors are allocated)
> 2) The size of the temporary stack (because that's where argvectors are
>    copied for safekeeping during GC, which blows away the stack)
> 
> For now, fixing 1) is a bit of overkill, though it might be possible by
> allocating argvectors in the heap.  Doing this will be tricky because now
> we're assuming everywhere that the stack is to be used for argvectors.
> 
> But 2) has been a thorn in my side for a long time.  It gets dangerously
> close to the "arbitrary limitations" that the Scheme way of life always
> tries so hard to avoid.  Especially since the temporary stack can easily
> be resized!

Is this really necessary? I think runtime.c is already complicated enough as it
is. I understand your intent, but I'm always wary of "arbitrary fixes to 
reasonable
limitations, just because they are limitations". I think an arg-limit makes 
sense,
there are certain constructs that don't scale. If I have to pass 10 million 
arguments
to a procedure, I'm probably doing something wrong.


felix


_______________________________________________
Chicken-hackers mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/chicken-hackers

Reply via email to