Repository navigation
Claude/upgrade ape c library mm z gd - #735
Merged
Merged
Conversation
`system-info' completes with every module satisfied. Three messages remain on its output and only one is this tree's. `disk_free_space(): Function not implemented' is strerror(ENOSYS) out of libap's `stat/statvfs.c', and it is a PROTOCOL limit rather than a missing implementation: 9P2000 has no `Tstatfs'. The message set is Tversion, Tauth, Tattach, Tflush, Twalk, Topen, Tcreate, Tread, Twrite, Tclunk, Tremove, Tstat, Twstat, and `Tstat' returns a per-file Dir with no filesystem-level counts at all. Linux's v9fs gets one only from the 9P2000.L dialect, which Plan 9 servers do not speak; a 9front server will report its own free space on its console but that is per-server and needs write access to a srv file. Established from the protocol rather than from the stub's comment, which this tree's own rule says is a claim like any other. php's config.h answers HAVE_STATVFS yes while libap stubs it, which is the hand-answered-capability shape a third time after clisp's mprotect and xz's fsync -- and it is kept, with the reason written down. With it yes, filestat.c:224 checks the return, warns with strerror and gives false. With it NO, php compiles neither arm, keeps `bytesfree = 0' and returns SUCCESS: a silent 0.0. Saying no to a capability we do not have is the quiet version of the same failure here, and false is what PHP documents for a platform that cannot answer. The shape bites when a caller ignores the return value; this one checks. The other two are not ours. The `strpos()/substr(): Passing null' deprecations are Phoronix's own code not guarding a phodevi probe that read a Linux /proc path. `process exceeds 100 file descriptors' occurs nowhere under sys/src -- it is the kernel growing an fd table, a notice rather than a limit. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WGAwvvTwDg2yknFkmZ3qzs
The previous version was written as commentary on the text it
replaced -- "the original said X", "corrected" -- which is of no use
to someone who wants to set the stack up, and half of it had gone
stale: it listed dom, simplexml, zip and sqlite3 as absent, and they
have been built since.
Rewritten forward: how to get it, what is in the build, how to test
the database layer, how to serve it, and what the platform does not
give you. The measured/unmeasured marking is kept, as a status
column rather than as argument.
Three things found while re-establishing the facts:
* `unix-dotfile' and `unix-none' are registered UNCONDITIONALLY.
The previous text said both were behind
SQLITE_ENABLE_LOCKING_STYLE, which is 0 here, and that is wrong --
only unix-flock, unix-posix and the Apple VFSes are gated. So
dotfile locking can be tried with `sqlite3 -vfs unix-dotfile' on
the libsqlite.a already built, with no rebuild and no flag. It
uses mkdir/rmdir as its atomic primitive, which is an ordinary 9P
operation and involves no fcntl. For PHP, which cannot select a
VFS from a script, the knob is -DSQLITE_DEFAULT_UNIX_VFS in
lib/sqlite/mkfile -- not taken, since it changes locking for every
consumer and dotfile locking leaves a stale lock directory after a
crash.
* `php -S' is available: sapi/cli/php_cli_server.c and
php_http_parser.c are both in OFILES. It is single-process unless
PHP_CLI_SERVER_WORKERS is set, and needs only socket/bind/listen/
accept/select. It is also its own SAPI, so header() WORKS under
it -- the opposite of the plain CLI SAPI, where it is a no-op.
That makes it the first thing to try rather than rc-httpd.
* disk_free_space() is recorded as a platform limit with the reason
(9P2000 has no Tstatfs), since an application that checks free
space before writing will report a full disk.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WGAwvvTwDg2yknFkmZ3qzs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.