[Pkg] The Trunk: Compiler-cmm.275.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Oct 3 19:35:21 UTC 2013


Chris Muller uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-cmm.275.mcz

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

Name: Compiler-cmm.275
Author: cmm
Time: 3 October 2013, 2:34:56.409 pm
UUID: 9d002330-e75e-436f-8699-b29413e98e81
Ancestors: Compiler-nice.274

When loading code, don't blow up just because of an undeclared ref.

=============== Diff against Compiler-nice.274 ===============

Item was changed:
  ----- Method: Encoder>>undeclared: (in category 'encoding') -----
+ undeclared: name 
- undeclared: name
  	| sym |
  	requestor interactive ifTrue:
+ 		[ requestor requestor == #error: ifTrue: [ requestor error: 'Undeclared' ].
+ 		^ self notify: 'Undeclared' ].
- 		[requestor requestor == #error: ifTrue:
- 			[requestor error: 'Undeclared'].
- 		 ^self notify: 'Undeclared'].
  	"Allow knowlegeable clients to squash the undeclared warning if they want (e.g.
  	 Diffing pretty printers that are simply formatting text).  As this breaks
  	 compilation it should only be used by clients that want to discard the result
  	 of the compilation.  To squash the warning use e.g.
  		[Compiler format: code in: class notifying: nil decorated: false]
  			on: UndeclaredVariableWarning
  			do: [:ex| ex resume: false]"
  	sym := name asSymbol.
+ 	^ (UndeclaredVariableWarning new
+ 		name: name
+ 		selector: selector
+ 		class: cue getClass) signal
- 	^(UndeclaredVariableWarning new name: name selector: selector class: cue getClass) signal
  		ifTrue:
+ 			[ | undeclared |
- 			[| undeclared |
  			undeclared := cue environment undeclared.
+ 			[ undeclared
+ 				at: sym
+ 				put: nil ]
+ 				on: AttemptToWriteReadOnlyGlobal
+ 				do: [ : noti | noti resume: true ].
+ 			self
+ 				global: (undeclared associationAt: sym)
+ 				name: sym ]
- 			undeclared at: sym put: nil.
- 			self global: (undeclared associationAt: sym) name: sym]
  		ifFalse:
+ 			[ self
+ 				global: (Association key: sym)
+ 				name: sym ]!
- 			[self global: (Association key: sym) name: sym]!



More information about the Packages mailing list