Christoph Thiede uploaded a new version of Collections to project The Trunk:
http://source.squeak.org/trunk/Collections-ct.1003.mcz
==================== Summary ====================
Name: Collections-ct.1003
Author: ct
Time: 2 April 2022, 1:46:18.637455 pm
UUID: 8f588405-6ab6-2342-8fe8-ebdaff0733ea
Ancestors: Collections-ul.1002
Corrects merge slip from Collections-ul.1001 which had reverted Collections-ct.999. Corrects the description of nil, true, and false within literal variables. See: http://lists.squeakfoundation.org/pipermail/squeak-dev/2022-April/219714.ht….
=============== Diff against Collections-ul.1002 ===============
Item was changed:
----- Method: Text class>>codeSample (in category 'filler text') -----
codeSample
+ self flag: #linebreaks. "Samples are used in FontImporterTool and must contain manual linebreaks (visually stable example texts per line)."
^ 'exampleWithNumber: x
+ "A method that illustrates every part of Smalltalk method syntax
+ including primitives. It has unary, binary, and keyboard messages;
+ declares arguments and temporaries; accesses a global variable
+ (but not an instance variable); uses literals (array, nested array,
+ character, symbol, string, integer, float, scaled decimal, and byte
+ array); uses the pseudo variables nil, true, false, self, super, and
+ thisContext; shows that within a literal array nil, true, and false are
+ still pseudo variables; and has sequence, assignment, return,
+ cascade, and tuple (array) creation. It has both zero argument
+ and one argument blocks, and has a block temporary."
- "A method that illustrates every part of Smalltalk method syntax including primitives. It has unary, binary, and keyboard messages; declares arguments and temporaries; accesses a global variable (but not an instance variable); uses literals (array, nested array, character, symbol, string, integer, float, scaled decimal, and byte array); uses the pseudo variables nil, true, false, self, super, and thisContext; shows that within a literal array nil, true, and false are symbols not pseudo variables; and has sequence, assignment, return, cascade, and tuple (array) creation. It has both zero argument and one argument blocks, and has a block temporary."
<primitive: ''primitiveCopyBits'' module: #BitBltPlugin error: ec>
| y |
true & false not & (nil isNil) ifFalse: [self halt].
y := self size + super size.
#($a #a ''a'' "a" (1 1.0 1.0s2) nil true false), { #[65]. thisContext. nil. true. false }
do: [ :each | | class |
class := each class.
Transcript
show: (class name);
show: '' ''].
^ x < y'!
Christoph Thiede uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-ct.1333.mcz
==================== Summary ====================
Name: System-ct.1333
Author: ct
Time: 1 April 2022, 1:08:01.825996 pm
UUID: f206069e-de00-fb40-b100-69e1871c1490
Ancestors: System-ul.1332
Merges robust-forceChangesToDisk.1.cs:
Increases the robustness of Smalltalk forceChangesToDisk. When this method is interrupted, make sure to maintain the invariant that the source file is always opened and set to the right position. In the course of this, also makes StandardFileStream>>#open:forWrite: more robust. Adds a smoke/regression test.
For context: Interrupting Smalltalk forceChangesToDisk is not a fictional scenario. In combination with a slow file system access, I could reproduce this many times when running StringTest>>#testPercentEncodingJa with a too small timeout.
For more infromation, see: http://lists.squeakfoundation.org/pipermail/squeak-dev/2022-March/219577.ht…
=============== Diff against System-ul.1332 ===============
Item was changed:
----- Method: SmalltalkImage>>forceChangesToDisk (in category 'sources, changes log') -----
forceChangesToDisk
"Ensure that the changes file has been fully written to disk by closing and re-opening it. This makes the system more robust in the face of a power failure or hard-reboot."
| changesFile |
changesFile := SourceFiles at: 2.
(changesFile isKindOf: FileStream) ifTrue: [
changesFile flush.
+ SecurityManager default hasFileAccess
+ ifTrue: [
+ [changesFile close.
+ changesFile open: changesFile name forWrite: true.
+ changesFile setToEnd]
+ ifCurtailed: [
+ "Ensure that the changes file is always reopened correctly."
+ changesFile closed ifFalse: [changesFile close].
+ changesFile open: changesFile name forWrite: true.
+ changesFile setToEnd]]
+ ifFalse: [changesFile setToEnd]].!
- SecurityManager default hasFileAccess ifTrue:[
- changesFile close.
- changesFile open: changesFile name forWrite: true].
- changesFile setToEnd.
- ].
- !