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

January 16, 2020

squeaksource.com

BarnsleyFern-kfr.11

Remove FillGame

January 16, 2020 02:30 PM

FillGame-kfr.1

Move

January 16, 2020 02:29 PM

January 15, 2020

squeaksource.com

BarnsleyFern-kfr.10

fixing

January 15, 2020 05:42 PM

WarGame-kfr.29

damageReporting fix

January 15, 2020 04:24 PM

WarGame-kfr.28

Work on entity speed

January 15, 2020 04:16 PM

WarGame-kfr.27

add simple demo2

January 15, 2020 03:17 PM

WarGame-kfr.26

Separate out game set up from initialize

January 15, 2020 02:48 PM

BarnsleyFern-kfr.9

Remove a unused method and variable

January 15, 2020 12:40 PM

BarnsleyFern-kfr.8

Move some stuff around

January 15, 2020 11:49 AM

January 14, 2020

source.squeak.org

Morphic-ct.1615

Fix #applyUserInterfaceTheme on SystemProgressMorph

See http://forum.world.st/SystemProgressMorph-applyUserInterfaceTheme-td5108129.html.

by Chris Muller (ma.chris.m@gmail.com) at January 14, 2020 09:59 PM

squeaksource.com

WarGame-kfr.25

Working on game speed

January 14, 2020 07:50 PM

WarGame-kfr.24

Fix menu pop up and instance var shadowing

January 14, 2020 06:48 PM

source.squeak.org

Monticello-ct.712

Reuse ToolBuilder utility in MCTool >> #showModally

by Christoph Thiede (Christoph.Thiede@student.hpi.uni-potsdam.de) at January 14, 2020 12:58 PM

January 13, 2020

source.squeak.org

VMMaker.oscog-nice.2661

Remove some annoying Undefined Behavior.

When compiling the VM with Makefile.flags
CFLAGS,LDFLAGS,BFLAGS,DYFLAGS=
-fsanitize=undefined \
we then get annoying undefined behavior warning, like:

../../spursrc/vm/gcc3x-cointerp.c:52198:33: runtime error: signed integer overflow: -1197416510 * 16807 cannot be represented in type 'int'
../../src/plugins/BitBltPlugin/BitBltPlugin.c:4390:34: runtime error: shift exponent 32 is too large for 32-bit type 'usqInt' (aka 'unsigned int')

Since we should not rely on UB, let's remove UB.
For hash, we simply use unsigned arithmetic (with the final bitAnd: this is strictly equivalent).
For BitBlt, we must avoid shifting by 32 positions (replace those trivial case of information fitting a single 32-bit word).

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at January 13, 2020 11:43 PM

squeaksource.com

WarGame-kfr.23

comment updated

January 13, 2020 08:16 PM

January 07, 2020

source.squeak.org

Morphic-cmm.1615

When a text selection cannot fit into its text pane, show its upper-left, rather than its lower-right, so stepping through code in a small window is possible.

by Chris Muller (ma.chris.m@gmail.com) at January 07, 2020 04:08 AM

Morphic-cmm.1616

When a text selection cannot fit into its text pane, start by scrolling to its upper-left, rather than its lower-right until the next edit is made, at which point scroll to the edit.

by Chris Muller (ma.chris.m@gmail.com) at January 07, 2020 04:08 AM

Morphic-cmm.1614

When a text selection cannot fit into its text pane, show its upper-left, rather than its lower-right, so stepping through code in a small window is possible.

by Chris Muller (ma.chris.m@gmail.com) at January 07, 2020 03:06 AM

VMMakerUI-eem.15

Deal with some dangling refs to VMMaker objectsx in texts (heree, in editor histories).

by Eliot Miranda (eliot.miranda@gmail.com) at January 07, 2020 01:07 AM

Installer-Core-cmm.436

Include package-definitions for a GraphQL engine expected in Q1/2020, and targeted for Squeak 5.3.

by Chris Muller (ma.chris.m@gmail.com) at January 07, 2020 01:00 AM

Installer-Core-cmm.437

Include package definitions for a GraphQL engine expected in Q1/2020.

by Chris Muller (ma.chris.m@gmail.com) at January 07, 2020 12:58 AM

VMMaker.oscog-eem.2650

Cogit:
Fix a slip in Lowcode FFI trampoline generation.
Nuke leak checking in run-time calls (getting the stack offset for on-stack pcs right is tricky and so the feature isn't useful without a lot more work, and the current bug wasn't caught by it anyway).
Add robustness to printing ARMv8 embedded 32-bit constants.
Better Halt message when stopping at an opcode breakpoint.

Plugins:
Survive double closes in the FilePluginSimulator.

by Eliot Miranda (eliot.miranda@gmail.com) at January 07, 2020 12:10 AM

squeaksource.com

ClosedVMMaker-eem.53

ARMv8: Fix concretizeRotateCqR and hence fix small float instantiation and hence get the screen background correct in the suoprreader example.

by Eliot Miranda (eliot.miranda@gmail.com) at January 07, 2020 12:09 AM

source.squeak.org

VMMakerUI-eem.14

Emphasize the btarget oop in a forwarder.
Put the occasional new line in the print of a bytte array/large integer.
Also use promptClickStep in the interpreter's click step.

by Eliot Miranda (eliot.miranda@gmail.com) at January 07, 2020 12:04 AM

January 06, 2020

source.squeak.org

Collections-nice.867

Fix sendersOfIt for searching senders of an expression including a literal (byte) array

If you select following text

preference: 'Send Mouse Wheel Events to Keyboard Focus'
categoryList: #(Morphic keyboard mouse)
description: 'If enabled, follow the behavior known from Microsoft Windows, where the mouse wheel works for the widget that has the keyboard focus. If disabled, follow the Mac OS style, where the mouse wheel is send to the widget under the mouse position'
type: #Boolean

and browse senders, then if search for senders of #preference: instead of the whole keyword

This is because '#(Morphic keyboard mouse)' was replaced with '#aSymbol keyboard mouse)'

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at January 06, 2020 04:16 PM

Collections-nice.870

Fix sendersOfIt for searching senders of an expression including a literal (byte) array

If you select following text

preference: 'Send Mouse Wheel Events to Keyboard Focus'
categoryList: #(Morphic keyboard mouse)
description: 'If enabled, follow the behavior known from Microsoft Windows, where the mouse wheel works for the widget that has the keyboard focus. If disabled, follow the Mac OS style, where the mouse wheel is send to the widget under the mouse position'
type: #Boolean

and browse senders, then if search for senders of #preference: instead of the whole keyword

This is because '#(Morphic keyboard mouse)' was replaced with '#aSymbol keyboard mouse)'

Also handle the nasty character literals like $: or those that create imbalanced enclosing $( $[ ${

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at January 06, 2020 04:16 PM

CollectionsTests-nice.331

More testFindSelector cases

This covers some case of literal arguments (literal array and Character)

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at January 06, 2020 04:03 PM

EToys-nice.375

Forgot to commit Etoys along with removal of keyValueIndex in Multilingual-nice.250

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at January 06, 2020 02:39 PM

Multilingual-nice.252

Expunge macToSqueak from Input Interpreter.
There is no more macRoman encoding of (event at: 3) - aka charCode as of https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/460

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at January 06, 2020 02:36 PM

Kernel-nice.1292

Assuming that patched VM will produce ASCII control characters (code 1 to 26) again when pressing ctrl+letter, revert some of the recent keyboard event mapping changes (See https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/460).

Those recent changes have unexpected consequences and implications that we might better postpone post release. We should never have to say that, but it's easier to fix the VM than the image in this case ;)

One example of consequences is that cmd+7 is captured by DockingBarMorph as menu #7 rather than passed to theTextEditor if Preferences duplicateAllControlAndAltKeys.

I guess that we have this preference enabled to make windows user experience not to werid wrt native feel (ctrl+key is the shortcut of choice)...

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at January 06, 2020 02:34 PM

EToys-nice.374

Expunge macToSqueak from Input Interpreter.
There is no more macRoman encoding of (event at: 3) - aka charCode as of https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/460

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at January 06, 2020 02:34 PM

CollectionsTests-ul.331

HashedCollectionTest changes:
- more thorough #testSizeFor
- inlined #testPrimes: into #testGoodPrimes
- added new checks to #testGoodPrimes
- always calculate badPrimes in #testGoodPrimes

by Levente Uzonyi (leves@caesar.elte.hu) at January 06, 2020 02:11 PM

PreferenceBrowser-ct.102

Really minor UI improvements of PB button row

by Christoph Thiede (Christoph.Thiede@student.hpi.uni-potsdam.de) at January 06, 2020 01:57 PM

Morphic-nice.1614

Forgot to remove the mouseWheelState ivar from HandMorph

The testNoObsoleteClasses was already failing, but we shall not make it worse...

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at January 06, 2020 01:30 PM

squeaksource.com

Collections.V3-dtl.869

Name: Collections-fn.869
Author: fn
Time: 3 January 2020, 10:27:08.945712 am
UUID: c29ef38b-f152-468e-bac9-74515c099ac4
Ancestors: Collections-nice.868

Add quick-check for identity to String>>sameAs: (similar to Character>>sameAs:).

Example:
[MenuIcons smallInspectItIconContents sameAs: MenuIcons smallInspectItIconContents] bench

Before:
1,740,000 per second. 574 nanoseconds per run. 0 % GC time.

After:
94,800,000 per second. 10.5 nanoseconds per run. 0 % GC time.

by Dave Lewis (lewis@mail.msen.com) at January 06, 2020 12:24 PM

Collections.V3-dtl.868

Name: Collections-nice.868
Author: nice
Time: 28 December 2019, 1:23:35.502843 pm
UUID: e4026d16-31b5-430f-8c22-6475db37bb91
Ancestors: Collections-mt.866

Fix RunArrayTest>>testAt2 (testing access out of bounds)

Beware, Text depends on this feature of accessing runs out of bounds, because the characterIndex might be past end.

To avoid problems, transform previous #at: implementation into #atPin: and use that in Text.
#atPin: clamps the index in accessible range.

by Dave Lewis (lewis@mail.msen.com) at January 06, 2020 12:23 PM

source.squeak.org

Tools-mt.929

Fixes text-scroll behavior for debuggers in too-small windows with too-big fonts. :-) Note that this is just a workaround for the 5.3 release.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at January 06, 2020 10:04 AM

PreferenceBrowser-mt.98

Slightly improves the button-bar-layout in the preference browser for small window sizes. It behaves similar to the bars in other browsers now.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at January 06, 2020 09:38 AM

December 31, 2019

source.squeak.org

60Deprecated-nice.68

Deprecate RunArray>>mapValues:
companion change of Collections-nice.464

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at December 31, 2019 10:19 PM

CollectionsTests-nice.331

More thorough tests for optimized RunArray (companion change of Collections-nice.464)

Note that those added tests lazily use well known collection class results as reference.

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at December 31, 2019 10:18 PM

Collections-nice.869

Remaster 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.

Among those optimizations, notice one important change: some of the enumerating methods like #collect: won't iterate on each element, but only once per run. Be aware that providing blocks with side effects like (i := i + 1) might lead to different behavior than ordinary ArrayedCollection.

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.

Deprecate mapValues: to the profit of replace:.

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at December 31, 2019 10:14 PM

Morphic-tpr.1616

prevent the requested position from chaging if the progress bar is already open and in use; this should stop it leapingabout the screen like someone being pursued by angry Bees

December 31, 2019 09:44 PM

ToolBuilder-Kernel-tpr.135

change the default position for progress bars to slightly below the center of the screen. This should at least help with cases where a notifier/conformer/informer pops up during a large package load and gets hidden behind the progress bar morph.
The Rectangle method should probably be moved back to Graphics-Primitives but by including it here we can avoid the potential for a dNU whilst loading this.

December 31, 2019 09:38 PM

squeaksource.com

Collections.V3-dtl.867

Name: Collections-nice.868
Author: nice
Time: 28 December 2019, 1:23:35.502843 pm
UUID: e4026d16-31b5-430f-8c22-6475db37bb91
Ancestors: Collections-mt.866

Fix RunArrayTest>>testAt2 (testing access out of bounds)

Beware, Text depends on this feature of accessing runs out of bounds, because the characterIndex might be past end.

To avoid problems, transform previous #at: implementation into #atPin: and use that in Text.
#atPin: clamps the index in accessible range.

by Dave Lewis (lewis@mail.msen.com) at December 31, 2019 07:47 PM

Kernel.V3-dtl.1291

Name: Kernel-nice.1291
Author: nice
Time: 26 December 2019, 6:56:30.382504 pm
UUID: ba77885c-3a21-4d74-a5a4-ef2c3572e192
Ancestors: Kernel-mt.1290

Make AssertionFailure an Error rather than a Halt.

This change is necessary for at least running the SUnit tests suite, otherwise the DecompilerTests hangs in a debugger...

There was a consensus on this decision in squeak-dev thread last november, so let's just do it:
[squeak-dev] Squeak's AssertionFailure vs. SUnit's TestFailure
http://lists.squeakfoundation.org/pipermail/squeak-dev/2019-November/205039.html

For now, keep it resumable. I don't know if reasonable, but like that, AssertionFailure behavior should be mostly unchanged.

by Dave Lewis (lewis@mail.msen.com) at December 31, 2019 07:45 PM

source.squeak.org

Collections-ul.869

Various performance tweaks in a single commit:

- be straightforward in Dictionary >> #fillFrom:with:
- when aCollection is a Dictionary use #associationsDo:, as it very likely it has associations, and it's faster than #keysAndValuesDo:
- when it's not a Dictionary, use #do: instead of #associationsDo:, because the former is what we can expect a Collection to implement

- use existing search methods in String >> #findDelimiters:startingAt:, because those are faster, and there's no need to reinvent the wheel. All users other than #findTokens:* should be rewritten to use #indexOfAnyOf:* instead.

- almost twice as fast (amortized cost) Symbol >> #lookup: for existing symbols

by Levente Uzonyi (leves@caesar.elte.hu) at December 31, 2019 02:25 PM

VMMakerUI-eem.13

Add a subclass of CogOopInspector, CogBytecodeMethodInspector (you can guess what for).
Add emphasised printing support.

by Eliot Miranda (eliot.miranda@gmail.com) at December 31, 2019 03:26 AM

VMMaker.oscog-eem.2649

SImulation:
Nil localFP when entering the CoInterpreter through a run-time call.
Add a flag so that run-time calls can be leak checked.
C;lean ups to printing so that the CogOopOnspector doesn't get interrupted with halts and doesn't see "VMObjectProxy for" noise.
Abstract forwarder printing, and use it when printing a dead object in new space (a forwarded corpse).

by Eliot Miranda (eliot.miranda@gmail.com) at December 31, 2019 03:25 AM

PreferenceBrowser-ct.101

Honor #openToolsAttachedToMouseCursor when opening the PreferenceBrowser

by Christoph Thiede (Christoph.Thiede@student.hpi.uni-potsdam.de) at December 31, 2019 02:20 AM

PreferenceBrowser-ct.100

Complements Help-Squeak-Project-ct.75. If help is not loaded, help won't be available any longer.

by Christoph Thiede (Christoph.Thiede@student.hpi.uni-potsdam.de) at December 31, 2019 02:06 AM

Help-Squeak-Project-ct.75

Migrate PreferenceBrowser >> #helpText to a separate help topic class. Split and refine the documentation contents.

December 31, 2019 02:05 AM

PreferenceBrowser-ct.99

Add a button to open the preference wizard from the preference browser. It's just too cool to not being reused after initial setup!

by Christoph Thiede (Christoph.Thiede@student.hpi.uni-potsdam.de) at December 31, 2019 01:53 AM

Installer-Core-cmm.435

GraphQL is about to be released for Squeak 5.3. Please include these package-definitions in 5.3's Installer.

by Chris Muller (ma.chris.m@gmail.com) at December 31, 2019 01:52 AM

PreferenceBrowser-ct.98

Fix serious translation issues in PreferenceBrowser

by Christoph Thiede (Christoph.Thiede@student.hpi.uni-potsdam.de) at December 31, 2019 01:46 AM

Morphic-ct.1615

Fix #applyUserInterfaceTheme on SystemProgressMorph

See http://forum.world.st/SystemProgressMorph-applyUserInterfaceTheme-td5108129.html.

by Christoph Thiede (Christoph.Thiede@student.hpi.uni-potsdam.de) at December 31, 2019 01:31 AM

PreferenceBrowser-tpr.100

de-duplicatise #loadFromDiskSelected and use #restorePreferencesFromDisk: properly

December 31, 2019 01:26 AM

System-tpr.1131

Clean up a couple of Preferences issues
- delete a reference to the deprecated #thoroughSenders pref
- de-duplicatise #restorePreferencesFromDisk
- use translate friendly #format: for #restorePreferencesFromDisk:
- update #storePreferencesIn: to use #allPreferneces so that deprecated prefs don't cause problem when saving preferences.

December 31, 2019 01:24 AM

Graphics-ct.425

[very minor] Use already defined magic number instead of hard-coded duplication

December 31, 2019 01:13 AM

December 30, 2019

source.squeak.org

Tests-ct.425

Adds regression test for a compiler bug that was fixed in Compiler-ct.414

by Christoph Thiede (Christoph.Thiede@student.hpi.uni-potsdam.de) at December 30, 2019 06:19 PM

Compiler-ct.414

Fixes a compiler bug thath occured when sending a cascade to a block, caused by incomplete deoptimization in Parser >> cascade. Refines the documentation of #blockExtent.

Thanks to Eliot for his support! For more information, see: http://forum.world.st/BUG-Cannot-compile-cascade-sent-to-block-td5108942.html

December 30, 2019 06:17 PM

December 29, 2019

squeaksource.com

ClosedVMMaker-eem.52

ARMv8: Support for GCing embedded literals, and disassembling cog SqueakV3 methods containing blocks.

by Eliot Miranda (eliot.miranda@gmail.com) at December 29, 2019 08:00 PM

December 22, 2019

squeaksource.com

ClosedVMMaker-eem.38

ARMv8: Implement MulRR. Fix pcRelativeAddressAt: for negative offsets (computing newMethod et al in external prims).

by Eliot Miranda (eliot.miranda@gmail.com) at December 22, 2019 03:03 AM

source.squeak.org

Cog-eem.382

Provide leafRetpcIn: to correctly simulate leaf calls in mcprim invocation.

by Eliot Miranda (eliot.miranda@gmail.com) at December 22, 2019 02:54 AM

VMMaker.oscog-eem.2626

In calling machine code primitives on RISCs we must save & restore the link register around the call. We haven' noticed this issue before because we only have one mcprim (hashMultiply) and that gets implemeted entirtely in generated machine code if a processor implements MulRR. ARMv8 will impl,ement MulRR but doesn't as yet, and so because the first RISC to call an mcprim, uncovering the bug.

Since we're interested in performance and there are typically regsietrfs to spare on RISC define saveAndRestoreLinkRegUsingCalleeSavedRegNotLiveAtPointOfSendAround: instead of using saveAndRestoreLinkRegAround: so that the Linkreg gets written and read from an available callee-saved reg (if available).

Simulation:
Make the checking of return addresses more precise; require that the pc we end up at is the return pc.

by Eliot Miranda (eliot.miranda@gmail.com) at December 22, 2019 02:52 AM

squeaksource.com

ClosedVMMaker-eem.37

ARMv8, Implement saveAndRestoreLinkRegUsingCalleeSavedRegNotLiveAtPointOfSendAround: so that mcprim calls work.

Simulation:
Handle trapping BR's. Implement the remaining simulated control transfer support.

by Eliot Miranda (eliot.miranda@gmail.com) at December 22, 2019 01:57 AM

December 21, 2019

source.squeak.org

Cog-eem.381

Comment the various registerStatePCIndex methods.

by Eliot Miranda (eliot.miranda@gmail.com) at December 21, 2019 11:10 PM

VMMaker.oscog-eem.2625

Cogit:
Split the generation of translated hashMultiply into a SmallInteger version and a Large(Positive)Integer version.

Simulator:
Have simulation treat mcprim invocation as a laft call, and get this to work properly.

Fix the break block's prompt.

by Eliot Miranda (eliot.miranda@gmail.com) at December 21, 2019 11:09 PM

squeaksource.com

ClosedVMMaker-eem.36

Fix report recent instructions for ARMv8 such that registers are included (we must include pc in integerRegisterState).

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

WarGame-kfr.13

Remove a sound

December 21, 2019 10:00 PM

WarGame-kfr.11

Pretty print fieldmorph

December 21, 2019 09:43 PM

source.squeak.org

VMMaker.oscog-eem.2624

Cogit:
genPrimitiveHashMultiply needs to obey backEnd canMulRR.

Simulation: Make sure that mcprims are called via leaf calls so that tjeir unaligned stack pointer doesn't violate the ARMv8 ABI stack alignment (mcprims run on the Smalltalk stack). Nuke the unused Cogit>>simulateCallOf:nextpc:memory:.

by Eliot Miranda (eliot.miranda@gmail.com) at December 21, 2019 08:44 PM

squeaksource.com

WarGame-kfr.9

Fixing attack of ai enemy

December 21, 2019 07:57 PM

ClosedVMMaker-eem.35

ARMv8: Implement the RR shifts. Simulate leaf returns.

by Eliot Miranda (eliot.miranda@gmail.com) at December 21, 2019 07:46 PM

WarGame-kfr.8

Basic ai defence

December 21, 2019 07:38 PM

ClosedVMMaker-eem.34

ARMv8: Reimplement the memory moves by support routines taking the log minus one of the unit size (this is a regular machine). Consequently implement all remaining MoveMSrR/MoveRMSr/MoveXSrRR/MoveRXSrR.

Fix some miscategorizations.

by Eliot Miranda (eliot.miranda@gmail.com) at December 21, 2019 05:20 PM

WarGame-kfr.5

refactoring and code cleaning

December 21, 2019 03:58 PM

Kernel.V3-dtl.1289

Name: Kernel-mt.1289
Author: mt
Time: 19 December 2019, 11:45:58.637761 am
UUID: e9f9d6a0-0ce8-114e-b3d2-26b481f590a1
Ancestors: Kernel-mt.1288

- fixes ctrl <-> alt key swapping bug in #processEvent:
- fixes ctrl <-> alt key swapping by extending the range to the same range as for "duplicate *all*"
- LINUX ONLY: fixes swapping and duplication of ctrl/alt keys
- LINUX ONLY: maps controls keys that arrive as ASCII 64 to 127 down to ASCII 0 to 31
- document that other (older) "duplicate keys" preference to be deprecated after the 5.3 release

So, the current VM 201911282316 should be fine for all platforms for Squeak 5.3 at the moment.

by Dave Lewis (lewis@mail.msen.com) at December 21, 2019 02:43 PM

TZ-Olson-dtl.17

asPosixSeconds is part of the Chronology so remove it from TZ-Olson

by Dave Lewis (lewis@mail.msen.com) at December 21, 2019 02:28 PM

WarGame-kfr.4

Stop units stepping once game is won.

December 21, 2019 12:56 PM

WarGame-kfr.3

fixing initialize

December 21, 2019 12:29 PM

source.squeak.org

UpdateStream-ct.13

Fix a small bug when dropping a changeset without conflicts into the image, showing the "conflicts with updated methods" and then pressing "no"

December 21, 2019 12:00 PM

Monticello-ct.709

Implement #doItReceiver and #doItContext on MCCodeTool. Allows, for example, for inspecting a class variable from a save version dialog.

December 21, 2019 11:56 AM

squeaksource.com

ClosedVMMaker-eem.33

ARMv8: Implement most of the double precision arithmetic instructions plus comparison and all but the ordered/unordered jumps. Implement RotateRightCqR (used in immediate float conversion).
Add some editing routines used in PIC updating.

by Eliot Miranda (eliot.miranda@gmail.com) at December 21, 2019 09:33 AM

source.squeak.org

Tools-cmm.927

- Fix debugging of the initialization of Dictionary's.
- Fix the order of entries rendered by inspectors of OrderedDictionary's.

by Chris Muller (ma.chris.m@gmail.com) at December 21, 2019 04:07 AM

Tools-cmm.926

- Fix debugging of the initialization of Dictionary's.
- Fix the order of entries rendered by inspectors of OrderedDictionary's.

by Chris Muller (ma.chris.m@gmail.com) at December 21, 2019 04:06 AM

Tools-cmm.928

Fix DictionaryInspector to allow debugging of Dictionary initialization, and render the entries in order for OrderedDictionary's.

by Chris Muller (ma.chris.m@gmail.com) at December 21, 2019 04:06 AM

Cog-eem.380

Implement a missing register accessor pair for the MIP sim.

by Eliot Miranda (eliot.miranda@gmail.com) at December 21, 2019 03:39 AM

VMMaker.oscog-eem.2623

Cogit:
Now that a processor is allowed to refuse to do CmpR: SPReg R: ?Reg, rewrite genGetActiveContextLarge:inBlock: to do its SPReg comparison the other way around.
Fix a bug in an assert now that method alignment can be > 8.

AbstractInstructionTests:
Refactor common code into convenience methods. Implement runSubRR:on:. Two down. Quite a few to go.

by Eliot Miranda (eliot.miranda@gmail.com) at December 21, 2019 03:36 AM

squeaksource.com

ClosedVMMaker-eem.32

ARMv8:
Implement lots more instructions. Fix bugs in concretizeCqRLogical:, concretizeMoveC32R, concretizeSubCqR & emitMoveCw:intoR:at:.
Get sp usage right in concretizeRRArithmetic:Rd:, inverting the op and swapping the regs if required.

by Eliot Miranda (eliot.miranda@gmail.com) at December 21, 2019 02:51 AM

December 20, 2019

source.squeak.org

Environments-dtl.77

Fix the uninstall script

by David T. Lewis (lewis@mail.msen.com) at December 20, 2019 05:39 PM

squeaksource.com

WarGame-kfr.2

Small fix of deprecation and underscore assignments

December 20, 2019 05:00 PM

December 19, 2019

source.squeak.org

Cog-eem.379

ProcessorAliens: Add missing cresultRegister for BochsX64Alien. Provide a convenient disassemble-to-string method. Make sure that the basic disassembler doesn't duplicate the address. Have reportPrimitiveFailure print the context (regs & inst) if not being printed. Provide missing reg accessors for the PIMS simulator (so it can execute the CmpRR test, even if it passes it for about half the cases).

by Eliot Miranda (eliot.miranda@gmail.com) at December 19, 2019 09:49 PM

VMMaker.oscog-eem.2622

Cogit:
ARMv8: Resolve the confusion with CmpR: TempReg R: SPReg. The ARMv8 code was backwards. Indeed it can support CmpR: TempReg R: SPReg. Hence simplify compileStackOverflowCheck: and nuke hasCmpRSPReg.

ARMv5 Cogit: Get the stop insruction (BKPT) correct.

Cogit Tests:
Add a better way of running execution tests, adding CogitForTests as a stripped down compiler for simle instruction sequences. Exemplify (and verify the correctness of compares on ARMv8) by adding AbstractInstructionTests>>runCmpRRJumpCond:on:.
All other executio tests will be rewritten in the style soon... But for now commit the sngle functional example. Revise the various CogXXXCompilerForTests>>concretizeAt: to observe the new covention for assigning machineCodeSize with the result of concretizeAt:, not assighning within concretizeAt:.

Simulation: Refactor providing the current insruction and register state on an illegal address lookup so that it can also be used by CogProcessorAlien>>reportPrimitiveFailure.

by Eliot Miranda (eliot.miranda@gmail.com) at December 19, 2019 09:44 PM

squeaksource.com

ClosedVMMaker-eem.31

ARMv8: Resolve the confusion with CmpR: TempReg R: SPReg. The ARMv8 code was backwards. Indeed it can support CmpR: TempReg R: SPReg. Hence nuke hasCmpRSPReg. See VMMaker.oscog-eem.2622.

Fix the computation of offsets in cond:br:offset: (imm19 branch offsets).

Add CogARMv8CompilerForTests. Implement convertIntegerToInternal: & abstractInstructionCompilerClass for the alien.

by Eliot Miranda (eliot.miranda@gmail.com) at December 19, 2019 08:56 PM

source.squeak.org

Kernel-mt.1289

- fixes ctrl <-> alt key swapping bug in #processEvent:
- fixes ctrl <-> alt key swapping by extending the range to the same range as for "duplicate *all*"
- LINUX ONLY: fixes swapping and duplication of ctrl/alt keys
- LINUX ONLY: maps controls keys that arrive as ASCII 64 to 127 down to ASCII 0 to 31
- document that other (older) "duplicate keys" preference to be deprecated after the 5.3 release

So, the current VM 201911282316 should be fine for all platforms for Squeak 5.3 at the moment.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at December 19, 2019 10:46 AM

CogPools-ISAs-eem.7

Fix instructionIsPCRelativeLoad: to include sign-extending 32 to 64 bit moves

by Eliot Miranda (eliot.miranda@gmail.com) at December 19, 2019 03:34 AM

VMMaker.oscog-eem.2621

Simulation:
Provide context when fake addresses are not found in the mapping dictionaries but printRegisters and/or printInstructions is not in effect.

Improve generation breaqkpointing to break if the address is anywhere within the instruction, not just at the start of it.

by Eliot Miranda (eliot.miranda@gmail.com) at December 19, 2019 03:33 AM

squeaksource.com

ClosedVMMaker-eem.30

A64: Make the 32-bit moves sign extend from 32 to 64 bits.
Implement Nop. Fix NegateR.
Fix instructionIsPCRelativeLoad: to include sign-extending 32 to 64 bit moves.
Fix formatting of two word literals in decoration.
Add halts for all unhandled cases in handleFailingLoadStore:at:in:

by Eliot Miranda (eliot.miranda@gmail.com) at December 19, 2019 02:37 AM

December 18, 2019

squeaksource.com

Kernel.V3-dtl.1288

Name: Kernel-mt.1288
Author: mt
Time: 16 December 2019, 9:06:49.662845 am
UUID: 3e88e0c8-27ef-dc4a-9017-227b63e2ce72
Ancestors: Kernel-mt.1286

Clean up documentation and code of latest key-code fix. Thanks Nicolas (nice) for the tip!

by Dave Lewis (lewis@mail.msen.com) at December 18, 2019 11:57 PM

source.squeak.org

VMMaker.oscog-eem.2620

Simulation:
Fix click step now there are subclasses of Debugger.
Reposition a generation pc breakpoint check to a slightly more useful place.

by Eliot Miranda (eliot.miranda@gmail.com) at December 18, 2019 06:52 PM

squeaksource.com

ClosedVMMaker-eem.29

Fix the last [;)] bug in emitLdrn:rt:imm:shiftBy12:at: with indirect offsets.
Fix concretizeRRArithmetic:Rd: for the SPReg case.

by Eliot Miranda (eliot.miranda@gmail.com) at December 18, 2019 06:44 PM

ClosedVMMaker-eem.28

A64: Add a breakpoint for the invalid CmpRR generation (which isn't hit?!).
Fix two bugs in emitLdrn:rt:imm:shiftBy12:at: with imm12 & imm9 offsets.
Have printRegisterState:on: elide zero registers to save space (69 registers!!).
Fix decorateDisassembly:for:fromAddress:labels: in report instructions mode.

Now executiuon proceeds to a segfault in the GdbARMv8Plugin after lots of instructions are executed (!!).

by Eliot Miranda (eliot.miranda@gmail.com) at December 18, 2019 05:56 PM

source.squeak.org

Morphic-mt.1610

Fixes a serious regression in text widgets and all other scroll panes.

- There were too many layout invalidations when scrolling through a pane's scroll bars. See #moveSliderTo: for the fix.
- There was a control-flow contract violation in ScrollPane >> #scrollToShow:.
- The text field discarderd mark-and-point information when replacing its editor. See, for example, #scrollSelectionIntoView:.
- All transform morphs triggered redraw requests on offset updates even if the new offset was not different. That made code in ScrollPanes unnecessarily complex.

I documented all the other quirks to be tackled after the 5.3 release. :-)

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at December 18, 2019 03:31 PM

CogPools-ISAs-eem.6

A64; Make the other arm in extractOffsetFromLoadStore: correct (for imm9).
Make instructionIsPCRelativeLoad: match CogARMv8Compiler's implementation.

by Eliot Miranda (eliot.miranda@gmail.com) at December 18, 2019 09:05 AM

Cog-eem.378

Include the labelsDictionary in disassembly decoration in processor simulators that want it. This allows i.e. the ARMv8 simulator to identify two-word literals by tagging the labels dictionary when a pc-relative load is decorated.

by Eliot Miranda (eliot.miranda@gmail.com) at December 18, 2019 09:04 AM

VMMaker.oscog-eem.2619

Ensure the methodZoneBase is correctly aligned after initialization, ready for the first method.

by Eliot Miranda (eliot.miranda@gmail.com) at December 18, 2019 09:02 AM

PreferenceBrowser-mt.97

Merges typo fix from PreferenceBrowser-ck.85.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at December 18, 2019 08:44 AM

PreferenceBrowser-ck.85

Simple typo fix adding a space in the confirmation dialog.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at December 18, 2019 08:41 AM

squeaksource.com

ClosedVMMaker-eem.27

A64: Fix a major confusion with ldbrn:rt:imm:shiftBy12:, ldrn:rt:imm:shiftBy12: & moveCw:intoR:. These emitted code in some cases and answered instruction patterns in others. They can't do both. So nuke them and replace them by equivalents that start with emit and take an offset. They can therefore be composed.

Fix computeMaximumSize for MoveMwrR, MoveRMwr & PushCw.

Fix a slip in roundUpToMethodAlignment:.

Deal with decoration of two word literals by adding info to the labelsDictionary whenever a pc-relative load is decorated.

by Eliot Miranda (eliot.miranda@gmail.com) at December 18, 2019 08:09 AM

SLAC-Monitoring-NM.81

entering SqueakFiletree

by Nicola Mingotti (nmingotti@gmail.com) at December 18, 2019 01:26 AM

source.squeak.org

Collections-ul.867

HashedCollection changes: - speed up #goodPrimeAtLeast: when its argument is small
- let #sizeFor: return the smallest possible capacity (3)
- use #sizeFor: instead of #goodPrimeAtLeast: in #compact. This fixes the case when a 4 element dictionary is compacted to 80% capacity (array size = 5), which is higher than the advertised maximum: 75%.

by Levente Uzonyi (leves@caesar.elte.hu) at December 18, 2019 01:16 AM

Chronology-Core-cmm.52

Ability to run and compare multiple benchmarks at once via:

{ baselineExpression.
altExpression1.
altExpression2.
"...etc..." } benchCompare

The standard bench string is reported for each, along with a percentage rate relative to the baseline, the first one.

by Chris Muller (ma.chris.m@gmail.com) at December 18, 2019 12:25 AM

squeaksource.com

SLAC-Monitoring-NM.80

little cosmetic change

by Nicola Mingotti (nmingotti@gmail.com) at December 18, 2019 12:15 AM

December 17, 2019

source.squeak.org

VMMaker.oscog-eem.2618

Generalize OutOfLineLiteralsManager to function for 64 bits via CogOutOfLineLiteralsARMCompiler.
CogOutOfLineLiteralsARMCompiler's job is to segregate 32-bit from 64-bit literals for better packing.
Change the hack of using operand 1 in a literal to hold the "isSharable/isUnique not" flag to holding
both the flag (now as an integer in the LSB) and the literal size (in a four bit field above the LSB).
Why four? Space is hardly pressing right now.

Nuke a method made obsolete by Tim R's much cooler PIC layout.

by Eliot Miranda (eliot.miranda@gmail.com) at December 17, 2019 11:07 PM

CogPools-ISAs-eem.5

ARMv8A64Opcodes: Fix some bit masks.
Implement instructionIsAnyBX:.

by Eliot Miranda (eliot.miranda@gmail.com) at December 17, 2019 11:03 PM

squeaksource.com

NMI-Methods-NM.10

empty log message

by Nicola Mingotti (nmingotti@gmail.com) at December 17, 2019 10:20 PM

Ston-Core-SvenVanCaekenberghe.36

added #allowComplexMapKeys option to STONReader (thx Norbert Hartl);
added STONReader>>#reset

by Nicola Mingotti (nmingotti@gmail.com) at December 17, 2019 10:20 PM

SLAC-Monitoring-NM.79

Save into SqueakMap, because Git is creating extra problems.

by Nicola Mingotti (nmingotti@gmail.com) at December 17, 2019 10:20 PM

source.squeak.org

Tools-cmm.927

- Fix debugging of the initialization of Dictionary's.
- Fix the order of entries rendered by inspectors of OrderedDictionary's.

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

squeaksource.com

ClosedVMMaker-eem.26

A64: Implement OutOfLineLiteralsManagerFor64Bits to segregate 32-bit amd 64-bit literals for better packing.
Fix the 32-bit moves to move (and hence zero-extend)32 bits, not 64.
Implewment rewriteInlineCacheAt:tag:target:. Things are starting to work ;-)

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

source.squeak.org

Tools-cmm.926

- Fix debugging of the initialization of Dictionary's.
- Fix the order of entries rendered by inspectors of OrderedDictionary's.

by Chris Muller (ma.chris.m@gmail.com) at December 17, 2019 09:55 PM

VMMaker.oscog-eem.2617

Whoops! The send trampolines must save & restore the link register around the selectorIndexDereferenceRoutine if on a 64-bit RISC.

by Eliot Miranda (eliot.miranda@gmail.com) at December 17, 2019 08:14 PM

CogPools-ISAs-eem.4

Add some instruction decode methods to ARMv8A64Opcodes (a work in progress!).

by Eliot Miranda (eliot.miranda@gmail.com) at December 17, 2019 07:36 PM

Cog-eem.377

Allow CogProcessorAlien to deny: as well as assert:.

by Eliot Miranda (eliot.miranda@gmail.com) at December 17, 2019 07:36 PM

squeaksource.com

ClosedVMMaker-eem.25

A64: A start at assembly decoration, plus nuking an unused carry over from ARM32.

by Eliot Miranda (eliot.miranda@gmail.com) at December 17, 2019 06:37 PM

source.squeak.org

Tools-mt.925

Improves debugger documentation.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at December 17, 2019 11:20 AM

squeaksource.com

ClosedVMMaker-eem.24

A64: Fix clerical errors and a surpluss bit in ldrn:rt:imm:shiftBy12:. The first send now makes it into ceSend:, but the stack depth check fails.

by Eliot Miranda (eliot.miranda@gmail.com) at December 17, 2019 06:57 AM

ClosedVMMaker-eem.23

ARMv8: Fix clerical errors in handleFailingLoadStore:at:in: and extend it with several cases. This is getting ugly. The ARMv8 does not have neat decode, nor does it appear to be amenable to table-driven approaches.

by Eliot Miranda (eliot.miranda@gmail.com) at December 17, 2019 03:41 AM

December 14, 2019

source.squeak.org

Cog-eem.374

GdbARMv8Alien methods for simulating leaf calls.

by Eliot Miranda (eliot.miranda@gmail.com) at December 14, 2019 11:24 PM

VMMaker.oscog-eem.2614

Provide DoubleWordArray>>unsignedLongAt:bigEndian:
for ARMv8 simulation (yes, we're simulating code!).
Nuke CogX64Compiler>>wantsNearAddressFor: now that CFrame/StackPointer are relative to VarBaseReg.

by Eliot Miranda (eliot.miranda@gmail.com) at December 14, 2019 11:23 PM

squeaksource.com

ClosedVMMaker-eem.15

A64: Fix a slip in roundUpToMethodAlignment:. Ad ARM32's wantsNearAddressFor:

by Eliot Miranda (eliot.miranda@gmail.com) at December 14, 2019 10:25 PM

Kernel.V3-dtl.1286

Name: Kernel-mt.1286
Author: mt
Time: 13 December 2019, 4:24:23.507615 pm
UUID: 2f99cd52-d053-cb40-a84a-6c257ee118f4
Ancestors: Kernel-mt.1285

Fixes key-code mapping to map only in key-stroke events. This fixes the bug where a key-down/up event on [ctrl] appeared as [ctrl+q], [shift] as [shift+P], and [cmd] as [cmd+r]. Also fix key swapping and duplication for [ctrl+shift] combinations. Improves documentation in EventSensor class comment.

by Dave Lewis (lewis@mail.msen.com) at December 14, 2019 08:10 PM

Kernel.V3-dtl.1285

Name: Kernel-mt.1285
Author: mt
Time: 13 December 2019, 2:25:24.279249 pm
UUID: 1c18d133-29d7-6049-a7be-40a8d045b474
Ancestors: Kernel-mt.1284

Improves documentation in EventSensor.

by Dave Lewis (lewis@mail.msen.com) at December 14, 2019 08:08 PM

ClosedVMMaker-eem.14

A64 revise several load/store instructions given simulating with in-memory inMemoryCStackPointerAddress et al.

Improve the comment in CogARMv8Compiler class>>initialize re XZR & SP.

by Eliot Miranda (eliot.miranda@gmail.com) at December 14, 2019 08:06 PM

source.squeak.org

Monticello-ct.708

Fix MCSaveVersionDialog refreshing: Update text if the currently selected item changed

December 14, 2019 04:34 PM

Kernel-ct.1286

Refine proposal for #defaultCategoryForSelector: and provide a few default categories

December 14, 2019 04:32 PM

SUnit-ct.123

Refine default message category for test selectors

December 14, 2019 04:11 PM

System-ct.1129

Restore display after leaving emergency evaluator

December 14, 2019 02:15 PM

System-ct.1128

Extends Transcripter with #clear command and refactors readEvalPrint loop

- Adds #showln: method

December 14, 2019 02:14 PM

ConfigurationOfScamper-LaurentLaffont.2

Fix loop

December 14, 2019 04:11 AM

VMMaker.oscog-eem.2613

Add three register AddRRR and SubRRR and save an instruction in context creation on ARM ;-)

by Eliot Miranda (eliot.miranda@gmail.com) at December 14, 2019 03:36 AM

VMMaker.oscog-eem.2612

Cogit: And if available, include symbolic info in abstract opcode printing.

by Eliot Miranda (eliot.miranda@gmail.com) at December 14, 2019 02:59 AM

squeaksource.com

ClosedVMMaker-eem.13

A64 Implement AddRRR, SubRRR, AddRR, CmpRR, SubRR.

by Eliot Miranda (eliot.miranda@gmail.com) at December 14, 2019 02:56 AM

source.squeak.org

VMMaker.oscog-eem.2611

Fix a couple of errors in printFormatForOpcodeName:.
There are more "exit" cases: Add, And, Or.
The correct format for X?rR is #($r $r $r).

by Eliot Miranda (eliot.miranda@gmail.com) at December 14, 2019 02:34 AM

SUnitGUI-ct.78

Extend the TestRunner to delete selectors from failedList/errorList if they are removed from system

Depends on SUnit-ct.122.

December 14, 2019 12:16 AM

SUnit-ct.122

Add check for a TestCase whether it is still installed (that is, the test selector has not been removed)

December 14, 2019 12:15 AM

December 13, 2019

source.squeak.org

Morphic-ct.1609

Revise documentation of morphic layout properties, very minor.

- Specify possible types of insets
- Fix a few copy-'n'-paste slips

December 13, 2019 11:58 PM

HelpSystem-Core-ct.127

Fix a small syntax error in the Help on Help cpde examples

December 13, 2019 11:40 PM

VMMaker.oscog-eem.2610

Fix Slang inlining hint for roundUpLength: given the refactoring in VMMaker.oscog-eem.2603

by Eliot Miranda (eliot.miranda@gmail.com) at December 13, 2019 11:33 PM

squeaksource.com

ClosedVMMaker-eem.12

A64 implement AddCwR, CmpCwR, SubCwR.

by Eliot Miranda (eliot.miranda@gmail.com) at December 13, 2019 11:19 PM

source.squeak.org

VMMaker.oscog-eem.2609

Make categorization of mchine cod egeneration routines consistent (recategorizations only).

by Eliot Miranda (eliot.miranda@gmail.com) at December 13, 2019 10:57 PM

squeaksource.com

ClosedVMMaker-eem.11

Refactor concretizeOrCqR into concretizeCqRLogical: & concretizeCwRLogical:. Implement all the logical CqR and CwR as a result. Fix a slip in concretizeCmpCqR. Generalize ldrn:rt:imm:shiftBy12: to full 64-bit offsets.

by Eliot Miranda (eliot.miranda@gmail.com) at December 13, 2019 10:36 PM

source.squeak.org

Kernel-ct.1287

Fixes selector classification with special category names, such as the all category or the null category.

Reproduce this issue by moving a method from one class into another and dropping it over the all category.

This bug might probably be the reason why we Utilities >> #fixUpProblemsWithAllCategory was introduced.

December 13, 2019 06:01 PM

Kernel-mt.1287

Proposal: Always map control characters to printable characters. This happens automatically when "duplicate (all) control and alt keys" or "swap control and alt keys" is enabled. But NOT when all of those preferences are disabled. Which can be surprising because when you type [ctrl]+[c], you expect a key value of 99 like in [cmd/alt]+[c]. ... and not 3 :-)

This is a proposal because we also would have to adapt and test:

TextEditor >> #dispatchOnKeyboardEvent:
TextEditor class >> #initializeShiftCmdKeyShortcuts
Editor class >> #specialShiftCmdKeys

December 13, 2019 03:30 PM

Kernel-mt.1286

Fixes key-code mapping to map only in key-stroke events. This fixes the bug where a key-down/up event on [ctrl] appeared as [ctrl+q], [shift] as [shift+P], and [cmd] as [cmd+r]. Also fix key swapping and duplication for [ctrl+shift] combinations. Improves documentation in EventSensor class comment.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at December 13, 2019 03:24 PM

December 09, 2019

source.squeak.org

VMMaker.oscog-eem.2598

Fix plugin generation given renamed plugins

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

squeaksource.com

ClosedVMMaker-eem.1

First commit of the ClosedVMMaker project, which is a subproject of VMMaker (http://source.squeak.org/VMMaker), specifically of the VMMaker.oscog JIT VM (a.k.a. Cog) and its generated source at OpenSmalltalk-VM (https://github.com/OpenSmalltalk/opensmalltalk-vm). Currently this project contains the source for the ARMv8 code generator for Cog. Copyright © 2019 Eliot Emilio Miranda; all rights reserved. The author grants a one-time royalty free license in perpetuity to the Squeak, Cuis and Newspeak communities to use this code in the context of the OpenSmalltalk-VM. It is expressly forbidden for this code to be used in any way by the Pharo community and its VM (http://pharo.org & https://github.com/pharo-project/opensmalltalk-vm) or any derivative there-of. To seek permission to use this code please contact the author, e.g. via eliot.miranda@gmail.com or via SMS +1 415 533 8868.


A64 implement MoveCwR, MoveRMwr. Get the SP restriction correct in strn:rt:imm:shiftBy12:.
At least acknowledge that pc-relative addressing needs to be used in moveCw:intoR:.

VMMaker.oscog-eem.2612, 8 December 2019, 11:38:56.061854 pm

A64 Get the offset right in PopR

VMMaker.oscog-eem.2611, 8 December 2019, 11:36:41.233693 pm

A64 Call, CallFull, MoveCqR, PopR, PushR. More ABI implementation, nameForRegister:.

Eliminate duplication in genLoadStackPointers; implement in CogAbstractInstruction.
Add a few subclass responsibilities.
Correct 64-bit instruction printing (signedIntFromLong64 instead of signedIntFromLong).
Add Extra6Reg & Extra7Reg to nameForRegister:.

Now all send trampolines compile and generated code "looks ok" (which is potyentially very different from correwct).

VMMaker.oscog-eem.2610, 8 December 2019, 9:04:37.440523 pm

A64 several parts of the ABI-compliant call glue filled out.

Eliminate duplication in genLoadCStackPointers, genSaveStackPointers, genSaveRegs:. These can all be implemented in CogAbstractInstruction.

VMMaker.oscog-eem.2609, 8 December 2019, 8:41:23.17819 pm

A64 fix bugs in LogicalShiftLeftCqR, MoveM16rR, MoveMbrR, MoveXwrRR & cond:br:offset:.

VMMaker.oscog-eem.2608, 8 December 2019, 4:40:28.547125 pm

A64 concretizeConditionalJump:
Fix a Slang slip in decode64Imms:immr:

VMMaker.oscog-eem.2607, 8 December 2019, 4:26:01.580137 pm

Cogit:
Apply long desired refactoring such that the concretize operations and dispatchConcretize answer the size of the machine code generasted, instead of assigning m achineCodeSize in every concretize operastion and answering it. Then assihgn machineCodeSize in only a handfiul of places. This is both to generate better C code (should be more compact and slightly faster), and for neatness/comprehensibility.

Simulator: Fix a slip in setting options in a VMMaker; we must assign InitializationOptions on setting optionsDictionary to eliminate any stale/bogus options from any previous erroneous invocation.

VMMaker.oscog-eem.2606, 8 December 2019, 2:38:42.049006 pm

A64 LogicalShiftLeftCqR, MoveAwR, SubCqR

VMMaker.oscog-eem.2605, 8 December 2019, 1:43:34.017439 pm

A64 XwrRR, NegateR, SubRR.
Document that arithmetic sets carry/borrow but does not respond to it.

VMMaker.oscog-eem.2604, 8 December 2019, 12:26:04.834096 pm

A64 M16rR & MbrR

VMMaker.oscog-eem.2603, 8 December 2019, 11:47:29.689495 am

Make A64 immediate logical bitmasks correct.

VMMaker.oscog-eem.2602, 3 December 2019, 6:33:22.314018 pm

More work for CogARMv8Compiler. Add concretizeAddCqR and concretizeAndCqRDest:. Now seven instructions into generating ceDereferenceSelectorIndex.

ARMv8 has an amazingly exotic scheme for encoding bitfields as immediates in logical operations. Copy LLVM's encoder. So far this is unverified because I cannot make sense of
immN:NOT(imms)
in
len = HighestSetBit(immN:NOT(imms));
in DecodeBitMasks on page J1-7389 of the Arm ARM.
If you can make sense of this either consider fully implementing CogARMv8Compiler>>decodeBitMasksN:imms:immr: or explaining to me what is meant by "immN:NOT(imms)" (via email to OpenSMalltalk-VM ?).

AdvThanksance.

VMMaker.oscog-eem.2601, 3 December 2019, 9:40:27.524843 am

More work for CogARMv8Compiler. Add concretizeCmpCqR & concretizeMoveMwrR. Fix pc-relative louteral loading in moveCw:intoR:. Now four instructions into generating ceDereferenceSelectorIndex.

VMMaker.oscog-eem.2600, 2 December 2019, 7:51:20.659048 pm

More work for CogARMv8Compiler. Add register assignments. Add concretizeLiteral & concretizeMoveRAw. Hence ceCaptureCStackPointers is now generated.

In-image compilation: Update CurrentImageCoInterpreterFacade now the C stack pointers live in the CoInterpreter.

VMMaker.oscog-eem.2599, 1 December 2019, 9:39:41.329223 pm

More work for CogARMv8Compiler. Add register assignments. Add concretizeMoveRR & concretizeRetN. Hence the first run-time routine is now generated.

VMMaker.oscog-eem.2598, 28 November 2019, 2:59:35.467528 pm

Fix plugin generation given renamed plugins

VMMaker.oscog-eem.2593, 25 November 2019, 4:25:37.475274 pm

ARM Cogits:
Get initialization for the ARMv8 ISA to select CogARMv8Compiler/GdbARMv8Alien.
Implement CogARMv8Compiler>>stopsFrom:to:.
Use memset:_:_: instead of me:ms:et: et al.
Reduce the size of an abstract instruction on ARMv5 with out-of-line literals. We need only two words, not the five for the in-line literals case.

VMMaker.oscog-tpr.2591
Author: tpr
Time: 24 November 2019, 11:43:59.349144 am

Fill in some simple bits, extend comments to refer to ARM doc etc.
Add condition codes to class vars; maybe better in the opcodes pool?

VMMaker.oscog-eem.2590, 24 November 2019, 7:49:27.903788 am

Add the compiler for the ARMv8 A64 backend.

by Eliot Miranda (eliot.miranda@gmail.com) at December 09, 2019 07:23 PM

source.squeak.org

System-nice.1128

Nuke windows CE OS support.
Let Win32 VM default to UTF32InputInterpreter rather than MacRomanInputInterpreter.

Note: I think that this method is unused and is just adding confusion to already convoluted code... But it is difficult to analyze the source, so it's better to differ this after 5.3 release if unsure. Unless we have a good set of tests?

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at December 09, 2019 05:25 PM

December 07, 2019

squeaksource.com

OTAR-jrm.6

Progress, but still have difficulties getting consistant recording results, especially with larger files. Rasberry Pi is a challenging OS to develop on for a linux neub

by John-Reed Maffeo (jrmaffeo@gmail.com) at December 07, 2019 02:15 AM

November 30, 2019

squeaksource.com

Kernel.V3-dtl.1284

Name: Kernel-mt.1284
Author: mt
Time: 29 November 2019, 11:37:15.422061 am
UUID: 8058d02f-d2cd-b942-aa93-095fa963a523
Ancestors: Kernel-mt.1283

Adds a message to set new contents and notify all dependents. To be used by subclasses to remove extra #changed: calles and to provide a better hook to do something else when updating the contents.

by Dave Lewis (lewis@mail.msen.com) at November 30, 2019 03:08 AM

November 29, 2019

squeaksource.com

OTAR-jrm.4

progress on devlopment but still having problems running tests on imac. saving current development so I can try it on an R-Oi

by John-Reed Maffeo (jrmaffeo@gmail.com) at November 29, 2019 11:58 PM

November 27, 2019

squeaksource.com

System.V3-dtl.1125

Name: System-tpr.1125
Author: tpr
Time: 26 November 2019, 12:41:51.836859 pm
UUID: dd0aed77-eb3e-4d57-b1c9-3f6fbb5d9674
Ancestors: System-mt.1124

Improve MessageBrowser labelling a bit; see changes in Tools-tpr.919

by Dave Lewis (lewis@mail.msen.com) at November 27, 2019 01:42 PM

Kernel.V3-dtl.1283

Name: Kernel-mt.1283
Author: mt
Time: 27 November 2019, 10:25:51.203363 am
UUID: 04694a24-76a1-a941-b664-645ffc7f27e6
Ancestors: Kernel-nice.1282

Removes Kernel -> Regex dependency.

by Dave Lewis (lewis@mail.msen.com) at November 27, 2019 01:39 PM

Collections.V3-dtl.864

Name: Collections-mt.864
Author: mt
Time: 27 November 2019, 10:46:36.719363 am
UUID: 5e0200f3-d834-4849-93ad-393e5b2b1af2
Ancestors: Collections-mt.863, Collections-kfr.812

Merges Collections-kfr.812 but renames #printMatrix to the existing #stringForReadout. We might want to use that one for ObjectExplorer ... See Object >> #asExplorerString.

by Dave Lewis (lewis@mail.msen.com) at November 27, 2019 01:38 PM

November 23, 2019

squeaksource.com

SBE-Quinto-RM.5 First time

Here is my log message

by Ron Mitchell (ron@ronmitchell.co.uk) at November 23, 2019 11:03 PM

Nebraska-mt.42

*** Widget Refactorings and UI Themes (Part 2 of 11) ***

Simplify window colors and prepare them and other properties of system windows to be themed.

by Graham (gkgoat6700@gmail.com) at November 23, 2019 09:36 PM

November 22, 2019

squeaksource.com

Chip8-TSL.4

sound enabled

by Thiago da Silva Lino (thiagolino@yahoo.com.br) at November 22, 2019 09:10 AM

System.V3-dtl.1123

Name: System-mt.1124
Author: mt
Time: 20 November 2019, 2:44:27.477662 pm
UUID: 9b067d06-cee0-1d46-b3f8-cf5267da8c9c
Ancestors: System-mt.1123

Fixes a recent regression *and* code duplication. New MVC/Morphic projects can be created and opened again.

by Dave Lewis (lewis@mail.msen.com) at November 22, 2019 01:29 AM

System.V3-dtl.1122

Name: System-mt.1123
Author: mt
Time: 19 November 2019, 12:05:29.547265 pm
UUID: 084b44a2-c237-c445-b14c-c84158296a4c
Ancestors: System-mt.1121, System-ct.1094, System-ct.1095, System-ct.1096, System-ct.1104, System-ct.1105, System-ct.1106, System-ct.1112

Merge, merge, merge. Fixes in Project, minor category clean-up in SmalltalkImage, better class comment in MethodReference, new utility method in ChangeSet.

by Dave Lewis (lewis@mail.msen.com) at November 22, 2019 01:27 AM

Compiler.V3-dtl.413

Name: Compiler-mt.413
Author: mt
Time: 21 November 2019, 4:23:15.551156 pm
UUID: db181638-e223-5648-8bea-f5084f9c44ad
Ancestors: Compiler-mt.412, Compiler-ct.407

Merges Compiler-ct.407. We can now programmatically handle syntax errors:

[Compiler evaluate: '3+?']
on: SyntaxErrorNotification
do: [:ex | ex resume: '3+4'].

by Dave Lewis (lewis@mail.msen.com) at November 22, 2019 01:24 AM

Collections.V3-dtl.863

Name: Collections-mt.863
Author: mt
Time: 19 November 2019, 11:21:39.854265 am
UUID: 217307c8-b585-da43-9494-9a0db5e31144
Ancestors: Collections-mt.862, Collections-ct.861

Merges Collections-ct.861.

by Dave Lewis (lewis@mail.msen.com) at November 22, 2019 01:22 AM

Collections.V3-dtl.862

Name: Collections-mt.862
Author: mt
Time: 19 November 2019, 11:10:22.542265 am
UUID: 892a021e-ac24-bd4f-84ba-12edb793c7a0
Ancestors: Collections-mt.861, Collections-ct.856

Merges Collections-ct.856. Harmonize all #detect: variations including their comments. Complements CollectionsTests-mt.327.

by Dave Lewis (lewis@mail.msen.com) at November 22, 2019 01:21 AM

November 21, 2019

squeaksource.com

MorphicAddendum-NM.6

Added method fo to get the list of all Morphs contained in the given morph.
See code for more precise statement.

by Nicola Mingotti (nmingotti@gmail.com) at November 21, 2019 11:44 PM

November 16, 2019

squeaksource.com

ImageSnapshot-dtl.6

Let ImageSnapshot>>reboot set up the display window in prior to resuming the VM in the new snapshot image. The fullscreen flag is handled properly, but window size does not currently work on X11 because ioSetDisplayMode is not implemented in the X11 driver (window resize requests currently can originate only from the external X11 server).

by Dave Lewis (lewis@mail.msen.com) at November 16, 2019 02:46 PM

WASM-edc.42

more WasmForensics refactoring

November 16, 2019 06:14 AM

System.V3-dtl.1119

Name: System-mt.1119
Author: mt
Time: 15 November 2019, 2:31:30.94533 pm
UUID: bd66f2d9-be6a-9744-840d-9654e2d5565d
Ancestors: System-dtl.1118, System-ct.1097

Merges System-ct.1097, which adds means to open tools for class (or system categories), method versions, and packages.

by Dave Lewis (lewis@mail.msen.com) at November 16, 2019 01:17 AM

System.V3-dtl.1118

Name: System-dtl.1118
Author: dtl
Time: 14 November 2019, 11:44:09.783497 am
UUID: e1e88bc2-8860-4665-9ac4-af0e01dc258c
Ancestors: System-mt.1117

When reporting VM parameters, enable formatting in the case of a parameter value that is represented as a Float rather than an Integer. This may happen if a VM parameter is defined in units of milliseconds but internally measured to microsecond precision by the VM, in which case the value may be returned as a Float in order to retain full precision. SmalltalkImage>>formatVMParameter: handles the formatting for integer and non-integer values.

Includes recommendations from Marcel and Chris, original System-dtl.1118 submission is moved to treated inbox.

by Dave Lewis (lewis@mail.msen.com) at November 16, 2019 12:56 AM

November 14, 2019

squeaksource.com

Kernel.V3-dtl.1278

This update may be slow due to the package postscript processing.

Apply Kernel-mt.1278, which mergesKernel-mt.1266.

From Kernel-nice.1270, apply the BoxedFloat64>>truncated change to Float for V3.

Also update Behavior>>becomeCompact to ensure that a newly added compact class does not occupy a previously used slot in the compact classes table. This is a requirement for segment loading, as documented in the becomeCompact method comment.

Reference Levente's suggestion that ByteArray adoptInstance: 'aSting' could work in a V3 image if class ByteArray is added to the compact classes array:
http://lists.squeakfoundation.org/pipermail/squeak-dev/2019-October/204924.html

In the package postscript, make class ByteArray compact. This will allow the trunk version of StandardFileStream>>binary to work on V3, which in turn will eliminate the need for a separate V3 version of the Files package in the V3 update stream.

Name: Kernel-mt.1278
Author: mt
Time: 13 November 2019, 10:32:26.550043 am
UUID: 1aae36c0-4723-934a-a101-43de1d7435aa
Ancestors: Kernel-nice.1277, Kernel-mt.1266

Merges Kernel-mt.1266, which makes #messagesSequence compatible with SistaV1.

Name: Kernel-nice.1270
Author: nice
Time: 1 October 2019, 9:22:39.460936 pm
UUID: 05ae7bbb-2517-4c6e-a9c0-db89b42742e5
Ancestors: Kernel-mt.1269

In SmallFloat64>>#truncated fallback, don't bother with Infinities and NaN, since all SmallFloat64 are finite, nor with Float fractionPart, since all non-integer Float value fits in SmallInteger in a 64bits image, and thus are already handled by the primitive.

It's legitimate to inject such implementation specific knowledge into this implementation specific class.

Also revise BoxedFloat64>>#truncated, mostly with comments. Dividing by SmallInteger maxVal + 1 / 2 would lead to an infinite loop in a 64bits image, fortunately this branch is unreachable then. Each time I read it, I have the shadow of a doubt ;)

by Dave Lewis (lewis@mail.msen.com) at November 14, 2019 01:07 AM

November 13, 2019

squeaksource.com

Club-NicoMonasterio.4

empty log message

by Nicolas Monasterio (nicoinfo.edu@gmail.com) at November 13, 2019 02:19 AM

Club-NicoTpfinal.3

empty log message

by Nicolas Monasterio (nicoinfo.edu@gmail.com) at November 13, 2019 01:55 AM

Club-NicoMonasterio.2

empty log message

by Nicolas Monasterio (nicoinfo.edu@gmail.com) at November 13, 2019 01:43 AM

Club-NicoMonasterio.1

empty log message

by Nicolas Monasterio (nicoinfo.edu@gmail.com) at November 13, 2019 01:36 AM

November 12, 2019

squeaksource.com

ObjectLand-Web-GrahamKelly.12

empty log message

by Graham (gkgoat6700@gmail.com) at November 12, 2019 07:45 PM

November 11, 2019

squeaksource.com

ObjectLand-Web-GrahamKelly.11

empty log message

by Graham (gkgoat6700@gmail.com) at November 11, 2019 09:45 PM

ObjectLand-Web-GDK.10

empty log message

by Graham (gkgoat6700@gmail.com) at November 11, 2019 09:44 PM

ObjectLand-Web-GrahamKelly.10

empty log message

by Graham (gkgoat6700@gmail.com) at November 11, 2019 09:27 PM

ObjectLand-Pharo Support-GrahamKelly.8

empty log message

by Graham (gkgoat6700@gmail.com) at November 11, 2019 09:26 PM

AMB-GrahamKelly.3

empty log message

by Graham (gkgoat6700@gmail.com) at November 11, 2019 09:01 PM

JSBridge-GrahamKelly.4

empty log message

by Graham (gkgoat6700@gmail.com) at November 11, 2019 08:36 PM

ObjectLand-Core-GDK.38

empty log message

by Graham (gkgoat6700@gmail.com) at November 11, 2019 08:17 PM

ObjectLand-Core-GDK.37

empty log message

by Graham (gkgoat6700@gmail.com) at November 11, 2019 07:34 PM

ObjectLand-Core-GDK.35

empty log message

by Graham (gkgoat6700@gmail.com) at November 11, 2019 07:29 PM

ObjectLand-Core-GrahamKelly.36

empty log message

by Graham (gkgoat6700@gmail.com) at November 11, 2019 07:24 PM

ObjectLand-Core-GrahamKelly.35

empty log message

by Graham (gkgoat6700@gmail.com) at November 11, 2019 07:20 PM

ObjectLand-Core-GDK.34

empty log message

by Graham (gkgoat6700@gmail.com) at November 11, 2019 02:37 PM

ObjectLand-Core-GDK.33

empty log message

by Graham (gkgoat6700@gmail.com) at November 11, 2019 02:37 PM

ObjectLand-Web-GDK.9

empty log message

by Graham (gkgoat6700@gmail.com) at November 11, 2019 02:36 PM

November 07, 2019

squeaksource.com

Chip8-TSL.3

empty log message

by Thiago da Silva Lino (thiagolino@yahoo.com.br) at November 07, 2019 09:02 AM

November 06, 2019

squeaksource.com

WASM-edc.18

empty log message

November 06, 2019 10:51 PM

WASM-edc.17

empty log message

November 06, 2019 12:08 PM