[squeak-dev] The Inbox: Compiler-tfel.75.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Sep 1 03:13:41 UTC 2009


A new version of Compiler was added to project The Inbox:
http://source.squeak.org/inbox/Compiler-tfel.75.mcz

==================== Summary ====================

Name: Compiler-tfel.75
Author: tfel
Time: 1 September 2009, 5:13:15 am
UUID: c0548007-a567-49ac-81ed-f0df3a098e65
Ancestors: Compiler-tfel.74

MethodNode>>generateWith:using:

Nuked the method according to Andreas' request on the mailinglist

=============== Diff against Compiler-tfel.74 ===============

Item was removed:
- ----- Method: MethodNode>>generateWith:using: (in category 'code generation') -----
- generateWith: trailer using: aCompiledMethodClass
- 	"The receiver is the root of a parse tree. Answer a CompiledMethod. The
- 	argument, trailer, is the references to the source code that is stored with 
- 	every CompiledMethod."
- 
- 	| blkSize nLits stack strm nArgs method literals |
- 	self generate: trailer ifQuick: 
- 		[:m |  method := m.
- 		method properties: properties.
- 		^ method].
- 	nArgs := arguments size.
- 	blkSize := block sizeForEvaluatedValue: encoder.
- 	literals := encoder allLiterals.
- 	nLits := literals size.
- 	method := aCompiledMethodClass	"Dummy to allocate right size"
- 				newBytes: blkSize
- 				trailerBytes: trailer 
- 				nArgs: nArgs
- 				nTemps: encoder maxTemp
- 				nStack: 0
- 				nLits: nLits
- 				primitive: primitive.
- 	strm := ReadWriteStream with: method.
- 	strm position: method initialPC - 1.
- 	stack := ParseStack new init.
- 	block emitForEvaluatedValue: stack on: strm.
- 	stack position ~= 1 ifTrue: [^self error: 'Compiler stack
- discrepancy'].
- 	strm position ~= (method size - trailer size) 
- 		ifTrue: [^self error: 'Compiler code size discrepancy'].
- 	method needsFrameSize: stack size.
- 	1 to: nLits do: [:lit | method literalAt: lit put: (literals at: lit)].
- 	method properties: properties.
- 	^ method!




More information about the Squeak-dev mailing list