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 15, 2019

source.squeak.org

ToolBuilder-Kernel-mt.126

Minor improvement of the latest class-search changes. Thanks to Kjell Godo.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 15, 2019 04:00 PM

ToolBuilder-Kernel-mt.125

Updates the search for class names using the new find-features feature on strings. Find WeakIdentityKeyDictionary (in a small list of results) with any of the following patterns:

WKD
Weak*Dict*
WeakDict
WeakIdentityKeyDictionary

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 15, 2019 07:17 AM

July 13, 2019

squeaksource.com

SSH-rww.14

reworking into the ThunkStack

by Robert Withers (robert.withers@protonmail.com) at July 13, 2019 04:51 PM

SSH-rww.14

reworking into the ThunkStack

by Alan Pinch (alan.c.pinch@gmail.com) at July 13, 2019 04:51 PM

SSL-rww.21

reworking into the ThunkStack

by Robert Withers (robert.withers@protonmail.com) at July 13, 2019 04:50 PM

SSL-rww.21

reworking into the ThunkStack

by Alan Pinch (alan.c.pinch@gmail.com) at July 13, 2019 04:50 PM

ParrotTalk-rww.32

abstract the SessionOperations superclass

by Alan Pinch (alan.c.pinch@gmail.com) at July 13, 2019 04:49 PM

ParrotTalk-rww.32

abstract the SessionOperations superclass

by Robert Withers (robert.withers@protonmail.com) at July 13, 2019 04:49 PM

System.V3-dtl.1071

Name: System-mt.1071
Author: mt
Time: 12 July 2019, 10:02:46.159568 am
UUID: dc0cb024-484b-a145-af9c-e10b103db241
Ancestors: System-mt.1070

Refactoring of #literalsDo: - Step 3 of 3.

For more information, see http://forum.world.st/Please-Review-Refactoring-for-literalsDo-etc-tp5099756p5100896.html.

by Dave Lewis (lewis@mail.msen.com) at July 13, 2019 12:27 PM

Kernel.V3-dtl.1245

Name: Kernel-mt.1245
Author: mt
Time: 12 July 2019, 10:02:20.401568 am
UUID: 2ce0ef20-a760-4d4a-b6bd-c4383a6efd4d
Ancestors: Kernel-mt.1244

Refactoring of #literalsDo: - Step 3 of 3.

For more information, see http://forum.world.st/Please-Review-Refactoring-for-literalsDo-etc-tp5099756p5100896.html.

by Dave Lewis (lewis@mail.msen.com) at July 13, 2019 12:24 PM

Collections.V3-dtl.843

Name: Collections-mt.843
Author: mt
Time: 12 July 2019, 10:01:59.574568 am
UUID: 7eec09f6-7031-2b40-af5a-8468dba01848
Ancestors: Collections-mt.842

Refactoring of #literalsDo: - Step 3 of 3.

For more information, see http://forum.world.st/Please-Review-Refactoring-for-literalsDo-etc-tp5099756p5100896.html.

by Dave Lewis (lewis@mail.msen.com) at July 13, 2019 12:21 PM

Kernel.V3-dtl.1244

Name: Kernel-mt.1244
Author: mt
Time: 12 July 2019, 9:59:41.866568 am
UUID: d585f898-09cc-094b-98ed-a74204c82019
Ancestors: Kernel-mt.1243

Refactoring of #literalsDo: - Step 2 of 3.

For more information, see http://forum.world.st/Please-Review-Refactoring-for-literalsDo-etc-tp5099756p5100896.html.

by Dave Lewis (lewis@mail.msen.com) at July 13, 2019 12:06 PM

July 12, 2019

source.squeak.org

Cog-eem.356

Fix an assertion failure with the 32-to-64-bit bootstrap when SmallFloat64 has been assigned the correct hash but hasn't been added to the class table.

by Eliot Miranda (eliot.miranda@gmail.com) at July 12, 2019 10:37 PM

July 05, 2019

source.squeak.org

Chronology-Core-dtl.48

Fix fallback code for primPosixMicrosecondClockWithOffset: to not allow DateAndTime class>>now to create an instance with nil instance variables. Previous fallback code was a cut and paste error, never worked as intended.

Rationale for the fallback handling: Corrupt DateAndTime can quickly lead to a broken image. A default value of the Posix epoch is easily recognized as un uninitialized DateAndTime.

To test, evaluate "Time clockPolicy: #acceptPlatformTime" and comment out the primitive call in Time class>>primPosixMicrosecondClockWithOffset: to simulate the case of a VM that does not provide primitiveUtcWithOffset. In this case, DateAndTime now produces 1970-01-01T00:00:00+00:00. After testing, do Time initialze to restore clock policy.

July 05, 2019 05:08 PM

Morphic-cmfcmf.1490

When wrapping a Morph into a flex shell, first add the flex shell to the Morph's owner (and thus to the Morph's world) before making the Morph a submorph of the flex shell.
This avoids unnecessarily sending outOfWorld: to the Morph when adding it to the new flex shell (which doesn't have a world after creation) and intoWorld: when adding the flex shell to the Morph's owner right thereafter.

by David T. Lewis (lewis@mail.msen.com) at July 05, 2019 03:36 PM

CollectionsTests-mt.313

Adds tests for Collections-mt.839.

July 05, 2019 02:55 PM

Collections-mt.839

Improves code commentary, structure, and performance. Thanks Levente for the tips!

(Adds tests for #findFeatures in CollectionsTests-mt.313).

July 05, 2019 02:54 PM

Tests-mt.412

Fixes max-literals test for EncoderV3* (i.e., pre-SistaV1).

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 05, 2019 02:19 PM

July 04, 2019

source.squeak.org

Collections-mt.838

To String, adds simple analysis of natural language in source code. No word stemming.

1) Refactor #findTokens: to look like #lines (i.e. #linesDo: and #lineIndicesDo:).
2) Add #findFeaturesDo: like #findTokens:do: and #linesDo:.

Try this:

HTTPDownloadRequest name findFeatures.
(Morph >> #drawOn:) getSource asString findFeatures.

Where can that be useful?

- Automatic insertion of "*" for search terms like "WeakDictionary" to also find WeakIdentityDictionary etc.
- Prefix emphasis for names lists of classes in code browsers: MCAddition, MCAncestry, etc.

July 04, 2019 02:32 PM

July 03, 2019

source.squeak.org

ToolBuilder-Morphic-mt.228

Makes pluggable check-box morph compatible with UI themes.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 03, 2019 05:16 PM

Collections-pre.838

Two method additions to Collection. The first adds ordered printing to OrderedDictionaries, to allow users to actually see the ordering. The second adds a method to convert a run array into an expanded version of the runs.

by Patrick Rein (patrick.rein@gmail.com) at July 03, 2019 01:23 PM

Collections-pre.839

Adds ordered printing to OrderedDictionaries, to allow users to actually see the ordering.

by Patrick Rein (patrick.rein@gmail.com) at July 03, 2019 01:18 PM

squeaksource.com

PostgresV3-CodeMirror-klub.13

- when downloading a function from the database with more than 15 arguments, generate a Smalltalk method with a single array argument

by Levente Uzonyi (leves@elte.hu) at July 03, 2019 08:29 AM

PostgresV3-Core-klub.23

- fixed an edge-case buffer size - readLimit - bytesToKeep bug in PG3SocketReadStream

by Levente Uzonyi (leves@elte.hu) at July 03, 2019 08:29 AM

June 30, 2019

source.squeak.org

Tests-ct.412

Add tests for SyntaxErrorNotification>>#resume:

June 30, 2019 12:11 PM

Compiler-ct.407

Fix SyntaxErrorNotification coverage (see example in http://forum.world.st/The-Inbox-Compiler-ct-404-mcz-tp5100414p5100430.html)

June 30, 2019 12:10 PM

Tools-ct.852

Activate code styling for inspector panes in Debugger

June 30, 2019 11:53 AM

Morphic-cmfcmf.1490

When wrapping a Morph into a flex shell, first add the flex shell to the Morph's owner (and thus to the Morph's world) before making the Morph a submorph of the flex shell.
This avoids unnecessarily sending outOfWorld: to the Morph when adding it to the new flex shell (which doesn't have a world after creation) and intoWorld: when adding the flex shell to the Morph's owner right thereafter.

June 30, 2019 10:08 AM

June 29, 2019

source.squeak.org

Compiler-ct.406

Fix SyntaxErrorNotification>>#messageText implementation (Error>>#messageText is never nil)

June 29, 2019 09:39 PM

Compiler-ct.405

Add resumption logic to SyntaxErrorNotification

June 29, 2019 09:38 PM

Morphic-ct.1492

Refers to Tools-ct.851: Make SyntaxError more convenient: Automatically select error message as known from CodeHolders, and activate styling

June 29, 2019 09:34 PM

Tools-ct.851

Make SyntaxError more convenient: Automatically select error message as known from CodeHolders, and activate styling

June 29, 2019 09:31 PM

Tools-ct.850

Implement #spawn: on SearchBar

(Press <cmd>o to open a Workspace window)

June 29, 2019 01:20 PM

squeaksource.com

System.V3-dtl.1067

Name: System-cmm.1067
Author: cmm
Time: 19 June 2019, 3:38:18.528122 pm
UUID: fbdc8d8a-ce74-4117-9eb3-30bd8d21cc36
Ancestors: System-fn.1066, System-ek.1062

- Exception>>#printVerboseOn: belongs in this package.
- Merged System-ek.1062.

Name: System-ek.1062
Author: ek
Time: 19 June 2019, 3:38:42.256201 pm
UUID: 4643bcbc-558c-4ef7-a550-2aa42261cb50
Ancestors: System-cmm.1061

Rename "sons" to "children" in MessageTally

The rename is to make the terminology consistent with the common naming of tree items (i.e. parent and child).

In MessageTally>>tallyPath:by: and >>tallyPath:in:by: the comments also already use "child".

The current naming caused some confusion with our bachelor student teams.

by Dave Lewis (lewis@mail.msen.com) at June 29, 2019 12:53 PM

June 28, 2019

source.squeak.org

FFI-Pools-monty.12

changed output format strings

June 28, 2019 08:41 PM

squeaksource.com

Kernel.V3-dtl.1242

Name: Kernel-eem.1242
Author: eem
Time: 25 June 2019, 5:14:28.553444 pm
UUID: b6c4c45a-1a4d-477d-920d-82814551c862
Ancestors: Kernel-ul.1241

Fix Context>>#privRefresh: for full blocks. This bug manifests as the debugger crashing if one restarts a (full) block with any signficant complexity.

Update interpretNext2ByteSistaV1Instruction:for:extA:extB:startPC: with the callMappedInlinedPrimitive: Sista bytecode.

by Dave Lewis (lewis@mail.msen.com) at June 28, 2019 07:56 PM

Kernel.V3-dtl.1241

Name: Kernel-ul.1241
Author: ul
Time: 19 June 2019, 4:35:56.986493 pm
UUID: 630a46a4-296a-4e1c-9976-535b317e9d8c
Ancestors: Kernel-mt.1240

- added missing Object >> #perform:with:with:with:with:with: based on primitive 83
- added missing implementation of #value:value:value:value:value: based on primitives 205, 207 and 83
- MessageSend >> #value:value:value:value: uses #perform:with:with:with:with:

by Dave Lewis (lewis@mail.msen.com) at June 28, 2019 07:55 PM

Collections.V3-dtl.837

Name: Collections-pre.837
Author: pre
Time: 24 June 2019, 1:52:53.529208 pm
UUID: 182f9f97-631a-064e-a5f8-c4d060b4253f
Ancestors: Collections-pre.836

Extends the #asOctetString comment.

by Dave Lewis (lewis@mail.msen.com) at June 28, 2019 07:51 PM

source.squeak.org

Collections-pre.838

Two method additions to Collection. The first adds ordered printing to OrderedDictionaries, to allow users to actually see the ordering. The second adds a method to convert a run array into an expanded version of the runs.

by Patrick Rein (patrick.rein@gmail.com) at June 28, 2019 10:11 AM

June 27, 2019

source.squeak.org

FFI-Kernel-eem.63

Add or update two class comments and recategorise a method. These are not the changes you are looking for.

by Eliot Miranda (eliot.miranda@gmail.com) at June 27, 2019 07:53 PM

FFI-Kernel-rsf.62

I added support to specify additional alignment constraints to ExternalStructures.

by Eliot Miranda (eliot.miranda@gmail.com) at June 27, 2019 07:42 PM

June 22, 2019

squeaksource.com

CommandShell-dtl.100

Additional test to document incorrect handling of standard input on oscog VMs when reading simple strings from stdin in a forked image. Rename a test method from the last update.

by Dave Lewis (lewis@mail.msen.com) at June 22, 2019 06:13 PM

CommandShell-Tests-dtl.17

Additional test to document incorrect handling of standard input on oscog VMs when reading simple strings from stdin in a forked image. Rename a test method from the last update.

by Dave Lewis (lewis@mail.msen.com) at June 22, 2019 06:13 PM

WASM-edc.39

empty log message

June 22, 2019 02:29 PM

June 21, 2019

source.squeak.org

Installer-Core-mt.433

Fixes bug in Metacello update code in Installer. Only occurred when calling #ensureRecentMetacello in an image that has Metacello installed already.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 21, 2019 12:48 PM

June 17, 2019

source.squeak.org

Compiler-ct.404

Fix a defect in Parser>>#parseCue:noPattern:ifFail:

Full failure case description:

Run the following statement:
Compiler evaluate: ''''''''
In the appearing error window, enter any valid smalltalk expression and save it. Before loading this commit, it will give you a NonBooleanError as doItFlag was set too late (and so was not passed to SyntaxErrorNotification).

June 17, 2019 08:51 PM

squeaksource.com

M4P-sd.5

Add a method to play a random episode

by Sourav Datta (soura.jagat@gmail.com) at June 17, 2019 04:07 PM

M4P-sd.4

Fix platform name for unix

by Sourav Datta (soura.jagat@gmail.com) at June 17, 2019 03:53 PM

M4P-souravdatta.3

Empty commit

by Sourav Datta (soura.jagat@gmail.com) at June 17, 2019 07:31 AM

June 16, 2019

squeaksource.com

CommandShell-dtl.98

CommandShell 4.7.2
Support for Pharo 7. Use Opal compiler and update unit tests accordingly

by Dave Lewis (lewis@mail.msen.com) at June 16, 2019 04:01 PM

CommandShell-Base-dtl.64

CommandShell 4.7.2
Support for Pharo 7. Use Opal compiler and update unit tests accordingly

by Dave Lewis (lewis@mail.msen.com) at June 16, 2019 04:01 PM

CommandShell-Piping-dtl.23

CommandShell 4.7.2
Support for Pharo 7. Use Opal compiler and update unit tests accordingly

by Dave Lewis (lewis@mail.msen.com) at June 16, 2019 04:01 PM

CommandShell-Tests-dtl.15

CommandShell 4.7.2
Support for Pharo 7. Use Opal compiler and update unit tests accordingly

by Dave Lewis (lewis@mail.msen.com) at June 16, 2019 04:01 PM

ConfigurationOfM4P-sd.1

A configuration file - with errors

by Sourav Datta (soura.jagat@gmail.com) at June 16, 2019 01:28 PM

M4P-sd.1

Initial commit

by Sourav Datta (soura.jagat@gmail.com) at June 16, 2019 01:11 PM

June 09, 2019

squeaksource.com

ParrotTalk-rww.31

I ported initial attempts to subclass an important stateMachine, from each of SSL and SSH, to be rooted at ParrotTalk's SessionOperations. More work is needed, including defining active frameSpecifications that can detect appropriate frames for these new Protocols, in a new FrameAnalyzer, to be used by the new SessionProtocolSelector. I renamed the PaarrotTalk SessionOperations. The current hierarchy of SessionOperations as follows:

SessionOperations...
- ParrotTalkSessionOperations_v3_8
- ParrotTalkSessionOperations_v3_7
- ParrotTalkSessionOperations_v3_6
- SSLHandshakeStateMachine
- SSHTransportHandshakeStateMachine

by Alan Pinch (alan.c.pinch@gmail.com) at June 09, 2019 01:01 AM

ParrotTalk-rww.31

I ported initial attempts to subclass an important stateMachine, from each of SSL and SSH, to be rooted at ParrotTalk's SessionOperations. More work is needed, including defining active frameSpecifications that can detect appropriate frames for these new Protocols, in a new FrameAnalyzer, to be used by the new SessionProtocolSelector. I renamed the PaarrotTalk SessionOperations. The current hierarchy of SessionOperations as follows:

SessionOperations...
- ParrotTalkSessionOperations_v3_8
- ParrotTalkSessionOperations_v3_7
- ParrotTalkSessionOperations_v3_6
- SSLHandshakeStateMachine
- SSHTransportHandshakeStateMachine

by Robert Withers (robert.withers@protonmail.com) at June 09, 2019 01:01 AM

Telnet-rww.105

Ported in http://squeakvm.org/unix/goodies/PseudoTTY-3.2-4.st into this Telnet package.

by Robert Withers (robert.withers@protonmail.com) at June 09, 2019 12:39 AM

Telnet-rww.105

Ported in http://squeakvm.org/unix/goodies/PseudoTTY-3.2-4.st into this Telnet package.

by Alan Pinch (alan.c.pinch@gmail.com) at June 09, 2019 12:39 AM

Telnet-rww.104

Ensured that the rip off of ProtocolState in ParrotTalk remains viable. This class originally came from the telnet change script, http://squeakvm.org/unix/goodies/telnet.301.cs, published by Ian Piumarta. Yay, Ian! http://piumarta.com/cv/bio.html

by Robert Withers (robert.withers@protonmail.com) at June 09, 2019 12:34 AM

Telnet-rww.104

Ensured that the rip off of ProtocolState in ParrotTalk remains viable. This class originally came from the telnet change script, http://squeakvm.org/unix/goodies/telnet.301.cs, published by Ian Piumarta. Yay, Ian! http://piumarta.com/cv/bio.html

by Alan Pinch (alan.c.pinch@gmail.com) at June 09, 2019 12:34 AM

ParrotTalk-rww.30

ensured ProtoclState is defined here, used by the statemaps. This class I had forgetten where I had harvested. It turns out this class was originally from http://squeakvm.org/unix/goodies/telnet.301.cs. Yay Ian Piumarta! http://piumarta.com/cv/bio.html

by Robert Withers (robert.withers@protonmail.com) at June 09, 2019 12:32 AM

ParrotTalk-rww.30

ensured ProtoclState is defined here, used by the statemaps. This class I had forgetten where I had harvested. It turns out this class was originally from http://squeakvm.org/unix/goodies/telnet.301.cs. Yay Ian Piumarta! http://piumarta.com/cv/bio.html

by Alan Pinch (alan.c.pinch@gmail.com) at June 09, 2019 12:32 AM

SSL-rww.20

ported to ParrotTalk-rww.30

by Alan Pinch (alan.c.pinch@gmail.com) at June 09, 2019 12:24 AM

SSL-rww.20

ported to ParrotTalk-rww.30

by Robert Withers (robert.withers@protonmail.com) at June 09, 2019 12:24 AM

SSH-rww.13

ported to ParrotTalk-rww.30

by Robert Withers (robert.withers@protonmail.com) at June 09, 2019 12:24 AM

SSH-rww.13

ported to ParrotTalk-rww.30

by Alan Pinch (alan.c.pinch@gmail.com) at June 09, 2019 12:24 AM

Telnet-rww.103

ported http://squeakvm.org/unix/goodies/telnet.301.cs to ParrotTalk

by Robert Withers (robert.withers@protonmail.com) at June 09, 2019 12:23 AM

June 08, 2019

squeaksource.com

ParrotTalk-rww.29

Reworking the intial Session stack to have a SessionOperations which does PAPS: ParrotTalk Automated Protocol Selection. http://callistohouse.club/index.php/2019/06/08/redesigning-parrottalk-for-automated-protocol-selection/ **Leaves**
8.4% {813ms} ByteArray>>bitXor:
7.2% {696ms} LargePositiveInteger(Integer)>>bitShift:
6.7% {648ms} SHA1>>hashStream:
6.2% {604ms} ThirtyTwoBitRegister>>leftRotateBy:
6.0% {581ms} SmallInteger(Number)>>negative
5.4% {524ms} SHA1>>finalHash
5.1% {491ms} ThirtyTwoBitRegister>>+=
4.7% {457ms} ThirtyTwoBitRegister>>load:
4.7% {450ms} ProcessorScheduler class>>idleProcess
4.5% {440ms} ThirtyTwoBitRegister>>bitXor:
3.4% {331ms} [] SystemProgressMorph(Morph)>>updateDropShadowCache
2.8% {267ms} ThirtyTwoBitRegister class>>new
2.5% {237ms} Array(SequenceableCollection)>>do:
2.4% {229ms} ThirtyTwoBitRegister>>asInteger
2.1% {206ms} LargePositiveInteger(Integer)>>asByteArrayOfSize:
1.9% {182ms} ReadStream(PositionableStream)>>atEnd
1.6% {157ms} ThirtyTwoBitRegister>>bitAnd:
1.6% {152ms} GrafPort(BitBlt)>>basicDisplayString:from:to:at:strikeFont:kern:
1.5% {143ms} [] Delay>>wait
1.4% {138ms} SmallInteger>>digitLength
1.4% {132ms} DisplayScreen(Form)>>depth
1.3% {129ms} Point>>=
1.2% {118ms} SmallInteger>>bitShift:

**Memory**
old +0 bytes
young -1,758,392 bytes
used -1,758,392 bytes
free +1,758,392 bytes

**GCs**
full 0 totalling 0 ms (0% uptime)
incr 955 totalling 187 ms (1.9% uptime), avg 0.2 ms
tenures 7,506 (avg 0 GCs/tenure)
root table 0 overflows

by Alan Pinch (alan.c.pinch@gmail.com) at June 08, 2019 11:03 AM

ParrotTalk-rww.29

Reworking the intial Session stack to have a SessionOperations which does PAPS: ParrotTalk Automated Protocol Selection. http://callistohouse.club/index.php/2019/06/08/redesigning-parrottalk-for-automated-protocol-selection/ **Leaves**
8.4% {813ms} ByteArray>>bitXor:
7.2% {696ms} LargePositiveInteger(Integer)>>bitShift:
6.7% {648ms} SHA1>>hashStream:
6.2% {604ms} ThirtyTwoBitRegister>>leftRotateBy:
6.0% {581ms} SmallInteger(Number)>>negative
5.4% {524ms} SHA1>>finalHash
5.1% {491ms} ThirtyTwoBitRegister>>+=
4.7% {457ms} ThirtyTwoBitRegister>>load:
4.7% {450ms} ProcessorScheduler class>>idleProcess
4.5% {440ms} ThirtyTwoBitRegister>>bitXor:
3.4% {331ms} [] SystemProgressMorph(Morph)>>updateDropShadowCache
2.8% {267ms} ThirtyTwoBitRegister class>>new
2.5% {237ms} Array(SequenceableCollection)>>do:
2.4% {229ms} ThirtyTwoBitRegister>>asInteger
2.1% {206ms} LargePositiveInteger(Integer)>>asByteArrayOfSize:
1.9% {182ms} ReadStream(PositionableStream)>>atEnd
1.6% {157ms} ThirtyTwoBitRegister>>bitAnd:
1.6% {152ms} GrafPort(BitBlt)>>basicDisplayString:from:to:at:strikeFont:kern:
1.5% {143ms} [] Delay>>wait
1.4% {138ms} SmallInteger>>digitLength
1.4% {132ms} DisplayScreen(Form)>>depth
1.3% {129ms} Point>>=
1.2% {118ms} SmallInteger>>bitShift:

**Memory**
old +0 bytes
young -1,758,392 bytes
used -1,758,392 bytes
free +1,758,392 bytes

**GCs**
full 0 totalling 0 ms (0% uptime)
incr 955 totalling 187 ms (1.9% uptime), avg 0.2 ms
tenures 7,506 (avg 0 GCs/tenure)
root table 0 overflows

by Robert Withers (robert.withers@protonmail.com) at June 08, 2019 11:03 AM

June 07, 2019

squeaksource.com

GravatarSDK-bra.5

Update for users not being found

by Bracken Spencer (bracken.spencer@gmail.com) at June 07, 2019 10:57 PM

source.squeak.org

MorphicExtras-tcj.256

Tell TextMorphs in Flaps to wrap at parent boundary, rather than extend across the whole display (as exposed by enabling debug code in TextMorph>>drawOn: ). Must execute the following (as postscript of MorphicExtras package, perhaps) to give life to the change:

FlapTab allSubInstancesDo: [:ft | ft reformatTextualTab]

June 07, 2019 10:02 PM

squeaksource.com

WASM-edc.6

empty log message

June 07, 2019 09:16 PM

WASM-edc.38

empty log message

June 07, 2019 09:01 PM

source.squeak.org

Network-cbc.234

Password was very specific for ServerDirectory.
Re-factor Password into a more generic password holder (usuable in other classes).
Create ServerPassword as a sub-class of Password with necessary specilizations moved down to it.
Make ServcieDirectory point to ServerPassword.

This allows us to use Password generally to store a password in memory (encoded) during a Squeak session, which is cleared out when saving. The intended use case is to not store passwords in code or in the file system - instead prompt the user at first use and cache it for the rest of the life of the session.

by Chris Cunningham (cunningham.cb@gmail.com) at June 07, 2019 07:56 PM

squeaksource.com

Announcements-ul.2

- fixed test failing in recent Squeak versions (#sortBy: -> #sort:, #= -> #hasEqualElements:)

by Levente Uzonyi (leves@elte.hu) at June 07, 2019 07:49 AM

source.squeak.org

Kernel-mt.1240

Extends commentary to point to #cull:.

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

June 06, 2019

squeaksource.com

GravatarSDK-bra.4

Update URLs and comments

by Bracken Spencer (bracken.spencer@gmail.com) at June 06, 2019 08:57 PM

June 05, 2019

source.squeak.org

CollectionsTests-cmm.315

More robust tests of #joinSeparatedBy:.

by Chris Muller (ma.chris.m@gmail.com) at June 05, 2019 02:44 AM

CollectionsTests-cmm.314

Additional test for #joinSeparatedBy: describes the expected behavior for unordered collections.

by Chris Muller (ma.chris.m@gmail.com) at June 05, 2019 02:15 AM

June 04, 2019

source.squeak.org

CollectionsTests-cmm.313

Additional test for #joinSeparatedBy: describes the expected behavior for unordered collections.

by Chris Muller (ma.chris.m@gmail.com) at June 04, 2019 09:54 PM

CollectionsTests-cmm.312

Additional test for #joinSeparatedBy: describes the expected behavior for unordered collections.

by Chris Muller (ma.chris.m@gmail.com) at June 04, 2019 08:32 PM

Collections-cmm.836

- Move utility methods of Collection to 'utilities'.
- #joinSeparatedBy: is useful even for non-SequenceableCollections.
- Speed up String>>#subStrings:.

by Chris Muller (ma.chris.m@gmail.com) at June 04, 2019 07:34 PM

May 31, 2019

source.squeak.org

SUnitTools-ct.5

Change CodeHolder>>testRunSuite: -- if multiple tests fail, instead of a UIManager dialog, open a TestRunner window that provides specific information.

Depends on SUnitGUI-ct.70.

May 31, 2019 12:15 PM

SUnitGUI-ct.70

Add convenience method (#newForSuite:) for instance creation of TestRunner.

May 31, 2019 12:15 PM

CollectionsTests-ct.298

Test Collection>>asStringByDelimiter (cf. Collections, ct.827)

May 31, 2019 11:52 AM

Collections-ct.827

Add convenience method for joining strings (Collection>>asStringByDelimiter:)

May 31, 2019 11:49 AM

KernelTests-mt.365

merge cmfcmf.357

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 31, 2019 09:49 AM

Kernel-mt.1239

Merge cmfcmf.1216

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 31, 2019 09:49 AM

KernelTests-cmfcmf.357

Test Random>>roll:

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 31, 2019 08:43 AM

Kernel-cmfcmf.1216

Make Random>>roll: work again and add support for constant operands

This version fixes three issues:

1. Random>>roll: was not working anymore. The following code only produced an error:

Random new roll: '1d20'

This happened due to an issue with Random>>diceToken: which used Number>>readFrom: to extract numbers from the string. Calling Number readFrom: '1d20' results in 100000000000000000000 instead of the expected 1, because $d is seen as an exponent letter by the ExtendedNumberParser used by Number>>readFrom: (see ExtendedNumberParser>>exponentLetters).
I therefore replaced Number>>readFrom: by Integer>>readFrom:, which doesn't use the exponent letters.

2. I also fixed a minor issue with the mini-grammar's 'dice' rule. Before this version, it read as if it only supported one or two operands, when it really supported an unlimited number of operands.

3. The mini-grammer's 'expr' rule read as if it supported constant operands (e.g., '1d20+5' or '42'), because 'expr' was allowed to be just 'num'. As far as I can gather, this has never worked (but I might be wrong). This is now also fixed by always setting res to the token read if the token is a number. If the token is neither a number nor $d, an error is now signalled.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 31, 2019 08:43 AM

KernelTests-cmfcmf.357

Test Random>>roll:

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 31, 2019 08:33 AM

Kernel-cmfcmf.1216

Make Random>>roll: work again and add support for constant operands

This version fixes three issues:

1. Random>>roll: was not working anymore. The following code only produced an error:

Random new roll: '1d20'

This happened due to an issue with Random>>diceToken: which used Number>>readFrom: to extract numbers from the string. Calling Number readFrom: '1d20' results in 100000000000000000000 instead of the expected 1, because $d is seen as an exponent letter by the ExtendedNumberParser used by Number>>readFrom: (see ExtendedNumberParser>>exponentLetters).
I therefore replaced Number>>readFrom: by Integer>>readFrom:, which doesn't use the exponent letters.

2. I also fixed a minor issue with the mini-grammar's 'dice' rule. Before this version, it read as if it only supported one or two operands, when it really supported an unlimited number of operands.

3. The mini-grammer's 'expr' rule read as if it supported constant operands (e.g., '1d20+5' or '42'), because 'expr' was allowed to be just 'num'. As far as I can gather, this has never worked (but I might be wrong). This is now also fixed by always setting res to the token read if the token is a number. If the token is neither a number nor $d, an error is now signalled.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 31, 2019 08:33 AM

May 29, 2019

source.squeak.org

Graphics-cmfcmf.407

Send correct message when primitive fails (>>primitiveFailed instead of >>primitiveFail)

I found no other occurrences of >>primitiveFail in the image.

by Patrick Rein (patrick.rein@gmail.com) at May 29, 2019 08:18 PM

May 25, 2019

source.squeak.org

Tools-cmm.849

- Fix from Tim Johnson prevents a DNU from ChangeSorter under certain conditions.
- Add ability to filter methods from a MessageSet based on package they're NOT in (helpful for filtering test methods, or identifying methods in the wrong package).

by Chris Muller (ma.chris.m@gmail.com) at May 25, 2019 10:49 PM

Collections-cmm.835

- Moved three methods belonging to Chronology to that package.

by Chris Muller (ma.chris.m@gmail.com) at May 25, 2019 10:37 PM

Kernel-cmm.1238

- Moved several methods belonging to Chronology to that package.

by Chris Muller (ma.chris.m@gmail.com) at May 25, 2019 10:30 PM

squeaksource.com

WASM-edc.5

SUCCESS compiling interference.wasm
https://github.com/ColinEberhardt/wasm-interference

May 25, 2019 11:42 AM

WASM-edc.4

empty log message

May 25, 2019 10:37 AM

May 24, 2019

source.squeak.org

Chronology-Tests-cmm.22

Test for asMicroSeconds.

by Chris Muller (ma.chris.m@gmail.com) at May 24, 2019 10:36 PM

Chronology-Core-eem.22

Simple speedup by caching the result of getSeconds in an inst var. Lots of other values are defined in terms of getSeconds so this simply eliminates duplicating the large integer arithmetic in getSeconds.

by Chris Muller (ma.chris.m@gmail.com) at May 24, 2019 10:36 PM

Chronology-Core-cmm.46

- Make #utcOffset: match the prior behavior.
- Move Duration convenience constructors, String-to-date converting methods, and benching API to this package.

by Chris Muller (ma.chris.m@gmail.com) at May 24, 2019 10:36 PM

Chronology-Core-cmm.47

- Make #utcOffset: match the prior behavior.
- Add #microseconds to the API, too.

300 microSeconds
1 second asMicroSeconds

- Move Duration convenience constructors, String-to-date converting methods, and benching API to this package.

by Chris Muller (ma.chris.m@gmail.com) at May 24, 2019 10:36 PM

squeaksource.com

InfaToolbox-JuergenThanner.1

empty log message

May 24, 2019 05:48 PM

source.squeak.org

SUnit-cmm.116

The Result of a Test which is tagged as an #expectedFailure IS a failure if the test passed.
Likewise, when a should: of a test which is ragged as an expectedFailure fails, the TestResult itself is considered passed, not failed.
This fixes the SUnit browser to display these TestResults accordingly, to not falsely include these "failed" Results in list because they were already expected to.

by Chris Muller (ma.chris.m@gmail.com) at May 24, 2019 02:39 AM

May 21, 2019

squeaksource.com

ConfigurationOfSmallapack-nice.31

Upgrade stable version to 1.6.1 (do not depend on Interval=Array and accelerate LapackMatrix sum)

May 21, 2019 02:52 PM

ConfigurationOfSmallapack-nice.31

Upgrade stable version to 1.6.1 (do not depend on Interval=Array and accelerate LapackMatrix sum)

May 21, 2019 02:52 PM

Smallapack-Matrix-nice.33

Accelerate LapackMatrix sum by using BLAS xDOTU

May 21, 2019 02:37 PM

source.squeak.org

PreferenceBrowser-mt.85

Fixes the visuals for halo-radio buttons in the preference browser.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 21, 2019 09:35 AM

Kernel-mt.1235

Replace the few sends to #valueWithPossibleArgument: with #cull: because there is no need to expect blocks with more than one argument to be filled with nils.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 21, 2019 08:48 AM

Collections-mt.834

Replace the few sends to #valueWithPossibleArgument: with #cull: because there is no need to expect blocks with more than one argument to be filled with nils. Updates comments.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 21, 2019 08:47 AM

May 20, 2019

squeaksource.com

NuScratch-tpr.384

correct for border related changes since prior release

by tim rowledge (tim@rowledge.org) at May 20, 2019 10:33 PM

source.squeak.org

ToolBuilder-Kernel-mt.124

Remove default font from text spec:
1) Existing tool builders only pass fonts to widgets if not nil.
2) Existing widgets consider default fonts outside the tool-builder framework anyway.

Thanks to Subbu for this!

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 20, 2019 08:34 AM

Chronology-Tests-cmm.22

Test for asMicroSeconds.

by Chris Muller (ma.chris.m@gmail.com) at May 20, 2019 04:18 AM

Chronology-Core-cmm.47

- Make #utcOffset: match the prior behavior.
- Add #microseconds to the API, too.

300 microSeconds
1 second asMicroSeconds

- Move Duration convenience constructors, String-to-date converting methods, and benching API to this package.

by Chris Muller (ma.chris.m@gmail.com) at May 20, 2019 04:17 AM

May 18, 2019

source.squeak.org

Chronology-Core-cmm.45

- Make #utcOffset: match the prior behavior.
- Move Duration convenience constructors in Number to this package.

by Chris Muller (ma.chris.m@gmail.com) at May 18, 2019 09:44 PM

Chronology-Core-cbc.45

With the UTC / DateAndTime changs, DateAndTime>>utcOffset: changed to update the existing instance in place instead of creating a new instance.
The change fixes #asLocal to create a new instance, bypassing #utcOffset:.
Follows the same logic as used in #asUTC

by Chris Muller (ma.chris.m@gmail.com) at May 18, 2019 09:44 PM

Chronology-Core-cmm.46

- Make #utcOffset: match the prior behavior.
- Move Duration convenience constructors, String-to-date converting methods, and benching API to this package.

by Chris Muller (ma.chris.m@gmail.com) at May 18, 2019 09:29 PM

squeaksource.com

System.V3-dtl.1065

Name: System-mt.1065
Author: mt
Time: 14 May 2019, 11:14:58.077441 am
UUID: 3ad59119-652a-fa46-8dc5-8b3747993363
Ancestors: System-dtl.1064

Clean up AbstractEvent:
- Make it more clear that "environment" is a dictionary local to system-change events.
- Remove #environment message to avoid mixup with Object >> #environment.
- Reduce the nunmber of inst-var references.
- Fix several message categories.
- Add missing #environmentKind to SystemChangeNotifier. For consistency. I have no clue why those re-directs exist. Maybe because "AbstractEvent classKind" is hard to read but "SystemChangeNotifier classKind" is not.

by Dave Lewis (lewis@mail.msen.com) at May 18, 2019 09:17 PM

System.V3-dtl.1064

Name: System-dtl.1064
Author: dtl
Time: 13 May 2019, 7:06:32.400119 pm
UUID: 66a39f74-a4b5-41d0-8e02-c0d01632080d
Ancestors: System-pre.1063

Use Url rather than deprecated URI in ProjectLauncher>>startUpAfterLogin.
This prevents command line startup scripts from failing due to a deprecation warning.
Also fix a comment typo.

by Dave Lewis (lewis@mail.msen.com) at May 18, 2019 08:43 PM

Kernel.V3-dtl.1234

Name: Kernel-nice.1234
Author: nice
Time: 14 May 2019, 12:40:59.140364 am
UUID: 3c271006-81c5-49e7-8131-b65c154b009f
Ancestors: Kernel-nice.1233

Introduce settable parameters for tuning the Large Integer arithmetic thresholds.

Use these parameters in the accelerated arithmetic.

For Burnikel Ziegler, ensure at least two recursions by using twice the threshold of digitDiv21: before engaging a digitDivSplit: - this somehow mitigates the overhead cost of digitDivSplit:

by Dave Lewis (lewis@mail.msen.com) at May 18, 2019 08:39 PM

Kernel.V3-dtl.1233

Name: Kernel-nice.1233
Author: nice
Time: 13 May 2019, 6:32:30.507955 pm
UUID: 8ba1a42b-88c8-1641-8a1a-bea810163ec2
Ancestors: Kernel-nice.1232

Oups fix creeping of sqrt2, it was only for bench purpose.
Sorry for multiple commits.

I rely too much on (alt shift i) to ignore methods, but sometimes I miss one.
It would be cool to have a way to hide the ignored methods before committing.

by Dave Lewis (lewis@mail.msen.com) at May 18, 2019 08:35 PM

Kernel.V3-dtl.1232

Name: Kernel-nice.1232
Author: nice
Time: 13 May 2019, 5:43:37.253569 pm
UUID: 880030b9-91d0-244b-9198-b7b6f9454584
Ancestors: Kernel-nice.1231

Make sure that LargePositiveInteger sqrt are always correctly rounded to nearest Float if inexact.

Note that I accidentally introduced a rounding bug in LargePositiveInteger sqrt which was not in original Integer>>#sqrt:
(self bitAnd: 1) should have been (integerResult bitAnd: 1).
Apologizes.

But this formulation was subject to double-rounding error anyway (asFloat did perform a second rounding, which may lead to incorrect rounding), so that did not really matter...

Concerning performance, here are the bench results, after correcting the original version (I send twice self asFloat, which was a slip, and the original did not test mightBeASquare either when self asFloat = Float infinity)
- When (self mighBeASquare), new code is equivalent, and becomes more performant for huge values
This is due to sqrtRem which avoids evaluating a #squared for no additional price
Note that 7 large ints out of 256 mightBeASquare
- else it depends on bit range, new code is :
* as performant in range (SmallInteger maxVal highBit + 1 to: Float precision * 2)
that's the case of vast majority of large int in a "normal" image
* less performant in range (Float precision * 2 + 1 to: Float emax) by 3x to 5x
that's because asFloat sqrt is cheaper than sqrtRem
* more performant in range (Float emax + 1 to: infinity) by large
this is due to evaluating sqrtFloor on a much smaller LargePositiveInteger
(but this trick could have been added in inexact-rounding variant too)

So the exact rounding:
- does not require additional code (both are equivalent)
- does not cost any performance penalty in most common cases (small LargePositiveInteger); the penalty is only in medium range (107 to 1023 bits).

In a word, it's worth.

by Dave Lewis (lewis@mail.msen.com) at May 18, 2019 08:29 PM

Collections.V3-dtl.833

Name: Collections-mt.833
Author: mt
Time: 13 May 2019, 9:46:28.73801 am
UUID: 44057ed3-9b55-0b49-8472-71d5c3fdbeeb
Ancestors: Collections-mt.832

Second iteration of #take: (and #any:). #any: relates to #anyOne and thus signals an error if the collection is not large enough. #take: uses #any: but accounts for smaller collections.

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

Collections.V3-dtl.832

Name: Collections-mt.832
Author: mt
Time: 9 May 2019, 3:27:06.069782 pm
UUID: b3c087f4-c2bc-d542-91d7-9c214ae3a97f
Ancestors: Collections-nice.831

Adds #take: to create a sub-collection from any collection by specifying the number of elements. Works like #first: for sequenceable collections but does not fail if collection is too small.

by Dave Lewis (lewis@mail.msen.com) at May 18, 2019 08:17 PM

May 16, 2019

source.squeak.org

GraphicsTests-nice.53

Add tests for round trip conversion of Color fromString: printHtmlString.

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at May 16, 2019 06:16 PM

Graphics-nice.408

Use a map rgb->#names rather than iterating thru/performing all known colorNames.

This is especially useful if we intend to add more color names.
Note that names do not need to be unique.
The first appearing name in colorNames will be used.

Color colorNames collect: [:sym | Color perform: sym].

(Color colorNames reject: [:sym | (Color perform: sym) name = sym])
collect: [:sym | sym -> (Color perform: sym) name].

The new class variable is initialized in postscript.
It must be re-initialized each time we change the definition of a named Color.

The rgb code has been used as key rather than the Color itself.
This is because it is unique and cheap (SmallInteger).

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at May 16, 2019 01:14 PM

Graphics-nice.407

I see that Marcel used something like
https://gist.github.com/haggen/c91ed87700e5971f6fc6

I propose to reduce crayon shades overlapping by adopting different references

blueberry
(Encycolorpedia) https://encycolorpedia.com/4f86f7
(Crayola) https://en.wikipedia.org/wiki/List_of_Crayola_crayon_colors
ice (Corel ice blue) https://en.wikipedia.org/wiki/Shades_of_blue#Ice_blue
lemon
(Encycolorpedia lemon) https://encycolorpedia.com/fff700
(Encycolorpedia lemon yellow) https://en.wikipedia.org/wiki/Lemon_(color)#Lemon_yellow
(Crayola lemon) https://en.wikipedia.org/wiki/Shades_of_yellow#Lemon
licorice (Crayola-Encycolorpedia) https://en.wikipedia.org/wiki/Shades_of_black#Licorice
snow
(Encycolorpedia) https://encycolorpedia.com/fffafa
(X11) https://en.wikipedia.org/wiki/Shades_of_white#Snow
spring (X11 spring green) https://en.wikipedia.org/wiki/Spring_green
turquoise (X11-Encycolorpedia) https://en.wikipedia.org/wiki/Shades_of_cyan#Turquoise

Or should we have sort of factories?
(Color x11 turquoise vs Color macCrayon turquoise)

Of course, it opens some sort of big can:
https://encycolorpedia.com/named
https://en.wikipedia.org/wiki/X11_color_names
https://en.wikipedia.org/wiki/List_of_colors_(compact)

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at May 16, 2019 11:02 AM

May 15, 2019

source.squeak.org

Kernel-nice.1235

Round accelerated arithmetic chunks to upper multiple of 4 bytes rather than to lower.

I believe that this marginally improves the performance because it's a tiny bit better to recompose a longer least significant chunk with a shorter most significant chunk.

If someone wants to confirm...
It's better to tune the threshold before benchmarking.
See LargeArithmeticBench from http://www.squeaksource.com/STEM.html and http://smallissimo.blogspot.com/2019/05 blog for details.

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at May 15, 2019 10:08 PM

ToolsTests-pre.92

Yet another "repair" of the dependency browser tests.

by Patrick Rein (patrick.rein@gmail.com) at May 15, 2019 07:27 PM

Chronology-Core-cmm.45

- Make #utcOffset: match the prior behavior.
- Move Duration convenience constructors in Number to this package.

by Chris Muller (ma.chris.m@gmail.com) at May 15, 2019 03:33 AM

Chronology-Tests-cbc.21

Fixed DurationTest>>testNormalizeNanoSeconds to match new way of printing partial seconds from Chronology-Core-nice.42

"Always print duration subseconds by group of 3 digits (ms, us, ns)"

by Chris Cunningham (cunningham.cb@gmail.com) at May 15, 2019 02:42 AM

May 14, 2019

source.squeak.org

Morphic-cmm.1489

Fix TextEditor>>#hasMultipleLinesSelected to consider actual lines, instead of wrapped lines.

by Chris Muller (ma.chris.m@gmail.com) at May 14, 2019 10:53 PM

Chronology-Core-cbc.45

With the UTC / DateAndTime changs, DateAndTime>>utcOffset: changed to update the existing instance in place instead of creating a new instance.
The change fixes #asLocal to create a new instance, bypassing #utcOffset:.
Follows the same logic as used in #asUTC

by Chris Cunningham (cunningham.cb@gmail.com) at May 14, 2019 10:33 PM

squeaksource.com

LargeArithmeticBench-nice.11

- Shorter series for big bit lengths
- autotuning on an average of {1. 1/8+1} * threshold
since we increment by 1/8 in fine tuning, that's equivalent to taking 1/16 into account...
- change a few names

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at May 14, 2019 08:23 PM

May 10, 2019

squeaksource.com

LargeArithmeticBench-nice.6

Fixup another mess in report

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at May 10, 2019 03:46 PM

LargeArithmeticBench-nice.5

fixup slip of 2 printing of n bits in the report

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at May 10, 2019 03:02 PM

LargeArithmeticBench-nice.4

Fixup: bench D(10n,n) rather than twice M(n,10n)

Also offer a better output

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at May 10, 2019 02:09 PM

source.squeak.org

ImageFormat-dtl.36

Let 68004 be a base version number, supporting the 68021 64-bit Spur format. Base number plus Spur bit plus platform float order bit yields 68021.

68004 + 2r10001 ==> 68021

Restore a unit test that covers 68021format.
Reorganize method categories to clarify bit assignment methods.

Notes: 68004 has not been used in practice but is considered valid. These changes do not affect the generated ckformat.c program.

by David T. Lewis (lewis@mail.msen.com) at May 10, 2019 11:27 AM

squeaksource.com

LargeArithmeticBench-nice.3

Bench single division, not gcd: !!!

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at May 10, 2019 09:29 AM

LargeArithmeticBench-nice.2

Fixup length12Pairs
overlappingPairsDo: is not collect: !!!

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at May 10, 2019 08:58 AM

LargeArithmeticBench-nice.1

LargeArithmeticBench is a utility for benchmarking large integer operations

It's preferable to use a high resolution clock if available.
If you don't run from Squeak trunk, the timing methods can be extracted from
https://source.squeak.org/trunk/Chronology-Core-nice.44.mcz

To obtain a report, first open a transcript:
Transcript open.

Then launch the bench and be patient (your computer may heat)
LargeArithmeticBench new benchReport.

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at May 10, 2019 08:42 AM

May 09, 2019

source.squeak.org

VMMaker.oscog-GAP.2534

Convert numeric constants to strings for concatenation using #printString.
Required for Pharo compatibility, where the arguments of concatenation are not automatically coerced to strings.

by Eliot Miranda (eliot.miranda@gmail.com) at May 09, 2019 09:57 PM

squeaksource.com

IntegerFactorization-nice.3

Rename
RepeatedDivision->TrialDivisionByOdd
Sieve->TrialDivisionByPrime
The idea is to keep Sieve for other algorithm eventually

Introduce the Brent+Montgomery variant of Pollar-rho factorization.

To do: bench vs SQUFOF for various bit-length

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at May 09, 2019 07:15 PM

IntegerFactorizationTests-nice.3

Avoid testLargestSmallInteger time-out on 64bits VM

(positive SmallInteger are on 60 bits, which is already quite large)

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at May 09, 2019 07:12 PM

source.squeak.org

VMMakerCompatibilityForPharo6-GuillermoPolito.12

Moved tests to Pharo compatibility package

by Guillermo Polito (guillermopolito@gmail.com) at May 09, 2019 03:45 PM

VMMakerCompatibilityForPharo6-GuillermoPolito.11

Fixes to correctly translate ifNotNil: [:arg & variants.

This makes Cog compile and run.

by Guillermo Polito (guillermopolito@gmail.com) at May 09, 2019 03:16 PM

VMMakerCompatibilityForPharo6-GuillermoPolito.11

Fixes to correctly translate ifNotNil: [:arg & variants.

This makes Cog compile and run.

by Guillermo Polito (guillermopolito@gmail.com) at May 09, 2019 03:15 PM

VMMakerCompatibilityForPharo6-GuillermoPolito.10

Fixes in AST translation to make it work as in Squeak
- to:do: => to:by:do: with extra arguments
- ifNil:ifNotNil: => ifTrue:ifFalse:
- fix arguments in TMethods
- fix comments in TMethods
- add name at the level of TParseNode (#name is not defined in Object anymore in Pharo)

Other
- Added FileDirectory compatibility layer using FileSystem behind the scenes (see FileDirectory and VMMakerFile classes).
- Added PackageOrganizer compatibility layer using RPackage behind the scenes.
- Extending Scanner and SystemNavigation with compatibility methods
- Extending Time with compatibility method

by Guillermo Polito (guillermopolito@gmail.com) at May 09, 2019 03:14 PM

VMMaker.oscog-GAP.2534

Convert numeric constants to strings for concatenation using #printString.
Required for Pharo compatibility, where the arguments of concatenation are not automatically coerced to strings.

May 09, 2019 03:12 PM

60Deprecated-pre.35

Deprecates classes and methods related to executing Squeak in a web browser through a browser plugin. They can be loaded through the 60Deprecated-NSPlugin-System-Support package.

by Patrick Rein (patrick.rein@gmail.com) at May 09, 2019 02:35 PM

System-pre.1063

Deprecates classes and methods related to executing Squeak in a web browser through a browser plugin. They can be loaded through the 60Deprecated-NSPlugin-System-Support package.

by Patrick Rein (patrick.rein@gmail.com) at May 09, 2019 02:34 PM

Network-pre.233

Deprecates classes and methods related to executing Squeak in a web browser through a browser plugin. They can be loaded through the 60Deprecated-NSPlugin-System-Support package.

by Patrick Rein (patrick.rein@gmail.com) at May 09, 2019 02:33 PM

Files-pre.183

Deprecates classes and methods related to executing Squeak in a web browser through a browser plugin. They can be loaded through the 60Deprecated-NSPlugin-System-Support package.

by Patrick Rein (patrick.rein@gmail.com) at May 09, 2019 02:31 PM

Collections-mt.832

Adds #take: to create a sub-collection from any collection by specifying the number of elements. Works like #first: for sequenceable collections but does not fail if collection is too small.

May 09, 2019 01:27 PM

squeaksource.com

IntegerFactorizationTests-nice.2

Test the factorization of largest odd SmallInteger (assuming maxVal is odd)

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at May 09, 2019 01:15 PM

IntegerFactorization-nice.2

Introduce Shank's Square Form Factorization SQUFOF for large SmallInteger.

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at May 09, 2019 01:13 PM

source.squeak.org

Kernel-nice.1229

Fix (0 bitShift: 100) is not normalized
(0 bitShift: 100) class = LargePositiveInteger.

Why is it not normalized?
First, primitiveBitShift (17) fails because shift is longer than SmallInteger bit length (maybe it should not?), then bitShiftMagnitude: (primDigitBitShiftMagnitude:) does not normalize a left shift result, assuming that primitive 17 already did the trivial work if result were a SmallInteger.

Why is normalization important?
because non normalized Integers do not behave like SmallInteger and can cause all sort of undefined behavior (I had an infinite loop because of that)

How to fix?
just handle the case in primitive fallback code

While at it:
Do not use bitShiftMagnitude: when we do not need to (case of left shift are equivalent to bitShift:), because playing with not normalized results may lead to undefined behavior.

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at May 09, 2019 08:14 AM

EToys-cmm.342

Ask whether a Parameter and Phrase tiles whether they're #isBooleanType, to allow proper distinction of the actual instances of Boolean.

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at May 09, 2019 07:01 AM

Kernel-cmm.1228

Allow identification of instances of Boolean via #isBoolean.

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at May 09, 2019 06:55 AM

May 04, 2019

squeaksource.com

ImageSnapshot-dtl.4

Add ImageSnapshot>>reboot to resume the interpreter in a snapshot, discarding the previous object memory.

Requires #primitiveResumeFromSnapshot, not yet implemented in the VM.

by Dave Lewis (lewis@mail.msen.com) at May 04, 2019 02:12 PM

source.squeak.org

VMMaker-dtl.401

VMMaker 4.16.6
Primitive support for snapshot objects, answering object memory and header as in-image objects. Instead of disk-based snapshot file. Currently implemented in ContextInterpreter.

"ImageSnapshot new"

The primitives are:
#primitiveInterpreterStateSnapshot - snapshot the header information
#primitiveMemoryCopy - snapshot the memory
#primitiveMemorySnapshotBytesWithHeader - snapshot memory bytes and header
#primitiveMemorySnapshotWithHeader - snapshot memory bitmap and header

mage side support package ImageFormat in http://source.squeak.org/VMMaker:
ImageFileHeader fromValues: ImageFileHeader primInterpreterStateSnapshot.
ImageFileHeader primMemoryCopy.

Image side support from package ImageSnapshot in http://www.squeaksource.com/ImageSnapshot:
ImageSnapshot basicNew getSnapshot.
ImageBitmapSnapshot basicNew getSnapshot.

Snapshot to disk, equivalent to normal snapshot:
ImageSnapshot new saveAs: 'newimage.image'

by David T. Lewis (lewis@mail.msen.com) at May 04, 2019 01:23 PM

squeaksource.com

Kernel.V3-dtl.1224

Name: Kernel-nice.1224
Author: nice
Time: 3 May 2019, 10:43:02.707788 pm
UUID: cf1a5ae4-ac18-47aa-880c-db91874842cb
Ancestors: Kernel-fn.1223

Refactor the fast LargeInteger operations

Rename:
- fastMultiply: -> multiplyByInteger:
Rationale: it's not necessarily fast but it's specifically for the case when we know that argument is an Integer.

Ensure symetry between * and /
- digitDiv:neg: -> divideByInteger:
- primDigitDiv:neg -> digitDiv:neg: (revert previous rename)

Rename
- karatsubaTimes: tooms3Times: -> digitMul22: digitMul33:
Rationale: it ensures symetry with digitDiv21: and digitDiv32:

Rename similarly
- squaredKaratsuba squaredToom3 squaredToom4 -> squaredByHalf squaredByThird squaredByFourth

Introduce digitMul23: for marginal improvment in case of partially well balanced

Remove the send of Inteval>>digitShiftSum:
Replace with #digitMulSplit: which is an optimized version in O(N) rather than O(N*log2 N)- see below

Rename
- recursiveDigitDiv: -> digitDivSplit: since it plays somehow a similar role than that of digitMulSplit: (decompose in digitDiv21: operations)
Use a O(N) recomposition of quotient

Reduce the cost of divide and conquer reconstruction phase by using (with great care) inplaceAddNonOverlapping:digitShiftBy: when possible.

Rationale: the cost is non completely dominated by non linear O(N^x), partly due to repeated #+ and #digitShift: which allocate, copy, allocate, copy, allocate, copy like Shlemiel.

We now have this sequence:

1) * / call primitive of SmallInteger or (optional) 64 bits LargeInteger
2) if fail, super * will handle coercion or call multiplyByInteger: divideByInteger:
3) multiplyByInteger: and divideByInteger: will dispatch to appropriate method based on heuristics on operands length
3.a) schoolbook digitMultiply:neg: digitDiv:neg: which call (optional) LargeInteger primitives or revert to slow 1-byte-limb fallback code
3.b) digitMultiplySplit: if not well balanced operands / recursiveDigitDiv: for about the same purpose
3.c) digitMul22: digitMul23: digitMul33: digitDiv21: digitDiv32:

Accelerate a bit the nthRoot: by providing a better (divide and conquer) initial guess a bit like sqrtRem algorithm.
While at it, use raisedToInteger: instead of raisedTo:
Since this small refactoring makes two tests fail (bad tests IMO), provide an assertion of pre-condition (the argument is a strictly positive integer)

by Dave Lewis (lewis@mail.msen.com) at May 04, 2019 12:50 PM

Collections.V3-dtl.829

Name: Collections-nice.829
Author: nice
Time: 3 May 2019, 11:06:11.65639 pm
UUID: 695419ed-754d-41ff-8b51-b8715934b1f5
Ancestors: Collections-fn.828

Remove unused digitShiftSum: (since Kernel-nice.1224)

by Dave Lewis (lewis@mail.msen.com) at May 04, 2019 12:43 PM

May 03, 2019

source.squeak.org

VMMaker-dtl.400

VMMaker 4.16.6 - Better error message when interpreter encounters an unsupported image format.

Instead of this:
This interpreter (vers. 0) cannot read image file (vers. 68021).
Press CR to quit...

Say this:
This interpreter supports image formats up to 6505, cannot read file format 68021

by David T. Lewis (lewis@mail.msen.com) at May 03, 2019 10:11 PM

Collections-nice.829

Remove unused digitShiftSum: (since Kernel-nice.1224)

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at May 03, 2019 09:06 PM

KernelTests-nice.361

Apply refactorings of Kernel-nice.1224

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at May 03, 2019 08:46 PM

Kernel-nice.1224

Refactor the fast LargeInteger operations

Rename:
- fastMultiply: -> multiplyByInteger:
Rationale: it's not necessarily fast but it's specifically for the case when we know that argument is an Integer.

Ensure symetry between * and /
- digitDiv:neg: -> divideByInteger:
- primDigitDiv:neg -> digitDiv:neg: (revert previous rename)

Rename
- karatsubaTimes: tooms3Times: -> digitMul22: digitMul33:
Rationale: it ensures symetry with digitDiv21: and digitDiv32:

Rename similarly
- squaredKaratsuba squaredToom3 squaredToom4 -> squaredByHalf squaredByThird squaredByFourth

Introduce digitMul23: for marginal improvment in case of partially well balanced

Remove the send of Inteval>>digitShiftSum:
Replace with #digitMulSplit: which is an optimized version in O(N) rather than O(N*log2 N)- see below

Rename
- recursiveDigitDiv: -> digitDivSplit: since it plays somehow a similar role than that of digitMulSplit: (decompose in digitDiv21: operations)
Use a O(N) recomposition of quotient

Reduce the cost of divide and conquer reconstruction phase by using (with great care) inplaceAddNonOverlapping:digitShiftBy: when possible.

Rationale: the cost is non completely dominated by non linear O(N^x), partly due to repeated #+ and #digitShift: which allocate, copy, allocate, copy, allocate, copy like Shlemiel.

We now have this sequence:

1) * / call primitive of SmallInteger or (optional) 64 bits LargeInteger
2) if fail, super * will handle coercion or call multiplyByInteger: divideByInteger:
3) multiplyByInteger: and divideByInteger: will dispatch to appropriate method based on heuristics on operands length
3.a) schoolbook digitMultiply:neg: digitDiv:neg: which call (optional) LargeInteger primitives or revert to slow 1-byte-limb fallback code
3.b) digitMultiplySplit: if not well balanced operands / recursiveDigitDiv: for about the same purpose
3.c) digitMul22: digitMul23: digitMul33: digitDiv21: digitDiv32:

Accelerate a bit the nthRoot: by providing a better (divide and conquer) initial guess a bit like sqrtRem algorithm.
While at it, use raisedToInteger: instead of raisedTo:
Since this small refactoring makes two tests fail (bad tests IMO), provide an assertion of pre-condition (the argument is a strictly positive integer)

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at May 03, 2019 08:43 PM

Tests-pre.411

Adds a simple test case for listing file directory entries and adjusts the tearDown accordingly.

by Patrick Rein (patrick.rein@gmail.com) at May 03, 2019 02:34 PM

May 02, 2019

source.squeak.org

Chronology-Core-cbc.41

We have the ability to change the starting day of the week (Week>>startDay:).
This change adds #dayOfLocalWeek to DateAndTime and Timespan to return the indexed day of the week based on the altered starting day.
Original #dayOfWeek is left as-is along with all other working code.

by David T. Lewis (lewis@mail.msen.com) at May 02, 2019 10:06 PM

SqueakSSL-Tests-pre.24

Recategorizes tests and test utility methods in SqueakSSL

by Patrick Rein (patrick.rein@gmail.com) at May 02, 2019 01:22 PM

NetworkTests-pre.58

Improves two test cases for MailMessages relying on old DateAndTime behavior.

by Patrick Rein (patrick.rein@gmail.com) at May 02, 2019 01:20 PM

NetworkTests-pre.57

Adds a number of new tests for the MIMEDocument class.

by Patrick Rein (patrick.rein@gmail.com) at May 02, 2019 01:10 PM

NetworkTests-pre.56

Recategorizes some test methods and expected failure methods.

by Patrick Rein (patrick.rein@gmail.com) at May 02, 2019 01:06 PM

CollectionsTests-pre.307

Fixes a defect in BagTest spotted by Bob Arning

by Patrick Rein (patrick.rein@gmail.com) at May 02, 2019 07:34 AM

April 30, 2019

source.squeak.org

CollectionsTests-pre.306

Recategorizes test methods in CollectionsTests

by Patrick Rein (patrick.rein@gmail.com) at April 30, 2019 06:00 PM

April 29, 2019

squeaksource.com

Collections.V3-dtl.828

No changes, Character cannot be immediate in V3 images.

Name: Collections-fn.828
Author: fn
Time: 29 April 2019, 12:52:37.794699 pm
UUID: a663df49-93bf-413e-a942-29f1d0fa4605
Ancestors: Collections-nice.827

Character shouldNotImplement postCopy.

by Dave Lewis (lewis@mail.msen.com) at April 29, 2019 11:37 AM

Kernel.V3-dtl.1223

No changes, Float cannot be immediate in V3 images.

Name: Kernel-fn.1223
Author: fn
Time: 29 April 2019, 12:52:13.424813 pm
UUID: 910aa151-72fe-4f6c-9645-fa735fb17f63
Ancestors: Kernel-nice.1222

SmallInteger and SmallFloat64 shouldNotImplement postCopy.

by Dave Lewis (lewis@mail.msen.com) at April 29, 2019 11:28 AM

April 28, 2019

squeaksource.com

Kernel.V3-dtl.1222

Name: Kernel-nice.1222
Author: nice
Time: 28 April 2019, 3:55:49.124486 pm
UUID: e697844c-d6bd-4781-a572-553f79c98644
Ancestors: Kernel-nice.1221

Make fastMultiply: the default for multiplying integers

The scheme is:
- first try 64bit imul (primitive 29) if receiver is Large, or (primitive 9) if receiver is Small.
- then check for operand type in super *, use fastMultiply: if Integer
- then check receiver length and invoke O(N^2) schoolbook multiply if too small ( invoke LargeIntegers primitive thru digitMultiply:neg: )
- then check operand byte length
- then dispatch to Karatsuba or Toom3 (or future enhancements)

For medium integers (>64 bits) that's only 1 indirection more than previous implementation, so a very small (negligible) penalty.

For larger integers (a few thousand bits) that's a win.

Note that the length threshold heuristics may vary from one platform to another, one VM to another, and wether images are 32 or 64 bits...
We could make them class var, and offer some initialize method so as to automatically tune them.

by Dave Lewis (lewis@mail.msen.com) at April 28, 2019 09:48 PM

Kernel.V3-dtl.1221

Name: Kernel-nice.1221
Author: nice
Time: 28 April 2019, 2:31:07.899491 am
UUID: 4aeee53e-f320-4ece-bf93-a5458f65bef3
Ancestors: Kernel-nice.1220

Fix broken pre-condition a3>=b/4 in sqrtRem.
While at it, care to explain.

by Dave Lewis (lewis@mail.msen.com) at April 28, 2019 09:43 PM

April 27, 2019

squeaksource.com

Collections.V3-dtl.826

Name: Collections-nice.826
Author: nice
Time: 25 April 2019, 2:22:58.283343 pm
UUID: 116c66c9-4c34-5c4f-a9d9-c21d3141c5ea
Ancestors: Collections-fn.825

Fix bugs in LazyCharacterSet
The block instance variable should not refer to itself, or we'll get an infinite recursion when evaluating.
Thus when modifying the collection (#add: #addAll: #remove: #removeAll:), we must use a temporary reference to block

Fix another typo bug in removeAll s/include:/includes:/

Unfortunately, there was a Player>>#include: preventing an easy detection of the bug

Example:

(CharacterSet separators complement reject: [:e | e isVowel])
removeAll: ($0 to: $9);
includes: $3.

by Dave Lewis (lewis@mail.msen.com) at April 27, 2019 12:55 PM

Collections.V3-dtl.825

Name: Collections-fn.825
Author: fn
Time: 12 April 2019, 9:30:29.397159 am
UUID: 3110d8f6-fa38-4d91-8358-aed2eadbd9a7
Ancestors: Collections-nice.824

Just like strings, characters should convert themselves to an integer when involved in arithmetic with a number.

Example:
$c < 98.9 "false"
98.9 < $c "opened debugger, now returns true"

by Dave Lewis (lewis@mail.msen.com) at April 27, 2019 12:54 PM

Collections.V3-dtl.824

Name: Collections-nice.824
Author: nice
Time: 7 April 2019, 10:40:26.559826 pm
UUID: e6d75dba-26a8-4945-a930-3d79f8cd4969
Ancestors: Collections-ul.823

Implement Collection>>#log2, since it already responds to #ln and #log...

Correct a Pharoism in DefaultSortFunction comment, there is no #threeWayCompareTo: because we prefer the space-ship operator <=>

Correct a slip in LazyCharacterSet comment.

Let ({1. 3/2. 2} as: Interval) work as it should.

Remove Interval>>#remove: since it duplicates unecessarily super remove:ifAbsent: (which shouldNotImplement already).

Don't spend too much time sorting an Interval, it's already sorted.

by Dave Lewis (lewis@mail.msen.com) at April 27, 2019 12:53 PM

Kernel.V3-dtl.1220

Name: Kernel-nice.1220
Author: nice
Time: 27 April 2019, 2:36:07.52994 pm
UUID: b2eb6e2e-1dfa-4d23-9421-ec0e5e8d4f86
Ancestors: Kernel-fn.1216

Accelerate some huge Integer arithmetic
(This is a squash of inbox commits)

These algorithms use divide and conquer strategy that recursively split a problem into simpler problems.

1) Multiplication and Squaring

- Implement Karatsuba and 3-way Toom-Cook algorithms for fast large integer multiplication (a Bodrato Zanoni variant)

- Implement the 2-way asymetrical Karatsuba, 3-way symetrical, and 4-way asymetrical Toom-Cook squaring variant of Chung-Hasan. Note that asymetrical squareToom4 over-performs the symetrical squaredToom3 even for medium size (800 bytes).

- provide a fastMultiply: that dispatch on appropriate variant based on heuristics. Currently this fast multiplication is used only in LargePositiveInteger>>squared, and other algorithme below.

- slightly modify raisedToInteger: to use that squared.
This result in a small penalty for small number exponentation, but large speed up for big integers.

2) Square-root

- implement the Karatsuba-like square root algorithm from Paul Zimmerman.

3) Division

- Implement the recursive fast division of Burnikel-Ziegler for large integers and connect it to digitDiv:neg: when operands are large enough.

- Use this recursive algorithm to accelerate digitDiv:neg:

This is not the fastest known division which is a composition of Barrett and Newton-Raphson inversion - but is easy to implement and should have similar performances for at least a few thousand bytes long integers - see for example http://bioinfo.ict.ac.cn/~dbu/AlgorithmCourses/Lectures/Lec5-Fast-Division-Hasselstrom2003.pdf

4) Printing

- Use digitDiv:neg: in large integer printString so as to obtain the quotient (head) and remainder (tail) in a single operation. Together with divide and conquer division, this results in a factor of about 4x for 50000 factorial printString.


Examples on a 64 bits image/VM (MBP 2015 i5 2.7GHz)

[10 raisedToInteger: 30] bench.
'3,770,000 per second. 265 nanoseconds per run.' - before
'3,500,000 per second. 286 nanoseconds per run.' - after
[10.0 raisedToInteger: 30] bench.
'10,900,000 per second. 91.6 nanoseconds per run.' - before
'9,540,000 per second. 105 nanoseconds per run.' - after

| x |
x := 100 factorial.
[x raisedToInteger: 30] bench.
'15,900 per second. 63 microseconds per run.' - before
'19,500 per second. 51.3 microseconds per run.' - after

| x |
x := 1000 factorial.
[x raisedToInteger: 30] bench.
'58.8 per second. 17 milliseconds per run.' - before
'179 per second. 5.6 milliseconds per run.' - after

| x |
x := 500 factorial - 100 factorial.
{
[x sqrtFloor] bench.
[x sqrtFloorNewtonRaphson] bench.
}
#(
'42,300 per second. 23.6 microseconds per run.'
'8,240 per second. 121 microseconds per run.')

| x |
x := 50000 factorial - 10000 factorial + 5000 factorial - 1000 factorial + 500 factorial - 100 factorial + 50 factorial - 10 factorial + 5 factorial - 1.
{
[x printString] bench.
}
#('1.29 per second. 778 milliseconds per run.') - before
#('5.12 per second. 195 milliseconds per run.') - after

by Dave Lewis (lewis@mail.msen.com) at April 27, 2019 12:51 PM

Kernel.V3-dtl.1216

Name: Kernel-fn.1216
Author: fn
Time: 27 April 2019, 11:08:43.467561 am
UUID: 4af5e126-9387-41b6-bd41-a6c526f0bd8a
Ancestors: Kernel-eem.1215

Make SmallInteger's method overrides for copying consistent with those of SmallFloat64.

by Dave Lewis (lewis@mail.msen.com) at April 27, 2019 12:46 PM

System.V3-dtl.1061

Name: System-cmm.1061
Author: cmm
Time: 4 April 2019, 6:30:34.295865 pm
UUID: d55f8c82-4dea-4d11-be0c-ff63c61b7e04
Ancestors: System-eem.1058

Metacello and GitInfrastructure tools are currently the best way to load projects hosted by github.com. Promote installation of these tools to the Tools menu.
While in there, make a couple of improvements to the Do menu.

by Dave Lewis (lewis@mail.msen.com) at April 27, 2019 12:43 PM

April 26, 2019

squeaksource.com

NuScratch-tpr.383

Add option to control reverb in the settings file

by tim rowledge (tim@rowledge.org) at April 26, 2019 11:08 PM

JSON-tonyg.39

Change JsonTests>>testStreaming to compare to JsonObject new, rather than just testing isDictionary.

testStreaming should not only check that the result is a dictionary, but that it is empty.

by tim rowledge (tim@rowledge.org) at April 26, 2019 10:56 PM

OpenWeatherMaps-tpr.4

2nd attempt to update JSONpackage dependency to tonyg.39b

by tim rowledge (tim@rowledge.org) at April 26, 2019 10:56 PM

ScratchGPIO-tpr.20

better parsing of the sitekey in the cmdstream

by tim rowledge (tim@rowledge.org) at April 26, 2019 10:56 PM

Smallapack-Matrix-nice.32

Fix two failing tests on Squeak trunk due to Array ~= Interval refactoring.

Who is going to need that Array = Interval feature, probably nobody...
Err, myself! I know who to blame ;)

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at April 26, 2019 05:44 AM

April 25, 2019

squeaksource.com

ConfigurationOfSmallapack-nice.30

Fix pharo7.x FFI loads:

April 25, 2019 07:34 PM

ConfigurationOfSmallapack-nice.30

Fix pharo7.x FFI loads:

April 25, 2019 07:34 PM

ConfigurationOfSmallapack-nice.29

Add a configuration for Pharo 7.x

April 25, 2019 07:02 PM

ConfigurationOfSmallapack-nice.29

Add a configuration for Pharo 7.x

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at April 25, 2019 07:02 PM

Smallapack-SUnitTests-nice.15

Fix miss-cateforizing of #testSmallPackAugmenting

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at April 25, 2019 06:35 PM

Smallapack-CompatibilityTests-nice.2

Fix miss-cateforizing of #testSmallPackAugmenting

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at April 25, 2019 06:34 PM

April 24, 2019

squeaksource.com

Smallapack-OpalCompiler.Pharo7-nice.7

Fix another Pharo7 refactoring s/OpalEncoderForSistaV1/EncoderForSistaV1/

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at April 24, 2019 08:17 PM

Smallapack-OpalCompiler.Pharo7-nice.6

Quick recipe for surviving to pharo 7 refactorings.

In Pharo 7, we must access the methodNode properties with methodProperties

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at April 24, 2019 07:47 PM

April 21, 2019

squeaksource.com

Chip8-TSL.1

Chip-8 interpreter

by Thiago da Silva Lino (thiagolino@yahoo.com.br) at April 21, 2019 10:27 AM