Planet Squeak Code

blogs about Squeak, Pharo, Croquet and family
planet squeak - planet squeak es - planet squeak jp - planet croquet - planet squeak code - planet smalltalk

July 17, 2021

source.squeak.org

Kernel-ct.1408

Proposal: Show nested exception in the description of BrokenPromise.

July 17, 2021 06:21 PM

July 16, 2021

source.squeak.org

VMMaker.oscog-eem.2987

Get rid of a compilation warning on 64 bits in the RePlugin.

by Eliot Miranda (eliot.miranda@gmail.com) at July 16, 2021 05:01 PM

July 15, 2021

squeaksource.com

System.V3-dtl.1238

Name: System-mt.1238
Author: mt
Time: 6 July 2021, 2:31:04.816497 pm
UUID: 27e22442-c577-47a1-9746-f2078e38154c
Ancestors: System-eem.1237

Adds query to access last-modified timestamp for TravisCI badge.

by Dave Lewis (lewis@mail.msen.com) at July 15, 2021 11:42 PM

Kernel.V3-dtl.1407

Name: Kernel-eem.1407
Author: eem
Time: 9 July 2021, 2:46:18.688883 pm
UUID: 48a520fa-d6a2-44fa-8508-3405e7e0b8b9
Ancestors: Kernel-mt.1406

Have scanForInstructionSequence: descend into full blocks. Eliminate cases handled by otherwise clause in installVirtualKeyTable. Add error code to resue primitive invocation.

by Dave Lewis (lewis@mail.msen.com) at July 15, 2021 11:32 PM

Kernel.V3-dtl.1406

Name: Kernel-mt.1406
Author: mt
Time: 5 July 2021, 10:40:27.254527 am
UUID: d14ccb5a-8347-9b44-b428-27b8e64b8637
Ancestors: Kernel-mt.1405

To Delay, adds #busyWait for more precise waits on delays shorter than 50 milliseconds.

Complements Chronology-Core-mt.71.

by Dave Lewis (lewis@mail.msen.com) at July 15, 2021 11:30 PM

Collections.V3-dtl.952

Name: Collections-mt.952
Author: mt
Time: 5 July 2021, 11:33:42.546805 am
UUID: f848913c-5ee8-e349-8b6d-3646fb60c7b0
Ancestors: Collections-ct.951

Now that the simple/faster version of #take: was pushed down to ReadStream, do the same for ReadWriteStream.

Note that we still have to figure out whether we can set the readLimit from the beginning in those ReadWriteStreams.

Also see:
http://lists.squeakfoundation.org/pipermail/squeak-dev/2021-June/215910.html
http://lists.squeakfoundation.org/pipermail/squeak-dev/2021-July/215958.html

by Dave Lewis (lewis@mail.msen.com) at July 15, 2021 11:27 PM

Collections.V3-dtl.951

Name: Collections-ct.951
Author: ct
Time: 30 June 2021, 11:28:40.378415 pm
UUID: 20041ac2-26ea-5547-a7df-b98ad4b192d6
Ancestors: Collections-mt.945

Fixes Stream >> #take:. Unlike in #any:, we must not return nil values from #next here but the enumeration earlier. However, we can keep the fast behavior for ReadStreams in which #next: automatically stops the enumeration at the end of the receiver. See CollectionsTests-ct.361.

Supersedes Collections-ct.950. Thanks to Marcel for the fast review!

by Dave Lewis (lewis@mail.msen.com) at July 15, 2021 11:25 PM

July 05, 2021

source.squeak.org

Chronology-Core-mt.70

Merges latest fixes from Chronology-Core-dtl.68, after the update bug was fixed in (the kind of branch'd) Chronology-Core-mt.69.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 05, 2021 07:01 AM

Chronology-Core-mt.69

Stop using classVar InitializeFromPrimitive before it gets removed in Chronology-Core-dtl.67.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 05, 2021 06:58 AM

July 04, 2021

source.squeak.org

Chronology-Core-dtl.68

Merge Chronology-Core-ct.52

The 'Z' format in Java's SimpleDateFormat is documented as support for RFC 822 time zone specifications (used in email), whereas our DateAndTime class>>readFrom: is used to parse ISO 8601 format date strings. So on the face of it, this enhancement seems out of place for the Squeak parser. However, if we can believe Wikipedia, it would also be considered as a valid ISO 8601 offset specifier. Merged.

References:
https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html
https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC

by David T. Lewis (lewis@mail.msen.com) at July 04, 2021 08:17 PM

Chronology-Core-ct.52

Extends DateAndTime readFrom: to accept offset strings without colon. For example, java's zzzz format gives you such a string.

Test will be added on request.

by David T. Lewis (lewis@mail.msen.com) at July 04, 2021 08:14 PM

July 03, 2021

source.squeak.org

Chronology-Core-dtl.67

Cruft removal. DateAndTime no longer needs to be in the startUp list. The canInitializeFromPrimitive workaround is no longer needed. Do not use the no-argument call to primitiveUtcWithOffset, which works fine but is easier to understand in the image if we always use a single primitive interface.

by David T. Lewis (lewis@mail.msen.com) at July 03, 2021 09:38 PM

squeaksource.com

System.V3-dtl.1237

Name: System-eem.1237
Author: eem
Time: 2 July 2021, 6:13:21.540315 am
UUID: 30d3cf8e-708e-4830-86da-21d106f44ba8
Ancestors: System-eem.1236

Fix MessageTally class>>#tallySends:

by Dave Lewis (lewis@mail.msen.com) at July 03, 2021 05:20 PM

System.V3-dtl.1236

Also update special objects array to match oscog expectations where possible.

Name: System-eem.1236
Author: eem
Time: 28 June 2021, 10:13:05.818847 am
UUID: eb4ecd02-13f0-7b48-ac7d-d77dbdfa49f5
Ancestors: System-dtl.1235

Add the new primitive error codes to the specialObjectsArray.

by Dave Lewis (lewis@mail.msen.com) at July 03, 2021 05:19 PM

Kernel.V3-dtl.1405

Name: Kernel-mt.1405
Author: mt
Time: 29 June 2021, 9:12:17.425032 am
UUID: 0c90c979-78a0-8a4a-85b8-35b90f0cbc2d
Ancestors: Kernel-dtl.1404

Fixes regression in mapping modifier keys for keyDown/keyUp events on macOS.

The bug was in the VirtualKeyTable, which had an entry for 0 on macOS, but not on Windows and X11 platforms.

by Dave Lewis (lewis@mail.msen.com) at July 03, 2021 02:19 PM

July 02, 2021

source.squeak.org

Chronology-Tests-ct.27

Revises tests for Duration >> #wait and #busyWait. In particular, fixes a typo (#new instead of #now) in #testWait which made that test pretty much worthless. :-)

Supersedes Chronology-Tests-ct.26.

July 02, 2021 04:29 PM

Chronology-Tests-ct.26

Complements Chronology-Core-ct.67.

July 02, 2021 04:11 PM

Chronology-Core-ct.67

Adds Duration >> #busyWait and some explaining prose.

See http://lists.squeakfoundation.org/pipermail/squeak-dev/2021-July/215928.html. Thank you for the feedback!

July 02, 2021 04:11 PM

VMMaker.oscog-eem.2977

Fix symbolicMethod: for full lbocks.
Commentary.

by Eliot Miranda (eliot.miranda@gmail.com) at July 02, 2021 02:13 PM

System-eem.1237

Fix MessageTally class>>#tallySends:

by Eliot Miranda (eliot.miranda@gmail.com) at July 02, 2021 01:13 PM

VMMaker.oscog-eem.2975

Oops; don't forget the StackInterpreter, avoiding the shadow of memory in readImageFromFile:HeapSize:StartingAt:

by Eliot Miranda (eliot.miranda@gmail.com) at July 02, 2021 12:54 PM

VMMaker.oscog-eem.2974

Change how the code zone is allocated in the Cogit VMs to support Apple's MAP_JIT flag, required on M1. Eliminate the method variable in translated Spur VMs.

by Eliot Miranda (eliot.miranda@gmail.com) at July 02, 2021 12:53 PM

June 23, 2021

source.squeak.org

Kernel-dtl.1404

Rearrange the code in EventSensor virtual keys methods to reduce the number of literals in methods, allowing EventSensor class>>virtualKeysOnWindows to be compiled with the EncoderForV3PlusClosures bytecode set.

by David T. Lewis (lewis@mail.msen.com) at June 23, 2021 08:30 PM

June 22, 2021

source.squeak.org

VMMaker.oscog-eem.2973

Oops! The new shorten:toIndexableSize: in SpurMemoryManager needs to be marked <api>.

Rename bytesInObject: to bytesInBody: to indicate that it's a heap thang not a Smalltalk thang.

by Eliot Miranda (eliot.miranda@gmail.com) at June 22, 2021 10:35 PM

VMMaker.oscog-eem.2972

Fix th woefully broken Spur shorten:toIndexableSize: which is needed ror ImageSegment loading and was hanging on by a thread.

To support this allow slimbridges throughout new space, and hence use objectAfterMaybeSlimBridge:limit: in place of objectAfter:limit: in all new space enumeration. Also implement SpurMemoryManager>>memcpy:_:_: more fully.

Extend leak checking with GCCheckShorten, renaming all non-GC leak check operarions that used to use GCModeXXX names to GCCheckXXX.

Have cloneSimulation update byteCountText for evidence of progress when doing several slow leak checks.

TestingPrimitives is now one of the names defines at compile time.

by Eliot Miranda (eliot.miranda@gmail.com) at June 22, 2021 10:09 PM

VMMakerUI-eem.37

Robustess prior to display installation in the simulators' handleListenEvent:s

by Eliot Miranda (eliot.miranda@gmail.com) at June 22, 2021 10:01 PM

Cog-eem.436

Image level tests for Spur shorten:toIndexableSize:

by Eliot Miranda (eliot.miranda@gmail.com) at June 22, 2021 10:00 PM

Tools-mt.1058

Fixes missing "references to binding" entry in DictionaryInspector menu.

The bug was that there are bindings other than (sub-)instances of Binding, even regular Associations. Well, #isVariableBinding is older than Environment's Binding hierarchy. Not sure whether even Undeclared should hold instances of Binding.

See http://lists.squeakfoundation.org/pipermail/squeak-dev/2021-June/215860.html

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 22, 2021 06:58 AM

June 16, 2021

squeaksource.com

PromisesRemote-rww.8

update to SecureRandom picker

by Robert Withers (rabbit@churchofthesacrifice.org) at June 16, 2021 03:34 PM

ParrotTalk-rww.61

refactored to support session config.

by Robert Withers (rabbit@churchofthesacrifice.org) at June 16, 2021 03:34 PM

TraceMonitor-rww.3

added GlobalMonitor

by Robert Withers (rabbit@churchofthesacrifice.org) at June 16, 2021 03:34 PM

TraceMonitor-rww.3

added GlobalMonitor

by Robert Withers (rabbit@churchofthesacrifice.org) at June 16, 2021 03:34 PM

PromisesLocal-rww.29

updated required package version to 2.

by Robert Withers (rabbit@churchofthesacrifice.org) at June 16, 2021 03:33 PM

ThunkStack-rww.36

refactored to support session config.

by Robert Withers (rabbit@churchofthesacrifice.org) at June 16, 2021 03:33 PM

CryptographyRSFEC-rww.30

preserve in-image implementations

by Robert Withers (rabbit@churchofthesacrifice.org) at June 16, 2021 03:01 PM

CryptographyRSPlugin-rww.18

mark <inline: true>

by Robert Withers (rabbit@churchofthesacrifice.org) at June 16, 2021 03:01 PM

CryptographyRSErasure-rww.31

added codingLoop primitives

by Robert Withers (rabbit@churchofthesacrifice.org) at June 16, 2021 07:58 AM

CryptographyRSErasureTests-rww.14

split off ExhaustiveTests

by Robert Withers (rabbit@churchofthesacrifice.org) at June 16, 2021 07:58 AM

CryptographyRSFEC-rww.29

set prim calling methods to the side

by Robert Withers (rabbit@churchofthesacrifice.org) at June 16, 2021 07:58 AM

CryptographyRSFECTests-rww.12

reorganized tests

by Robert Withers (rabbit@churchofthesacrifice.org) at June 16, 2021 07:58 AM

CryptographyRSPlugin-rww.17

added codingLoop primitives

by Robert Withers (rabbit@churchofthesacrifice.org) at June 16, 2021 07:58 AM

CryptographyRSFEC-rww.28

disable bug-ridden primitives for
Poly>>#dividePoly:
Decoder>>#runEuclideanAlgorithmPoly:poly:rDegrees:
Decoder>>#decode:twoS:

by Robert Withers (rabbit@churchofthesacrifice.org) at June 16, 2021 02:18 AM

CryptographyRSPlugin-rww.16

update primitives in bug fixing.

disable bug-ridden primitives for
Poly>>#dividePoly:
Decoder>>#runEuclideanAlgorithmPoly:poly:rDegrees:
Decoder>>#decode:twoS:

by Robert Withers (rabbit@churchofthesacrifice.org) at June 16, 2021 02:18 AM

June 15, 2021

source.squeak.org

Morphic-ct.1774

Allows models to honor the currently hovered column position in a PluggableMultiColumnListMorph for mouse actions such as tool-tips or double-click events.

Usage examples:

multiColumnList getHelpSelector: #helpAtRow:atColumn:.
multiColumnList doubleClickSelector: #doubleClickColumn:.

June 15, 2021 04:50 PM

squeaksource.com

CryptographyRSFEC-rww.27

debugging

by Robert Withers (rabbit@churchofthesacrifice.org) at June 15, 2021 03:54 PM

CryptographyRSFECTests-rww.11

debugging

by Robert Withers (rabbit@churchofthesacrifice.org) at June 15, 2021 03:54 PM

CryptographyRSPlugin-rww.15

debugging

by Robert Withers (rabbit@churchofthesacrifice.org) at June 15, 2021 03:54 PM

source.squeak.org

Morphic-ct.1773

Complements System-ct.1236.

June 15, 2021 02:01 PM

System-ct.1236

Fixes RealEstateAgent intolerance with a nil world which must be handled according to senders. Document the fact that world can be nil in all relevant senders. I struggled about this when I encountered a recursive project error. See StandardSystemView >> #initialFrame.

June 15, 2021 02:00 PM

June 14, 2021

source.squeak.org

VMMaker.oscog-dtl.2968

Merge VMMaker.oscog-nice.2957 from inbox required for fix_include_order:
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/562

Fix from Alistair Grant for globalSessionID range overflow:
https://github.com/pharo-project/opensmalltalk-vm/issues/233
http://lists.squeakfoundation.org/pipermail/vm-dev/2021-May/036291.html

by David T. Lewis (lewis@mail.msen.com) at June 14, 2021 03:56 PM

squeaksource.com

CryptographyRSPlugin-rww.14

change looping in Poly>>#initializeField...

by Robert Withers (rabbit@churchofthesacrifice.org) at June 14, 2021 12:29 PM

CryptographyRSFECTests-rww.10

remove in-image tests.

by Robert Withers (rabbit@churchofthesacrifice.org) at June 14, 2021 12:29 PM

June 08, 2021

source.squeak.org

Monticello-eem.749

Load time robustness when proceeding through syntax errors (which result in nil methods in MethodAddition).

by Eliot Miranda (eliot.miranda@gmail.com) at June 08, 2021 08:16 PM

squeaksource.com

Ocompletion-eem.123

Robustness for Monticello package loading when proceeding throguh syntax errors, which can result in nil methods.

by Eliot Miranda (eliot.miranda@gmail.com) at June 08, 2021 07:17 PM

source.squeak.org

FFI-Tests-mt.52

Complements FFI-Kernel-mt.181

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 08, 2021 09:54 AM

FFI-Kernel-mt.181

Fixes and clean-up in array types. No need for #isPointerTypeForArray because #referentClass is used only for alias-to-array types as in other types. The #contentType has its own instVar.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 08, 2021 09:53 AM

FFI-Callbacks-mt.25

Makes FFI-Callbacks compatible with Alien (callbacks):
- Renames #FFICallbackMemory to #AlienStub
- Moves management of executable pages from ExternalAddress and FFICallbackMemory to FFICallback
- Marks compatibility methods with flag #alienCompatibility.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 08, 2021 07:41 AM

squeaksource.com

ConfigurationOfFFI-mt.50

FFI-Callbacks is compatible with Alien now. So, load it by default when loading Squeak FFI.

June 08, 2021 06:59 AM

May 26, 2021

squeaksource.com

CryptographySignatures-rww.19

fix random access

by Robert Withers (rabbit@churchofthesacrifice.org) at May 26, 2021 05:53 AM

Morphic-cmm.1616

Make MC save dialogs more pleasant by assuming each line has at least 5 characters, so that the #charactersOccluded will calculate greater and allocate a little more space for it.

by Chris Muller (ma.chris.m@gmail.com) at May 26, 2021 03:13 AM

Kernel-cmm.1293

Revert Fraction>>#= so that (Fraction numerator: 5 denominator: 1) = 5. Having this be false is as wrong as having 5.0 = 5 return false, IMO.

by Chris Muller (ma.chris.m@gmail.com) at May 26, 2021 03:13 AM

Compiler-cmm.329

Kent Beckian purposefully plenk'd pretty printing.

by Chris Muller (ma.chris.m@gmail.com) at May 26, 2021 03:08 AM

Collections-cmm.871

Revert the changes introduced in Symbol>>#= (via Collections-nice.820) because it breaks the classic Proxy pattern.

by Chris Muller (ma.chris.m@gmail.com) at May 26, 2021 03:07 AM

Chronology-Core-cmm.58

Fix a dangerous part of the Chronology API.

- DateAndTime utcMicroseconds: Time utcMicrosecondClock offset: 0 looks reasonable, but it's very not. Notice how it's off, silently, by 68 years!!!
- Deprecate Time class>>#utcMicrosecondClock. Only soft-deprecate it for now due to its use in Kernel and Network packages. Will update them as needed.
- Replace it with Time class>>#primMicrosecondClockValue, where "prim" at least indicates implementation-specific properties may be present.
- Complement legacy Smalltalk-80 protocol, and expose the new microsecond-level precision in the VM for users with:
DateAndTime>>#asMicroseconds and
DateAndTime class>>#fromMicroseconds:
- Rename Time class>>#localMicrosecondClock to #localMicrosecondClockValue to 1) be consistent with microsecondClockValue and 2) avoid overloading the "clock" nomenclature. It's a value, not an object!
- Remove unused DateAndTime class>>#millisecondClockValue.

by Chris Muller (ma.chris.m@gmail.com) at May 26, 2021 03:07 AM

Magma-Client-cmm.743

MagmaVersionError needs to be resumable during DB version-upgrades. It's also helpful to know the dbVersion that was read from the DB.

by Chris Muller (ma.chris.m@gmail.com) at May 26, 2021 02:32 AM

Magma-Server-cmm.521

- no longer necessary to #close / #open just to truncate.
- Less Delay garbage in one method.
- Let MagmaFileTraverser support a one or two-arg block. If a two-arg block is specified it is passed the graphBuffer (with access to the path of #buffers).
- Updating the DB's internal #version metafield is worth signaling a MagmaNotification.
- When running out of memory, only kill the worst non-__system session if it's NOT the only one because, in that case, it shouldn't be the cause of the memory issue.
- MagmaFileTraverser now supports either a one OR two argument "do" block. If two args, the 2nd is now the GraphBuffer, from which can be obtained the path to the current buffer (the first argument).
- Cleaner setting of loadProcess of luxury queries.
- More halts for recovery debugging.
- Better error handling of Magma version upgrades.
- RepositoryController now prints its location.
- deployment needs more work.
- Support upgrading of version 16 repositories.

by Chris Muller (ma.chris.m@gmail.com) at May 26, 2021 02:32 AM

Magma-Tools-cmm.82

- Use Magma17To18Upgrader in this package to upgrade Magma databases from 1.62 to 1.63.
- The generic MagmaUpgrader superclass now has a 'log' to capture the various Notifications.
- It also includes a #enumerate:check:repair:perform: convenience method for invoking a MagmaDataRepair, as well as methods for doing different things for an upgrade.

by Chris Muller (ma.chris.m@gmail.com) at May 26, 2021 02:32 AM

Magma-Tester-cmm.429

- Trade #crashVm for #killVm, which uses linux command to "kill -9" the PID of the running Squeak vm.

by Chris Muller (ma.chris.m@gmail.com) at May 26, 2021 02:32 AM

Ma-Client-Server-Core-cmm.288

After two days of debugging: Revert MaServerLocation>>#isLocalHost to its 2009 version. The 2018 "fix" was put in due to a VM bug which was then later apparently fixed.

by Chris Muller (ma.chris.m@gmail.com) at May 26, 2021 02:32 AM

Ma-Search-cmm.59

Capture the series of messages sent to a MaBehaviorFinder into its 'log'. This way, a "logical" definition of behaviors, useful for systems that evolve.
Inspired by the GraphQL framwork for Squeak. It has a "SmalltalkEngine" which is intended to expose Smalltalk via GraphQL.

by Chris Muller (ma.chris.m@gmail.com) at May 26, 2021 02:32 AM

BrpExtensions-cmm.16

Since reverting Collection>>#asCollection back to Brent's original implementation, there were no issues experienced until MaxTrader needed to use Array's of Strings as input to a permutation, so that particular functionality that was lost is now restored by this new #asCollection override in String.

by Chris Muller (ma.chris.m@gmail.com) at May 26, 2021 02:32 AM

Ma-Collections-cmm.164

Eliot felt the need to rename my #addNewElement: to #ifAbsentAdd:. Make the same to MaIdentitySet.

by Chris Muller (ma.chris.m@gmail.com) at May 26, 2021 02:32 AM

Ma-Serializer-Tests-cmm.52

Merge.

by Chris Muller (ma.chris.m@gmail.com) at May 26, 2021 02:32 AM

Ma-Core-cmm.319

Clean up new SI suffixes for Integer.

by Chris Muller (ma.chris.m@gmail.com) at May 26, 2021 02:32 AM

Ma-Serializer-Core-cmm.350

- Finish removal of the original post-materialization hook. Perhaps the other hooks should be trimmed, too?

by Chris Muller (ma.chris.m@gmail.com) at May 26, 2021 02:32 AM

May 25, 2021

source.squeak.org

Sound-eem.80

Fix FFT>>plot:in: for an all-zero collection.

by Eliot Miranda (eliot.miranda@gmail.com) at May 25, 2021 11:07 PM

squeaksource.com

CryptographyRandom-rww.19

update random sources

by Robert Withers (rabbit@churchofthesacrifice.org) at May 25, 2021 08:14 PM

CryptographyRSErasureTests-rww.7

make arithmetic protocol follow the same naming pattern: #*: by:

by Robert Withers (rabbit@churchofthesacrifice.org) at May 25, 2021 08:07 PM

CryptographyRSErasurePlugin-rww.8

package rename

by Robert Withers (rabbit@churchofthesacrifice.org) at May 25, 2021 08:06 PM

source.squeak.org

Morphic-ct.1771

Fixes a bottleneck when opening a yellow button menu on a morph that contains a very large number of subsub*morphs. On not-so-fast systems, this can be reproduced using:

self systemNavigation browseAllSelect: #notNil

On faster systems, you might need to write a small toolbuilder application to reproduce the bottleneck. I have an app with >10k list items in my image which actually blocked the image for several seconds when I yellow-clicked the window.

Fixed the problem without duplicating the logic of #allStringsAfter: by using a generator.

May 25, 2021 05:38 PM

Tests-jar.448

Complement Kernel-jar.1386 (Fix a list of termination bugs described in http://forum.world.st/Solving-multiple-termination-bugs-summary-amp-proposal-td5128285.html)

These basic tests illustrate the unwind semantics during termination implemented by the new #teminate..

Current implementation of #teminate will fail with these tests - they should accompany Kernel-jar.1386 (if accepted).

Thanks

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 25, 2021 05:59 AM

Kernel-jar.1410

Prevent VM crashes due to returning from #cannotReturn. The fix introduces a isRecursive variable to BlockCannotReturn to recognize an infinite loop.
#cannotReturn: loops to itself and notifies the user an infinite loop is starting. Returning from #cannotReturn: is no longer possible so that the user cannot crash the VM by accidentally pressing Proceed, by stepping over etc. #terminate can take advantage of this improved behavior.

This is a more sophisticated alternative to Kernel-jar.1404 for a discussion.

Examples like:

[^2] fork

or

[[self error] ensure: [^2]] fork

or even

a := [true ifTrue: [^ 1] yourself]
"and then do-it separately (c) Christoph:"
[a value] on: BlockCannotReturn do: [:ex | ex resume]

can no longer crash the image :)

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 25, 2021 05:58 AM

Kernel-jar.1409

Replace Kernel-jar.1408 and supersede Kernel-jar.1406. This is a "final" version :)

(I noticed too late Kernel-jar.1408 uploaded incorrectly, apologies - please disregard that commit)

Clean-up, extract repeating code to a new method #complete:to:, revert an incorrect modification of #runUntilErrorOrReturnFrom from Kernel-jar.1406 and 1408, resolve MessageNotUnderstood recursion problem, update comments...

Consistent with current ProcessTest >> #testNestedUnwind semantics for completing nested halfways-through unwind blocks during termination:

x1 := x2 := x3 := nil.
p:=[
[
[ ] ensure: [ "halfway through completion when suspended"
[ ] ensure: [ "halfway through completion when suspended"
Processor activeProcess suspend. "here the process gets terminated"
x1 := true].
x2 := true]
] ensure: [ "not started yet when suspended"
x3 := true]
] fork.
Processor yield.
p terminate
self assert: x1 & x2 & x3.

Original discussion of the changes in #terminate: http://forum.world.st/Solving-multiple-termination-bugs-summary-amp-proposal-td5128285.html

Discussion regarding a proposal to change the current semantics: http://forum.world.st/The-semantics-of-halfway-executed-unwind-contexts-during-process-termination-td5129800.html

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 25, 2021 05:58 AM

Kernel-jar.1404

Prevent VM crashes due to returning from #cannotReturn. The fix loops #cannotReturn to itself so that the user cannot crash the VM by accidentally pressing Proceed, by stepping over etc.

#terminate can take advantage of this improved behavior - will post a proposal in a separate changeset.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 25, 2021 05:58 AM

May 24, 2021

source.squeak.org

Kernel-jar.1412

Fix an issue when a process terminating another process is terminated in the middle of the unwind.

As a result the original process won't finish unwinding and will leave either a suspended process or a chain of unfinished contexts behind (to be GC'd).

This is an update of Kernel-jar.1411 (not replacement).

Complemented by a test: KernelTests-jar.406

May 24, 2021 09:06 PM

KernelTests-jar.406

Test a situation when a process terminating another process is terminated in the middle of the unwind. make sure both processes are unwound correctly.

May 24, 2021 09:02 PM

Kernel-jar.1411

Supersede Kernel-jar.1409; latest changes: fix unwind when #ensure is top context, fix typo in isRecursive: setter. This is a "final" version.

Complemented with tests: Tests-jar.465, ToolsTests-jar.105, KernelTests-jar.405

Please remove Kernel-jar.1409, Kernel-jar.1404, Kernel-jar.1410 and Tests-jar.448 from the Inbox.

Summary and discussion of the bugs and changes in #terminate: http://forum.world.st/Solving-multiple-termination-bugs-summary-amp-proposal-td5128285.html

Recent changes: Clean-up, extract repeating code to a new method #complete:to: to improve readability, resolve MessageNotUnderstood and BlockCannotReturn recursion problem, update comments, support unwind from nested errors.

Consistent with current ProcessTest >> #testNestedUnwind semantics for completing nested halfways-through unwind blocks during termination:

x1 := x2 := x3 := nil.
p:=[
[
[ ] ensure: [ "halfway through completion when suspended"
[ ] ensure: [ "halfway through completion when suspended"
Processor activeProcess suspend. "here the process gets terminated"
x1 := true].
x2 := true]
] ensure: [ "not started yet when suspended"
x3 := true]
] fork.
Processor yield.
p terminate
self assert: x1 & x2 & x3.

Discussion regarding a proposal to change the current semantics: http://forum.world.st/The-semantics-of-halfway-executed-unwind-contexts-during-process-termination-td5129800.html

May 24, 2021 01:27 PM

ToolsTests-jar.105

Complement latest #terminate in the Inbox. Test unwind semantics for nested Unhandled errors aborted via debugger's Abandon (interpreted as terminate).

May 24, 2021 01:15 PM

Tests-jar.465

Add a set of tests comlpementing the latest #terminate in the Inbox. Tests the unwind semantics during termination.

May 24, 2021 01:08 PM

KernelTests-jar.405

Add a stress test #testTerminateInEnsure presented by Martin McClure at 2019 Smalltalk conference. Tests unwind when a process gets terminated inside the #ensure unwind block. Complements latest #terminate in the Inbox.

May 24, 2021 01:03 PM

May 23, 2021

source.squeak.org

FFI-Callbacks-mt.18

Use #abiSend: for callback init.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 23, 2021 02:03 PM

FFI-Kernel-mt.168

Minor clean-up in raw-bits array to clarify the use of FFIAtomicReadWriteSend for FloatArray and (Signed|Unsigned)IntegerArray.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 23, 2021 01:46 PM

FFI-Kernel-mt.167

Complements FFI-Pools-mt.27. New preference for using a type pool for about 2x faster access to struct fields.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 23, 2021 01:45 PM

FFI-Pools-mt.27

Prepares extra pool for types to be used for fast field access in external structures.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 23, 2021 01:42 PM

May 18, 2021

squeaksource.com

CryptographyRSErasure-rww.9

remove old comment

by Robert Withers (rabbit@churchofthesacrifice.org) at May 18, 2021 09:31 PM

source.squeak.org

PreferenceBrowser-mt.115

Tweak the previous commit. Make the two new preferences be reflected in the preview world for the user to play around with. :-)

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 18, 2021 01:26 PM

PreferenceBrowser-mt.114

Add the two new workspace preferences to the wizard because both are primarily intended for newcomers.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 18, 2021 12:05 PM

Tools-mt.1056

Tweak #embedTranscript to only apply when opening a regular workspace via class-side #open. Note that the workspace model is re-used for other purposes such as string edit. See UIManager.

Adds new preference to file-out workspace contents on accept. Thanks to Jaromir for the idea! Preference is enabled by default since there was noe default accept-action in workspaces yet.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 18, 2021 11:58 AM

ToolBuilder-Morphic-mt.276

Fix custom invocation of Workspace for string edit to not use the public interface for opening a workspace. (This is a minor regression since the addiction of #embedTranscript earlier this month.)

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 18, 2021 11:55 AM

May 17, 2021

squeaksource.com

CryptographyRSErasure-rww.8

adopting an interface class, for calls to an RSErasurePlugin

by Robert Withers (rabbit@churchofthesacrifice.org) at May 17, 2021 05:03 PM

source.squeak.org

FFI-Kernel-mt.159

*sigh*

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 17, 2021 10:47 AM

FFI-Kernel-mt.158

Further fixes for code loading. Sorry for the noise :-(

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 17, 2021 10:45 AM

ReleaseBuilder-mt.216

Fixes regression in recent reset of pragma preferences. Enable "browse with drag-n-drop" by default.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 17, 2021 09:54 AM

squeaksource.com

CryptographyRSErasure-rww.7

repair benchmark, with update to a check method.

by Robert Withers (rabbit@churchofthesacrifice.org) at May 17, 2021 08:52 AM

source.squeak.org

FFI-Tests-mt.42

Complements FFI-Kernel-mt.157

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 17, 2021 08:04 AM

FFI-Kernel-mt.157

Fixes some bugs with empty array types during code loading.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 17, 2021 08:03 AM

FFI-Kernel-mt.156

Allow empty array types so that code loading can work. Since structure types are initialized only partially when referenced in an FFI call, this must be possible for array types too, which can reference to those not-yet-fully-initialized struct types as content type.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 17, 2021 06:48 AM

FFI-Callbacks-mt.16

Complements FFI-Kernel-mt.155

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 17, 2021 06:45 AM

FFI-Kernel-mt.155

Adds endianness to platform description.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 17, 2021 06:45 AM

squeaksource.com

CryptographyRSErasureTests-rww.6

final bug fixes, all tests pass Green!

by Robert Withers (rabbit@churchofthesacrifice.org) at May 17, 2021 01:08 AM

CryptographyRSErasure-rww.6

final bug fixes, all tests pass Green!

by Robert Withers (rabbit@churchofthesacrifice.org) at May 17, 2021 01:08 AM

May 16, 2021

source.squeak.org

System-ct.1233

Makes TextDiffBuilder capable of building string patches (that use +/- prefixes instead of text attributes) or combined patches that use both prefixes and attributes.

Usage:

| aTextDiffBuilder |
aTextDiffBuilder := TextDiffBuilder from: 'Hello world\Squeak is great\Carpe Squeak!' withCRs to: 'Hello world\Squeak is awesine\Carpe Squeak!' withCRs.
aTextDiffBuilder buildStringPatch edit.
aTextDiffBuilder buildPrefixedDisplayPatch edit.
aTextDiffBuilder buildDisplayPatch edit. "classic"

May 16, 2021 06:29 PM

Kernel-ct.1407

Fixes #isPrimFailToken: for objects that do not implement #isArray in a conventional way, or that do not implement it all. The following should be debuggable without any problems, but currently is not due to a regression in Kernel-eem.1366.

Fur more information, see: http://forum.world.st/The-Trunk-Kernel-eem-1366-mcz-td5126558.html

May 16, 2021 05:06 PM

squeaksource.com

System.V3-dtl.1235

Name: System-dtl.1235
Author: dtl
Time: 15 May 2021, 2:16:34.362599 pm
UUID: 0fa23815-1b1d-431f-ad7f-3b97f3a0cf08
Ancestors: System-dtl.1234

Clean up redundant fileIn methods and let SARInstaller use the same method as the rest of us.

by Dave Lewis (lewis@mail.msen.com) at May 16, 2021 02:21 PM

System.V3-dtl.1234

Name: System-dtl.1234
Author: dtl
Time: 15 May 2021, 1:30:44.531511 pm
UUID: 40e78b44-f874-4a29-af19-9d289d15d049
Ancestors: System-dtl.1233

PositionableStream>>fileInSilentlyAnnouncing: has not been used since at least Squeak 3.8, and was not present in Squeak 3.6. Remove it without deprecation.

by Dave Lewis (lewis@mail.msen.com) at May 16, 2021 02:19 PM

System.V3-dtl.1233

Name: System-dtl.1233
Author: dtl
Time: 15 May 2021, 1:25:37.809444 pm
UUID: 660215fe-f151-4184-8a31-8775202baa81
Ancestors: System-nice.1232

Be permissive when filing in Cuis packages. Skip chunks that begin with known extensions that are not meaningful for Squeak, logging to Transcript to show chunks that have been ignored.

by Dave Lewis (lewis@mail.msen.com) at May 16, 2021 02:17 PM

System.V3-dtl.1232

Name: System-nice.1232
Author: nice
Time: 29 April 2021, 8:13:00.64144 pm
UUID: 9bba2398-62e1-bd4f-90ba-5960a05f6ec8
Ancestors: System-mt.1231

No need to resume: from within defaultAction.
The sender of defaultAction will resume:
See UndefinedObject>>handleSignal:

by Dave Lewis (lewis@mail.msen.com) at May 16, 2021 02:14 PM

Kernel.V3-dtl.1402

Name: Kernel-nice.1402
Author: nice
Time: 7 May 2021, 9:39:45.713143 pm
UUID: 21ee698b-9f75-40e3-9bd3-944e73cb9e20
Ancestors: Kernel-nice.1401

Fix sqrt bugs exposed by #testSqrtNearExactTie.

If we pretend to round to nearest, we must do it right, not just pretend...

How was the problem found? Accidentally...
I re-examined our implementation after musing in SO:
https://stackoverflow.com/questions/67361541/correctly-rounded-computation-of-sqrt-of-sum-of-two-floats-handling-overflow/67426790#67426790

Musing is more powerful than dumb static and coverage tests, I wish I got more time for musing :)
We deadly need evolutive testing (neural based).

by Dave Lewis (lewis@mail.msen.com) at May 16, 2021 02:01 PM

Kernel.V3-dtl.1401

Name: Kernel-nice.1401
Author: nice
Time: 6 May 2021, 11:24:25.403176 pm
UUID: 2fbbe628-b187-4e75-ab6f-a6d16df14ce7
Ancestors: Kernel-jar.1400, Kernel-nice.1399

Merge exception handling fixes Kernel-jar.1400, Kernel-nice.1399

by Dave Lewis (lewis@mail.msen.com) at May 16, 2021 01:59 PM

Kernel.V3-dtl.1400

Name: Kernel-jar.1400
Author: jar
Time: 4 May 2021, 10:35:06.700121 pm
UUID: 048df236-d26f-434e-964d-7707b8f2a9a8
Ancestors: Kernel-nice.1397

Fix a bug causing a cannot return error when re-signalling an already signalled exception. The fix makes re-signalling equivalent to sending #outer. Examples follow.

Discussion see http://forum.world.st/The-Inbox-Kernel-jar-1399-mcz-tp5129370p5129434.html

by Dave Lewis (lewis@mail.msen.com) at May 16, 2021 01:57 PM

Kernel.V3-dtl.1399

Name: Kernel-nice.1399
Author: nice
Time: 3 May 2021, 8:41:29.262256 pm
UUID: 90c075cb-6d99-844c-8e53-e697592fe7a1
Ancestors: Kernel-jar.1398

Apply Jaromir fix for nested outed to resumeEvaluating:.

Let resumeUnchecked: rely on resumeEvaluating: in order to avoid code duplication.

Document the (tempAt: 2/tempAt: 2 put:) used in unwinding.

by Dave Lewis (lewis@mail.msen.com) at May 16, 2021 01:52 PM

Kernel.V3-dtl.1398

Name: Kernel-jar.1398
Author: jar
Time: 2 May 2021, 2:56:26.972089 pm
UUID: 9398993d-726c-8747-bde6-506318c4f898
Ancestors: Kernel-nice.1397

Fix a bug in #resignalAs causing an incorrect evaluation of resignalAs in combination with #outer. Complemented with a test in Tests-jar.461 (Inbox)

To illustrate the bug try:

| x |
x:=''.
[
[1/0. x:=x,'1'] on: ZeroDivide do: [:ex | ex outer. x:=x,'2'].
x:=x,'3'
] on: ZeroDivide do: [:ex | ex resignalAs: Notification].
x

answers:
---> '2' currently - incorrect
---> '13' after the fix

by Dave Lewis (lewis@mail.msen.com) at May 16, 2021 01:51 PM

Kernel.V3-dtl.1397

Name: Kernel-nice.1397
Author: nice
Time: 30 April 2021, 9:48:57.972338 pm
UUID: df20ab21-bba8-4919-b4a1-d2c7a6c6e8de
Ancestors: Kernel-mt.1396, Kernel-jar.1395

merge Kernel-jar.1395 (fix outer)

Name: Kernel-jar.1395
Author: jar
Time: 30 April 2021, 12:25:17.561362 am
UUID: 0f589a20-6b8e-a94b-9dbc-9b3f91c84ce8
Ancestors: Kernel-nice.1394

Fix a bug in Exception>>#outer causing a return to an incorrect handler context. Explanation in: http://forum.world.st/A-bug-in-Exception-gt-gt-outer-causing-a-return-to-an-incorrect-handler-context-td5129273.html

by Dave Lewis (lewis@mail.msen.com) at May 16, 2021 01:49 PM

Kernel.V3-dtl.1396

Name: Kernel-mt.1396
Author: mt
Time: 30 April 2021, 9:16:44.415936 am
UUID: d1ca8229-01e5-b548-9660-5018841eea20
Ancestors: Kernel-nice.1395

Adds support for composition of tool-builder specs such as through DualChangeSorter. There, we need to share the windowSpec.

by Dave Lewis (lewis@mail.msen.com) at May 16, 2021 01:47 PM

Kernel.V3-dtl.1395

Name: Kernel-nice.1395
Author: nice
Time: 29 April 2021, 8:18:50.78844 pm
UUID: f62a6682-e4e0-404a-8b5a-f25b60cad832
Ancestors: Kernel-nice.1394

Clean-up scories from previous fix for nested exception handling.

No need to resume from within defaultAction.

If anySatisfy: does the job, don't you inline it!

by Dave Lewis (lewis@mail.msen.com) at May 16, 2021 01:45 PM

Compiler.V3-dtl.458

Name: Compiler-nice.458
Author: nice
Time: 29 April 2021, 7:48:52.29844 pm
UUID: 354afee1-3aba-4d40-b36c-0000b2e10a93
Ancestors: Compiler-nice.457

Restore newSource which is still used by MethodAddition >> #createCompiledMethod.

No need to resume: from within defaultAction.
The sender of defaultAction will resume:
See UndefinedObject>>handleSignal:

by Dave Lewis (lewis@mail.msen.com) at May 16, 2021 01:42 PM

source.squeak.org

FFI-Kernel-mt.154

Fixes minor slip. :-)

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 16, 2021 12:36 PM

FFI-Callbacks-mt.15

Fixes regression in callbacks on 64-bit platforms.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 16, 2021 12:32 PM

FFI-Tests-mt.41

Adds a minor test to check whether we can read smaller integer types from space allocated for bigger integer types.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 16, 2021 12:31 PM

squeaksource.com

Collections.V3-dtl.944

Name: Collections-eem.944
Author: eem
Time: 12 May 2021, 10:19:58.957605 am
UUID: 97274a09-ff46-4d4c-8f16-420df357849d
Ancestors: Collections-mt.943

Nuke duplicate methods in Float32Array inherited from FloatArray.

by Dave Lewis (lewis@mail.msen.com) at May 16, 2021 11:46 AM

source.squeak.org

FFI-Tools-mt.31

Complements FFI-Kernel-mt.153

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 16, 2021 11:04 AM

FFI-Tests-mt.40

Complements FFI-Kernel-mt.153

Tests for global variables pass now. :-)

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 16, 2021 11:03 AM

May 11, 2021

source.squeak.org

VMMaker.oscog-eem.2958

spelling in a comment only. this is not the commit you're looking for.

by Eliot Miranda (eliot.miranda@gmail.com) at May 11, 2021 02:19 AM

May 10, 2021

source.squeak.org

Kernel-jar.1403

Further improve #terminate: add comments, remove unnecessary code, fix minor issue, address Christoph's objection in [1] regarding nested errors inside unwind blocks: the following example will currently NOT execute any assignment to x:

x := ''.
[self error: 'x1'] ensure: [
[self error: 'x2'] ensure: [
[self error: 'x3'] ensure: [
x:=x,'3'].
x:=x,'2'].
x:=x,'1']

With the fix all three errors will be dealt with by opening a debugger even after abandoning the one opened on the previous error, and as a result all three assignments will be executed and the value of x will be '321'.

More info in:
[1] http://forum.world.st/Solving-multiple-termination-bugs-summary-proposal-tp5128285p5129113.html

May 10, 2021 06:45 PM

May 09, 2021

squeaksource.com

Kernel.V3-dtl.1394

Name: Kernel-nice.1394
Author: nice
Time: 26 April 2021, 1:50:12.861556 am
UUID: 3a981b94-0213-44f3-8263-838dda062f8a
Ancestors: Kernel-bp.1393

Revise exception handling so as to
- inactivate inner handler blocks when the exception is signalled in an outer handler
- except when the inner handler has been explicitely rearmed (see rearmHandlerDuring:)

Implementation notes: add a marker <primitive: 199> to handleSignal:, so as to detect the case when an exception is signalled within the execution of a handler block.

This induces a subtle difference:
- findNextHandlerContext might now return a handleSignal: context,
- while nextHandlerContext will only return a on:do: context (or nil).

The new workhorse for finding the proper handler is now #nextHandlerContextForSignal:
It finds and answers the (handler) context that will handle the exception, but if it finds a handleSignal: during the scan, it will restrict the search to rearmed handlers, until it reaches the handler of prior exception, at which step it continues to search normally.

Due to the scanning of inner blocks, we still need a marker for blocking re-entrancy (handlerActive temp in on:do:), but also a marker for rearmed blocks (handlerRearmed in on:do:). This can't be the same marker: an example is testHandlerReentrancy: when the rearmed inner handler pass the exception to its outer handler, the outer handler must still be inactive if it raised the Exception.

Borrow resumeEvaluating: to Cuis and use it in resignalAs:

Use many small methods in order to make the intention more explicit than with those mysterious tempAt: tempAt:put:

by Dave Lewis (lewis@mail.msen.com) at May 09, 2021 12:56 PM

source.squeak.org

Kernel-ct.1403

Fixes a bug in the simulation of objects as methods (OaM) when the object implements #isCompiledMethod, e.g. via dynamic forwarding. We always must use mirror primitives to match the behavior of the VM.

Regression test and further explanation are in KernelTests-ct.405.

May 09, 2021 01:56 AM

KernelTests-ct.405

Documents a bug in the simulation of objects as methods (OaM) when the object implements #isCompiledMethod, e.g. via dynamic forwarding. This is actually the case for TestCoverage and for that reason, debugging of SUnit test coverage collection is broken at the moment.

May 09, 2021 01:54 AM

May 08, 2021

squeaksource.com

Kernel.V3-dtl.1393

Name: Kernel-bp.1393
Author: bp
Time: 25 April 2021, 4:16:12.156698 pm
UUID: 6ff1afed-6782-42ad-a968-4c98da9d2c2b
Ancestors: Kernel-mt.1392

Add missing Object>>#isScaledDecimal which is already implemented in the subclass ScaledDecimal.

by Dave Lewis (lewis@mail.msen.com) at May 08, 2021 09:22 PM

Kernel.V3-dtl.1392

Name: Kernel-mt.1392
Author: mt
Time: 25 April 2021, 12:05:33.297546 pm
UUID: 29af9533-b510-49d5-8bde-86666d35f486
Ancestors: Kernel-mt.1391

Small fix. On Linux, uses non-printable control characters when "map CTRL to CMD" is enabled but "map non-printable to printable" is disabled.

Due to limitations of physical modifier keys across platforms, this is not super important but it is nice to get consistent event data across platforms. I suppose that checking for non-printable control characters in keyboard handlers should be avoided to ensure cross-platform compatibility.

See commentary in KeyboardEvent >> #checkCommandKey for more information.

by Dave Lewis (lewis@mail.msen.com) at May 08, 2021 09:20 PM

System.V3-dtl.1231

Name: System-mt.1231
Author: mt
Time: 29 April 2021, 11:03:42.969891 am
UUID: af06a9e1-6280-0649-820c-f6c89ef25640
Ancestors: System-mt.1230

Removes autogenerated pref accessors, which are now under "*autogenerated - ...".

by Dave Lewis (lewis@mail.msen.com) at May 08, 2021 09:11 PM

May 02, 2021

source.squeak.org

Tests-jar.461

Test #outer in combination with #resignalAs

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at May 02, 2021 07:30 PM

Kernel-jar.1398

Fix a bug in #resignalAs causing an incorrect evaluation of resignalAs in combination with #outer. Complemented with a test in Tests-jar.461 (Inbox)

To illustrate the bug try:

| x |
x:=''.
[
[1/0. x:=x,'1'] on: ZeroDivide do: [:ex | ex outer. x:=x,'2'].
x:=x,'3'
] on: ZeroDivide do: [:ex | ex resignalAs: Notification].
x

answers:
---> '2' currently - incorrect
---> '13' after the fix

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at May 02, 2021 07:29 PM

squeaksource.com

Kernel.V3-dtl.1384

Name: Kernel-nice.1384
Author: nice
Time: 11 April 2021, 7:33:23.487481 pm
UUID: ecb5db19-59bc-45f0-85d3-d9296a936a68
Ancestors: Kernel-mt.1383

Another attempt at fixing #testHandlerFromAction. Unlike previous attempts, this one preserves the expectations of #testHandlerReentrancy.

The solution is to de-activate the handlers as we backtrack the stack, but to reactivate them before performing final exception handling actions (like resuming, resignalling or performing defaultAction). Indeed, those handlers must be able to handle a secondary exception raised in the course of this action.

by Dave Lewis (lewis@mail.msen.com) at May 02, 2021 02:05 PM

source.squeak.org

Kernel-jar.1399

Fix inconsistent implementation of an explicit and an implicit exception return.

I'd like to return to my original proposal in http://forum.world.st/The-Inbox-Kernel-nice-1391-mcz-tp5129040p5129084.html. The problem then was a bug in #outer that confused me. The bug has been fixed and the original proposal in my opinion makes sense again - to unify how the two kinds of exception return are implemented. Theoretically it's possible to change the #return definition in the future and then the two returns would diverge.

May 02, 2021 01:12 PM

May 01, 2021

source.squeak.org

FFI-Tools-mt.22

Adds interface to enumerate fields (name and type) in structure types. Use that interface to show more structure in ObjectExplorer on such types.

I could not really decide on whether to prepend or append those new fields in the object explorer. For a larger structure type, you might have to scroll down to discover the basic "compiledSpec" etc. ...

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 01, 2021 04:32 PM

FFI-Kernel-mt.124

Removes deprecated collection interface from ExternalData.

Nukes unused instVar 'fieldTypes' in structure types. I could not remember what I planned to do with it. Could not find it on squeak-dev either.

Extends print-string for external types with byteSize and byteAlignment. It does not look too noisy. I hope it will help remind programmers about the bytes they are working with. Well, if it becomes too noisy, we could make it a preference.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 01, 2021 04:29 PM

Monticello-ct.746

Fixes and cleans up snapshot creation in MCVersionHistoryBrowser.

Instead of scanning the global repository group for a version, ask the current package for its specific repository group. Make sure to always pass the package. Nuke unused instvar repositoryGroup.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 01, 2021 01:59 PM

Morphic-ct.1769

Make SystemWindow's paneColor more robust against missing models. Avoid translucent color.

May 01, 2021 12:12 PM

Compiler-ct.459

Recategorizes OutOfScopeNotification>>#defaultAction

May 01, 2021 12:01 PM

Tools-mt.1054

Adds preference and means to embed a transcript in workspaces. Thanks to Jaromir (jar) for the idea!

The preference is disabled by default.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 01, 2021 10:06 AM

FFI-Callbacks-mt.10

Maybe, at some point, we will be able to configure blocks as FFI callbacks more conveniently. Here is an example of how to invoke the block with example objects to derive the signature to be used for FFI. (Not working; just a sketch)

May 01, 2021 09:01 AM

FFI-Callbacks-mt.9

Restructure callback examples. Adds a fourth example that sorts integers.

Complements FFI-Kernel-mt.123.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 01, 2021 08:24 AM

FFI-Kernel-mt.123

Given that we usually talk to external types or external structures (and unions ...) where #allocate: is the current pattern to prepare a list of such things, use #allocateExternal: to allocate external memory, not internal object memory.

While this conflicts with ExternalAddress class #allocate:, clients might not notice because they should usually not deal with the difference between handles being either ByteArray or ExternalAddress (or atomics). I suppose.

Let #free for handles being ExternAdress also null that address. Maybe we could establish a common prototype for a null-address?

(Removes duplicate #isExternalAddress.)

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 01, 2021 08:22 AM

FFI-Callbacks-mt.8

In callbacks. resolve one level of indirection so that callbacks can directly work with atomic values or instances of external structures.

This might conflict with the current lack of support for n-ary pointer types.

May 01, 2021 07:32 AM

FFI-Callbacks-mt.7

Fixes regression. I forgot to resolve materialize pointers from integers when reading intRegArgs.

(For debugging, adds #mostRecent shortcut to FFICallbackContext class.)

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 01, 2021 07:06 AM

FFI-Callbacks-mt.6

Adds register lookup for dynamic callback evaluation. Based on the assumption that a callback context is only used once per callback.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 01, 2021 06:27 AM

FFI-Kernel-mt.122

Adds check to separate integer types from float types. There already is #isIntegerType. For example, callback handles can use this to choose between integer-registers and float-registers easily based on argument types.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 01, 2021 06:25 AM

Morphic-ct.1768

Fixes a GrafPort bug when drawing round rectangle frames. In the past, the horizontal segments were too wide.

Original snippet to reproduce (provided by Marcel, mt):

morph := Morph new.
morph
extent: 500@500;
borderWidth: 50;
borderColor: Color red;
cornerStyle: #rounded;
cornerRadius: 20;
yourself.
morph openInHand.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 01, 2021 05:09 AM

April 30, 2021

source.squeak.org

KernelTests-nice.403

Add two tests for isDenormal and isFinite

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at April 30, 2021 08:07 PM

Kernel-nice.1391

Remove the questionable ifCurtailed: block that did reactivate the handler in handleSignal:, and make the handling symetric, whether the handlerAction explicitily use exception return or not.

Document the mysterious tempAt:/tempAt:put: intention by using proper method names as requested by Marcel.
The slowdown shall be marginal, and system understanding should be improved.

Provide messages to selectively reactivate some handler contexts. For gurus: handle with care!

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at April 30, 2021 07:49 PM

April 27, 2021

source.squeak.org

ToolBuilder-Kernel-nice.143

Evaluate the new work block upon #sendNotificationsTo: in the context that sent the ProgressInitiationException signal

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at April 27, 2021 11:59 AM

ToolBuilder-Kernel-nice.144

Fix ProgressInitiationException>>sendNotificationsTo: so that:
- the ProgressInitiationException remains inactive during workBlock evaluation
- unlesse explicitely rearmed
- active inner handlers remain active during workBlock evaluation

For the last goal, it is necessary to first resume, then evaluate the workBlock, hence usage of #resumeEvaluating:
This goes with Kernel-nice.1394 which implements this method as well as upgraded signal handling.

But if we resume, then we also reactivate current handler.
Generally, we do not want to reactivate current handler, unless explicit rearmHandlerDuring:, thus the intricated activate/deactivate dance.

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at April 27, 2021 11:51 AM

April 26, 2021

source.squeak.org

MorphicExtras-mt.295

Sorry for the noise. :-)

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at April 26, 2021 01:08 PM

MorphicExtras-mt.294

Adds missing example for moving-eye morph.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at April 26, 2021 01:08 PM

HelpSystem-Core-ct.117

Convenience method for subtopic lookup

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at April 26, 2021 01:05 PM

HelpSystem-Core-ct.118

HelpBrowser: Add + refactor instance creation methods

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at April 26, 2021 01:05 PM

HelpSystem-Core-ct.119

Adds a simple menu to HelpBrowser (inspect + explore topic)

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at April 26, 2021 01:05 PM

HelpSystem-Core-ct.120

Adds browse entry into the HelpBrowser menu

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at April 26, 2021 01:05 PM

HelpSystem-Core-ct.122

Refines accepting text in HelpBrowser

- Revise use of #clearUserEdits and isUpdating
- Use the right #accept: return pattern (Boolean or False)
- Catch an edge case when you try to write something into a nested ClassBasedHelpTopic
- Mark saved methods with a #generated pragma; ask user before overwriting non-auto-generated methods to avoid discarding manual code (such as in SqueakToolsDebuggerHelp>>#usingTheDebugger)

Depends on Tools-ct.894.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at April 26, 2021 01:05 PM

HelpSystem-Core-ct.123

Refactors HelpBrowser menu: Move menu stuff from HelpBrowser into HelpTopic hierarchy in favor of a better object design

Thanks again, Marcel :-)

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at April 26, 2021 01:05 PM

Tools-mt.1045

Tweak browser re-use to only consider the current class if that new browser does not care, which is the case for ivoking browsers from the smart search.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at April 26, 2021 07:56 AM

Morphic-mt.1761

Avoid reusing a window if it is the requesting window. This is useful for the "browse" button in the system browser or even for the "hierarchy" button in the hierarchy browser if the hierarchy is the same. A common yet simple way to duplicate a window without using a halo. Since this is an explicit user interaction, it is not expected to interfere with the "re-use windows" preference. I suppose. :-)

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at April 26, 2021 07:45 AM

Tools-mt.1044

Complements Morphic-mt.1760.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at April 26, 2021 07:13 AM

Morphic-mt.1760

Fixes a regression for "re-use windows" in smart search. Thanks Christoph (ct)!

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at April 26, 2021 07:10 AM

April 16, 2021

squeaksource.com

WebCounter-rzm.1

empty log message

by Ryan (ryanmarion012@gmail.com) at April 16, 2021 10:30 PM

PostgresV3-Core-ul.35

- PG3Connection >> #isConnected shouldn't raise an error

by Levente Uzonyi (leves@elte.hu) at April 16, 2021 06:11 PM

April 15, 2021

squeaksource.com

Preserves-tonyg.14

PreservesReader >> upToEnd

by Tony Garnock-Jones (tonyg@leastfixedpoint.com) at April 15, 2021 07:25 AM

April 14, 2021

squeaksource.com

SBE-Quinto-Heiko.V01

empty log message

by Heiko (heikos@online.de) at April 14, 2021 07:25 PM

March 30, 2021

squeaksource.com

Kernel.V3-dtl.1383

Name: Kernel-mt.1383
Author: mt
Time: 26 March 2021, 12:51:18.904073 pm
UUID: 524a87b1-28d6-f044-8a9a-4ca045211ac1
Ancestors: Kernel-ct.1382

Merges Kernel-ct.1382

by Dave Lewis (lewis@mail.msen.com) at March 30, 2021 10:54 PM

Kernel.V3-dtl.1382

Name: Kernel-ct.1382
Author: ct
Time: 15 March 2021, 1:52:03.249869 pm
UUID: e108423f-661f-4d4f-9ad8-c667c3995b32
Ancestors: Kernel-mt.1381

Proposal: Revises usage and handling of primitive 19, also known as the simulation guard. Don't use it in #newProcess and variants since they don't involve any actual control logic. Instead, also show a simulation warning when debugging a control primitive (primitiveSignal primitiveWait primitiveResume primitiveSuspend). Improves integration of simulation guard warnings by signaling a Warning on the simulator stack rather than spawning a debugger on the debugged process. This also makes it easier to handle these warnings in a non-interactive context. See http://forum.world.st/Simulation-guard-lt-primitive-19-gt-crashes-the-image-td5127443.html and http://forum.world.st/Please-try-out-Fixes-for-debugger-invocation-during-code-simulation-td5127684.html for more information.

Reuploaded to resolve merge conflict with Kernel-mt.1381. Replaces Kernel-ct.1381, which can be moved into the treated inbox.

by Dave Lewis (lewis@mail.msen.com) at March 30, 2021 10:53 PM

System.V3-dtl.1224

Name: System-tonyg.1224
Author: tonyg
Time: 29 March 2021, 10:15:02.279821 am
UUID: 9d897d72-46fc-4205-a27b-89c7a50ac104
Ancestors: System-mt.1223

Teach SystemOrganizer about multiple environments.

by Dave Lewis (lewis@mail.msen.com) at March 30, 2021 10:50 PM

System.V3-dtl.1223

Name: System-mt.1223
Author: mt
Time: 26 March 2021, 12:36:58.297513 pm
UUID: a5df7ebb-e1e7-304c-85e5-61d01132f0bd
Ancestors: System-mt.1222

Adds hook to browse environments.

by Dave Lewis (lewis@mail.msen.com) at March 30, 2021 10:43 PM

March 29, 2021

squeaksource.com

Preserves-tonyg.5

Repair class-side initialize.

by Tony Garnock-Jones (tonyg@leastfixedpoint.com) at March 29, 2021 01:59 PM

Snarl-tonyg.9

Repair class-side initialize.

March 29, 2021 01:58 PM

BitSyntax-Examples-tonyg.7

Repair class-side initialize.

by Tony Garnock-Jones (tonyg@leastfixedpoint.com) at March 29, 2021 01:57 PM

Preserves-tonyg.4

Schema compiler

by Tony Garnock-Jones (tonyg@leastfixedpoint.com) at March 29, 2021 06:58 AM

March 22, 2021

squeaksource.com

OSProcess-dtl.124

Minor compatibility update to allow a test to run on Cuis

by John-Reed Maffeo (jrmaffeo@gmail.com) at March 22, 2021 04:24 PM

OTAR-jrm.11

Re-syncing development images on Pi-4 and Pi-3. This version, running on Pi-4, is on a 1 hour loop and producing fair results. Priority sifting needs work.

I am going to start working on Pi-3 and I will have to figure out how to migrate changes to Pi-3

by John-Reed Maffeo (jrmaffeo@gmail.com) at March 22, 2021 04:24 PM

March 21, 2021

squeaksource.com

Compiler.V3-dtl.455

Name: Compiler-tobe.455
Author: tobe
Time: 11 March 2021, 1:50:12.615385 pm
UUID: ba3e2f61-8c2a-4dcf-a288-f6e81db4eda1
Ancestors: Compiler-codefrau.454

Fix scanAllTokenPositionsInto: when the text of a comment happened to appear just before it. See testScanTokensRepeatComment for an example.

by Dave Lewis (lewis@mail.msen.com) at March 21, 2021 12:43 AM

System.V3-dtl.1222

Name: System-mt.1222
Author: mt
Time: 15 March 2021, 11:20:11.977586 am
UUID: 6148616b-707b-654f-8306-990a1e3f3bf6
Ancestors: System-mt.1221

Complements Kernel-mt.1381

Fixes for debugger invocation during code simulation. See http://forum.world.st/Please-try-out-Fixes-for-debugger-invocation-during-code-simulation-td5127684.html

by Dave Lewis (lewis@mail.msen.com) at March 21, 2021 12:23 AM

System.V3-dtl.1221

Name: System-mt.1221
Author: mt
Time: 5 March 2021, 9:30:06.646653 am
UUID: faeeebfe-1564-e743-8e5a-8c26460ca3ad
Ancestors: System-mt.1220, System-ct.1220

Merge.
> Adds Jaromir Matas (jar) to the authors list. A late welcome aboard! :

by Dave Lewis (lewis@mail.msen.com) at March 21, 2021 12:21 AM

System.V3-dtl.1220

Name: System-mt.1220
Author: mt
Time: 4 March 2021, 1:35:25.601178 pm
UUID: d5324489-3128-a944-a52b-faf8d4c8ef23
Ancestors: System-mt.1219

Squeak was migrated from travis-ci.org to travis-ci.com. The former will be shutting down soon.

by Dave Lewis (lewis@mail.msen.com) at March 21, 2021 12:19 AM

Collections.V3-dtl.931

Name: Collections-dtl.931
Author: dtl
Time: 11 March 2021, 5:44:43.577146 pm
UUID: 1ed239e3-d108-43c3-8b6e-de8c43d842d1
Ancestors: Collections-nice.930

Set logic methods should be discoverable, so give them a method category. Add an implementation of Collection>>symmetricDifference: so that the basic set operations of union, intersection, difference, and symmetric difference are available.

by Dave Lewis (lewis@mail.msen.com) at March 21, 2021 12:13 AM

Collections.V3-dtl.930

Name: Collections-nice.930
Author: nice
Time: 8 March 2021, 3:46:35.811868 pm
UUID: 923d86a7-1d60-4d7f-975a-c20e365efc5a
Ancestors: Collections-nice.929

Fix my horrible bug before it gets noticed **Blush**

I stupidely tested against Array (good) with #yourself as the collect: block (bad idea!)

by Dave Lewis (lewis@mail.msen.com) at March 21, 2021 12:12 AM

Collections.V3-dtl.929

Name: Collections-nice.929
Author: nice
Time: 4 March 2021, 6:55:05.090663 pm
UUID: 6e327843-eedc-4eeb-ba1b-0e14d4f40e56
Ancestors: Collections-nice.928

Don't hardcode Interval and LimitedPrecisionInterval so as to enable subclassing.

Note: a subclass wanting to handle limited precision bounds or increment by itself should define:

limitedPrecisionSpecies
^self.

This is not the case of TextLineInterval that only ever see Integer bounds.

by Dave Lewis (lewis@mail.msen.com) at March 21, 2021 12:11 AM

Collections.V3-dtl.928

Name: Collections-nice.928
Author: nice
Time: 3 March 2021, 3:29:05.70662 pm
UUID: ef9658c8-ef7e-a943-8ffc-de7546b29f2f
Ancestors: Collections-nice.927, Collections-nice.634

Merge Collections-nice.634 (Implement replace: in Dictionary)

by Dave Lewis (lewis@mail.msen.com) at March 21, 2021 12:10 AM

Collections.V3-dtl.927

Name: Collections-nice.927
Author: nice
Time: 3 March 2021, 3:10:15.18162 pm
UUID: a5b8a84d-ad99-754f-8960-88c04b17d8d3
Ancestors: Collections-nice.926

Remaster Collections-nice.869 & Collections-nice.464: opimize RunArray

This should not be noticeable for Text, but as a general library, it's important for any other potential use.

- Move RunArray off ArrayedCollection which serves nothing to such subclass.
- Add the ability to remove: since it already has the hability to addFirst: and addLast:
- Fix a few missing lastIndex cache flush, and advertise about the necessity to do it in class comment.
- prefer replace: to mapValues:, as it is a more generic Collection idiom

Notice that this DOES NOT import one major change of Collections-nice.869:
the enumerating methods like #collect: will continue to iterate on each element, rather than only once per run, so as to preserve side effects.
Thus Collections-nice.869 remains in inbox until larger acceptation occurs.

by Dave Lewis (lewis@mail.msen.com) at March 21, 2021 12:08 AM

Collections.V3-dtl.926

Name: Collections-nice.926
Author: nice
Time: 3 March 2021, 10:46:01.17162 am
UUID: bb5d2ec0-d044-c54f-9e8a-5442626c7573
Ancestors: Collections-nice.925

Fix LimitedPrecisionInterval>>collect: it should avoid accumulating increments which also accumulates rounding errors and make collect: behavior diverge from do:.

Rather than modifying Interval>>collect:, implement the specific inexact arithmetic handling in specific subclass.

Do the same with do: and reverseDo:. This enables restoring the legacy Interval enumerations which perform only one operation per loop instead of two.

Do not check rangeIncludes: in indexOf:startingAt:. This is useless foe exact Interval, and now redundant for LimitedPrecisionInterval thanks to more carefull implementation of #size.

by Dave Lewis (lewis@mail.msen.com) at March 21, 2021 12:04 AM

Collections.V3-dtl.925

Name: Collections-nice.925
Author: nice
Time: 3 March 2021, 2:14:13.09562 am
UUID: ee92856e-98d1-3a41-a3f2-3529927e7a02
Ancestors: Collections-jar.924

Distinguish questionable LimitedPrecisionInterval (those with Float bounds or step) from ordinary Interval of Integer, Fraction or ScaledDecimals.

The main interest of having a specific class is to avoid crippling Interval with Float workarounds, for the rare use case.

Explain some of the pitfalls of LimitedPrecisionInterval, and encourage alternatives in class comment, which is a second advantage of having a separate class.

Abandon fuzzy inclusion logic, which is considered to introduce more discrepancies than it tries to solve
See http://bugs.squeak.org/view.php?id=6455.
and method #testSurprisingFuzzyInclusion

Fix two other failing tests for Interval of Floats.

Fix size so that (0.3 to: 1.2 by: 0.1) includes: 1.2.
See https://github.com/dolphinsmalltalk/Dolphin/issues/1108
This makes size a bit less performant than super, a 3rd reason why a specific class is neat.

Huh, that's more comments than code ;).

by Dave Lewis (lewis@mail.msen.com) at March 21, 2021 12:03 AM

March 20, 2021

squeaksource.com

Kernel.V3-dtl.1381

Name: Kernel-mt.1381
Author: mt
Time: 15 March 2021, 11:19:02.546586 am
UUID: 11976771-8ccb-e941-83da-2ae26c3a9f55
Ancestors: Kernel-mt.1380

Fixes for debugger invocation during code simulation. See http://forum.world.st/Please-try-out-Fixes-for-debugger-invocation-during-code-simulation-td5127684.html

by Dave Lewis (lewis@mail.msen.com) at March 20, 2021 11:58 PM