Planet Squeak Code

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

July 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

ST80-ct.255

Fix Transcript in MVC projects if preference 'Force transcript updates to screen' is disabled.

Thanks to Marcel (mt) for the hint!

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

FFI-Pools-mt.22

Adds reference to vm-dev discussion about external pools.

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

squeaksource.com

BarnsleyFern-kfr.22

empty log message

June 06, 2020 10:53 AM

June 05, 2020

source.squeak.org

Tools-cbc.971

Enhance ObjectExlporer>>copyValue to copy a string that would re-constitute the base value using the representation show in the explorer.
An explicit example: If your are exploring the integer 42 and choose the menu item 'copy value' from the menu while hovering over the "binary '0010 1010'" (or "binary '101010"), it will copy the string '2r101010' to the clipboard.
This is extensible to other objects as well, but currently only supports Integer display options.

by Chris Cunningham (cunningham.cb@gmail.com) at June 05, 2020 05:47 PM

Morphic-cbc.1664

locked messageMorph in DialogWindow so that the morph can once again be controlled by keystrokes.

by Chris Cunningham (cunningham.cb@gmail.com) at June 05, 2020 03:31 PM

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

source.squeak.org

Morphic-mt.1664

Proposal of different format to print integers in the object explorer. Print them in groups of, e.g., 4 digits, separated by a space character.

I am sure that the actual implementation can be improved. :-)

June 05, 2020 09:50 AM

squeaksource.com

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

source.squeak.org

Morphic-mt.1663

Minor fix for class icons in object explorers. If you happen to actually explore the class, not just instances of it, show that icon, too.

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

June 04, 2020

source.squeak.org

System-kfr.1161

Return nil instead of opening pre debugger

June 04, 2020 09:06 PM

KernelTests-tonyg.382

More Promise tests for Promise/A+ behaviour.

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

KernelTests-tonyg.381

Tests for a discrepancy between current Promise implementation and the Promises/A+ spec. (Bug reported by Jakob Reschke on squeak-dev, 5 April 2020)

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

Kernel-tonyg.1331

More repairs to Promise to bring it closer to Promise/A+ behaviour.

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

Kernel-tonyg.1330

Repair a discrepancy between current Promise implementation and the Promises/A+ spec. (Bug reported by Jakob Reschke on squeak-dev, 5 April 2020)

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

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

source.squeak.org

FFI-Kernel-mt.95

Wow. FFI found its way into many other packages already. This fix is for MCMethodDefinition >> #postLoad. ;-)

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

FFI-Kernel-mt.94

Update postscript to consider the #isSkipped mechanism when recompiling all structures.

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

squeaksource.com

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

source.squeak.org

FFI-Tools-mt.11

Mark empty struct types with an empty type icon. :-)

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

FFI-Kernel-mt.93

Fixes a regression from the previous commit. Not all subclasses of ExternalStructure have fields to be compiled. Mark that with #isSkipped, which is coherent with ExternalPool's #isSkipped.

Mark empty structure types, which are the ones where only the pointer should be used.

Fixes a bug (or regression?) in #doneCompiling. That is, support changing the base class from, e.g., Object to ExternalStructure.

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

FFI-Tools-mt.10

Adds a tool icon for struct classes that are just a type alias.

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

FFI-Kernel-mt.92

Offer a more obvious way to define type aliases.

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

FFI-Kernel-mt.91

Slightly refactor the process of updating external types and external structs when a platform change is detected.

1. Null (and maybe resize) all external addresses.
2. For all struct types, update pointer sizes and null struct sizes.
3. For all struct classes, look for definition changes and re-configure struct types in any case.
4. Update external pools.

Note that I pushed the field recompilatino code from ExternalObject down to ExternalStruct. Apologies if I overlooked update code for other external objects. There are none at the moment, or are there?

I tried to retain the identity of #compiledSpec in atomic types and struct types. Not sure whether this is necessary. Well, it is nice to have that identity check for #isTypeAlias and #originalType. :-)

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

FFI-Tools-mt.9

Complements FFI-Kernel-mt.90.

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

FFI-Kernel-mt.90

Makes print strings for type aliases more clear.

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

Compiler-mt.434

Complements FFI-Kernel-mt.89.

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at June 04, 2020 02:00 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 28, 2020

source.squeak.org

FFI-Pools-mt.16

Moves interpretation of <ffiExternalSharedPool> pragma to the definition class where all other pragmas are interpreted and documented already.

Adds simple way to explore pool definitions by calling the method that holds the definition pragmas:

MyExternalPool class >> #win32ExamplePool
<ffiExternalSharedPool>
<ffiPlatformName: 'Win32'>
^ self poolDefinition

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 28, 2020 07:20 AM

May 27, 2020

source.squeak.org

FFI-PoolsTests-mt.8

Fixes typo "Genreator" -> "Generator".

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 27, 2020 03:26 PM

FFI-PoolsTests-monty.2

updated for FFISharedPool renaming

by Marcel Taeumel (marcel.taeumel@hpi.uni-potsdam.de) at May 27, 2020 02:52 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

May 03, 2020

squeaksource.com

NITDMSReader-nice.2

Introduce NITDMSTimestampArray for representing arrays of accurate National Instrument 128 bits TDMS Timestamp.

See https://www.ni.com/fr-fr/support/documentation/supplemental/08/labview-timestamp-overview.html

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

May 02, 2020

squeaksource.com

CommandShell-dtl.109

CommandShell 4.7.10
Additional updates for Cuis support. FileMan updates and fix tests to match.

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

CommandShell-Commands-dtl.25

CommandShell 4.7.10
Additional updates for Cuis support. FileMan updates and fix tests to match.

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

CommandShell-Base-dtl.72

CommandShell 4.7.10
Additional updates for Cuis support. FileMan updates and fix tests to match.

by Dave Lewis (lewis@mail.msen.com) at May 02, 2020 09:59 PM

CommandShell-Piping-dtl.29

CommandShell 4.7.10
Additional updates for Cuis support. FileMan updates and fix tests to match.

by Dave Lewis (lewis@mail.msen.com) at May 02, 2020 09:59 PM

CommandShell-Tests-dtl.20

CommandShell 4.7.10
Additional updates for Cuis support. FileMan updates and fix tests to match.

by Dave Lewis (lewis@mail.msen.com) at May 02, 2020 09:59 PM

CommandShell-dtl.108

CommandShell 4.7.9
Remove use of #release. This was used for removing dependencies, but appears to be unnecessary as there are no cyclic dependencies. Cuis does not implement #release, so get rid of it now.

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

CommandShell-Morphic-dtl.4

CommandShell 4.7.9
Remove use of #release. This was used for removing dependencies, but appears to be unnecessary as there are no cyclic dependencies. Cuis does not implement #release, so get rid of it now.

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

CommandShell-Piping-dtl.28

CommandShell 4.7.9
Remove use of #release. This was used for removing dependencies, but appears to be unnecessary as there are no cyclic dependencies. Cuis does not implement #release, so get rid of it now.

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

CommandShell-UI-dtl.22

CommandShell 4.7.9
Remove use of #release. This was used for removing dependencies, but appears to be unnecessary as there are no cyclic dependencies. Cuis does not implement #release, so get rid of it now.

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

CommandShell-Base-dtl.71

CommandShell 4.7.9
Remove use of #release. This was used for removing dependencies, but appears to be unnecessary as there are no cyclic dependencies. Cuis does not implement #release, so get rid of it now.

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

CommandShell-dtl.107

CommandShell 4.7.8
Additional updates for Cuis. Make file redirection work. Eliminate unneeded calls to release. Update fileExists for FileMan. Document TtyTextMorphForEditView, no longer needed for recent Squeak but required for older Squeak and probably Pharo.

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

CommandShell-Base-dtl.70

CommandShell 4.7.8
Additional updates for Cuis. Make file redirection work. Eliminate unneeded calls to release. Update fileExists for FileMan. Document TtyTextMorphForEditView, no longer needed for recent Squeak but required for older Squeak and probably Pharo.

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

CommandShell-Commands-dtl.24

CommandShell 4.7.8
Additional updates for Cuis. Make file redirection work. Eliminate unneeded calls to release. Update fileExists for FileMan. Document TtyTextMorphForEditView, no longer needed for recent Squeak but required for older Squeak and probably Pharo.

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

CommandShell-Morphic-dtl.3

CommandShell 4.7.8
Additional updates for Cuis. Make file redirection work. Eliminate unneeded calls to release. Update fileExists for FileMan. Document TtyTextMorphForEditView, no longer needed for recent Squeak but required for older Squeak and probably Pharo.

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

May 01, 2020

squeaksource.com

NITDMSReader-nice.1

NITDMSReader is a package for reading files abiding to National Instrument TDMS format 1.0 and 2.0.

This file format is used for acquisition of time series with the family of National Instrument softwares like LabView (TM) & al

The format is described here:
https://www.ni.com/fr-fr/support/documentation/supplemental/07/tdms-file-format-internal-structure.html

This first version does not yet read the contents of rawData.
It just scans the metaData index, and answer a NITDMSFile object reflecting the hierarchical structure of the file: file / group / channel

Use it with:

(NITDMSReader new filename: '/my_directory/my_file.tdms'; scan) explore

Note: National Instrument also provides an API and distribute binary DLL for reading such files on Windows and Macos which I already interfaced in VW.
But there are some restrictions in usage and redistribution. Also the binaries are quite huge compared to what is really needed for a quick start, and distributing binaries is always a pain for packaging reasons.
In Squeak, I'm confident that we can optimize reading enough by using BitBlt tricks for data transfer.

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

April 23, 2020

squeaksource.com

Collections.V3-dtl.888

Name: Collections-mt.888
Author: mt
Time: 20 April 2020, 10:16:10.896894 am
UUID: ecc786d1-496b-0e4d-8f51-3abcff1823db
Ancestors: Collections-mt.887

Fixes mistake in previous commit. Sorry, it's Monday. --- Complements CollectionsTests-mt.337, which found the mistake.

by Dave Lewis (lewis@mail.msen.com) at April 23, 2020 12:45 AM

April 19, 2020

squeaksource.com

System.V3-dtl.1154

Name: System-eem.1154
Author: eem
Time: 19 January 586155, 1:08:16.564616 am
UUID: 774a2409-d212-1a47-8988-0250ab5f13d2
Ancestors: System-mt.1153

Spelling in a class comment

by Dave Lewis (lewis@mail.msen.com) at April 19, 2020 08:53 PM

System.V3-dtl.1153

Name: System-mt.1153
Author: mt
Time: 17 April 2020, 5:16:44.35686 pm
UUID: ed1deacd-13b8-9144-850a-a91589b99e87
Ancestors: System-eem.1152

Adds a query for information about the CI status to the system version. Why? Because the system version shapes that query.

by Dave Lewis (lewis@mail.msen.com) at April 19, 2020 08:49 PM

Collections.V3-dtl.886

Name: Collections-mt.886
Author: mt
Time: 17 April 2020, 4:56:30.33186 pm
UUID: c7d64e56-0d06-e34f-8a61-8f5a7eb9277d
Ancestors: Collections-eem.885

To our HTML-to-Text converter, add support for <img> tags. Either download an image (or picture) from the Web or evaluate some code to retrieve either a Form or a Morph. As documented in #httpGetImage:, this complements the support of "code://" in TextURL.

by Dave Lewis (lewis@mail.msen.com) at April 19, 2020 08:42 PM

Collections.V3-dtl.885

NOTE - for interpreter VM, requires VMMaker-dtl.415 for required primitive support. Older VMs will not work (but Cog VM has the needed primitives).

Name: Collections-eem.885
Author: eem
Time: 15 April 2020, 4:37:54.800631 pm
UUID: 45d219d3-6ed0-4401-a820-44eebe21d71a
Ancestors: Collections-eem.883, Collections-dtl.884

Switch elementsForwardIdentityTo: to not copy the hash, see http://forum.world.st/How-to-become-immediate-objects-td5114931.html.
Add elementsForwardIdentityAndHashTo: for the old behavior.

by Dave Lewis (lewis@mail.msen.com) at April 19, 2020 08:40 PM

April 18, 2020

squeaksource.com

ParrotTalk-rww.56

make sure to return frames from #upcall:/#downcall:

by Robert Withers (robert.withers@protonmail.com) at April 18, 2020 05:13 PM

ParrotTalk-rww.56

make sure to return frames from #upcall:/#downcall:

by Robert Withers (robert.withers@protonmail.com) at April 18, 2020 05:13 PM

ThunkStack-rww.29

make sure to return frames from #upcall:/#downcall:

by Robert Withers (robert.withers@protonmail.com) at April 18, 2020 05:13 PM

ThunkStack-rww.29

make sure to return frames from #upcall:/#downcall:

by Robert Withers (robert.withers@protonmail.com) at April 18, 2020 05:13 PM

April 17, 2020

squeaksource.com

ThunkStack-rww.28

use the return frame for #upcall:/#downcall:

by Robert Withers (robert.withers@protonmail.com) at April 17, 2020 09:46 PM

ThunkStack-rww.28

use the return frame for #upcall:/#downcall:

by Robert Withers (robert.withers@protonmail.com) at April 17, 2020 09:46 PM

SSL-rww.59

added SSLFrame

by Robert Withers (robert.withers@protonmail.com) at April 17, 2020 09:44 PM

SSL-rww.59

added SSLFrame

by Robert Withers (robert.withers@protonmail.com) at April 17, 2020 09:44 PM

April 15, 2020

squeaksource.com

ThunkStack-rww.27

DuplexThunk naming.

by Robert Withers (robert.withers@protonmail.com) at April 15, 2020 05:53 AM