Skip to content

feat(libc): implement Dinkumware wide conversion exports - #3083

Merged
adriadam10 merged 2 commits into
boykopovar:mainfrom
MarcZX10:codex/carry-3077-wide-conversions
Oct 10, 2026
Merged

adriadam10 merged 2 commits into
boykopovar:mainfrom
MarcZX10:codex/carry-3077-wide-conversions

Conversation

@MarcZX10

Copy link
Copy Markdown
Contributor

What

Carry screamm's explicitly offered wide-conversion implementation from issue #3077. It adds _WStoul, _Iswctype and swscanf_s, with focused tests for wide classification, conversion errors and secure wide scanning. The original source commits and author attribution are preserved. This branch includes the prerequisite fix from PR #3082; it depends on that PR.

Tested

The contributor reports Windows 11 Pro 26220 / WinLibs MinGW-w64 GCC 15.2.0 / Release full build including libs; guest_wide_conversion, guest_math, guest_wide_strings, guest_rune_locale, guest_scan_count and guest_wide_formatting passed 3/3, and ctest -j8 -E "^agc_|video_out" passed 389/389. Linux runtime tests were not reported. In this session, conventions and git diff --check passed; the local full CMake configure was blocked by the unavailable pinned SDL2 submodule commit.

Checklist

  • Based on current main; no other open PR implements the same functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt
  • No notes, investigation .md files or images added to the repository
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: fix(libc): handle bare hexadecimal prefixes on Windows #3082
  • AI-assisted: yes

David and others added 2 commits October 10, 2026 23:40
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Progress report (262c031 → 51fca3c)

📈 System libraries: 84.53% (+0.09%, +3 implemented functions)

✅ 3 implemented
Library Name
libc _Iswctype_nid_postfix
libc _WStoul_nid_postfix
libc swscanf_s_nid_postfix

@github-actions

Copy link
Copy Markdown

Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.

Pull request Conflicting files (lines on main) Same exports Same new files
#2651 swscanf_s_nid_postfix

@adriadam10

Copy link
Copy Markdown
Collaborator

Checked the three exports against the C11 rules and the Dinkumware xwcc.h class numbering; guest_math and guest_wide_conversion pass on Linux, and the new test target does not build without the change. The TechnicalDebt entry lists the unverified choices (class numbering on the console's libc.prx, unsigned int size argument). Merging.

This branch includes the strtol fix from #3082, so that PR is covered by this one.

@adriadam10
adriadam10 merged commit ecafb64 into boykopovar:main Oct 10, 2026
15 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.

2 participants