[squeak-dev] The Trunk: Collections-nice.794.mcz

commits at source.squeak.org commits at source.squeak.org
Thu May 3 22:48:43 UTC 2018


Nicolas Cellier uploaded a new version of Collections to project The Trunk:
http://source.squeak.org/trunk/Collections-nice.794.mcz

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

Name: Collections-nice.794
Author: nice
Time: 4 May 2018, 12:48:13.071978 am
UUID: 1ffc2862-2360-4a20-876b-782ae5cb72f5
Ancestors: Collections-eem.793

Provide CharacterSet includesCode: and also ASCII and non ASCII maps.

=============== Diff against Collections-eem.793 ===============

Item was removed:
- ----- Method: ByteCharacterSet>>includes: (in category 'testing') -----
- includes: anObject
- 
- 	| index |
- 	anObject isCharacter ifFalse: [ ^false ].
- 	(index := anObject asInteger + 1) > 256 ifTrue: [ ^false ].
- 	^(byteArrayMap at: index) > 0!

Item was added:
+ ----- Method: ByteCharacterSet>>includesCode: (in category 'testing') -----
+ includesCode: anInteger
+ 	anInteger > 255 ifTrue: [ ^false ].
+ 	^(byteArrayMap at: anInteger + 1) > 0!

Item was changed:
  Collection subclass: #CharacterSet
  	instanceVariableNames: 'byteArrayMap'
+ 	classVariableNames: 'Ascii CrLf NonAscii NonSeparators Separators'
- 	classVariableNames: 'CrLf NonSeparators Separators'
  	poolDictionaries: ''
  	category: 'Collections-Support'!
  
  !CharacterSet commentStamp: '<historical>' prior: 0!
  A set of characters.  Lookups for inclusion are very fast.!

Item was added:
+ ----- Method: CharacterSet class>>ascii (in category 'accessing') -----
+ ascii
+ 	"return a set containing all the ASCII characters"
+ 
+ 	^Ascii ifNil: [ Ascii := self newFrom: ((1 to: 127) collect: [:code | code asCharacter]) ]!

Item was added:
+ ----- Method: CharacterSet class>>nonAscii (in category 'accessing') -----
+ nonAscii
+ 	"return a set containing all the non ASCII characters"
+ 
+ 	^NonAscii ifNil: [ NonAscii := self ascii complement ]!

Item was changed:
  ----- Method: CharacterSet>>createByteArrayMap (in category 'private') -----
  createByteArrayMap
+ 	^ (0 to: 255)
+ 		collect: [:i | (self includesCode: i) ifTrue: [1] ifFalse: [0]]
+ 		as: ByteArray!
- 	^ (0 to: 255) asByteArray collect:
- 		[:i | (self includes: (Character value: i)) ifTrue: [1] ifFalse: [0]]!

Item was added:
+ ----- Method: CharacterSet>>includes: (in category 'testing') -----
+ includes: anObject 
+ 	anObject isCharacter ifFalse: [ ^false ].
+ 	^self includesCode: anObject asInteger!

Item was added:
+ ----- Method: CharacterSet>>includesCode: (in category 'testing') -----
+ includesCode: anInteger
+ 	^self subclassResponsibility!

Item was removed:
- ----- Method: CharacterSetComplement>>includes: (in category 'testing') -----
- includes: anObject
- 
- 	anObject isCharacter ifFalse: [ ^false ].
- 	(absent includes: anObject) ifTrue: [ ^false ].
- 	^true!

Item was added:
+ ----- Method: CharacterSetComplement>>includesCode: (in category 'testing') -----
+ includesCode: anInteger
+ 	(absent includesCode: anInteger) ifTrue: [ ^false ].
+ 	^true!

Item was added:
+ ----- Method: LazyCharacterSet>>includesCode: (in category 'testing') -----
+ includesCode: anInteger
+ 	^block value: (Character value: anInteger)!

Item was changed:
+ ----- Method: WeakIdentityDictionary>>removeUnreferencedKeys (in category 'removing') -----
- ----- Method: WeakIdentityDictionary>>removeUnreferencedKeys (in category 'as yet unclassified') -----
  removeUnreferencedKeys
  	"Make sure tally is set to the right size by #compact."
  
  	super removeUnreferencedKeys.
  	self compact!

Item was removed:
- ----- Method: WideCharacterSet>>includes: (in category 'testing') -----
- includes: anObject 
- 
- 	| value |
- 	anObject isCharacter ifFalse: [ ^false ].
- 	(value := anObject asInteger) < 256 ifTrue: [
- 		^(byteArrayMap at: value + 1) ~= 0 ].
- 	^((map at: (value bitShift: highBitsShift) ifAbsent: nil) ifNil: [ ^false ])
- 		includes: (value bitAnd: lowBitsMask)!

Item was added:
+ ----- Method: WideCharacterSet>>includesCode: (in category 'testing') -----
+ includesCode: anInteger
+ 	anInteger < 256 ifTrue: [ ^(byteArrayMap at: anInteger + 1) ~= 0 ].
+ 	^((map at: (anInteger bitShift: highBitsShift) ifAbsent: nil) ifNil: [ ^false ])
+ 		includes: (anInteger bitAnd: lowBitsMask)!



More information about the Squeak-dev mailing list