Commit Graph
1770 Commits
Author SHA1 Message Date
JJenkx edceab45c7 fix(libc): integrate current main and log10 parent into log2 2026-10-29 23:22:00 -04:00
JJenkx 476bb9f96c fix(libc): integrate current main into PR 10247 2026-10-29 23:20:34 -04:00
Dean 99b571f879 Merge pull request #11468 from valenciana-nc/fix/guest-heap-header-validation
fix(libc): validate guest heap block headers before freeing
2026-10-30 14:50:19 +13:00
Adrià 18bf374028 Merge pull request #12178 from Henryisdjfunkyho/fix/libc-nearbyintf-current
fix(libc): raise inexact for nearbyintf
2026-10-30 02:00:49 +01:00
Adrià 76fd1c09e9 Merge pull request #11270 from AlexFigas/fix/libc-llog-dinkumware
fix(libc): compute _LLog with the bundled libc.prx's Dinkumware code
2026-10-30 01:40:35 +01:00
Adrià 96613bba67 Merge pull request #12060 from Ragbie/fix/windows-directory-flock
fix(libkernel): lock directories with flock on Windows as FreeBSD does
2026-10-30 01:04:03 +01:00
Adrià f0c8f26eec Merge pull request #12676 from JJenkx/windows/libc-ldexpf-errno
fix(libc): leave errno unchanged from ldexpf, as titles' libc.prx does
2026-10-30 00:18:56 +01:00
Adrià 5e216d6aed Merge pull request #10927 from edubox/feat/libc-throw-bad-array-new-length
feat(libc): implement std::_Throw(const std::bad_array_new_length&)
2026-10-30 00:18:44 +01:00
Adrià 202037c3d7 Merge pull request #12691 from JJenkx/codex/libc-bsearch-zero-stride-20261029
fix(libc): allow zero-stride bsearch_s as bundled libc does
2026-10-30 00:18:02 +01:00
Adrià 2e55a9d0f6 Merge pull request #12681 from JJenkx/windows/libc-scalbn-errno
fix(libc): leave errno unchanged from scalbn and scalbnf on every host
2026-10-30 00:02:33 +01:00
Adrià 034e5a015a Merge pull request #11450 from edubox/feat/libc-sce-v2-locinfo
feat(libc): export std::__sce_v2::_Locinfo
2026-10-29 23:37:12 +01:00
Adrià d77adbfab0 Merge pull request #12549 from JJenkx/windows/libc-mktime-normalize-early-years
fix(libc): normalize a pre-1970 calendar before the Windows host mktime
2026-10-29 23:28:20 +01:00
Adrià e1dd37721c Merge pull request #12555 from JJenkx/codex/libc-fltrounds-x87-20261028
fix(libc): read x87 rounding in _Fltrounds
2026-10-29 23:28:14 +01:00
Adrià 4740534186 Merge pull request #12527 from JJenkx/windows/libc-strerror-extended
fix(libc): name the extended errno values in strerror as titles' libc.prx does
2026-10-29 23:01:08 +01:00
Adrià 51c808fc76 Merge pull request #12573 from JJenkx/windows/libc-time-name-index-wrap
fix(libc): pick strftime and asctime names from a doubled 32-bit index
2026-10-29 22:35:39 +01:00
Dean Galvin 44ef6bd3d3 fix(libc): decide an in-place heap resize from the validated block record
keepsBlockSize and ownedBytes read the block's raw and size words from the guest-writable header. They now take the Block that validatedBlock returns, so the in-place decision uses the same allocation record that free trusts.
2026-10-30 09:25:25 +13:00
Dean Galvin 46dfa09c02 Merge main into PR #11468 2026-10-30 09:25:04 +13:00
Adrià cbc39db363 Merge pull request #12117 from plexerPK/codex/macos-write-watch-nonwrite-faults
fix(libc): forward non-write faults from watched macOS pages
2026-10-29 21:20:52 +01:00
Adrià 19225b3da5 Merge pull request #12509 from plexerPK/codex/macos-arena-watch-protection
fix(libc): synchronize macOS arena protection with write watch
2026-10-29 20:35:33 +01:00
Dean a6ec79e895 Merge pull request #12239 from MarcZX10/perf/libc-realloc-in-place
perf(libc): resize a default heap block in place when it already has the room
2026-10-30 08:20:33 +13:00
Dean e73bc4c682 Merge pull request #12469 from BunnyFl/fix/libc-setvbuf-host-write
fix(libc): keep setvbuf stream buffers in host memory
2026-10-30 03:00:40 +13:00
Dean 1b75a2de11 Merge pull request #10433 from Retr0G28/fix/freopen-directory
fix(libc): open a directory with freopen in a read mode on Windows
2026-10-30 02:59:56 +13:00
Adrià 9036e3c9e4 Merge pull request #12126 from morten-holm/fix/macos-host-stack-above-arena
fix(libkernel): move the macOS main stack out of the guest arena
2026-10-29 14:51:57 +01:00
Adrià e87f2d9394 Merge pull request #12162 from AlexFigas/feat/libc-aligned-array-operators
feat(libc): export the remaining aligned and array operator new and delete overloads
2026-10-29 14:39:44 +01:00
Adrià 157b02c4f1 Merge pull request #11852 from ionut27001/fix/wf-scanf-q-length-linux
fix(libc): end sscanf and vsscanf at a q length on Linux and macOS
2026-10-29 13:57:18 +01:00
Adrià fe6eeff66a Merge pull request #12449 from simnJS/fix/libc-stopfx-null-argument
fix(libc): reject a null cursor or input in _Stopfx and _WStopfx as an invalid argument
2026-10-29 13:50:06 +01:00
Adrià 93dae51da8 Merge pull request #11871 from JJenkx/windows/libc-strtok-r-end-state
fix(libc): leave strtok_r's and wcstok's state at the terminator and a static empty string as titles' libc.prx does
2026-10-29 13:50:00 +01:00
Adrià df53927b7b Merge pull request #10929 from Aspct3434/claude/modest-curie-705h76
fix(libc): read characters outside the BMP as surrogate pairs in fgetwc
2026-10-29 13:49:54 +01:00
Adrià aab650b4d3 Merge pull request #11893 from JJenkx/windows/libc-printf-ignored-lengths
fix(libc): ignore printf length modifiers that do not apply, as titles' libc.prx does
2026-10-29 13:49:01 +01:00
Adrià 7b57271358 Merge pull request #11504 from verusferro/feat/libc-xfilesystem-error
feat(libc): throw std::filesystem::filesystem_error from _Xfilesystem_error as the console's libc does
2026-10-29 13:47:45 +01:00
Adrià e3a7db45ed Merge pull request #11734 from verusferro/feat/libc-btowc-wctob-internals
feat(libc): export _Btowc and _Wctob, which give btowc and wctob results in the console's libc
2026-10-29 12:57:40 +01:00
Adrià 38a13a7512 Merge pull request #12103 from JJenkx/windows/libc-rename-dangling-link
fix(libc): rename a dangling Windows symbolic link
2026-10-29 12:57:29 +01:00
Dean 8efa579b15 Merge pull request #12361 from JJenkx/windows/libc-powf-underflow-flag
fix(libc): raise FE_UNDERFLOW from powf when the result underflows
2026-10-29 23:49:09 +13:00
Alexandre Figueiredo 7b6c2e82ec fix(libc): compute _LLog with the bundled libc.prx's Dinkumware code 2026-10-29 10:12:06 +00:00
Adrià f99d7fece3 Merge pull request #12054 from Aspct3434/claude/libc-environment-strings-stay-alive
fix(libc): keep guest environment strings alive across setenv and uns…
2026-10-29 11:08:38 +01:00
Adrià 9365465457 Merge pull request #12186 from Gonic0/fix/libc-getifaddrs-af-link-macos
fix(libc): list getifaddrs AF_LINK entries on macOS hosts
2026-10-29 07:44:43 +01:00
Henryisdjfunkyho 472500cb80 fix(libc): honor rounding modes in nearbyintf 2026-10-28 22:06:25 -07:00
Henryisdjfunkyho 3182d23266 fix(libc): raise inexact for nearbyintf 2026-10-28 22:06:24 -07:00
Dean 444407ddd6 Merge pull request #11278 from AlexFigas/fix/libc-signbit-sign-mask
fix(libc): return the sign mask from __signbit, __signbitf and __signbitl
2026-10-29 16:25:03 +13:00
JJenkx 39f432f357 fix(libc): allow zero-stride bsearch_s as bundled libc does 2026-10-28 22:17:34 -04:00
JJenkxandClaude Opus 5.5 a561f4e591 fix(libc): leave errno unchanged from scalbn and scalbnf on every host
The titles' scalbn and scalbnf never set errno, at any exponent. On
Windows the host scalbn already matches, but glibc's scalbn and scalbnf
set ERANGE on overflow and on underflow to zero (found by rooklz while
reviewing #12676), so on Linux they did. Both now keep errno across the
host call, as scalbln and scalblnf already do. CheckScalbnErrno checks
results read from the titles' libc.prx.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 21:47:44 -04:00
JJenkxandClaude Opus 5.5 cb09427a74 fix(libc): keep errno across ldexpf's host scalbn call
glibc's scalbnf sets ERANGE on overflow and on underflow to zero, so on
Linux the scalbn body still changed errno and CheckLdexpfErrno failed
5 of its 8 rows (reported by rooklz). ldexpf now saves and restores
errno around the call, as fmod does.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 21:43:26 -04:00
JJenkxandClaude Opus 5.5 03f5cfafe1 fix(libc): leave errno unchanged from ldexpf, as titles' libc.prx does
ldexpf called the host ldexp on a float, which computes in double and
sets ERANGE only when the double result leaves the double range, so
ldexpf(0x1.3d1c6p-95f, 1262) set ERANGE while ldexpf(1.0f, 200) did
not. The titles' ldexpf never sets errno, as their scalbnf does not.
ldexpf now computes like scalbnf: on 100,000 random arguments it
matches the libc.prx of PPSA07923 and PPSA05916 in every value and
errno, against 63,957 errno differences before.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 21:27:48 -04:00
Eduardo Ruiz c7b70f44b0 feat(libc): implement std::_Throw(const std::bad_array_new_length&)
Follow the console libc.prx (PPSA02530) at 0xcb2d0: ignore the argument and throw the static bad_array_new_length object. Star Wars Racer (PPSA28416) imports it.
2026-10-29 01:03:00 +01:00
Eduardo Ruiz 9f9ddb4637 fix(libc): match _Locinfo console rejection 2026-10-29 01:02:12 +01:00
Eduardo Ruiz b524b25798 feat(libc): export std::__sce_v2::_Locinfo 2026-10-29 01:02:12 +01:00
Retr0 e7798c0e4b Merge remote-tracking branch 'origin/main' into fix/freopen-directory
# Conflicts:
#	docs/dev/debt/libc.md
2026-10-29 01:22:27 +02:00
Dean 711c4eca09 Merge pull request #11785 from ionut27001/fix/libc-hardware-concurrency
fix(libc): return the CPU count of the default thread mask from std::thread::hardware_concurrency
2026-10-29 12:16:46 +13:00
Dean 1d8bcebafe Merge pull request #12237 from JJenkx/windows/libc-lrint-indefinite
fix(libc): return the integer indefinite from lrint and llrint out of range
2026-10-29 12:11:19 +13:00
Dean 3e3fa79116 Merge pull request #12229 from Danigamer05/feat/libc-stdc-one-runs
feat(libc): add C23 leading and trailing one counts
2026-10-29 12:10:46 +13:00