[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-smalltalk] _gst_invalidate_method_cache and _gst_reset_inline_
From: |
Holger Hans Peter Freyther |
Subject: |
Re: [Help-smalltalk] _gst_invalidate_method_cache and _gst_reset_inline_caches |
Date: |
Sun, 22 Dec 2013 10:48:00 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Sat, Dec 21, 2013 at 09:38:26PM +0100, Paolo Bonzini wrote:
> I think the species of MethodDictionary should be LookupTable?
It is more complicated than this. E.g. with the >>#remove:
remove: anAssociation [
...
copy := self copy.
result := copy dangerouslyRemove: anAssociation.
self become: copy.
Behavior flushCache].
...
]
So >>#copy should return a MethodDictionary. I considered just
changing >>#copyEmpty: but >>#shallowCopy is already using this.
What about introducing a >>#fastSelect: inside VisualGST to
avoid the flush? In the case of Doit/DoIt in VisualGST and Behavior..
what if we introduce a method that just creates a CompiledMethod
but does not add it to a method dictionary?
holger
Example issue while running the test code:
Swazoo.SwazooCompilerTest>>#testEvaluate did not understand
#dangerouslyRemoveKey:
TestVerboseLog>>logError: (SUnit.star#VFS.ZipFile/SUnit.st:609)
Swazoo.SwazooCompilerTest(TestCase)>>logError:
(SUnit.star#VFS.ZipFile/SUnit.st:877)
[] in TestResult>>runCase: (SUnit.star#VFS.ZipFile/SUnit.st:443)
MessageNotUnderstood(Exception)>>activateHandler: (ExcHandling.st:515)
MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254)
LookupTable(Object)>>doesNotUnderstand: #dangerouslyRemoveKey:
(SysExcept.st:1408)
[] in MethodDictionary>>removeKey:ifAbsent: (MethodDict.st:108)
[] in Semaphore>>critical: (Semaphore.st:80)
BlockClosure>>ensure: (BlkClosure.st:271)
Semaphore>>critical: (Semaphore.st:60)
MethodDictionary>>removeKey:ifAbsent: (MethodDict.st:111)
Metaclass(Behavior)>>removeSelector:ifAbsent: (Behavior.st:261)
Behavior class(Behavior)>>evalString:to: (Behavior.st:432)
Behavior class(Behavior)>>evaluate:to: (Behavior.st:503)
SpEnvironment class>>evaluate:receiver:in: (Sport.star#VFS.ZipFile/sport.st:385)