Nicolas Cellier uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-nice.93.mcz==================== Summary ====================
Name: Compiler-nice.93
Author: nice
Time: 23 October 2009, 11:57:51 am
UUID: 27c49fc6-0091-4311-988d-aedff3653a8f
Ancestors: Compiler-jcg.92
Fix a test I broke : the test now needs (keys asSet)
=============== Diff against Compiler-jcg.92 ===============
Item was changed:
----- Method: DecompilerTests>>decompileClassesSelect: (in category 'utilities') -----
decompileClassesSelect: aBlock
(Smalltalk classNames select: aBlock) do:
[:cn | | cls |
cls := Smalltalk at: cn.
Smalltalk garbageCollect.
Transcript cr; show: cn.
+ cls selectorsDo:
- cls selectors do:
[:selector | | methodNode oldMethod newMethod oldCodeString newCodeString |
(self isFailure: cls sel: selector) ifFalse:
[" to help making progress
(self
isStoredProblems: cls theNonMetaClass
sel: selector
meta: cls isMeta)
ifFalse: [ "
Transcript nextPut: $.; flush.
self checkDecompileMethod: (cls compiledMethodAt: selector)]]]!
Item was changed:
----- Method: ClosureCompilerTest>>testMethodAndNodeTempNames (in category 'tests') -----
testMethodAndNodeTempNames
"self new testMethodAndNodeTempNames"
"Test that BytecodeAgnosticMethodNode>>blockExtentsToTempRefs answers the same
structure as CompiledMethod>>blockExtentsToTempRefs when the method has been
copied with the appropriate temps. This tests whether doit methods are debuggable
since they carry their own temps."
self closureCases do:
[:source| | mn om m mbe obe |
mn := source first isLetter
ifTrue:
[self class compilerClass new
compile: source
in: self class
notifying: nil
ifFail: [self error: 'compilation error']]
ifFalse:
[self class compilerClass new
compileNoPattern: source
in: self class
context: nil
notifying: nil
ifFail: [self error: 'compilation error']].
m := (om := mn generate: #(0 0 0 0)) copyWithTempsFromMethodNode: mn.
self assert: m holdsTempNames.
self assert: m endPC = om endPC.
mbe := m blockExtentsToTempsMap.
obe := mn blockExtentsToTempsMap.
+ self assert: mbe keys asSet = obe keys asSet.
- self assert: mbe keys = obe keys.
(mbe keys intersection: obe keys) do:
[:interval|
self assert: (mbe at: interval) = (obe at: interval)]]!