Skip to content

J2C Modern Edition 0.6.1 (preview)

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 27 Oct 18:58

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, so make, j2c build, j2c run and j2c test
    compile only what changed. A second j2c run against 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 for over an array converts each element to the loop
    variable's type. for (long v : int[]) kept v an int, 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 --runtime and a dependency on the class path no longer
    prints JDT's internal Status ERROR: ... Could not retrieve declared methods lines, 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-VARIABLE names the safe
    rewrite: a generic interface that extends every type of the intersection.
    It suggested casting to one functional interface, which drops
    Serializable and changes behavior; the agent benchmark caught an agent
    following it. The benchmark's scoreboard is in docs/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 with sha256sum -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.