2014-09-05 3:01 GMT+02:00 <[email protected]>:

>  Nicolai Hess wrote:
>
>  2014-09-04 18:53 GMT+02:00 Ben Coman <[email protected]>:
>
>>
>> I can confirm this behaviour.  It looks like FilePlugin cannot 'rename' a
>> folder across drives, although it can rename a file across drives. A hack
>> to demonstrate from Workspace...
>>
>> filePlugin := FilePluginPrims allInstances first.
>> filePlugin  rename: 'C:\Temp\Test\file1.txt' to:
>> 'C:\Temp\Test\file2.txt'.  "-->sucess"
>> filePlugin rename: 'E:\Temp\Test\file1.txt' to:
>> 'E:\Temp\Test\file2.txt'.  "-->sucess"
>> filePlugin rename: 'C:\Temp\Test\file2.txt' to:
>> 'E:\Temp\Test\file3.txt'.  "-->sucess"
>>
>> filePlugin rename: 'C:\Temp\Test\folder1' to: 'C:\Temp\Test\folder2'.
>> "-->sucess"
>> filePlugin rename: 'E:\Temp\Test\folder1' to: 'E:\Temp\Test\folder2'.
>> "-->sucess"
>> filePlugin rename: 'C:\Temp\Test\folder2' to: 'E:\Temp\Test\folder3'.
>> "-->fail"
>>
>> I think that is more of a design constraint that a bug.  VBscript has a
>> similar problem [1]. I cloned Pharo-vm off github and in
>> ".../platforms/wind32/plugins/FilePlugin/sqWin32FilePrims.c" found function
>> sqFileRenameOldSizeNewSize uses win32api function MoveFileW which is
>> documented [2] as "The MoveFile function will move (rename) either a file
>> or a directory (including its children) either in the same directory or
>> across directories. The one caveat is that the MoveFile function will fail
>> on directory moves when the destination is on a different volume."
>>
>> Unix platforms don't encounter this since all volumes are mounted under
>> one root.  (e.g. OSX mounting usb drives under /Volumes). I guess the Unix
>> equivalent might be renaming to folder across network shares, though I'm
>> not familiar with how different OS's handles that.
>>
>
>
>  No, there is a similiar limitation on linux as well. Even if all
> directories are under a common root dir, moving files across different
> harddisks/partitions doesn't work:
>
> 12992 Cannot move files to another volume / partition under linux
> <https://pharo.fogbugz.com/default.asp?12992>
>
> unix/linux vm uses the system library call rename() for moving files but
> this function
> (http://www.gnu.org/software/libc/manual/html_node/Renaming-Files.html)
> results in an error
> EXDEV  'Invalid cross-device link'
> if the two file names newname and oldname are on different file systems.
>
>
>
> Thanks Nicolas.  So given that its similar across platforms and reflects
> the system-level semantics, probably we should not change its behaviour,
> and handle this case at the PharoLauncher level.
>

No. Why? It is still an error that we can not "move" a file. On windows and
Unix you can "move" a file, of course. Commandline tools like /bin/mv for
example will do a
"copy to destination - delete from source" if "rename" does not work.



nicolai




>
> However it would be useful in Image to get something like an
> 'InvalidCrossVolume' exception.  I'm not sure off-hand how to approach that.
>
> cheers -ben
>
>
>
>
>>
>> However we should consider consistency across platforms.  Cross volume
>> folder renames could be checked for, and modified to a copy/delete
>> strategy. To state the obvious, the options of where to do this are:
>> a. In PharoLauncher
>> b. In Pharo in
>> WindowsStore(FileSystemStore)>>rename:ifAbsent:to:ifPresent:fileSystem:
>> c. In VM
>>
>> Off the cuff, I'd vote for (b.), but others will better idea of the
>> approach to take. Now if indeed a copy/delete fallback strategy is
>> considered beneficial, it would need to consider how timestamps are
>>
>
>
>
>    led.
>>
>> [1]
>> https://groups.google.com/forum/#!topic/microsoft.public.scripting.vbscript/gz7mv5r50xs
>> [2]
>> http://msdn.microsoft.com/en-us/library/windows/desktop/aa365239(v=vs.85).aspx
>>
>> cheers -ben
>>
>> btw, Since this was my first time looking a VM code, I'm happy to report
>> it was dead easy to clone pharo-vm from github and review (without yet
>> trying to compile). Actually I cloned on OSX so I could `find` the win32
>> FilePlugin code.
>>
>>
>> kilon alios wrote:
>>
>> So I manage to get Launcher running with downloading pharolauncher zip
>> and then downloading pharo 3 and joining the two folders. Launcher now runs
>> but  I dont want it to store images in my c drive so I go to preferences
>> and tell it where in my D drive to save images (D:\software\PharoImages) I
>> press enter and I am getting this error
>>
>>  WindowsStore(Object)>>primitiveFailed:
>> WindowsStore(Object)>>primitiveFailed
>> WindowsStore(FileSystemStore)>>rename:ifAbsent:to:ifPresent:fileSystem:
>> FileSystem>>rename:ifAbsent:to:ifPresent:
>> FileSystem>>rename:to:
>> FileReference>>moveTo:
>> PhLRelocateImageDirectoryCommand>>execute in Block: [ :child | child
>> moveTo: (self target resolvePath:...etc...
>> Array(SequenceableCollection)>>collect:
>> PhLRelocateImageDirectoryCommand>>execute
>> PhLRelocateImageDirectoryCommand>>executeOrInform
>> PhLDirectoryBasedImageRepository class>>migrateFrom:to:
>> PhLDirectoryBasedImageRepository class>>location:
>> PhLDirectoryBasedImageRepository class>>locationString:
>> SettingDeclaration>>realValue:
>> SettingDeclaration>>index:
>> EditableDropListMorph(DropListMorph)>>listSelectionIndex:
>> EditableDropListMorph>>content:
>> PluggableTextFieldMorph>>acceptTextInModel
>> PluggableTextFieldMorph(PluggableTextMorph)>>acceptBasic
>> PluggableTextFieldMorph>>accept
>> TextMorphForFieldView(TextMorphForEditView)>>acceptContents
>> TextEditor>>accept
>> TextMorphForFieldView(TextMorphForEditView)>>keyStroke:
>> TextMorphForFieldView>>keyStroke:
>> TextMorphForFieldView(TextMorph)>>handleKeystroke:
>> KeyboardEvent>>sentTo:
>> TextMorphForFieldView(Morph)>>handleEvent:
>> TextMorphForFieldView(Morph)>>handleFocusEvent:
>> HandMorph>>sendFocusEvent:to:clear: in Block: [ ...
>> BlockClosure>>on:do:
>>
>>
>>
>> On Mon, Sep 1, 2014 at 12:06 PM, kilon alios <[email protected]>
>> wrote:
>>
>>> I am not back to my work pc, so if you have any ideas how to proceed I
>>> am open to suggestions.
>>>
>>>
>>> On Thu, Aug 28, 2014 at 5:17 PM, Tim Mackinnon <[email protected]> wrote:
>>>
>>>> Kilon - it would be good if we could percevear to try and get a fix and
>>>> detailed instructions for other less confident users… At least test Ben’s
>>>> updated installer so we can clear this.
>>>>
>>>>  I appreciate the aggravation you are putting up with.
>>>>
>>>>  Tim
>>>>
>>>>  On 28 Aug 2014, at 10:35, kilon alios <[email protected]> wrote:
>>>>
>>>>  My work pc is dual boot to ubuntu and win 7 . I am not a fan of linux
>>>> either, loads of problems there but nowhere near as bad as windoom.
>>>>
>>>>  I need windoom because of a Greek OCR I use at work to scan legal
>>>> documents. I have no choice other than to continue using it.
>>>>
>>>>  I dont care what the corporate world does or the fact that almost
>>>> 100% of my fellow lawyers use windoom and some still DOS. Thats their
>>>> problem :D
>>>>
>>>>  It would be nice to support what 95% of people use out there, but
>>>> alas I cant take it anymore. Coding should be fun, Windoom kills my inner
>>>> child. Sorry for those that have to tolerate this crap, but I am lucky
>>>> enough not to .
>>>>
>>>>  /ranting off
>>>>
>>>>
>>>> On Thu, Aug 28, 2014 at 11:50 AM, Ben Coman <[email protected]>
>>>> wrote:
>>>>
>>>>> kilon alios wrote:
>>>>>
>>>>>> ok thing get worse and worse
>>>>>>
>>>>>> I try to run pharo as administrator and pharo opens and exits
>>>>>> immediately , it creates a stderr which contains the following
>>>>>>
>>>>>> http://pastebin.com/v9Hpx9pK
>>>>>>
>>>>>> I found the folder you mentioned and I deleted it , now pharo does
>>>>>> not open at all even when run without "run as administrator"
>>>>>> Boy I hate Windoom. I also tried Tim link , nothing, pharo opens but
>>>>>> does nothing, no gui, nothing. I know it opens because i can see its
>>>>>> process in the task manager which i have to terminate manually.
>>>>>> I do all my coding and art on macos, I only have windows at work so i
>>>>>> can test my code on windoom too, but this was the last straw, I had 
>>>>>> enough
>>>>>> with this uber crappy OS for 17 years now. I am dropping support for it 
>>>>>> and
>>>>>> sticking to MacOS only.
>>>>>> Thanks guys for your help but it does not worth it. I hope no other
>>>>>> windows user experience my problem.
>>>>>>
>>>>>>
>>>>>  I empathize.  I've been a Linux advocate for years, but never made
>>>>> the full desktop switch since I needed a Windows system for corporate
>>>>> compatibility. Then I got a mac-mini to experiment with iPad Mobile Device
>>>>> Management, and found it easier to get Latex working on it than on Windows
>>>>> (for processing Pillar output), and now I find myself using it for Pharo
>>>>> more every day, and my Windows box is starting to be neglected (except I
>>>>> still need to migrate my old Thunderbird email archive).
>>>>>
>>>>> However success in the corporate world still hinges a lot on Windows
>>>>> compatibility. I will still have a go at updating PharoLauncher Installer
>>>>> to avoid this problem.
>>>>> cheers, Ben
>>>>>
>>>>> P.S. @Tim, Your alternate-VM feature sound interesting.  I'll check it
>>>>> out.
>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
>>
>
>
>

Reply via email to