Repository navigation
J2C Modern Edition 0.6.1 (preview)
Pre-release
Pre-release
Building
- Translating again into the same output directory keeps the build's
objects and libraries, and the files that come out the same keep their
modification time, somake,j2c build,j2c runandj2c test
compile only what changed. A secondj2c runagainst the bundled runtime
compiled all of its 538 files again; it now compiles none. Changing the
compiler or its flags (CXX,CFLAGS) compiles everything again, and
every object now depends on the headers it includes (the stubs, natives
and dependencies did not).
Translation
- An enhanced
forover an array converts each element to the loop
variable's type.for (long v : int[])keptvanint, so shifts and
overflow silently gave wrong results; unboxing (double v : Double[]) and
boxing (Integer v : int[]) did not compile. - An abstract class that inherits the same abstract method from its
superclass and from an interface can call it; the call was ambiguous in
C++. - Translating with
--runtimeand a dependency on the class path no longer
prints JDT's internalStatus ERROR: ... Could not retrieve declared methodslines, which looked like a failure. The output did not change;
one note on stderr now says that JDT logged an internal error.
Extension and agents
- The VS Code extension and the Claude Code plugin have an icon.
- The hint for
J2C-LAMBDA-INTERSECTION-TYPE-VARIABLEnames the safe
rewrite: a generic interface that extends every type of the intersection.
It suggested casting to one functional interface, which drops
Serializableand changes behavior; the agent benchmark caught an agent
following it. The benchmark's scoreboard is indocs/AGENT_BENCHMARK.md.
Requirements
- Java 11 or newer to run the CLI and the VS Code extension.
- A C++20 compiler for generated Makefiles and C++ output.
- VS Code 1.85 or newer for the extension.
Assets
j2c-cli-0.6.1.jar: standalone CLI (java -jar j2c-cli-0.6.1.jar --help).j2c-0.6.1.vsix: VS Code extension with the same CLI bundled
(code --install-extension j2c-0.6.1.vsix).juangp3-j2c-mcp-0.6.1.tgz: the npm package of the MCP server
(npx @juangp3/j2c-mcp), with the same CLI.SHA256SUMS: verify downloads withsha256sum -c SHA256SUMS.
Third-party license notices are in THIRD-PARTY-NOTICES.txt and
licenses/ in the source tree, inside the CLI JAR under
META-INF/j2c-licenses/, and at the root of the VSIX.