Repository navigation
Conversation
make CC=dcc (or dcc-volamos), with the 68020 binary standing in for the 040 one, since DICE generates no 68040 or FPU code. libpng is left out: dcpp does not rescan the result of ##, which its chunk tables need, so png-encode and png-decode fail their setup. The bench registrations lose their trailing commas, FreeType's error codes become an enum under _DCC, and the version strings reach main.c through a generated header, since dcc drops the quoting of a -D. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 1e24324. Configure here.
| DEFINE_FLAG = -D | ||
| # dcpp looks up quoted includes on the include path only, not beside | ||
| # the including file. | ||
| EXTRA_INCLUDES = compat third_party/freetype third_party/wipeout $(BUILD) |
There was a problem hiding this comment.
Wipeout kernel includes wrong header
Medium Severity
dcpp only searches the -I path for quoted includes, and that path lists src before third_party/wipeout. kernel.c's #include "bench.h" therefore picks up src/bench.h instead of Wipeout's header, so the intended layout assertions never run and bench_consume is only implicitly declared.
Reviewed by Cursor Bugbot for commit 1e24324. Configure here.


Builds Benchwork with DICE-nx 3.20.0:
make CC=dcc, orCC=dcc-volamosto run it under volamos. All 14 benchmarks it builds give gcc's checksums. png-encode and png-decode are left out until dcpp can preprocess libpng.Results
Fastest iteration in ms under
volamos --clock-mhz 25 --cpu 68040 --fpu, percentages against gcc 6.5.0b. The fastest cell of each row is in bold.The 14-row geomean leaves out the two PNG rows, so DICE can be compared. DICE generates no 68040 or FPU code (its
-881is documented as unfinished), so its column is the 68020 soft-float build; its float math goes to the ROM libraries, which volamos runs at zero cycles, which flatters it on wipeout-tris. Its C library's memmove is the fastest of the four.Changes
compiler.mk: a DICE-nx branch:-3.2 -//, the small data model except-mDfor the Wipeout kernel (no auto-open library exists for the large model), libpng left out, and the version strings through a generatedbench-defines.h, since dcc drops the quoting of a-Dvalue when it passes it to dcpp.src/compiler.h: a_DCCsection. DICE'slong longis 32 bits wide, soHAVE_LONG_LONGstays undefined;inlineandrestrictare defined away. The sections are indented.benches/png.c: withBENCH_NO_LIBPNGthe two benchmarks keep their rows and fail their setup.benches/*.c: the bench registrations lose their trailing commas, which dc1 rejects.third_party/freetype/ftgrays.c: under_DCC, theSmooth_Err_*codes are an enum, soFT_ERR_CAT's pasted names need no rescan.Makefile: the optional libpng sources, the generated header rule, and reported flags with stray spaces stripped.The LHa K&R cleanup this needed is already on main (80f469d). Running DICE-nx under volamos needs sidick/volamos#117.
Upstream issues
##(blocks libpng)long longis silently 32 bits wide#ifas signed 32-bit, which libpng also trips on🤖 Generated with Claude Code
Note
Low Risk
Additive toolchain and ifdef-guarded build paths; default GCC/vbcc/SAS/C behavior is unchanged aside from harmless trailing-comma removal in bench tables.
Overview
Adds DICE-nx as a build target (
make CC=dcc), alongside existing GCC/vbcc/SAS/C paths.Build (
compiler.mk,Makefile): Newdccbranch sets AmigaOS 3.2 flags, small data model (large model only for Wipeout via-mD), extra include paths, and omits libpng sources whenNO_LIBPNGis set. Version/CFLAGS strings that cannot be passed throughdcc’s-Dquoting are emitted into generatedbench-defines.h;main.cincludes it whenBENCH_DEFINES_His defined.REPORTED_CFLAGSis stripped of extra whitespace.Compiler portability (
src/compiler.h):_DCCdefines C89-stylebool, disablesinline/restrict, and leavesHAVE_LONG_LONGunset (32-bitlong long).Benchmarks:
png-encode/png-decodestay in the table but use stub setup/run paths underBENCH_NO_LIBPNGso they fail setup instead of linking libpng. Allstruct benchregistrations drop trailing commas (required by DICE’sdc1).Vendored FreeType (
ftgrays.c): Under_DCC,Smooth_Err_*are real enum constants so error macros do not rely on##rescan indcpp.Reviewed by Cursor Bugbot for commit 1e24324. Bugbot is set up for automated code reviews on this repo. Configure here.