Skip to content

v0.1.33

Choose a tag to compare

@github-actions github-actions released this 22 Oct 11:27
· 51 commits to main since this release
v0.1.33
fe45e80

Highlights

  • Non-BMP (supplementary-plane) names and literals now decode and match
    correctly: strings, findrefs, members and getclass no longer lose
    them to U+FFFD or fail to find them.
  • disasm accepts a full method descriptor to select one exact overload,
    e.g. 'com.example.Foo.parse(Ljava/lang/String;)V'; a bare method name
    still lists every overload.
  • Memory: one-shot query processes use immediate allocator purging and a
    byte-budgeted wave, cutting peak physical footprint by roughly 25-30%
    on multi-dex APKs. Single-class getclass on a 398 MB APK went from
    1.17 GB to about 0.87 GB peak.
  • Performance: cure 0.1.9 replaces repeated statement-subtree scans with
    per-statement name/index tables. A 5k-line class drops from 5.4s to
    0.22s in cure; full export of deepseek drops from 8.1s to about 3.0s
    and weixin from 53.9s to about 40s, with byte-identical output.

Notes

  • No breaking CLI changes. Default output changes only where previously
    corrupt non-BMP text is now correct.
  • Benchmarks in the README/docs were refreshed and corrected: the previous
    table was recorded on an earlier (pre-cure) version; full and --fast
    are now separate columns.
  • DDC_GET_TWO_TIER=1 is an experimental low-memory single-class path
    (small closures only; automatic fallback to full parse). Off by default.
  • Dependencies: cure 0.1.9, jdc-core 0.2.17.

Full Changelog: v0.1.32...v0.1.33

Packaging

  • npm tarball (works without a registry account):
    npm install -g https://github.com/ejfkdev/ddc/releases/download/v0.1.33/ejfkdev-ddc-0.1.33.tgz
  • Arch: download ddc-bin-0.1.33-1-aur.tar.gz, extract it, then run
    makepkg -si inside ddc-bin/.
  • WinGet local manifests: ejfkdev.ddc-0.1.33-winget.zip; enable
    winget settings --enable LocalManifestFiles once, then
    winget install --manifest <extracted-directory>.
  • npm wrapper is live on npmjs: npm install -g @ejfkdev/ddc; it is also
    available from GitHub Packages (GitHub token with read:packages) and as
    the tarball above.
  • WinGet package is live in microsoft/winget-pkgs (PR #437825, merged
    2026-10-30).
  • AUR submission is pending because AUR has temporarily closed new account
    registration (HTTP 503). The ddc-bin bundle above installs with
    makepkg -si in the meantime.