[squeak-dev] The Inbox: Kernel-jr.1061.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Feb 28 02:25:58 UTC 2017


A new version of Kernel was added to project The Inbox:
http://source.squeak.org/inbox/Kernel-jr.1061.mcz

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

Name: Kernel-jr.1061
Author: jr
Time: 28 February 2017, 12:28:50.653081 am
UUID: acd952fb-8e90-e940-8d2e-6c1a9e3a7d3f
Ancestors: Kernel-ul.1060

increase environment awareness for behaviors

=============== Diff against Kernel-ul.1060 ===============

Item was added:
+ ----- Method: Behavior>>compile:environment:notifying:trailer:ifFail: (in category 'compiling') -----
+ compile: code environment: anEnvironment notifying: requestor trailer: bytes ifFail: failBlock
+ 	"Compile code in another Environment without logging the source in the changes file"
+ 
+ 	| methodNode |
+ 	methodNode  := self newCompiler
+ 				compile: code
+ 				in: self
+ 				environment: anEnvironment
+ 				notifying: requestor
+ 				ifFail: failBlock.
+ 	^ CompiledMethodWithNode generateMethodFromNode: methodNode trailer: bytes.!

Item was changed:
  ----- Method: Class>>category: (in category 'organization') -----
  category: aString 
  	"Categorize the receiver under the system category, aString, removing it from 
  	any previous categorization."
  
  	| oldCategory |
  	oldCategory := category.
  	aString isString
  		ifTrue: [
  			category := aString asSymbol.
+ 			self environment organization classify: self name under: category ]
- 			SystemOrganization classify: self name under: category ]
  		ifFalse: [self errorCategoryName]!

Item was changed:
  ----- Method: ClassDescription>>definition (in category 'fileIn/Out') -----
  definition
  	"Answer a String that defines the receiver."
  
  	| aStream path |
  	aStream := WriteStream on: (String new: 300).
  	superclass == nil
  		ifTrue: [aStream nextPutAll: 'ProtoObject']
  		ifFalse: [path := ''.
  				self environment scopeFor: superclass name from: nil
  						envtAndPathIfFound: [:envt :remotePath | path := remotePath].
  				aStream nextPutAll: path , superclass name].
  	aStream nextPutAll: self kindOfSubclass;
  			store: self name.
  	(self hasTraitComposition and: [self traitComposition notEmpty]) ifTrue: [
  		aStream cr; tab; nextPutAll: 'uses: ';
  			nextPutAll: self traitCompositionString].
  	aStream cr; tab; nextPutAll: 'instanceVariableNames: ';
  			store: self instanceVariablesString.
  	aStream cr; tab; nextPutAll: 'classVariableNames: ';
  			store: self classVariablesString.
  	aStream cr; tab; nextPutAll: 'poolDictionaries: ';
  			store: self sharedPoolsString.
  	aStream cr; tab; nextPutAll: 'category: ';
+ 			store: (self environment organization categoryOfElement: self name) asString.
- 			store: (SystemOrganization categoryOfElement: self name) asString.
  
  	superclass ifNil: [ 
  		aStream nextPutAll: '.'; cr.
  		aStream nextPutAll: self name.
  		aStream space; nextPutAll: 'superclass: nil'. ].
  
  	^ aStream contents!

Item was changed:
  ----- Method: Object class>>readFrom: (in category 'instance creation') -----
  readFrom: textStringOrStream
  	"Create an object based on the contents of textStringOrStream."
  
  	| object |
  	(Compiler couldEvaluate: textStringOrStream)
  		ifFalse: [^ self error: 'expected String, Stream, or Text'].
+ 	object := self environment beCurrentDuring: [Compiler evaluate: textStringOrStream environment: self environment].
- 	object := Compiler evaluate: textStringOrStream.
  	(object isKindOf: self) ifFalse: [self error: self name, ' expected'].
  	^object!



More information about the Squeak-dev mailing list