Nicolas Cellier uploaded a new version of Kernel to project The Trunk: http://source.squeak.org/trunk/Kernel-nice.628.mcz
==================== Summary ====================
Name: Kernel-nice.628 Author: nice Time: 26 September 2011, 9:10:09.363 pm UUID: 9c77ee63-103f-4577-b987-5ee0f539d582 Ancestors: Kernel-nice.627
Boolean subclasses know better how to behave, so if we delegate ==> , we can implement a branch-less implication.
Though I wonder if this is really an optimization in case of a JIT VM... { [true ==> [1 > 2]] bench. [false ==> [1 > 2]] bench. } #( '6,440,000 per second.' '6,690,000 per second.') "BEFORE" #( '6,410,000 per second.' '7,030,000 per second.') "AFTER"
=============== Diff against Kernel-nice.627 ===============
Item was added: + ----- Method: Boolean>>===> (in category 'logical operations') ----- + ===> aBlock + "this is material implication, a ==> b, also known as: + b if a + a implies b + if a then b + b is a consequence of a + a therefore b (but note: 'it is raining therefore it is cloudy' is implication; 'it is autumn therefore the leaves are falling' is equivalence). + + Here is the truth table for material implication (view in a monospaced font): + + p | q | p ==> q + -------|-------|------------- + T | T | T + T | F | F + F | T | T + F | F | T + " + + ^self not or: [aBlock value]!
Item was changed: ----- Method: Boolean>>==> (in category 'logical operations') ----- ==> aBlock "this is material implication, a ==> b, also known as: b if a a implies b if a then b b is a consequence of a a therefore b (but note: 'it is raining therefore it is cloudy' is implication; 'it is autumn therefore the leaves are falling' is equivalence). Here is the truth table for material implication (view in a monospaced font): p | q | p ==> q -------|-------|------------- T | T | T T | F | F F | T | T F | F | T "
+ self subclassResponsibility! - ^self not or: [aBlock value]!
Item was added: + ----- Method: False>>==> (in category 'logical operations') ----- + ==> aBlock + ^true!
Item was added: + ----- Method: True>>==> (in category 'logical operations') ----- + ==> aBlock + ^aBlock value!
squeak-dev@lists.squeakfoundation.org