Thank you very much, indeed! Doru
> On Jul 24, 2017, at 10:04 PM, Stephane Ducasse <stepharo.s...@gmail.com> > wrote: > > HI alistair > > this is supercool that you push this! > I mean it for real. Because this simplnk stuff was always getting on > our way for scripts. > This is really great to see this happening. > Stef > > On Mon, Jul 24, 2017 at 10:43 AM, Max Leske <maxle...@gmail.com> wrote: >> Nice work Alistair! >> >> >> >> On 24 July 2017 at 10:10:09, Alistair Grant (akgrant0...@gmail.com) wrote: >> >> Hi All, >> >> I'm nearly ready to submit a patch that started with the goal of being >> able to retrieve the device id and fixing FileReference>>isSymlink and >> also follows Esteban's suggestion of splitting out file existence and >> other attributes (which provides a performace gain). See the summary >> below for a description of the changes. >> >> The patch involves adding a new VM plugin, FileAttriubutesPlugin. To >> minimise the chance of any problems along the way I'd like to submit the >> patch in three steps: >> >> 1. Add the VM plugin (FileAttributesPlugin) >> 2. Add the code the image that allows testing of the code and plugin, >> but doesn't do any integration with existing functionality. >> This will allow the plugin to be tested by a few volunteers >> (hopefully). >> 3. Add the patches that make the switch over to the new implementation. >> >> >> Can someone point me to how to submit a new VM plugin? The code is >> contained in a subclass of InterpreterPlugin. >> >> I've been using this as my production environment for about 2 months now >> on a linux 32 bit VM. Running the full test suite results in the same >> set of test failing before and after applying the patch. >> >> I've also ran file related tests on linux 64 bit (run the Test Runner, >> select all packages with "file" as part of the name and run all the >> available tests) and the full test suite on Windows 32 bit. >> >> The summary is: >> >> 1. #isSymlink now works properly on Linux (and it should also work on >> MacOS and BSD). >> 2. The list of file attributes available from FileReference now is: >> #accessTime (new) >> #changeTime (new) >> #creationTime >> #deviceId (new) >> #exists >> #gid (new) >> #inode (new) >> #isBlock (new) >> #isCharacter (new) >> #isDirectory >> #isExecutable (new) >> #isFIFO (new) >> #isFile >> #isReadable >> #isRegular (new) >> #isSocket (new) >> #isSymlink (works) >> #isWritable >> #modificationTime >> #numberOfHardLinks (new) >> #permissions >> #size >> #targetFile (new) >> #uid (new) >> 3. FileReference>>exists is faster than before (well, at least on my >> linux laptop). This is useful as it is called quite often. >> 4. It is possible to retrieve symbolic link attributes, e.g. all the >> attributes listed above plus the target path. >> >> >> Given how similar MacOS and BSD are to linux, I assume that this will >> all work without problem on those platforms (but it obviously needs to >> be tested). >> >> As implied above, the changes are all backward compatible (except >> the broken #isSymlink), although a couple deserve mention: >> >> 1. Obviously #isSymlink now answers correctly (previously it would only >> answer correctly for a broken link). >> 2. Requesting any of the attributes listed above (except #isSymlink) >> will return the value of the target path. If the FileReference is to a >> broken symbolic link, it will return the attributes of the symbolic >> link (keeping existing behaviour). >> 3. The attributes of a symbolic link can be retrieved using >> FileReference>>symlinkAttributes. >> >> Overall, performance is slightly better than before. Code that >> needs to access multiple attributes and is written to take advantage of >> the new behaviour will see significant performance improvements. >> >> >> If you've got this far and forgotten the original question :-) >> >> Can someone point me to how to submit a new VM plugin? >> >> >> Thanks, >> Alistair >> > -- www.tudorgirba.com www.feenk.com "Innovation comes in the least expected form. That is, if it is expected, it already happened."