You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In a few very important cases, we don't want POSIX symlink semantics, e.g. NAR processing, but in many other cases we do.
Whether we do or don't is always very important. Yet, it's too easy to get it wrong.
Proposed solution A
Prefix the low level / NAR level / physical level / current methods with ll for "low level" or "link-less"
Add high-level POSIX-like helper functions which implement the expected symlink semantics for each of those methods.
This is a simple solution, but makes code like NAR processing somewhat harder to write, because you have to pay attention to always use ll methods.
Proposed solution B
Use distinct classes. Make the high-level one wrap and hide the low level one. Have conversion methods.
This requires slightly more code, but doesn't treat one use case preferentially, which is a favorable trade-off.
Is your feature request related to a problem?
It's too easy to use the wrong interface.
In a few very important cases, we don't want POSIX symlink semantics, e.g. NAR processing, but in many other cases we do.
Whether we do or don't is always very important. Yet, it's too easy to get it wrong.
Proposed solution A
Prefix the low level / NAR level / physical level / current methods with
ll
for "low level" or "link-less"Add high-level POSIX-like helper functions which implement the expected symlink semantics for each of those methods.
This is a simple solution, but makes code like NAR processing somewhat harder to write, because you have to pay attention to always use
ll
methods.Proposed solution B
Use distinct classes. Make the high-level one wrap and hide the low level one. Have conversion methods.
This requires slightly more code, but doesn't treat one use case preferentially, which is a favorable trade-off.
Additional context
We've had multiple symlink related bugs.
Checklist
Add 👍 to issues you find important.
The text was updated successfully, but these errors were encountered: