Eliot Miranda uploaded a new version of FileAttributesPlugin to project VM Maker: http://source.squeak.org/VMMaker/FileAttributesPlugin.oscog-eem.50.mcz
==================== Summary ====================
Name: FileAttributesPlugin.oscog-eem.50 Author: eem Time: 6 March 2019, 9:58:12.108207 am UUID: b0ab4422-fbd0-4f63-bcc6-e505d2c61bb5 Ancestors: FileAttributesPlugin.oscog-akg.49
Simpification and simulaiton of primitiveFileExists & primitivePathMax, using the simpler and more efficient methodreturnXXX: protocol.
=============== Diff against FileAttributesPlugin.oscog-akg.49 ===============
Item was added: + ----- Method: FileAttributesPlugin>>faPathMax (in category 'private') ----- + faPathMax + "Answer the value of the platform support's definition of FA_PATH_MAX, defined in + platforms/{unix.win32,etc}/plugins/FileAttributesPlugin/faSupport.h" + <inline: #always> + ^#FA_PATH_MAX!
Item was changed: ----- Method: FileAttributesPlugin>>primitiveFileExists (in category 'file primitives') ----- primitiveFileExists + "Check for existence of a file with a call to access(), or the appropriate platform function." - "Check for existence of a file with a call to access()."
- | fileNameOop faPath resultOop | <export: true> + | fileNameOop faPath | + <var: 'faPath' type: #'fapath'> - <var: 'faPath'type: #'fapath'>
self cCode: '' inSmalltalk: [faPath := self simulatedFaPath]. + fileNameOop := interpreterProxy stackValue: 0. - fileNameOop := interpreterProxy stackObjectValue: 0. (interpreterProxy isBytes: fileNameOop) ifFalse: [^interpreterProxy primitiveFailFor: PrimErrBadArgument].
self faSetStPathOop: (self addressOf: faPath) _: fileNameOop. + interpreterProxy failed ifFalse: + [^interpreterProxy methodReturnBool: (self faExists: (self addressOf: faPath))]! - interpreterProxy failed ifTrue: [^interpreterProxy primitiveFailureCode]. - - resultOop := self faExists: (self addressOf: faPath). - ^interpreterProxy methodReturnValue: resultOop. - !
Item was changed: ----- Method: FileAttributesPlugin>>primitivePathMax (in category 'file primitives') ----- primitivePathMax + "Answer the value of FA_PATH_MAX (PATH_MAX) for the current VM" - "Answer the value of PATH_MAX for the current VM"
<export: true> + ^interpreterProxy methodReturnInteger: self faPathMax! - ^interpreterProxy pop: 1 thenPush: (interpreterProxy integerObjectOf: #FA_PATH_MAX)!
Item was changed: ----- Method: FileAttributesPluginSimulator>>faExists: (in category 'simulation') ----- faExists: faPath "Simulate the the call by actually calling the primitive."
+ ^self primExists: (self faGetStPath: faPath)! - ^(self primExists: (self faGetStPath: faPath)) - ifTrue: [interpreterProxy trueObject] - ifFalse: [interpreterProxy falseObject]. - !
Item was added: + ----- Method: FileAttributesPluginSimulator>>faPathMax (in category 'primitives') ----- + faPathMax + "Answer the VMs FA_PATH_MAX value" + + <primitive: 'primitivePathMax' module: 'FileAttributesPlugin' error: error> + ^self signalError: error for: 'primPathMax'!
Item was removed: - ----- Method: FileAttributesPluginSimulator>>primPathMax (in category 'primitives') ----- - primPathMax - "Answer the VMs FA_PATH_MAX value" - - <primitive: 'primitivePathMax' module: 'FileAttributesPlugin' error: error> - ^self signalError: error for: 'primPathMax'!
Item was removed: - ----- Method: FileAttributesPluginSimulator>>primitivePathMax (in category 'simulation') ----- - primitivePathMax - "Answer the value of FA_PATH_MAX for the current VM. - It doesn't make sense to simulate this, just call the primitive" - - ^self primPathMax!
vm-dev@lists.squeakfoundation.org