Nicolas Cellier uploaded a new version of Kernel to project The Treated Inbox:
http://source.squeak.org/treated/Kernel-ct.1412.mcz
==================== Summary ====================
Name: Kernel-ct.1412
Author: ct
Time: 7 September 2021, 11:54:32.77151 pm
UUID: ca064a0e-13a5-f64f-ac9e-91ae045569a7
Ancestors: Kernel-eem.1408
Adds non-performant but existing implementation of #isPowerOfTwo on Number. Now 16s isPowerOfTwo works as expected, too. Complements Kernel-nice.1377.
=============== Diff against Kernel-eem.1408 ===============
Item was added:
+ ----- Method: Number>>isPowerOfTwo (in category 'testing') -----
+ isPowerOfTwo
+
+ ^ self strictlyPositive and: [(self log2 \\ 1) isZero]!
Nicolas Cellier uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-nice.1465.mcz
==================== Summary ====================
Name: Kernel-nice.1465
Author: nice
Time: 6 May 2022, 3:59:14.501799 pm
UUID: c11f855b-089e-0a43-8b8b-ddfa63bd092b
Ancestors: Kernel-nice.1464, Kernel-jar.1446
Merge Kernel-jar.1446 (re-signal an Exception)
=============== Diff against Kernel-nice.1464 ===============
Item was changed:
----- Method: Exception>>signal (in category 'signaling') -----
signal
+ "Ask ContextHandlers in the sender chain to handle this signal. The default is to execute and return my defaultAction.
+ Sending #signal to an already signaled exception generates a new exception of the same type with the same messageText"
- "Ask ContextHandlers in the sender chain to handle this signal. The default is to execute and return my defaultAction."
+ signalContext ifNotNil: [^self class signal: messageText].
- signalContext ifNotNil: [^self outer]. "re-signalling an already signalled exception is equivalent to sending #outer"
signalContext := thisContext contextTag.
^(thisContext nextHandlerContextForSignal: self) handleSignal: self!
Nicolas Cellier uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-jar.1446.mcz
==================== Summary ====================
Name: Kernel-jar.1446
Author: jar
Time: 6 February 2022, 11:37:44.367834 am
UUID: 8598d7f7-f9c4-b648-b9da-378d98b37ae2
Ancestors: Kernel-mt.1443
fix Exception >> signal behavior when signaling an already signaled exception; see discussion in http://lists.squeakfoundation.org/pipermail/squeak-dev/2022-February/218861…
Originally there was no check if the receiver has already been signaled which was a bug (subsequent #signal sends to an already signaled exception lead to weird errors); last year I suggested making such a send equivalent to sending #outer but that's a poor fix which is not even compliant with ANSI; this latest approach is both compliant and makes the following example work and pick up the ZeroDivide handler as one might expect:
[1/0] on: Error do: [:ex |
[ex signal] on: ZeroDivide do: [Transcript show: #ZeroDivide]
]
=============== Diff against Kernel-mt.1443 ===============
Item was changed:
----- Method: Exception>>signal (in category 'signaling') -----
signal
+ "Ask ContextHandlers in the sender chain to handle this signal. The default is to execute and return my defaultAction.
+ Sending #signal to an already signaled exception generates a new exception of the same type with the same messageText"
- "Ask ContextHandlers in the sender chain to handle this signal. The default is to execute and return my defaultAction."
+ signalContext ifNotNil: [^self class signal: messageText].
- signalContext ifNotNil: [^self outer]. "re-signalling an already signalled exception is equivalent to sending #outer"
signalContext := thisContext contextTag.
^(thisContext nextHandlerContextForSignal: self) handleSignal: self!
Marcel Taeumel uploaded a new version of Compression to project The Trunk:
http://source.squeak.org/trunk/Compression-xw.63.mcz
==================== Summary ====================
Name: Compression-xw.63
Author: xw
Time: 5 May 2022, 9:37:13.986596 pm
UUID: 039074bd-e85c-124a-ba1a-f865a6237d32
Ancestors: Compression-tpr.62
Add `CompressedSourceStream>>#skip:`, to override implementation of `PositionableStream>>#skip:`, which is not compatible with usage of instance variable `position` in `CompressedSourceStream`
Related to https://github.com/squeak-smalltalk/squeak-object-memory/issues/17
=============== Diff against Compression-tpr.62 ===============
Item was added:
+ ----- Method: CompressedSourceStream>>skip: (in category 'positioning') -----
+ skip: anInteger
+ self position: self position + anInteger!
Marcel Taeumel uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-xw.1349.mcz
==================== Summary ====================
Name: System-xw.1349
Author: xw
Time: 6 May 2022, 8:18:22.062762 am
UUID: bb902c1b-a21e-9947-9757-e9ddfd17b77f
Ancestors: System-mt.1348
Preserve timestamps for classes with unicode names when filing out
=============== Diff against System-mt.1348 ===============
Item was changed:
----- Method: PositionableStream>>copyPreamble:from:at: (in category '*System-Changes-fileIn/Out') -----
copyPreamble: preamble from: aStream at: pos
"Look for a changeStamp for this method by peeking backward.
Write a method preamble, with that stamp if found."
| terminator last50 stamp i |
terminator := $!!.
"Look back to find stamp in old preamble, such as...
Polygon methodsFor: 'private' stamp: 'di 6/25/97 21:42' prior: 34957598!! "
aStream position: pos.
aStream backChunk. "to beginning of method"
+ [(last50 := aStream backChunk) beginsWith: ']lang['] whileTrue. "to get preamble"
- last50 := aStream backChunk. "to get preamble"
aStream position: pos.
stamp := String new.
(i := last50
findLastOccurrenceOfString: 'stamp:'
startingAt: 1) > 0 ifTrue:
[ stamp := (last50
copyFrom: i + 8
to: last50 size) copyUpTo: $' ].
"Write the new preamble, with old stamp if any."
self
cr;
nextPut: terminator.
self nextChunkPut: (String streamContents:
[ :strm |
strm nextPutAll: preamble.
stamp size > 0 ifTrue:
[ strm
nextPutAll: ' stamp: ';
print: stamp ] ]).
self cr!
Christoph Thiede uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-ct.461.mcz
==================== Summary ====================
Name: Compiler-ct.461
Author: ct
Time: 1 November 2021, 10:25:20.583439 pm
UUID: 54d8cf25-d890-4249-a344-ad0bac974d38
Ancestors: Compiler-eem.460
Revise description of #prefAllowUnicharSymbol. '#,' is indeed allowed always (#(1) perform: #, with: #(2)) but '#' (pure hash) is not.
=============== Diff against Compiler-eem.460 ===============
Item was changed:
----- Method: Scanner class>>prefAllowUnicharSymbol (in category 'preferences') -----
prefAllowUnicharSymbol
"Accessor for the system-wide preference"
+ <preference: 'Allow symbols with unique character like #.'
- <preference: 'Allow symbols with unique character like #,'
category: 'Compiler'
+ description: 'When true, the historical syntax #., #,, or # is allowed.'
- description: 'When true, the historical syntax #, #; or #. is allowed.'
type: #Boolean>
^AllowUnicharSymbol ifNil: [false]!
Christoph Thiede uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-ct.1988.mcz
==================== Summary ====================
Name: Morphic-ct.1988
Author: ct
Time: 5 May 2022, 8:40:37.767426 pm
UUID: ecec997c-74ce-0e45-bcd2-ed4c49f26fa2
Ancestors: Morphic-ct.1987, Morphic-ct.1957
Merges Morphic-ct.1957 (active world during stepping and displaying). Revised according to Marcel's feedback to control the active world from the world state.
=============== Diff against Morphic-ct.1987 ===============
Item was changed:
----- Method: WorldState>>doOneCycleNowFor: (in category 'update cycle') -----
doOneCycleNowFor: aWorld
"Immediately do one cycle of the interaction loop.
This should not be called directly, but only via doOneCycleFor:"
| capturingGesture |
DisplayScreen checkForNewScreenScaleFactor; checkForNewScreenSize.
capturingGesture := false.
"self flag: #bob. " "need to consider remote hands in lower worlds"
"process user input events"
LastCycleTime := Time millisecondClockValue.
self handsDo: [:hand |
hand becomeActiveDuring: [
hand processEvents.
capturingGesture := capturingGesture or: [hand isCapturingGesturePoints]]].
"The gesture recognizer needs enough points to be accurate.
Therefore morph stepping is disabled while capturing points for the recognizer"
capturingGesture ifFalse: [
+ aWorld becomeActiveDuring: [
+ aWorld runStepMethods "there are currently some variations here".
+ self displayWorldSafely: aWorld]].!
- aWorld runStepMethods. "there are currently some variations here"
- self displayWorldSafely: aWorld].!