codefrau / SqueakJS

A Squeak Smalltalk VM in Javascript
https://squeak.js.org
MIT License
371 stars 76 forks source link

(almost) one-pass debuggable object creation #55

Closed fmateoc closed 8 years ago

fmateoc commented 8 years ago

Instead of creating the objects and then recreating them, I created them as "proxies" (self-replacing get properties). In order to get the next pointers right I had to then reverse the traversal order for hydrating the proxies/objects. I also did a more thorough job with the debuggable names (e.g. symbol literals, classes, metaclasses). I replaced the names instProto and classInstProto with instConstructor and classInstConstructor, I think it more accurately reflects reality and my head hurt when I was debugging the metaclasses cycles and looking at protos and instProtos :)

codefrau commented 8 years ago

Style notes:

codefrau commented 8 years ago

Hi Florin, thank you for developing this patch! It makes the Squeak objects look really nice in the Chrome debugger. However, it complicates the VM code too much to warrant its inclusion. If you could think of a "one-pass" solution for the current "simple" class-based prototypes (06ebdbf857c618e55f4b3e375f767fd8ad8f46bd) we could reconsider. For now I'm closing this. Thank you so much!

fmateoc commented 8 years ago

On 6/6/2016 11:20 AM, Bert Freudenberg wrote:

Hi Florin, thank you for developing this patch! It makes the Squeak objects look really nice in the Chrome debugger. However, it complicates the VM code too much to warrant its inclusion. If you could think of a "one-pass" solution for the current "simple" class-based prototypes (06ebdbf https://github.com/bertfreudenberg/SqueakJS/commit/06ebdbf857c618e55f4b3e375f767fd8ad8f46bd) we could reconsider. For now I'm closing this. Thank you so much!

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/bertfreudenberg/SqueakJS/pull/55#issuecomment-223991774, or mute the thread https://github.com/notifications/unsubscribe/AE-8eWJ0q85DVx0-xNWpbxYf5maVMQFdks5qJDrKgaJpZM4H6Q6D.

No worries - when I have time to work on SqueakJS, I will still use it, that's what forks are for :)

I am also sorry for being silent lately - I had to find a new job and the one that I did find is not a very flexible one, so I had to put my SqueakJS (JIT) work on hold for now. I was happy with how the ideas were taking shape, but the code is not really in a shareable state yet.