On Saturday, February 7, 2015 at 3:25:09 AM UTC+11, Jameson wrote:
>
> Calling joinpath on various path segments before creating a final path 
> should be valid (to preserve associativity), which means that embedded 
> separators is a quite valid operation. 
>

And paths are things that can be read from files/users where they will have 
drive letters and separators.
 

> On Fri, Feb 6, 2015 at 11:16 AM Seth <[email protected] <javascript:>> 
> wrote:
>
>> The thing about joinpath is that it's typically used for cross-platform 
>> compatibility. That is, there should be NO slashes that can be interpreted 
>> as directory separators in any component*, since some systems use a forward 
>> slash, some a backward slash, and some use other characters like colons to 
>> separate directories, Since you're (presumably) using joinpath to ensure 
>> that your code works regardless of the system-specific directory delimiter, 
>> you don't want to put any delimiters in there to begin with.
>>
>> Calling joinpath with anything other than valid FILENAME characters ought 
>> to raise a warning or an exception.
>>
>> * This is problematic when you need to get a path relative to some root, 
>> but we'll leave that as an edge case for now - it can be worked around via 
>> environment variables.
>>
>>
>> On Thursday, February 5, 2015 at 7:12:01 PM UTC-8, [email protected] 
>> wrote:
>>>
>>> This capability would have to be provided somewhere, since its 
>>> absolutely essential to portably handle many path manipulation use-cases 
>>> (eg provide an absolute path or a relative path that is relative to some 
>>> base path).  IMO joinpath() is as good a place as any to have the 
>>> functionality.
>>>
>>> On Friday, February 6, 2015 at 7:45:44 AM UTC+11, Milan Bouchet-Valat 
>>> wrote:
>>>>
>>>> Le jeudi 05 février 2015 à 14:09 -0500, Stefan Karpinski a écrit : 
>>>> > I don't see how it's magical. The function joinpath(path1,path2) 
>>>> gives 
>>>> > the path of path2 relative to path1 – that's what it means. When 
>>>> path2 
>>>> > is absolute, path1 doesn't matter to answer that question. 
>>>> Yeah, but one could also imagine raising an exception instead, as the 
>>>> programmer may not have expected path2 to be absolute. It's not 
>>>> magical, 
>>>> but maybe a little too smart for my taste for a function called 
>>>> "joinpath". YMMV of course. 
>>>>
>>>>
>>>> Regards 
>>>>
>>>> > On Thu, Feb 5, 2015 at 2:06 PM, Milan Bouchet-Valat 
>>>> > <[email protected]> wrote: 
>>>> >         Le jeudi 05 février 2015 à 13:55 -0500, Stefan Karpinski a 
>>>> >         écrit : 
>>>> >         > When you open the file referred to by path2, that is 
>>>> >         essentially 
>>>> >         > looking at joinpath(pwd(), path2) and this is just a 
>>>> >         generalization of 
>>>> >         > that that behavior relative to path1 instead of pwd() 
>>>> >         specifically. 
>>>> >         > This is also how Python does it, although there seems to be 
>>>> >         some 
>>>> >         > confusion due to that as well. 
>>>> >         Indeed. Isn't this behavior a bit too magical for the Julian 
>>>> >         philosophy? 
>>>> >         Is convenience worth the increased confusion here? Maybe this 
>>>> >         behavior 
>>>> >         should only be enabled via a keyword argument? 
>>>> >         
>>>> >         
>>>> >         Regards 
>>>> >         
>>>> >         > On Thu, Feb 5, 2015 at 12:36 PM, Davide Lasagna 
>>>> >         > <[email protected]> wrote: 
>>>> >         >         I know this is documented by what is the rationale 
>>>> >         for 
>>>> >         >         joinpath(path1, path2) to return path2 if path2 
>>>> >         looks like an 
>>>> >         >         absolute path? 
>>>> >         > 
>>>> >         >         Cheers, 
>>>> >         > 
>>>> >         >         Davide 
>>>> >         > 
>>>> >         > 
>>>> >         > 
>>>> >         > 
>>>> >         
>>>> >         
>>>> > 
>>>> > 
>>>>
>>>>

Reply via email to