Please sign in to comment.
Incorporate the big "max stack size" patch.
Finally, we (semi-) accurately calculate how much Converge stack size each function needs and use only that. Doing this allows the JIT to speed things up considerably. At the moment, the calculation is, in some places, approximate; with luck, it should be conservative (i.e. it might request more space is needed), so it might be a bit slower but, hopefully, it won't cause programs to crash. Time will tell. Programs need to be recompiled after this patch, as the compiler statically calculates the stack size of each function. Fortunately we can do this in a backwards compatible way (i.e. code compiled with this version of the compiler is backwards compatible with the old VM), as we're able to make use of spare bits in the FUNC_DEFN instruction. Running code compiled using the old compiler will give undefined results.
- Loading branch information...
Showing with 282 additions and 115 deletions.