Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We mostly check
greadlink
because of older macOS versions (withoutreadlink -f
) where Homebrew or Macports might have placed a GNU readlink into PATH. Checking firstreadlink
thengreadlink
nulifies that use-case becausereadlink
is always available on macOS (but may or may not support-f
).You're right that our fallback to manual resolution mostly alleviates the need for
greadlink
, but I felt that ifgreadlink
is present, let's just use it. I didn't think there would be significant overhead with PATH lookups for anyone.In fact, applying your change does not net any tangible improvements on my machine.
I would say that this change benefits only people with very slow PATH resolution, like on your machine, and that the proper fix would be to change your PATH settings (or your resolver) to be faster.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for your comment!
As for #1483, it is possible. I can put the Linux directory before the Windows directory in the PATH.
However, it is difficult to work around this issue. WSL2 inserts many NTFS directories in the PATH by default, and they are actually needed to be able to transparently launch Windows executables from WSL2 environment.
One possible hack is to put
/usr/local/bin/greadlink
as a symbolic link to/usr/bin/readlink
. TBH, I don't want to do that on all my Windows machines.Your experiment shows an improvement of 0.5 ms on macOS. I admit that it is not so big, but I am seeing the same improvement on my macOS. I believe this change has little maintenance concern. I would appreciate your positive consideration.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not opposed to the change. However, please wait a few weeks for me to reach a decision, as I am just leaving to vacation. 🙇