Skip to content

0.3.1 --- a name in the long spelling is the name it spells, and the kernel layer is a compatible range - #18

Merged
Sunrisepeak merged 4 commits into
mainfrom
openkal-0.24.1
Nov 7, 2026
Merged

Sunrisepeak merged 4 commits into
mainfrom
openkal-0.24.1

Conversation

@Sunrisepeak

@Sunrisepeak Sunrisepeak commented Nov 6, 2026 •

Copy link
Copy Markdown
Member

os 0.3.1 (mcpp design 2026-11-07 §4.2.3).

  • src/fs.cpp:
    • locate read \\?\C:\... as the share root // followed by ?/C:/.... openkal-windows refuses the colon, so every located operation on a name that fs::extended produced failed with errc::invalid. In [temp][do not merge] probe: #889 Windows status protocol (O1/O2 of the #885 closeout plan) mcpp-community/mcpp#890 all 4228 records in the long spelling failed to read through OpenKal, against 0 of 122731 in the plain spelling.
    • The long spelling is now read as the plain name it denotes, before the name is normalized: a C++ library with POSIX's rules reads the leading // as /.
    • fs::extended makes a name absolute by this library's own reading of a Windows name. Over the hosted arrangement, std::filesystem::absolute took C:\Users\... for a relative name and put the working directory in front of it.
  • tests/fs_test.cpp: on Windows, the test writes, reads through both spellings, stamps, identifies and renames a file through the long spelling.
  • openkal and its implementations are compatible ranges (design §4.2.2, A1).
  • The hosted and image CI rows run over openkal-platform 0.24.2, whose C++ run-time keeps the volume of a normalized name (openkal-llvm-runtime#68). Without it, the hosted Windows rows failed the long-spelling tests.

CI: all 23 jobs pass, including the hosted windows-2022 dev and release rows and the ok images on windows-x86_64.

Sunrisepeak and others added 4 commits November 7, 2026 05:11
locate compared Windows' long spelling (\\?\C:\..., \\?\UNC\...) as written,
so the remainder kept ?/C: and openkal refused the colon: every located
operation upon a name fs::extended produced failed with errc::invalid.
The long spelling is read as the plain name it denotes; the Windows test
writes, reads, stamps, identifies and renames through both spellings.
The kernel layer is a compatible range.

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
… spelling of it

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…ended() reads a Windows name itself

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
@Sunrisepeak
Sunrisepeak merged commit a1986da into main Nov 7, 2026
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant