Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
August 2015
- 967 messages
Successful sprint
by stepharo
Hi guys
As you saw we got a little but really productive sprint today....
It was fun and great energy.
Thank you cyril, pablo, franck, marcus, and guillermo.
Stef
Aug. 20, 2015
[pharo-project/pharo-core]
by GitHub
Branch: refs/tags/50257
Home: https://github.com/pharo-project/pharo-core
Aug. 20, 2015
[pharo-project/pharo-core] e5380d: 50257
by GitHub
Branch: refs/heads/5.0
Home: https://github.com/pharo-project/pharo-core
Commit: e5380da14700e05975d826f97c9006436418ae40
https://github.com/pharo-project/pharo-core/commit/e5380da14700e05975d826f9…
Author: Jenkins Build Server <board(a)pharo-project.org>
Date: 2015-08-20 (Thu, 20 Aug 2015)
Changed paths:
M Graphics-Transformations.package/MatrixTransform2x3.class/class/instance creation/newFromStream_.st
A Monticello-OldDataStreamCompatibility.package/MCOldDataStreamExtensions.class/README.md
A Monticello-OldDataStreamCompatibility.package/MCOldDataStreamExtensions.class/class/class initialization/initialize.st
A Monticello-OldDataStreamCompatibility.package/MCOldDataStreamExtensions.class/definition.st
A Monticello-OldDataStreamCompatibility.package/ManifestMonticelloOldDataStreamCompatibility.class/README.md
A Monticello-OldDataStreamCompatibility.package/ManifestMonticelloOldDataStreamCompatibility.class/definition.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/readBitmap.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/readByteArray.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/readClass.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/readFloat.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/readMethod.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/readRectangle.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/readReference.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/readShortInst.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/readShortRef.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/readStringOld.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/readUser.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/readWordArray.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/readWordLike.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/writeBitmap_.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/writeByteArray_.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/writeClass_.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/writeFloat_.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/writeRectangle_.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/writeStringOld_.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/writeUser_.st
A Monticello-OldDataStreamCompatibility.package/extension/MCDataStream/instance/writeWordLike_.st
A Monticello-OldDataStreamCompatibility.package/extension/WordArray/class/newFromStream_.st
M Monticello.package/MCDataStream.class/class/initialize-release/initialize.st
A Monticello.package/MCDataStream.class/class/initialize-release/initializeTypeMap.st
A Monticello.package/MCDataStream.class/class/initialize-release/readSelectors.st
A Monticello.package/MCDataStream.class/class/initialize-release/registerClass_atIndex_usingReadSelector_usingWriteSelector_.st
A Monticello.package/MCDataStream.class/class/initialize-release/registerReaderSelector_atIndex_.st
A Monticello.package/MCDataStream.class/class/initialize-release/registerWriterSelector_atIndex_.st
A Monticello.package/MCDataStream.class/class/initialize-release/typeMap.st
A Monticello.package/MCDataStream.class/class/initialize-release/writeSelectors.st
M Monticello.package/MCDataStream.class/definition.st
M Monticello.package/MCDataStream.class/instance/write and read/next.st
M Monticello.package/MCDataStream.class/instance/write and read/nextPut_.st
R Monticello.package/MCDataStream.class/instance/write and read/noteCurrentReference_.st
R Monticello.package/MCDataStream.class/instance/write and read/readBitmap.st
R Monticello.package/MCDataStream.class/instance/write and read/readByteArray.st
R Monticello.package/MCDataStream.class/instance/write and read/readClass.st
R Monticello.package/MCDataStream.class/instance/write and read/readFloat.st
R Monticello.package/MCDataStream.class/instance/write and read/readMethod.st
R Monticello.package/MCDataStream.class/instance/write and read/readRectangle.st
R Monticello.package/MCDataStream.class/instance/write and read/readReference.st
R Monticello.package/MCDataStream.class/instance/write and read/readShortInst.st
R Monticello.package/MCDataStream.class/instance/write and read/readShortRef.st
R Monticello.package/MCDataStream.class/instance/write and read/readStringOld.st
R Monticello.package/MCDataStream.class/instance/write and read/readUser.st
R Monticello.package/MCDataStream.class/instance/write and read/readWordArray.st
R Monticello.package/MCDataStream.class/instance/write and read/readWordLike.st
M Monticello.package/MCDataStream.class/instance/write and read/typeIDFor_.st
R Monticello.package/MCDataStream.class/instance/write and read/writeBitmap_.st
R Monticello.package/MCDataStream.class/instance/write and read/writeByteArray_.st
R Monticello.package/MCDataStream.class/instance/write and read/writeClass_.st
R Monticello.package/MCDataStream.class/instance/write and read/writeFloat_.st
R Monticello.package/MCDataStream.class/instance/write and read/writeRectangle_.st
R Monticello.package/MCDataStream.class/instance/write and read/writeStringOld_.st
R Monticello.package/MCDataStream.class/instance/write and read/writeUser_.st
R Monticello.package/MCDataStream.class/instance/write and read/writeWordLike_.st
R NativeBoost-Unix.package/UnixEnvironment.class/README.md
R NativeBoost-Unix.package/UnixEnvironment.class/class/testing/isDefaultFor_.st
R NativeBoost-Unix.package/UnixEnvironment.class/definition.st
R NativeBoost-Unix.package/UnixEnvironment.class/instance/accessing/environ.st
R NativeBoost-Unix.package/UnixEnvironment.class/instance/enumeration/keysAndValuesDo_.st
R NativeBoost-Unix.package/UnixEnvironment.class/instance/private/environAt_.st
R NativeBoost-Unix.package/UnixEnvironment.class/instance/private/setEnv_value_.st
R NativeBoost-Win32.package/Win32Environment.class/README.md
R NativeBoost-Win32.package/Win32Environment.class/class/testing/isDefaultFor_.st
R NativeBoost-Win32.package/Win32Environment.class/definition.st
R NativeBoost-Win32.package/Win32Environment.class/instance/accessing/environmentStrings.st
R NativeBoost-Win32.package/Win32Environment.class/instance/enumeration/keysAndValuesDo_.st
R NativeBoost-Win32.package/Win32Environment.class/instance/private/getEnvSize_.st
R NativeBoost-Win32.package/Win32Environment.class/instance/private/getEnv_.st
R NativeBoost-Win32.package/Win32Environment.class/instance/private/getEnv_buffer_size_.st
R NativeBoost-Win32.package/Win32Environment.class/instance/private/setEnv_value_.st
R NativeBoost-Win32.package/Win32Environment.class/instance/private/unsetEnv_.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/script50256.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/script50257.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/update50256.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/update50257.st
M ScriptLoader50.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
R System-Changes.package/ChangeSet.class/instance/filein%2Fout/checkForUnclassifiedMethods.st
R System-Changes.package/ChangeSet.class/instance/filein%2Fout/checkForUncommentedMethods.st
R System-Changes.package/ChangeSet.class/instance/filein%2Fout/checkForUnsentMessages.st
M System-Changes.package/ChangeSet.class/instance/filein%2Fout/fileOut.st
R System-Changes.package/ChangeSet.class/instance/filein%2Fout/lookForSlips.st
A System-OSEnvironments.package/OSEnvironment.class/README.md
A System-OSEnvironments.package/OSEnvironment.class/class/accessing/environmentFor_.st
A System-OSEnvironments.package/OSEnvironment.class/class/instance creation/current.st
A System-OSEnvironments.package/OSEnvironment.class/class/instance creation/default.st
A System-OSEnvironments.package/OSEnvironment.class/class/instance creation/platform_.st
A System-OSEnvironments.package/OSEnvironment.class/class/testing/initialize.st
A System-OSEnvironments.package/OSEnvironment.class/class/testing/isAvailable.st
A System-OSEnvironments.package/OSEnvironment.class/class/testing/isDefaultFor_.st
A System-OSEnvironments.package/OSEnvironment.class/class/testing/shutDown_.st
A System-OSEnvironments.package/OSEnvironment.class/definition.st
A System-OSEnvironments.package/OSEnvironment.class/instance/accessing/associations.st
A System-OSEnvironments.package/OSEnvironment.class/instance/accessing/at_.st
A System-OSEnvironments.package/OSEnvironment.class/instance/accessing/at_ifAbsentPut_.st
A System-OSEnvironments.package/OSEnvironment.class/instance/accessing/at_ifAbsent_.st
A System-OSEnvironments.package/OSEnvironment.class/instance/accessing/at_ifPresent_.st
A System-OSEnvironments.package/OSEnvironment.class/instance/accessing/at_ifPresent_ifAbsent_.st
A System-OSEnvironments.package/OSEnvironment.class/instance/accessing/at_put_.st
A System-OSEnvironments.package/OSEnvironment.class/instance/accessing/keys.st
A System-OSEnvironments.package/OSEnvironment.class/instance/accessing/platform.st
A System-OSEnvironments.package/OSEnvironment.class/instance/accessing/removeKey_.st
A System-OSEnvironments.package/OSEnvironment.class/instance/accessing/values.st
A System-OSEnvironments.package/OSEnvironment.class/instance/converting/asDictionary.st
A System-OSEnvironments.package/OSEnvironment.class/instance/enumeration/associationsDo_.st
A System-OSEnvironments.package/OSEnvironment.class/instance/enumeration/do_.st
A System-OSEnvironments.package/OSEnvironment.class/instance/enumeration/keysAndValuesDo_.st
A System-OSEnvironments.package/OSEnvironment.class/instance/enumeration/keysAndValuesDo_withAssociationString_.st
A System-OSEnvironments.package/OSEnvironment.class/instance/enumeration/keysDo_.st
A System-OSEnvironments.package/OSEnvironment.class/instance/enumeration/valuesDo_.st
A System-OSEnvironments.package/OSEnvironment.class/instance/initialize-release/initializeWith_.st
A System-OSEnvironments.package/OSEnvironment.class/instance/private/getEnv_.st
A System-OSEnvironments.package/OSEnvironment.class/instance/private/unsetEnv_.st
A System-OSEnvironments.package/OSEnvironment.class/instance/testing/includesKey_.st
A System-OSEnvironments.package/OSEnvironment.class/instance/testing/includes_.st
A System-OSEnvironments.package/PlatformIndependentEnvironment.class/README.md
A System-OSEnvironments.package/PlatformIndependentEnvironment.class/class/testing/isAvailable.st
A System-OSEnvironments.package/PlatformIndependentEnvironment.class/class/testing/isDefaultFor_.st
A System-OSEnvironments.package/PlatformIndependentEnvironment.class/definition.st
A System-OSEnvironments.package/PlatformIndependentEnvironment.class/instance/enumeration/keysAndValuesDo_.st
A System-OSEnvironments.package/PlatformIndependentEnvironment.class/instance/private/getEnv_.st
A System-OSEnvironments.package/PlatformIndependentEnvironment.class/instance/private/setEnv_value_.st
A System-OSEnvironments.package/PlatformIndependentEnvironment.class/instance/private/unsetEnv_.st
A System-OSEnvironments.package/UnixEnvironment.class/README.md
A System-OSEnvironments.package/UnixEnvironment.class/class/testing/isDefaultFor_.st
A System-OSEnvironments.package/UnixEnvironment.class/definition.st
A System-OSEnvironments.package/UnixEnvironment.class/instance/accessing/environ.st
A System-OSEnvironments.package/UnixEnvironment.class/instance/enumeration/keysAndValuesDo_.st
A System-OSEnvironments.package/UnixEnvironment.class/instance/private/environAt_.st
A System-OSEnvironments.package/UnixEnvironment.class/instance/private/setEnv_value_.st
A System-OSEnvironments.package/Win32Environment.class/README.md
A System-OSEnvironments.package/Win32Environment.class/class/testing/isDefaultFor_.st
A System-OSEnvironments.package/Win32Environment.class/definition.st
A System-OSEnvironments.package/Win32Environment.class/instance/accessing/environmentStrings.st
A System-OSEnvironments.package/Win32Environment.class/instance/enumeration/keysAndValuesDo_.st
A System-OSEnvironments.package/Win32Environment.class/instance/private/getEnvSize_.st
A System-OSEnvironments.package/Win32Environment.class/instance/private/getEnv_.st
A System-OSEnvironments.package/Win32Environment.class/instance/private/getEnv_buffer_size_.st
A System-OSEnvironments.package/Win32Environment.class/instance/private/setEnv_value_.st
A System-OSEnvironments.package/Win32Environment.class/instance/private/unsetEnv_.st
A System-OSEnvironments.package/extension/OSPlatform/instance/environment.st
R System-Platforms.package/OSEnvironment.class/README.md
R System-Platforms.package/OSEnvironment.class/class/accessing/environmentFor_.st
R System-Platforms.package/OSEnvironment.class/class/instance creation/default.st
R System-Platforms.package/OSEnvironment.class/class/instance creation/platform_.st
R System-Platforms.package/OSEnvironment.class/class/testing/isAvailable.st
R System-Platforms.package/OSEnvironment.class/class/testing/isDefaultFor_.st
R System-Platforms.package/OSEnvironment.class/definition.st
R System-Platforms.package/OSEnvironment.class/instance/accessing/associations.st
R System-Platforms.package/OSEnvironment.class/instance/accessing/at_.st
R System-Platforms.package/OSEnvironment.class/instance/accessing/at_ifAbsentPut_.st
R System-Platforms.package/OSEnvironment.class/instance/accessing/at_ifAbsent_.st
R System-Platforms.package/OSEnvironment.class/instance/accessing/at_ifPresent_.st
R System-Platforms.package/OSEnvironment.class/instance/accessing/at_ifPresent_ifAbsent_.st
R System-Platforms.package/OSEnvironment.class/instance/accessing/at_put_.st
R System-Platforms.package/OSEnvironment.class/instance/accessing/keys.st
R System-Platforms.package/OSEnvironment.class/instance/accessing/platform.st
R System-Platforms.package/OSEnvironment.class/instance/accessing/removeKey_.st
R System-Platforms.package/OSEnvironment.class/instance/accessing/values.st
R System-Platforms.package/OSEnvironment.class/instance/converting/asDictionary.st
R System-Platforms.package/OSEnvironment.class/instance/enumeration/associationsDo_.st
R System-Platforms.package/OSEnvironment.class/instance/enumeration/do_.st
R System-Platforms.package/OSEnvironment.class/instance/enumeration/keysAndValuesDo_.st
R System-Platforms.package/OSEnvironment.class/instance/enumeration/keysAndValuesDo_withAssociationString_.st
R System-Platforms.package/OSEnvironment.class/instance/enumeration/keysDo_.st
R System-Platforms.package/OSEnvironment.class/instance/enumeration/valuesDo_.st
R System-Platforms.package/OSEnvironment.class/instance/initialize-release/initializeWith_.st
R System-Platforms.package/OSEnvironment.class/instance/private/getEnv_.st
R System-Platforms.package/OSEnvironment.class/instance/private/unsetEnv_.st
R System-Platforms.package/OSEnvironment.class/instance/testing/includesKey_.st
R System-Platforms.package/OSEnvironment.class/instance/testing/includes_.st
M System-Platforms.package/OSPlatform.class/definition.st
R System-Platforms.package/OSPlatform.class/instance/accessing/environment.st
R System-Platforms.package/OSPlatform.class/instance/private/createEnvironment.st
R System-Platforms.package/PlatformIndependentEnvironment.class/README.md
R System-Platforms.package/PlatformIndependentEnvironment.class/class/testing/isAvailable.st
R System-Platforms.package/PlatformIndependentEnvironment.class/class/testing/isDefaultFor_.st
R System-Platforms.package/PlatformIndependentEnvironment.class/definition.st
R System-Platforms.package/PlatformIndependentEnvironment.class/instance/enumeration/keysAndValuesDo_.st
R System-Platforms.package/PlatformIndependentEnvironment.class/instance/private/getEnv_.st
R System-Platforms.package/PlatformIndependentEnvironment.class/instance/private/setEnv_value_.st
R System-Platforms.package/PlatformIndependentEnvironment.class/instance/private/unsetEnv_.st
R System-Platforms.package/Win32Platform.class/instance/accessing/environment.st
R System-Support.package/SmalltalkImage.class/instance/housekeeping/removeAllLineFeeds.st
Log Message:
-----------
50257
16298 get rid of Tool-Base in the bootstrap
https://pharo.fogbugz.com/f/cases/16298
15861 Create test package for Jobs
https://pharo.fogbugz.com/f/cases/15861
16283 Collections-Abstract should not depend on Graphics-Primitive
https://pharo.fogbugz.com/f/cases/16283
16208 System-Support should have a System-Support-Tests
https://pharo.fogbugz.com/f/cases/16208
16293 get rid of NativeBoost dependency in the bootstrap
https://pharo.fogbugz.com/f/cases/16293
http://files.pharo.org/image/50/50257.zip
Aug. 20, 2015
[pharo-project/pharo-core] 8f204e: 50256
by GitHub
Branch: refs/heads/5.0
Home: https://github.com/pharo-project/pharo-core
Commit: 8f204e36b9cea8b78e15ca1e7a2d65ca9e868120
https://github.com/pharo-project/pharo-core/commit/8f204e36b9cea8b78e15ca1e…
Author: Jenkins Build Server <board(a)pharo-project.org>
Date: 2015-08-20 (Thu, 20 Aug 2015)
Changed paths:
R Compression-Registration.package/extension/GZipReadStream/class/initialize.st
R Compression-Registration.package/extension/GZipReadStream/class/unload.st
R Compression-Registration.package/extension/ZipArchive/class/initialize.st
R Compression-Registration.package/extension/ZipArchive/class/unload.st
M Files.package/AbstractBinaryFileStream.class/instance/reading/next.st
R Files.package/FileStream.class/class/initialize-release/unload.st
R Monticello.package/MCOrganizationDefinition.class/instance/accessing/patchWrapper.st
R Monticello.package/MCVersionReader.class/class/System-FileRegistry/initialize.st
R Monticello.package/MCVersionReader.class/class/System-FileRegistry/unload.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/script50255.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/script50256.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/update50255.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/update50256.st
M ScriptLoader50.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
M System-Changes.package/ChangeSet.class/class/file services/fileReaderServicesForFile_suffix_.st
M System-Changes.package/ChangeSet.class/class/initialization/initialize.st
M System-FileRegistry.package/FileServices.class/README.md
R System-FileRegistry.package/FileServices.class/class/accessing/allRegisteredServices.st
M System-FileRegistry.package/FileServices.class/class/accessing/itemsForDirectory_.st
M System-FileRegistry.package/FileServices.class/class/accessing/itemsForFile_.st
R System-FileRegistry.package/FileServices.class/class/adding/registerFileReader_.st
R System-FileRegistry.package/FileServices.class/class/adding/registeredFileReaderClasses.st
R System-FileRegistry.package/FileServices.class/class/cleanup/cleanUp.st
R System-FileRegistry.package/FileServices.class/class/initialize-release/initialize.st
R System-FileRegistry.package/FileServices.class/class/removing/removeObsolete.st
R System-FileRegistry.package/FileServices.class/class/removing/unregisterFileReader_.st
R System-FileRegistry.package/FileServices.class/class/testing/isReaderNamedRegistered_.st
M System-FileRegistry.package/FileServices.class/definition.st
M System-Installers.package/MczInstaller.class/class/System-FileRegistry/initialize.st
R System-Installers.package/MczInstaller.class/class/System-FileRegistry/registerForFileList.st
A Tool-Diff.package/extension/MCOrganizationDefinition/instance/patchWrapper.st
R Tool-ExternalBrowser.package/ExternalBrowser.class/class/class initialization/initialize.st
R Tool-ExternalBrowser.package/ExternalChangesBrowser.class/class/file service/initialize.st
R Tool-FileList.package/FileList.class/class/file reader registration/allRegisteredServices.st
R Tool-FileList.package/FileList.class/class/file reader registration/isReaderNamedRegistered_.st
R Tool-FileList.package/FileList.class/class/file reader registration/registerFileReader_.st
R Tool-FileList.package/FileList.class/class/file reader registration/registeredFileReaderClasses.st
R Tool-FileList.package/FileList.class/class/file reader registration/unregisterFileReader_.st
R Tool-FileList.package/FileList.class/class/initialization/initialize.st
R Tool-FileList.package/FileList.class/class/initialization/removeObsolete.st
M Tool-FileList.package/FileList.class/class/utility/itemsForDirectory_.st
M Tool-FileList.package/FileList.class/class/utility/itemsForFile_.st
R Tool-FileList.package/FileList.class/instance/private/registeredFileReaderClasses.st
Log Message:
-----------
50256
16324 Clean FileServices and FileList by using pragmas
https://pharo.fogbugz.com/f/cases/16324
16328 Fix senders of ifNotEmptyDo: in image
https://pharo.fogbugz.com/f/cases/16328
16300 Monticello should not depend on Tool-Diff
https://pharo.fogbugz.com/f/cases/16300
http://files.pharo.org/image/50/50256.zip
Aug. 20, 2015
[pharo-project/pharo-core]
by GitHub
Branch: refs/tags/50256
Home: https://github.com/pharo-project/pharo-core
Aug. 20, 2015
Re: [Pharo-dev] [Vm-dev] ImageSegments and some OT (was: Re: Squeak 5 Image Segment Work [was [squeak-dev] [ANN] Squeak 5])
by Mariano Martinez Peck
On Thu, Aug 20, 2015 at 11:47 AM, Tobias Pape <Das.Linux(a)gmx.de> wrote:
> Hi Mariano,
>
> On 20.08.2015, at 16:41, Mariano Martinez Peck <marianopeck(a)gmail.com>
> wrote:
> > [â¦]
> > Is this similar to Tanker in the way that classes and methods are binary
> serialized with Fuel? (no compiling)
> > Or you just used Fuel instead of the current usage of MCDataStream? If
> this is the case, then you would still be compiling at load time etc. We
> already did this experiment long ago and we didn't find a significant
> speedup.
> >
> > What were your findings?
> [â¦]
> Well that was 4 years ago:
> http://forum.world.st/Monticello-enhancing-td4179277.html
> And I don't remember too well, just my feeling that it was a lot faster by
> replacing
> the DataStream blob with a fuel blob (so, no, not like Tanker).
> (No actual numbers written down, tho, sorry)
>
>
OK, that's what I imagined. Yes, we did the same experiment too. As said,
we haven't seen an speed up there because even if Fuel would be 100x faster
writing that blob, the writing of that blob was insignificant in a
Monticello load. Most of the time when loading with Monticello goes into
the parsing/compiling, the class building thingies (may involve became: to
update instances), the notifications, etc..
In fact, one of the things we found is that:
- just having a bulk notification (and update all the observers) would
speed up things (have you ever tried loading with Monticello with
TestRunner opened???? takes a lifetime!)
- Spur would help us with the lazy become when updating instances
So probably maybe with those 2 things we already see an speedup even if we
still compile from source...
--
Mariano
http://marianopeck.wordpress.com
Aug. 20, 2015
Re: [Pharo-dev] [Vm-dev] ImageSegments and some OT (was: Re: Squeak 5 Image Segment Work [was [squeak-dev] [ANN] Squeak 5])
by Tobias Pape
Hi Mariano,
On 20.08.2015, at 16:41, Mariano Martinez Peck <marianopeck(a)gmail.com> wrote:
> [â¦]
> Is this similar to Tanker in the way that classes and methods are binary serialized with Fuel? (no compiling)
> Or you just used Fuel instead of the current usage of MCDataStream? If this is the case, then you would still be compiling at load time etc. We already did this experiment long ago and we didn't find a significant speedup.
>
> What were your findings?
[â¦]
Well that was 4 years ago: http://forum.world.st/Monticello-enhancing-td4179277.html
And I don't remember too well, just my feeling that it was a lot faster by replacing
the DataStream blob with a fuel blob (so, no, not like Tanker).
(No actual numbers written down, tho, sorry)
Best regards
-Tobia
Aug. 20, 2015
Re: [Pharo-dev] [Vm-dev] ImageSegments and some OT (was: Re: Squeak 5 Image Segment Work [was [squeak-dev] [ANN] Squeak 5])
by Mariano Martinez Peck
On Thu, Aug 20, 2015 at 11:37 AM, Tobias Pape <Das.Linux(a)gmx.de> wrote:
>
> Hi all,
>
> On 19.08.2015, at 23:09, Eliot Miranda <eliot.miranda(a)gmail.com> wrote:
>
> > Hi All, but especially Tobias,
>
> just for reference, I only had time to skim this mail.
> I'll work through it more in-depth in September (vacation upcoming, sorry).
>
> Also, I like Fuel as a way forward. I'd also like to deprecate DataStreams
> in
> favor of Fuel[1], I also had a prototype of Fuel-based Monticello packages
> which loaded much faster for large packagesâ¦
>
>
Is this similar to Tanker in the way that classes and methods are binary
serialized with Fuel? (no compiling)
Or you just used Fuel instead of the current usage of MCDataStream? If this
is the case, then you would still be compiling at load time etc. We already
did this experiment long ago and we didn't find a significant speedup.
What were your findings?
> Best regards
> -Tobias
>
>
> [1]: PS: Hi Pharo folks, MCDataStream will break with Spur,
> Have a look at System-topa.741 unil System-topa.473 in the
> Squeak trunk or the attached change set, YMMV tho.
>
>
Thanks,
>
>
>
>
> >
> > as we know, ImageSegments are broken in Spur. They work
> occasionally, but when stressed the VM ends up crashing. The fundamental
> issue is that the ImageSegment code makes assumptions about object ordering
> that Spur violates. For example, here's ImageSegment's install:
> >
> > install
> > "This operation retrieves the segment if necessary from file
> storage, installs it in memory, and replaces (using become:) all the root
> stubs with the reconstructed roots of the segment."
> >
> > | newRoots |
> > state = #onFile ifTrue: [self readFromFile].
> > state = #onFileWithSymbols ifTrue: [self readFromFileWithSymbols.
> > endMarker := segment nextObject. "for enumeration
> of objects"
> > endMarker == 0 ifTrue: [endMarker := 'End' clone]].
> > (state = #active) | (state = #imported) ifFalse: [self
> errorWrongState].
> > newRoots := self loadSegmentFrom: segment outPointers: outPointers.
> > state = #imported
> > ifTrue: ["just came in from exported file"
> > arrayOfRoots := newRoots]
> > ifFalse: [
> > arrayOfRoots elementsForwardIdentityTo: newRoots].
> > state := #inactive.
> > Beeper beepPrimitive
> >
> > So before the image segment bytes (the segment inst var) is loaded, the
> object after it is assigned to endMarker, and if there isn't an object
> after segment, a new object ('End' clone) is assigned to endMarker.
> >
> > This makes the assumption that objects are allocated in a strict order,
> and therefore endMarker will always be the object after segment.
> >
> > Loading the segment via "newRoots := self loadSegmentFrom: segment
> outPointers: outPointers" then turns segment into a zero-length WordArray
> and its contents into the objects loaded by the segment. Therefore, in the
> V3 system, the objects loaded from segment can be enumerated starting at
> segment nextObject and repeating until endMarker is found:
> >
> > allObjectsDo: aBlock
> > "Enumerate all objects that came from this segment. NOTE this
> assumes that the segment was created (and extracted). After the segment
> has been installed (install), this method allows you to enumerate its
> objects."
> > | obj |
> >
> > endMarker == nil ifTrue: [
> > ^ self error: 'Just extract and install, don''t
> writeToFile:'].
> > segment size ~= 1 ifTrue: [
> > ^ self error: 'Vestigial segment size must be 1 (version
> word)'].
> >
> > obj := segment nextObject. "Start with the next object after the
> vestigial header"
> > [obj == endMarker] whileFalse: "Stop at the next object after the
> full segment"
> > [aBlock value: obj.
> > obj := obj nextObject]. "Step through the objects
> installed from the segment."
> >
> > Now, as written, this just won't work in Spur.
> >
> > a) the only place where there is any kind of stable order to objects is
> in oldSpace, so segment /has/ to be forced to old space to have any chance
> of its objects being in order when it gets converted from bytes to objects.
> >
> > b) 'End' clone will be in newSpace and so endMarker isn't reliable
> unless it was obtained by segment nextObject when segment was already in
> oldSpace.
> >
> > So it is perhaps possible to fix ImageSegments in Spur by forcing
> segment to oldSpace and being more careful with endMarker. But I think
> there is a better way.
> >
> > If the set of objects the segment contains can be obtained some how then
> this set can be simply enumerated, not depending on nextObject. The
> primitive has to answer the array of roots, so its result can't be changed
> to be the entire array. But segment could be becomed into an Array of all
> the objects in segment prior to it being loaded, in which case the above
> would become
> >
> >
> > install
> > "This operation retrieves the segment if necessary from file
> storage, installs it in memory, and replaces (using become:) all the root
> stubs with the reconstructed roots of the segment."
> >
> > | newRoots |
> > state = #onFile ifTrue: [self readFromFile].
> > state = #onFileWithSymbols ifTrue:
> > [self readFromFileWithSymbols].
> > (state = #active) | (state = #imported) ifFalse: [self
> errorWrongState].
> > newRoots := self loadSegmentFrom: segment outPointers: outPointers.
> > state = #imported
> > ifTrue: "just came in from exported file"
> > [arrayOfRoots := newRoots]
> > ifFalse:
> > [arrayOfRoots elementsForwardIdentityTo: newRoots].
> > state := #inactive.
> > Beeper beepPrimitive
> >
> > allObjectsDo: aBlock
> > "Enumerate all objects that came from this segment. NOTE this
> assumes that the segment was created (and extracted). After the segment
> has been installed (install), this method allows you to enumerate its
> objects."
> > | obj |
> >
> > segment isArray ifFalse:
> > [^ self error: 'Segment hasn''t been loaded?'].
> >
> > segment do: aBlock
> >
> > and the endMarker instVar would be deleted.
> >
> > I am willing and ready to modify the primitive to convert the segment
> correctly. Who will volunteer to rewrite the image-level ImageSegment code
> to use the new primitive?
> >
> >
> >
> > On Wed, Aug 12, 2015 at 10:40 PM, Eliot Miranda <eliot.miranda(a)gmail.com>
> wrote:
> > Hi Tobias,
> >
> > On Wed, Aug 12, 2015 at 10:18 PM, Tobias Pape <Das.Linux(a)gmx.de> wrote:
> > Hi all
> > On 13.08.2015, at 02:15, Eliot Miranda <eliot.miranda(a)gmail.com> wrote:
> >
> > > Hi Tobias,
> > >
> > > forget that. I found it. THis right?
> > >
> > > Trunk test suite for Spur
> > > Using existing cogspur r.3410
> > > cp -r /var/lib/jenkins/workspace/Trunk/default/target/cogspur.r3410
> /tmp/d20150812-28620-etbikj
> > > image test suite
> > > VM: /tmp/d20150812-28620-etbikj/cogspur.r3410/cogspurlinuxht/bin/squeak
> > > /tmp/d20150812-28620-etbikj/cogspur.r3410/cogspurlinuxht/bin/squeak
> -version
> > > /var/lib/jenkins/workspace/Trunk/default/tests.st
> > > spawning command 0 with timeout 1800 seconds:
> "/tmp/d20150812-28620-etbikj/cogspur.r3410/cogspurlinuxht/bin/squeak"
> "-vm-sound-null" "-vm-display-null"
> "/var/lib/jenkins/workspace/Trunk/default/target/SpurPostTestTrunkImage.image"
> "../tests.st"
> > > (Command started with PID 28643)
> > > 2015-08-12T23:31:48.17+01:00: Loading Hudson build tools... from
> /var/lib/jenkins/workspace/Trunk/default/target/HudsonBuildTools.st
> > > 2015-08-12T23:31:48.388+01:00: Running tests...
> > > setsockopt: Protocol not available
> > > setsockopt: Protocol not available
> > > 28646:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown
> protocol:s23_clnt.c:612:
> > >
> > > Recursive not understood error encountered
> > >
> > >
> > > I bet this is ImageSegment related.
> >
> > It sure is.
> >
> > BitmapStreamTests>testMatrixTransform2x3WithImageSegment
> > sends
> > BitmapStreamTests>validateImageSegment
> >
> > Basically the ImageSegment code has been working in Spur on a hope and
> a prayer. The code assumes objects are allocated in chronological order
> and that this order is preserved, not so with Spur. So post image segment
> loading someObject/nextObject is used to enumerate the objects loaded.
> This can't work reliably in Spur. I *think* (ok I hope) that I've
> implemented the segment load primitive in Spur to answer an Array of the
> objects loaded, so that these can be explicitly enumerated.
> >
> > So the job is a) to check that I have indeed implemented the primitive
> to do this and b) to rewrite the image segment loading code in the light of
> this.
> >
> > David, this is an example of something that isn't back portable and
> should not be back-ported.
> >
> > The most strange thing is that I cannot reproduce this on my Macâ¦
> > There the test does not crash the imageâ¦
> >
> > Well then it may be a signed/unsigned bug in image loading instead. On
> linux the image typically gets loaded quite high in the address space and
> so a good portion of the heap ends up above 0x7FFFFFFF, or negative
> territory if misinterpreted as signed integers. On Mac and Windows the
> image tends to get loaded quite low and so has to be pretty big to fall
> foul of signedness issues.
> >
> >
> > Busy right now but will check tomorrow.
> >
> >
> > Best regards
> > -Tobias
> >
> >
> > >
> > > On Wed, Aug 12, 2015 at 5:11 PM, Eliot Miranda <
> eliot.miranda(a)gmail.com> wrote:
> > > Hi Tobias,
> > >
> > > On Wed, Aug 12, 2015 at 12:49 PM, Tobias Pape <Das.Linux(a)gmx.de>
> wrote:
> > >
> > > On 12.08.2015, at 20:55, Eliot Miranda <eliot.miranda(a)gmail.com>
> wrote:
> > >
> > > > Hi All,
> > > >
> > > >
> > > > Fabio's kindly done most of the changes. But some questions
> remain for more general discussion. See below.
> > > >
> > > > Fabio, thanks so much for doing this, and so quickly!
> > > >
> > > > On Tue, Aug 11, 2015 at 8:51 PM, Eliot Miranda <
> eliot.miranda(a)gmail.com> wrote:
> > > > Hi All,
> > > >
> > > > who will update http://squeak.org/downloads/ to include the 5.0
> release?
> > > >
> > > > a) I suggest that the 5.0 all-in-one have a line in the left-hand
> table that includes the 4.6 release and that it precede the 4.6 release in
> the list.
> > > >
> > > > Done.
> > > >
> > > >
> > > > b) the Trunk link points to TrunkImage.zip which contains a non-Spur
> image.
> > > >
> > > > So this is the biggie. What should we do?
> > > >
> > > > - add a Trunk 5.0 build with a different link? (Noooooo)
> > > >
> > > > - change http://build.squeak.org/job/SqueakTrunk to build what it
> says (Yessss please, who can do this?)
> > >
> > > Done: build.squeak.org/job/Trunk/
> > > But as I said several times, Spur/trunk test just crash for monthâ¦
> > >
> > > can you point me to the crash? I'm looking at
> http://build.squeak.org/job/Trunk/default/lastBuild/#showFailuresLink and
> see 8 test failures but no crash.
> > >
> > >
> > > >
> > > > - add a Squeak 4.6 build job? Is that even worth it any more
> considering 4.6 is released and stable? If it is then what should it
> build? David?
> > > >
> > > >
> > > > c) Spur VMs need to be linked to by an added line in the Virtual
> Machines list.
> > > >
> > > > Not applicable. the VM links point to the root of my site so they
> effectively point to both old and Spur VMs.
> > > >
> > > >
> > > > d) Spur imagers need to be included in the Image and Changes list
> under Custom Installation
> > > >
> > > > Done.
> > > >
> > > >
> > > >
> > > > e) The SqueakV50.sources file also needs to be included in the
> Current Sources list.
> > > >
> > > > Done.
> > > >
> > > >
> > > > f) we could start a History list for the 5.0 line
> > > >
> > > > This is probably quite a big reorg on the page and not urgent.
> > > >
> > > >
> > > > So there are a few things to fix before 5.0 is freely downloadable.
> > > >
> > > > On Tue, Aug 11, 2015 at 8:23 PM, Chris Muller <ma.chris.m(a)gmail.com>
> wrote:
> > > > In the 17 months since Squeak 4.5 was released, a huge development
> > > > effort took place to create the next generation virtual-machine for
> > > > the Squeak / Pharo / Newspeak family of programming systems. Squeak
> > > > is the modern incarnation of the Smalltalk-80 programming environment
> > > > originally developed at the Xerox PARC.
> > > >
> > > > "Squeak 5" introduces this new VM and associated new memory model,
> > > > collectively referred to as "Spur". Presented [1] by Eliot Miranda
> > > > and Clément Béra at the 2015 International Symposium on Memory
> > > > Management, this new VM affords Squeak applications a significant
> > > > boost in performance and memory management. Among other
> > > > optimizations, the #become operation no longer requires a memory
> scan.
> > > > Object pinning and ephemerons are also now supported. The release
> > > > notes [2] provide more details.
> > > >
> > > > The new memory model requires a new image file format. Although this
> > > > new format results in about a 15% increased memory requirement for
> the
> > > > same number of 4.x objects, a new segmented heap allows memory to be
> > > > given back to the OS when its no longer needed, a great benefit for
> > > > application servers.
> > > >
> > > > As forward compatibility is as important to the Squeak community as
> > > > backward compatibility, Squeak 5 is delivers an image with identical
> > > > content as the recent 4.6 release. Although this new Squeak 5 VM
> > > > cannot open images saved under the prior 4.x Cog format, objects and
> > > > code can be easily exported from the 4.x image and then imported into
> > > > Squeak 5. Applications whose code runs strictly above the Smalltalk
> > > > meta layer will prove remarkably compatible with the new format, most
> > > > applications will require no changes whatsotever.
> > > >
> > > > Squeak 5 is the result of monumental effort by a tiny group of very
> > > > talented people, but its also just the beginning of yet a new effort;
> > > > Spur is just a stepping stone to a more ambitious goals planned over
> > > > the next five years.
> > > >
> > > > [1] -- A Partial Read Barrier for Efficient Support of Live
> > > > Object-oriented Programming
> > > >
> http://conf.researchr.org/event/ismm-2015/ismm-2015-papers-a-partial-read-b…
> > > >
> > > > [2] -- Squeak 5 Release Notes
> > > > http://wiki.squeak.org/squeak/6207
>
>
>
>
>
--
Mariano
http://marianopeck.wordpress.com
Aug. 20, 2015
ImageSegments and some OT (was: Re: Squeak 5 Image Segment Work [was [squeak-dev] [ANN] Squeak 5])
by Tobias Pape
Hi all,
On 19.08.2015, at 23:09, Eliot Miranda <eliot.miranda(a)gmail.com> wrote:
> Hi All, but especially Tobias,
just for reference, I only had time to skim this mail.
I'll work through it more in-depth in September (vacation upcoming, sorry).
Also, I like Fuel as a way forward. I'd also like to deprecate DataStreams in
favor of Fuel[1], I also had a prototype of Fuel-based Monticello packages
which loaded much faster for large packagesâ¦
Best regards
-Tobias
[1]: PS: Hi Pharo folks, MCDataStream will break with Spur,
Have a look at System-topa.741 unil System-topa.473 in the
Squeak trunk or the attached change set, YMMV tho.
>
> as we know, ImageSegments are broken in Spur. They work occasionally, but when stressed the VM ends up crashing. The fundamental issue is that the ImageSegment code makes assumptions about object ordering that Spur violates. For example, here's ImageSegment's install:
>
> install
> "This operation retrieves the segment if necessary from file storage, installs it in memory, and replaces (using become:) all the root stubs with the reconstructed roots of the segment."
>
> | newRoots |
> state = #onFile ifTrue: [self readFromFile].
> state = #onFileWithSymbols ifTrue: [self readFromFileWithSymbols.
> endMarker := segment nextObject. "for enumeration of objects"
> endMarker == 0 ifTrue: [endMarker := 'End' clone]].
> (state = #active) | (state = #imported) ifFalse: [self errorWrongState].
> newRoots := self loadSegmentFrom: segment outPointers: outPointers.
> state = #imported
> ifTrue: ["just came in from exported file"
> arrayOfRoots := newRoots]
> ifFalse: [
> arrayOfRoots elementsForwardIdentityTo: newRoots].
> state := #inactive.
> Beeper beepPrimitive
>
> So before the image segment bytes (the segment inst var) is loaded, the object after it is assigned to endMarker, and if there isn't an object after segment, a new object ('End' clone) is assigned to endMarker.
>
> This makes the assumption that objects are allocated in a strict order, and therefore endMarker will always be the object after segment.
>
> Loading the segment via "newRoots := self loadSegmentFrom: segment outPointers: outPointers" then turns segment into a zero-length WordArray and its contents into the objects loaded by the segment. Therefore, in the V3 system, the objects loaded from segment can be enumerated starting at segment nextObject and repeating until endMarker is found:
>
> allObjectsDo: aBlock
> "Enumerate all objects that came from this segment. NOTE this assumes that the segment was created (and extracted). After the segment has been installed (install), this method allows you to enumerate its objects."
> | obj |
>
> endMarker == nil ifTrue: [
> ^ self error: 'Just extract and install, don''t writeToFile:'].
> segment size ~= 1 ifTrue: [
> ^ self error: 'Vestigial segment size must be 1 (version word)'].
>
> obj := segment nextObject. "Start with the next object after the vestigial header"
> [obj == endMarker] whileFalse: "Stop at the next object after the full segment"
> [aBlock value: obj.
> obj := obj nextObject]. "Step through the objects installed from the segment."
>
> Now, as written, this just won't work in Spur.
>
> a) the only place where there is any kind of stable order to objects is in oldSpace, so segment /has/ to be forced to old space to have any chance of its objects being in order when it gets converted from bytes to objects.
>
> b) 'End' clone will be in newSpace and so endMarker isn't reliable unless it was obtained by segment nextObject when segment was already in oldSpace.
>
> So it is perhaps possible to fix ImageSegments in Spur by forcing segment to oldSpace and being more careful with endMarker. But I think there is a better way.
>
> If the set of objects the segment contains can be obtained some how then this set can be simply enumerated, not depending on nextObject. The primitive has to answer the array of roots, so its result can't be changed to be the entire array. But segment could be becomed into an Array of all the objects in segment prior to it being loaded, in which case the above would become
>
>
> install
> "This operation retrieves the segment if necessary from file storage, installs it in memory, and replaces (using become:) all the root stubs with the reconstructed roots of the segment."
>
> | newRoots |
> state = #onFile ifTrue: [self readFromFile].
> state = #onFileWithSymbols ifTrue:
> [self readFromFileWithSymbols].
> (state = #active) | (state = #imported) ifFalse: [self errorWrongState].
> newRoots := self loadSegmentFrom: segment outPointers: outPointers.
> state = #imported
> ifTrue: "just came in from exported file"
> [arrayOfRoots := newRoots]
> ifFalse:
> [arrayOfRoots elementsForwardIdentityTo: newRoots].
> state := #inactive.
> Beeper beepPrimitive
>
> allObjectsDo: aBlock
> "Enumerate all objects that came from this segment. NOTE this assumes that the segment was created (and extracted). After the segment has been installed (install), this method allows you to enumerate its objects."
> | obj |
>
> segment isArray ifFalse:
> [^ self error: 'Segment hasn''t been loaded?'].
>
> segment do: aBlock
>
> and the endMarker instVar would be deleted.
>
> I am willing and ready to modify the primitive to convert the segment correctly. Who will volunteer to rewrite the image-level ImageSegment code to use the new primitive?
>
>
>
> On Wed, Aug 12, 2015 at 10:40 PM, Eliot Miranda <eliot.miranda(a)gmail.com> wrote:
> Hi Tobias,
>
> On Wed, Aug 12, 2015 at 10:18 PM, Tobias Pape <Das.Linux(a)gmx.de> wrote:
> Hi all
> On 13.08.2015, at 02:15, Eliot Miranda <eliot.miranda(a)gmail.com> wrote:
>
> > Hi Tobias,
> >
> > forget that. I found it. THis right?
> >
> > Trunk test suite for Spur
> > Using existing cogspur r.3410
> > cp -r /var/lib/jenkins/workspace/Trunk/default/target/cogspur.r3410 /tmp/d20150812-28620-etbikj
> > image test suite
> > VM: /tmp/d20150812-28620-etbikj/cogspur.r3410/cogspurlinuxht/bin/squeak
> > /tmp/d20150812-28620-etbikj/cogspur.r3410/cogspurlinuxht/bin/squeak -version
> > /var/lib/jenkins/workspace/Trunk/default/tests.st
> > spawning command 0 with timeout 1800 seconds: "/tmp/d20150812-28620-etbikj/cogspur.r3410/cogspurlinuxht/bin/squeak" "-vm-sound-null" "-vm-display-null" "/var/lib/jenkins/workspace/Trunk/default/target/SpurPostTestTrunkImage.image" "../tests.st"
> > (Command started with PID 28643)
> > 2015-08-12T23:31:48.17+01:00: Loading Hudson build tools... from /var/lib/jenkins/workspace/Trunk/default/target/HudsonBuildTools.st
> > 2015-08-12T23:31:48.388+01:00: Running tests...
> > setsockopt: Protocol not available
> > setsockopt: Protocol not available
> > 28646:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:612:
> >
> > Recursive not understood error encountered
> >
> >
> > I bet this is ImageSegment related.
>
> It sure is.
>
> BitmapStreamTests>testMatrixTransform2x3WithImageSegment
> sends
> BitmapStreamTests>validateImageSegment
>
> Basically the ImageSegment code has been working in Spur on a hope and a prayer. The code assumes objects are allocated in chronological order and that this order is preserved, not so with Spur. So post image segment loading someObject/nextObject is used to enumerate the objects loaded. This can't work reliably in Spur. I *think* (ok I hope) that I've implemented the segment load primitive in Spur to answer an Array of the objects loaded, so that these can be explicitly enumerated.
>
> So the job is a) to check that I have indeed implemented the primitive to do this and b) to rewrite the image segment loading code in the light of this.
>
> David, this is an example of something that isn't back portable and should not be back-ported.
>
> The most strange thing is that I cannot reproduce this on my Macâ¦
> There the test does not crash the imageâ¦
>
> Well then it may be a signed/unsigned bug in image loading instead. On linux the image typically gets loaded quite high in the address space and so a good portion of the heap ends up above 0x7FFFFFFF, or negative territory if misinterpreted as signed integers. On Mac and Windows the image tends to get loaded quite low and so has to be pretty big to fall foul of signedness issues.
>
>
> Busy right now but will check tomorrow.
>
>
> Best regards
> -Tobias
>
>
> >
> > On Wed, Aug 12, 2015 at 5:11 PM, Eliot Miranda <eliot.miranda(a)gmail.com> wrote:
> > Hi Tobias,
> >
> > On Wed, Aug 12, 2015 at 12:49 PM, Tobias Pape <Das.Linux(a)gmx.de> wrote:
> >
> > On 12.08.2015, at 20:55, Eliot Miranda <eliot.miranda(a)gmail.com> wrote:
> >
> > > Hi All,
> > >
> > >
> > > Fabio's kindly done most of the changes. But some questions remain for more general discussion. See below.
> > >
> > > Fabio, thanks so much for doing this, and so quickly!
> > >
> > > On Tue, Aug 11, 2015 at 8:51 PM, Eliot Miranda <eliot.miranda(a)gmail.com> wrote:
> > > Hi All,
> > >
> > > who will update http://squeak.org/downloads/ to include the 5.0 release?
> > >
> > > a) I suggest that the 5.0 all-in-one have a line in the left-hand table that includes the 4.6 release and that it precede the 4.6 release in the list.
> > >
> > > Done.
> > >
> > >
> > > b) the Trunk link points to TrunkImage.zip which contains a non-Spur image.
> > >
> > > So this is the biggie. What should we do?
> > >
> > > - add a Trunk 5.0 build with a different link? (Noooooo)
> > >
> > > - change http://build.squeak.org/job/SqueakTrunk to build what it says (Yessss please, who can do this?)
> >
> > Done: build.squeak.org/job/Trunk/
> > But as I said several times, Spur/trunk test just crash for monthâ¦
> >
> > can you point me to the crash? I'm looking at http://build.squeak.org/job/Trunk/default/lastBuild/#showFailuresLink and see 8 test failures but no crash.
> >
> >
> > >
> > > - add a Squeak 4.6 build job? Is that even worth it any more considering 4.6 is released and stable? If it is then what should it build? David?
> > >
> > >
> > > c) Spur VMs need to be linked to by an added line in the Virtual Machines list.
> > >
> > > Not applicable. the VM links point to the root of my site so they effectively point to both old and Spur VMs.
> > >
> > >
> > > d) Spur imagers need to be included in the Image and Changes list under Custom Installation
> > >
> > > Done.
> > >
> > >
> > >
> > > e) The SqueakV50.sources file also needs to be included in the Current Sources list.
> > >
> > > Done.
> > >
> > >
> > > f) we could start a History list for the 5.0 line
> > >
> > > This is probably quite a big reorg on the page and not urgent.
> > >
> > >
> > > So there are a few things to fix before 5.0 is freely downloadable.
> > >
> > > On Tue, Aug 11, 2015 at 8:23 PM, Chris Muller <ma.chris.m(a)gmail.com> wrote:
> > > In the 17 months since Squeak 4.5 was released, a huge development
> > > effort took place to create the next generation virtual-machine for
> > > the Squeak / Pharo / Newspeak family of programming systems. Squeak
> > > is the modern incarnation of the Smalltalk-80 programming environment
> > > originally developed at the Xerox PARC.
> > >
> > > "Squeak 5" introduces this new VM and associated new memory model,
> > > collectively referred to as "Spur". Presented [1] by Eliot Miranda
> > > and Clément Béra at the 2015 International Symposium on Memory
> > > Management, this new VM affords Squeak applications a significant
> > > boost in performance and memory management. Among other
> > > optimizations, the #become operation no longer requires a memory scan.
> > > Object pinning and ephemerons are also now supported. The release
> > > notes [2] provide more details.
> > >
> > > The new memory model requires a new image file format. Although this
> > > new format results in about a 15% increased memory requirement for the
> > > same number of 4.x objects, a new segmented heap allows memory to be
> > > given back to the OS when its no longer needed, a great benefit for
> > > application servers.
> > >
> > > As forward compatibility is as important to the Squeak community as
> > > backward compatibility, Squeak 5 is delivers an image with identical
> > > content as the recent 4.6 release. Although this new Squeak 5 VM
> > > cannot open images saved under the prior 4.x Cog format, objects and
> > > code can be easily exported from the 4.x image and then imported into
> > > Squeak 5. Applications whose code runs strictly above the Smalltalk
> > > meta layer will prove remarkably compatible with the new format, most
> > > applications will require no changes whatsotever.
> > >
> > > Squeak 5 is the result of monumental effort by a tiny group of very
> > > talented people, but its also just the beginning of yet a new effort;
> > > Spur is just a stepping stone to a more ambitious goals planned over
> > > the next five years.
> > >
> > > [1] -- A Partial Read Barrier for Efficient Support of Live
> > > Object-oriented Programming
> > > http://conf.researchr.org/event/ismm-2015/ismm-2015-papers-a-partial-read-b…
> > >
> > > [2] -- Squeak 5 Release Notes
> > > http://wiki.squeak.org/squeak/6207
Aug. 20, 2015
Re: [Pharo-dev] Nautilus questions
by Dimitris Chloupis
Wow that pdf is very deep. Amazing abilities. Pity there is not much
documentation and much exposure about these features. Thank you , I am
studying it.
On Thu, Aug 20, 2015 at 2:52 PM Thierry Goubier <thierry.goubier(a)gmail.com>
wrote:
> 2015-08-20 11:51 GMT+02:00 Dimitris Chloupis <kilon.alios(a)gmail.com>:
>
>> I took a look at the class you recommended and now I see what you mean.I
>> am glad this is not deeply tied to the system browser and is something
>> other tools can use as well with ease. Very flexible too. Looks like the
>> tools only expose a fraction of the power of the environment .
>>
>
> Well, behind all things RB (the Refactoring Browser[1]) you have a
> complete model of Smalltalk code. It allows refactoring tools to work on
> live code but also on non-live code. For example, in SmaCC, which is
> implemented by the same guys, the code for a parser is generated entirely
> as refactorings (i.e. non-live code), then refactored for optimisations for
> both code performance and to minimize the number of refactorings (but still
> non-live), then split to fit the Cog Jit limits (my work!), and then
> compiled to the live system in one (large) step.
>
> But why am I saying that? To show that those environments are very
> flexible (and the tools around as well), that they may work on non-live
> code (for example, a non-loaded package) and that most of the IDE needed
> functions in practice apply on a model linked to the live code, including
> when using them through Nautilus.
>
> [1]
> http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.91.9246&rep=rep1&t…
>
>
>> Makes me wonder whether environment would be a good idea to be used as
>> some sort of namespaces.
>>
>
> The difference between an environment and a namespace is at the compiler
> level: can you make the compiler use an environment when compiling a
> method? I think that Marcus has done things in that direction recently
> (such as allowing you to add "virtual" instance variables before compiling
> a method). Also an environment never "renames" stuff, it only "restricts"
> what is visible.
>
> At the programmer level, a Namespace is the ability to have two pieces of
> code where the class named Morph is an entirely different class, and that
> you can't understand the code anymore because you're never sure of what a
> global refers to (since it may be renamed via an import statement)... Some
> will say it's a feature ;)
>
> Thierry
>
>
>>
>> On Thu, Aug 20, 2015 at 9:08 AM Thierry Goubier <
>> thierry.goubier(a)gmail.com> wrote:
>>
>>> Le 19/08/2015 20:26, Dimitris Chloupis a écrit :
>>> >
>>> >
>>> > On Wed, Aug 19, 2015 at 5:51 PM Sean P. DeNigris <
>>> sean(a)clipperadams.com
>>> > <mailto:sean@clipperadams.com>> wrote:
>>> >
>>> > kilon.alios wrote
>>> >
>>> >
>>> > For example, let's say your project has a class that implements a
>>> > generically-named method, like #asMorph. If you try to rename that
>>> > method
>>> > via Refactoring, Pharo will try to rename all #asMorph methods, and
>>> > update
>>> > all senders, in the entire system, not just yours. But if you
>>> scope the
>>> > browser first to your package or class, you can restrict the
>>> > environment to
>>> > which the refactoring is applied
>>> >
>>> >
>>> > This sounds useful indeed. Is just the browser aware of the scope or is
>>> > also the pharo environment aware of the scope too ? It would be nice if
>>> > the scope could expand to include multiple packages , or is this
>>> > something left to groups ?
>>>
>>> What is happening is that many commands linked to the IDE (refactorings,
>>> searches) have an environment entity. By default, this environment is
>>> Smalltalk, but it can be a subset of it, and any subset of it.
>>>
>>> Have a look into the RBBrowserEnvironment class and subclasses and you
>>> will see all the variants. For example, a RBPackageEnvironment will
>>> scope to one or multiple packages.
>>>
>>> Thierry
>>>
>>>
>>>
>>>
Aug. 20, 2015