> 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
