On Mon, May 25, 2009 at 11:06:10AM -0700, Eliot Miranda wrote:
On Mon, May 25, 2009 at 7:40 AM, David T. Lewis lewis@mail.msen.com wrote:
On Sun, May 24, 2009 at 01:44:52PM -0700, Eliot Miranda wrote:
- refactor the GeniePlugin method into an outer args parser and an inner
engine method and solve the problem. Since VMMaker will inline anyway
this
shouldn't make performance worse. I haven't done this because I'm not
the
author and it is quite a complex method.
This sounds like the right thing to do, regardless of what may change in the compiler(s).
+1
Well unfortunately the refactoring turns out to be easier said than done. At least it was easier for me to say it than it was for me to do it.
I made a naive attempt to split the primitive into smaller methods, but this just ended up trading off too many things on the stack for too many arguments in an argument list.
The method temp variables could be changed to be instance variables. This would probably work fine for any current VMs (not sure about Hydra), but it does not pass the smell test IMO.
I suspect that Nathaniel Schaerli knew what he was doing when he wrote this primitive, and I most certainly do not, so I don't expect that I will make much further progress on this front.
Dave