[Pharo-project] Weird problem...having several "implementors" for the same method and class

Mariano Martinez Peck marianopeck at gmail.com
Sat Nov 27 13:12:32 CET 2010


Benjamin: do, I don't do any copy explicitly.

Eliot: yes, I thought it should be somethig related to that. Even more, I
already tried Smalltalk fixObsoleteReferences, but still the same problem.
Now, I have inspected those 4 copies of the CompiledMethodClass , and see
the pointers to them, and all of them are pointed from an array.

Here I attach an screenshot of the array and my proxies. Now the problem is
that I don't know which is that array, nor how to fix it. Do you imagine
which array can be? If I try to do a chase pointers of that array, the image
hungs...

I tried also evaluating ScriptLoader new cleanUpForRelease that does a lot
cleanings...but they remain there.

If I load all my code in a fresh image, I dont have it 4 times...only one.
So I guess that something happened in my image.

The array you see in the picture has:

 'an Array(BalloonState UndefinedObject Boolean FillStyle Authorizer
ConnectionQueue Password ChangeRecord MidiPrimTester BitBlt
MailAddressParser PopUpMenu Random BalloonEdgeData Magnitude TTKernPair
LimitingLineStreamWrapper TTFontReader Message PseudoClass
EllipseMidpointTracer DamageRecorder BalloonBezierSimulation RemoteString
Model Color ImageReadWriter TextContainer TTGlyph AsyncFile
ClassCategoryReader RealEstateAgent Rectangle BalloonSolidFillSimulation
JPEGHuffmanTable NetNameResolver TTFontDescription ProcessorScheduler
Scanner Collection TextAttribute BalloonEngine Stream Link BalloonBuffer
TextPrinter Delay SerialPort MimeConverter FileDirectory CornerRounder
CompressedBoundaryShape TTFontTableDirEntry MailAddressToken
BalloonLineSimulation DiskProxy LineSegment TTContourConstruction Point
DisplayObject InstructionStream BalloonFillData Url FakeClassPool ParseStack
Morph DisplayTransform ObjectScanner TTPoint Utilities ListItemWrapper
ClassBuilder NullEncoder ExceptionSet TextStyle DigitalSignatureAlgorithm
SecureHashAlgorithm ThirtyTwoBitRegister ZipEncoderNode ZipEncoderTree
HaloSpec MessageSend ClassChangeRecord MethodChangeRecord MIMEHeaderValue
FontSet AbstractFont ColorMap ExternalSemaphoreTable GZipSurrogateStream
ImageSegment Command CommandHistory HTTPLoader HTTPDownloadRequest
AbstractLauncher AutoStart FilePackage MorphicEventDispatcher
MouseOverHandler LayoutCell LayoutFrame LayoutPolicy LayoutProperties
MailMessage Archive HTTPClient JPEGColorComponent TextComposer
ExternalSettings ParseNode MouseClickState BorderStyle UUIDGenerator
ExternalDropHandler EventManager WeakMessageSend AppRegistry
InstructionClient Socket Imports Exception TestCase TestResource TestSuite
SharedPool SpaceTally SpaceTallyItem PackageInfo ProtocolClient Beeper
LRUCache MenuIcons BreakpointManager TimeZone Stopwatch BadEqualer BadHasher
PrototypeTester AbstractEvent SystemChangeNotifier CompiledMethodWithNode
MczInstaller AbstractSoundSystem EventHandler ArchiveMember SystemNavigation
PackageServices PackageOrganizer Categorizer Monitor UCSTable EncodedCharSet
CompoundTextConverterState ImmAbstractPlatform SparseXTable
XTableForFixedFont XTableForUnicodeFont CombinedChar StrikeFontFixer
X11Encoding IdentityGlyphMap ISOLanguageDefinition Locale LocaleID
StringMorphAttributeScanner DefaultExternalDropHandler InternetConfiguration
PrimCallControllerAbstract ExceptionTester NaturalLanguageFormTranslator
FilePath MCAncestry MCConflict MCDefinition MCDefinitionIndex
MCDependencySorter MCDoItParser MCMergeRecord MCMerger MCMock MCMockClassD
MCMockClassE MCMockClassF MCMockClassG MCMockClassH MCMockClassI
MCMockDependency MCPackage MCPackageCache MCPackageManager MCPatch MCPatcher
MCPatchOperation MCReader MCRepository MCScanner MCSnapshot MCTool
MCToolWindowBuilder MCVariableDefinition MCVersion MCVersionDependency
MCVersionLoader MCVersionMerger MCVersionNotification MCVersionSorter
MCWriter MCConfiguration SocketStream URI URIAuthority ToolBuilder UIManager
WidgetStub MCFrontier FileServices StandardToolSet FixUnderscores
LocatedMethod TraitBehavior TraitComposition TraitMethodDescription
TraitTransformation BDFFontReader Mutex MutexSet Pragma
AbstractObjectsAsMethod LanguageEnvironment MorphHierarchy Behavior
MCRepositoryGroup DeepCopier MethodFinder TestResult RxCharSetParser
RxMatchOptimizer RxParser RxmLink RxmTerminator RxsNode ServerDirectory
ClassFactoryForTestCase EditCommand ProcessSpecificVariable HostSystemMenus
HostSystemMenusMenuItem HostSystemMenusProxy HostWindowProxy MorphicEvent
FT2BitmapSize FT2GlyphSlot FT2Handle FT2Outline FT2Version
FontFamilyAbstract FontFamilyMemberAbstract FontProviderAbstract
FreeTypeCache FreeTypeFileInfoAbstract FreeTypeGlyphRenderer
FreeTypeNameParser FreeTypeSettings LogicalFontManager CharacterScanner
ExampleRadioButtonModel ListModel ObjectStringConverter SoundTheme
TaskbarTask TextHighlight ThemeIcons UITheme Shape JoinSection JoinSide
TestRunner MIMEType MIMEDocument Announcement AnnouncementSpy Announcer
OSPlatform Clipboard ParagraphEditor DebuggerMethodMap Compiler
ParseNodeVisitor BlockClosure CollectionCombinator InputEventFetcher
InputEventHandler ThreadSafeTranscript HMAC HashFunction MOPTestClassA
MOPTestClassB MOPTestClassC MOPTestClassD MethodReference NullSound
NewParagraph Author MCPackageLoader MethodAddition AdditionalMethodState
ScriptLoader GoferOperation TextLine PragmaCollector TextConverter
MorphExtension MorphTreeColumn MorphTreeMorphSelection SettingFilter
SettingTreeBuilder StandardFonts NetworkSystemSettings SoundSettings
SystemVersion PSMCSystemSettings TaskListSystemSettings
TaskbarSystemSettings SecurityManager Gofer GoferReference
CompiledMethodTrailer CuvierMorphPreferences DeprecationPreferences
FreeTypePreferences LocalePreferences MCConfigurationPreferences
MorphicPreferences NetworkPreferences Preference PreferenceView
PreferenceViewRegistry Preferences PreferencesUnloader
TaskListMorphPreferences UIThemePreferences PolymorphSystemSettings
SystemSystemSettings CompilerSystemSettings FreeTypeSystemSettings
InputEventSensorSystemSettings MCSystemSettings CodeHolderSystemSettings
DebugSystemSettings RxMatcher ToolBuilderSpec NumberParser
MenuRegistrationExample WorldState BuiltinSettingStyle DisplaySettings
GraphicFontSettings PersonDataExample SettingNodeBuilder SettingTree
PragmaSetting CodeLoader MockForCompilation MockTranscript
TextStopConditions DirectoryEntry SmalltalkImage HashTableSizes
MenuRegistration Editor CustomHelp HelpBrowser HelpBuilder HelpIcons
HelpTopic SystemHelp SystemReference ConfigurationOfPharoCore
AdvancedHelpBrowserDummy ChangeSet NaturalLanguageTranslator DiffElement
DifferatorSystemSettings TextDiffBuilder SUnitUnloader BrowserSystemSettings
TotalCost MultiCharacterScanner ConfigurationOfPharo
ConfigurationOfMetacello MetacelloConfigTemplate MetacelloDirective
MetacelloLoadData MetacelloLoaderPolicy MetacelloMCVersionSpecLoader
MetacelloPlatform MetacelloProject MetacelloSpec MetacelloSpecLoader
MetacelloVersionConstructor MetacelloVisitedPackages ConfigurationOfGofer
ConfigurationOfOCompletion ConfigurationOfProfStef
ConfigurationOfOmniBrowser ConfigurationOfPharoNonCore
ConfigurationOfRefactoringBrowser ConfigurationOfScriptManager
ConfigurationOfShout ConfigurationOfNile
ConfigurationOfAutomaticMethodCategorizer ConfigurationOfNewInspector
ConfigurationOfPharoMorphicExtras ConfigurationOfPharoSound
ConfigurationOfObjectMetaTools ConfigurationOfHelpSystem RBParseTreeRule
RBParser RBProgramNode RBProgramNodeVisitor RBScanner RBSmallDictionary
RBStringReplacement RBToken RBAbstractClass RBAbstractCondition RBMethod
RBMethodName RBNamespace Refactoring RefactoringManager SHParserST80 SHRange
SHTextStyler ASampleClass AbstractType CommonCollection TypeCollector
TypeMerger TypingResultKeeper ECContext ECController ECEntry
ECEntryDescription ECModel ECPreferences ECSymbols ECTypeInfo
OCompletionTable OEmptyModel OEntryList ORecentChanges OBAnnouncement
OBAnnouncer OBAutoSelection OBBrowser OBBuilder OBColumn OBCommand
OBCommandCluster OBDefinition OBFan OBFilter OBList OBMetaEdge OBMetaNode
OBNode OBPanel OBPlatform OBSubtree OBSwitch OBTextSelection OBButtonModel
OBMorphicIcons OBAnnotationRequest OBBrowserPlatform OBClassReference
OBMercuryQuery OBMetagraphBuilder OBMethodVersion OBSystemBrowserAdaptor
RBRefactoryTestDataApp RBLintRuleTest RBSpellChecker ECTestSuperClass BogusA
BogusC BogusDamage BogusF BogusG BogusH BogusI BogusInfo BogusJ BogusB
OBFakeMenu OBFakeMenuItem OBFakeWidget AutomaticMethodCategorizer
AutomaticMethodCategorizerApplier AutomaticMethodCategorizerMockParentClass
CategorizationRulesExample MethodCategoriesFinderBehavior
MethodCategorizationRuleBehavior MethodCategorySelectionStrategyBehavior
MockSystemChangeNotifier AIFFFileReader AbstractScoreEvent AbstractSound
CompressedSoundData Envelope FFT FWT MIDIFileReader MIDIInputParser
MIDIScore MIDISynth MIDISynthChannel SampledInstrument SimpleMIDIPort
SoundCodec SoundPlayer SoundRecorder SunAudioFileWriter DDCFDummy
DynamicDeadCodeFinder ObjectAsMethodWrapper ObjectAsMethodWrapperDummy
ProtocolCatcher ProtocolCatcherWithoutObject NIAction NINode RBLexicalScope
RBVariableBinding NSCollectionStream NSDecoder NSAbstractDataStream
NSAbstractDeflateStream NSAbstractInflateStream NSCompressedSourceStream
NSDrainer NSDummyStream NSFileStream NSHistory NSLimitedWriteStream NSLink
NSLinkedListStream NSMailAddressTokenizer NSMockBufferedStream NSPipeEntry
NSRandom NSSharedQueue NSTextStream NSZipEncoder OpenFileStreamRegistry
AbstractTutorial Lesson LessonView ProfStef TutorialNode TutorialPlayer
ProfStefBrowser MockLessonView MetacelloProjectRefTutorialConfig
MetacelloReferenceConfig MetacelloTutorialConfig
MetacelloMCTestsAbstractConfig DEVImageCreator PharoDevSettingStyle
ConfigurationOfVMMaker CArray CCodeGenerator CObjectAccessor
InterpreterPlugin InterpreterProxy InterpreterSimulationObject ObjectMemory
TMethod TParseNode VMMaker MemoryAccess B3DActiveEdgeTable B3DFillList
B3DPrimitiveEdge B3DPrimitiveEdgeList B3DPrimitiveFace
B3DPrimitiveFaceAttributes B3DPrimitiveObject B3DScanner RefactoryChange
RefactoryChangeManager RBLintRule SmalllintChecker SmalllintContext
BrowserEnvironment RBSmalllintTestObject SHPreferences SHStyleSetting
ObjectSwapper UnusedObjectDiscoverer UnusedObjectStadistics
MockClassSuperclass MockCompiledMethodObject ProxySuperclass ClassWith2Var
ClassProxyFileOut CompiledMethodSwapper LoggerStrategy SimpleLogger
MyAppLogger MareaLogger ConfigurationOfUsedObjects ConfigurationOfMarea
ClassWithDNU RBRefactoryTyper Benchmark MacroBenchmarks SlopstoneBenchmark
SmopstoneBenchmark FLAnalyzer FLBenchmarkResult FLBenchmarks
FLBenchmarksRepeatingCSVExporter FLBenchmarksSubsetsCSVExporter
FLClusterSerializer FLInstanceVariablesMapping FLMaterializer
FLObjectAnalyzer FLSerializer Pair MareaSerializer CompiledMethodProxy
CompiledMethodProxy CompiledMethodProxy CompiledMethodProxy)'



thanks in advance,

mariano



On Fri, Nov 26, 2010 at 11:06 AM, Benjamin <
benjamin.vanryseghem.pharo at gmail.com> wrote:

>
> On Nov 26, 2010, at 11:01 AM, Mariano Martinez Peck wrote:
>
>  Sorry, I know the subject of the mail is confusing, I am confused myself.
>> Ok, I am doing hacky stuff and playing with CompiledMethod proxies, but I
>> have a problem searching for implementors.
>>
>
> Did you try to make copies of this method ?
>
> Ben
>
>
>> So, I have for example CompiledMethodProxy >> mareaUninstall.
>>
>> But when I search for implementors of "mareaUninstall" in the popup of
>> implementors it shows FOUR times, "CompiledMethodProxy >> mareaUninstall"...
>> why ???   it should appear only once..
>>
>> I attach an screenshot. Does anyone know what can be happening?
>>
>> thanks in advance,
>>
>> Mariano
>> <Screen shot 2010-11-26 at 11.00.23 AM.png>
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gforge.inria.fr/pipermail/pharo-project/attachments/20101127/b5f48b2e/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: compiledMethodProxies.png
Type: image/png
Size: 502179 bytes
Desc: not available
URL: <http://lists.gforge.inria.fr/pipermail/pharo-project/attachments/20101127/b5f48b2e/attachment.png>


More information about the Pharo-project mailing list