Skip to content

v0.1.4

Latest

Choose a tag to compare

@Project516 Project516 released this 10 Nov 22:42
09487fb

Faster thread hand-offs, less memory for large programs, and a smaller download for programs started from a jar.

  • A program started from a jar no longer fetches jdk/app.pack: boot.pack now covers what such a start reads, so a cold start from a jar fetches 2.42 MB instead of 3.65 MB gzipped (#84).
  • A thread woken by another now runs within the waker's scheduler turn. Park/unpark and wait/notify hand-offs are about twice as fast, a hand-off next to busy threads went from 82 s to 4 s, and a parked virtual thread takes 3.7 KB instead of 5.6 KB (#87).
  • The JIT emits 13% less JavaScript and keeps less per method: heap after compiling 30 files with javac went from about 167 MB to 146 MB (#88). AtomicInteger updates run about 3 times as fast (#88), and MD5 about 13 times (#90).
  • Closing System.out or System.err closes the host's stream, so a reader sees end of file (#82). Under Node, a listening socket honors its backlog as on Linux (#89).
  • The set of files in jdk/ is unchanged.

Performance

  • crypto: run MD5 implCompress0 as a native, as HotSpot intrinsifies it (#90)
  • jit: emit 13% less JS and keep less per method, cutting javac's heap by 13% (#88)
  • sched: run a woken thread within the waker's turn so thread hand-offs do not wait a scheduling round (#87)
  • build: record boot.pack from a start from a jar too, so it needs no app.pack (#84)

Fixes

  • net: hold a connect to a full accept queue until accept makes room, as Linux does (#89)
  • io: close the host stdout or stderr when Java closes descriptor 1 or 2 (#82)

Build and CI

  • jtreg: run each shard's tests slowest first so a long test does not start last (#86)
  • jtreg: run only the OpenJDK tests that cover java-web code no faster test covers (#79)

Documentation

  • state in AGENTS.md that java-web targets Java in general (#81)
  • compare java-web with CheerpJ 5.0 on Java 25 in the README (#80)

Other

  • jtreg: run seven more Collator tests with locale data (#85)
  • build: name the javac.pack span intersection with an intersect helper (#83)
  • add a release notes script and the release steps to AGENTS.md (#78)

Full list: v0.1.3...v0.1.4