diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..3134c1b3 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,32 @@ +name: smalltalkCI + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-16.04 + strategy: + fail-fast: false + matrix: + smalltalk: [ Pharo64-9.0, Pharo64-8.0, Pharo64-7.0, Pharo-6.1, GemStone64-3.6.0, GemStone64-3.5.5, GemStone64-3.4.5, GemStone64-3.3.9, GemStone64-3.2.17, GemStone64-3.1.0.6, Squeak64-5.3, Squeak64-5.2, Squeak64-5.1 ] + experimental: [ false ] + include: + - smalltalk: Squeak64-trunk + experimental: true + continue-on-error: ${{ matrix.experimental }} + name: ${{ matrix.smalltalk }} + steps: + - uses: actions/checkout@v2 + - uses: hpi-swa/setup-smalltalkCI@v1 + with: + smalltalk-version: ${{ matrix.smalltalk }} + - name: Fix missing OS prerequisites for GemStone builds + run: | + git clone https://github.com/GsDevKit/GsDevKit_home.git + ./GsDevKit_home/bin/utils/installOsPrereqs + continue-on-error: true + if: startsWith(matrix.smalltalk,'GemStone') + - name: Run tests + run: smalltalkci -s ${{ matrix.smalltalk }} + shell: bash + timeout-minutes: 10 \ No newline at end of file diff --git a/.pharo4.ston b/.pharo4.ston deleted file mode 100644 index ef69df2c..00000000 --- a/.pharo4.ston +++ /dev/null @@ -1,12 +0,0 @@ -SmalltalkCISpec { - #loading : [ - SCIMetacelloLoadSpec { - #useLatestMetacello : true, - #baseline : 'Grease', - #directory : 'repository', - #load : [ 'Tests' ], - #useLatestMetacello : true, - #platforms : [ #pharo ] - } - ] -} diff --git a/.travis.yml b/.travis.yml index 00c55829..993b448e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,13 +1,8 @@ language: smalltalk sudo: false -aliases: - - &pharo4-has-latest-metacello - smalltalk_config: .pharo4.ston - matrix: allow_failures: - - smalltalk: Pharo64-9.0 - smalltalk: Squeak32-trunk include: - smalltalk: Pharo64-9.0 @@ -20,11 +15,6 @@ matrix: env: BUILD_NAME=Pharo64-6.1 - smalltalk: Pharo-6.1 env: BUILD_NAME=Pharo-6.1 - - smalltalk: Pharo-5.0 - env: BUILD_NAME=Pharo-5.0 - - smalltalk: Pharo-4.0 - <<: *pharo4-has-latest-metacello - env: BUILD_NAME=Pharo-4.0 - smalltalk: Squeak32-trunk env: BUILD_NAME=Squeak-trunk - smalltalk: Squeak32-5.3 @@ -45,9 +35,3 @@ matrix: env: BUILD_NAME=GemStone-3.2.17 - smalltalk: GemStone-3.1.0.6 env: BUILD_NAME=GemStone-3.1.0.6 - - smalltalk: GemStone-2.4.8 - env: BUILD_NAME=GemStone-2.4.8 - -notifications: - slack: gemtalksystems:4YWbzy6sJN9cE0FhxvUPP8nS - diff --git a/README.md b/README.md index d8812519..08b4375e 100644 --- a/README.md +++ b/README.md @@ -20,12 +20,13 @@ The latest Grease version is supported on the following platforms and versions, | Squeak | Pharo | GemStone | | --------------- | ---------------- | -------------------- | -| [![Build status: Squeak-5.2](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=Squeak-trunk&label=5.2)](http://travis-ci.org/SeasideSt/Grease) | [![Build status: Pharo64-8.0](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=Pharo64-8.0&label=8.0)](http://travis-ci.org/SeasideSt/Grease) | [![Build status: Gemstone-3.5.2](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=GemStone-3.5.2&label=3.5.2)](http://travis-ci.org/SeasideSt/Grease) | -| [![Build status: Squeak-5.1](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=Squeak-5.1&label=5.1)](http://travis-ci.org/SeasideSt/Grease) | [![Build status: Pharo64-7.0](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=Pharo64-7.0&label=7.0)](http://travis-ci.org/SeasideSt/Grease) | [![Build status: Gemstone-3.4.5](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=GemStone-3.4.5&label=3.4.5)](http://travis-ci.org/SeasideSt/Grease) | +| [![Build status: Squeak-5.2](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=Squeak-trunk&label=5.2)](http://travis-ci.org/SeasideSt/Grease) | [![Build status: Pharo64-9.0](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=Pharo64-9.0&label=9.0)](http://travis-ci.org/SeasideSt/Grease) | [![Build status: Gemstone-3.6.0](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=GemStone-3.6.0&label=3.6.0)](http://travis-ci.org/SeasideSt/Grease) | +| [![Build status: Squeak-5.1](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=Squeak-5.1&label=5.1)](http://travis-ci.org/SeasideSt/Grease) | [![Build status: Pharo64-8.0](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=Pharo64-8.0&label=8.0)](http://travis-ci.org/SeasideSt/Grease) | [![Build status: Gemstone-3.5.5](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=GemStone-3.5.5&label=3.5.5)](http://travis-ci.org/SeasideSt/Grease) | +| | [![Build status: Pharo64-7.0](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=Pharo64-7.0&label=7.0)](http://travis-ci.org/SeasideSt/Grease) | [![Build status: Gemstone-3.4.5](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=GemStone-3.4.5&label=3.4.5)](http://travis-ci.org/SeasideSt/Grease) | | | [![Build status: Pharo-6.1](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=Pharo-6.1&label=6.1)](http://travis-ci.org/SeasideSt/Grease) | [![Build status: Gemstone-3.3.9](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=GemStone-3.3.9&label=3.3.9)](http://travis-ci.org/SeasideSt/Grease) | -| | [![Build status: Pharo-5.0](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=Pharo-5.0&label=5.0)](http://travis-ci.org/SeasideSt/Grease) | [![Build status: Gemstone-3.2.17](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=GemStone-3.2.17&label=3.2.17)](http://travis-ci.org/SeasideSt/Grease) | -| | [![Build status: Pharo-4.0](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=Pharo-4.0&label=4.0)](http://travis-ci.org/SeasideSt/Grease) | [![Build status: Gemstone-3.1.0.6](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=GemStone-3.1.0.6&label=3.1.0.6)](http://travis-ci.org/SeasideSt/Grease) | -| | | [![Build status: Gemstone-2.4.8](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=GemStone-2.4.8&label=2.4.8)](http://travis-ci.org/SeasideSt/Grease) | +| | | [![Build status: Gemstone-3.2.17](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=GemStone-3.2.17&label=3.2.17)](http://travis-ci.org/SeasideSt/Grease) | +| | | [![Build status: Gemstone-3.1.0.6](http://badges.herokuapp.com/travis/SeasideSt/Grease?branch=master&env=BUILD_NAME=GemStone-3.1.0.6&label=3.1.0.6)](http://travis-ci.org/SeasideSt/Grease) | +| | | | Coveralls (experimental): [![Coverage Status](https://coveralls.io/repos/github/SeasideSt/Grease/badge.svg?branch=test-coveralls)](https://coveralls.io/github/SeasideSt/Grease?branch=test-coveralls) @@ -35,7 +36,7 @@ Coveralls (experimental): [![Coverage Status](https://coveralls.io/repos/github/ Make sure you have the [MetacelloPreview version](https://github.com/Metacello/metacello), otherwise the load will not work. -### Squeak and Pharo (4.0 or newer) +### Squeak and Pharo (6.0 or newer) Load the latest code from master (i.e. stable): @@ -80,9 +81,11 @@ Gofer new (Smalltalk at: #GsUpgrader) upgradeGrease. ``` -### Pharo (3.0 or older) +### Pharo (5.0 or older) -The compatibility for Pharo < 4.0 is not maintained for new releases. If you need grease in Pharo < 4, we recommend to either update your pharo version or reference the latest release compatible with Pharo < 4, which is currently v1.4.1. +The compatibility for Pharo < 6.0 is not maintained for new releases. If you need grease in Pharo < 6, we recommend to either update your pharo version or reference the latest release compatible with your version of Pharo: +- Pharo <4: v1.4.1 +- Pharo 5 & 6: v1.6.1 For Pharo versions < 3.0, make sure you have the [MetacelloPreview version](https://github.com/dalehenrich/metacello-work), otherwise the load will not work. @@ -106,4 +109,4 @@ Metacello new load ``` -In case you need a specific feature for Pharo 3, it is still possible to create a new release by branching from v1.4.1. +In case you need a specific feature for an older version, it is still possible to create a new release by branching starting from the tagged commit of the compatible version. diff --git a/repository/BaselineOfGrease.package/.filetree b/repository/BaselineOfGrease.package/.filetree index 8998102c..57a67973 100644 --- a/repository/BaselineOfGrease.package/.filetree +++ b/repository/BaselineOfGrease.package/.filetree @@ -1,4 +1,5 @@ { - "noMethodMetaData" : true, "separateMethodMetaAndSource" : false, - "useCypressPropertiesFile" : true } + "noMethodMetaData" : true, + "useCypressPropertiesFile" : true +} \ No newline at end of file diff --git a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baseline..st b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baseline..st index 737970d7..bae4a809 100644 --- a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baseline..st +++ b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baseline..st @@ -1,4 +1,4 @@ -baseline +baselines baseline: spec diff --git a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineCommon..st b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineCommon..st index 27dff798..14755223 100644 --- a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineCommon..st +++ b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineCommon..st @@ -1,4 +1,4 @@ -baseline +baselines baselineCommon: spec spec for: #common diff --git a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineGemStone..st b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineGemStone..st index ed918c93..bb38c5d7 100644 --- a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineGemStone..st +++ b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineGemStone..st @@ -1,111 +1,126 @@ -baseline +baselines baselineGemStone: spec - spec - for: #'gemstone' - do: [ - spec - project: 'GsCore' - with: [ - spec - className: 'ConfigurationOfGsCore'; - versionString: #'stable'; - repository: 'http://seaside.gemtalksystems.com/ss/MetacelloRepository' ]; - project: 'UTF8' - with: [ - spec - className: 'ConfigurationOfGsMisc'; - versionString: #'stable'; - loads: #('Utf8Encoding'); - repository: 'http://seaside.gemtalksystems.com/ss/MetacelloRepository' ]; - project: 'System-Digital-Signatures' - copyFrom: 'UTF8' - with: [ spec loads: #('System-Digital-Signatures') ]; - project: 'SMTPMail' copyFrom: 'UTF8' with: [ spec loads: #('SMTPMail') ]. - spec - package: 'Grease-Core' - with: [ - spec - requires: #('GsCore'); - includes: #('Grease-GemStone-Core') ]; - package: 'Grease-Tests-Core' - with: [ - spec - requires: #('Grease-GemStone-Core'); - includes: #('Grease-Tests-GemStone-Core') ]; - package: 'Grease-GemStone-Core' - with: [ - spec - requires: - #('Grease-Core' 'GsCore' 'System-Digital-Signatures' 'UTF8' 'SMTPMail') ]; - package: 'Grease-Tests-GemStone-Core' - with: [ spec requires: #('Grease-Tests-Core') ] ]. - spec - for: #'gs2.x' - do: [ - spec - package: 'Grease-GemStone-Core' - with: [ spec includes: #('Grease-GemStone200-Core') ]; - package: 'Grease-GemStone200-Core' - with: [ spec requires: #('Grease-GemStone-Core') ] ]. - spec - for: #'gs2.3.x' - do: [ - spec - package: 'Grease-GemStone-Core' - with: [ spec includes: #('Grease-GemStone230-Core') ]; - package: 'Grease-GemStone230-Core' - with: [ spec requires: #('Grease-GemStone-Core') ] ]. - spec - for: #'gs2.4.x' - do: [ - spec - package: 'Grease-GemStone-Core' - with: [ spec includes: #('Grease-GemStone240-Core') ]; - package: 'Grease-GemStone240-Core' - with: [ spec requires: #('Grease-GemStone-Core') ] ]. - spec - for: #(#'gs3.0.x' #'gs3.1.x' #'gs3.2.x') - do: [ - spec - package: 'Grease-GemStone-Core' - with: [ spec includes: #('Grease-GemStone300-Core') ]; - package: 'Grease-GemStone300-Core' - with: [ - spec - requires: #('Grease-GemStone-Core'); - postLoadDoIt: #'initializeLatin1ToUtf8Encodings' ] ]. - spec - for: - #(#'gs3.3.x' #'gs3.4.x' #'gs3.5.x' #'gs3.6.x' #'gs3.7.x' #'gs3.8.x' #'gs3.9.x') - do: [ - spec - package: 'Grease-GemStone-Core' - with: [ spec includes: #('Grease-GemStone330-Core') ]; - package: 'Grease-GemStone330-Core' - with: [ - spec - requires: #('Grease-GemStone-Core'); - postLoadDoIt: #'initializeLatin1ToUtf8Encodings' ] ]. - spec - for: #(#'gs3.5.4.x' #'gs3.5.5.x') - do: [ - spec - package: 'Grease-GemStone-Core' - with: [ spec includes: #('Grease-GemStone-Kernelv354') ]; - package: 'Grease-GemStone-Kernelv354' - with: [ spec requires: #('Grease-GemStone-Core') ] ]. - spec - for: #(#'gs3.6.x' #'gs3.7.x' #'gs3.8.x' #'gs3.9.x') - do: [ - spec - package: 'Grease-GemStone-Core' - with: [ spec includes: #('Grease-GemStone-Kernelv360') ]; - package: 'Grease-GemStone-Kernelv360' - with: [ spec requires: #('Grease-GemStone-Core') ] ]. - spec - for: - #(#'gs3.2.x' #'gs3.3.x' #'gs3.4.x' #'gs3.5.x' #'gs3.6.x' #'gs3.7.x' #'gs3.8.x' #'gs3.9.x') - do: [ - spec - package: 'Grease-Tests-GemStone-Core' - with: [ spec file: 'Grease-Tests-GemStone-Core.v32' ] ] \ No newline at end of file + spec + for: #'gemstone' + do: [ + spec + project: 'GsCore' + with: [ + spec + className: 'ConfigurationOfGsCore'; + versionString: #'stable'; + repository: + 'http://seaside.gemtalksystems.com/ss/MetacelloRepository' ]; + project: 'UTF8' + with: [ + spec + className: 'ConfigurationOfGsMisc'; + versionString: #'stable'; + loads: #('Utf8Encoding'); + repository: + 'http://seaside.gemtalksystems.com/ss/MetacelloRepository' ]; + project: 'System-Digital-Signatures' + copyFrom: 'UTF8' + with: [ spec loads: #('System-Digital-Signatures') ]; + project: 'SMTPMail' + copyFrom: 'UTF8' + with: [ spec loads: #('SMTPMail') ]. + spec + package: 'Grease-Core' + with: [ + spec + requires: #('GsCore'); + includes: #('Grease-GemStone-Core') ]; + package: 'Grease-Tests-Core' + with: [ + spec + requires: #('Grease-GemStone-Core') ]; + package: 'Grease-GemStone-Core' + with: [ + spec + requires: + #('Grease-Core' 'GsCore' 'System-Digital-Signatures' 'UTF8' 'SMTPMail') ] ]. + + spec + for: #'gs2.x' + do: [ + spec + package: 'Grease-GemStone-Core' + with: [ spec includes: #('Grease-GemStone200-Core') ]; + package: 'Grease-GemStone200-Core' + with: [ spec requires: #('Grease-GemStone-Core') ] ]. + spec + for: #'gs2.3.x' + do: [ + spec + package: 'Grease-GemStone-Core' + with: [ spec includes: #('Grease-GemStone230-Core') ]; + package: 'Grease-GemStone230-Core' + with: [ spec requires: #('Grease-GemStone-Core') ] ]. + spec + for: #'gs2.4.x' + do: [ + spec + package: 'Grease-GemStone-Core' + with: [ spec includes: #('Grease-GemStone240-Core') ]; + package: 'Grease-GemStone240-Core' + with: [ spec requires: #('Grease-GemStone-Core') ] ]. + spec + for: #(#'gs3.0.x' #'gs3.1.x' #'gs3.2.x') + do: [ + spec + package: 'Grease-GemStone-Core' + with: [ spec includes: #('Grease-GemStone300-Core') ]; + package: 'Grease-GemStone300-Core' + with: [ + spec + requires: #('Grease-GemStone-Core'); + postLoadDoIt: #'initializeLatin1ToUtf8Encodings' ] ]. + spec + for: #(#'gs3.3.x' #'gs3.4.x' #'gs3.5.x' #'gs3.6.x' #'gs3.7.x' #'gs3.8.x' #'gs3.9.x') + do: [ + spec + package: 'Grease-GemStone-Core' + with: [ spec includes: #('Grease-GemStone330-Core') ]; + package: 'Grease-GemStone330-Core' + with: [ + spec + requires: #('Grease-GemStone-Core'); + postLoadDoIt: #'initializeLatin1ToUtf8Encodings' ] ]. + + spec for: #(#'gs2.x' #'gs3.0.x' #'gs3.1.x') + do:[ + spec + package: 'Grease-Tests-GemStone-Core' + with:[ spec requires: 'Grease-Tests-Core' ]; + package: 'Grease-Tests-Core' + with: [ spec includes: 'Grease-Tests-GemStone-Core' ] ]. + + spec + for: #( #'gs3.5.4.x' #'gs3.5.5.x' ) + do: [ + spec + package: 'Grease-GemStone-Core' + with: [ spec includes: #('Grease-GemStone-Kernelv354') ]; + package: 'Grease-GemStone-Kernelv354' + with: [ + spec + requires: #('Grease-GemStone-Core') ] ]. + spec + for: #( #'gs3.6.x' #'gs3.7.x' #'gs3.8.x' #'gs3.9.x') + do: [ + spec + package: 'Grease-GemStone-Core' + with: [ spec includes: #('Grease-GemStone-Kernelv360') ]; + package: 'Grease-GemStone-Kernelv360' + with: [ + spec + requires: #('Grease-GemStone-Core') ] ]. + spec + for: #(#'gs3.2.x' #'gs3.3.x' #'gs3.4.x' #'gs3.5.x' #'gs3.6.x' #'gs3.7.x' #'gs3.8.x' #'gs3.9.x') + do: [ + spec + package: 'Grease-Tests-GemStone32-Core' + with:[ spec requires: 'Grease-Tests-Core' ]; + package: 'Grease-Tests-Core' + with: [ spec includes: 'Grease-Tests-GemStone32-Core' ] ] \ No newline at end of file diff --git a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselinePharo..st b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselinePharo..st index d2b196ef..7884ef23 100644 --- a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselinePharo..st +++ b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselinePharo..st @@ -2,7 +2,7 @@ baselines baselinePharo: spec spec - for: #(#'pharo4.x' #'pharo5.x') + for: #(#'pharo5.x') do: [ spec package: 'Grease-Core' with: [ spec includes: #('Grease-Pharo30-Core') ]; package: 'Grease-Tests-Pharo-Core' with: [ spec requires: #('Grease-Tests-Core') ]; @@ -35,7 +35,7 @@ baselinePharo: spec package: 'Grease-Pharo70-Core' with: [ spec requires: #('Grease-Core') ] ]. spec - for: #(#'pharo4.x' #'pharo5.x' #'pharo6.x' #'pharo7.x' #'pharo8.x') + for: #(#'pharo6.x' #'pharo7.x' #'pharo8.x') do: [ spec package: 'Grease-Pharo40-Slime' with: [ spec requires: #('Grease-Core') ]; diff --git a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineSqueak..st b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineSqueak..st index 4c106e4b..e93226b5 100644 --- a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineSqueak..st +++ b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineSqueak..st @@ -1,4 +1,4 @@ -baseline +baselines baselineSqueak: spec spec for: #(#'squeak5.x') diff --git a/repository/BaselineOfGrease.package/BaselineOfGrease.class/properties.json b/repository/BaselineOfGrease.package/BaselineOfGrease.class/properties.json index 8a39c621..0260395f 100644 --- a/repository/BaselineOfGrease.package/BaselineOfGrease.class/properties.json +++ b/repository/BaselineOfGrease.package/BaselineOfGrease.class/properties.json @@ -1,14 +1,11 @@ { - "category" : "BaselineOfGrease", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", - "instvars" : [ - ], - "name" : "BaselineOfGrease", - "pools" : [ - ], "super" : "BaselineOf", - "type" : "normal" } + "category" : "BaselineOfGrease", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "BaselineOfGrease", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/BaselineOfGrease.package/monticello.meta/categories.st b/repository/BaselineOfGrease.package/monticello.meta/categories.st index 3687f0b2..aad806f8 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 f037444a..6f31cf5a 100644 --- a/repository/BaselineOfGrease.package/properties.json +++ b/repository/BaselineOfGrease.package/properties.json @@ -1,2 +1 @@ -{ - } +{ } \ No newline at end of file diff --git a/repository/Grease-Core.package/GRCodec.class/class/codecs.st b/repository/Grease-Core.package/GRCodec.class/class/codecs.st index 1c395166..6a776efc 100644 --- a/repository/Grease-Core.package/GRCodec.class/class/codecs.st +++ b/repository/Grease-Core.package/GRCodec.class/class/codecs.st @@ -1,5 +1,5 @@ accessing codecs - "Answer a collection of possible codecs of the receiver. To be overridden by concrete subclasses." + "Answer a collection of possible codecs of the receiver. To be overridden by concrete subclasses." - ^ #() \ No newline at end of file + ^ #() \ No newline at end of file diff --git a/repository/Grease-Core.package/GRCodec.class/instance/encode..st b/repository/Grease-Core.package/GRCodec.class/instance/encode..st index aa5baef3..1c4e697d 100644 --- a/repository/Grease-Core.package/GRCodec.class/instance/encode..st +++ b/repository/Grease-Core.package/GRCodec.class/instance/encode..st @@ -2,6 +2,6 @@ convenience encode: aString | writeStream | writeStream := self encoderFor: (GRPlatform current - writeCharacterStreamOn: (String new: aString size)). + writeCharacterStreamOn: (self encodedStringClass new: aString size)). writeStream nextPutAll: aString. ^ writeStream contents \ No newline at end of file diff --git a/repository/Grease-Core.package/GRCodec.class/instance/encodedStringClass.st b/repository/Grease-Core.package/GRCodec.class/instance/encodedStringClass.st new file mode 100644 index 00000000..97aca951 --- /dev/null +++ b/repository/Grease-Core.package/GRCodec.class/instance/encodedStringClass.st @@ -0,0 +1,3 @@ +conversion +encodedStringClass + ^ String \ No newline at end of file diff --git a/repository/Grease-Core.package/GRCountingStream.class/instance/nextPut..st b/repository/Grease-Core.package/GRCountingStream.class/instance/nextPut..st index ff277823..2a60f134 100644 --- a/repository/Grease-Core.package/GRCountingStream.class/instance/nextPut..st +++ b/repository/Grease-Core.package/GRCountingStream.class/instance/nextPut..st @@ -1,5 +1,4 @@ streaming nextPut: aCharacter stream nextPut: aCharacter. - count := count + 1 - \ No newline at end of file + count := count + 1 \ No newline at end of file diff --git a/repository/Grease-Core.package/GRCountingStream.class/instance/nextPutAll..st b/repository/Grease-Core.package/GRCountingStream.class/instance/nextPutAll..st index ba05ebf6..1ea34984 100644 --- a/repository/Grease-Core.package/GRCountingStream.class/instance/nextPutAll..st +++ b/repository/Grease-Core.package/GRCountingStream.class/instance/nextPutAll..st @@ -1,5 +1,4 @@ streaming nextPutAll: aString stream nextPutAll: aString. - count := count + aString size - \ No newline at end of file + count := count + aString size \ No newline at end of file diff --git a/repository/Grease-Core.package/GRNullCodecStream.class/properties.json b/repository/Grease-Core.package/GRNullCodecStream.class/properties.json index 7cb6efa1..c13ef53c 100644 --- a/repository/Grease-Core.package/GRNullCodecStream.class/properties.json +++ b/repository/Grease-Core.package/GRNullCodecStream.class/properties.json @@ -1,5 +1,5 @@ { - "commentStamp" : "pmm 6/25/2012 20:21", + "commentStamp" : "pmm 2/20/2009 21:59", "super" : "GRCodecStream", "category" : "Grease-Core-Text", "classinstvars" : [ ], diff --git a/repository/Grease-Core.package/GRPackage.class/instance/resolveWith..st b/repository/Grease-Core.package/GRPackage.class/instance/resolveWith..st index 624c1b61..9152b2e0 100644 --- a/repository/Grease-Core.package/GRPackage.class/instance/resolveWith..st +++ b/repository/Grease-Core.package/GRPackage.class/instance/resolveWith..st @@ -5,22 +5,20 @@ resolveWith: aDictionary aDictionary at: each ifAbsent: [ "if Foo-Pharo-Bar fails try Foo-Pharo20-Bar and Foo-Pharo30-Bar" (each indexOfSubCollection: '-Pharo-' startingAt: 1) ~= 0 ifTrue: [ - "try -Pharo20-" - aDictionary at: (each copyReplaceAll: '-Pharo-' with: '-Pharo20-') ifAbsent: [ - "try -Pharo30-" - aDictionary at: (each copyReplaceAll: '-Pharo-' with: '-Pharo30-') ifAbsent: [ - "try -Pharo40-" - aDictionary at: (each copyReplaceAll: '-Pharo-' with: '-Pharo40-') ifAbsent: [ - "try -Pharo50-" - aDictionary at: (each copyReplaceAll: '-Pharo-' with: '-Pharo50-') ifAbsent: [ - "try -Pharo60-" - aDictionary at: (each copyReplaceAll: '-Pharo-' with: '-Pharo60-') ifAbsent: [ - "try -Pharo70-" - aDictionary at: (each copyReplaceAll: '-Pharo-' with: '-Pharo70-') ifAbsent: [ - "try -Squeak-" - aDictionary at: (each copyReplaceAll: '-Pharo-' with: '-Squeak-') ifAbsent: [ - "try -Squeak5-" - aDictionary at: (each copyReplaceAll: '-Pharo-' with: '-Squeak5-') ifAbsent: [ - "try -Squeak6-" - aDictionary at: (each copyReplaceAll: '-Pharo-' with: '-Squeak6-') ifAbsent: [ - self error: self name printString , ' depends on unknown package ' , each printString ] ] ] ] ] ] ] ] ] ] ] ] \ No newline at end of file + "try -Pharo40-" + aDictionary at: (each copyReplaceAll: '-Pharo-' with: '-Pharo40-') ifAbsent: [ + "try -Pharo50-" + aDictionary at: (each copyReplaceAll: '-Pharo-' with: '-Pharo50-') ifAbsent: [ + "try -Pharo60-" + aDictionary at: (each copyReplaceAll: '-Pharo-' with: '-Pharo60-') ifAbsent: [ + "try -Pharo70-" + aDictionary at: (each copyReplaceAll: '-Pharo-' with: '-Pharo70-') ifAbsent: [ + "try -Pharo90-" + aDictionary at: (each copyReplaceAll: '-Pharo-' with: '-Pharo90-') ifAbsent: [ + "try -Squeak-" + aDictionary at: (each copyReplaceAll: '-Pharo-' with: '-Squeak-') ifAbsent: [ + "try -Squeak5-" + aDictionary at: (each copyReplaceAll: '-Pharo-' with: '-Squeak5-') ifAbsent: [ + "try -Squeak6-" + aDictionary at: (each copyReplaceAll: '-Pharo-' with: '-Squeak6-') ifAbsent: [ + self error: self name printString , ' depends on unknown package ' , each printString ] ] ] ] ] ] ] ] ] ] ] \ No newline at end of file diff --git a/repository/Grease-Core.package/GRPlatform.class/instance/fileExists..st b/repository/Grease-Core.package/GRPlatform.class/instance/fileExists..st index cb7b3e56..fe0b42f0 100644 --- a/repository/Grease-Core.package/GRPlatform.class/instance/fileExists..st +++ b/repository/Grease-Core.package/GRPlatform.class/instance/fileExists..st @@ -1,3 +1,3 @@ file library fileExists: aString - self subclassResponsibility \ No newline at end of file + self subclassResponsibility \ No newline at end of file diff --git a/repository/Grease-Core.package/GRPlatform.class/instance/fileStreamOn.do.binary..st b/repository/Grease-Core.package/GRPlatform.class/instance/fileStreamOn.do.binary..st index b35e040c..f0155c88 100644 --- a/repository/Grease-Core.package/GRPlatform.class/instance/fileStreamOn.do.binary..st +++ b/repository/Grease-Core.package/GRPlatform.class/instance/fileStreamOn.do.binary..st @@ -1,3 +1,6 @@ file library fileStreamOn: aString do: aBlock binary: aBoolean - self subclassResponsibility \ No newline at end of file + self + greaseDeprecatedApi: 'GRPlatform>>#fileStreamOn:do:binary:' + details: 'Use readFileStreamOn:do:binary:'. + ^ self readFileStreamOn: aString do: aBlock binary: aBoolean \ No newline at end of file diff --git a/repository/Grease-Core.package/GRPlatform.class/instance/readFileStreamOn.do.binary..st b/repository/Grease-Core.package/GRPlatform.class/instance/readFileStreamOn.do.binary..st new file mode 100644 index 00000000..3ffa885a --- /dev/null +++ b/repository/Grease-Core.package/GRPlatform.class/instance/readFileStreamOn.do.binary..st @@ -0,0 +1,3 @@ +file library +readFileStreamOn: aString do: aBlock binary: aBoolean + self subclassResponsibility \ No newline at end of file diff --git a/repository/Grease-Core.package/GRPlatform.class/instance/thisContext.st b/repository/Grease-Core.package/GRPlatform.class/instance/thisContext.st index d1ef063a..22b5c4dd 100644 --- a/repository/Grease-Core.package/GRPlatform.class/instance/thisContext.st +++ b/repository/Grease-Core.package/GRPlatform.class/instance/thisContext.st @@ -2,7 +2,7 @@ processes thisContext "Answer the current activation of a method execution or block activation. - For dialects with a thisContext variable and implementation can lock like this. + For dialects with a thisContext variable and implementation can look like this. ^ thisContext sender" self subclassResponsibility \ No newline at end of file diff --git a/repository/Grease-Core.package/GRPlatform.class/instance/version.st b/repository/Grease-Core.package/GRPlatform.class/instance/version.st index a11dc66e..01828a6b 100644 --- a/repository/Grease-Core.package/GRPlatform.class/instance/version.st +++ b/repository/Grease-Core.package/GRPlatform.class/instance/version.st @@ -2,5 +2,5 @@ version info version "Answer the Grease version" - ^ (GRVersion major: 1 minor: 4 revision: 0) + ^ (GRVersion major: 1 minor: 7 revision: 0) yourself \ No newline at end of file diff --git a/repository/Grease-Core.package/GRPlatform.class/instance/writeFileStreamOn.do.binary..st b/repository/Grease-Core.package/GRPlatform.class/instance/writeFileStreamOn.do.binary..st new file mode 100644 index 00000000..3d67b1a2 --- /dev/null +++ b/repository/Grease-Core.package/GRPlatform.class/instance/writeFileStreamOn.do.binary..st @@ -0,0 +1,3 @@ +file library +writeFileStreamOn: aString do: aBlock binary: aBoolean + self subclassResponsibility \ No newline at end of file diff --git a/repository/Grease-Core.package/GRSmallDictionary.class/instance/printOn..st b/repository/Grease-Core.package/GRSmallDictionary.class/instance/printOn..st index 4bd38c36..9138b7f5 100644 --- a/repository/Grease-Core.package/GRSmallDictionary.class/instance/printOn..st +++ b/repository/Grease-Core.package/GRSmallDictionary.class/instance/printOn..st @@ -20,4 +20,4 @@ printOn: aStream aStream nextPutAll: 'size '; print: self size ]. - aStream nextPut: $) \ No newline at end of file + aStream nextPut: $) \ No newline at end of file diff --git a/repository/Grease-Core.package/GRSmallDictionary2.class/instance/printOn..st b/repository/Grease-Core.package/GRSmallDictionary2.class/instance/printOn..st index 4bd38c36..9138b7f5 100644 --- a/repository/Grease-Core.package/GRSmallDictionary2.class/instance/printOn..st +++ b/repository/Grease-Core.package/GRSmallDictionary2.class/instance/printOn..st @@ -20,4 +20,4 @@ printOn: aStream aStream nextPutAll: 'size '; print: self size ]. - aStream nextPut: $) \ No newline at end of file + aStream nextPut: $) \ No newline at end of file diff --git a/repository/Grease-Core.package/GRVersion.class/instance/^less.st b/repository/Grease-Core.package/GRVersion.class/instance/^less.st index cb67510a..0f0d2853 100644 --- a/repository/Grease-Core.package/GRVersion.class/instance/^less.st +++ b/repository/Grease-Core.package/GRVersion.class/instance/^less.st @@ -10,6 +10,4 @@ comparing ^ ((stageNumber ifNil: [ 1 ]) < (otherVersion stageNumber ifNil: [ 1 ])) ]. stageLabel isNil ifTrue: [ ^ false ]. otherVersion stage isNil ifTrue: [ ^ true ]. - ^ stageLabel < otherVersion stage - - \ No newline at end of file + ^ stageLabel < otherVersion stage \ No newline at end of file diff --git a/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/fileStreamOn.do.binary..st b/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/fileStreamOn.do.binary..st deleted file mode 100644 index 31fd6fce..00000000 --- a/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/fileStreamOn.do.binary..st +++ /dev/null @@ -1,10 +0,0 @@ -file-library -fileStreamOn: aString do: aBlock binary: aBoolean - | stream dir file | - [ - file := GsFile openReadOnServer: aString. - [stream := RWBinaryOrTextStream on: file contents. - aBoolean - ifTrue: [ stream binary ] - ifFalse: [ stream ascii ]. - ^ aBlock value: stream ] ensure: [ stream close ]] ensure: [ file close ]. \ No newline at end of file diff --git a/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/readFileStreamOn.do.binary..st b/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/readFileStreamOn.do.binary..st new file mode 100644 index 00000000..cf66b203 --- /dev/null +++ b/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/readFileStreamOn.do.binary..st @@ -0,0 +1,13 @@ +file-library +readFileStreamOn: aString do: aBlock binary: aBoolean + | stream dir file | + [ + file := GsFile openReadOnServer: aString. + [ + stream := RWBinaryOrTextStream on: file contents. + aBoolean + ifTrue: [ stream binary ] + ifFalse: [ stream ascii ]. + ^ aBlock value: stream ] + ensure: [ stream close ] ] + ensure: [ file close ] \ No newline at end of file diff --git a/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/thisContext.st b/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/thisContext.st index 44dc34ca..50e2a5b0 100644 --- a/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/thisContext.st +++ b/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/thisContext.st @@ -1,3 +1,3 @@ *grease-gemstone-core thisContext - ^ (GsContext fromLevel: 1) sender sender \ No newline at end of file + ^ GsContext fromLevel: 3 \ No newline at end of file diff --git a/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/write.toFile.inFolder..st b/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/write.toFile.inFolder..st index a5de5279..e0a494a0 100644 --- a/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/write.toFile.inFolder..st +++ b/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/write.toFile.inFolder..st @@ -1,12 +1,13 @@ file-library write: aStringOrByteArray toFile: aFileNameString inFolder: aFolderString - "writes aStringOrByteArray to a file named aFilenameString in the folder aFolderString" - | folder stream fullFilePath | - fullFilePath := ServerFileDirectory default fullNameFor: aFolderString. - folder := ServerFileDirectory on: fullFilePath. - stream := folder forceNewFileNamed: aFileNameString. - stream := aStringOrByteArray isString - ifTrue: [ stream ascii ] - ifFalse: [ stream binary ]. - [ stream nextPutAll: aStringOrByteArray ] - ensure: [ stream close ] \ No newline at end of file + "writes aStringOrByteArray to a file named aFilenameString in the folder aFolderString" + + | folder fullFilePath | + fullFilePath := ServerFileDirectory default fullNameFor: aFolderString. + folder := ServerFileDirectory on: fullFilePath. + (folder fileExists: aFileNameString) + ifTrue: [ folder deleteFileNamed: aFileNameString ]. + ^ self + writeFileStreamOn: (folder / aFileNameString) fullName + do: [ :stream | stream nextPutAll: aStringOrByteArray ] + binary: aStringOrByteArray isString not \ No newline at end of file diff --git a/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/writeFileStreamOn.do.binary..st b/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/writeFileStreamOn.do.binary..st new file mode 100644 index 00000000..5011e5cc --- /dev/null +++ b/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/writeFileStreamOn.do.binary..st @@ -0,0 +1,9 @@ +file-library +writeFileStreamOn: fileName do: aBlock binary: isBinary + | stream | + stream := BinaryOrTextFile open: fileName mode: 'w+b' onClient: false. + stream := isBinary + ifTrue: [ stream binary ] + ifFalse: [ stream ascii ]. + [ aBlock value: stream ] + ensure: [ stream close ] \ No newline at end of file diff --git a/repository/Grease-GemStone-Core.package/GRLatin1GemStoneCodec.class/class/codecs.st b/repository/Grease-GemStone-Core.package/GRLatin1GemStoneCodec.class/class/codecs.st new file mode 100644 index 00000000..444b99e4 --- /dev/null +++ b/repository/Grease-GemStone-Core.package/GRLatin1GemStoneCodec.class/class/codecs.st @@ -0,0 +1,3 @@ +accessing +codecs + ^ Array with: self new \ No newline at end of file diff --git a/repository/Grease-GemStone-Core.package/GRUtf8GemStoneCodec.class/class/codecs.st b/repository/Grease-GemStone-Core.package/GRUtf8GemStoneCodec.class/class/codecs.st new file mode 100644 index 00000000..444b99e4 --- /dev/null +++ b/repository/Grease-GemStone-Core.package/GRUtf8GemStoneCodec.class/class/codecs.st @@ -0,0 +1,3 @@ +accessing +codecs + ^ Array with: self new \ No newline at end of file diff --git a/repository/Grease-GemStone-Core.package/GsContext.class/instance/namedTempAt..st b/repository/Grease-GemStone-Core.package/GsContext.class/instance/namedTempAt..st new file mode 100644 index 00000000..4ca86721 --- /dev/null +++ b/repository/Grease-GemStone-Core.package/GsContext.class/instance/namedTempAt..st @@ -0,0 +1,3 @@ +accessing +namedTempAt: index + ^ self tempAt: index \ No newline at end of file diff --git a/repository/Grease-GemStone-Core.package/Symbol.extension/properties.json b/repository/Grease-GemStone-Core.package/Symbol.extension/properties.json index 8c6bce81..565e67b0 100644 --- a/repository/Grease-GemStone-Core.package/Symbol.extension/properties.json +++ b/repository/Grease-GemStone-Core.package/Symbol.extension/properties.json @@ -1,3 +1,2 @@ { - "name" : "Symbol" -} \ No newline at end of file + "name" : "Symbol" } diff --git a/repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/contentsOfFile.binary..st b/repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/contentsOfFile.binary..st index 119ba39b..3c95a9de 100644 --- a/repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/contentsOfFile.binary..st +++ b/repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/contentsOfFile.binary..st @@ -1,3 +1,5 @@ file library contentsOfFile: aString binary: aBoolean - ^ self fileStreamOn: aString do: [ :stream | stream contents ] binary: aBoolean \ No newline at end of file + ^ aBoolean + ifTrue:[ self fileStreamOn: aString do: [ :stream | stream contents ifNil:[ ByteArray new ] ] binary: aBoolean ] + ifFalse:[ self fileStreamOn: aString do: [ :stream | stream contents ] binary: aBoolean ] \ No newline at end of file diff --git a/repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/fileStreamOn.do.binary..st b/repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/fileStreamOn.do.binary..st deleted file mode 100644 index 2fd81137..00000000 --- a/repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/fileStreamOn.do.binary..st +++ /dev/null @@ -1,13 +0,0 @@ -file library -fileStreamOn: aString do: aBlock binary: aBoolean - ^ aBoolean - ifTrue: [ - FileStream fileNamed: aString do: [ :stream | - stream binary. - aBlock value: stream ] ] - ifFalse: [ - MultiByteFileStream fileNamed: aString do: [ :stream | - stream - ascii; - wantsLineEndConversion: true. - aBlock value: stream ] ] \ No newline at end of file diff --git a/repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/readFileStreamOn.do.binary..st b/repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/readFileStreamOn.do.binary..st new file mode 100644 index 00000000..2b7331ab --- /dev/null +++ b/repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/readFileStreamOn.do.binary..st @@ -0,0 +1,7 @@ +file library +readFileStreamOn: aString do: aBlock binary: aBoolean + "Line end conversion is no longer done for ascii... TBD!" + + ^ aBoolean + ifTrue: [ aString asFileReference binaryReadStreamDo: aBlock ] + ifFalse: [ aString asFileReference readStreamEncoded: 'ascii' do: aBlock ] \ No newline at end of file diff --git a/repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/write.toFile.inFolder..st b/repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/write.toFile.inFolder..st index e77ae8c1..77cf8f76 100644 --- a/repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/write.toFile.inFolder..st +++ b/repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/write.toFile.inFolder..st @@ -1,15 +1,8 @@ file library write: aStringOrByteArray toFile: aFileNameString inFolder: aFolderString "writes aStringOrByteArray to a file named aFilenameString in the folder aFolderString" - | folder stream fullFilePath | - folder := FileSystem disk resolveString: aFolderString. - fullFilePath := (folder / aFileNameString) asFileReference. - stream := aStringOrByteArray isString - ifTrue: [ - (MultiByteFileStream forceNewFileNamed: fullFilePath fullName) - ascii; - wantsLineEndConversion: true; - yourself ] - ifFalse: [ (FileStream forceNewFileNamed: fullFilePath fullName) binary ]. - [ stream nextPutAll: aStringOrByteArray ] - ensure: [ stream close ] \ No newline at end of file + "TODO: wantsLineEndConversion: true; ??" + ^ self + writeFileStreamOn: (aFolderString asFileReference / aFileNameString) ensureDelete pathString + do: [ :stream | stream nextPutAll: aStringOrByteArray ] + binary: aStringOrByteArray isString not \ No newline at end of file diff --git a/repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/writeFileStreamOn.do.binary..st b/repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/writeFileStreamOn.do.binary..st new file mode 100644 index 00000000..762e9cca --- /dev/null +++ b/repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/writeFileStreamOn.do.binary..st @@ -0,0 +1,5 @@ +file library +writeFileStreamOn: aString do: aBlock binary: aBoolean + ^ aBoolean + ifTrue: [ aString asFileReference binaryWriteStreamDo: aBlock ] + ifFalse: [ aString asFileReference writeStreamEncoded: 'ascii' do: aBlock ] \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPackage.extension/class/greasePharo70Core.st b/repository/Grease-Pharo90-Core.package/GRPackage.extension/class/greasePharo70Core.st index e17f5237..d3a67df9 100644 --- a/repository/Grease-Pharo90-Core.package/GRPackage.extension/class/greasePharo70Core.st +++ b/repository/Grease-Pharo90-Core.package/GRPackage.extension/class/greasePharo70Core.st @@ -1,7 +1,7 @@ *Grease-Pharo90-Core greasePharo70Core ^ self new - name: 'Grease-Pharo70-Core'; + name: 'Grease-Pharo90-Core'; addDependency: 'Grease-Core'; url: #greaseUrl; yourself \ No newline at end of file diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRDoubleByteStringTest.class/README.md b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/README.md similarity index 100% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRDoubleByteStringTest.class/README.md rename to repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/README.md diff --git a/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/class/basicForEncoding..st b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/class/basicForEncoding..st new file mode 100644 index 00000000..d4c4a74b --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/class/basicForEncoding..st @@ -0,0 +1,3 @@ +private +basicForEncoding: aString + ^ self new \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/class/codecs.st b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/class/codecs.st new file mode 100644 index 00000000..6e52e620 --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/class/codecs.st @@ -0,0 +1,5 @@ +accessing +codecs + ^ GRPlatform current utf8CodecClass == self + ifTrue:[ Array with: self new ] + ifFalse: [ Array new ] \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/class/supportsEncoding..st b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/class/supportsEncoding..st new file mode 100644 index 00000000..cf74d916 --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/class/supportsEncoding..st @@ -0,0 +1,3 @@ +testing +supportsEncoding: aString + ^ GRPlatform current utf8CodecClass == self and: [(#('utf-8' 'UTF-8') includes: aString) or: [ UTF8TextConverter encodingNames includes: aString ] ] \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/decode..st b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/decode..st new file mode 100644 index 00000000..60eea74c --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/decode..st @@ -0,0 +1,36 @@ +convenience +decode: aString + "Convert the given string from UTF-8 using the fast path if converting to Latin-1" + | outStream byte1 byte2 byte3 byte4 unicode stream | + stream := aString readStream. + outStream := WriteStream on: (String new: aString size). + [ stream atEnd not ] whileTrue: [ + byte1 := stream next asInteger. + unicode := byte1. + (byte1 bitAnd: 16rE0) = 192 ifTrue: [ "two bytes" + byte2 := stream next asInteger. + (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 asInteger. + (byte2 bitAnd: 16rC0) = 16r80 ifFalse: [ self invalidUtf8 ]. + byte3 := stream next asInteger. + (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 asInteger. + (byte2 bitAnd: 16rC0) = 16r80 ifFalse: [ self invalidUtf8 ]. + byte3 := stream next asInteger. + (byte3 bitAnd: 16rC0) = 16r80 ifFalse: [ self invalidUtf8 ]. + byte4 := stream next asInteger. + (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) ]. + unicode := nil ]. + ^ outStream contents \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/decoderFor..st b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/decoderFor..st new file mode 100644 index 00000000..c5b13f52 --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/decoderFor..st @@ -0,0 +1,5 @@ +convenience +decoderFor: aStream + ^ GRPharoUtf8CodecStream + on: aStream + converter: UTF8TextConverter new \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/encodedStringClass.st b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/encodedStringClass.st new file mode 100644 index 00000000..97aca951 --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/encodedStringClass.st @@ -0,0 +1,3 @@ +conversion +encodedStringClass + ^ String \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/encoderFor..st b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/encoderFor..st new file mode 100644 index 00000000..21975caa --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/encoderFor..st @@ -0,0 +1,5 @@ +convenience +encoderFor: aStream + ^ GRPharoUtf8CodecStream + on: aStream + converter: UTF8TextConverter new \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/invalidUtf8.st b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/invalidUtf8.st new file mode 100644 index 00000000..bf9b0111 --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/invalidUtf8.st @@ -0,0 +1,3 @@ +convenience +invalidUtf8 + ^ GRInvalidUtf8Error signal: 'Invalid UTF-8 input' \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/name.st b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/name.st new file mode 100644 index 00000000..7886c830 --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/name.st @@ -0,0 +1,3 @@ +accessing +name + ^ 'utf-8' \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/url.st b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/url.st new file mode 100644 index 00000000..4696d714 --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/instance/url.st @@ -0,0 +1,3 @@ +accessing +url + ^ self \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/properties.json b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/properties.json new file mode 100644 index 00000000..e8fa7dfa --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRPharoDeprecatedUtf8Codec.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "GRCodec", + "category" : "Grease-Pharo90-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRPharoDeprecatedUtf8Codec", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/contentsOfFile.binary..st b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/contentsOfFile.binary..st index 119ba39b..ecfdc9d4 100644 --- a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/contentsOfFile.binary..st +++ b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/contentsOfFile.binary..st @@ -1,3 +1,3 @@ file library contentsOfFile: aString binary: aBoolean - ^ self fileStreamOn: aString do: [ :stream | stream contents ] binary: aBoolean \ No newline at end of file + ^ self readFileStreamOn: aString do: [ :stream | stream contents ] binary: aBoolean \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/fileStreamOn.do.binary..st b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/fileStreamOn.do.binary..st deleted file mode 100644 index 2fd81137..00000000 --- a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/fileStreamOn.do.binary..st +++ /dev/null @@ -1,13 +0,0 @@ -file library -fileStreamOn: aString do: aBlock binary: aBoolean - ^ aBoolean - ifTrue: [ - FileStream fileNamed: aString do: [ :stream | - stream binary. - aBlock value: stream ] ] - ifFalse: [ - MultiByteFileStream fileNamed: aString do: [ :stream | - stream - ascii; - wantsLineEndConversion: true. - aBlock value: stream ] ] \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/readFileStreamOn.do.binary..st b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/readFileStreamOn.do.binary..st new file mode 100644 index 00000000..f9dda145 --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/readFileStreamOn.do.binary..st @@ -0,0 +1,6 @@ +file library +readFileStreamOn: aString do: aBlock binary: aBoolean + + ^ aBoolean + ifTrue: [ aString asFileReference binaryReadStreamDo: aBlock ] + ifFalse: [ aString asFileReference readStreamEncoded: 'ascii' do: aBlock ] \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/setutf8CodectoDeprecatedTextConverter.st b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/setutf8CodectoDeprecatedTextConverter.st new file mode 100644 index 00000000..dc394f4f --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/setutf8CodectoDeprecatedTextConverter.st @@ -0,0 +1,4 @@ +utf8 codec +setutf8CodectoDeprecatedTextConverter + "Set to the GRPharoDeprecatedUtf8Codec that uses the deprecated TextConverter for utf8 encoding" + utf8DeprecatedCodecFlag := true \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/setutf8CodectoZinc.st b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/setutf8CodectoZinc.st new file mode 100644 index 00000000..2f43e9ab --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/setutf8CodectoZinc.st @@ -0,0 +1,4 @@ +utf8 codec +setutf8CodectoZinc + "Set to GRPharoUtf8Codec that uses Zinc for utf8 encoding" + utf8DeprecatedCodecFlag := false \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/utf8CodecClass.st b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/utf8CodecClass.st new file mode 100644 index 00000000..0732dee6 --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/utf8CodecClass.st @@ -0,0 +1,8 @@ +utf8 codec +utf8CodecClass + + ^ utf8DeprecatedCodecFlag + ifNil: [ GRPharoDeprecatedUtf8Codec ] + ifNotNil: [ utf8DeprecatedCodecFlag + ifTrue:[ GRPharoDeprecatedUtf8Codec ] + ifFalse: [ GRPharoUtf8Codec ] ] \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/write.toFile.inFolder..st b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/write.toFile.inFolder..st index e77ae8c1..bbde965a 100644 --- a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/write.toFile.inFolder..st +++ b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/write.toFile.inFolder..st @@ -1,15 +1,7 @@ file library write: aStringOrByteArray toFile: aFileNameString inFolder: aFolderString "writes aStringOrByteArray to a file named aFilenameString in the folder aFolderString" - | folder stream fullFilePath | - folder := FileSystem disk resolveString: aFolderString. - fullFilePath := (folder / aFileNameString) asFileReference. - stream := aStringOrByteArray isString - ifTrue: [ - (MultiByteFileStream forceNewFileNamed: fullFilePath fullName) - ascii; - wantsLineEndConversion: true; - yourself ] - ifFalse: [ (FileStream forceNewFileNamed: fullFilePath fullName) binary ]. - [ stream nextPutAll: aStringOrByteArray ] - ensure: [ stream close ] \ No newline at end of file + ^ self + writeFileStreamOn: (aFolderString asFileReference / aFileNameString) ensureDelete pathString + do: [ :stream | stream nextPutAll: aStringOrByteArray ] + binary: aStringOrByteArray isString not \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/writeFileStreamOn.do.binary..st b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/writeFileStreamOn.do.binary..st new file mode 100644 index 00000000..c06164c8 --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/writeFileStreamOn.do.binary..st @@ -0,0 +1,5 @@ +file library +writeFileStreamOn: aString do: aBlock binary: aBoolean + ^ aBoolean + ifTrue: [ aString asFileReference binaryWriteStreamDo: aBlock ] + ifFalse: [ aString asFileReference writeStreamEncoded: 'ascii' do: [ :str | aBlock value: (ZnNewLineWriterStream on: str) ] ] \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/properties.json b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/properties.json index 5cbbf647..195fed5b 100644 --- a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/properties.json +++ b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/properties.json @@ -8,7 +8,9 @@ "UrlTable", "XmlTable" ], - "instvars" : [ ], + "instvars" : [ + "utf8DeprecatedCodecFlag" + ], "name" : "GRPharoPlatform", "type" : "normal" } \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoRandomProvider.class/class/nextInt..st b/repository/Grease-Pharo90-Core.package/GRPharoRandomProvider.class/class/nextInt..st index 593aee36..1036c2f7 100644 --- a/repository/Grease-Pharo90-Core.package/GRPharoRandomProvider.class/class/nextInt..st +++ b/repository/Grease-Pharo90-Core.package/GRPharoRandomProvider.class/class/nextInt..st @@ -1,5 +1,6 @@ public nextInt: anInteger + "Answer a random integer in the interval [1, anInteger]" - ^ mutex critical: [ generator nextInt: anInteger ] \ No newline at end of file + ^ mutex critical: [ generator nextInteger: anInteger ] \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/class/codecs.st b/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/class/codecs.st index 632b84fb..6e52e620 100644 --- a/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/class/codecs.st +++ b/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/class/codecs.st @@ -1,3 +1,5 @@ accessing codecs - ^ Array with: self new \ No newline at end of file + ^ GRPlatform current utf8CodecClass == self + ifTrue:[ Array with: self new ] + ifFalse: [ Array new ] \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/class/supportsEncoding..st b/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/class/supportsEncoding..st index dc3a8ade..54e91f2e 100644 --- a/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/class/supportsEncoding..st +++ b/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/class/supportsEncoding..st @@ -1,3 +1,3 @@ -testing +private supportsEncoding: aString - ^ (#('utf-8' 'UTF-8') includes: aString) or: [ UTF8TextConverter encodingNames includes: aString ] \ No newline at end of file + ^ GRPlatform current utf8CodecClass == self and: [ (#('utf-8' 'UTF-8' 'utf8') includes: aString) ] \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/instance/decode..st b/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/instance/decode..st index b625727d..9d34dca9 100644 --- a/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/instance/decode..st +++ b/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/instance/decode..st @@ -1,36 +1,3 @@ -decoding -decode: aString - "Convert the given string from UTF-8 using the fast path if converting to Latin-1" - | outStream byte1 byte2 byte3 byte4 unicode stream | - stream := aString readStream. - outStream := WriteStream on: (String new: aString size). - [ stream atEnd not ] whileTrue: [ - byte1 := stream next asInteger. - unicode := byte1. - (byte1 bitAnd: 16rE0) = 192 ifTrue: [ "two bytes" - byte2 := stream next asInteger. - (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 asInteger. - (byte2 bitAnd: 16rC0) = 16r80 ifFalse: [ self invalidUtf8 ]. - byte3 := stream next asInteger. - (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 asInteger. - (byte2 bitAnd: 16rC0) = 16r80 ifFalse: [ self invalidUtf8 ]. - byte3 := stream next asInteger. - (byte3 bitAnd: 16rC0) = 16r80 ifFalse: [ self invalidUtf8 ]. - byte4 := stream next asInteger. - (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) ]. - unicode := nil ]. - ^ outStream contents \ No newline at end of file +convenience +decode: aByteArray + ^ aByteArray utf8Decoded \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/instance/decoderFor..st b/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/instance/decoderFor..st index 203b901f..e2ffb007 100644 --- a/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/instance/decoderFor..st +++ b/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/instance/decoderFor..st @@ -1,5 +1,5 @@ conversion decoderFor: aStream - ^ GRPharoUtf8CodecStream + ^ GRPharoConverterCodecStream on: aStream - converter: UTF8TextConverter new \ No newline at end of file + converter: ZnCharacterEncoder utf8 \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/instance/encodedStringClass.st b/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/instance/encodedStringClass.st new file mode 100644 index 00000000..6e5de896 --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/instance/encodedStringClass.st @@ -0,0 +1,3 @@ +conversion +encodedStringClass + ^ ByteArray \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/instance/encoderFor..st b/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/instance/encoderFor..st index d77ab435..c3e8d325 100644 --- a/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/instance/encoderFor..st +++ b/repository/Grease-Pharo90-Core.package/GRPharoUtf8Codec.class/instance/encoderFor..st @@ -1,5 +1,5 @@ conversion encoderFor: aStream - ^ GRPharoUtf8CodecStream + ^ GRPharoConverterCodecStream on: aStream - converter: UTF8TextConverter new \ No newline at end of file + converter: ZnCharacterEncoder utf8 \ No newline at end of file diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRGemStonePlatformTest.class/README.md b/repository/Grease-Pharo90-Core.package/GRZnUtf8CodecStream.class/README.md similarity index 100% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRGemStonePlatformTest.class/README.md rename to repository/Grease-Pharo90-Core.package/GRZnUtf8CodecStream.class/README.md diff --git a/repository/Grease-Pharo90-Core.package/GRZnUtf8CodecStream.class/instance/nextPutAll..st b/repository/Grease-Pharo90-Core.package/GRZnUtf8CodecStream.class/instance/nextPutAll..st new file mode 100644 index 00000000..848b6f13 --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRZnUtf8CodecStream.class/instance/nextPutAll..st @@ -0,0 +1,5 @@ +streaming +nextPutAll: aString + "Convert the given string from UTF-8 using the fast path if converting to Latin-1" + 1 to: aString size by: 1 do: [ :index | + converter nextPut: (aString at: index) toStream: stream ] \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRZnUtf8CodecStream.class/properties.json b/repository/Grease-Pharo90-Core.package/GRZnUtf8CodecStream.class/properties.json new file mode 100644 index 00000000..5dc73ef1 --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRZnUtf8CodecStream.class/properties.json @@ -0,0 +1,14 @@ +{ + "commentStamp" : "", + "super" : "GRPharoConverterCodecStream", + "category" : "Grease-Pharo90-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ + "Latin1ToUtf8Encodings", + "Latin1ToUtf8Map" + ], + "instvars" : [ ], + "name" : "GRZnUtf8CodecStream", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Pharo90-Slime.package/GRPackage.extension/class/greaseSlime.st b/repository/Grease-Pharo90-Slime.package/GRPackage.extension/class/greaseSlime.st index 24d29849..e120aacb 100644 --- a/repository/Grease-Pharo90-Slime.package/GRPackage.extension/class/greaseSlime.st +++ b/repository/Grease-Pharo90-Slime.package/GRPackage.extension/class/greaseSlime.st @@ -1,7 +1,7 @@ *Grease-Pharo90-Slime greaseSlime ^ self new - name: 'Grease-Pharo40-Slime'; + name: 'Grease-Pharo90-Slime'; description: 'Code critis for Grease. Detects common types of bugs and non-portable code.'; addDependency: 'Grease-Core'; url: #seasideUrl; diff --git a/repository/Grease-Squeak5-Core.package/GRPharoPlatform.class/class/initialize.st b/repository/Grease-Squeak5-Core.package/GRPharoPlatform.class/class/initialize.st index 0c86564c..69106234 100644 --- a/repository/Grease-Squeak5-Core.package/GRPharoPlatform.class/class/initialize.st +++ b/repository/Grease-Squeak5-Core.package/GRPharoPlatform.class/class/initialize.st @@ -1,5 +1,4 @@ class initialization initialize self initializeXmlTable. - self initializeUrlTable. - self select \ No newline at end of file + self initializeUrlTable \ No newline at end of file diff --git a/repository/Grease-Squeak5-Core.package/GRPharoPlatform.class/class/unload.st b/repository/Grease-Squeak5-Core.package/GRPharoPlatform.class/class/unload.st deleted file mode 100644 index 4c8dd650..00000000 --- a/repository/Grease-Squeak5-Core.package/GRPharoPlatform.class/class/unload.st +++ /dev/null @@ -1,3 +0,0 @@ -class initialization -unload - self unselect \ No newline at end of file diff --git a/repository/Grease-Squeak5-Core.package/GRPharoPlatform.class/instance/fileStreamOn.do.binary..st b/repository/Grease-Squeak5-Core.package/GRPharoPlatform.class/instance/fileStreamOn.do.binary..st deleted file mode 100644 index 1aad81ef..00000000 --- a/repository/Grease-Squeak5-Core.package/GRPharoPlatform.class/instance/fileStreamOn.do.binary..st +++ /dev/null @@ -1,13 +0,0 @@ -file library -fileStreamOn: aString do: aBlock binary: aBoolean - ^ aBoolean - ifTrue: [ - FileStream oldFileNamed: aString do: [ :stream | - stream binary. - aBlock value: stream ] ] - ifFalse: [ - MultiByteFileStream oldFileNamed: aString do: [ :stream | - stream - ascii; - wantsLineEndConversion: true. - aBlock value: stream ] ] \ No newline at end of file diff --git a/repository/Grease-Squeak5-Core.package/GRPharoPlatform.class/instance/write.toFile.inFolder..st b/repository/Grease-Squeak5-Core.package/GRPharoPlatform.class/instance/write.toFile.inFolder..st deleted file mode 100644 index 9565ae8b..00000000 --- a/repository/Grease-Squeak5-Core.package/GRPharoPlatform.class/instance/write.toFile.inFolder..st +++ /dev/null @@ -1,15 +0,0 @@ -file library -write: aStringOrByteArray toFile: aFileNameString inFolder: aFolderString - "writes aStringOrByteArray to a file named aFileNameString in the folder aFolderString" - | folder stream fullFilePath | - folder := FileDirectory default directoryNamed: aFolderString. - fullFilePath := folder fullNameFor: aFileNameString. - stream := aStringOrByteArray isString - ifTrue: [ - (MultiByteFileStream forceNewFileNamed: fullFilePath) - ascii; - wantsLineEndConversion: true; - yourself ] - ifFalse: [ (FileStream forceNewFileNamed: fullFilePath) binary ]. - [ stream nextPutAll: aStringOrByteArray ] - ensure: [ stream close ] \ No newline at end of file diff --git a/repository/Grease-Squeak5-Core.package/GRSqueakPlatform.class/instance/fileStreamOn.do.binary..st b/repository/Grease-Squeak5-Core.package/GRSqueakPlatform.class/instance/readFileStreamOn.do.binary..st similarity index 79% rename from repository/Grease-Squeak5-Core.package/GRSqueakPlatform.class/instance/fileStreamOn.do.binary..st rename to repository/Grease-Squeak5-Core.package/GRSqueakPlatform.class/instance/readFileStreamOn.do.binary..st index 2fd81137..9c82d3ff 100644 --- a/repository/Grease-Squeak5-Core.package/GRSqueakPlatform.class/instance/fileStreamOn.do.binary..st +++ b/repository/Grease-Squeak5-Core.package/GRSqueakPlatform.class/instance/readFileStreamOn.do.binary..st @@ -1,5 +1,5 @@ -file library -fileStreamOn: aString do: aBlock binary: aBoolean +as yet unclassified +readFileStreamOn: aString do: aBlock binary: aBoolean ^ aBoolean ifTrue: [ FileStream fileNamed: aString do: [ :stream | diff --git a/repository/Grease-Squeak5-Core.package/GRSqueakPlatform.class/instance/write.toFile.inFolder..st b/repository/Grease-Squeak5-Core.package/GRSqueakPlatform.class/instance/write.toFile.inFolder..st index 08d697b5..f06fa4d4 100644 --- a/repository/Grease-Squeak5-Core.package/GRSqueakPlatform.class/instance/write.toFile.inFolder..st +++ b/repository/Grease-Squeak5-Core.package/GRSqueakPlatform.class/instance/write.toFile.inFolder..st @@ -1,15 +1,11 @@ file library -write: aStringOrByteArray toFile: aFileNameString inFolder: aFolderString - "writes aStringOrByteArray to a file named aFilenameString in the folder aFolderString" - | folder stream fullFilePath | - folder := FileDirectory default directoryNamed: aFolderString. - fullFilePath := folder fullNameFor: aFileNameString. - stream := aStringOrByteArray isString - ifTrue: [ - (MultiByteFileStream forceNewFileNamed: fullFilePath) - ascii; - wantsLineEndConversion: true; - yourself ] - ifFalse: [ (FileStream forceNewFileNamed: fullFilePath) binary ]. - [ stream nextPutAll: aStringOrByteArray ] - ensure: [ stream close ] \ No newline at end of file +write: aStringOrByteArray toFile: aFileNameString inFolder: aFolderString + | folder fullFilePath | + fullFilePath := FileDirectory default fullNameFor: aFolderString. + folder := FileDirectory on: fullFilePath. + (folder fileExists: aFileNameString) + ifTrue: [folder deleteFileNamed: aFileNameString]. + ^ self + writeFileStreamOn: (folder / aFileNameString) fullName + do: [:stream | stream nextPutAll: aStringOrByteArray] + binary: aStringOrByteArray isString not \ No newline at end of file diff --git a/repository/Grease-Squeak5-Core.package/GRSqueakPlatform.class/instance/writeFileStreamOn.do.binary..st b/repository/Grease-Squeak5-Core.package/GRSqueakPlatform.class/instance/writeFileStreamOn.do.binary..st new file mode 100644 index 00000000..1207150a --- /dev/null +++ b/repository/Grease-Squeak5-Core.package/GRSqueakPlatform.class/instance/writeFileStreamOn.do.binary..st @@ -0,0 +1,8 @@ +as yet unclassified +writeFileStreamOn: aString do: aBlock binary: aBoolean + | stream | + stream := aBoolean + ifTrue: [ (MultiByteFileStream fileNamed: aString) ascii; wantsLineEndConversion: true; yourself ] + ifFalse: [ (FileStream fileNamed: aString) binary ]. + [ aBlock value: stream ] + ensure: [ stream close ] \ No newline at end of file diff --git a/repository/Grease-Tests-Core.package/GRCountingStreamTest.class/instance/setUp.st b/repository/Grease-Tests-Core.package/GRCountingStreamTest.class/instance/setUp.st index c5decc38..8607d1b3 100644 --- a/repository/Grease-Tests-Core.package/GRCountingStreamTest.class/instance/setUp.st +++ b/repository/Grease-Tests-Core.package/GRCountingStreamTest.class/instance/setUp.st @@ -1,5 +1,5 @@ running setUp | codecStream | - codecStream := ((GRCodec forEncoding: 'utf-8') encoderFor: (WriteStream on: String new)). + codecStream := ((GRCodec forEncoding: 'utf-8') encoderFor: (WriteStream on: (GRCodec forEncoding: 'utf-8') encodedStringClass new)). countingStream := GRCountingStream on: codecStream \ No newline at end of file diff --git a/repository/Grease-Tests-Core.package/GRCountingStreamTest.class/instance/testNextPut.st b/repository/Grease-Tests-Core.package/GRCountingStreamTest.class/instance/testNextPut.st index ba128e9d..30dab46b 100644 --- a/repository/Grease-Tests-Core.package/GRCountingStreamTest.class/instance/testNextPut.st +++ b/repository/Grease-Tests-Core.package/GRCountingStreamTest.class/instance/testNextPut.st @@ -3,4 +3,4 @@ testNextPut countingStream nextPut: (Character codePoint: 16rE4). self assert: countingStream size = 2. self assert: countingStream count = 1. - self assert: countingStream contents = (String with: (Character codePoint: 16rC3) with: (Character codePoint: 16rA4)) \ No newline at end of file + self assert: countingStream contents asString = (String with: (Character codePoint: 16rC3) with: (Character codePoint: 16rA4)) \ No newline at end of file diff --git a/repository/Grease-Tests-Core.package/GRCountingStreamTest.class/instance/testNextPutAll.st b/repository/Grease-Tests-Core.package/GRCountingStreamTest.class/instance/testNextPutAll.st index 0eecffee..6400bf2e 100644 --- a/repository/Grease-Tests-Core.package/GRCountingStreamTest.class/instance/testNextPutAll.st +++ b/repository/Grease-Tests-Core.package/GRCountingStreamTest.class/instance/testNextPutAll.st @@ -3,4 +3,4 @@ testNextPutAll countingStream nextPutAll: (String with: (Character codePoint: 16rE4)). self assert: countingStream size = 2. self assert: countingStream count = 1. - self assert: countingStream contents = (String with: (Character codePoint: 16rC3) with: (Character codePoint: 16rA4)) \ No newline at end of file + self assert: countingStream contents asString = (String with: (Character codePoint: 16rC3) with: (Character codePoint: 16rA4)) \ No newline at end of file diff --git a/repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/returnSender.st b/repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/returnSender.st new file mode 100644 index 00000000..1b25f567 --- /dev/null +++ b/repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/returnSender.st @@ -0,0 +1,3 @@ +private +returnSender + ^ GRPlatform current thisContext sender \ No newline at end of file diff --git a/repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/testReadWriteEmptyFileInFolderBinary.st b/repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/testReadWriteEmptyFileInFolderBinary.st new file mode 100644 index 00000000..39fbdb1c --- /dev/null +++ b/repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/testReadWriteEmptyFileInFolderBinary.st @@ -0,0 +1,8 @@ +tests-filestreams +testReadWriteEmptyFileInFolderBinary + | bytes | + bytes := ByteArray new. + self + writeToFile: bytes + withFileNameDo:[ :fileName | + self assert: (bytes = (GRPlatform current contentsOfFile: fileName binary: true)) ] \ No newline at end of file diff --git a/repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/testReadWriteEmptyFileInFolderText.st b/repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/testReadWriteEmptyFileInFolderText.st new file mode 100644 index 00000000..757a5cdb --- /dev/null +++ b/repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/testReadWriteEmptyFileInFolderText.st @@ -0,0 +1,8 @@ +tests-filestreams +testReadWriteEmptyFileInFolderText + | text | + text := String new. + self + writeToFile: text + withFileNameDo:[ :fileName | + self assert: (text = (GRPlatform current contentsOfFile: fileName binary: false)) ] \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Core.package/GRPharoPlatformTest.class/instance/testReadWriteToFileInFolderBinary.st b/repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/testReadWriteToFileInFolderBinary.st similarity index 95% rename from repository/Grease-Tests-Pharo-Core.package/GRPharoPlatformTest.class/instance/testReadWriteToFileInFolderBinary.st rename to repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/testReadWriteToFileInFolderBinary.st index c12a405b..ad114bf2 100644 --- a/repository/Grease-Tests-Pharo-Core.package/GRPharoPlatformTest.class/instance/testReadWriteToFileInFolderBinary.st +++ b/repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/testReadWriteToFileInFolderBinary.st @@ -1,4 +1,4 @@ -tests +tests-filestreams testReadWriteToFileInFolderBinary | bytes | bytes := #(80 104 39 110 103 108 117 105 32 109 103 108 119 39 110 97 102 104 32 67 116 104 117 108 104 117 32 82 39 108 121 101 104 32 119 103 97 104 39 110 97 103 108 32 102 104 116 97 103 110) asByteArray. diff --git a/repository/Grease-Tests-Pharo-Core.package/GRPharoPlatformTest.class/instance/testReadWriteToFileInFolderText.st b/repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/testReadWriteToFileInFolderText.st similarity index 93% rename from repository/Grease-Tests-Pharo-Core.package/GRPharoPlatformTest.class/instance/testReadWriteToFileInFolderText.st rename to repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/testReadWriteToFileInFolderText.st index ee0eadd5..2d9fc845 100644 --- a/repository/Grease-Tests-Pharo-Core.package/GRPharoPlatformTest.class/instance/testReadWriteToFileInFolderText.st +++ b/repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/testReadWriteToFileInFolderText.st @@ -1,4 +1,4 @@ -tests +tests-filestreams testReadWriteToFileInFolderText | text | text := 'Ph''nglui mglw''nafh Cthulhu R''lyeh wgah''nagl fhtagn'. diff --git a/repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/testThisContext.st b/repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/testThisContext.st index 3cd4ceb1..fd515dd9 100644 --- a/repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/testThisContext.st +++ b/repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/testThisContext.st @@ -1,9 +1,18 @@ -tests-processes +tests testThisContext - | methodContext | - methodContext := self platform thisContext. - [ - | blockContext | - blockContext := self platform thisContext. - self assert: blockContext sender = methodContext ] - value \ No newline at end of file + | methodContext block | + methodContext := self platform thisContext. + block := [ | blockContext | + blockContext := self platform thisContext. + self assert: blockContext sender = methodContext. + "The following is a difference between Gemstone and Pharo... " + (Smalltalk includesKey: #GRGemStonePlatform) + ifTrue: [ self assert: blockContext receiver = block ] + ifFalse: [ + self assert: blockContext receiver = self. + self assert: (blockContext namedTempAt: (blockContext tempNames indexOf: #blockContext)) == blockContext ]. + self assert: (blockContext namedTempAt: (blockContext tempNames indexOf: #methodContext)) == methodContext ]. + block value. + self assert: self returnSender = methodContext. + self assert: methodContext receiver = self. + self assert: (self platform thisContext namedTempAt: (self platform thisContext tempNames indexOf: #block)) == block \ No newline at end of file diff --git a/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/asByteArray..st b/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/asByteArray..st new file mode 100644 index 00000000..4ba05d6f --- /dev/null +++ b/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/asByteArray..st @@ -0,0 +1,5 @@ +private +asByteArray: aCollectionOfIntegers + ^ ByteArray streamContents: [ :stream | + aCollectionOfIntegers do: [ :each | + stream nextPut: each ] ] \ No newline at end of file diff --git a/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/expectedFailures.st b/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/expectedFailures.st new file mode 100644 index 00000000..82510165 --- /dev/null +++ b/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/expectedFailures.st @@ -0,0 +1,5 @@ +testing +expectedFailures + ^ SystemVersion current major < 9 + ifTrue: [ #(testCodecUtf8ShortestForm) ] + ifFalse:[ #() ] \ No newline at end of file diff --git a/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/testCodecUtf8.st b/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/testCodecUtf8.st index 7a1dbc26..22c03f1c 100644 --- a/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/testCodecUtf8.st +++ b/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/testCodecUtf8.st @@ -5,7 +5,7 @@ testCodecUtf8 codec := GRCodec forEncoding: codecName. self assert: codec name asLowercase = codecName asLowercase. self assert: codec url name asLowercase = codecName asLowercase. - self assert: (codec encode: self decodedString) greaseString = self utf8String greaseString. - self assert: (codec url encode: self decodedString) greaseString = self utf8String greaseString. - self assert: (codec decode: self utf8String) = self decodedString. - self assert: (codec url decode: self utf8String) = self decodedString ] \ No newline at end of file + self assert: (codec encode: self decodedString) = (self utf8StringOrByteArrayForCodec: codec). + self assert: (codec url encode: self decodedString) = (self utf8StringOrByteArrayForCodec: codec). + self assert: (codec decode: (self utf8StringOrByteArrayForCodec: codec)) = self decodedString. + self assert: (codec url decode: (self utf8StringOrByteArrayForCodec: codec)) = self decodedString ] \ No newline at end of file diff --git a/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/testCodecUtf8Bom.st b/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/testCodecUtf8Bom.st index 16cd6418..cf83f5dc 100644 --- a/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/testCodecUtf8Bom.st +++ b/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/testCodecUtf8Bom.st @@ -3,6 +3,8 @@ testCodecUtf8Bom #('UTF-8' 'utf-8') do: [ :codecName | | codec bom | codec := GRCodec forEncoding: codecName. - bom := self asString: #(239 187 191). - self assert: (codec decode: bom , self utf8String) greaseString = self decodedString greaseString. - self assert: (codec url decode: bom , self utf8String) greaseString = self decodedString greaseString ] \ No newline at end of file + (codec encodedStringClass == ByteArray) + ifTrue:[ bom := self asByteArray: #(239 187 191) ] + ifFalse:[bom := self asString: #(239 187 191) ]. + self assert: (codec decode: bom , (self utf8StringOrByteArrayForCodec: codec)) = self decodedString. + self assert: (codec url decode: bom , (self utf8StringOrByteArrayForCodec: codec)) = self decodedString ] \ No newline at end of file diff --git a/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/testCodecUtf8BorderLineString.st b/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/testCodecUtf8BorderLineString.st index 5b58893a..678e755e 100644 --- a/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/testCodecUtf8BorderLineString.st +++ b/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/testCodecUtf8BorderLineString.st @@ -3,11 +3,11 @@ testCodecUtf8BorderLineString #('UTF-8' 'utf-8') do: [ :codecName | | codec writeStream | codec := GRCodec forEncoding: codecName. - writeStream := codec encoderFor: GRPlatform current readWriteCharacterStream. + writeStream := codec encoderFor: (GRPlatform current writeCharacterStreamOn: codec encodedStringClass new). writeStream nextPut: (Character codePoint: 0). writeStream nextPut: (Character codePoint: 255). writeStream nextPut: (Character codePoint: 256). - self assert: writeStream contents = (String + self assert: writeStream contents asString = (String with: (Character codePoint: 16r00) "character 0" with: (Character codePoint: 16rC3) with: (Character codePoint: 16rBF) "character 255" with: (Character codePoint: 16rC4) with: (Character codePoint: 16r80)) "character 256" ] \ No newline at end of file diff --git a/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/testCodecUtf8ShortestForm.st b/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/testCodecUtf8ShortestForm.st index 1a6f1679..d18279a1 100644 --- a/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/testCodecUtf8ShortestForm.st +++ b/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/testCodecUtf8ShortestForm.st @@ -5,7 +5,9 @@ testCodecUtf8ShortestForm #('UTF-8' 'utf-8') do: [ :codecName | | codec abc | codec := GRCodec forEncoding: codecName. - abc := self asString: #(193 129 193 130 193 131 ). + codec encodedStringClass == ByteArray + ifTrue:[ abc := self asByteArray: #(193 129 193 130 193 131 ) ] + ifFalse:[ abc := self asString: #(193 129 193 130 193 131 ) ]. self should: [ self deny: (codec decode: abc) = 'ABC' ] raise: Error ] \ No newline at end of file diff --git a/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/utf8StringOrByteArrayForCodec..st b/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/utf8StringOrByteArrayForCodec..st new file mode 100644 index 00000000..3020173f --- /dev/null +++ b/repository/Grease-Tests-Core.package/GRUtf8CodecTest.class/instance/utf8StringOrByteArrayForCodec..st @@ -0,0 +1,7 @@ +accessing +utf8StringOrByteArrayForCodec: codec + | bytes | + bytes := #(195 156 98 195 168 114 115 116 114 195 174 195 177 103 195 169). + ^ codec encodedStringClass == ByteArray + ifTrue:[ self asByteArray: bytes ] + ifFalse:[ self asString: bytes ] \ No newline at end of file diff --git a/repository/Grease-Tests-GemStone-Core.package/GRPlatformTest.extension/instance/writeToFile.withFileNameDo.st b/repository/Grease-Tests-GemStone-Core.package/GRPlatformTest.extension/instance/writeToFile.withFileNameDo.st new file mode 100644 index 00000000..c73ff2de --- /dev/null +++ b/repository/Grease-Tests-GemStone-Core.package/GRPlatformTest.extension/instance/writeToFile.withFileNameDo.st @@ -0,0 +1,12 @@ +*grease-tests-gemstone-core +writeToFile: aStringOrByteArray withFileNameDo: aBlock + | fileName directory | + fileName := 'GRGemStonePlatformTest'. + directory := ServerFileDirectory default. + [ + GRPlatform current + write: aStringOrByteArray + toFile: fileName + inFolder: directory fullName. + aBlock value: directory fullName , GRPlatform current pathSeparator , fileName ] + ensure: [ directory deleteFileNamed: fileName ] \ No newline at end of file diff --git a/repository/Grease-Tests-GemStone-Core.package/GRPlatformTest.extension/properties.json b/repository/Grease-Tests-GemStone-Core.package/GRPlatformTest.extension/properties.json new file mode 100644 index 00000000..ab3f269a --- /dev/null +++ b/repository/Grease-Tests-GemStone-Core.package/GRPlatformTest.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "GRPlatformTest" } diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/monticello.meta/categories.st b/repository/Grease-Tests-GemStone-Core.v32.package/monticello.meta/categories.st deleted file mode 100644 index 8cff96cd..00000000 --- a/repository/Grease-Tests-GemStone-Core.v32.package/monticello.meta/categories.st +++ /dev/null @@ -1 +0,0 @@ -SystemOrganization addCategory: #'Grease-Tests-GemStone-Core'! diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/monticello.meta/package b/repository/Grease-Tests-GemStone-Core.v32.package/monticello.meta/package deleted file mode 100644 index 59950b6e..00000000 --- a/repository/Grease-Tests-GemStone-Core.v32.package/monticello.meta/package +++ /dev/null @@ -1 +0,0 @@ -(name 'Grease-Tests-GemStone-Core') \ No newline at end of file diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/.filetree b/repository/Grease-Tests-GemStone32-Core.package/.filetree similarity index 100% rename from repository/Grease-Tests-GemStone-Core.v32.package/.filetree rename to repository/Grease-Tests-GemStone32-Core.package/.filetree diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRQuadByteStringTest.class/README.md b/repository/Grease-Tests-GemStone32-Core.package/GRDoubleByteStringTest.class/README.md similarity index 100% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRQuadByteStringTest.class/README.md rename to repository/Grease-Tests-GemStone32-Core.package/GRDoubleByteStringTest.class/README.md diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRDoubleByteStringTest.class/instance/arbitraryCollection.st b/repository/Grease-Tests-GemStone32-Core.package/GRDoubleByteStringTest.class/instance/arbitraryCollection.st similarity index 100% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRDoubleByteStringTest.class/instance/arbitraryCollection.st rename to repository/Grease-Tests-GemStone32-Core.package/GRDoubleByteStringTest.class/instance/arbitraryCollection.st diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRDoubleByteStringTest.class/instance/collectionClass.st b/repository/Grease-Tests-GemStone32-Core.package/GRDoubleByteStringTest.class/instance/collectionClass.st similarity index 100% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRDoubleByteStringTest.class/instance/collectionClass.st rename to repository/Grease-Tests-GemStone32-Core.package/GRDoubleByteStringTest.class/instance/collectionClass.st diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRDoubleByteStringTest.class/properties.json b/repository/Grease-Tests-GemStone32-Core.package/GRDoubleByteStringTest.class/properties.json similarity index 81% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRDoubleByteStringTest.class/properties.json rename to repository/Grease-Tests-GemStone32-Core.package/GRDoubleByteStringTest.class/properties.json index f72b879e..aac15724 100644 --- a/repository/Grease-Tests-GemStone-Core.v32.package/GRDoubleByteStringTest.class/properties.json +++ b/repository/Grease-Tests-GemStone32-Core.package/GRDoubleByteStringTest.class/properties.json @@ -1,5 +1,5 @@ { - "category" : "Grease-Tests-GemStone-Core", + "category" : "Grease-Tests-GemStone32-Core", "classinstvars" : [ ], "classvars" : [ diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/monticello.meta/initializers.st b/repository/Grease-Tests-GemStone32-Core.package/GRGemStonePlatformTest.class/README.md similarity index 100% rename from repository/Grease-Tests-GemStone-Core.v32.package/monticello.meta/initializers.st rename to repository/Grease-Tests-GemStone32-Core.package/GRGemStonePlatformTest.class/README.md diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRGemStonePlatformTest.class/instance/testCompileIntoClassified.st b/repository/Grease-Tests-GemStone32-Core.package/GRGemStonePlatformTest.class/instance/testCompileIntoClassified.st similarity index 100% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRGemStonePlatformTest.class/instance/testCompileIntoClassified.st rename to repository/Grease-Tests-GemStone32-Core.package/GRGemStonePlatformTest.class/instance/testCompileIntoClassified.st diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRGemStonePlatformTest.class/instance/testConvertToSmalltalkNewlines.st b/repository/Grease-Tests-GemStone32-Core.package/GRGemStonePlatformTest.class/instance/testConvertToSmalltalkNewlines.st similarity index 100% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRGemStonePlatformTest.class/instance/testConvertToSmalltalkNewlines.st rename to repository/Grease-Tests-GemStone32-Core.package/GRGemStonePlatformTest.class/instance/testConvertToSmalltalkNewlines.st diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRGemStonePlatformTest.class/instance/testEncoderForUtf8Roundtrip.st b/repository/Grease-Tests-GemStone32-Core.package/GRGemStonePlatformTest.class/instance/testEncoderForUtf8Roundtrip.st similarity index 100% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRGemStonePlatformTest.class/instance/testEncoderForUtf8Roundtrip.st rename to repository/Grease-Tests-GemStone32-Core.package/GRGemStonePlatformTest.class/instance/testEncoderForUtf8Roundtrip.st diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRGemStonePlatformTest.class/instance/testFullName.st b/repository/Grease-Tests-GemStone32-Core.package/GRGemStonePlatformTest.class/instance/testFullName.st similarity index 100% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRGemStonePlatformTest.class/instance/testFullName.st rename to repository/Grease-Tests-GemStone32-Core.package/GRGemStonePlatformTest.class/instance/testFullName.st diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRGemStonePlatformTest.class/properties.json b/repository/Grease-Tests-GemStone32-Core.package/GRGemStonePlatformTest.class/properties.json similarity index 80% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRGemStonePlatformTest.class/properties.json rename to repository/Grease-Tests-GemStone32-Core.package/GRGemStonePlatformTest.class/properties.json index bcd1f55d..29396189 100644 --- a/repository/Grease-Tests-GemStone-Core.v32.package/GRGemStonePlatformTest.class/properties.json +++ b/repository/Grease-Tests-GemStone32-Core.package/GRGemStonePlatformTest.class/properties.json @@ -1,5 +1,5 @@ { - "category" : "Grease-Tests-GemStone-Core", + "category" : "Grease-Tests-GemStone32-Core", "classinstvars" : [ ], "classvars" : [ diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRNumberTest.extension/instance/addBlockToCollection.with..st b/repository/Grease-Tests-GemStone32-Core.package/GRNumberTest.extension/instance/addBlockToCollection.with..st similarity index 68% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRNumberTest.extension/instance/addBlockToCollection.with..st rename to repository/Grease-Tests-GemStone32-Core.package/GRNumberTest.extension/instance/addBlockToCollection.with..st index c715445c..d2b2b2b2 100644 --- a/repository/Grease-Tests-GemStone-Core.v32.package/GRNumberTest.extension/instance/addBlockToCollection.with..st +++ b/repository/Grease-Tests-GemStone32-Core.package/GRNumberTest.extension/instance/addBlockToCollection.with..st @@ -1,4 +1,4 @@ -*grease-tests-gemstone-core +*grease-tests-gemstone32-core addBlockToCollection: collection with: ea collection add: [ea] \ No newline at end of file diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRNumberTest.extension/instance/expectedFailures.st b/repository/Grease-Tests-GemStone32-Core.package/GRNumberTest.extension/instance/expectedFailures.st similarity index 85% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRNumberTest.extension/instance/expectedFailures.st rename to repository/Grease-Tests-GemStone32-Core.package/GRNumberTest.extension/instance/expectedFailures.st index f49184f7..95dae186 100644 --- a/repository/Grease-Tests-GemStone-Core.v32.package/GRNumberTest.extension/instance/expectedFailures.st +++ b/repository/Grease-Tests-GemStone32-Core.package/GRNumberTest.extension/instance/expectedFailures.st @@ -1,4 +1,4 @@ -*grease-tests-gemstone-core +*grease-tests-gemstone32-core expectedFailures "GemStone does not conform to the ANSI standard in this case" diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRNumberTest.extension/instance/testToDoClosuresGemStone.st b/repository/Grease-Tests-GemStone32-Core.package/GRNumberTest.extension/instance/testToDoClosuresGemStone.st similarity index 89% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRNumberTest.extension/instance/testToDoClosuresGemStone.st rename to repository/Grease-Tests-GemStone32-Core.package/GRNumberTest.extension/instance/testToDoClosuresGemStone.st index 4ba45664..21ae2a01 100644 --- a/repository/Grease-Tests-GemStone-Core.v32.package/GRNumberTest.extension/instance/testToDoClosuresGemStone.st +++ b/repository/Grease-Tests-GemStone32-Core.package/GRNumberTest.extension/instance/testToDoClosuresGemStone.st @@ -1,4 +1,4 @@ -*grease-tests-gemstone-core +*grease-tests-gemstone32-core testToDoClosuresGemStone "workaround for non-ANSI compliance" diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRNumberTest.extension/properties.json b/repository/Grease-Tests-GemStone32-Core.package/GRNumberTest.extension/properties.json similarity index 100% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRNumberTest.extension/properties.json rename to repository/Grease-Tests-GemStone32-Core.package/GRNumberTest.extension/properties.json diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRPackage.extension/class/greaseTestsGemStoneCore.st b/repository/Grease-Tests-GemStone32-Core.package/GRPackage.extension/class/greaseTestsGemStoneCore.st similarity index 67% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRPackage.extension/class/greaseTestsGemStoneCore.st rename to repository/Grease-Tests-GemStone32-Core.package/GRPackage.extension/class/greaseTestsGemStoneCore.st index 8e8599f8..616e2a89 100644 --- a/repository/Grease-Tests-GemStone-Core.v32.package/GRPackage.extension/class/greaseTestsGemStoneCore.st +++ b/repository/Grease-Tests-GemStone32-Core.package/GRPackage.extension/class/greaseTestsGemStoneCore.st @@ -1,8 +1,8 @@ -*grease-tests-gemstone-core +*grease-tests-gemstone32-core greaseTestsGemStoneCore ^ self new - name: 'Grease-Tests-GemStone-Core'; + name: 'Grease-Tests-GemStone32-Core'; addDependency: 'Grease-GemStone-Core'; addDependency: 'Grease-Tests-Core'; url: #gemstoneUrl; diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRPackage.extension/properties.json b/repository/Grease-Tests-GemStone32-Core.package/GRPackage.extension/properties.json similarity index 100% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRPackage.extension/properties.json rename to repository/Grease-Tests-GemStone32-Core.package/GRPackage.extension/properties.json diff --git a/repository/Grease-Tests-GemStone32-Core.package/GRPlatformTest.extension/instance/writeToFile.withFileNameDo.st b/repository/Grease-Tests-GemStone32-Core.package/GRPlatformTest.extension/instance/writeToFile.withFileNameDo.st new file mode 100644 index 00000000..6976c3c7 --- /dev/null +++ b/repository/Grease-Tests-GemStone32-Core.package/GRPlatformTest.extension/instance/writeToFile.withFileNameDo.st @@ -0,0 +1,12 @@ +*grease-tests-gemstone32-core +writeToFile: aStringOrByteArray withFileNameDo: aBlock + | fileName directory | + fileName := 'GRGemStonePlatformTest'. + directory := ServerFileDirectory default. + [ + GRPlatform current + write: aStringOrByteArray + toFile: fileName + inFolder: directory fullName. + aBlock value: directory fullName , GRPlatform current pathSeparator , fileName ] + ensure: [ directory deleteFileNamed: fileName ] \ No newline at end of file diff --git a/repository/Grease-Tests-GemStone32-Core.package/GRPlatformTest.extension/properties.json b/repository/Grease-Tests-GemStone32-Core.package/GRPlatformTest.extension/properties.json new file mode 100644 index 00000000..ab3f269a --- /dev/null +++ b/repository/Grease-Tests-GemStone32-Core.package/GRPlatformTest.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "GRPlatformTest" } diff --git a/repository/Grease-Tests-GemStone32-Core.package/GRQuadByteStringTest.class/README.md b/repository/Grease-Tests-GemStone32-Core.package/GRQuadByteStringTest.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRQuadByteStringTest.class/instance/arbitraryCollection.st b/repository/Grease-Tests-GemStone32-Core.package/GRQuadByteStringTest.class/instance/arbitraryCollection.st similarity index 100% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRQuadByteStringTest.class/instance/arbitraryCollection.st rename to repository/Grease-Tests-GemStone32-Core.package/GRQuadByteStringTest.class/instance/arbitraryCollection.st diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRQuadByteStringTest.class/instance/collectionClass.st b/repository/Grease-Tests-GemStone32-Core.package/GRQuadByteStringTest.class/instance/collectionClass.st similarity index 100% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRQuadByteStringTest.class/instance/collectionClass.st rename to repository/Grease-Tests-GemStone32-Core.package/GRQuadByteStringTest.class/instance/collectionClass.st diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRQuadByteStringTest.class/properties.json b/repository/Grease-Tests-GemStone32-Core.package/GRQuadByteStringTest.class/properties.json similarity index 81% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRQuadByteStringTest.class/properties.json rename to repository/Grease-Tests-GemStone32-Core.package/GRQuadByteStringTest.class/properties.json index f04548ac..5643404e 100644 --- a/repository/Grease-Tests-GemStone-Core.v32.package/GRQuadByteStringTest.class/properties.json +++ b/repository/Grease-Tests-GemStone32-Core.package/GRQuadByteStringTest.class/properties.json @@ -1,5 +1,5 @@ { - "category" : "Grease-Tests-GemStone-Core", + "category" : "Grease-Tests-GemStone32-Core", "classinstvars" : [ ], "classvars" : [ diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRStringTest.extension/instance/multiByteConvert..st b/repository/Grease-Tests-GemStone32-Core.package/GRStringTest.extension/instance/multiByteConvert..st similarity index 68% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRStringTest.extension/instance/multiByteConvert..st rename to repository/Grease-Tests-GemStone32-Core.package/GRStringTest.extension/instance/multiByteConvert..st index 7e52fede..f68bfeb2 100644 --- a/repository/Grease-Tests-GemStone-Core.v32.package/GRStringTest.extension/instance/multiByteConvert..st +++ b/repository/Grease-Tests-GemStone32-Core.package/GRStringTest.extension/instance/multiByteConvert..st @@ -1,4 +1,4 @@ -*grease-tests-gemstone-core +*grease-tests-gemstone32-core multiByteConvert: aString ^self collectionClass withAll: aString \ No newline at end of file diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRStringTest.extension/instance/testMultiByteCapitalized.st b/repository/Grease-Tests-GemStone32-Core.package/GRStringTest.extension/instance/testMultiByteCapitalized.st similarity index 90% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRStringTest.extension/instance/testMultiByteCapitalized.st rename to repository/Grease-Tests-GemStone32-Core.package/GRStringTest.extension/instance/testMultiByteCapitalized.st index 2b574007..e2b5c14d 100644 --- a/repository/Grease-Tests-GemStone-Core.v32.package/GRStringTest.extension/instance/testMultiByteCapitalized.st +++ b/repository/Grease-Tests-GemStone32-Core.package/GRStringTest.extension/instance/testMultiByteCapitalized.st @@ -1,4 +1,4 @@ -*grease-tests-gemstone-core +*grease-tests-gemstone32-core testMultiByteCapitalized self assert: (self multiByteConvert: 'capitalized') capitalized = 'Capitalized'. self assert: (self multiByteConvert: 'Capitalized') capitalized = 'Capitalized' . diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRStringTest.extension/instance/testMultiByteExcerpt.st b/repository/Grease-Tests-GemStone32-Core.package/GRStringTest.extension/instance/testMultiByteExcerpt.st similarity index 96% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRStringTest.extension/instance/testMultiByteExcerpt.st rename to repository/Grease-Tests-GemStone32-Core.package/GRStringTest.extension/instance/testMultiByteExcerpt.st index f8354583..be28723e 100644 --- a/repository/Grease-Tests-GemStone-Core.v32.package/GRStringTest.extension/instance/testMultiByteExcerpt.st +++ b/repository/Grease-Tests-GemStone32-Core.package/GRStringTest.extension/instance/testMultiByteExcerpt.st @@ -1,4 +1,4 @@ -*grease-tests-gemstone-core +*grease-tests-gemstone32-core testMultiByteExcerpt self assert: ((self multiByteConvert: 'abcde') excerpt: 'c' radius: 0) = '...c...'. self assert: ((self multiByteConvert: 'abcde') excerpt: 'c' radius: 1) = '...bcd...'. diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRStringTest.extension/instance/testMultiByteSubStrings.st b/repository/Grease-Tests-GemStone32-Core.package/GRStringTest.extension/instance/testMultiByteSubStrings.st similarity index 97% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRStringTest.extension/instance/testMultiByteSubStrings.st rename to repository/Grease-Tests-GemStone32-Core.package/GRStringTest.extension/instance/testMultiByteSubStrings.st index 6baae92e..20972006 100644 --- a/repository/Grease-Tests-GemStone-Core.v32.package/GRStringTest.extension/instance/testMultiByteSubStrings.st +++ b/repository/Grease-Tests-GemStone32-Core.package/GRStringTest.extension/instance/testMultiByteSubStrings.st @@ -1,4 +1,4 @@ -*grease-tests-gemstone-core +*grease-tests-gemstone32-core testMultiByteSubStrings "#subStrings: is defined by ANSI 5.7.10.15: Answer an array containing the substrings in the receiver separated by the elements of separators." diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRStringTest.extension/instance/testMultiByteTrimBoth.st b/repository/Grease-Tests-GemStone32-Core.package/GRStringTest.extension/instance/testMultiByteTrimBoth.st similarity index 95% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRStringTest.extension/instance/testMultiByteTrimBoth.st rename to repository/Grease-Tests-GemStone32-Core.package/GRStringTest.extension/instance/testMultiByteTrimBoth.st index 76a0776f..6b73b88b 100644 --- a/repository/Grease-Tests-GemStone-Core.v32.package/GRStringTest.extension/instance/testMultiByteTrimBoth.st +++ b/repository/Grease-Tests-GemStone32-Core.package/GRStringTest.extension/instance/testMultiByteTrimBoth.st @@ -1,4 +1,4 @@ -*grease-tests-gemstone-core +*grease-tests-gemstone32-core testMultiByteTrimBoth self assert: (self multiByteConvert: '') trimBoth = ''. self assert: (self multiByteConvert: ' ') trimBoth = ''. diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRStringTest.extension/instance/testMultiByteTruncate.st b/repository/Grease-Tests-GemStone32-Core.package/GRStringTest.extension/instance/testMultiByteTruncate.st similarity index 93% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRStringTest.extension/instance/testMultiByteTruncate.st rename to repository/Grease-Tests-GemStone32-Core.package/GRStringTest.extension/instance/testMultiByteTruncate.st index 5cbf7eb4..faadc979 100644 --- a/repository/Grease-Tests-GemStone-Core.v32.package/GRStringTest.extension/instance/testMultiByteTruncate.st +++ b/repository/Grease-Tests-GemStone32-Core.package/GRStringTest.extension/instance/testMultiByteTruncate.st @@ -1,4 +1,4 @@ -*grease-tests-gemstone-core +*grease-tests-gemstone32-core testMultiByteTruncate self assert: ((self multiByteConvert: 'abc') truncate) = (self multiByteConvert: 'abc'). self assert: ((self multiByteConvert: 'abc') truncate: 3) = (self multiByteConvert: 'abc'). diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRStringTest.extension/properties.json b/repository/Grease-Tests-GemStone32-Core.package/GRStringTest.extension/properties.json similarity index 100% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRStringTest.extension/properties.json rename to repository/Grease-Tests-GemStone32-Core.package/GRStringTest.extension/properties.json diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRUtf8CodecTest.extension/instance/expectedFailures.st b/repository/Grease-Tests-GemStone32-Core.package/GRUtf8CodecTest.extension/instance/expectedFailures.st similarity index 65% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRUtf8CodecTest.extension/instance/expectedFailures.st rename to repository/Grease-Tests-GemStone32-Core.package/GRUtf8CodecTest.extension/instance/expectedFailures.st index 4a2a790a..86b72193 100644 --- a/repository/Grease-Tests-GemStone-Core.v32.package/GRUtf8CodecTest.extension/instance/expectedFailures.st +++ b/repository/Grease-Tests-GemStone32-Core.package/GRUtf8CodecTest.extension/instance/expectedFailures.st @@ -1,3 +1,3 @@ -*grease-tests-gemstone-core +*grease-tests-gemstone32-core expectedFailures ^ #() "all tests pass in GemStone 3.2" \ No newline at end of file diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/GRUtf8CodecTest.extension/properties.json b/repository/Grease-Tests-GemStone32-Core.package/GRUtf8CodecTest.extension/properties.json similarity index 100% rename from repository/Grease-Tests-GemStone-Core.v32.package/GRUtf8CodecTest.extension/properties.json rename to repository/Grease-Tests-GemStone32-Core.package/GRUtf8CodecTest.extension/properties.json diff --git a/repository/Grease-Tests-GemStone32-Core.package/monticello.meta/categories.st b/repository/Grease-Tests-GemStone32-Core.package/monticello.meta/categories.st new file mode 100644 index 00000000..601b1fa0 --- /dev/null +++ b/repository/Grease-Tests-GemStone32-Core.package/monticello.meta/categories.st @@ -0,0 +1 @@ +SystemOrganization addCategory: #'Grease-Tests-GemStone32-Core'! diff --git a/repository/Grease-Tests-GemStone32-Core.package/monticello.meta/initializers.st b/repository/Grease-Tests-GemStone32-Core.package/monticello.meta/initializers.st new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Tests-GemStone32-Core.package/monticello.meta/package b/repository/Grease-Tests-GemStone32-Core.package/monticello.meta/package new file mode 100644 index 00000000..8584d7db --- /dev/null +++ b/repository/Grease-Tests-GemStone32-Core.package/monticello.meta/package @@ -0,0 +1 @@ +(name 'Grease-Tests-GemStone32-Core') \ No newline at end of file diff --git a/repository/Grease-Tests-GemStone-Core.v32.package/properties.json b/repository/Grease-Tests-GemStone32-Core.package/properties.json similarity index 100% rename from repository/Grease-Tests-GemStone-Core.v32.package/properties.json rename to repository/Grease-Tests-GemStone32-Core.package/properties.json diff --git a/repository/Grease-Tests-Pharo-Core.package/GRPharoCodecTest.class/instance/assert.next.startingAt.gives..st b/repository/Grease-Tests-Pharo-Core.package/GRPharoCodecTest.class/instance/assert.next.startingAt.gives..st index 8ff0ff41..ded3d577 100644 --- a/repository/Grease-Tests-Pharo-Core.package/GRPharoCodecTest.class/instance/assert.next.startingAt.gives..st +++ b/repository/Grease-Tests-Pharo-Core.package/GRPharoCodecTest.class/instance/assert.next.startingAt.gives..st @@ -1,7 +1,10 @@ private assert: aString next: anInteger startingAt: startIndex gives: anEncodedString - | actual | - actual := String streamContents: [ :stream | + | actual encoder | + encoder := GRCodec forEncoding: 'utf-8'. + actual := encoder encodedStringClass streamContents: [ :stream | ((GRCodec forEncoding: 'utf-8') encoderFor: stream) greaseNext: anInteger putAll: aString startingAt: startIndex ]. - self assert: actual = anEncodedString \ No newline at end of file + encoder encodedStringClass == ByteArray + ifTrue:[ self assert: actual = anEncodedString asByteArray ] + ifFalse:[ self assert: actual = anEncodedString ] \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Core.package/GRPharoCodecTest.class/instance/testGreaseNextPutAllStartingAt.st b/repository/Grease-Tests-Pharo-Core.package/GRPharoCodecTest.class/instance/testGreaseNextPutAllStartingAt.st index dba72236..fe0c4411 100644 --- a/repository/Grease-Tests-Pharo-Core.package/GRPharoCodecTest.class/instance/testGreaseNextPutAllStartingAt.st +++ b/repository/Grease-Tests-Pharo-Core.package/GRPharoCodecTest.class/instance/testGreaseNextPutAllStartingAt.st @@ -2,12 +2,14 @@ tests testGreaseNextPutAllStartingAt | umlaut encodedUmlaut | umlaut := String with: (Character codePoint: 228). - encodedUmlaut := String with: (Character codePoint: 195) with: (Character codePoint: 164). + ((GRCodec forEncoding: 'utf-8') encodedStringClass == ByteArray) + ifTrue:[ encodedUmlaut := ByteArray with: 195 with: 164 ] + ifFalse:[ encodedUmlaut := String with: (Character codePoint: 195) with: (Character codePoint: 164) ]. self assert: 'ab' next: 1 startingAt: 1 gives: 'a'. - self assert: 'a', umlaut, 'b' next: 1 startingAt: 1 gives: 'a'. - self assert: 'ab', umlaut next: 1 startingAt: 1 gives: 'a'. - self assert: 'a', umlaut, 'b' next: 2 startingAt: 1gives: 'a', encodedUmlaut. - self assert: 'a', umlaut, 'b' next: 1 startingAt: 2 gives: encodedUmlaut. - self assert: 'a', umlaut, 'b' next: 2 startingAt: 2 gives: encodedUmlaut, 'b'. - self assert: 'a', umlaut, umlaut next: 2 startingAt: 2 gives: encodedUmlaut, encodedUmlaut. - self assert: 'ab', umlaut, 'b', umlaut next: 3 startingAt: 2 gives: 'b', encodedUmlaut, 'b' \ No newline at end of file + self assert: 'a', umlaut, 'b' next: 1 startingAt: 1 gives: 'a'. + self assert: 'ab', umlaut next: 1 startingAt: 1 gives: 'a'. + self assert: 'a', umlaut, 'b' next: 2 startingAt: 1 gives: 'a', encodedUmlaut. + self assert: 'a', umlaut, 'b' next: 1 startingAt: 2 gives: encodedUmlaut. + self assert: 'a', umlaut, 'b' next: 2 startingAt: 2 gives: encodedUmlaut, 'b'. + self assert: 'a', umlaut, umlaut next: 2 startingAt: 2 gives: encodedUmlaut, encodedUmlaut. + self assert: 'ab', umlaut, 'b', umlaut next: 3 startingAt: 2 gives: 'b', encodedUmlaut, 'b' \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Core.package/GRPharoCodecTest.class/instance/testLanguageTag.st b/repository/Grease-Tests-Pharo-Core.package/GRPharoCodecTest.class/instance/testLanguageTag.st index 57a2a02c..1207dc5f 100644 --- a/repository/Grease-Tests-Pharo-Core.package/GRPharoCodecTest.class/instance/testLanguageTag.st +++ b/repository/Grease-Tests-Pharo-Core.package/GRPharoCodecTest.class/instance/testLanguageTag.st @@ -1,16 +1,21 @@ tests testLanguageTag + "this makes sure the encoder doesn't fall on the nose with unicode" + "Make Japanese String from unicode. see http://www.unicode.org/charts/PDF/U3040.pdf" + | leading hiraA hiraO hiraAO | + SystemVersion current major >= 9 ifTrue: [ + GRPlatform current setutf8CodectoDeprecatedTextConverter ]. + [ leading := (Smalltalk classNamed: #JapaneseEnvironment) leadingChar. - hiraA := (Character - leadingChar: leading - code: 12354) greaseString. "HIRAGANA LETTER A" - hiraO := (Character - leadingChar: leading - code: 12362) greaseString. "HIRAGANA LETTER O" + hiraA := (Character leadingChar: leading code: 12354) greaseString. "HIRAGANA LETTER A" + hiraO := (Character leadingChar: leading code: 12362) greaseString. "HIRAGANA LETTER O" hiraAO := hiraA , hiraO. self assertEncodingIgnoresLanguageTat: hiraA. self assertEncodingIgnoresLanguageTat: hiraO. - self assertEncodingIgnoresLanguageTat: hiraAO \ No newline at end of file + self assertEncodingIgnoresLanguageTat: hiraAO + ] ensure: [ + SystemVersion current major >= 9 ifTrue: [ + GRPlatform current setutf8CodectoZinc ] ] \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Core.package/GRPlatformTest.extension/instance/writeToFile.withFileNameDo..st b/repository/Grease-Tests-Pharo-Core.package/GRPlatformTest.extension/instance/writeToFile.withFileNameDo..st new file mode 100644 index 00000000..2085b080 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Core.package/GRPlatformTest.extension/instance/writeToFile.withFileNameDo..st @@ -0,0 +1,12 @@ +*Grease-Tests-Pharo-Core +writeToFile: aStringOrByteArray withFileNameDo: aBlock + | fileName directory | + fileName := 'GRPharoPlatformTest'. + directory := FileSystem disk workingDirectory. + [ GRPlatform current + write: aStringOrByteArray + toFile: fileName + inFolder: directory fullName. + aBlock value: directory fullName,GRPlatform current pathSeparator,fileName + ] ensure: [ + (directory / fileName) delete ] \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Core.package/GRUtf8CodecTest.extension/instance/expectedFailures.st b/repository/Grease-Tests-Pharo-Core.package/GRUtf8CodecTest.extension/instance/expectedFailures.st deleted file mode 100644 index 3d992b1e..00000000 --- a/repository/Grease-Tests-Pharo-Core.package/GRUtf8CodecTest.extension/instance/expectedFailures.st +++ /dev/null @@ -1,3 +0,0 @@ -*Grease-Tests-Pharo-Core -expectedFailures - ^ #(testCodecUtf8ShortestForm) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Core.package/GRUtf8CodecTest.extension/properties.json b/repository/Grease-Tests-Pharo-Core.package/GRUtf8CodecTest.extension/properties.json deleted file mode 100644 index 3821af97..00000000 --- a/repository/Grease-Tests-Pharo-Core.package/GRUtf8CodecTest.extension/properties.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name" : "GRUtf8CodecTest" -} \ No newline at end of file diff --git a/repository/Grease-Tests-Squeak5-Core.package/GRPlatformTest.extension/instance/writeToFile.withFileNameDo..st b/repository/Grease-Tests-Squeak5-Core.package/GRPlatformTest.extension/instance/writeToFile.withFileNameDo..st new file mode 100644 index 00000000..f048cc47 --- /dev/null +++ b/repository/Grease-Tests-Squeak5-Core.package/GRPlatformTest.extension/instance/writeToFile.withFileNameDo..st @@ -0,0 +1,12 @@ +*grease-tests-squeak5-core +writeToFile: aStringOrByteArray withFileNameDo: aBlock + | fileName directory | + fileName := 'GRSqueakPlatformTest'. + directory := FileDirectory default. + [ GRPlatform current + write: aStringOrByteArray + toFile: fileName + inFolder: directory fullName. + aBlock value: directory fullName,GRPlatform current pathSeparator,fileName + ] ensure: [ + directory deleteFileNamed: fileName ] \ No newline at end of file