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
Either way, automatically doing this even were :back present is inconsistent with how pathname literals are interpreted. For instance:
(inspect#p"/foo/bar/../stuff.txt")
You will see that :UP is still present in the struct and the path has not been normalized. Other main implementations also do not do auto-normalization within make-pathname.
The text was updated successfully, but these errors were encountered:
fosskers
changed the title
[Bug] CCL should not auto-interpret :up found in directory components passed to make-pathname
[Bug] CCL should not auto-normalize :up found in directory components passed to make-pathnameJan 28, 2024
``Syntactic'' means that the action of :back depends only on the pathname and not on the contents of the file system.
``Semantic'' means that the action of :up depends on the contents of the file system; to resolve a pathname containing :up to a pathname whose directory component contains only :absolute and strings requires probing the file system.
So there are two issues here:
CCL is interpreting :up's behaviour as :back's behaviour.
It is automatically normalizing paths via (1) when make-pathname is called.
The implications of this line (and perhaps the usage of
remove-up
elsewhere) violate the spec's stated difference between:up
and:back
.:up
requires a probe of the filesystem to determine what the path actually resolves to, while:back
does not. I don't seeremove-up
doing such a probe.Either way, automatically doing this even were
:back
present is inconsistent with how pathname literals are interpreted. For instance:You will see that
:UP
is still present in the struct and the path has not been normalized. Other main implementations also do not do auto-normalization withinmake-pathname
.The text was updated successfully, but these errors were encountered: