Project Status on February 28: It's the 3½-year point in the construction of [Jacobin] written in go. A six-month anniversary led to updating the project status and publishing code base numbers.
- What Just Done: Spent six months cleaning the code base by rewriting two significant subsystems - the interpreter and the logging/tracing framework. The original interpreter with a 203-case switch statement was converted to a dispatch table with function pointers. The initial logging system with granularity levels was replaced by a new tracing framework based on topics. Expanded the port of JDK library native methods to go and contributed a correction to the JVM specification document.
- What's Next: Redesigned key systems and cleaned code, ready to tackle the last two unimplemented bytecodes (finish INVOKEINTERFACE and begin INVOKEDYNAMIC), then fill in features for running third-party benchmark suites. Aim to run a full suite of benchmarks by the end of the year and start working on visibility and performance.
- By the Numbers: Rewrite and refactoring slightly shrank the codebase. Committed 721 times to the [GitHub repository]. Jacobin now has 44,862 lines (including code, comments, and blank lines), and the Jacotest suite has 23,421 lines, making the total 68,283 lines. Run 836 unit tests and 180 end-to-end tests in the Jacotest suite with every non-trivial commit, totaling 1,016 tests. The unit tests have 22,684 lines, and the total test code is 46,105 lines, which is 207% the size of the production code (compared to 223% six months ago).
- Show Support: Want to support Jacobin JVM? Give a ⭐ on [GitHub]. For more frequent updates, follow [platypusguy] on Bluesky.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。