2015-09-15 9:19 GMT+02:00 Nicolai Hess <nicolaihess@web.de>:


2015-09-14 23:10 GMT+02:00 Eliot Miranda <eliot.miranda@gmail.com>:
 
Thanks Nicolai, that's great!  I'll merge in your changes.  Which files do I need to look at?

I changed (removed my code, added Marcels)
platforms/win32/plugins/FilePlugin/sqWin32FilePrims.c
platforms/win32/vm/sqWin32.h
platforms/win32/vm/sqWin32Directory.c

I added (should be the same as in squeak vm repository)
platforms/win32/plugins/FilePlugin/sqWin32FilePrims.c


But my changes only about that code that already is in squeaks repository.

If we want to merge some of the pharo-vm code into squeaks branch, we
first need to wrap that code with some #ifdefs

(For the win32 file/directory stuff, this would be code in
platforms/win32/plugins/FilePlugin/sqWin32FilePrims.c
platforms/win32/vm/sqWin32.h
platforms/win32/vm/sqWin32Directory.c
and
platforms/Cross/plugins/FilePlugin/FilePlugin.h)

Maybe Estaban should look at this, and tell which path he would follow  to
merge those changes.


OK, these changes are now in pharos vm repository, ....


but I just found another issue with long paths, squeak and pharo:

This is a path from one github repository based package

u:\pharo_images\images\Pharo 5.0 (beta)-50376\github-cache\mtaborda\aconcagua\master\mtaborda-aconcagua-4d0a14f\repository\Aconcagua-Core.package\NotProportionalDerivedUnit.class\instance\initializeBaseUnit.conversionBlock.reciprocalConversionBlock.nameForOne.nameForMany.sign..st

Yes, pathlength is 282! But I think the problem is not the overall path name, but the length of the filename.

On squeak, you can open and browse the parent directory in a FileList and even show the contents of the contained files.
On Pharo, this does not work, because Pharos FileList uses a different method for accessing the file attributes.
(the difference is, we call dir_EntryLookup, whereas (most) of Squeaks FileList methods just call dir_Lookup).

But there are some methods in Squeak that call dir_EntryLookup and those are failing too.

For example:

"Creating a Stream and reading the contents works"
(FileStream fileNamed:'u:\pharo_images\images\Pharo 5.0 (beta)-50376\github-cache\mtaborda\aconcagua\master\mtaborda-aconcagua-4d0a14f\repository\Aconcagua-Core.package\NotProportionalDerivedUnit.class\instance\initializeBaseUnit.conversionBlock.reciprocalConversionBlock.nameForOne.nameForMany.sign..st') contents.

"Creating a Stream and accessing the directory entry does not work"
(FileStream fileNamed:'u:\pharo_images\images\Pharo 5.0 (beta)-50376\github-cache\mtaborda\aconcagua\master\mtaborda-aconcagua-4d0a14f\repository\Aconcagua-Core.package\NotProportionalDerivedUnit.class\instance\initializeBaseUnit.conversionBlock.reciprocalConversionBlock.nameForOne.nameForMany.sign..st') directoryEntry
" -> Error: file not in directory: initializeBaseUnit.conversionBlock.reciprocalConversionBlock.nameForOne.nameForMany.sign..st"


nicolai