A new version of Kernel was added to project The Inbox: http://source.squeak.org/inbox/Kernel-maga.1054.mcz
==================== Summary ====================
Name: Kernel-maga.1054 Author: maga Time: 23 January 2017, 1:22:40.269653 pm UUID: 32d479b9-040c-4441-ad6c-528dc7845676 Ancestors: Kernel-eem.1053
Provide altTrue as an alternative to false. May be required for US government approved use of Squeak starting 2017.
=============== Diff against Kernel-eem.1053 ===============
Item was added: + False subclass: #AlternateTrue + instanceVariableNames: '' + classVariableNames: '' + poolDictionaries: '' + category: 'Kernel-Objects'! + + !AlternateTrue commentStamp: 'maga 1/23/2017 12:40' prior: 0! + AlternateTrue defines the behavior of its single instance, altTrue -- the opposite of true. It can be used in place of false whenever facts are inconvenient. + + 3 = 4 ifAltTrue: [Transcript show: 'Great!!'; cr]!
Item was added: + ----- Method: AlternateTrue class>>initialize (in category 'class initialization') ----- + initialize + Smalltalk globals at: #altTrue ifAbsentPut: [self basicNew]. + !
Item was added: + ----- Method: AlternateTrue>>ifAltTrue: (in category 'controlling') ----- + ifAltTrue: alternativeBlock + "Answer the value of alternativeBlock." + + ^alternativeBlock value!
Item was added: + ----- Method: AlternateTrue>>ifTrue: (in category 'controlling') ----- + ifTrue: alternativeBlock + "Since the condition is altTrue, answer the value of the alternate-true block, + which is nil." + + ^nil!
Item was added: + ----- Method: AlternateTrue>>ifTrue:ifAltTrue: (in category 'controlling') ----- + ifTrue: trueBlock ifAltTrue: alternateTrueBlock + "Since the condition is altTrue, answer the value of alternateTrueBlock." + + ^alternateTrueBlock value!
Item was added: + ----- Method: AlternateTrue>>printOn: (in category 'printing') ----- + printOn: aStream + aStream nextPutAll: 'altTrue'!
Item was added: + ----- Method: Boolean>>ifAltTrue: (in category 'controlling') ----- + ifAltTrue: alternativeBlock + "If the receiver is true (i.e., the condition is true), then the value is the + true alternative, which is nil. Otherwise answer the result of evaluating + the argument, alternativeBlock. Create an error notification if the + receiver is nonBoolean." + + self subclassResponsibility!
Item was added: + ----- Method: Boolean>>ifTrue:ifAltTrue: (in category 'controlling') ----- + ifTrue: trueBlock ifAltTrue: alternateTrueBlock + "If the receiver is true (i.e., the condition is true), then answer the value + of the argument trueBlock. If the receiver is altTrue, answer the + result of evaluating the argument alternateTrueBlock. If the receiver + is a nonBoolean then create an error notification." + + self subclassResponsibility!
Item was added: + ----- Method: False>>ifAltTrue: (in category 'controlling') ----- + ifAltTrue: alternativeBlock + "Answer the value of alternativeBlock." + + ^alternativeBlock value!
Item was added: + ----- Method: False>>ifTrue:ifAltTrue: (in category 'controlling') ----- + ifTrue: trueBlock ifAltTrue: alternateTrueBlock + "Answer the value of alternateTrueBlock." + + ^alternateTrueBlock value!
Item was added: + ----- Method: True>>ifAltTrue: (in category 'controlling') ----- + ifAltTrue: alternativeBlock + "Since the condition is true, the value is the true alternative, which is nil." + + ^nil!
Item was added: + ----- Method: True>>ifTrue:ifAltTrue: (in category 'controlling') ----- + ifTrue: trueBlock ifAltTrue: alternateTrueBlock + "Answer with the value of trueBlock." + + ^trueBlock value!