Marcel Taeumel uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-mt.1163.mcz
==================== Summary ====================
Name: System-mt.1163
Author: mt
Time: 7 June 2020, 1:22:23.857004 pm
UUID: 29897b05-acdf-b548-8eb3-40a93617ca9a
Ancestors: System-mt.1160
Fixes "color depth = 0" bug. See http://forum.world.st/Image-not-startable-after-save-td5117084.html.
=============== Diff against System-mt.1160 ===============
Item was changed:
----- Method: AutoStart class>>startUp: (in category 'initialization') -----
startUp: resuming
"The image is either being newly started (resuming is true), or it's just been snapshotted.
If this has just been a snapshot, skip all the startup stuff."
| startupParameters launchers |
self active ifTrue: [^self].
self active: true.
resuming ifFalse: [^self].
startupParameters := Smalltalk namedArguments.
-
- Project current startUpActions.
self processUpdates.
launchers := self installedLaunchers collect: [:launcher |
launcher new].
launchers do: [:launcher |
launcher parameters: startupParameters].
launchers do: [:launcher |
Project current addDeferredUIMessage: [launcher startUp]]!
Item was changed:
----- Method: Project class>>initialize (in category 'class initialization') -----
initialize
+ Smalltalk addToStartUpList: self after: SecurityManager.
+ Smalltalk addToShutDownList: self after: SecurityManager.!
- Smalltalk addToStartUpList: self.
- Smalltalk addToShutDownList: self.!
Item was changed:
----- Method: Project class>>shutDown: (in category 'snapshots') -----
shutDown: quitting
+ Project current
+ invalidate;
+ shrinkDisplay.
- Project current shrinkDisplay.
quitting ifTrue: [
Project current world triggerEvent: #aboutToLeaveWorld].!
Item was changed:
----- Method: Project class>>startUp: (in category 'snapshots') -----
startUp: startAfresh
Project current restoreDisplay.
startAfresh ifTrue: [
+ Project current startUpActions.
+ Project current world triggerEvent: #aboutToEnterWorld].
+
+ Project current restore.!
- Project current world triggerEvent: #aboutToEnterWorld].!
Marcel Taeumel uploaded a new version of FFI-Kernel to project FFI:
http://source.squeak.org/FFI/FFI-Kernel-mt.99.mcz
==================== Summary ====================
Name: FFI-Kernel-mt.99
Author: mt
Time: 6 June 2020, 4:12:06.438722 pm
UUID: b2510db0-e4fd-fe4d-9235-faafd9fa2880
Ancestors: FFI-Kernel-mt.98
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.
=============== Diff against FFI-Kernel-mt.98 ===============
Item was changed:
----- Method: ExternalStructure>>printNullOn: (in category 'printing') -----
printNullOn: stream
+ handle ifNil: [
+ ^ stream nextPutAll: '<UNDEFINED>'].
- handle ifNil: [^ stream nextPutAll: '<UNDEFINED>'].
self isNull ifTrue: [
+ ^ stream nextPutAll: '<NULL>'].
+
+ handle isExternalAddress ifFalse: [
+ "Inform the user that this data was copied into object memory."
+ ^ stream nextPut: $<; print: handle identityHash; nextPut: $>].
+ !
- stream nextPutAll: '<NULL>'].!
Item was changed:
----- Method: ExternalType class>>atomicTypeNamed: (in category 'instance lookup') -----
atomicTypeNamed: typeName
"Supports pointer-type lookup such as for 'long*' and also 'long *'."
| isPointerType actualTypeName type |
+ (isPointerType := typeName last == $*)
+ ifTrue: [actualTypeName := typeName allButLast withoutTrailingBlanks]
- (isPointerType := typeName endsWith: '*')
- ifTrue: [actualTypeName := typeName allButLast withBlanksTrimmed]
ifFalse: [actualTypeName := typeName].
+
+ (Symbol lookup: actualTypeName)
+ ifNotNil: [:sym | actualTypeName := sym].
+
+ ^ (type := (AtomicTypes at: actualTypeName ifAbsent: [nil])
+ ifNil: [ "Supports 'type constants' protocol of ExternalTypes."
+ (self class includesSelector: actualTypeName)
+ ifTrue: [self perform: actualTypeName]])
- ^ (type := AtomicTypes at: actualTypeName ifAbsent: [nil])
ifNotNil: [isPointerType ifTrue: [type asPointerType] ifFalse: [type]]!
Item was removed:
- ----- Method: ExternalTypeAlias>>printNullOn: (in category 'printing') -----
- printNullOn: stream
-
- handle ifNil: [^ stream nextPutAll: '<UNDEFINED>'].
-
- self isNull ifTrue: [
- stream nextPutAll: '<NULL>'].!
Marcel Taeumel uploaded a new version of FFI-Pools to project FFI:
http://source.squeak.org/FFI/FFI-Pools-mt.22.mcz
==================== Summary ====================
Name: FFI-Pools-mt.22
Author: mt
Time: 6 June 2020, 3:06:06.299722 pm
UUID: 4864808c-5da7-6242-bc2a-cd654aece0a3
Ancestors: FFI-Pools-mt.21
Adds reference to vm-dev discussion about external pools.
=============== Diff against FFI-Pools-mt.21 ===============
Item was changed:
SharedPool subclass: #ExternalPool
(excessive size, no diff calculated)
Marcel Taeumel uploaded a new version of FFI-Tests to project FFI:
http://source.squeak.org/FFI/FFI-Tests-mt.17.mcz
==================== Summary ====================
Name: FFI-Tests-mt.17
Author: mt
Time: 6 June 2020, 2:24:44.325722 pm
UUID: e9384932-f626-5a48-a1b9-24e021879f44
Ancestors: FFI-Tests-mt.16
Fixes postscript for tests.
=============== Diff against FFI-Tests-mt.16 ===============
Item was changed:
(PackageInfo named: 'FFI-Tests') postscript: '"below, add code to be run after the loading of this package
This package has struct depending on other struct.
Due to load order, some struct may not get correctly initialized, and fall short in size.
Calling a foreign function that write to such a struct may crash the image.
We shall workaround those load order problems until a more robust fix is found."
+ ExternalStructure compileAllFields.'!
- ExternalStructure recompileStructures.'!