Platforms and logical paths

August 30, 2026 ยท View on GitHub

Older compilers can treat the exact spelling of source and include paths as build inputs. ReproBit therefore reproduces complete compiler-visible paths, not just paths of the same length. Each run creates a private work area and gives its source, output, and toolchain trees stable DOS drive letters. Production builds and intervention checks receive the same recorded command line, working directory, environment, include order, response files, object paths, and PDB paths.

Source bytes across hosts

The source manifest hashes checked-out bytes, including line endings. Projects that verify on more than one operating system should declare text normalization in .gitattributes and must not depend on a runner's core.autocrlf setting. If a checkout changes admitted bytes, ReproBit treats it as a different source tree.

macOS and Linux

Each run uses one private Wine prefix and wineserver for all scheduling lanes. This gives every compiler process one Windows process namespace and the same fixed compiler-visible TEMP and TMP path. Each producer still runs in its own bounded host process group, so a timeout cannot leave that producer's descendants running. The project locks the host launchers used for the compiler and resource compiler alongside the toolchain itself. The normal rbit setup flow remembers these launchers; explicit transport options in the command-line workflow are advanced one-run overrides.

Native Windows

Native builds use a private logon-session drive and Windows Job Objects rather than a controller- wide drive mapping. rbit doctor --execute-probe checks the real descendant path before a build is trusted. The native Windows guide is the canonical description of setup, isolation, toolchain acquisition, and CI evidence.

What public CI proves

Public CI runs portable tests and package checks on Ubuntu, macOS, and Windows. Its dedicated windows-2022 job authenticates the pinned Archaic MSVC 4.2 inputs, exercises the native private- drive lifecycle, and compiles through the real CL -> C1XX -> C2 chain. Compiler bytes are never committed, cached, or uploaded.

That gate proves the 4.2 host and compiler path, not a project's full byte-identity verdict from scratch. Project certification still needs the project's locked toolchain, reference data, and a fixture that builds from scratch on its intended host. ReproBit also recognizes MSVC 5.0 profiles, but they do not yet have equivalent end-to-end public evidence.