Commit Graph
35 Commits
Author SHA1 Message Date
Dean da53518e5f Merge pull request #10212 from noamroger/claude/project-thread-a44tqk
feat(libSceJson2): implement sce::Json::String at, find and rfind
2026-10-24 15:23:36 +13:00
ntamas94andClaude Opus 5.5 d44c823834 feat(libSceJson2): implement sce::Json::Array::operator=
Copy the source array into this and return this, as the console does
(measured on a PS4 Pro, firmware 10.71). Knowledge is Power: Decades
imports it; the inventory stub threw NotImplemented.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 20:53:04 +02:00
Claude 1aab236614 feat(libSceJson2): implement sce::Json::String at, find and rfind
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01GDe3GT5MyAARmdWTiGsiNU
2026-10-23 13:52:35 +00:00
Dean f94f4c63bb Merge pull request #9517 from xdCloudy/feat/ps5-json2-inventory-74
feat(libSceJson2): declare 74 PS5 pending exports
2026-10-23 16:44:03 +13:00
JJenkxandClaude Opus 5.5 e4d512bbbd feat(libSceJson2): implement sce::Json::Array::pop_front
Graven (PPSA09614) imports sce::Json::Array::pop_front()
(pPs3qZTZQvQ) from one call site of its executable, and no built
library exported it, so tools/import_audit.py lists it as absent and
the loader stops before the title starts.

pop_front removes the first element and destroys it, like clear does
for every element. On an empty array it throws std::out_of_range, as
front and back do here; the console's result there is unverified and
listed in the debt file.

guest_json pops both elements of a two-element copy, checks the
remaining element and the empty array, and expects the throw on a
third pop.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22 21:32:45 -04:00
xdCloudy be37cb907a feat(libSceJson2): declare 74 PS5 pending exports 2026-10-22 11:41:13 -07:00
Simone ebd1a14e30 Merge main into codex/json-numeric-locale
# Conflicts:
#	core/libs/prx/libSceJson2/Export.cpp
#	docs/dev/debt/libSceJson2.md
2026-10-22 10:02:59 +02:00
boykopovar b19f2227df fix(json): restore object iterator ownership and bounds 2026-10-21 21:47:56 +03:00
boykopovar ce03b9c68a fix(json): restore array iterator lifetime and end handling 2026-10-21 21:47:55 +03:00
boykopovar 0e1ddf3bdf fix(json): preserve value storage when swapping contents 2026-10-21 21:47:53 +03:00
boykopovar 843185a354 fix(json): restore integer token types and bit interpretation 2026-10-21 21:47:48 +03:00
boykopovar 03e47f84fb fix(json): restore incremental parser callback semantics 2026-10-21 21:47:38 +03:00
boykopovar 17a1c4d291 fix(json): restore bytewise string comparison 2026-10-21 21:47:37 +03:00
boykopovar 47f6af24a4 fix(json): restore the parser error code 2026-10-21 21:47:36 +03:00
boykopovar a1818c1ed0 fix(json): preserve system object key ordering 2026-10-21 21:47:28 +03:00
boykopovar cf0544a93b docs(json): narrow the remaining initialization debt 2026-10-21 21:47:13 +03:00
boykopovar 3812ecbc08 fix(json): recover scalar boolean conversion semantics 2026-10-21 21:47:10 +03:00
boykopovar fc3db15402 fix(json): preserve existing values on duplicate insertion 2026-10-21 21:45:10 +03:00
boykopovar 6d2aebd469 fix(json): restore the default special float format 2026-10-21 21:45:09 +03:00
boykopovar 9f39eb44da fix(json): correct the object erase return contract
the system export leaves the return register unspecified on missing keys and tail-calls node removal on a match. declare void and check object contents instead of a fabricated removal count. guest_json passes on windows.
2026-10-21 21:44:52 +03:00
Dean Galvin 0b51b5b482 Merge main into pr-7215
# Conflicts:
#	core/libs/tests/GuestJson.cpp
2026-10-20 18:57:38 +13:00
simonbronk 2b991e8751 fix(json2): keep numeric conversion independent of host locale
Prevent decimal-comma LC_NUMERIC from emitting invalid JSON and silently truncating decimal-point input. Keep 17-digit output, signed underflow and overflow rejection without changing the process locale.

AI-assisted: yes (OpenAI Codex). Windows WinLibs GCC15.2 Release: original shared Json2 fails the final locale regression; fixed guest_json and guest_json_numeric_locale pass (2/2, no skips). Final conventions pass. Only relevant runtime/test targets built; full build/full suite and game/console/Linux/macOS behavior unverified. No performance or coverage increase claimed.
2026-10-20 00:07:10 +02:00
Adrià Franch 2a1ca278ee docs(libSceJson2): list the unverified String, swap and iterator members as debt 2026-10-19 18:02:53 +02:00
Swetabh Singh d6f89b5ca5 feat(libSceJson2): implement Value, Object, Array, and String methods 2026-10-19 18:02:40 +02:00
Owes Mehboob 33cd848ba9 docs(debt): drop implemented functions from unknown-signature lists 2026-10-19 14:34:26 +02:00
Dean 017f2151ca Merge pull request #6126 from fdfawef324/claude/json2-value-handlers
feat(libSceJson2): implement Value::setTypeMismatchHandler and store the element access failure and special float handlers
2026-10-19 14:21:53 +13:00
fdfawef324andCodex edf6717cd1 docs(libSceJson2): qualify handler callback assumptions
Remove title IDs from the touched technical-debt entries and state that the null third type-mismatch handler argument is unverified on console.

Co-Authored-By: Codex <[email protected]>
2026-10-18 19:01:19 -04:00
pushkarreddyy 813fdda24d fix(json2): return parse error on null text or zero size 2026-10-18 09:50:39 +05:30
fdfawef324andClaude Opus 5.5 7e4b1b7c3d feat(libSceJson2): implement Value::setTypeMismatchHandler and store the element access failure and special float handlers
Value::setTypeMismatchHandler, setElementAccessFailureHandler and
setSpecialFloatHandler were stubs that threw NotImplemented. PPSA07411
calls all three while it sets up its documents.

The title calls them as members of Value: on its root Value before
parsing into it, with the handler and its context, and treats an int
result of 0 as success. They now store the handler and context on that
Value and on the values it holds, and return 0. A Value keeps its
handlers when its content changes (set, clear, operator=,
Parser::parse), and Parser::parse gives the values it creates the
handlers of the Value it parses into, since the title reads the errors
its handlers record after accessing parsed members. A copy does not
carry them.

A typed getter on a non-null value of another type calls the type
mismatch handler with the requested type, the value, null and the
context, and returns its result when it has the requested type, else
the getter's default.

The element access failure and special float handlers are stored but
not called: the error code the console passes to the first and the
FunctionType it passes to the second are unknown. A failed element
access on a value carrying the first throws instead of reaching the
null-access callback. Serializing a non-finite real already threw; with
the second set it throws naming the unknown FunctionType. The technical
debt entry records what is inferred.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 01:39:31 +02:00
Masud 6b28b803fc feat(libSceMouse): implement sceMouseResetAbsolutePosition 2026-10-16 22:10:10 +02:00
Elvis BruhinandClaude Opus 5.5 f708a73969 feat(libSceSsl): record connection verify options, minimum version and ALPN
sceSslEnableVerifyOption, sceSslDisableVerifyOption, sceSslSetMinSslVersion,
sceSslSetAlpn and sceSslGetAlpnSelected kept throwing because their
signatures were unknown. SharpProspero, the source already used for the
other connection functions, declares them; the signatures follow it.

The options, minimum version and ALPN list are recorded on the connection
like the verification callback; nothing reads them until sceSslConnect has
a transport. sceSslGetAlpnSelected returns null because no handshake
completes. Unknown connections and terminated contexts throw.

The PPSA07411 functional debt entry moves to libSceJson2.md, now its first
linked library.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01SaSmTp7ZiSYcnUMTDVa7hZ
2026-10-14 17:28:07 +02:00
klosixgaming-archandClaude Opus 5.5 c976fd0572 feat(libSceJson2): implement Object::Pair, Array::iterator copies and notifyError
PPSA30601 imports these without a known signature. The mangled names
give them: Pair's constructor deep-copies its key and value into the
layout Object iteration already returns and its destructor frees both,
Array::iterator gets its default constructor, copy assignment and
post-increment (returning the copy through a result pointer, as begin
does), and MemAllocator::notifyError is the base class's empty virtual.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Dh1MhYBFyzxRceoAxrepZ6
2026-10-13 21:15:56 -05:00
xXPBSXxandClaude Sonnet 5.5 989504ed84 feat(libSceSaveData): answer sceSaveDataDirNameSearch2
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-12 22:59:26 +02:00
xXPBSXxandClaude Sonnet 5.5 4b6f463751 feat(libSceAmpr): answer sceAmprAmmGetUsageStatsData
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-12 21:14:14 +02:00
Adrià FranchandClaude 342a8c4590 docs(debt): move library entries to one file per library
Co-Authored-By: Claude <[email protected]>
2026-10-12 20:38:29 +02:00