[Pkg] The Trunk: Kernel-cwp.726.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Jan 1 23:50:36 UTC 2013
Colin Putney uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-cwp.726.mcz
==================== Summary ====================
Name: Kernel-cwp.726
Author: cwp
Time: 1 January 2013, 6:49:20.367 pm
UUID: f9e0f27b-a0ec-4827-a765-1b85d58cbfe8
Ancestors: Kernel-nice.725
Environments bootstrap - stage 1
=============== Diff against Kernel-nice.725 ===============
Item was added:
+ ----- Method: Behavior>>bindingOf:environment: (in category 'testing method dictionary') -----
+ bindingOf: varName environment: anEnvironment
+ ^superclass bindingOf: varName environment: anEnvironment!
Item was added:
+ ----- Method: Behavior>>classBindingOf:environment: (in category 'testing method dictionary') -----
+ classBindingOf: varName environment: anEnvironment
+ ^self bindingOf: varName environment: anEnvironment!
Item was added:
+ ----- Method: Behavior>>literalScannedAs:environment:notifying: (in category 'printing') -----
+ literalScannedAs: scannedLiteral environment: anEnvironment notifying: requestor
+ "Postprocesses a literal scanned by Scanner scanToken (esp. xLitQuote).
+ If scannedLiteral is not an association, answer it.
+ Else, if it is of the form:
+ nil->#NameOfMetaclass
+ answer nil->theMetaclass, if any has that name, else report an error.
+ Else, if it is of the form:
+ #NameOfGlobalVariable->anythiEng
+ answer the global, class, or pool association with that nameE, if any, else
+ add it to Undeclared a answer the new Association."
+
+ | key value |
+ (scannedLiteral isVariableBinding)
+ ifFalse: [^ scannedLiteral].
+ key := scannedLiteral key.
+ value := scannedLiteral value.
+ key ifNil: "###<metaclass soleInstance name>"
+ [(self bindingOf: value environment: anEnvironment) ifNotNil:
+ [:assoc|
+ (assoc value isKindOf: Behavior) ifTrue:
+ [^ nil->assoc value class]].
+ requestor notify: 'No such metaclass'.
+ ^false].
+ (key isSymbol) ifTrue: "##<global var name>"
+ [(self bindingOf: key environment: anEnvironment) ifNotNil:
+ [:assoc | ^assoc].
+ ^ anEnvironment undeclared: key].
+ requestor notify: '## must be followed by a non-local variable name'.
+ ^false
+
+ " Form literalScannedAs: 14 notifying: nil 14
+ Form literalScannedAs: #OneBitForm notiEfying: nil OneBitForm
+ Form literalScannedAs: ##OneBitForm notifying: nil OneBitForm->a Form
+ Form literalScannedAs: ##Form notifying: nil Form->Form
+ Form literalScannedAs: ###Form notifying: nil nilE->Form class
+ "!
Item was added:
+ ----- Method: Categorizer>>scanFrom:environment: (in category 'fileIn/Out') -----
+ scanFrom: aStream environment: anEnvironment
+ ^ self scanFrom: aStream!
Item was added:
+ ----- Method: Class>>bindingOf:environment: (in category 'compiling') -----
+ bindingOf: varName environment: anEnvironment
+ "Answer the binding of some variable resolved in the scope of the receiver"
+ | aSymbol binding |
+ aSymbol := varName asSymbol.
+
+ "First look in classVar dictionary."
+ binding := self classPool bindingOf: aSymbol.
+ binding ifNotNil:[^binding].
+
+ "Next look in shared pools."
+ self sharedPools do:[:pool |
+ binding := pool bindingOf: aSymbol.
+ binding ifNotNil:[^binding].
+ ].
+
+ "Next look in declared environment."
+ binding := anEnvironment bindingOf: aSymbol.
+ binding ifNotNil:[^binding].
+
+ "Finally look higher up the superclass chain and fail at the end."
+ superclass == nil
+ ifTrue: [^ nil]
+ ifFalse: [^ superclass bindingOf: aSymbol].
+
+ !
Item was added:
+ ----- Method: ClassCategoryReader>>scanFrom:environment: (in category 'fileIn/Out') -----
+ scanFrom: aStream environment: anEnvironment
+ "File in methods from the stream, aStream."
+ | methodText |
+ [methodText := aStream nextChunkText.
+ methodText size > 0] whileTrue:
+ [class
+ compile: methodText
+ environment: anEnvironment
+ classified: category
+ withStamp: changeStamp
+ notifying: nil]!
Item was added:
+ ----- Method: ClassCommentReader>>scanFrom:environment: (in category 'as yet unclassified') -----
+ scanFrom: aStream environment: anEnvironment
+ ^ self scanFrom: aStream!
Item was added:
+ ----- Method: ClassDescription>>compile:environment:classified:withStamp:notifying: (in category 'compiling') -----
+ compile: text environment: anEnvironment classified: category withStamp: changeStamp notifying: requestor
+ ^ self
+ compile: text
+ environment: anEnvironment
+ classified: category
+ withStamp: changeStamp
+ notifying: requestor
+ logSource: self acceptsLoggingOfCompilation!
Item was added:
+ ----- Method: ClassDescription>>compile:environment:classified:withStamp:notifying:logSource: (in category 'compiling') -----
+ compile: text environment: anEnvironment classified: category withStamp: changeStamp notifying: requestor logSource: logSource
+ | methodAndNode context methodNode |
+ context := CompilationCue
+ source: text
+ class: self
+ environment: anEnvironment
+ category: category
+ requestor: requestor.
+ methodNode := self newCompiler compile: context ifFail: [^ nil].
+ methodAndNode := CompiledMethodWithNode
+ generateMethodFromNode: methodNode
+ trailer: self defaultMethodTrailer.
+
+ logSource ifTrue: [
+ self logMethodSource: text forMethodWithNode: methodAndNode
+ inCategory: category withStamp: changeStamp notifying: requestor.
+ ].
+ self addAndClassifySelector: methodAndNode selector withMethod: methodAndNode
+ method inProtocol: category notifying: requestor.
+ self instanceSide noteCompilationOf: methodAndNode selector meta: self isClassSide.
+ ^ methodAndNode selector!
Item was added:
+ ----- Method: Metaclass>>bindingOf:environment: (in category 'compiling') -----
+ bindingOf: varName environment: anEnvironment
+ ^ thisClass classBindingOf: varName environment: anEnvironment!
Item was added:
+ ----- Method: UndefinedObject>>literalScannedAs:environment:notifying: (in category 'class hierarchy') -----
+ literalScannedAs: scannedLiteral environment: anEnvironment notifying: requestor
+ ^ scannedLiteral!
More information about the Packages
mailing list