Monthly Archives: August 2014

New Pointer Explorer

Hi,

Pharo4 #155 now contains a Pointer explorer build with the Eye Tree Inspector framework:

EyePointerExplorer openOn: #zot

EyePointerExplorer openStrongOn:  #zot

Why is this needed?
—————————

Currently we still use a sub lass of ObjectExplorer for the PointerExplorer, which means that we can remove the whole package
Tool-Explorer now that we have one based on the new inspector.

Next step?
——————

- put the new tool as the default (and unify Smalltalk tools strongPointerExplorer with pointerExplorer)
- remove package Tool-Explorer (ca. 700 Loc, 6 classes)


Class comment:
=============
A variant on the TreeInspector that works "backwards".

By default it shows both weak and strong references (#openOn:) but I can be configured to omit weak refs with #openStrongOn:

Like the TreeInspector, it shows a tree of objects, but expanding a node won't show the objects which that node references, but rather the objects that reference that node.  Its main use is to track down memory leaks: if you want to know why a particular object is still alive, open a PointerExplorer on it and drill down until you find the root object that's referencing it.  For example, find all the references to the symbol #zot with:

EyePointerExplorer openOn: #zot

For the "name" of the object, the PointerExplorer shows each object's identityHash, to allow the user to identify when two similar objects are identical and notice cycles.
Advertisements

Direct interaction based rewrite rule creation

Mark posted a nice update of his intern works at RMOD. 
mrizun@gmail.com

After working on refactorings, I started implementing Rewrite Tool, which provides GUI to create rewrite rools. At this point it's in early stage, but you can take a look at it now. Info on blog: http://myfuncoding.blogspot.com/ Download: http://smalltalkhub.com/#!/~MarkRizun/RewriteTool Simple example on YouTube: https://www.youtube.com/watch?v=ZY8QfIo-A6E&feature=youtu.be&a It's my first video, that I recorded, so don't judge me:) As always, feedback is welcome!

A systematic approach to progress: one by one

Doing systematic actions is great, because when you do them you do not think and what you make sure is that at the end of the day, even if everything else went wrong, you still have made progress. 

 

40150
2489 Strange behavior of Rectangle
https://pharo.fogbugz.com/f/cases/2489

40149
13758 use better package selector for (class/methods) move to
https://pharo.fogbugz.com/f/cases/13758

13765 Nautilus Refactoring 6: rename methods and fix hierarchy view
https://pharo.fogbugz.com/f/cases/13765

40148
13751 OpalDecompiler missdecompile named primitives
https://pharo.fogbugz.com/f/cases/13751

13750 OpalDecompiler raises errors in rare cases when decompiling to:do: and to:by:do:
https://pharo.fogbugz.com/f/cases/13750

40147
13747 EventHandlerPlus -> MouseOverEventHandler
https://pharo.fogbugz.com/f/cases/13747

13749 SimpleBallonMorph has just one initialize and one user 🙂
https://pharo.fogbugz.com/f/cases/13749

13744 Move to raises a DNU
https://pharo.fogbugz.com/f/cases/13744

13748 MoveFullScreenTo Morphi-Widgets-Windows since this is its only user
https://pharo.fogbugz.com/f/cases/13748

40146
13737 Little MenuMorph cleaning up
https://pharo.fogbugz.com/f/cases/13737

13746 repackaging a simple problem with buttonToTriggerIn:
https://pharo.fogbugz.com/f/cases/13746

13745 Cleaning polymorph again
https://pharo.fogbugz.com/f/cases/13745

40145
13743 tiny clean in AnnounceMentTests
https://pharo.fogbugz.com/f/cases/13743

13739 Nautilus Refactoring 5: intermediate code cleanup (remove unused methods)
https://pharo.fogbugz.com/f/cases/13739

13693 Monticello Settings –> move to Monticello
https://pharo.fogbugz.com/f/cases/13693

13741 Another small Ring refactoring
https://pharo.fogbugz.com/f/cases/13741

40144
12853 Factor out common snippet to OCUnderclaredVariableWarning>>declaredVariable:
https://pharo.fogbugz.com/f/cases/12853

13663 when recompiling a Trait, the recompiled methods are not installed in the users
https://pharo.fogbugz.com/f/cases/13663

13735 Clean up SystemNavigation more
https://pharo.fogbugz.com/f/cases/13735

40143
13736 Continue Ring Simplify
https://pharo.fogbugz.com/f/cases/13736

13712 tiny recategorization in Collections
https://pharo.fogbugz.com/f/cases/13712

40142
13733 Nautilus Refaktoring 4: move class list loading to ClassWidget
https://pharo.fogbugz.com/f/cases/13733

13734 Move MethodClassifier to Tools-Base
https://pharo.fogbugz.com/f/cases/13734

40141
13237 Pharo Zen values should be in the image
https://pharo.fogbugz.com/f/cases/13237

40140
13724 MessageBrowser should be a bit wider…
https://pharo.fogbugz.com/f/cases/13724

13732 Enable mustBeBooleanInMagic:
https://pharo.fogbugz.com/f/cases/13732

13618 Recover from toolbar filling the screen from runaway window creation.
https://pharo.fogbugz.com/f/cases/13618

40139
13730 Globals: fix Undeclared handling
https://pharo.fogbugz.com/f/cases/13730

40138
13728 Decompiler and OCDecompiler cannot decompile returning loops
https://pharo.fogbugz.com/f/cases/13728

13731 RGFactory cleanup: Ring definition class method in RGFactory can be inlined
https://pharo.fogbugz.com/f/cases/13731

13729 3 menu item to generate inst var accessors
https://pharo.fogbugz.com/f/cases/13729

40137
Undo

5193
MC Browser: New Packages are never dirty in

40136
13704 Nautilus Refactoring 3: recategorize methods / clean code critics
https://pharo.fogbugz.com/f/cases/13704

13727 MessageBrowser API Clean: Continue, start cleaning SystemNavigation
https://pharo.fogbugz.com/f/cases/13727

40135
5193 MC Browser: New Packages are never dirty in
https://pharo.fogbugz.com/f/cases/5193

13723 Another Step in cleaning the MessageBrowser API
https://pharo.fogbugz.com/f/cases/13723

13722 Failing test: OCDecompilerTest #testExampleAndOr3 and #testExampleAndOr4
https://pharo.fogbugz.com/f/cases/13722

40134
13717 testUndeclared failing
https://pharo.fogbugz.com/f/cases/13717

– recompile Image

40133
13672 Failing test: RBSmalllintTest>>#testConsistencyCheck
https://pharo.fogbugz.com/f/cases/13672

13673 Failing test: ReleaseTest>>#testLocalMethodsOfTheClassShouldNotBeRepeatedInItsTraits
https://pharo.fogbugz.com/f/cases/13673

13716 #testIssue6406 failing
https://pharo.fogbugz.com/f/cases/13716

13715 Port to 4: 13626 SelectorException>>signalFor:In: does not understand object:
https://pharo.fogbugz.com/f/cases/13715

40132
13707 Tiny critics clean in SpotLight package
https://pharo.fogbugz.com/f/cases/13707

13710 tiny cleanup in Collections-Streams
https://pharo.fogbugz.com/f/cases/13710

13713 tiny reformatting in EventManager
https://pharo.fogbugz.com/f/cases/13713

13709 RBShouldntRaiseErrorRule has wrong name
https://pharo.fogbugz.com/f/cases/13709

13708 Tiny Critic clean in FontInfrastructure
https://pharo.fogbugz.com/f/cases/13708

13711 tiny cleanup in Tool-FileList
https://pharo.fogbugz.com/f/cases/13711

40131
13659 ReparseAfterSourceEditing needs to be moved to Opal
https://pharo.fogbugz.com/f/cases/13659

13706 #contentsChanged not needed on Object
https://pharo.fogbugz.com/f/cases/13706

40130
13035 Ctrl-Shift-b causes DNU
https://pharo.fogbugz.com/f/cases/13035

13702 MessageList should not have direct references
https://pharo.fogbugz.com/f/cases/13702

13703 MCPackageManager>>#update: not needed
https://pharo.fogbugz.com/f/cases/13703

40129
13699 Nautilus Refactoring 2: PackagePane widget
https://pharo.fogbugz.com/f/cases/13699