diff --git a/.travis.yml b/.travis.yml index b95d6c83..fb603eac 100644 --- a/.travis.yml +++ b/.travis.yml @@ -33,7 +33,7 @@ matrix: env: BUILD_NAME=Squeak-5.2 - smalltalk: Squeak32-5.1 env: BUILD_NAME=Squeak-5.1 - - smalltalk: GemStone-3.5.2 + - smalltalk: GemStone-3.5.4 env: BUILD_NAME=GemStone-3.5.2 - smalltalk: GemStone-3.4.5 env: BUILD_NAME=GemStone-3.4.5 diff --git a/repository/BaselineOfGrease.package/.filetree b/repository/BaselineOfGrease.package/.filetree index 57a67973..8998102c 100644 --- a/repository/BaselineOfGrease.package/.filetree +++ b/repository/BaselineOfGrease.package/.filetree @@ -1,5 +1,4 @@ { - "separateMethodMetaAndSource" : false, "noMethodMetaData" : true, - "useCypressPropertiesFile" : true -} \ No newline at end of file + "separateMethodMetaAndSource" : false, + "useCypressPropertiesFile" : true } diff --git a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineGemStone..st b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineGemStone..st index 8e654e74..93fc2717 100644 --- a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineGemStone..st +++ b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineGemStone..st @@ -79,7 +79,7 @@ baselineGemStone: spec requires: #('Grease-GemStone-Core'); postLoadDoIt: #'initializeLatin1ToUtf8Encodings' ] ]. spec - for: #(#'gs3.3.x' #'gs3.4.x' #'gs3.5.x' #'gs3.6.x') + for: #(#'gs3.3.x' #'gs3.4.x' #'gs3.5.x') do: [ spec package: 'Grease-GemStone-Core' @@ -89,6 +89,17 @@ baselineGemStone: spec spec requires: #('Grease-GemStone-Core'); postLoadDoIt: #'initializeLatin1ToUtf8Encodings' ] ]. + spec + for: #(#'gs3.6.x') + do: [ + spec + package: 'Grease-GemStone-Core' + with: [ spec includes: #('Grease-GemStone360-Core') ]; + package: 'Grease-GemStone360-Core' + with: [ + spec + requires: #('Grease-GemStone-Core'); + postLoadDoIt: #'initializeLatin1ToUtf8Encodings' ] ]. spec for: #(#'gs3.2.x' #'gs3.3.x' #'gs3.4.x' #'gs3.5.x' #'gs3.6.x') do: [ diff --git a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/projectClass.st b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/projectClass.st index 28bd1a55..1d4f6564 100644 --- a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/projectClass.st +++ b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/projectClass.st @@ -1,4 +1,4 @@ accessing projectClass Smalltalk at: #'MetacelloCypressBaselineProject' ifPresent: [ :cl | ^ cl ]. - ^ super projectClass + ^ super projectClass \ No newline at end of file diff --git a/repository/BaselineOfGrease.package/BaselineOfGrease.class/properties.json b/repository/BaselineOfGrease.package/BaselineOfGrease.class/properties.json index 0260395f..8a39c621 100644 --- a/repository/BaselineOfGrease.package/BaselineOfGrease.class/properties.json +++ b/repository/BaselineOfGrease.package/BaselineOfGrease.class/properties.json @@ -1,11 +1,14 @@ { - "commentStamp" : "", - "super" : "BaselineOf", "category" : "BaselineOfGrease", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ ], + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + ], "name" : "BaselineOfGrease", - "type" : "normal" -} \ No newline at end of file + "pools" : [ + ], + "super" : "BaselineOf", + "type" : "normal" } diff --git a/repository/BaselineOfGrease.package/monticello.meta/categories.st b/repository/BaselineOfGrease.package/monticello.meta/categories.st index aad806f8..3687f0b2 100644 --- a/repository/BaselineOfGrease.package/monticello.meta/categories.st +++ b/repository/BaselineOfGrease.package/monticello.meta/categories.st @@ -1 +1 @@ -SystemOrganization addCategory: #BaselineOfGrease! +SystemOrganization addCategory: #'BaselineOfGrease'! diff --git a/repository/BaselineOfGrease.package/properties.json b/repository/BaselineOfGrease.package/properties.json index 6f31cf5a..f037444a 100644 --- a/repository/BaselineOfGrease.package/properties.json +++ b/repository/BaselineOfGrease.package/properties.json @@ -1 +1,2 @@ -{ } \ No newline at end of file +{ + } diff --git a/repository/Grease-GemStone360-Core.package/.filetree b/repository/Grease-GemStone360-Core.package/.filetree new file mode 100644 index 00000000..8998102c --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/.filetree @@ -0,0 +1,4 @@ +{ + "noMethodMetaData" : true, + "separateMethodMetaAndSource" : false, + "useCypressPropertiesFile" : true } diff --git a/repository/Grease-GemStone360-Core.package/Class.extension/instance/comment.st b/repository/Grease-GemStone360-Core.package/Class.extension/instance/comment.st new file mode 100644 index 00000000..e1f21144 --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/Class.extension/instance/comment.st @@ -0,0 +1,9 @@ +*grease-gemstone360-core +comment + "override new 3.6.0 comment implementation (answers default GemSTone class comment for + class instead of nil) and restore pre-3.6.0 behavior (answer nil if no comment + defined)" + + "https://github.com/SeasideSt/Grease/issues/111" + + ^ self commentForFileout \ No newline at end of file diff --git a/repository/Grease-GemStone360-Core.package/Class.extension/properties.json b/repository/Grease-GemStone360-Core.package/Class.extension/properties.json new file mode 100644 index 00000000..239813a4 --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/Class.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "Class" } diff --git a/repository/Grease-GemStone360-Core.package/Exception.extension/instance/greaseString.st b/repository/Grease-GemStone360-Core.package/Exception.extension/instance/greaseString.st new file mode 100644 index 00000000..6728cdfa --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/Exception.extension/instance/greaseString.st @@ -0,0 +1,4 @@ +*grease-gemstone360-core +greaseString + + ^self description \ No newline at end of file diff --git a/repository/Grease-GemStone360-Core.package/Exception.extension/instance/messageText.st b/repository/Grease-GemStone360-Core.package/Exception.extension/instance/messageText.st new file mode 100644 index 00000000..739ca1e4 --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/Exception.extension/instance/messageText.st @@ -0,0 +1,5 @@ +*grease-gemstone360-core +messageText + "override new 3.6.0 messageText implementation to restore pre-3.6.0 behavior" + "https://github.com/SeasideSt/Grease/issues/111" + ^ gsDetails \ No newline at end of file diff --git a/repository/Grease-GemStone360-Core.package/Exception.extension/properties.json b/repository/Grease-GemStone360-Core.package/Exception.extension/properties.json new file mode 100644 index 00000000..6dcfd842 --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/Exception.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "Exception" } diff --git a/repository/Grease-GemStone360-Core.package/ExecBlock.extension/instance/argumentCount.st b/repository/Grease-GemStone360-Core.package/ExecBlock.extension/instance/argumentCount.st new file mode 100644 index 00000000..b2db46a7 --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/ExecBlock.extension/instance/argumentCount.st @@ -0,0 +1,4 @@ +*grease-gemstone360-core +argumentCount + + ^self numArgs. \ No newline at end of file diff --git a/repository/Grease-GemStone360-Core.package/ExecBlock.extension/instance/ifCurtailed..st b/repository/Grease-GemStone360-Core.package/ExecBlock.extension/instance/ifCurtailed..st new file mode 100644 index 00000000..088ae8e6 --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/ExecBlock.extension/instance/ifCurtailed..st @@ -0,0 +1,11 @@ +*grease-gemstone360-core +ifCurtailed: aBlock + + | wasCurtailed | + wasCurtailed := true. + [ + self value. + wasCurtailed := false. + ] ensure: [ + wasCurtailed ifTrue: aBlock. + ]. \ No newline at end of file diff --git a/repository/Grease-GemStone360-Core.package/ExecBlock.extension/instance/valueWithPossibleArguments..st b/repository/Grease-GemStone360-Core.package/ExecBlock.extension/instance/valueWithPossibleArguments..st new file mode 100644 index 00000000..0bcb5c01 --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/ExecBlock.extension/instance/valueWithPossibleArguments..st @@ -0,0 +1,9 @@ +*grease-gemstone360-core +valueWithPossibleArguments: anArray + "Evaluate the block represented by the receiver with the arguments provided." + | n args | + (n := self numArgs) == 0 ifTrue: [^self value]. + args := anArray copy + size: n; + yourself. + ^ self valueWithArguments: args. \ No newline at end of file diff --git a/repository/Grease-GemStone360-Core.package/ExecBlock.extension/properties.json b/repository/Grease-GemStone360-Core.package/ExecBlock.extension/properties.json new file mode 100644 index 00000000..d8195e28 --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/ExecBlock.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "ExecBlock" } diff --git a/repository/Grease-GemStone360-Core.package/GRGemStonePlatform.extension/instance/gemstoneExceptionSelector.st b/repository/Grease-GemStone360-Core.package/GRGemStonePlatform.extension/instance/gemstoneExceptionSelector.st new file mode 100644 index 00000000..ecd27c2c --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/GRGemStonePlatform.extension/instance/gemstoneExceptionSelector.st @@ -0,0 +1,4 @@ +*grease-gemstone360-core +gemstoneExceptionSelector + + ^ (ExceptionSet new) , Halt, AlmostOutOfStack, Breakpoint \ No newline at end of file diff --git a/repository/Grease-GemStone360-Core.package/GRGemStonePlatform.extension/instance/generateHardBreak.st b/repository/Grease-GemStone360-Core.package/GRGemStonePlatform.extension/instance/generateHardBreak.st new file mode 100644 index 00000000..696a9e9c --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/GRGemStonePlatform.extension/instance/generateHardBreak.st @@ -0,0 +1,5 @@ +*grease-gemstone360-core +generateHardBreak + "Generate a GemStone hard break" + + ^Break signal: 'interrupted for Seaside debugging' \ No newline at end of file diff --git a/repository/Grease-GemStone360-Core.package/GRGemStonePlatform.extension/instance/handlesAlmostOutOfStackException..st b/repository/Grease-GemStone360-Core.package/GRGemStonePlatform.extension/instance/handlesAlmostOutOfStackException..st new file mode 100644 index 00000000..4d285df0 --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/GRGemStonePlatform.extension/instance/handlesAlmostOutOfStackException..st @@ -0,0 +1,4 @@ +*grease-gemstone360-core +handlesAlmostOutOfStackException: anException + + ^AlmostOutOfStack handles: anException \ No newline at end of file diff --git a/repository/Grease-GemStone360-Core.package/GRGemStonePlatform.extension/instance/handlesBreakpointException..st b/repository/Grease-GemStone360-Core.package/GRGemStonePlatform.extension/instance/handlesBreakpointException..st new file mode 100644 index 00000000..c983e7d9 --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/GRGemStonePlatform.extension/instance/handlesBreakpointException..st @@ -0,0 +1,4 @@ +*grease-gemstone360-core +handlesBreakpointException: anException + + ^Breakpoint handles: anException \ No newline at end of file diff --git a/repository/Grease-GemStone360-Core.package/GRGemStonePlatform.extension/instance/handlesHaltException..st b/repository/Grease-GemStone360-Core.package/GRGemStonePlatform.extension/instance/handlesHaltException..st new file mode 100644 index 00000000..05602c45 --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/GRGemStonePlatform.extension/instance/handlesHaltException..st @@ -0,0 +1,4 @@ +*grease-gemstone360-core +handlesHaltException: anException + + ^Halt handles: anException \ No newline at end of file diff --git a/repository/Grease-GemStone360-Core.package/GRGemStonePlatform.extension/properties.json b/repository/Grease-GemStone360-Core.package/GRGemStonePlatform.extension/properties.json new file mode 100644 index 00000000..eab5d9b5 --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/GRGemStonePlatform.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "GRGemStonePlatform" } diff --git a/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/README.md b/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/class/initialize.st b/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/class/initialize.st new file mode 100644 index 00000000..fa779537 --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/class/initialize.st @@ -0,0 +1,12 @@ +initialization +initialize + "self initialize" + + Latin1ToUtf8Encodings := Array new: 256. + 1 to: 256 do: [ :index | + index > 128 + ifTrue: [ + Latin1ToUtf8Encodings + at: index + put: + (String with: (Character codePoint: index - 1)) encodeAsUTF8 asString ] ] \ No newline at end of file diff --git a/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/instance/crlf.st b/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/instance/crlf.st new file mode 100644 index 00000000..e5bb258a --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/instance/crlf.st @@ -0,0 +1,9 @@ +streaming +crlf + binary + ifTrue: [ + stream nextPut: 13. + stream nextPut: 10 ] + ifFalse: [ + stream nextPut: Character cr. + stream nextPut: Character lf ] \ No newline at end of file diff --git a/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/instance/invalidUtf8.st b/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/instance/invalidUtf8.st new file mode 100644 index 00000000..d38b2f3b --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/instance/invalidUtf8.st @@ -0,0 +1,3 @@ +private +invalidUtf8 + ^GRInvalidUtf8Error signal: 'Invalid UTF-8 input' \ No newline at end of file diff --git a/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/instance/next..st b/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/instance/next..st new file mode 100644 index 00000000..2f2af983 --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/instance/next..st @@ -0,0 +1,37 @@ +streaming +next: anInteger + "Convert the given string from UTF-8 using the fast path if converting to Latin-1" + | outStream byte1 byte2 byte3 byte4 unicode count | + outStream := WriteStream on: (String new: anInteger). + count := 0. + [ count < anInteger and: [ stream atEnd not ] ] whileTrue: [ + byte1 := stream next. + unicode := byte1. + (byte1 bitAnd: 16rE0) = 192 ifTrue: [ "two bytes" + byte2 := stream next. + (byte2 bitAnd: 16rC0) = 16r80 ifFalse: [ self invalidUtf8 ]. + unicode := ((byte1 bitAnd: 31) bitShift: 6) + (byte2 bitAnd: 63)]. + (byte1 bitAnd: 16rF0) = 224 ifTrue: [ "three bytes" + byte2 := stream next. + (byte2 bitAnd: 16rC0) = 16r80 ifFalse: [ self invalidUtf8 ]. + byte3 := stream next. + (byte3 bitAnd: 16rC0) = 16r80 ifFalse: [ self invalidUtf8 ]. + unicode := ((byte1 bitAnd: 15) bitShift: 12) + ((byte2 bitAnd: 63) bitShift: 6) + + (byte3 bitAnd: 63)]. + (byte1 bitAnd: 16rF8) = 240 ifTrue: [ "four bytes" + byte2 := stream next. + (byte2 bitAnd: 16rC0) = 16r80 ifFalse: [ self invalidUtf8 ]. + byte3 := stream next. + (byte3 bitAnd: 16rC0) = 16r80 ifFalse: [ self invalidUtf8 ]. + byte4 := stream next. + (byte4 bitAnd: 16rC0) = 16r80 ifFalse: [ self invalidUtf8 ]. + unicode := ((byte1 bitAnd: 16r7) bitShift: 18) + + ((byte2 bitAnd: 63) bitShift: 12) + + ((byte3 bitAnd: 63) bitShift: 6) + + (byte4 bitAnd: 63)]. + unicode ifNil: [ self invalidUtf8 ]. + unicode = 16rFEFF "ignore BOM" ifFalse: [ + outStream nextPut: (Character codePoint: unicode). + count := count + 1 ]. + unicode := nil ]. + ^outStream contents \ No newline at end of file diff --git a/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/instance/nextPut..st b/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/instance/nextPut..st new file mode 100644 index 00000000..1f98bba7 --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/instance/nextPut..st @@ -0,0 +1,17 @@ +streaming +nextPut: aCharacter + "old implementation is very slow !!" + + " self nextPutAll: (String with: aCharacter)" + + | codePoint | + codePoint := aCharacter codePoint. + codePoint > 127 + ifTrue: [ + codePoint > 255 + ifTrue: [ + | str | + str := (String with: aCharacter) encodeAsUTF8intoString. + stream nextPutAll: str ] + ifFalse: [ stream nextPutAll: (Latin1ToUtf8Encodings at: codePoint + 1) ] ] + ifFalse: [ stream nextPut: aCharacter ] \ No newline at end of file diff --git a/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/instance/nextPutAll..st b/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/instance/nextPutAll..st new file mode 100644 index 00000000..d43ab2ef --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/instance/nextPutAll..st @@ -0,0 +1,5 @@ +streaming +nextPutAll: aString + binary + ifTrue: [ stream nextPutAll: aString asString ] + ifFalse: [ stream nextPutAll: aString _encodeAsUTF8intoString ] \ No newline at end of file diff --git a/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/properties.json b/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/properties.json new file mode 100644 index 00000000..c174e72b --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/GRUtf8CodecStream.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "Grease-GemStone360-Core", + "classinstvars" : [ + ], + "classvars" : [ + "Latin1ToUtf8Encodings" ], + "commentStamp" : "", + "instvars" : [ + ], + "name" : "GRUtf8CodecStream", + "pools" : [ + ], + "super" : "GRTextOrBinaryCodecStream", + "type" : "normal" } diff --git a/repository/Grease-GemStone360-Core.package/monticello.meta/categories.st b/repository/Grease-GemStone360-Core.package/monticello.meta/categories.st new file mode 100644 index 00000000..cb035a16 --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/monticello.meta/categories.st @@ -0,0 +1 @@ +SystemOrganization addCategory: #'Grease-GemStone360-Core'! diff --git a/repository/Grease-GemStone360-Core.package/monticello.meta/initializers.st b/repository/Grease-GemStone360-Core.package/monticello.meta/initializers.st new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-GemStone360-Core.package/monticello.meta/package b/repository/Grease-GemStone360-Core.package/monticello.meta/package new file mode 100644 index 00000000..7ced6c0d --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/monticello.meta/package @@ -0,0 +1 @@ +(name 'Grease-GemStone360-Core') \ No newline at end of file diff --git a/repository/Grease-GemStone360-Core.package/properties.json b/repository/Grease-GemStone360-Core.package/properties.json new file mode 100644 index 00000000..f037444a --- /dev/null +++ b/repository/Grease-GemStone360-Core.package/properties.json @@ -0,0 +1,2 @@ +{ + }