Quelle des Java-Übersetzers in HACCA Code (iOS) HACCA Code enthält einen Java-Übersetzer, der im Gerät läuft (compiler.wasm). Er ist aus diesen Quellen gebaut: 1. teavm-javac, Commit 106ae8a18c6a3e634a4ff673e31b88c3fad79424 https://github.com/konsoletyper/teavm-javac/commit/106ae8a18c6a3e634a4ff673e31b88c3fad79424 Datei: teavm-javac-106ae8a18c.zip (git archive dieses Commits, unverändert) 2. OpenJDK jdk25u, Revision 6c48f4ed707bf0b15f9b6098de30db8aae6fa40f (Lizenz: GPL-2.0-only WITH Classpath-exception-2.0) https://github.com/openjdk/jdk25u/archive/6c48f4ed707bf0b15f9b6098de30db8aae6fa40f.zip Datei: openjdk-jdk25u-6c48f4ed707bf0b15f9b6098de30db8aae6fa40f.zip (so, wie der Bau es geholt hat) 3. teavm-bauen.ps1: der Bauweg (Temurin JDK 25, gradlew im Ordner javac von teavm-javac). Änderungen an javac (GPLv2 Paragraf 2a): Die OpenJDK-Quelldateien sind unverändert. Beim Übersetzen nach WebAssembly ändert teavm-javac fünf Klassen von javac im Bytecode: com.sun.tools.javac.model.AnnotationProxyMaker, com.sun.tools.javac.api.BasicJavacTask, com.sun.tools.javac.main.JavaCompiler, com.sun.tools.javac.file.BaseFileManager und com.sun.tools.javac.comp.Modules. Die Änderungen stehen in teavm-javac unter compiler/src/main/java/org/teavm/javac/Patches.java (im Archiv teavm-javac-106ae8a18c.zip). Zwei Bauten aus dieser Quelle können sich in compiler.wasm um einige hundert Byte unterscheiden (gemessen 18.10.2026: 274 Byte bei Commit 106ae8a18c); die Quelle ist dieselbe. Die mit HACCA Code ausgelieferten Dateien tragen die Prüfsummen in teavm-hacca.sha256. Bauen: teavm-javac entpacken, das OpenJDK-Archiv als javac/build/jdk-6c48f4ed707bf0b15f9b6098de30db8aae6fa40f.zip ablegen, teavm-bauen.ps1 -Quelle -ZielOrdner ausführen. Ergebnis: compiler.wasm, compiler.wasm-runtime.js, compile-classlib-teavm.bin, runtime-classlib-teavm.bin. Prüfsummen: SHA256SUMS.txt.