Marcel Taeumel uploaded a new version of KernelTests to project The Trunk:
http://source.squeak.org/trunk/KernelTests-mt.425.mcz
==================== Summary ====================
Name: KernelTests-mt.425
Author: mt
Time: 2 June 2022, 4:50:53.645188 pm
UUID: 40d8ed98-0cd5-794a-b71f-0201c1d44ec0
Ancestors: KernelTests-mt.424, KernelTests-cmm.423
Merge KernelTests-cmm.423.
#testOutOfMemorySignalExtreme can be stressful on a system that running the Squeak VM unconstrained (which is the default). Therefore, only run it if the vm is explicitly constrained.
=============== Diff against KernelTests-mt.424 ===============
Item was changed:
----- Method: AllocationTest>>testOutOfMemorySignalExtreme (in category 'tests') -----
testOutOfMemorySignalExtreme
+ "Try to allocate more memory than permitted by the -memory vm argument, and check whether the expected error is signaled. Note that current (2017) Spur VMs fail in #new: and #basicNew: with #'bad argument' if given other than a non-negative SmallInteger."
+ Smalltalk heapMemoryLimit ifNotNil:
+ [ : bytes |
+ self
+ should: [ Array new: (bytes // Smalltalk wordSize) + 100 ]
+ raise: OutOfMemory, Error
+ withExceptionDo:
+ [:ex|
+ ex class == Error ifTrue:
+ [self assert: [ex messageText includesSubstring: 'basicNew: with invalid argument' ]]]]!
- "Try to allocate a ridiculous amount of memory and check whether the expected error is signaled. Call Eliot when this test fails, he want your machine. :-)
-
- Note that current (2017) Spur VMs fail in #new: and #basicNew: with #'bad argument' if given other than a non-negative SmallInteger.
-
- Also note that this test can be quite stressful to your machine depending on how your operating system allocates the required memory behind the curtains. Better not triggering some robot fetching a tape from somewhere..."
-
- | sz |
- sz := 1024*1024*1024*1024. "= 1 TiB"
- self should: [Array new: sz]
- raise: OutOfMemory, Error
- withExceptionDo:
- [:ex|
- ex class == Error ifTrue:
- [self assert: [ex messageText includesSubstring: 'basicNew: with invalid argument']]]!
Marcel Taeumel uploaded a new version of Installer-Core to project The Trunk:
http://source.squeak.org/trunk/Installer-Core-ct.441.mcz
==================== Summary ====================
Name: Installer-Core-ct.441
Author: ct
Time: 3 October 2021, 3:46:11.734874 pm
UUID: 83088378-3d26-e946-b7e2-8f1cf03c3717
Ancestors: Installer-Core-mt.440
Extend documentation of Installer on how to install packages that are defined under the package-definitions category.
=============== Diff against Installer-Core-mt.440 ===============
Item was changed:
Object subclass: #Installer
instanceVariableNames: 'answers packages messagesToSuppress useFileIn noiseLevel'
classVariableNames: 'InstallerBindings IsSetToTrapErrors Repositories SkipLoadingTests ValidationBlock'
poolDictionaries: ''
category: 'Installer-Core'!
Installer class
instanceVariableNames: 'localRepository'!
+ !Installer commentStamp: 'ct 10/3/2021 15:45' prior: 0!
- !Installer commentStamp: 'tpr 8/25/2019 18:37' prior: 0!
Installer is a mechanism for listing, examining and installing software from a variety of sources. It is intended to help in building install scripts for package setups etc.
Currently it can use
- files; a file specified by a filename. Relative filenames will be treated as based form the current default directory. See InstallerFile.
- urls; a file specified by a url or a script embedded in a webpage. See InstallerWeb.
- squeakmap; see InstallerSqueakMap
- monticello; by ftp or http access, or a local directory, or a Magma or GOODS database. There is a list of shortcuts to popular repositories in this class protocol 'repositories'. See InstallerMonticello.
- mantis; accessing code attached to a mantis bug report. See InstallerMantis.
Simple example usages -
+ Installer new merge: #osProcess.
Installer squeakmap install: 'DynamicBindings'.
Installer squeakmap search: '*scratch'.
Installer squeakmap search: 'author:*rowledge'.
Installer squeaksource project: 'ss2'; install: 'TinyWiki'.
Installer ss project: 'Installer'; browse: 'Installer-Core'.
useFileIn - flag to load source.st rather than using Monticello!
Installer class
instanceVariableNames: 'localRepository'!
Marcel Taeumel uploaded a new version of Installer-Core to project The Trunk:
http://source.squeak.org/trunk/Installer-Core-mt.448.mcz
==================== Summary ====================
Name: Installer-Core-mt.448
Author: mt
Time: 2 June 2022, 4:46:57.950188 pm
UUID: f96d06a4-61c9-5442-b7de-7f6b52079900
Ancestors: Installer-Core-ct.447, Installer-Core-ct.441
Merge Installer-Core-ct.441. Cherry pick fixes from tcj.440 (from 2020) and lrnp.447.
=============== Diff against Installer-Core-ct.447 ===============
Item was changed:
Object subclass: #Installer
instanceVariableNames: 'answers packages messagesToSuppress useFileIn noiseLevel'
classVariableNames: 'InstallerBindings IsSetToTrapErrors Repositories SkipLoadingTests ValidationBlock'
poolDictionaries: ''
category: 'Installer-Core'!
Installer class
instanceVariableNames: 'localRepository'!
+ !Installer commentStamp: 'ct 10/3/2021 15:45' prior: 0!
- !Installer commentStamp: 'tpr 8/25/2019 18:37' prior: 0!
Installer is a mechanism for listing, examining and installing software from a variety of sources. It is intended to help in building install scripts for package setups etc.
Currently it can use
- files; a file specified by a filename. Relative filenames will be treated as based form the current default directory. See InstallerFile.
- urls; a file specified by a url or a script embedded in a webpage. See InstallerWeb.
- squeakmap; see InstallerSqueakMap
- monticello; by ftp or http access, or a local directory, or a Magma or GOODS database. There is a list of shortcuts to popular repositories in this class protocol 'repositories'. See InstallerMonticello.
- mantis; accessing code attached to a mantis bug report. See InstallerMantis.
Simple example usages -
+ Installer new merge: #osProcess.
Installer squeakmap install: 'DynamicBindings'.
Installer squeakmap search: '*scratch'.
Installer squeakmap search: 'author:*rowledge'.
Installer squeaksource project: 'ss2'; install: 'TinyWiki'.
Installer ss project: 'Installer'; browse: 'Installer-Core'.
useFileIn - flag to load source.st rather than using Monticello!
Installer class
instanceVariableNames: 'localRepository'!
Item was changed:
----- Method: Installer class>>ensureRecentMetacello (in category 'scripts') -----
ensureRecentMetacello
"Copied and adapted from https://github.com/Metacello/metacello/blob/master/README.md"
| metacello |
((Smalltalk classNamed: #WebClient)
ifNil: [ false ]
ifNotNil: [ :webClient |
[ (webClient httpHead: 'https://github.com') isSuccess ]
on: Error
do: [ false ] ])
ifFalse: [ ^self inform: 'Could not connect to "https://github.com".\\You need an internet connection and SSL support\to install (or update) Metacello.\\Please fix those issues and try again.' translated withCRs ].
self isMetacelloInstalled ifFalse: [
| response |
"Download base archive of Metacello."
response := WebClient httpGet: 'https://files.squeak.org/metacello/metacello-squeak60.sar'.
response isSuccess ifFalse: [
self error: ('Could not download Metacello archive: {1}' translated format: {response status})].
"Prepare a clean environment and install it."
+ Smalltalk globals removeKey: #Metacello ifAbsent: ["Ignore prior attempts."].
- Smalltalk globals removeKey: #Metacello.
SARInstaller new fileInFrom: response content asByteArray readStream].
metacello := Smalltalk classNamed: #Metacello.
"Now load latest version of Metacello"
metacello new
baseline: 'Metacello';
repository: 'github://Metacello/metacello:master/repository';
get.
metacello new
baseline: 'Metacello';
repository: 'github://Metacello/metacello:master/repository';
load: #('default' 'Metacello-Help').!
Item was changed:
----- Method: Installer class>>isMetacelloInstalled (in category 'scripts') -----
isMetacelloInstalled
"Squeak is shipped with the global #Metacello referring to lightweight MetacelloStub. After the first message is sent, the latest Metacello is installed, replacing the stub."
+
+ ^ (Smalltalk at: #Metacello ifAbsent: nil)
+ ifNil: [false "Installation was interrupted."]
+ ifNotNil: [:mcClass | mcClass ~= MetacelloStub]!
- ^ (Smalltalk at: #Metacello) ~= MetacelloStub!
Marcel Taeumel uploaded a new version of KernelTests to project The Treated Inbox:
http://source.squeak.org/treated/KernelTests-lrnp.423.mcz
==================== Summary ====================
Name: KernelTests-lrnp.423
Author: lrnp
Time: 23 May 2022, 11:10:15.631043 pm
UUID: 497dd2b0-6f3e-438b-81a9-4ecd50b78268
Ancestors: KernelTests-nice.422
remove extreme memory test
It abuses system resources and can cause other programs to become corrupt if the pagefile fills the hard drive without at least 1 TB dedicated to RAM paging.
=============== Diff against KernelTests-nice.422 ===============
Item was removed:
- ----- Method: AllocationTest>>testOutOfMemorySignalExtreme (in category 'tests') -----
- testOutOfMemorySignalExtreme
- "Try to allocate a ridiculous amount of memory and check whether the expected error is signaled. Call Eliot when this test fails, he want your machine. :-)
-
- Note that current (2017) Spur VMs fail in #new: and #basicNew: with #'bad argument' if given other than a non-negative SmallInteger.
-
- Also note that this test can be quite stressful to your machine depending on how your operating system allocates the required memory behind the curtains. Better not triggering some robot fetching a tape from somewhere..."
-
- | sz |
- sz := 1024*1024*1024*1024. "= 1 TiB"
- self should: [Array new: sz]
- raise: OutOfMemory, Error
- withExceptionDo:
- [:ex|
- ex class == Error ifTrue:
- [self assert: [ex messageText includesSubstring: 'basicNew: with invalid argument']]]!
Tony Garnock-Jones uploaded a new version of Network to project The Trunk:
http://source.squeak.org/trunk/Network-tonyg.260.mcz
==================== Summary ====================
Name: Network-tonyg.260
Author: tonyg
Time: 2 June 2022, 1:38:03.620567 pm
UUID: 56f1d277-cb0f-4d18-8022-b387d4be3f83
Ancestors: Network-pre.259
Repair error messages: the `printString` had been lost in the most recent change, leading to unreadable output when a hostAddress like #[127 0 0 1] was in use.
=============== Diff against Network-pre.259 ===============
Item was changed:
+ SystemOrganization addCategory: #'Network-UUID'!
+ SystemOrganization addCategory: #'Network-Url'!
+ SystemOrganization addCategory: #'Network-URI'!
+ SystemOrganization addCategory: #'Network-RemoteDirectory'!
+ SystemOrganization addCategory: #'Network-Protocols'!
SystemOrganization addCategory: #'Network-Exceptions'!
- SystemOrganization addCategory: #'Network-Kernel'!
SystemOrganization addCategory: #'Network-MailSending'!
+ SystemOrganization addCategory: #'Network-Kernel'!
- SystemOrganization addCategory: #'Network-Protocols'!
SystemOrganization addCategory: #'Network-RFC822'!
- SystemOrganization addCategory: #'Network-RemoteDirectory'!
- SystemOrganization addCategory: #'Network-URI'!
- SystemOrganization addCategory: #'Network-UUID'!
- SystemOrganization addCategory: #'Network-Url'!
Item was changed:
----- Method: Socket>>connectTo:port:waitForConnectionFor: (in category 'connection open/close') -----
connectTo: hostAddress port: port waitForConnectionFor: timeout
"Initiate a connection to the given port at the given host
address. Waits until the connection is established or time outs."
self connectNonBlockingTo: hostAddress port: port.
self
waitForConnectionFor: timeout
+ ifTimedOut: [ConnectionTimedOut signal: ('Cannot connect to {1}' translated format: {hostAddress printString})]
+ ifRefused: [ConnectionRefused signal: ('Cannot connect to {1}' translated format: {hostAddress printString})]!
- ifTimedOut: [ConnectionTimedOut signal: ('Cannot connect to {1}' translated format: {hostAddress})]
- ifRefused: [ConnectionRefused signal: ('Cannot connect to {1}' translated format: {hostAddress})]!
Marcel Taeumel uploaded a new version of Graphics to project The Trunk:
http://source.squeak.org/trunk/Graphics-mt.518.mcz
==================== Summary ====================
Name: Graphics-mt.518
Author: mt
Time: 1 June 2022, 12:42:42.383329 pm
UUID: 39ca7519-8370-4a49-8b83-1719a4bf7008
Ancestors: Graphics-mt.517
Fixes X11 issue with XResizeWindow directly followed by XGetWindowAttributes. I think that it makes sense to address this in the image unless somebody can propose a useful fix like "sync" or "wait a frame" in the VM. See platforms/unix/vm-display-X11/sqUnixX11.c.
=============== Diff against Graphics-mt.517 ===============
Item was changed:
----- Method: DisplayScreen class>>hostWindowExtent: (in category 'host window access') -----
hostWindowExtent: aPoint
+ [self
- ^ [self
primitiveWindow: self hostWindowIndex
width: aPoint x
height: aPoint y]
on: Error "primitive failed such as in headless mode"
+ do: [:ex | "ignore" ].
+
+ Smalltalk windowSystemName = 'X11'
+ ifTrue: [100 milliSeconds wait].
+
+ ^ self actualScreenSize!
- do: [:ex | Display extent]!