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."


Reply via email to