In article
On Mon, Jul 18, 2011 at 3:03 AM, Ned Deily
wrote: I think adding the requirement to mandate hard link vs soft link usage is an unnecessary and unwarranted attempt at optimization. For instance, IIRC, the OS X installers don't use any hard links: that may complicate the install, plus hard links on OS X HFS* file systems are a bit of a kludge and not necessarily more efficient than symlinks. It's not a big deal but perhaps the wording should be changed to make a suggestion about hard links vs syminks rather than mandate which should be used.
Ah, OK. The wording's been changed so that symbolic links will be installed on Mac OS X and hard links elsewhere (although maybe symbolic links are also better on certain other platforms; I'm not sure).
I do think that specific instructions must be given (rather than just a suggestion) because it's indicating what must be done to CPython. The instructions *should* be as close as possible to what the installer already does, but I'm not entirely sure what the installer does by default, and the hard-link recommendation was based off a cursory inspection of my own system, so further input from yourself and the rest of python-dev would be appreciated.
Thanks for addressing the comments. Unfortunately, I was relying too much on memory and I should have checked more carefully. I see now that, within the framework bin directory for Python 3, the python3 -> python3.x link is, in fact, a hard link because it is being produced by the standard Makefile target "bininstall". I was thinking more of the optional /usr/local/bin links which are all symlinks. So, if the Python 3 installer does is, there's no reason why Python 2 can't do it, I suppose. But if you look at the Python 3 "bininstall" target (Makefile.pre.in starting around line 870 or so), you'll see that, for Python 3, symlinks are made for all the versioned files except "python3". I'm not sure that there is a particular reason why a distinction was made; IIRC, the other versioned links were added later in the cycle. The other Python 3 versioned links could probably be changed to hard links as well. In the end, I don't think it makes a lot of difference. But it would be better if Python 2 and Python 3 were consistent here. My apologies for the confusion and extra work. -- Ned Deily, nad@acm.org