I have a smallish problem with the default value of the constant *ffi-args-size* in port-acl.lisp in the distribution; this is 10 (ten) which is smaller than the number of arguments to the "Open" method of Office documents, in particular Excel (15 arguments to provide there).
I tried to find out from where the restriction orginated so I could #+version it away, but I couldn't find it in the ACL documentation. Version 7.0 can handle at least 20 arguments, so this at least works:
(defconstant *ffi-args-size* #+(version>= 7) 20 #-(version>= 7) 10)
Does anyone know the correct limits?
On Thu, 24 Jan 2008 11:08:58 +0100, "Iver Odin Kvello" iverodin@gmail.com wrote:
I have a smallish problem with the default value of the constant *ffi-args-size* in port-acl.lisp in the distribution; this is 10 (ten) which is smaller than the number of arguments to the "Open" method of Office documents, in particular Excel (15 arguments to provide there).
I tried to find out from where the restriction orginated so I could #+version it away, but I couldn't find it in the ACL documentation. Version 7.0 can handle at least 20 arguments, so this at least works:
(defconstant *ffi-args-size* #+(version>= 7) 20 #-(version>= 7) 10)
Does anyone know the correct limits?
I don't. I hope Charles Cox from Franz is still reading this list as he wrote that code. I see that the following form is in there:
(when (> ,length ,*ffi-args-size*) (error "Need more coding here..."))
Whatever that means...
Edi Weitz wrote:
Does anyone know the correct limits?
I don't. I hope Charles Cox from Franz is still reading this list as he wrote that code.
Just a quick note to say that I'm on travel this week. I don't immediately remember how the limit was picked or how much it can be increased, so I'll have to take a look at this when I get back (early next week, I hope).
Charley
Charles A. Cox wrote:
Just a quick note to say that I'm on travel this week. I don't immediately remember how the limit was picked or how much it can be increased, so I'll have to take a look at this when I get back (early next week, I hope).
I managed to squeeze in a quick look at the code to remind myself what's going on. It does seem as though the limit can safely be increased to 20 (or beyond). The issue is that we are doing stack allocation at this point, which requires an array size to be known when the Lisp code is being compiled. That's the reason we specify a size at all. The actual limit value is arbitrary. It's best to keep it to a reasonably small number, though, so as not to waste stack space at runtime.
The (error "Need more coding here...") was probably a note to myself that it would be nice to have a way to go beyond the limit at runtime, say, with simulated dyanamic-extent static arrays, but I seem to have left that as a lower priority task since it was easier just to increase the limit and recompile rdnzl when needed.
Feel free to let me know if there are further questions.
Charley
On Thu, 24 Jan 2008 06:01:29 -0800, "Charles A. Cox" cox@franz.com wrote:
I managed to squeeze in a quick look at the code to remind myself what's going on. It does seem as though the limit can safely be increased to 20 (or beyond). The issue is that we are doing stack allocation at this point, which requires an array size to be known when the Lisp code is being compiled. That's the reason we specify a size at all. The actual limit value is arbitrary. It's best to keep it to a reasonably small number, though, so as not to waste stack space at runtime.
The (error "Need more coding here...") was probably a note to myself that it would be nice to have a way to go beyond the limit at runtime, say, with simulated dyanamic-extent static arrays, but I seem to have left that as a lower priority task since it was easier just to increase the limit and recompile rdnzl when needed.
Feel free to let me know if there are further questions.
Thanks for the info.
I'll make a new release which ups the value from 10 to 20. AFAIU this should solve Iver's problem for now.
Cheers, Edi.
On Fri, 25 Jan 2008 05:20:33 +0100, Edi Weitz edi@agharta.de wrote:
I'll make a new release which ups the value from 10 to 20.
It's online now.
Cheers, Edi.