On Sat, Feb 15, 2014 at 6:38 PM, David T. Lewis <[hidden email]> wrote: On Sat, Feb 15, 2014 at 08:08:19PM -0500, David T. Lewis wrote: That's funny :-). You can print CompiledMethod basicNew, but woe betide you if you try and inspect it. I think the VM primitives should fail for CompiledMethod.
CompiledMethod class>basicNew seems to cause problems with both Cog and best, Eliot
|
On Mon, Feb 17, 2014 at 10:59 AM, Eliot Miranda <[hidden email]> wrote:
and my reason is that one can always get at the primitives somehow, e.g. CompiledMethod perform: #basicNew: withArguments: #(0) inSuperclass: CompiledMethod class superclass!
so the VM can only preserve its integrity by refusing to instantiate bogus objects. I've already changed the VM to fail at:[put:] for CompiledMethod when accessing bytes in the literal frame (hence the change to CompiledMethod hash), & IIRC to instVarAt:[put:] when accessing outside the literal frame. Changing the basicNew[:] primitives would be consistent with that.
best, Eliot
|
Free forum by Nabble | Edit this page |