Il 07/10/2013 10:17, Paolo Bonzini ha scritto:
> The first two patches fix some problems where the context stack was being
> accessed with a 0-based index, or with a wrong sp.  This "worked" because
> of another bug in checking the index of #basicAt: and #basicAt:put:
> whenever a class had both fixed and indexed instance variables.
> Interestingly, the check worked for the JIT compiler but was broken in
> the interpreter, hence the bugs were already visible but only in the JIT.
> 
> To make a better fix for patch 2, I would really like to bump the
> version of the image format, and remove the "receiver" variable of
> contexts.  Instead, the receiver would always be in the first stack
> slot.  This removes the case where the stack is empty, and simplifies
> things a bit.  It can be done later, though.
> 
> Please test these patches more so that we can apply them and also
> fix the JIT.  Thanks!
> 
> Paolo
> 
> Paolo Bonzini (4):
>   fix off by one sp for PUSH_LITERAL/MAKE_DIRTY_BLOCK combined bytecode
>   fix off-by-one using ContextPart's sp instance variable
>   tweak index_oop_spec and index_oop_put_spec index computations
>   fix overflow check for #basicAt: and #basicAt:put:
> 
>  ChangeLog             |  6 ++++++
>  kernel/BlkClosure.st  |  9 ++++++---
>  kernel/ContextPart.st | 10 ++++++----
>  libgst/ChangeLog      | 22 ++++++++++++++++++++++
>  libgst/dict.inl       | 44 ++++++++++++++++++++++++--------------------
>  libgst/genvm-parse.y  | 12 ++++++++++--
>  libgst/vm.def         |  4 ++++
>  7 files changed, 78 insertions(+), 29 deletions(-)
> 

I pushed this series together with a testcase from Gwen.

Paolo

_______________________________________________
help-smalltalk mailing list
help-smalltalk@gnu.org
https://lists.gnu.org/mailman/listinfo/help-smalltalk

Reply via email to