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

August 04, 2020

source.squeak.org

System-tcj.1168

Remove stale preferences from Flash support which no longer lives in the image.

Needs this accompanying change to the postscript of System package:

#( compressFlashImages extractFlashInHighQuality extractFlashInHighestQuality )
do: [:pref | Preferences removePreference: pref ]

August 04, 2020 06:04 AM

August 02, 2020

squeaksource.com

PromisesLocal-rww.10

introduce the PriorityVat as a state machine.

by Robert Withers (robert.withers@protonmail.com) at August 02, 2020 12:55 PM

PromisesLocal-rww.10

introduce the PriorityVat as a state machine.

by Robert Withers (robert.withers@protonmail.com) at August 02, 2020 12:55 PM

PromisesLocal-rww.9

test case cleanup.

by Robert Withers (robert.withers@protonmail.com) at August 02, 2020 08:36 AM

PromisesLocal-rww.9

test case cleanup.

by Robert Withers (robert.withers@protonmail.com) at August 02, 2020 08:35 AM

PromisesLocal-rww.8

modified to handle exceptions better.

by Robert Withers (robert.withers@protonmail.com) at August 02, 2020 08:27 AM

PromisesLocal-rww.8

modified to handle exceptions better.

by Robert Withers (robert.withers@protonmail.com) at August 02, 2020 08:27 AM

July 24, 2020

squeaksource.com

BarnsleyFern-kfr.28

Magnification must reset the drawing form

July 24, 2020 08:07 PM

July 23, 2020

source.squeak.org

EToys-eem.400

Allow the webcam resolution to be set before opening a WebCamMorph.

by Eliot Miranda (eliot.miranda@gmail.com) at July 23, 2020 11:06 PM

MonticelloConfigurations-mt.162

Reverts CI badges, which got only partially added via dtl.161 by accident.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 23, 2020 09:31 AM

MonticelloConfigurations-mt.160

Shows the current CI status in the update dialog.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 23, 2020 09:28 AM

July 21, 2020

source.squeak.org

System-mt.1167

In code holders, avoid label contraction in dialogs' buttons that pop up when having to choose a symbol for browsing senders/implementors.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 21, 2020 07:04 AM

squeaksource.com

ConfigurationOfMooseJEE-FabrizioPerin.126

cleaning configuration of mooseEE

by Fabrizio Perin (fabrizio.perin@gmail.com) at July 21, 2020 04:53 AM

ConfigurationOfMooseJEE-FabrizioPerin.125

switch projects to squeaksource

by Fabrizio Perin (fabrizio.perin@gmail.com) at July 21, 2020 04:53 AM

source.squeak.org

VMMaker.oscog-eem.2778

Slang: Infer the correct types for the float/double accessors. Hence correct primitiveSpurFloatArrayAt for Float32Array.

by Eliot Miranda (eliot.miranda@gmail.com) at July 21, 2020 12:27 AM

July 20, 2020

source.squeak.org

Collections-ul.903

- let String >> #compareWith: use primitive 158 even if indirectly

by Levente Uzonyi (leves@caesar.elte.hu) at July 20, 2020 02:51 PM

MonticelloConfigurations-mt.159

Minor spelling/formatting fix in a progress label.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 20, 2020 01:41 PM

squeaksource.com

Moose-Tests-SQL-Importer-FabrizioPerin.2

made sql importer tests green

by Fabrizio Perin (fabrizio.perin@gmail.com) at July 20, 2020 06:12 AM

Moose-Tests-SQL-Importer-FabrizioPerin.1

first commit

by Fabrizio Perin (fabrizio.perin@gmail.com) at July 20, 2020 06:12 AM

Moose-SQL-Importer-FabrizioPerin.24

fixed importer accordingly to the new model

by Fabrizio Perin (fabrizio.perin@gmail.com) at July 20, 2020 06:12 AM

Moose-SQL-Importer-FabrizioPerin.23

made tests green

by Fabrizio Perin (fabrizio.perin@gmail.com) at July 20, 2020 06:12 AM

Moose-SQL-Importer-FabrizioPerin.22

fixing importer accordingly to the new model

by Fabrizio Perin (fabrizio.perin@gmail.com) at July 20, 2020 06:12 AM

Moose-SQL-Importer-FabrizioPerin.21

added sql source language when importing a model

by Fabrizio Perin (fabrizio.perin@gmail.com) at July 20, 2020 06:12 AM

Moose-SQL-Importer-FabrizioPerin.20

the importer now is more resistent to errors such as, e.g., missing columns

by Fabrizio Perin (fabrizio.perin@gmail.com) at July 20, 2020 06:12 AM

Moose-SQL-Importer-FabrizioPerin.19

now the view associations are added silently

by Fabrizio Perin (fabrizio.perin@gmail.com) at July 20, 2020 06:12 AM

Moose-SQL-Importer-FabrizioPerin.18

adapted ensureAView: method and taken into account the new table view association

by Fabrizio Perin (fabrizio.perin@gmail.com) at July 20, 2020 06:12 AM

Moose-SQL-Importer-FabrizioPerin.17

exposed the information regarding the tables from which a view is created from

by Fabrizio Perin (fabrizio.perin@gmail.com) at July 20, 2020 06:12 AM

Moose-SQL-Importer-FabrizioPerin.16

fixed consistency

by Fabrizio Perin (fabrizio.perin@gmail.com) at July 20, 2020 06:12 AM

Moose-SQL-Importer-FabrizioPerin.15

reifying completeName

by Fabrizio Perin (fabrizio.perin@gmail.com) at July 20, 2020 06:11 AM

Moose-SQL-Importer-FabrizioPerin.14

fixed a problem with the importer status report

by Fabrizio Perin (fabrizio.perin@gmail.com) at July 20, 2020 06:11 AM

Moose-SQL-Importer-FabrizioPerin.13

fixing ensureIndex

by Fabrizio Perin (fabrizio.perin@gmail.com) at July 20, 2020 06:11 AM

Moose-SQL-Importer-FabrizioPerin.12

created support for views

by Fabrizio Perin (fabrizio.perin@gmail.com) at July 20, 2020 06:11 AM

Moose-SQL-Importer-FabrizioPerin.11

Added support for indexes

by Fabrizio Perin (fabrizio.perin@gmail.com) at July 20, 2020 06:11 AM

Moose-SQL-Importer-FabrizioPerin.10

added support for indexes

by Fabrizio Perin (fabrizio.perin@gmail.com) at July 20, 2020 06:11 AM

Moose-SQL-Importer-FabrizioPerin.9

making tests green for pharo 2.0

by Fabrizio Perin (fabrizio.perin@gmail.com) at July 20, 2020 06:11 AM

July 19, 2020

source.squeak.org

MonticelloConfigurations-dtl.161

A MCConfigurationExtended is a configuration with author initials, timestamp, UUID identifier, comment, and a list of prior versions. Its external storage format is organized for compatibility with MCConfiguration, such that an image wtih support for only MCConfiguration can use configurations saved from a MCConfigurationExtended.

The intended use is to enable documentation of configuration maps, and to allow modifications to a configuration map without loss of version history.

When editing an MCConfiguration, a copyForEdit of the configuration is modfied, leaving the prior configuration in the version history. When saving an edited version, an editor window allows a version comment to be entered for the new configuration. Version history for a saved MCConfiguration is trimmed to a maximum of 10 prior versions to maintain reasonable storage size. Full version history can be reconstructed based on the UUID identifiers.

MCConfigurationBrowser provides a "Versions" button to open an explorer on the version history of a configuration. No other support for browsing version history and comments is provided.

MCConfigurationExtended is fully backward compatible such that saved versions will be rendered as simple MCConfiguration without version history in an image that lacks support for the extended format.

A SqueakSource server must have this update applied before it can render a saved MCConfigurationExtended.

by David T. Lewis (lewis@mail.msen.com) at July 19, 2020 03:49 PM

July 15, 2020

squeaksource.com

OmniBrowser.39-edc.2

empty log message

July 15, 2020 11:13 AM

OB-Standard.39-edc.4

empty log message

July 15, 2020 11:03 AM

source.squeak.org

Morphic-mt.1672

Fixes recent regression. Sorry for the noise.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 15, 2020 10:53 AM

Morphic-mt.1671

Fixes demo/hi-dpi mode for system progress bar.

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

Kernel-mt.1334

Re-install interrupt watcher because semaphore changed in Kernel-mt.1333 from classVar to instVar.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 15, 2020 09:29 AM

EToys-mt.398

Removes deprecated, dead method.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 15, 2020 09:26 AM

Morphic-mt.1670

Complements Kernel-mt.1333

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 15, 2020 09:25 AM

Tools-mt.983

Complements Kernel-mt.1333

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 15, 2020 09:24 AM

ST80-mt.257

Complements Kernel-mt.1333.

Fixes regression: mouse wheel works again in tools.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 15, 2020 09:24 AM

Kernel-mt.1333

Clean up code for non-event-based input processing, primarily used in ST80.

Moves some methods to ST80 package. Needs more work to remove all sends from Morphic such as #shiftPressed etc.

Also rely on in-image interrupt-key handling only. Recent VMs do not fire the old-style interrupt semaphore anymore. See #userInterruptWatcher.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 15, 2020 09:22 AM

Morphic-mt.1669

Fixes icon scaling in tree widgets.

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

PreferenceBrowser-mt.105

Minor tweaks of visuals in preference browser to match other tools' appearance.

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

squeaksource.com

BarnsleyFern-kfr.26

DrawRectangles: Generate rooms with hallways between.

July 15, 2020 06:54 AM

July 14, 2020

source.squeak.org

ToolBuilder-MVC-mt.61

Fixes layout bug in MVC windows.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 14, 2020 01:10 PM

July 13, 2020

source.squeak.org

TrueType-tobe.54

when encountering an invalid font while scanning a file, skip that font

July 13, 2020 10:13 AM

60Deprecated-mt.79

Complements ST80-mt.256

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 13, 2020 09:49 AM

Tools-mt.982

Complements ST80-mt.256

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 13, 2020 09:49 AM

ST80-mt.256

Makes MVC lists, window titles, menus, and "dialogs" aware of demo/hi-dpi mode.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at July 13, 2020 09:48 AM

July 06, 2020

source.squeak.org

VMMaker.oscog-eem.2772

VM Parameters primitive(s). Fix the issue with the allocation failure test on 32-bit systems. It really is a Vm bug that parameter #67 must be a SmallInteger. It should be a positive machine integer.

by Eliot Miranda (eliot.miranda@gmail.com) at July 06, 2020 05:09 PM

squeaksource.com

Covid19-Core-tsl.6

empty log message

by Thiago da Silva Lino (thiagolino@yahoo.com.br) at July 06, 2020 03:59 PM

July 03, 2020

source.squeak.org

KernelTests-tpr.383

Make the AllocationTest work by preventing the requested free space size (in #setFreeSpaceLimi....) from exceeding SmallInteger>maxVal and thereby failing the vmParameter primitive's limit.

by tim Rowledge (tim@rowledge.org) at July 03, 2020 05:24 AM

July 02, 2020

source.squeak.org

VMMaker.oscog-eem.2769

Slang: And include the Monticello description for the Cogit's activeCompilerClass if it differs from Cogit's.

by Eliot Miranda (eliot.miranda@gmail.com) at July 02, 2020 11:00 PM

VMMaker.oscog-eem.2768

Slang: make good on the previous commit.

by Eliot Miranda (eliot.miranda@gmail.com) at July 02, 2020 10:44 PM

VMMaker.oscog-eem.2767

Slang: Allow the CogCompilers/Cogit files to specify preampleCCode.

by Eliot Miranda (eliot.miranda@gmail.com) at July 02, 2020 10:16 PM

squeaksource.com

ClosedVMMaker-eem.90

It trns out that Ken Dickey has been using the ARMv8 JIT without any issues in the JIT for months now, so it is about time we released it ;-) This commit adds the verbiage and code that precludes use in the PharoVM. Requires VMMaker.oscog-eem.2769.

by Eliot Miranda (eliot.miranda@gmail.com) at July 02, 2020 10:06 PM

July 01, 2020

source.squeak.org

Compiler-eem.440

Improve slightly the EncoderForSistaV1 class comment specifying the SistaV1 bytecode set in the light of recent discussion.

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

June 30, 2020

source.squeak.org

Monticello-cmm.726

Revert incorrect implementation of sorting repositories, because it broke "demote to bottom" which broke "browse revisions" and "browse origin".

by Chris Muller (ma.chris.m@gmail.com) at June 30, 2020 10:21 PM

June 27, 2020

squeaksource.com

OSProcess-dtl.120

OSProcess 4.6.21
Fix ThisOSProcess class>>shutDown: and OSProcess class>accessor to prevent problems when running an image with OSProcess on a SqueakJS virtual machine.

Change two unit tests to avoid issues when running on Pharo. Original fix by Max Leske https://github.com/dtlewis290/OSProcess-Tonel commit d0088c8b923e8a3aa0ad0ebfde30b5c3f45ae33d

by Dave Lewis (lewis@mail.msen.com) at June 27, 2020 11:29 PM

OSProcess-Base-dtl.73

OSProcess 4.6.21
Fix ThisOSProcess class>>shutDown: and OSProcess class>accessor to prevent problems when running an image with OSProcess on a SqueakJS virtual machine.

Change two unit tests to avoid issues when running on Pharo. Original fix by Max Leske https://github.com/dtlewis290/OSProcess-Tonel commit d0088c8b923e8a3aa0ad0ebfde30b5c3f45ae33d

by Dave Lewis (lewis@mail.msen.com) at June 27, 2020 11:28 PM

OSProcess-Tests-dtl.20

OSProcess 4.6.21
Fix ThisOSProcess class>>shutDown: and OSProcess class>accessor to prevent problems when running an image with OSProcess on a SqueakJS virtual machine.

Change two unit tests to avoid issues when running on Pharo. Original fix by Max Leske https://github.com/dtlewis290/OSProcess-Tonel commit d0088c8b923e8a3aa0ad0ebfde30b5c3f45ae33d

by Dave Lewis (lewis@mail.msen.com) at June 27, 2020 11:28 PM

source.squeak.org

ToolBuilder-MVC-ct.60

Don't fail in MVCToolBuilder when opening a menu

The semantics of ToolBuilder >> #open: are to work regardless of the build state of the passed object (thus "anObject"). As a consequence, [MVCToolBuilder new open: (MVCToolBuilder new build: PluggableMenuSpec new)] should work, too.

by Christoph Thiede (Christoph.Thiede@student.hpi.uni-potsdam.de) at June 27, 2020 08:37 PM

ToolBuilder-Kernel-ct.140

Don't fail in PluggableMenuSpec when building an empty menu

June 27, 2020 08:27 PM

Tools-ct.980

Fixes opening a TextLink pointing to a class from within a MessageSet. In addition, only select the new item for a consistent experience.

Steps to reproduce the original bug:
1. Insert a TextLink pointing to a class comment into any method comment and save the method with style.
2. Browse the method in a message trace.
3. Click the link.
Before this fix, the message trace raised a draw error because an internal conversion step was forgotten. See also Model >> #addItem: which already respected that conversion.

June 27, 2020 07:46 PM

June 25, 2020

source.squeak.org

VMMaker.oscog-eem.2762

Merge VMMaker.oscog-ul.2763
add missing SHA2Plugin to the list of plugins

by Eliot Miranda (eliot.miranda@gmail.com) at June 25, 2020 10:03 PM

VMMaker.oscog-nice.2761

1) Revise a bit the tranformation of assignment/returns for C code generation (see below)

2) Do not try to generate SHA256Plugin, it's obsolete and absent from latest cryptography packages.

In Smalltalk, every statement is an expression that can be used in other expression, assigned to variables, etc...

In C, not all statements are valid expressions, or IOW, not all statements have a value.
In C parlance, rvalues are the ones which can be used at the right of an assignment, lvalues the ones which can be used on the left of an assignment.

While working on FFI, I had invalid code generated looking like:

err = switch(atomicType) ...

This is because there is brittle code for transforming some expressions, which are not generic enough.

For example, we have similar TSwitchStmtListNode and TCaseStmtNode for handling #dispatchOn:in:, but not exactly same handling of both.

Before this change, an overview can be given by reviewing senders of:
#isSwitch #isCaseStmt

This commit is an attempt to enhance/generalize handling of such non-rvalues by distributing the handling of those constructs in TParseNode hierarchy.

A slight change, is that assigning/returning result of a caseOf: without otherwise clause did create a default branch with an error message and a default value for the returned expression/assigned variable.
See #emitCCodeOn:addToEndOfCases:level:generator:
or #emitCCodeOn:prependToEndOfCases:level:generator:

The new #transformInAssignmentTo: only create the error message, but does not provide the default value.
This is because type analysis might have been not yet taken place at time of transformation.
Is this really needed? I don't think so.

Please review!
We might want to further extend the mechanism.

by Eliot Miranda (eliot.miranda@gmail.com) at June 25, 2020 09:42 PM

VMMaker.oscog-nice.2762

Cosmetic changes
- move some smart syntax method FloatArray -> Float32Array
requires a recent Squeak trunk image or a compatibility layer
- recategorize some FFI methods
- remove some unused var:type:

by Eliot Miranda (eliot.miranda@gmail.com) at June 25, 2020 09:27 PM

June 22, 2020

squeaksource.com

Alien-Core-nice.104

Fix raw stack pointer for 64bits callback context.

Is this used?

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at June 22, 2020 06:11 AM

HDF5-Interface-nice.8

Fix the signature of callbacks.
Hid_t is longlong

Note: note sure if longlong is correctly passed by value for ARM32 ABI though...

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at June 22, 2020 06:01 AM

June 21, 2020

source.squeak.org

FFI-Kernel-nice.120

Fixup: isEmpty is only for subclass...

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at June 21, 2020 11:03 PM

VMMaker.oscog-ul.2763

- added missing SHA2Plugin to the list of plugins

by Levente Uzonyi (leves@caesar.elte.hu) at June 21, 2020 09:37 PM

WebClient-Core-ul.122

WebMessage >> #streamDirectlyFrom:to:size:progress:
- avoid infinite loop when there are fewer bytes available than specified
- fix progress notifications
- avoid unnecessary buffer copying

WebMessage:
- use #contentType: and #contentLength: methods to set the corresponding headers to avoid string duplication

by Levente Uzonyi (leves@caesar.elte.hu) at June 21, 2020 08:41 PM

WebClient-Tests-ul.60

- added WebMessageTest with test cases covering WebMessage >> #streamDirectlyFrom: to: size: progress:

by Levente Uzonyi (leves@caesar.elte.hu) at June 21, 2020 08:41 PM

FFI-Tests-nice.22

Fix testIntAliasCall by calling the version that answers an int, not an IntAlias.

Fix testPointers - at least for the experimental FFI branch https://github.com/OpenSmalltalk/opensmalltalk-vm/tree/experimental_FFI

This version of FFI does not return an ExternalStructure when we return a pointer. It returns an ExternalData!
This is logical, we have no idea if the function returns a pointer to a single struct or to a whole array.

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at June 21, 2020 08:39 PM

FFI-Kernel-nice.119

Make the compiledSpecs of struct pointers conform to the experimental FFI branch (thru #adjustPointerType)

See https://github.com/OpenSmalltalk/opensmalltalk-vm/tree/experimental_FFI

Simplify a bit ExternalData access (at: / at:put:).
The assumption that ExternalDataType is the type of the contents and not the type of the reference helps simplifying IMO.

We might want to make it more complete once we deal with pointer arity.
It's not the case yet.

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at June 21, 2020 08:34 PM

VMMaker.oscog-nice.2763

Major changes to FFI:

- always wrap returned value into its ExternalTypeAlias when it's an atomic value
This is necessary so that we can chain FFI calls, because, FFI only accept instance of ExternalTypeAlias on input
Note that an alias to a pointer (like void *) will be wrapped in an ExternalData fromHandle: ExternalAddress

- handle only these combinations
FFIFlagAtomic & nil referentClass
FFIFlagAtomic + FFIFlagPointer & nil referentClass
FFIFlagAtomic & atomic TypeAlias referentClass
FFIFlagAtomic + FFIFlagPointer & atomic TypeAlias referentClass
FFIFlagStructure & ExternalStructure referentClass
FFIFlagStructure + FFIFlagPointer & ExternalStructure referentClass

When a non nil referentClass is specified in external function API, only accept:
- an instance of the referentClass (or subclass) if an atomic value (TypeAlias)/or struct (both by reference or value)
- an ExternalData whose type points to same referentClass (or subclass)
- eventually nil if passed by reference

An ExternalData is accepted even when the arguments are passed by value.
This enables passing direct reference to external variables (global variables exported by the ExternalLibrary).
Hence the new ffiPushDereference* protocol.

Also accept double-byte, word and double-word arrays when the referentClass is nil.
TODO: accept them as valid memory area thru ExternalData too... (not the case yet).

Side notes:

- this version of the plugin requires image side changes:
Most notably, Pointer to struct needs to have FFIFlagStructure+FFIFlagPointer set in their compiledSpec.

- provision has been made to make the plugin more permissive (ffiHasPermissiveArgCheck)
For the case when type checking and marshalling is taken care at image side (in UFFI), the plugin might want to handle lower level data (ExternalAddress and immediate values) with less checks.
The plan would be to add a flag in the ExternalFunction flags (used only for ABI cdecl/apicall by now), so as to give a maximum of flexibility and let mixed FFI/UFFI coexist peacefully (this might happen if your application depends on a lot of 3rd party)

- The FFI flags/typeSpec encoding shall be revised.
Obviously, we do not need both Atomic+Structure flags
A type is either atomic, or it is composite, but not both, nor neither
There are plenty unused combinations, and previous encoding was somehow mysterious

- it might be good to encode pointer arity in the type spec for more safety
If we keep 1 bit for indicating a pointer, then with 2 or 3 extra bits, we can encode extra arity (up to 4 or 8 levels, more than enough)
Those bits can be resused for something else when non pointer (extra size for example...)

- it might be good to encode byte alignment in the spec rather than re-computing it in the plugin. This way, we could manage exotic/specific byte alignment at image side (byte alignment can vary with C compile flags! Not recommended, but can happen!)

- considerable simplification/acceleration could be obtained if we ensured unchanged ExternalType identity between ExternalFunction specification and types used in ExternalData.
Note that this type is not easily accessible when an ExternalStructure/ExternalTypeAlias is passed as argument. Maybe it should!

- both structTypeNamed: and their corresponding pointerType share the same ExternalStructure/ExternalTypeAlias referentClass.
There is thus some kind of ambiguity, we never know if a Foo or Foo* was passed on input or returned on output (there is no direct way to retrieve ExternalTypeAliasFoo externalType from the plugin)
This is going to be a problem if we add pointer arity support.

Note that I lost the ability to raise the FFIErrorIntAsPointer, but that's minor, we can bring it back if we want to.

With those changes, I can somehow have the basic examples of HDF5 interface working (http://www.squeaksource.com/STEM), which is a challenge, HDF5 has a rich/complex API (uses external variables, callbacks, many types, alias enums struct and unions, many functions)

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at June 21, 2020 07:36 PM

VMMaker.oscog-nice.2762

Cosmetic changes
- move some smart syntax method FloatArray -> Float32Array
requires a recent Squeak trunk image or a compatibility layer
- recategorize some FFI methods
- remove some unused var:type:

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

squeaksource.com

HDF5-Interface-nice.7

Many changes to make it work.

This requires both
- a recent version of FFI
- a recent version of the plugin (to be published soon)

Among the changes:
- use C types size_t int and uint instead of Size_t long and ulong
long and ulong are squeakism for int32_t, it's better to not use them
- do not forget to pass the callback thunk to foreign function
- fix call to loadSymbol:module: it takes moduleName as second argument, not an instance of ExternalLibrary
- do not dereference the global datatype variable, but let the foreign funciton call do that
This requires a new version of FFI plugin
- do not forget to re-initialize the H5atatype on startup
- ensure to call H5open before we ever attempt to open/create an H5File
- wrap a few values into there respective ExternalTypeAlias
- unwrap those type alias when we want to use their value

With those changes and new plugin I can execute the very elementary example from Smallissimo blog, and contemplate the result thru HDFView utility.

out:= H5File create: 'foo.h5' .
H5Dataset createPath: 'float1' parent: out rootGroup value: 1.3e0.
H5Dataset createPath: 'double2' parent: out rootGroup value: Float pi.
H5Dataset createPath: 'int3' parent: out rootGroup value: -357.
out close.

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at June 21, 2020 05:52 PM

source.squeak.org

KernelTests-jr.383

Test whether Notifications reject the promises of future sends

In my opinion, they should not.

June 21, 2020 05:27 PM

FFI-Kernel-nice.118

Add the ability to allocate: an ExternalType or an ExternalStructure/Alias.

It's equivalent to new: but we want a specific idiom, C types are not exactly classes.

Add the ability to compare aliases (at least for equality)

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at June 21, 2020 11:20 AM

squeaksource.com

HDF5-External-nice.6

Abide to recent FFI changes
- subclass ExternalTypeAlias for atomic aliases and enums
- let the enums answer an instance of themselves when asked for a constant
FFI require that we pass an alias of the right class
- boot out the auto-generated accessors - they are auto-generated and need not pollute the package

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at June 21, 2020 08:36 AM

June 20, 2020

source.squeak.org

FFI-Win32-nice.20

Let Win32Handle be an ExternalTypeAlias.
Nuke the *autogenerated fields.

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at June 20, 2020 07:52 PM

VMMaker.oscog-nice.2761

1) Revise a bit the tranformation of assignment/returns for C code generation (see below)

2) Do not try to generate SHA256Plugin, it's obsolete and absent from latest cryptography packages.

In Smalltalk, every statement is an expression that can be used in other expression, assigned to variables, etc...

In C, not all statements are valid expressions, or IOW, not all statements have a value.
In C parlance, rvalues are the ones which can be used at the right of an assignment, lvalues the ones which can be used on the left of an assignment.

While working on FFI, I had invalid code generated looking like:

err = switch(atomicType) ...

This is because there is brittle code for transforming some expressions, which are not generic enough.

For example, we have similar TSwitchStmtListNode and TCaseStmtNode for handling #dispatchOn:in:, but not exactly same handling of both.

Before this change, an overview can be given by reviewing senders of:
#isSwitch #isCaseStmt

This commit is an attempt to enhance/generalize handling of such non-rvalues by distributing the handling of those constructs in TParseNode hierarchy.

A slight change, is that assigning/returning result of a caseOf: without otherwise clause did create a default branch with an error message and a default value for the returned expression/assigned variable.
See #emitCCodeOn:addToEndOfCases:level:generator:
or #emitCCodeOn:prependToEndOfCases:level:generator:

The new #transformInAssignmentTo: only create the error message, but does not provide the default value.
This is because type analysis might have been not yet taken place at time of transformation.
Is this really needed? I don't think so.

Please review!
We might want to further extend the mechanism.

by Nicolas Cellier (nicolas.cellier.aka.nice@gmail.com) at June 20, 2020 06:11 PM

CommandLine-TheresaHMartenK.17

Same reason as: ToolBuilder-Morphic-TheresaHMartenK.261

Copy:
The current implementation searches for the supplied answer in the valueList and if found returns the value at the found index in the valueList which of course is the supplied answer. However from the behaviour that gets mimicked you would expect the implementation to look for the suppliedAnswer in the labelList - the same as you click on the label and not on its connected value. Additionally this produces less readable / understandable code compared to supplying the label, especially if the value happens to be a block.

With the new implementation, the answer is searched in the labelList, and the returned value is the coresponding value from the valueList.

June 20, 2020 02:33 PM

ToolBuilder-MVC-TheresaHMartenK.60

Same reason as: ToolBuilder-Morphic-TheresaHMartenK.261

Copy:
The current implementation searches for the supplied answer in the valueList and if found returns the value at the found index in the valueList which of course is the supplied answer. However from the behaviour that gets mimicked you would expect the implementation to look for the suppliedAnswer in the labelList - the same as you click on the label and not on its connected value. Additionally this produces less readable / understandable code compared to supplying the label, especially if the value happens to be a block.

With the new implementation, the answer is searched in the labelList, and the returned value is the coresponding value from the valueList.

June 20, 2020 02:32 PM

ToolBuilder-Morphic-TheresaHMartenK.261

The current implementation searches for the supplied answer in the valueList and if found returns the value at the found index in the valueList which of course is the supplied answer. However from the behaviour that gets mimicked you would expect the implementation to look for the suppliedAnswer in the labelList - the same as you click on the label and not on its connected value. Additionally this produces less readable / understandable code compared to supplying the label, especially if the value happens to be a block.

With the new implementation, the answer is searched in the labelList, and the returned value is the coresponding value from the valueList.

June 20, 2020 02:04 PM

Monticello-mt.725

Since Monticello does not care about the correct field compilation order, just print errors to the transcript. See #compileAllFields to understand what you should actually do.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 20, 2020 11:23 AM

FFI-Tools-mt.19

Complements FFI-Kernel-mt.117

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

FFI-Tests-mt.21

Complements FFI-Kernel-mt.117

Note that the removed methods are the auto-generated ones. No worries.

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

FFI-Kernel-mt.117

For the sake of code readability: untangles the specific role of struct types during field-accessor generation and dynamic field access into new subclass: ExternalStructureType. The implementation of ExternalType is now lighter again.

Note that this change does not affect FFI calls as is. The particular class of an external type is not relevant for type coercing during FFI calls and also not for packaging the return value. What matters is instVar 0 being the compiledSpec and instVar 1 being the referentClass. That does not change with this commit.

(Note that I added type checks to the generated field code. Those could easily be removed if not wanted. I suppose that implementing #assert: in ExternalStructure controlled by a pragma preference would be a good way of making type checks during field write-access optional.)

In the process, fixed the following things:
- regression for reading fields that are type alias to pointer type.
- uniform pointer access as #pointerAt:length: and #pointerAt:put:length: just like #structAt:length: and #structAt:put:length:. Makes the generated code more readable and avoids accessing the global "ExternalAddress wordSize".
- regression with #defineFields: because of the recent change to include #absent rule for #generated field compilation. So, avoid overwriting fields that are manually managed even if you use #defineFields instead of #compileFields.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 20, 2020 11:16 AM

June 19, 2020

source.squeak.org

FFI-Kernel-mt.116

Actually provide a default for type name for type aliases that can work. :-)

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 19, 2020 06:03 PM

FFI-Kernel-mt.115

Try to deal with the issue of having the wrong generated code present in the image.

(1) Avoid checking in generated field accessors via Monticello by putting them into *'autogenerated - accessing' instead of 'accessing' category

(2) Expand the #generated rule to also generate field accessors if the selector is not yet present (or if <generated> is found if present). That rule is used when re-compiling all struct fields on a platform change. See #compileAllFields.

So, you can still choose to manually manage field accessors by adding them in your own 'accessing' category and removing the <generated> pragma. But then you would be on your own. :-)

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 19, 2020 08:00 AM

FFI-Tests-mt.20

Adds tests for type alias issue. See http://forum.world.st/FFI-ExternalTypeAlias-td5118709.html

Also do some test re-organization.

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

June 18, 2020

source.squeak.org

FFI-Kernel-mt.114

Fixes reading of external structs through external addresses ... which was off by 1 byte. Of course. ;-)

Since structs are now read correctly from external addresses using pointer arithmetic, fixes related conversion/access methods in ExternalData.

Adds a simple way to access sub-arrays in external data. Inspired by Collection protocol.

Adds quick exit when trying to do pointer arithmetic with 0 offset.

Adds size checks to ExternalData.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 18, 2020 02:18 PM

FFI-Kernel-mt.113

Avoid copying external structs that are part of other structs from external memory into object memory.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 18, 2020 12:45 PM

FFI-Kernel-mt.112

Fixes print-string for external addresses for 64-bit.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 18, 2020 12:19 PM

FFI-Kernel-mt.110

Fixes bug in #isIntegerType. Adds conversion methods between signed and unsigned integer types. Choose #asSigned over #asSignedType (or #asSignedIntegerType) to match existing #isSigned selector.

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

squeaksource.com

HDF5-Interface-nice.6

Define module name and fix MC random initialization order

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at June 18, 2020 07:15 AM

June 17, 2020

squeaksource.com

HDF5-Xfer-nice.1

WIP preliminary package for serializing/deserializing Smalltalk object to/from HDF5 files

Only support for basic objects is provided.

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at June 17, 2020 07:19 PM

source.squeak.org

FFI-Kernel-mt.111

Adds a simple interface to use ExternalData as representative of an external global/shared variable.

(We could add an extra subclass to make it more clear. Like ExternalTypeAlias.)

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 17, 2020 05:56 PM

June 14, 2020

squeaksource.com

DoItFirst-System-Support-dtl.4

Add -cwd to change working directory.
Add -help for help message.
Allow multiple arguments on the command line, including those that expect argument lists. Parse arguments into a queue of actions. Ensure that -cwd is evaluated before other actions that depend on it.

by Dave Lewis (lewis@mail.msen.com) at June 14, 2020 04:00 PM

source.squeak.org

Monticello-tobe.724

Allow mc http repositories to handle absolute paths

Monticello will collect all <a href=""> tags on the repository's webpage. It currently expects these to be relative to the URL of the website. Some third party sites that can host mcz files, however do not use relative, but absolute paths. An example of this are Github releases pages.

June 14, 2020 03:24 PM

squeaksource.com

DoItFirst-System-Support-dtl.3

Move methods to the instance side and let DoItFirst be instance based

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

DoItFirst-System-Support-dtl.2

Initialize default directory in case image is started from a different file system location

by Dave Lewis (lewis@mail.msen.com) at June 14, 2020 12:10 PM

DoItFirst-System-Support-dtl.1

Be the first thing in the system startup list, and do things that should be done prior to any additional image initialization. If the first image argument is a recognized option, evaluate it. Image arguments are typically preceded by a '--' token on the command line.

by Dave Lewis (lewis@mail.msen.com) at June 14, 2020 12:01 PM

source.squeak.org

FFI-Kernel-mt.108

Adds a way to store size into external data to be used in an enumeration protocol.

Note that this may just be for debugging when the FFI plugin automatically creates fitting Smalltalk objects from this data. For example, int* can become IntegerArray etc. On second thought, it might be challenging for the FFI plugin to figure out the size of such an array on its own.

(Next: I will try to add a simple #setSizeFromZeroTermination)

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

ShoutCore-mt.80

Fixes a regression. When you are just writing a method and there comes no token after '<', we should not even try parsing any further.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 14, 2020 06:26 AM

FFI-Tools-mt.17

Complements ShoutCore-mt.79

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

FFI-Kernel-mt.107

Complements Compiler-mt.437

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

Compiler-mt.436

Adds a (extension) method-based hook to install custom pragma-parsing methods. Use it to move FFI-specific pragma-parsing, i.e. <apicall: ...> and <cdecl: ...>, into FFI packages.

Redirects parsing of <primitive: ...> to document the hook.

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

Compiler-mt.437

Speed-up method-based hook for custom pragma-parsing methods. Like in ShoutCore-mt.79

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

ShoutCore-mt.78

Complements Compiler-mt.436 (inbox).

Adds a (extension) method-based hook to install custom pragma-parsing methods. Use it to move FFI-specific pragma-parsing, i.e. <apicall: ...> and <cdecl: ...>, into FFI packages.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 14, 2020 06:03 AM

ShoutCore-mt.79

Tweaks performance of method lookup for pragma parsing. See http://forum.world.st/The-Inbox-ShoutCore-mt-78-mcz-td5118289.html

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 14, 2020 06:03 AM

June 13, 2020

source.squeak.org

ShoutCore-ul.80

SHParserST80 performance tweaks:
- cache size of source in a new instance variable: sourceSize
- #currentChar, #nextChar and #peekChar send #at: instead of #at:ifAbsent: to source.
- use sourceSize instead of source size

by Levente Uzonyi (leves@caesar.elte.hu) at June 13, 2020 10:20 PM

FFI-Kernel-mt.106

Adds an interface to interpret ExternalData. The behavior compares with the code generated for struct-field accessors, i.e., #readFieldAt: <=> #handle:at: and #writeFieldAt:with: <=> #handle:at:put:.

In contrast to the interface in ByteArray/ExternalAddress, offer guards to avoid misinterpretation. For example, compare ExternalData >> #signedLongLongAt: with ByteArray >> #signedLongLongAt:. Note that you can always force a different interpretation through ExternalData >> #asType:.

Also clarify the role of ExternalData by hard-coding #byteAlignment, #byteSize, #compiledSpec, etc.

Also offer a simple way to convert external structures (and unions) to external data and back. Note the difference between #asExternalStructure and #getExternalStructure. I hope the name is okay.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 13, 2020 04:40 PM

MorphicExtras-kfr.275

Detect if animated image (eg. gif) has transparent color and use opaque background if so.

by Karl Ramberg (karlramberg@gmail.com) at June 13, 2020 11:34 AM

MorphicExtras-kfr.275

Detect if animated image (eg. gif) has transparent color and use opaque background if so.

by Karl Ramberg (karlramberg@gmail.com) at June 13, 2020 11:12 AM

Tools-mt.979

In the deps browser, auto-select the string that most like represents the class dependency. Selects the wrong thing in the text when the name is also part of some other identifier.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 13, 2020 10:51 AM

FFI-Pools-mt.25

Removes code-loading dependency to Json class. Note that there is #ensureParsingSupport to lazy-load the Json class.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 13, 2020 10:30 AM

Tools-mt.978

In the deps browser, reveal whether there is any class-definition or extension dependency at all as early as possible.

Feel free to adjust the labels. For now, they are:

2nd / 3rd pane
... ()
... *
... () *
... *exts only
... (defs only)
4th pane:
... (class definition)
*extensions

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

System-dtl.1165

Fix a bug introduced in the last commit. If the readDocumentAtStartup preference is disabled, then adjust image argument list accordingly.

by David T. Lewis (lewis@mail.msen.com) at June 13, 2020 01:56 AM

June 12, 2020

source.squeak.org

FFI-PoolsTests-mt.10

Complements FFI-Kernel-mt.105

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 12, 2020 05:45 PM

FFI-Pools-mt.24

Complements FI-Kernel-mt.105

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 12, 2020 05:45 PM

June 09, 2020

source.squeak.org

System-dtl.1164

Fix handling of the '--' command line token, and let command parameters be handled consistently by SmalltalkImage>>argumentAt:
Discussion at http://lists.squeakfoundation.org/pipermail/squeak-dev/2020-June/209945.html

by David T. Lewis (lewis@mail.msen.com) at June 09, 2020 01:16 AM

June 08, 2020

source.squeak.org

Monticello-jr.722

Log method changes only if the SystemChangeNotifer is not muted.

unload is already routed through ClassDescription>>removeSelector: which emits a system change event rather than writing to the log unconditionally.

This change is useful to avoid cluttering the changes file when tests are run that load methods via Monticello. Previously even if these tests muted the change notifications, Monticello loading would still write lots of change records.

June 08, 2020 08:13 PM

Monticello-jr.721

Load class traits and scripts in the dynamically bound Environment, not always in the default Environment.

June 08, 2020 08:06 PM

Monticello-jr.720

Load class traits only after the corresponding instance traits were loaded.

The Scanner expression comes from MCTraitDefinition>>requirements.

June 08, 2020 08:04 PM

FFI-Tools-mt.13

Complements FFI-Kernel-mt.100. Requires Squeak 6.0alpha to be at Morphic-mt.1666.

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

FFI-Kernel-mt.100

Further work on support of type aliasing and its documentation. Removes FFIObjectHandle again because that would require modification of the FFI plugin, which is not worthwhile because it only would simplify print-strings. Add documentation about this issue to ExternalStructure >> #isNull.

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

Morphic-mt.1666

Adds a small hook to support parent-controlled print-strings for objects in the object explorer. Parent objects would return custom subclasses of ObjectExplorerWrapper when ansering the #explorerContents. Think of, for example, custom string representations for numbers being embedded in your domain objects.

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

June 07, 2020

squeaksource.com

BarnsleyFern-kfr.25

Use integer for map positions

June 07, 2020 04:24 PM

source.squeak.org

Morphic-ct.1641

Refine #isHighFrequentEvent implementation for further event types. Fixes one possible cause of the "color depth = 0" bug. See http://forum.world.st/Image-not-startable-after-save-td5117084.html.

Depends indeed on Morphic-ct.1638.

by Christoph Thiede (Christoph.Thiede@student.hpi.uni-potsdam.de) at June 07, 2020 12:46 PM

Collections-ul.897

WeakIdentityDictionary:
- made it work as other weak hashed collections:
- no modification during element lookup
- simpler code - same runtime complexity

Other:
- removed ByteArray >> #atAllPut: because it was same the as in its superclass

by Levente Uzonyi (leves@caesar.elte.hu) at June 07, 2020 12:41 PM

squeaksource.com

BarnsleyFern-kfr.24

planeX and planeY vector

June 07, 2020 11:59 AM

source.squeak.org

ST80-mt.255

Complements System-mt.1163

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

Morphic-mt.1665

Complements System-mt.1163.

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

System-mt.1163

Fixes "color depth = 0" bug. See http://forum.world.st/Image-not-startable-after-save-td5117084.html.

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

squeaksource.com

BarnsleyFern-kfr.23

DrawLine. Trying to figure out vectors

June 07, 2020 08:43 AM

June 06, 2020

source.squeak.org

System-ct.1161

Catch all InvalidDirectoryErrors in GetTextTranslator availableLanguageLocaleIDs. Those exceptions are an implementation detail and may not confuse the caller. Such a confusion happened in connection with Morphic-ct.1638.

by Christoph Thiede (Christoph.Thiede@student.hpi.uni-potsdam.de) at June 06, 2020 06:19 PM

Morphic-cbc.1667

Lock multichoice confirmation dialog message text, so that the keyboard options are always available.

All other DialogWindows will still allow keyboard interaction with their message after clicking on the message.

June 06, 2020 05:07 PM

Tools-jr.972

Fix: inspecting the stack top only inspected its printString instead.

June 06, 2020 04:29 PM

FFI-Kernel-mt.99

Adds suport for lookup of external types through the 'type constants' protocol. Some FFI calls did this already by, for example, referring to 'unsignedByte' instead of 'byte'. Maybe because of "ExternalType unsignedByte". (This could be used to tackle the #ffiLongVsInt issue by adding #int to 'type constants'. Not sure.)

Makes print-string for external structures reveal whether their contents got copied over into a byte array. Now you can see, e.g., in the inspector or object explorer whether the #identityHash is constantly changing ... and that calls to simple setters might not have the expected effect. Note that user-defined external structures can (and maybe should) implement their own notion of #printOn: as usual.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 06, 2020 02:12 PM

Files-ct.184

Fix Transcript outputs if preferences TranscriptStream redirectToStdOut and TranscriptStream forceUpdate are combined. Twin commit of ST80-ct.255.

(Hm, or should we rather revise TranscriptStream >> #endEntry and only send #appendEntryLater in morphic projects? I don't know ...)

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

squeaksource.com

BarnsleyFern-kfr.22

empty log message

June 06, 2020 10:53 AM

June 05, 2020

squeaksource.com

PromisesRemote-rww.3

adopt new ParrotTalk api

by Robert Withers (robert.withers@protonmail.com) at June 05, 2020 01:54 PM

PromisesRemote-rww.3

adopt new ParrotTalk api

by Robert Withers (robert.withers@protonmail.com) at June 05, 2020 01:54 PM

ThunkStack-rww.31

add protocol and ensure frame returns.

by Robert Withers (robert.withers@protonmail.com) at June 05, 2020 01:54 PM

ThunkStack-rww.31

add protocol and ensure frame returns.

by Robert Withers (robert.withers@protonmail.com) at June 05, 2020 01:54 PM

MyCounter-ColinCraig.7

by Colin Craig (beverage.here@gmail.com) at June 05, 2020 01:20 PM

PromisesRemote-rww.2

finish porting

by Robert Withers (robert.withers@protonmail.com) at June 05, 2020 01:14 PM

PromisesRemote-rww.2

finish porting

by Robert Withers (robert.withers@protonmail.com) at June 05, 2020 01:14 PM

PromisesRemote-rww.1

rename package

by Robert Withers (robert.withers@protonmail.com) at June 05, 2020 12:34 PM

PromisesRemote-rww.1

rename package

by Robert Withers (robert.withers@protonmail.com) at June 05, 2020 12:34 PM

PromisesLocal-rww.1

rename package

by Robert Withers (robert.withers@protonmail.com) at June 05, 2020 12:34 PM

PromisesLocal-rww.1

rename package

by Robert Withers (robert.withers@protonmail.com) at June 05, 2020 12:34 PM

TraceMonitor-rww.1

Port to separate package

by Robert Withers (robert.withers@protonmail.com) at June 05, 2020 12:34 PM

TraceMonitor-rww.1

Port to separate package

by Robert Withers (robert.withers@protonmail.com) at June 05, 2020 12:34 PM

Shapes-jmb.74

projection added

by Hans Baveco (hans.baveco@wur.nl) at June 05, 2020 09:10 AM

Shapes-jmb.73

empty log message

by Hans Baveco (hans.baveco@wur.nl) at June 05, 2020 09:10 AM

Shapes-jmb.77

conversion of PolyLineZShape to arcs

by Hans Baveco (hans.baveco@wur.nl) at June 05, 2020 09:09 AM

Shapes-jmb.76

removing confusing external links

by Hans Baveco (hans.baveco@wur.nl) at June 05, 2020 09:09 AM

June 04, 2020

squeaksource.com

Actors-tonyg.107

Try all given addresses when attempting to connect a SocketActor. This lets the tests pass when the ChatRoom listens on IPv4, but localhost resolves to IPv6 (first) as well as IPv4.

by Tony Garnock-Jones (tonyg@leastfixedpoint.com) at June 04, 2020 06:53 PM

Actors-tonyg.106

Improve robustness of tests in case where socket connections are not working as expected.

by Tony Garnock-Jones (tonyg@leastfixedpoint.com) at June 04, 2020 05:59 PM

June 03, 2020

squeaksource.com

CryptographyCiphers-tpr.22

remove dependence on a Grease package

by Robert Withers (robert.withers@protonmail.com) at June 03, 2020 02:50 PM

May 26, 2020

squeaksource.com

OSProcess-dtl.119

OSProcess 4.6.20

Strings are now immutable in Squeak, fix a test that was writing C null terminators to strings.

Add OSProcess class>>editOutputOf: convenience method for running a command pipeline and returning the output in an editor.

by Dave Lewis (lewis@mail.msen.com) at May 26, 2020 05:55 PM

OSProcess-Base-dtl.72

OSProcess 4.6.20

Strings are now immutable in Squeak, fix a test that was writing C null terminators to strings.

Add OSProcess class>>editOutputOf: convenience method for running a command pipeline and returning the output in an editor.

by Dave Lewis (lewis@mail.msen.com) at May 26, 2020 05:54 PM

OSProcess-Tests-dtl.19

OSProcess 4.6.20

Strings are now immutable in Squeak, fix a test that was writing C null terminators to strings.

Add OSProcess class>>editOutputOf: convenience method for running a command pipeline and returning the output in an editor.

by Dave Lewis (lewis@mail.msen.com) at May 26, 2020 05:54 PM

May 23, 2020

squeaksource.com

NITDMSReader-nice.10

Introduce bulk readValuesForAllsChannels in the easy case.

(NITDMSReader new filename: '/my_directory/my_file.tdms'; readValuesForAllsChannels) inspect.

Easy case is when all channels share same data type and size.

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at May 23, 2020 07:44 AM

May 22, 2020

squeaksource.com

BarnsleyFern-kfr.21

keyboard handling (still bugs) recategorization

May 22, 2020 02:02 PM

BarnsleyFern-kfr.20

Color adjusting. Changed from Object to Morph. moveForward and rotate:

May 22, 2020 01:37 PM

May 21, 2020

squeaksource.com

Doc-tty.4

Added a heuristic for TerseGuide to add appropriate content besides the always appropos 'foo'.

Transcript clear; show:OrderedCollection help

will have the DocletTerseGuide return OrderedCollection and SortedCollection information
f

by tty (gettimothy@zoho.com) at May 21, 2020 07:57 PM

BarnsleyFern-kfr.19

raycast rotation

May 21, 2020 06:55 PM

BarnsleyFern-kfr.18

Raycast first commit

May 21, 2020 05:44 PM

May 13, 2020

squeaksource.com

Juggle-ebi.6

empty log message

by Eberhard Gerster (eberhardgerster@t-online.de) at May 13, 2020 03:46 PM

May 10, 2020

squeaksource.com

NITDMSReader-nice.9

Move NITDMSTimestampArray under the brand new RawBitsArray provided by Squeak trunk (6.0).

Also use the new Squeak trunk subclasses of RawBitsArray as recipients.

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

BulkDataTransfer-nice.2

Provide missing basicReplaceFrom:to:with:startingAt:

Requires the RawBitsArray class from recent Squeak trunk (6.0).

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

Compiler.V3-dtl.432

Name: Compiler-nice.432
Author: nice
Time: 10 May 2020, 12:50:37.677856 pm
UUID: f6faf998-9905-4fbd-9bc4-66a2e9f8bc93
Ancestors: Compiler-nice.431

Fix Decompiler after correction byteCodes generated by inlined #caseOf: and recompile all senders of caseOf: in postscript.

Note: I have changed the logic a little bit:
- the ancient CaseFlag is replaced by OtherwiseFlag (that's the purpose, we are trying to detect last case before otherwise:).
- CascadeFlag is replaced by CaseFlag as soon as we have detected a potential caseOf:.

I never put so many Halt in code before having it right. Good luck to the next one wanting to change the Decompiler...

by Dave Lewis (lewis@mail.msen.com) at May 10, 2020 03:41 PM

Compiler.V3-dtl.431

Name: Compiler-nice.431
Author: nice
Time: 10 May 2020, 9:46:13.694981 am
UUID: d25683a4-9332-443c-9c2f-6d331d7993a6
Ancestors: Compiler-nice.430, Compiler-ct.425

Merge Compiler-ct.425, fix the AST produced by Decompiler so that it can generate correct byteCodes.

by Dave Lewis (lewis@mail.msen.com) at May 10, 2020 03:39 PM

Compiler.V3-dtl.430

Name: Compiler-nice.430
Author: nice
Time: 10 May 2020, 9:27:14.242821 am
UUID: 7ba9b09a-1ebd-4181-bf85-2dc912f42c9d
Ancestors: Compiler-nice.429

Fixup: caseError must be sent to the receiver of the caseOf: message, not to the receiver of the home method.

For this, we must also dup/pop in the last case whenever there is no otherwise argument.

See http://forum.world.st/Problems-with-caseError-tp5111930p5112255.html

TODO: also fix the Decompiler...

by Dave Lewis (lewis@mail.msen.com) at May 10, 2020 03:31 PM

Compiler.V3-dtl.429

Name: Compiler-nice.429
Author: nice
Time: 9 May 2020, 12:34:59.991171 am
UUID: 3f35c872-f6c4-45b8-9d7f-785b8f9f70f8
Ancestors: Compiler-nice.428, Compiler-ct.422

Merge Compiler-ct.422 which allow to cancel compilation if an unused variable is detected

by Dave Lewis (lewis@mail.msen.com) at May 10, 2020 03:30 PM

Compiler.V3-dtl.428

Name: Compiler-nice.428
Author: nice
Time: 9 May 2020, 12:24:17.077079 am
UUID: 04b649b2-1b1b-486b-aa82-15b219803431
Ancestors: Compiler-nice.427

Use the idea from Compiler-ct.423: define selectFrom:to:during: in Parser for handling temporary change of text selection - see method comment.

by Dave Lewis (lewis@mail.msen.com) at May 10, 2020 03:28 PM

Compiler.V3-dtl.427

Includes Compiler-ct.424, Compiler-ct.426, and Compiler-nice.427

Name: Compiler-nice.427
Author: nice
Time: 8 May 2020, 6:59:54.689381 pm
UUID: e2c7d4b2-b79d-4d02-a576-872003ec88ed
Ancestors: Compiler-ct.426

Avoid sending select/deselect to the editor in case of interactive correction.

These are st80 specific, forcing Morphic to have stubs, and are considered too intrusive: we should better let such responsibility to the editor, that's its own business.

The send of #select was un-necessary anyway, because selectFrom:to: will send #selectAndScroll, which will send #select.

However, deselect was still required for st80, so replace the sequence deselect; selectInvisiblyFrom:to: with a single message #selectIntervalInvisibly: which is provided by ST80-nice.254 and Morphic-nice.1657.

Why is this needed? As explained in the st80 commit, we want to restore the (eventually slightly modified) user selection once the corrections are performed.

We must do that at each correction, so as to correctly track addition or delection of characters (the selection interval might need to grow or shrink accordingly).

But we do not want to make the user selection visible instantly, otherwise the selection will go back to user selection and forth to next zone of interactive correction repeatedly creating an annoying flashing effect.

Care to let future reader know about it with a comment, there's nothing that obvious which could make the comment superfluous!

Name: Compiler-ct.426
Author: ct
Time: 28 March 2020, 1:22:49.51256 am
UUID: 761924e9-77a0-1144-9533-8a7c22c03332
Ancestors: Compiler-ct.424

Fixes a bug regarding decompilation of special selectors.

The following did not work before:

(OrderedCollection >> #asArray) decompile generate valueWithReceiver: {42} asOrderedCollection arguments: #(). "MessageNotUnderstood: OrderedCollection>>#Array=>Array"

See also this thread: http://forum.world.st/The-Inbox-EToys-ct-367-mcz-tp5105507p5114020.html

Name: Compiler-ct.424
Author: ct
Time: 26 March 2020, 5:19:54.71456 pm
UUID: 10f4405b-896c-3149-b76b-b9cd45ca5734
Ancestors: Compiler-nice.420

Fixes a bug regarding decompilation of FullBlockClosures

Sample to reproduce: [^ true] decompile should NOT return {[]}!

by Dave Lewis (lewis@mail.msen.com) at May 10, 2020 03:27 PM

May 09, 2020

squeaksource.com

NITDMSReader-nice.8

Even if there is a new list of objects, we must still try to mergeIndexFrom: previous list.
Indeed, it happens that object in the new list declare having identical index than same object on previous list...

Also the numberOfRawDataChunks must be queried only using updated object list, otherwise attempts to obtain totalRawDataSizeInBytes from a NITDMSRawDataIndexIdentical will fail.

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at May 09, 2020 08:57 PM

Juggle-ebi.5

empty log message

by Eberhard Gerster (eberhardgerster@t-online.de) at May 09, 2020 03:07 PM

May 06, 2020

squeaksource.com

SBE-Quinto-jec.1

First checkin

by Jon Clark (n6nq@roadrunner.com) at May 06, 2020 10:41 PM

May 05, 2020

squeaksource.com

EbisWindow-ebi.13

postscript added

by Eberhard Gerster (eberhardgerster@t-online.de) at May 05, 2020 02:10 PM

EbisWindow-ebi.12

Extensions

by Eberhard Gerster (eberhardgerster@t-online.de) at May 05, 2020 01:59 PM

EbisWindow-ebi.11

Extensions berichtigt

by Eberhard Gerster (eberhardgerster@t-online.de) at May 05, 2020 01:36 PM

May 04, 2020

squeaksource.com

NITDMSReader-nice.7

Simplify allocation: don't mess with the arrayClass own business, it knows how.
Add a few class comments.

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at May 04, 2020 06:41 PM

ConfigurationOfOCompletion-mt.77

Adds version 1.4.5 for Squeak 5.3 and 6.0alpha.

May 04, 2020 04:37 PM

NITDMSReader-nice.6

Fixup inst. var. refactoring typo s/dimensio/dimension/
Remove noteNoRawData (same as super)

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at May 04, 2020 01:32 PM

NITDMSReader-nice.5

Fixup: better merging the previous metaData before counting the number of values.

Thus, the lastNumberOfValues is gone from channel object.

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at May 04, 2020 01:59 AM

NITDMSReader-nice.4

Fixup the count of values for channels: the number of consecutive identical chunks was not taken into account!

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at May 04, 2020 01:38 AM

NITDMSReader-nice.3

Many changes, including:
- Use OrderedDictionary so as to preserve order of the list of objects in metaData, but also of groups and channels.
- Let Channel object have dataTypes and values.
- Introduce allocation of Smalltalk BitsArrays corresponding to foreign dataTypes.
- Implement reading a single channel as a POC. This uses the BulkDataTransfer package.
TODO: read multiple channels with same tricks.

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at May 04, 2020 12:25 AM

BulkDataTransfer-nice.1

First version for bulk transfer of raw data using Bit Blit when both srcArray and dstArray class isBits.

Especially useful when reading foreign binary data files.

Beware, this version is not much tested yet.

by nicolas cellier (nicolas.cellier.aka.nice@gmail.com) at May 04, 2020 12:15 AM