Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 14 additions & 5 deletions content/en/conformance.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,15 +74,24 @@ On top of the oracle, the interpreter holds a hard CI gate:
IO's position is a Go `int`, so on 32-bit targets it stops at 2**31-1;
- a **compile on every target** job (since v0.8.3) runs `go vet`, default and
`rbgo_core` builds, for every GOOS/GOARCH pair `go tool dist list` names
except plan9: aix, android, darwin, dragonfly, freebsd, illumos, ios, js,
linux (all 13 arches), netbsd, openbsd, solaris, wasip1, windows. It only
compiles. Where modernc.org/sqlite has no port (linux/mips*, linux/ppc64, AIX,
(plan9 since v0.8.5): aix, android, darwin, dragonfly, freebsd, illumos, ios,
js, linux (all 13 arches), netbsd, openbsd, plan9 (386, amd64, arm), solaris,
wasip1, windows. It only compiles. Where modernc.org/sqlite has no port (linux/mips*, linux/ppc64, AIX,
Solaris, illumos, DragonFly, most NetBSD and OpenBSD arches), the store gems
(SQLite3, Sequel, ActiveRecord's adapter, Bolt, Bleve, Etcd, Confd) load but
raise `NotImplementedError` on use; Errno names and `Process::RLIMIT_*`
constants a system lacks follow MRI (a `NOERROR` constant, or no constant).
plan9 does not compile: its `syscall` package has no errno numbers and no
`Kill`, `Flock`, `Getrlimit` or `Stat_t`;
plan9 (since v0.8.5) compiles and vets but **nothing runs there in CI**, as no
lane has a Plan 9 kernel. Its `syscall` package has no errno numbers and no
`Kill`, `Flock`, `Getrlimit`, `Umask` or `Stat_t`, so: `Errno::Exxx::Errno`
carries the Linux number and a failed call's error string is mapped to a class
by the Go standard library's rules (an unrecognised string raises a plain
`SystemCallError`); `Process.kill` writes a note to `/proc/<pid>/note`;
`Process.getrlimit` and the other POSIX process calls, and `File#flock`, raise
`NotImplementedError`; `File::Stat` is built from the Plan 9 `Dir`; and the
NATS, Kafka and Parquet gems (whose drivers do not build there) load but raise
`NotImplementedError` on use. The string mapping is pure Go and unit-tested on
every platform;
- a **`wasip1/wasm`** lane builds the interpreter and runs it under wazero;
- with **every feature differential-tested against MRI 4.0.5**.

Expand Down
Loading