Eliot Miranda uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-eem.997.mcz ==================== Summary ==================== Name: Tools-eem.997 Author: eem Time: 9 October 2020, 1:03:40.26529 am UUID: fa6a5f48-cd96-4194-a00a-41ce1cc25bf7 Ancestors: Tools-eem.996 Fix the ProcessBrowser's browse function for full blocks. =============== Diff against Tools-eem.996 =============== Item was changed: ----- Method: ProcessBrowser>>browseContext (in category 'stack list') ----- browseContext + ToolSet browseMethod: selectedContext home method! - ToolSet browseMethod: selectedContext home! |
Hi Eliot,
related question: Why does the following evaluate to false if I compile it into a method (but evaluates correctly to true if I print it directly)?
[thisContext method method == thisContext home method] value
More confusingly, the following method returns false (compile it on any class):
testBlock2
^ [thisContext method method isInstalled] value
(As a consequence, #browseMethod: in StandardToolSet opens a VersionsBrowser instead of a regular browser if I say [thisContext method] value browse ...)
Best, Christoph Von: Squeak-dev <[hidden email]> im Auftrag von [hidden email] <[hidden email]>
Gesendet: Freitag, 9. Oktober 2020 10:03:50 An: [hidden email]; [hidden email] Betreff: [squeak-dev] The Trunk: Tools-eem.997.mcz Eliot Miranda uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-eem.997.mcz ==================== Summary ==================== Name: Tools-eem.997 Author: eem Time: 9 October 2020, 1:03:40.26529 am UUID: fa6a5f48-cd96-4194-a00a-41ce1cc25bf7 Ancestors: Tools-eem.996 Fix the ProcessBrowser's browse function for full blocks. =============== Diff against Tools-eem.996 =============== Item was changed: ----- Method: ProcessBrowser>>browseContext (in category 'stack list') ----- browseContext + ToolSet browseMethod: selectedContext home method! - ToolSet browseMethod: selectedContext home!
Carpe Squeak!
|
This is really interesting. There are two "versions" of the same method: Of course, only one of them is installed at the same time. Best, Marcel
|
Hi Marcel, Christoph, that's a compiler bug. There is a chicken-and-egg problem in setting up the graph of CompiledBlocks and Compiledmethod, but I had implemented that at some point. I'm looking at the isse now. On Fri, Oct 9, 2020 at 5:32 AM Marcel Taeumel <[hidden email]> wrote:
_,,,^..^,,,_ best, Eliot |
In reply to this post by marcel.taeumel
Hi Marcel, Hi Christoph, Hi All, the bug is in CompiledMethod copying routines which do a deep copy in things like copyWithTrailerBytes:, used to set the source pointer, which is hard encoded in the method's trailer bytes and so may involve a becomeForward: to set a greater source pointer. It'll take me a little time to fix (a day or two) as I want to fully understand tis, and eliminate unnecessary copying and becomes. But at least we have a failing test for it now :-) On Fri, Oct 9, 2020 at 5:32 AM Marcel Taeumel <[hidden email]> wrote:
_,,,^..^,,,_ best, Eliot |
Free forum by Nabble | Edit this page |