Marcel Taeumel uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-mt.491.mcz
==================== Summary ====================
Name: Compiler-mt.491
Author: mt
Time: 5 May 2023, 3:39:26.933945 pm
UUID: e15f8291-ec32-9a4a-8af3-5328323a2ca3
Ancestors: Compiler-mt.490
Allow #pvt* methods to be overridden and extended in subclasses, that is, allow "super pvtFoo" calls. For example, Cuis' VectorEngine needs this.
=============== Diff against Compiler-mt.490 ===============
Item was changed:
----- Method: MessageNode>>pvtCheckForPvtSelector: (in category 'private') -----
pvtCheckForPvtSelector: encoder
+ "If the code being compiled is trying to send a private message (e.g. 'pvtCheckForPvtSelector:') to anyone other than self (or super), then complain to encoder."
- "If the code being compiled is trying to send a private message (e.g. 'pvtCheckForPvtSelector:') to anyone other than self, then complain to encoder."
selector isPvtSelector ifTrue:
+ [receiver isSelfOrSuperPseudoVariable ifFalse:
+ [encoder notify: 'Private messages may only be sent to self or super']].!
- [receiver isSelfPseudoVariable ifFalse:
- [encoder notify: 'Private messages may only be sent to self']].!
Item was added:
+ ----- Method: ParseNode>>isSelfOrSuperPseudoVariable (in category 'testing') -----
+ isSelfOrSuperPseudoVariable
+
+ ^ self isSelfPseudoVariable or: [self isSuperPseudoVariable]!
Item was added:
+ ----- Method: ParseNode>>isSuperPseudoVariable (in category 'testing') -----
+ isSuperPseudoVariable
+ "Overridden in VariableNode."
+ ^false!
Item was added:
+ ----- Method: VariableNode>>isSuperPseudoVariable (in category 'testing') -----
+ isSuperPseudoVariable
+ "Answer if this ParseNode represents the 'super' pseudo-variable."
+
+ ^ key = 'super' or: [name = '{{super}}']!
Eliot Miranda uploaded a new version of Files to project The Trunk:
http://source.squeak.org/trunk/Files-eem.203.mcz
==================== Summary ====================
Name: Files-eem.203
Author: eem
Time: 2 May 2023, 3:03:46.035929 pm
UUID: 1f6149df-859d-47aa-8926-5a0d8c368377
Ancestors: Files-mt.202
Cheaper implementation of FileDirectory class>>extensionFor:. Include error code in StandardFileStream>>primClose: (latest VMs answer a meaningful error if primitiveFileClose fails).
=============== Diff against Files-mt.202 ===============
Item was changed:
----- Method: FileDirectory class>>extensionFor: (in category 'name utilities') -----
+ extensionFor: fileNameString
+ "Answer the extension of the given file name string, if any, or the empty string if none."
- extensionFor: fileName
- "Return the extension of given file name, if any."
+ | i |
+ i := fileNameString lastIndexOf: DirectoryClass extensionDelimiter.
+ ^i = 0
+ ifTrue: ['']
+ ifFalse: [fileNameString copyFrom: i + 1 to: fileNameString size]!
- | delim i |
- delim := DirectoryClass extensionDelimiter.
- i := fileName findLast: [:c | c = delim].
- i = 0
- ifTrue: [^ '']
- ifFalse: [^ fileName copyFrom: i + 1 to: fileName size].
- !
Item was changed:
----- Method: StandardFileStream>>primClose: (in category 'primitives') -----
primClose: id
"Close this file."
+ <primitive: 'primitiveFileClose' module: 'FilePlugin' error: ec>
- <primitive: 'primitiveFileClose' module: 'FilePlugin'>
self primitiveFailed
!