Christoph Thiede uploaded a new version of SUnit to project The Trunk:
http://source.squeak.org/trunk/SUnit-ct.122.mcz
==================== Summary ====================
Name: SUnit-ct.122
Author: ct
Time: 14 December 2019, 1:15:22.187841 am
UUID: fc845d69-2525-9440-b4c0-4da1e1f4f1cd
Ancestors: SUnit-mt.120
Add check for a TestCase whether it is still installed (that is, the test selector has not been removed)
=============== Diff against SUnit-mt.120 ===============
Item was added:
+ ----- Method: TestCase>>isInstalled (in category 'testing') -----
+ isInstalled
+
+ ^ self respondsTo: testSelector!
Christoph Thiede uploaded a new version of SUnitGUI to project The Trunk:
http://source.squeak.org/trunk/SUnitGUI-ct.80.mcz
==================== Summary ====================
Name: SUnitGUI-ct.80
Author: ct
Time: 20 March 2020, 7:09:46.074237 pm
UUID: 971ba1c3-02e8-d14c-bc4a-7cc09fa52244
Ancestors: SUnitGUI-mt.79
Reverts SUnitGUI-cmm.78 which was considered unpleasant by the majority of reviewers (read here: http://forum.world.st/The-Trunk-SUnitGUI-cmm-78-mcz-td5108915.html).
=============== Diff against SUnitGUI-mt.79 ===============
Item was changed:
----- Method: TestRunner>>representsSameBrowseeAs: (in category 'accessing-ui') -----
representsSameBrowseeAs: anotherModel
+ ^ self class = anotherModel class
+ and: [ classesSelected = anotherModel classesSelected ]!
- ^ true!
Christoph Thiede uploaded a new version of 60Deprecated to project The Trunk:
http://source.squeak.org/trunk/60Deprecated-ct.102.mcz
==================== Summary ====================
Name: 60Deprecated-ct.102
Author: ct
Time: 10 January 2022, 7:00:18.397518 pm
UUID: b8b23c62-95ac-7749-87bb-aaebee832983
Ancestors: 60Deprecated-mt.101
Complements SUnit-ct.134 (SUnit-ct.133).
=============== Diff against 60Deprecated-mt.101 ===============
Item was added:
+ ----- Method: TestCase>>openDebuggerOnFailingTestMethod (in category '*60Deprecated-running') -----
+ openDebuggerOnFailingTestMethod
+
+ self deprecated: 'ct: Use #debugAsFailure'.
+
+ "SUnit has halted one step in front of the failing test method. Step over the 'self halt' and
+ send into 'self perform: testSelector' to see the failure from the beginning"
+ self
+ halt;
+ performTest!
Item was added:
+ ----- Method: TestCase>>runCaseAsFailure: (in category '*60Deprecated-running') -----
+ runCaseAsFailure: aSemaphore
+
+ self deprecated: 'ct: Use #runCaseWithoutTimeout and #ensure:'.
+ ^ [self runCaseWithoutTimeout]
+ ensure: [aSemaphore signal]!
David T. Lewis uploaded a new version of Sound to project The Trunk:
http://source.squeak.org/trunk/Sound-ct.71.mcz
==================== Summary ====================
Name: Sound-ct.71
Author: ct
Time: 1 September 2020, 2:07:15.07999 am
UUID: 0d91a1bf-41cb-834c-ab0c-fa2ad832e408
Ancestors: Sound-nice.69
Fixes wave sound streaming on non-filestream objects. The endianness was inverted because #int16: already uses Big Endian. This did not sound well - listen yourself in an unpatched image: :-)
array := ByteArray streamContents: [:stream |
PluckedSound bachFugue storeWAVSamplesOn: stream].
(FileStream fileNamed: 'bachFugue.wav') binary in: [:stream |
[array do: [:ea | stream nextPut: ea]]
ensure: [stream close]].
(SampledSound fromWaveFileNamed: 'bachFugue.wav') play.
Please review in detail as this is one of my first contacts to the Sound system!
=============== Diff against Sound-nice.69 ===============
Item was changed:
----- Method: AbstractSound>>storeSampleCount:bigEndian:on: (in category 'file i/o') -----
storeSampleCount: samplesToStore bigEndian: bigEndianFlag on: aBinaryStream
"Store my samples on the given stream at the current SoundPlayer sampling rate. If bigFlag is true, then each 16-bit sample is stored most-significant byte first (AIFF files), otherwise it is stored least-significant byte first (WAV files). If self isStereo is true, both channels are stored, creating a stereo file. Otherwise, only the left channel is stored, creating a mono file."
+ | bufSize stereoBuffer reverseBytes streamDirect |
- | bufSize stereoBuffer reverseBytes |
self reset.
bufSize := (2 * self samplingRate rounded) min: samplesToStore. "two second buffer"
stereoBuffer := SoundBuffer newStereoSampleCount: bufSize.
+ streamDirect := aBinaryStream isKindOf: StandardFileStream.
+ reverseBytes := (bigEndianFlag xor: Smalltalk isBigEndian) xor: streamDirect not.
- reverseBytes := bigEndianFlag ~= (Smalltalk isBigEndian).
'Storing audio...'
displayProgressFrom: 0 to: samplesToStore during: [:bar | | remaining out |
remaining := samplesToStore.
[remaining > 0] whileTrue: [
bar value: samplesToStore - remaining.
stereoBuffer primFill: 0. "clear the buffer"
self playSampleCount: (bufSize min: remaining) into: stereoBuffer startingAt: 1.
out := self isStereo
ifTrue: [stereoBuffer]
ifFalse: [stereoBuffer extractLeftChannel].
reverseBytes ifTrue: [out reverseEndianness].
+ streamDirect
- (aBinaryStream isKindOf: StandardFileStream)
ifTrue: [ "optimization for files: write sound buffer directly to file"
aBinaryStream next: (out size // 2) putAll: out startingAt: 1] "size in words"
ifFalse: [ "for non-file streams:"
1 to: out monoSampleCount do: [:i | aBinaryStream int16: (out at: i)]].
+ remaining := remaining - bufSize]].!
- remaining := remaining - bufSize]].
- !
Chris Muller uploaded a new version of Morphic to project The Inbox:
http://source.squeak.org/inbox/Morphic-cmm.1839.mcz
==================== Summary ====================
Name: Morphic-cmm.1839
Author: cmm
Time: 9 January 2022, 6:58:59.881673 pm
UUID: a4b7b103-923c-466b-b6d6-fc81c2dfe0ae
Ancestors: Morphic-mt.1837
Browsing senders from the code pane must never insert the sending messages into the Trace in the upper pane, because it would no longer represent a correct trace of execution flow.
=============== Diff against Morphic-mt.1837 ===============
Item was changed:
----- Method: TextEditor>>sendersOfIt (in category 'menu messages') -----
sendersOfIt
"Open a senders browser on the selected selector"
self lineSelectAndEmptyCheck: [^ self].
+ self selectedSelector ifNotNil:
+ [:aSelector| ^self systemNavigation browseAllCallsOn: aSelector].
+ self selectedLiteral ifNotNil:
+ [:aLiteral| ^self systemNavigation browseAllCallsOn: aLiteral].
+ morph flash!
- self selectedSelector ifNotNil: [:aSelector |
- ^ self model browseAllCallsOn: aSelector].
- self selectedLiteral ifNotNil: [:aLiteral |
- ^ self model browseAllCallsOn: aLiteral].
- morph flash.!