On Mon, Aug 14, 2017 at 4:11 PM, Alistair Grant <akgrant0...@gmail.com> wrote:
> Hi Guille, > > Thanks for your reply. > > > On Mon, Aug 14, 2017 at 01:44:41PM +0200, Guillermo Polito wrote: > > > > > > On Sun, Aug 13, 2017 at 5:54 PM, Alistair Grant <akgrant0...@gmail.com> > wrote: > > > > Hi All, > > > > Is there any practical difference between (Path * '') and (Path > > workingDirectory)? > > > > > > Being strict, Path workingDirectory does not make any sense. A path is > relative > > or absolute. > > True, but Path is considered internal, so users shouldn't normally be > calling Path>>workingDirectory. > Ah, I was thinking with Pablo the other day that it could be a nice small and standalone library to manage paths. Then FileSystem can work on top. What do you think? That's why with Pablo we extracted the Path classes in a separate package (FileSystem-Path). We also see it has few dependencies and this means that it could go into the bootstrap :). > > I'm asking because the patch I'm preparing to improve canonicalisation > affects the creation of the path in some instances ('.' asFileReference > used to have a path with an empty segment, now it has Path > workingDirectory). > > Just for the record :-) > > Path workingDirectory isRelative " true" > > > > And it is relative to some other path. > > Right, Pharo defines the image directory as the working directory (although > https://github.com/pharo-project/pharo/pull/92 will change that to the > more common shell interpretation of current working directory). > > > > I'd expect that Path workingDirectory gives you an absolute path to the > current > > working directory,,, > > But the path doesn't have a file system to resolve against. > > Although even FileLocator workingDirectory gives a relative path. > > > > Thanks again, > Alistair > > > > > Their internal representation is different: > > > > - (Path * '') has one empty segment > > - Path workingDirectory has no segments > > > > But as far as I can tell they are otherwise the same: > > > > > > | fs frEmpty frWD | > > > > fs := FileSystem disk. > > frEmpty := FileReference fileSystem: fs path: (Path * ''). > > frWD := FileReference fileSystem: fs path: Path workingDirectory. > > String streamContents: [ :stream | > > stream > > << 'frEmpty: '; > > << frEmpty printString; cr; > > << 'frWD: '; > > << frWD printString; cr; > > << '= : '; > > << (frEmpty absolutePath = frWD absolutePath) printString; > cr. > > ] > > > > 'frEmpty: "File @ " > > frWD: "File @ ." > > = : true > > ' > > > > > > Cheers, > > Alistair > > > > > > > > > > > > -- > > Guille Polito > > [CNRS-filaire] > > > > Research Engineer > > > > French National Center for Scientific Research - http:// > > www.cnrs.fr > > > > > > > > Web: http://guillep.github.io > > > > Phone: +33 06 52 70 66 13 > > > > -- Guille Polito Research Engineer French National Center for Scientific Research - *http://www.cnrs.fr* <http://www.cnrs.fr> *Web:* *http://guillep.github.io* <http://guillep.github.io> *Phone: *+33 06 52 70 66 13