Files
melee/flake.lock
Robin AveryandClaude Opus 5.5 d532c30f7d dat: fix symbol ordering, format generated source in-place (#3593)
- No header code in base objects: jobj.h redeclared the static inline
  HSD_JObjRefThis without `inline`, which made clang emit it (and
  iref_INC, with its assert's file name) wherever the header is included.
  `samples report` lists anything a base object has outside .data.
- The base object's .data is laid out in the target's order, so objdiff's
  section match agrees with the per-symbol one. clang lays variables out
  where an initializer first points to them, not where they are defined,
  so each unit is compiled with -fdata-sections and linked (ld.lld -r)
  with target/<unit>.ld, which `samples slice` writes. Every unit's .data
  bytes now equal the target's.
- Formatting in place: codegen writes src/ and the format step formats it
  there, with a stamp in stamp/, so there is one set of generated sources.

Also:
- The build runs without the dev shell's environment, as objdiff runs it:
  NEWLIB_INCLUDE and AURORA_SRC are cached (from the environment when set;
  configuring without them fails), and the LLVM tools and cargo are found
  by absolute path. Configuring through a symlinked path fails: the build
  then names files by two paths, and ninja reran CMake and rebuilt
  everything on every build.
- User-side switches in the build's cache: MELEE_DAT_SAMPLES_ALL (archive
  globs) samples every typed object of those archives, and
  MELEE_DAT_SAMPLES_EXCLUDE (type globs) keeps types out of the samples.
- objdiff is pinned to v3.8.2, which no longer needs the Cargo.lock patch.

11237 of 11239 samples match, as before; the DOL still matches.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-09-30 21:42:21 +00:00

148 lines
3.9 KiB
JSON

{
"nodes": {
"aurora-src": {
"flake": false,
"locked": {
"lastModified": 1786866164,
"narHash": "sha256-jvnfdnRF5HtZ792lwUs0WYASwG/dHIkp9JaisLdntUc=",
"owner": "r-burns",
"repo": "aurora",
"rev": "e6a6f02ace4146e8a2f648d5c274dbb7dd89665c",
"type": "github"
},
"original": {
"owner": "r-burns",
"repo": "aurora",
"rev": "e6a6f02ace4146e8a2f648d5c274dbb7dd89665c",
"type": "github"
}
},
"compilers": {
"flake": false,
"locked": {
"lastModified": 1763496356,
"narHash": "sha256-M+pz/o+3vt0yIGrRJuVs5Ga9QHtVAicWtu1SugbLWH4=",
"type": "tarball",
"url": "https://files.decomp.dev/compilers_20251118.zip"
},
"original": {
"type": "tarball",
"url": "https://files.decomp.dev/compilers_20251118.zip"
}
},
"decomp-toolkit": {
"flake": false,
"locked": {
"lastModified": 1772429804,
"narHash": "sha256-MMD6iY6IpRPycRCoSnXKkcwpVnrDTKw0EDqgyPOAjcM=",
"owner": "encounter",
"repo": "decomp-toolkit",
"rev": "e4219e7644fb7b96d920d5bc3d1d950f5569dcaf",
"type": "github"
},
"original": {
"owner": "encounter",
"ref": "v1.8.3",
"repo": "decomp-toolkit",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1786599213,
"narHash": "sha256-yNJd40f11EzXBjSByCB7IPpeFFAdeoSKKM67dGkfFoU=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "0e251e24a4f24e036a084b6b4b2d2491af4167f4",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"objdiff": {
"flake": false,
"locked": {
"lastModified": 1790698507,
"narHash": "sha256-fM7fQv0TguxohDvc3wDM9NEmnI2BfYkS1kYlQl3MOTM=",
"owner": "encounter",
"repo": "objdiff",
"rev": "eed74b99c4e94dd154882259931201badc6fdbd1",
"type": "github"
},
"original": {
"owner": "encounter",
"ref": "v3.8.2",
"repo": "objdiff",
"type": "github"
}
},
"root": {
"inputs": {
"aurora-src": "aurora-src",
"compilers": "compilers",
"decomp-toolkit": "decomp-toolkit",
"nixpkgs": "nixpkgs",
"objdiff": "objdiff",
"sjiswrap": "sjiswrap",
"treefmt-nix": "treefmt-nix",
"wibo": "wibo"
}
},
"sjiswrap": {
"flake": false,
"locked": {
"narHash": "sha256-rtBcpKyACwu2vDsnrppfJntsx8rlhQemlisnB+w3kAQ=",
"type": "file",
"url": "https://github.com/encounter/sjiswrap/releases/download/v1.2.2/sjiswrap-windows-x86.exe"
},
"original": {
"type": "file",
"url": "https://github.com/encounter/sjiswrap/releases/download/v1.2.2/sjiswrap-windows-x86.exe"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1785945821,
"narHash": "sha256-NLSyTCW4K4ofhNBllt3omPasm6QpralXH1DBZOc91Dw=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "ae7910970dddc408fe6ab1c8e4b277bb21d72dc0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"wibo": {
"flake": false,
"locked": {
"lastModified": 1755273904,
"narHash": "sha256-PEqfvpS3p8Zooee7k59SN2UiSZWfITuB/VULIrfup4w=",
"owner": "decompals",
"repo": "wibo",
"rev": "6d0bff464ac998a9c68964e3bab13f9bd53ef329",
"type": "github"
},
"original": {
"owner": "decompals",
"ref": "0.7.0",
"repo": "wibo",
"type": "github"
}
}
},
"root": "root",
"version": 7
}