{
  "_class" : "hudson.matrix.MatrixRun",
  "actions" : [
    {
      "_class" : "hudson.matrix.MatrixChildParametersAction",
      "parameters" : [
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "REPO_URL",
          "value" : "https://github.com/dra27/ocaml.git"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "BRANCH",
          "value" : "backport-trunk"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.model.Cause$UpstreamCause",
          "shortDescription" : "Started by upstream project \"precheck\" build number 1,068",
          "upstreamBuild" : 1068,
          "upstreamProject" : "precheck",
          "upstreamUrl" : "job/precheck/"
        }
      ]
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/winpthreadsectomy" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1066,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "2b007ae96ab143cca75ee2a15e2f4b6bf14804de",
            "branch" : [
              {
                "SHA1" : "2b007ae96ab143cca75ee2a15e2f4b6bf14804de",
                "name" : "refs/remotes/origin/winpthreadsectomy"
              }
            ]
          },
          "revision" : {
            "SHA1" : "2b007ae96ab143cca75ee2a15e2f4b6bf14804de",
            "branch" : [
              {
                "SHA1" : "2b007ae96ab143cca75ee2a15e2f4b6bf14804de",
                "name" : "refs/remotes/origin/winpthreadsectomy"
              }
            ]
          }
        },
        "refs/remotes/origin/backport-trunk" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1068,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "c12fe94097ad7c87c16618fef40592d37ef6717f",
            "branch" : [
              {
                "SHA1" : "c12fe94097ad7c87c16618fef40592d37ef6717f",
                "name" : "refs/remotes/origin/backport-trunk"
              }
            ]
          },
          "revision" : {
            "SHA1" : "c12fe94097ad7c87c16618fef40592d37ef6717f",
            "branch" : [
              {
                "SHA1" : "c12fe94097ad7c87c16618fef40592d37ef6717f",
                "name" : "refs/remotes/origin/backport-trunk"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "c12fe94097ad7c87c16618fef40592d37ef6717f",
        "branch" : [
          {
            "SHA1" : "c12fe94097ad7c87c16618fef40592d37ef6717f",
            "name" : "refs/remotes/origin/backport-trunk"
          }
        ]
      },
      "remoteUrls" : [
        "${REPO_URL}"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "origin/backport-trunk-#1068",
  "duration" : 5233687,
  "estimatedDuration" : 7357020,
  "executor" : None,
  "fullDisplayName" : "precheck » false,ocaml-riscv origin/backport-trunk-#1068",
  "id" : "1068",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 1068,
  "queueId" : 24684,
  "result" : "ABORTED",
  "timestamp" : 1757589250826,
  "url" : "https://ci.inria.fr/ocaml/view/all/job/precheck/flambda=false,label=ocaml-riscv/1068/",
  "builtOn" : "ocaml-riscv",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "driver/maindriver.ml",
          "utils/clflags.mli",
          "driver/optmaindriver.ml",
          "driver/main_args.ml",
          "Makefile",
          "utils/clflags.ml",
          "driver/compenv.ml",
          "bytecomp/bytelink.ml",
          "driver/main_args.mli",
          "driver/compenv.mli",
          "asmcomp/asmlink.ml"
        ],
        "commitId" : "002dee230c5b8cf1ff25877bcbe3e185c1fb8cf4",
        "timestamp" : 1618082223000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Add -set-runtime-default\u000a\u000aAllows the default location used by the bytecode runtime for the\u000aStandard Library to be overridden when creating bytecode executables.\u000a",
        "date" : "2021-04-10 20:17:03 +0100",
        "id" : "002dee230c5b8cf1ff25877bcbe3e185c1fb8cf4",
        "msg" : "Add -set-runtime-default",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "asmcomp/asmlink.ml"
          },
          {
            "editType" : "edit",
            "file" : "driver/compenv.ml"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.ml"
          },
          {
            "editType" : "edit",
            "file" : "driver/optmaindriver.ml"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.ml"
          },
          {
            "editType" : "edit",
            "file" : "driver/maindriver.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.mli"
          },
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.mli"
          },
          {
            "editType" : "edit",
            "file" : "driver/compenv.mli"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "boot/ocamllex",
          "boot/ocamlc"
        ],
        "commitId" : "d31a711ec2608e34a9d54f660927f0b27ce119e3",
        "timestamp" : 1740525427000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Bootstrap\u000a",
        "date" : "2025-02-25 23:17:07 +0000",
        "id" : "d31a711ec2608e34a9d54f660927f0b27ce119e3",
        "msg" : "Bootstrap",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "boot/ocamllex"
          },
          {
            "editType" : "edit",
            "file" : "boot/ocamlc"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "utils/config.generated.ml.in",
          "testsuite/tools/testLinkModes.ml",
          "Makefile.cross",
          "Makefile.common",
          "utils/config.common.ml.in",
          "testsuite/tools/testDynlink.ml",
          "utils/config.fixed.ml"
        ],
        "commitId" : "a0af12b5ddc9126824a92e1c7d2528347c067a5c",
        "timestamp" : 1628698584000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Use %standard_library_default in Config\u000a\u000aConfig.standard_library_default is now implemented using the\u000a%standard_library_default primitive. This allows a convenient test which\u000acan be added for `-set-runtime-default`.\u000a\u000aThe change also makes the host-like nature of of\u000aConfig.standard_library_default clearer, as the build of the\u000across-compiler must now (correctly) specify the location of its (target)\u000aStandard Library.\u000a",
        "date" : "2021-08-11 17:16:24 +0100",
        "id" : "a0af12b5ddc9126824a92e1c7d2528347c067a5c",
        "msg" : "Use %standard_library_default in Config",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testLinkModes.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.fixed.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testDynlink.ml"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.common"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.cross"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.common.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.generated.ml.in"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "boot/ocamlc"
        ],
        "commitId" : "a55a16b3cb4a285250832293f2735ddf71469cc0",
        "timestamp" : 1747252702000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Bootstrap\u000a",
        "date" : "2025-05-14 20:58:22 +0100",
        "id" : "a55a16b3cb4a285250832293f2735ddf71469cc0",
        "msg" : "Bootstrap",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "boot/ocamlc"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "utils/config.mli",
          "configure.ac",
          "bytecomp/dll.ml",
          "tools/ocamlmklib.ml",
          "Makefile",
          "runtime/caml/startup.h",
          "ocamltest/ocamltest_config.mli",
          "ocamltest/ocaml_tests.ml",
          "runtime/caml/osdeps.h",
          "configure",
          "asmcomp/asmlink.ml",
          "Makefile.build_config.in",
          "ocamltest/ocamltest_config.ml.in",
          "runtime/unix.c",
          "runtime/startup_byt.c",
          "runtime/sys.c",
          "runtime/win32.c",
          "Makefile.cross",
          "runtime/dynlink.c",
          "Makefile.common",
          "utils/config.common.ml.in",
          "bytecomp/bytelink.ml",
          "runtime/caml/s.h.in"
        ],
        "commitId" : "9d596ed46de831b49325f35d09871acfbc5a486f",
        "timestamp" : 1618082223000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Allow libdir to be found relative to bindir\u000a\u000aWhen configured with --with-relative-libdir, the runtime uses the\u000adirectory of the executable to determine the location of the Standard\u000aLibrary. Thus, ocamlrun and the compilers look for ../lib/ocaml by\u000adefault.\u000a\u000aThis is implemented by changing caml_standard_library_default to be a\u000arelative path, and then computing the actual value at startup (for\u000abytecode) and when queried (for native).\u000a\u000aExecutables (and objects) produced by the compiler always have an\u000aabsolute value of caml_standard_library_default. ocamlc.opt and\u000aocamlopt.opt are built using -set-runtime-default to force\u000acaml_standard_library_default to be a relative value.\u000a",
        "date" : "2021-04-10 20:17:03 +0100",
        "id" : "9d596ed46de831b49325f35d09871acfbc5a486f",
        "msg" : "Allow libdir to be found relative to bindir",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "asmcomp/asmlink.ml"
          },
          {
            "editType" : "edit",
            "file" : "ocamltest/ocamltest_config.mli"
          },
          {
            "editType" : "edit",
            "file" : "runtime/sys.c"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.cross"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.mli"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.common"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/startup.h"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.common.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "ocamltest/ocamltest_config.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/s.h.in"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/unix.c"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/dynlink.c"
          },
          {
            "editType" : "edit",
            "file" : "tools/ocamlmklib.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/dll.ml"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.build_config.in"
          },
          {
            "editType" : "edit",
            "file" : "runtime/win32.c"
          },
          {
            "editType" : "edit",
            "file" : "ocamltest/ocaml_tests.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/osdeps.h"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/testRelocation.ml",
          "testsuite/tools/testToplevel.ml",
          "testsuite/tools/test_ld_conf.ml",
          "testsuite/in_prefix/Makefile.test",
          "testsuite/tools/testBytecodeBinaries.ml",
          "testsuite/in_prefix/README.md",
          "testsuite/tools/testLinkModes.ml",
          "testsuite/tools/harness.mli",
          ".depend",
          "testsuite/tools/testDynlink.ml",
          "testsuite/tools/cmdline.ml"
        ],
        "commitId" : "f404ca64a33a27552816823fd93cd5d276ccf3a4",
        "timestamp" : 1720898950000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Update the installation test for enable-relative\u000a",
        "date" : "2024-07-13 21:29:10 +0200",
        "id" : "f404ca64a33a27552816823fd93cd5d276ccf3a4",
        "msg" : "Update the installation test for enable-relative",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testRelocation.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/in_prefix/Makefile.test"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testDynlink.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testToplevel.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testLinkModes.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/cmdline.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/harness.mli"
          },
          {
            "editType" : "edit",
            "file" : ".depend"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/in_prefix/README.md"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_ld_conf.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testBytecodeBinaries.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".github/workflows/build.yml",
          "tools/ci/actions/runner.sh",
          ".github/workflows/build-msvc.yml",
          "appveyor.yml",
          "tools/ci/appveyor/appveyor_build.sh",
          "Makefile"
        ],
        "commitId" : "a6fed2de090849e29be8814bafc8887990744d5a",
        "timestamp" : 1727619261000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Test --with-relative-libdir in CI\u000a",
        "date" : "2024-09-29 15:14:21 +0100",
        "id" : "a6fed2de090849e29be8814bafc8887990744d5a",
        "msg" : "Test --with-relative-libdir in CI",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".github/workflows/build.yml"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : ".github/workflows/build-msvc.yml"
          },
          {
            "editType" : "edit",
            "file" : "tools/ci/actions/runner.sh"
          },
          {
            "editType" : "edit",
            "file" : "tools/ci/appveyor/appveyor_build.sh"
          },
          {
            "editType" : "edit",
            "file" : "appveyor.yml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "appveyor.yml"
        ],
        "commitId" : "861ac901c558a2275bbac32d05df7ae2267588be",
        "timestamp" : 1727619261000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "NFPR: fully test --with-relative-libdir in AppVeyor\u000a",
        "date" : "2024-09-29 15:14:21 +0100",
        "id" : "861ac901c558a2275bbac32d05df7ae2267588be",
        "msg" : "NFPR: fully test --with-relative-libdir in AppVeyor",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "appveyor.yml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tools/ci/inria/main"
        ],
        "commitId" : "f14e954df147acb20c9dc808ca560c3855fc82f4",
        "timestamp" : 1742488338000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "NFPR: fully test --with-relative-libdir in precheck\u000a",
        "date" : "2025-03-20 16:32:18 +0000",
        "id" : "f14e954df147acb20c9dc808ca560c3855fc82f4",
        "msg" : "NFPR: fully test --with-relative-libdir in precheck",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "tools/ci/inria/main"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "utils/config.mli",
          "configure.ac",
          "configure",
          "utils/config.fixed.ml",
          "utils/config.generated.ml.in"
        ],
        "commitId" : "a2a19f3ac454be7b4253975c5a17c8f35859f5f3",
        "timestamp" : 1743926925000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Add Config.as_is_cc\u000a\u000aIndication as to whether ocamlopt assembles files via the C compiler or\u000aby calling the assembler directly.\u000a",
        "date" : "2025-04-06 09:08:45 +0100",
        "id" : "a2a19f3ac454be7b4253975c5a17c8f35859f5f3",
        "msg" : "Add Config.as_is_cc",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.mli"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.fixed.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.generated.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "configure.ac",
          "configure"
        ],
        "commitId" : "f4c0f7f2efd1cf23850b0ad98ea6835066e346f4",
        "timestamp" : 1740846245000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Use as directly on Cygwin, as on Linux\u000a",
        "date" : "2025-03-01 16:24:05 +0000",
        "id" : "f4c0f7f2efd1cf23850b0ad98ea6835066e346f4",
        "msg" : "Use as directly on Cygwin, as on Linux",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "utils/ccomp.ml",
          "configure.ac",
          "configure"
        ],
        "commitId" : "48985ab7d5463a8ba28e4b3c73811d7b917c0bb8",
        "timestamp" : 1740846286000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Detect but ignore -fdebug-prefix-map on mingw-w64\u000a\u000amingw-w64 is based on GCC, so supports -fdebug-prefix-map, but the test\u000afor it is skipped in configure. The test is no longer skipped (which\u000ameans that Config.c_has_debug_prefix_map returns true) but the flag is\u000astill explicitly not used by the compilers (as before).\u000a",
        "date" : "2025-03-01 16:24:46 +0000",
        "id" : "48985ab7d5463a8ba28e4b3c73811d7b917c0bb8",
        "msg" : "Detect but ignore -fdebug-prefix-map on mingw-w64",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "utils/ccomp.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/testRelocation.ml",
          "configure.ac",
          "testsuite/tests/native-debugger/linux-lldb-amd64.ml",
          "Makefile.common",
          "testsuite/tests/tool-debugger/find-artifacts/debuggee.ml",
          "configure",
          "testsuite/tests/native-debugger/linux-lldb-arm64.ml"
        ],
        "commitId" : "227f7035b76a2f3036362544d932d35fce1316c0",
        "timestamp" : 1739368644000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Increase reproducibility of relative artefacts\u000a",
        "date" : "2025-02-12 13:57:24 +0000",
        "id" : "227f7035b76a2f3036362544d932d35fce1316c0",
        "msg" : "Increase reproducibility of relative artefacts",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.common"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/tool-debugger/find-artifacts/debuggee.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/native-debugger/linux-lldb-amd64.ml"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testRelocation.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/native-debugger/linux-lldb-arm64.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "bytecomp/bytelink.ml"
        ],
        "commitId" : "95412bce28ff0c2ff3cde06f29ac6b6eccde4577",
        "timestamp" : 1632480136000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Simplify the computation for the runtime name\u000a",
        "date" : "2021-09-24 11:42:16 +0100",
        "id" : "95412bce28ff0c2ff3cde06f29ac6b6eccde4577",
        "msg" : "Simplify the computation for the runtime name",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "man/Makefile",
          "Makefile"
        ],
        "commitId" : "5d427fbf5e92951a63294cf7973217fa38365a8e",
        "timestamp" : 1749554659000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Permit single-quotes in prefix\u000a\u000aMinor tweaks needed to allow configuring, say, for \"$PWD/install'd here\"\u000a",
        "date" : "2025-06-10 12:24:19 +0100",
        "id" : "5d427fbf5e92951a63294cf7973217fa38365a8e",
        "msg" : "Permit single-quotes in prefix",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "man/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          ".gitignore",
          "Makefile",
          "testsuite/tools/environment.ml",
          "bytecomp/byterntm.mll",
          "tools/ocamlsize",
          ".depend",
          "tools/objinfo.ml",
          "bytecomp/byterntm.mli"
        ],
        "commitId" : "0ca51c439b8dff3d396d2411dac6ee775179f8d7",
        "timestamp" : 1743328006000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "ocamlobjinfo: display the runtime used by an image\u000a\u000aocamlobjinfo now parses both RNTM and shebang lines in order to display\u000athe runtime being used by a bytecode executable.\u000a",
        "date" : "2025-03-30 10:46:46 +0100",
        "id" : "0ca51c439b8dff3d396d2411dac6ee775179f8d7",
        "msg" : "ocamlobjinfo: display the runtime used by an image",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tools/environment.ml"
          },
          {
            "editType" : "edit",
            "file" : "tools/ocamlsize"
          },
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "add",
            "file" : "bytecomp/byterntm.mli"
          },
          {
            "editType" : "edit",
            "file" : ".depend"
          },
          {
            "editType" : "edit",
            "file" : "tools/objinfo.ml"
          },
          {
            "editType" : "add",
            "file" : "bytecomp/byterntm.mll"
          },
          {
            "editType" : "edit",
            "file" : ".gitignore"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "utils/config.mli",
          "utils/clflags.mli",
          "driver/main_args.ml",
          "utils/clflags.ml",
          "bytecomp/bytelink.ml",
          "utils/config.common.ml.in",
          ".depend",
          "driver/main_args.mli"
        ],
        "commitId" : "24c1f4b4eb7c80ae10a01c86afe15a66c4a6fed5",
        "timestamp" : 1743328006000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Add -launch-method to ocamlc\u000a\u000aWhen linking a normal bytecode executable, allows an explicit selection\u000aof either the executable or shebang header, regardless of the value in\u000aruntime-launch-info.\u000a",
        "date" : "2025-03-30 10:46:46 +0100",
        "id" : "24c1f4b4eb7c80ae10a01c86afe15a66c4a6fed5",
        "msg" : "Add -launch-method to ocamlc",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.common.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.mli"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.mli"
          },
          {
            "editType" : "edit",
            "file" : ".depend"
          },
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.ml"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.mli"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/testLinkModes.ml"
        ],
        "commitId" : "ec0e3283e128051b97c6f677178e700f9b19199e",
        "timestamp" : 1743328126000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Test both bytecode header methods\u000a",
        "date" : "2025-03-30 10:48:46 +0100",
        "id" : "ec0e3283e128051b97c6f677178e700f9b19199e",
        "msg" : "Test both bytecode header methods",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testLinkModes.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "utils/config.mli",
          "utils/clflags.mli",
          "configure.ac",
          "driver/main_args.ml",
          "Makefile",
          "utils/config.generated.ml.in",
          "bytecomp/bytelink.mli",
          "utils/clflags.ml",
          "configure",
          "utils/config.fixed.ml",
          "Makefile.build_config.in",
          "stdlib/Makefile",
          "testsuite/tools/testRelocation.ml",
          "testsuite/tools/test_in_prefix.ml",
          "Makefile.common",
          ".depend",
          "bytecomp/bytelink.ml",
          "utils/config.common.ml.in"
        ],
        "commitId" : "7727a5710ad079f1c8c7f8a8eb380068a2e8c988",
        "timestamp" : 1749158033000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Remove metadata from runtime-launch-info\u000a\u000a-launch-method encapsulates the first line of runtime-launch-info. The\u000aargument to -launch-method is extended slightly to encompass the second\u000aline, thus `-launch-method 'sh /usr/local/bin'` represents the default\u000aruntime-launch-info file on Unix. Additional fields are added to Config\u000aso that the installed compiler simply uses default values, rather than\u000areading the two lines from runtime-launch-info. The build of the\u000acompiler itself explicitly uses `-launch-method`, which leaves only the\u000aexecutable launcher compiled from stdlib/header.c in\u000aruntime-launch-info.\u000a",
        "date" : "2025-06-05 22:13:53 +0100",
        "id" : "7727a5710ad079f1c8c7f8a8eb380068a2e8c988",
        "msg" : "Remove metadata from runtime-launch-info",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".depend"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.common.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.mli"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.mli"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.mli"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testRelocation.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.ml"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.ml"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.generated.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.common"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.fixed.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.build_config.in"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/header.c"
        ],
        "commitId" : "b8fbccd3d5c5c3f1328e8e6a49451a099d810a23",
        "timestamp" : 1754601955000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Factor out the exec code in stdlib/header.c\u000a",
        "date" : "2025-08-07 22:25:55 +0100",
        "id" : "b8fbccd3d5c5c3f1328e8e6a49451a099d810a23",
        "msg" : "Factor out the exec code in stdlib/header.c",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "utils/config.mli",
          "configure.ac",
          "utils/clflags.mli",
          "driver/main_args.ml",
          "testsuite/tools/environment.ml",
          "utils/clflags.ml",
          "bytecomp/byterntm.mll",
          "configure",
          "tools/ocamlsize",
          "driver/main_args.mli",
          "tools/objinfo.ml",
          "testsuite/tools/harness.ml",
          "bytecomp/byterntm.mli",
          "testsuite/tools/testBytecodeBinaries.ml",
          "Makefile.common",
          "utils/config.common.ml.in",
          "bytecomp/bytelink.ml",
          "testsuite/tools/harness.mli",
          ".depend",
          "runtime/caml/s.h.in",
          "stdlib/header.c"
        ],
        "commitId" : "23670b00094f07d6265c9ae45a7d1a5a9acc1628",
        "timestamp" : 1731515328000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Add -runtime-search to ocamlc\u000a\u000a-runtime-search {disable|enable|always} adds new features to the\u000alauncher used for bytecode executables which do not embed their own\u000aruntime. By default, the header continues to behave as before - the\u000alauncher will attempt to start the runtime using the absolute path which\u000athe compiler was configured with.\u000a\u000aThe new search mode will then search for the runtime first in the\u000adirectory containing the running executable and then in PATH.\u000a",
        "date" : "2024-11-13 16:28:48 +0000",
        "id" : "23670b00094f07d6265c9ae45a7d1a5a9acc1628",
        "msg" : "Add -runtime-search to ocamlc",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "tools/objinfo.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/s.h.in"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/byterntm.mli"
          },
          {
            "editType" : "edit",
            "file" : "tools/ocamlsize"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.common.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/environment.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.mli"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/byterntm.mll"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testBytecodeBinaries.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.common"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.mli"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.mli"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/harness.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/harness.mli"
          },
          {
            "editType" : "edit",
            "file" : ".depend"
          },
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/in_prefix/Makefile.test",
          ".gitignore",
          "testsuite/tools/dummy.c",
          "Makefile",
          "testsuite/tools/environment.ml",
          "testsuite/tools/test_in_prefix.ml",
          "testsuite/tools/testLinkModes.ml",
          "testsuite/tools/harness.mli",
          "testsuite/tools/harness.ml",
          "testsuite/tools/environment.mli"
        ],
        "commitId" : "9345069964e8fb55c681a12dbb5b90c0161200a6",
        "timestamp" : 1749218339000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Test all three bytecode search methods\u000a",
        "date" : "2025-06-06 14:58:59 +0100",
        "id" : "9345069964e8fb55c681a12dbb5b90c0161200a6",
        "msg" : "Test all three bytecode search methods",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/in_prefix/Makefile.test"
          },
          {
            "editType" : "edit",
            "file" : ".gitignore"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/environment.mli"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/harness.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/harness.mli"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/environment.ml"
          },
          {
            "editType" : "add",
            "file" : "testsuite/tools/dummy.c"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testLinkModes.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "Makefile.config.in",
          "utils/config.mli",
          "configure.ac",
          "runtime/Mangling.md",
          "build-aux/ocaml_version.m4",
          "utils/config.generated.ml.in",
          "configure",
          "utils/config.fixed.ml",
          "Makefile.build_config.in",
          "runtime/caml/version.h.in",
          "utils/misc.mli",
          "utils/misc.ml",
          "utils/config.common.ml.in"
        ],
        "commitId" : "55895f86e605247810da8ae301b385c36a6ea89f",
        "timestamp" : 1618137938000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Determine Runtime ID values in configure\u000a",
        "date" : "2021-04-11 11:45:38 +0100",
        "id" : "55895f86e605247810da8ae301b385c36a6ea89f",
        "msg" : "Determine Runtime ID values in configure",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.common.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "utils/misc.ml"
          },
          {
            "editType" : "edit",
            "file" : "build-aux/ocaml_version.m4"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.fixed.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.mli"
          },
          {
            "editType" : "edit",
            "file" : "utils/misc.mli"
          },
          {
            "editType" : "add",
            "file" : "runtime/Mangling.md"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.generated.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.config.in"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/version.h.in"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.build_config.in"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "configure.ac",
          "Makefile",
          "testsuite/tools/environment.ml",
          "bytecomp/byterntm.mll",
          "configure",
          "tools/objinfo.ml",
          "testsuite/tools/harness.ml",
          "Makefile.build_config.in",
          "stdlib/Makefile",
          "bytecomp/byterntm.mli",
          "testsuite/tools/testRelocation.ml",
          "utils/misc.mli",
          "testsuite/in_prefix/Makefile.test",
          "runtime/startup_byt.c",
          "testsuite/tools/testBytecodeBinaries.ml",
          "utils/misc.ml",
          "testsuite/tools/test_in_prefix.ml",
          "Makefile.common",
          "bytecomp/bytelink.ml",
          "testsuite/tools/harness.mli",
          ".depend",
          "testsuite/tools/cmdline.ml"
        ],
        "commitId" : "0cfac940eb26cd3cfa2d1c349e40a870630e69b8",
        "timestamp" : 1618153922000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Mangle the bytecode runtime executable names\u000a\u000aNew option --disable-suffixing controls whether the build should use any\u000aof the computed values for mangling its own files.\u000a",
        "date" : "2021-04-11 16:12:02 +0100",
        "id" : "0cfac940eb26cd3cfa2d1c349e40a870630e69b8",
        "msg" : "Mangle the bytecode runtime executable names",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testRelocation.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/misc.mli"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testBytecodeBinaries.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/harness.mli"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.common"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/cmdline.ml"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/environment.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/byterntm.mli"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/harness.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/misc.ml"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.build_config.in"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/in_prefix/Makefile.test"
          },
          {
            "editType" : "edit",
            "file" : ".depend"
          },
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/byterntm.mll"
          },
          {
            "editType" : "edit",
            "file" : "tools/objinfo.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "utils/misc.mli",
          "utils/config.mli",
          "utils/misc.ml",
          "Makefile",
          "utils/config.generated.ml.in",
          "testsuite/tools/testLinkModes.ml",
          "bytecomp/bytelink.ml",
          "utils/config.fixed.ml",
          "asmcomp/asmlink.ml"
        ],
        "commitId" : "95d3f8d9e779cb783804f561da8035d83cc99f82",
        "timestamp" : 1618153922000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Build suffixed shared runtimes\u000a\u000aNew names for libcamlrun_shared.so and libasmrun_shared.so without the\u000a_shared suffix and using the target triplet and runtime ID. Both ocamlc\u000aand ocamlopt explicitly recognise `-runtime-variant _shared` and select\u000athe correct name.\u000a\u000aSymbolic links for libcamlrun_shared.so and libasmrun_shared.so to allow\u000aany C programs which linked against the the output of `-output-obj` to\u000acontinue to work.\u000a",
        "date" : "2021-04-11 16:12:02 +0100",
        "id" : "95d3f8d9e779cb783804f561da8035d83cc99f82",
        "msg" : "Build suffixed shared runtimes",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "utils/misc.mli"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.fixed.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.mli"
          },
          {
            "editType" : "edit",
            "file" : "asmcomp/asmlink.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/misc.ml"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testLinkModes.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.generated.ml.in"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "bytecomp/dll.mli",
          "utils/config.mli",
          "utils/clflags.mli",
          "driver/main_args.ml",
          "otherlibs/dynlink/dynlink_config.ml.in",
          "utils/clflags.ml",
          "otherlibs/dynlink/dynlink_config.mli",
          "driver/compenv.ml",
          "tools/objinfo.ml",
          "driver/compenv.mli",
          "ocamltest/ocamltest_config.ml.in",
          "otherlibs/Makefile.otherlibs.common",
          "otherlibs/dynlink/byte/dynlink_symtable.mli",
          "Changes",
          "bytecomp/dll.ml",
          "ocamltest/ocaml_actions.ml",
          "tools/ocamlmklib.ml",
          "file_formats/cmo_format.mli",
          "ocamltest/ocamltest_config.mli",
          "otherlibs/systhreads/Makefile",
          "driver/main_args.mli",
          "utils/misc.mli",
          "utils/misc.ml",
          "otherlibs/dynlink/byte/dynlink_symtable.ml",
          "runtime/dynlink.c",
          "bytecomp/bytelink.ml"
        ],
        "commitId" : "a641deec17a71e10b89bf650c60128b85f6a892f",
        "timestamp" : 1631375528000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Add runtime suffixes to bytecode stub libraries\u000a\u000aocamlc -dllib-suffixed appends the runtime's host triplet and bytecode\u000aruntime ID to the supplied name when searching for the DLL, and records\u000athe base name only in .cma / executable files.\u000a\u000aocamlmklib -suffixed instructs ocamlmklib to use -dllib-suffixed when\u000agenerating .cma files instead of -dllib.\u000a\u000aThe effect is that stub libraries built this way have names which will\u000abe unique for a given configuration of OCaml and so will be ignored by\u000aother runtimes.\u000a",
        "date" : "2021-09-11 16:52:08 +0100",
        "id" : "a641deec17a71e10b89bf650c60128b85f6a892f",
        "msg" : "Add runtime suffixes to bytecode stub libraries",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "bytecomp/dll.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.mli"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/dynlink/dynlink_config.mli"
          },
          {
            "editType" : "edit",
            "file" : "tools/ocamlmklib.ml"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.ml"
          },
          {
            "editType" : "edit",
            "file" : "tools/objinfo.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/dll.mli"
          },
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "file_formats/cmo_format.mli"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.mli"
          },
          {
            "editType" : "edit",
            "file" : "driver/compenv.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.mli"
          },
          {
            "editType" : "edit",
            "file" : "utils/misc.mli"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/systhreads/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/dynlink/byte/dynlink_symtable.ml"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/dynlink/dynlink_config.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "ocamltest/ocaml_actions.ml"
          },
          {
            "editType" : "edit",
            "file" : "ocamltest/ocamltest_config.mli"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/dynlink.c"
          },
          {
            "editType" : "edit",
            "file" : "driver/compenv.mli"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/Makefile.otherlibs.common"
          },
          {
            "editType" : "edit",
            "file" : "utils/misc.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "ocamltest/ocamltest_config.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/dynlink/byte/dynlink_symtable.mli"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "boot/ocamlc",
          "boot/ocamllex"
        ],
        "commitId" : "b49e5fe9aa20a931f263482d3a8cfde2fb14167a",
        "timestamp" : 1750068543000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Bootstrap\u000a",
        "date" : "2025-06-16 11:09:03 +0100",
        "id" : "b49e5fe9aa20a931f263482d3a8cfde2fb14167a",
        "msg" : "Bootstrap",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "boot/ocamlc"
          },
          {
            "editType" : "edit",
            "file" : "boot/ocamllex"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "configure.ac",
          ".gitignore",
          "Makefile",
          "testsuite/tools/test_in_prefix.ml",
          "configure",
          "Makefile.common",
          "bytecomp/bytelink.ml",
          "testsuite/tools/harness.mli",
          "stdlib/header.c",
          "testsuite/tools/harness.ml",
          "stdlib/Makefile",
          "testsuite/tools/cmdline.ml"
        ],
        "commitId" : "09ccc1991c1b2f21728b18e2fd66aec23aa6699d",
        "timestamp" : 1750069098000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Post-bootstrap cleanup\u000a\u000aboot/ocamlc now supports everything that the main compiler supports.\u000a",
        "date" : "2025-06-16 11:18:18 +0100",
        "id" : "09ccc1991c1b2f21728b18e2fd66aec23aa6699d",
        "msg" : "Post-bootstrap cleanup",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/harness.mli"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/harness.ml"
          },
          {
            "editType" : "edit",
            "file" : ".gitignore"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/cmdline.ml"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.common"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "utils/config.mli",
          "configure.ac",
          "utils/config.generated.ml.in",
          "utils/clflags.ml",
          "Makefile.common",
          "configure",
          "utils/config.common.ml.in",
          "Makefile.build_config.in",
          "utils/config.fixed.ml"
        ],
        "commitId" : "965a8b6fc8ccfb201c402ff6c7fee57186015bc8",
        "timestamp" : 1731515328000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Add --enable-runtime-search[-target] options\u000a\u000a--enable-runtime-search controls the -runtime-search setting used to\u000abuild the compiler's own bytecode executables;\u000a--enable-runtime-search-target controls the default value of\u000a-runtime-search that ocamlc itself uses.\u000a",
        "date" : "2024-11-13 16:28:48 +0000",
        "id" : "965a8b6fc8ccfb201c402ff6c7fee57186015bc8",
        "msg" : "Add --enable-runtime-search[-target] options",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile.common"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.build_config.in"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.generated.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.ml"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.common.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.fixed.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.mli"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/testRelocation.ml",
          "testsuite/in_prefix/Makefile.test",
          "testsuite/tools/testBytecodeBinaries.ml",
          "testsuite/in_prefix/README.md",
          "testsuite/tools/test_in_prefix.ml",
          "testsuite/tools/testLinkModes.ml",
          "testsuite/tools/harness.mli",
          ".depend",
          "testsuite/tools/harness.ml",
          "testsuite/tools/cmdline.ml"
        ],
        "commitId" : "dfe5604bb17a6ced8774c505f61eb01bcedda608",
        "timestamp" : 1720898950000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Update the installation test for runtime-searching\u000a",
        "date" : "2024-07-13 21:29:10 +0200",
        "id" : "dfe5604bb17a6ced8774c505f61eb01bcedda608",
        "msg" : "Update the installation test for runtime-searching",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/in_prefix/README.md"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testBytecodeBinaries.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/harness.mli"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testLinkModes.ml"
          },
          {
            "editType" : "edit",
            "file" : ".depend"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testRelocation.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/harness.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/cmdline.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/in_prefix/Makefile.test"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/harness.mli",
          "configure.ac",
          "configure"
        ],
        "commitId" : "89ee89ab55ba70149e6d6555b76db101d55ed1a9",
        "timestamp" : 1632480136000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Make Windows header absolute (as on Unix)\u000a",
        "date" : "2021-09-24 11:42:16 +0100",
        "id" : "89ee89ab55ba70149e6d6555b76db101d55ed1a9",
        "msg" : "Make Windows header absolute (as on Unix)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tools/harness.mli"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".github/workflows/build.yml",
          "tools/ci/actions/runner.sh",
          ".github/workflows/build-msvc.yml",
          "tools/ci/appveyor/appveyor_build.sh"
        ],
        "commitId" : "b6a645e237bc0b7407634247e49b8b67299cdecd",
        "timestamp" : 1727619261000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Test --enable-runtime-search in CI\u000a",
        "date" : "2024-09-29 15:14:21 +0100",
        "id" : "b6a645e237bc0b7407634247e49b8b67299cdecd",
        "msg" : "Test --enable-runtime-search in CI",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".github/workflows/build.yml"
          },
          {
            "editType" : "edit",
            "file" : "tools/ci/actions/runner.sh"
          },
          {
            "editType" : "edit",
            "file" : ".github/workflows/build-msvc.yml"
          },
          {
            "editType" : "edit",
            "file" : "tools/ci/appveyor/appveyor_build.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tools/ci/inria/main"
        ],
        "commitId" : "2ea2b5b569127b9e214389852809a0cdb7edfe0b",
        "timestamp" : 1742488338000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "NFPR: fully test --enable-runtime-search in precheck\u000a",
        "date" : "2025-03-20 16:32:18 +0000",
        "id" : "2ea2b5b569127b9e214389852809a0cdb7edfe0b",
        "msg" : "NFPR: fully test --enable-runtime-search in precheck",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "tools/ci/inria/main"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "configure.ac",
          "configure",
          ".gitattributes",
          "Makefile"
        ],
        "commitId" : "3b9a43e42bceeacd45e162329999dc6b14ca6c8b",
        "timestamp" : 1752915747000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Exclude the manual from git-archive tarballs\u000a",
        "date" : "2025-07-19 10:02:27 +0100",
        "id" : "3b9a43e42bceeacd45e162329999dc6b14ca6c8b",
        "msg" : "Exclude the manual from git-archive tarballs",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : ".gitattributes"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".gitattributes"
        ],
        "commitId" : "239b20664c01209ead2be1a97cb31f8dc1772901",
        "timestamp" : 1752915924000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Exclude irrelevant files from git-archive\u000a\u000aCI scripts and Git configuration aren't required on end-user machines.\u000a",
        "date" : "2025-07-19 10:05:24 +0100",
        "id" : "239b20664c01209ead2be1a97cb31f8dc1772901",
        "msg" : "Exclude irrelevant files from git-archive",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".gitattributes"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/Makefile",
          ".gitattributes"
        ],
        "commitId" : "114cfbee9ab835b73780b6a7589b4d8ebc1ac03e",
        "timestamp" : 1753096148000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Exclude tests from git-archive tarballs\u000a\u000aAll the programs and infrastructure remain, but the tests are removed.\u000a",
        "date" : "2025-07-21 12:09:08 +0100",
        "id" : "114cfbee9ab835b73780b6a7589b4d8ebc1ac03e",
        "msg" : "Exclude tests from git-archive tarballs",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/Makefile"
          },
          {
            "editType" : "edit",
            "file" : ".gitattributes"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Makefile"
        ],
        "commitId" : "c654b0d2dd20ef973ca27e7bc77e4932f6667ebb",
        "timestamp" : 1752747234000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Don't explicitly install toplevel/byte/*.cmi\u000a\u000aAll of the .mli files in toplevel/byte are \"common\", so they're already\u000ainstalled by the patterns in toplevel.\u000a",
        "date" : "2025-07-17 11:13:54 +0100",
        "id" : "c654b0d2dd20ef973ca27e7bc77e4932f6667ebb",
        "msg" : "Don't explicitly install toplevel/byte/*.cmi",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Makefile"
        ],
        "commitId" : "147a53963b68e0b1f7fba33b42873c81265c051a",
        "timestamp" : 1752747299000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Don't explicitly install main.cmx and optmain.cmx\u000a\u000aIt's necessary to install main.o and optmain.o because the two modules\u000aare not part of ocamlbytecomp.cmxa and ocamloptcomp.cmxa, but the .cmx\u000afiles are already installed as part of wildcard patterns on driver/\u000a",
        "date" : "2025-07-17 11:14:59 +0100",
        "id" : "147a53963b68e0b1f7fba33b42873c81265c051a",
        "msg" : "Don't explicitly install main.cmx and optmain.cmx",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Makefile"
        ],
        "commitId" : "9642616d2bf9107588beaceed563fefbee62c241",
        "timestamp" : 1752747370000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Remove duplicate installation in installopt\u000a\u000aThe ocamldoc installation commands in installopt duplicate a series of\u000acommands which already happen in install.\u000a",
        "date" : "2025-07-17 11:16:10 +0100",
        "id" : "9642616d2bf9107588beaceed563fefbee62c241",
        "msg" : "Remove duplicate installation in installopt",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Makefile"
        ],
        "commitId" : "c41fee311b71c6b77c7e98cc62d71bdc1b0210dc",
        "timestamp" : 1752747424000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Don't install ocamldoc's .cmi files twice\u000a",
        "date" : "2025-07-17 11:17:04 +0100",
        "id" : "c41fee311b71c6b77c7e98cc62d71bdc1b0210dc",
        "msg" : "Don't install ocamldoc's .cmi files twice",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Makefile"
        ],
        "commitId" : "20848b8dc6237ab46fed982301a5bdc943be3dfe",
        "timestamp" : 1752760572000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Use implicit names when installing ocamldoc\u000a\u000aThe ocamldoc binaries were installed using a relative path. They're the\u000aonly binaries installed that way - switch them to use an implicit path,\u000aas it's easier to make an implicit path subsequently relative if needed\u000athan vice versa.\u000a",
        "date" : "2025-07-17 14:56:12 +0100",
        "id" : "20848b8dc6237ab46fed982301a5bdc943be3dfe",
        "msg" : "Use implicit names when installing ocamldoc",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Makefile"
        ],
        "commitId" : "a6ecd27c53c43f8b6917ff6262096267e697782a",
        "timestamp" : 1752701213000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Eliminate local for loops in install\u000a\u000aContinue to use for when invoking recursive make calls, but use\u000a$(foreach ..) to generate command sequences so that macros can be used\u000ain them.\u000a",
        "date" : "2025-07-16 22:26:53 +0100",
        "id" : "a6ecd27c53c43f8b6917ff6262096267e697782a",
        "msg" : "Eliminate local for loops in install",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "api_docgen/odoc/Makefile",
          "otherlibs/Makefile.otherlibs.common",
          "Makefile",
          "api_docgen/ocamldoc/Makefile"
        ],
        "commitId" : "c27909fb603a7a4c5e10c3b7f7f16b91bfc00c88",
        "timestamp" : 1757105445000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Eliminate local if blocks in install\u000a",
        "date" : "2025-09-05 21:50:45 +0100",
        "id" : "c27909fb603a7a4c5e10c3b7f7f16b91bfc00c88",
        "msg" : "Eliminate local if blocks in install",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "api_docgen/ocamldoc/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/Makefile.otherlibs.common"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "api_docgen/odoc/Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Makefile"
        ],
        "commitId" : "aeeaf4732356931aade91cad49f6861acf47d33c",
        "timestamp" : 1753262693000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Remove invalid directory in source install\u000a\u000aLine was added (with typo) in PR#8925 (4.09) and should have been\u000aremoved as part of PR#10355 (4.13)\u000a",
        "date" : "2025-07-23 10:24:53 +0100",
        "id" : "aeeaf4732356931aade91cad49f6861acf47d33c",
        "msg" : "Remove invalid directory in source install",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Makefile"
        ],
        "commitId" : "a3d2ee7f3b79440f96d360094ae623ca9e7d1061",
        "timestamp" : 1753257770000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Sprinkle some meta-programming on the install target\u000a",
        "date" : "2025-07-23 09:02:50 +0100",
        "id" : "a3d2ee7f3b79440f96d360094ae623ca9e7d1061",
        "msg" : "Sprinkle some meta-programming on the install target",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Makefile",
          ".gitignore",
          "Makefile.common"
        ],
        "commitId" : "e0238f0e56e55c667d817af69c499e054ceb0b3e",
        "timestamp" : 1752930459000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Keep the stripped bytecode binaries\u000a\u000aNo need to remove things during install when it will be done later by a\u000apackage manager. Also prepares for the possibility of letting something\u000aelse install the binary subsequently.\u000a",
        "date" : "2025-07-19 14:07:39 +0100",
        "id" : "e0238f0e56e55c667d817af69c499e054ceb0b3e",
        "msg" : "Keep the stripped bytecode binaries",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".gitignore"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.common"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "api_docgen/odoc/Makefile",
          "Makefile",
          "api_docgen/ocamldoc/Makefile",
          "man/Makefile",
          "otherlibs/systhreads/Makefile",
          "Makefile.common",
          "otherlibs/Makefile.otherlibs.common",
          "stdlib/Makefile"
        ],
        "commitId" : "56ef27eca9bcd19d3c61b01fe30acf1df9eee8b3",
        "timestamp" : 1752933065000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Straighten out the INSTALL_* Makefile variables\u000a\u000aMove various definitions around such that merged Makefile variables are\u000aall in Makefile.common. Sanitise the names to be closer to\u000aINSTALL_LIBDIR_subdirname.\u000a",
        "date" : "2025-07-19 14:51:05 +0100",
        "id" : "56ef27eca9bcd19d3c61b01fe30acf1df9eee8b3",
        "msg" : "Straighten out the INSTALL_* Makefile variables",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "api_docgen/ocamldoc/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "man/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/Makefile.otherlibs.common"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.common"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/systhreads/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "api_docgen/odoc/Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Makefile"
        ],
        "commitId" : "b765aa503b91b33894e56ce178629fd4f8ec892b",
        "timestamp" : 1757179651000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Remove the recursive invocation in install targets\u000a",
        "date" : "2025-09-06 18:27:31 +0100",
        "id" : "b765aa503b91b33894e56ce178629fd4f8ec892b",
        "msg" : "Remove the recursive invocation in install targets",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "otherlibs/Makefile",
          "api_docgen/odoc/Makefile",
          "Makefile",
          "api_docgen/Makefile",
          "api_docgen/ocamldoc/Makefile",
          "man/Makefile",
          "otherlibs/systhreads/Makefile",
          "otherlibs/Makefile.otherlibs.common",
          "stdlib/Makefile"
        ],
        "commitId" : "66a716ff20f6331156dcc97fb1e89c94a917168e",
        "timestamp" : 1752930991000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Add SUBDIR_NAME to principal Makefiles\u000a\u000aSUBDIR_NAME goes along with ROOTDIR - where ROOTDIR is the relative path\u000afrom Makefile back to the root directory, SUBDIR_NAME is the implicit\u000apath from the root directory to Makefile.\u000a",
        "date" : "2025-07-19 14:16:31 +0100",
        "id" : "66a716ff20f6331156dcc97fb1e89c94a917168e",
        "msg" : "Add SUBDIR_NAME to principal Makefiles",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/systhreads/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/Makefile.otherlibs.common"
          },
          {
            "editType" : "edit",
            "file" : "api_docgen/ocamldoc/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "api_docgen/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "man/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "api_docgen/odoc/Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "api_docgen/odoc/Makefile",
          "Makefile",
          "api_docgen/ocamldoc/Makefile",
          "man/Makefile",
          "otherlibs/systhreads/Makefile",
          "Makefile.common",
          "otherlibs/Makefile.otherlibs.common",
          "stdlib/Makefile"
        ],
        "commitId" : "42a783fdbf5de2f78a9968e685e56ddbd4700292",
        "timestamp" : 1752744073000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Use macros to generate installation commands\u000a\u000amake install works as it did before. All the commands in the install\u000atargets now go through a macro call which allows the semantic intent of\u000aeach command to be more clearly specified.\u000a",
        "date" : "2025-07-17 10:21:13 +0100",
        "id" : "42a783fdbf5de2f78a9968e685e56ddbd4700292",
        "msg" : "Use macros to generate installation commands",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "api_docgen/ocamldoc/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "api_docgen/odoc/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.common"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/systhreads/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "man/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/Makefile.otherlibs.common"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Makefile.common"
        ],
        "commitId" : "98e3d48911d0a3af6144f51bbe5445700a99b74d",
        "timestamp" : 1752744073000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Add additional modes to make install\u000a\u000amake [INSTALL_MODE=install] install\u000a  - installs the compiler, as normal\u000amake INSTALL_MODE=display install\u000a  - displays the operations needed for\u000amake INSTALL_MODE=list install\u000a  - lists the files and symbolic links which are installed\u000a",
        "date" : "2025-07-17 10:21:13 +0100",
        "id" : "98e3d48911d0a3af6144f51bbe5445700a99b74d",
        "msg" : "Add additional modes to make install",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile.common"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tools/opam/generate-install.sh",
          "Makefile.common"
        ],
        "commitId" : "6e1800cb35bea5b397a0069b94f799c463633acc",
        "timestamp" : 1752765127000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Generate an opam .install file and support script\u000a\u000amake INSTALL_MODE=opam install generates $OPAM_PACKAGE_NAME.install and\u000a$OPAM_PACKAGE_NAME-fixup.sh ($OPAM_PACKAGE_NAME defaults to\u000aocaml-compiler). Nothing is installed by this mode. The fixup.sh script\u000ais intentionally not made executable (it should be invoked explicitly\u000awith sh) and creates symbolic links, if required, and also manually\u000acopies the files to the doc dir, as the .install file format doesn't\u000aallow the correct location to be specified.\u000a",
        "date" : "2025-07-17 16:12:07 +0100",
        "id" : "6e1800cb35bea5b397a0069b94f799c463633acc",
        "msg" : "Generate an opam .install file and support script",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile.common"
          },
          {
            "editType" : "add",
            "file" : "tools/opam/generate-install.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "ocaml-variants.opam"
        ],
        "commitId" : "46eab47f4335fbe29ac7a1c9a4b04e6808e631de",
        "timestamp" : 1752765391000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Experimentally, use it\u000a",
        "date" : "2025-07-17 16:16:31 +0100",
        "id" : "46eab47f4335fbe29ac7a1c9a4b04e6808e631de",
        "msg" : "Experimentally, use it",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "ocaml-variants.opam"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tools/opam/generate-clone.sh",
          "Makefile.common",
          "tools/opam/process.sh",
          ".gitattributes"
        ],
        "commitId" : "02d279544c72e189ecd0a74c70b0207e55e946d2",
        "timestamp" : 1752944117000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Generate a relocatable cloning script\u000a",
        "date" : "2025-07-19 17:55:17 +0100",
        "id" : "02d279544c72e189ecd0a74c70b0207e55e946d2",
        "msg" : "Generate a relocatable cloning script",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile.common"
          },
          {
            "editType" : "add",
            "file" : "tools/opam/process.sh"
          },
          {
            "editType" : "add",
            "file" : "tools/opam/generate-clone.sh"
          },
          {
            "editType" : "edit",
            "file" : ".gitattributes"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tools/opam/generate-clone.sh",
          "tools/opam/generate.ml",
          "Makefile.common",
          "tools/opam/generate-install.sh"
        ],
        "commitId" : "f59f66260b189212e4e9b496f3cd553ff3cc066f",
        "timestamp" : 1757173126000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Got an interpreter, and we're not afraid to use it\u000a",
        "date" : "2025-09-06 16:38:46 +0100",
        "id" : "f59f66260b189212e4e9b496f3cd553ff3cc066f",
        "msg" : "Got an interpreter, and we're not afraid to use it",
        "paths" : [
          {
            "editType" : "add",
            "file" : "tools/opam/generate.ml"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.common"
          },
          {
            "editType" : "delete",
            "file" : "tools/opam/generate-install.sh"
          },
          {
            "editType" : "delete",
            "file" : "tools/opam/generate-clone.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "ocaml-variants.opam"
        ],
        "commitId" : "a41096ca925240001ee236120ee86a2ebcc98511",
        "timestamp" : 1753368083000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Mark winpthreads dependency as Windows-only\u000a\u000aRedundant filter, but mitigates an issue with --assume-built in opam\u000a",
        "date" : "2025-07-24 15:41:23 +0100",
        "id" : "a41096ca925240001ee236120ee86a2ebcc98511",
        "msg" : "Mark winpthreads dependency as Windows-only",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "ocaml-variants.opam"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "ocaml-variants.opam"
        ],
        "commitId" : "d028c85bdc96c959f0aeeac2684347e56317ca55",
        "timestamp" : 1753368274000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Mark input dependencies as build\u000a\u000aMitigates an issue with opam install --assume-built since build\u000adependencies are ignored. The semantics should remain consistent: in\u000aparticular, as there is only a single version of each of these packages,\u000athe key issue is that removing the package will still trigger the\u000acorrect behaviour as the dependency graph will change.\u000a",
        "date" : "2025-07-24 15:44:34 +0100",
        "id" : "d028c85bdc96c959f0aeeac2684347e56317ca55",
        "msg" : "Mark input dependencies as build",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "ocaml-variants.opam"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tools/ci/appveyor/appveyor_build.cmd",
          ".github/workflows/build.yml",
          "tools/ci/actions/runner.sh",
          ".github/workflows/build-msvc.yml",
          "tools/ci/appveyor/appveyor_build.sh"
        ],
        "commitId" : "3d3efe0ed306eaa8dedf4199ad9a6a3911946502",
        "timestamp" : 1753368994000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Test opam in CI\u000a",
        "date" : "2025-07-24 15:56:34 +0100",
        "id" : "3d3efe0ed306eaa8dedf4199ad9a6a3911946502",
        "msg" : "Test opam in CI",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".github/workflows/build.yml"
          },
          {
            "editType" : "edit",
            "file" : "tools/ci/appveyor/appveyor_build.cmd"
          },
          {
            "editType" : "edit",
            "file" : "tools/ci/appveyor/appveyor_build.sh"
          },
          {
            "editType" : "edit",
            "file" : "tools/ci/actions/runner.sh"
          },
          {
            "editType" : "edit",
            "file" : ".github/workflows/build-msvc.yml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tools/opam/gen_ocaml_config.ml.in",
          ".gitattributes",
          "tools/opam/ocaml-config.install"
        ],
        "commitId" : "9d08c2f36d138c0d7884f71da4ecb14791753cc7",
        "timestamp" : 1539951061000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Generator script for ocaml.config in opam\u000a\u000aThis script is installed in opam by the ocaml-config package and then\u000aused by its ocaml virtual packages to probe the compiler installation\u000aand record various pieces of information about it by generating\u000aocaml.config\u000a",
        "date" : "2018-10-19 13:11:01 +0100",
        "id" : "9d08c2f36d138c0d7884f71da4ecb14791753cc7",
        "msg" : "Generator script for ocaml.config in opam",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".gitattributes"
          },
          {
            "editType" : "add",
            "file" : "tools/opam/gen_ocaml_config.ml.in"
          },
          {
            "editType" : "add",
            "file" : "tools/opam/ocaml-config.install"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tools/opam/gen_ocaml_config.ml.in",
          ".gitattributes"
        ],
        "commitId" : "e44e3d4385f1a86932ec7507e21e02d8fdcfc464",
        "timestamp" : 1539951613000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Remove need for shared libraries in ocaml-config\u000a",
        "date" : "2018-10-19 13:20:13 +0100",
        "id" : "e44e3d4385f1a86932ec7507e21e02d8fdcfc464",
        "msg" : "Remove need for shared libraries in ocaml-config",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "tools/opam/gen_ocaml_config.ml.in"
          },
          {
            "editType" : "edit",
            "file" : ".gitattributes"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tools/opam/gen_ocaml_config.ml.in",
          ".gitattributes"
        ],
        "commitId" : "be5628907520538c68a1f42eef65cd10f3d50e29",
        "timestamp" : 1605500615000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Update ocaml-config for 4.12 scheme\u000a\u000a- Versioning numbering used for pre-releases now uses ~ instead of +\u000a- Support the new ocaml-option- package layout\u000a",
        "date" : "2020-11-16 04:23:35 +0000",
        "id" : "be5628907520538c68a1f42eef65cd10f3d50e29",
        "msg" : "Update ocaml-config for 4.12 scheme",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "tools/opam/gen_ocaml_config.ml.in"
          },
          {
            "editType" : "edit",
            "file" : ".gitattributes"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tools/opam/gen_ocaml_config.ml.in",
          ".gitattributes"
        ],
        "commitId" : "dc8531b3e1652718eb2529995b058f11bf3eb6d8",
        "timestamp" : 1614507304000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "OCaml 3.07 version of gen_ocaml_config.ml.in\u000a",
        "date" : "2021-02-28 10:15:04 +0000",
        "id" : "dc8531b3e1652718eb2529995b058f11bf3eb6d8",
        "msg" : "OCaml 3.07 version of gen_ocaml_config.ml.in",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "tools/opam/gen_ocaml_config.ml.in"
          },
          {
            "editType" : "edit",
            "file" : ".gitattributes"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tools/opam/gen_ocaml_config.ml.in",
          ".gitattributes"
        ],
        "commitId" : "e72cb7edce047da61504cc66366f5bdcf7f40c48",
        "timestamp" : 1651254088000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Windows fixes to ocaml-config\u000a\u000a- Wrong separator used for generating CAML_LD_LIBRARY_PATH on Windows\u000a- Fixed detection for the native-tools variable on Windows\u000a- Support dkml-base-compiler\u000a",
        "date" : "2022-04-29 10:41:28 -0700",
        "id" : "e72cb7edce047da61504cc66366f5bdcf7f40c48",
        "msg" : "Windows fixes to ocaml-config",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "tools/opam/gen_ocaml_config.ml.in"
          },
          {
            "editType" : "edit",
            "file" : ".gitattributes"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tools/opam/gen_ocaml_config.ml.in"
        ],
        "commitId" : "f4b26c11df9e7fe9adc73a17c6264f954699ea5d",
        "timestamp" : 1653465294000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Update ocaml-config for the new OCaml 5 layout\u000a",
        "date" : "2022-05-25 08:54:54 +0100",
        "id" : "f4b26c11df9e7fe9adc73a17c6264f954699ea5d",
        "msg" : "Update ocaml-config for the new OCaml 5 layout",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "tools/opam/gen_ocaml_config.ml.in"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tools/opam/gen_ocaml_config.ml.in",
          "tools/opam/ocaml-config.install",
          ".gitattributes",
          "tools/opam/gen_ocaml_config.ml"
        ],
        "commitId" : "d9768630d0a71055400548836c0534aa22721eb8",
        "timestamp" : 1756655590000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Fully unify and update gen_ocaml_config.ml\u000a\u000aThere was technically a slightly tailored version of gen_ocaml_config.ml\u000asitting in the history to support the OCaml 3.07 package (which is the\u000aoldest compiler archived in opam-repository).\u000a\u000aThe ocaml-config package originally stored this script in the files/\u000asubdirectory, but policy changes in 2025 mean it was being referenced\u000afrom an archive repository. This script can now be referenced directly\u000aby opam's ocaml package, removing the need for an additional package in\u000athe dependency cone and also meaning that the script no longer has to be\u000ainstalled in the switch.\u000a\u000aThe substs mechanism has been replaced in favour of passing the required\u000aarguments on the command line. The previous mechanism was an artefact of\u000athe way this script was previously generated, rather than necessarily a\u000aclear way of writing it. It means this script is now simply an OCaml\u000ascript and has the added benefit of allowing each ocaml package to\u000aspecify the appropriate additional version components (e.g. spacetime,\u000annp, etc.) rather than having each script confusingly containing all of\u000athem.\u000a",
        "date" : "2025-08-31 16:53:10 +0100",
        "id" : "d9768630d0a71055400548836c0534aa22721eb8",
        "msg" : "Fully unify and update gen_ocaml_config.ml",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "tools/opam/gen_ocaml_config.ml.in"
          },
          {
            "editType" : "delete",
            "file" : "tools/opam/ocaml-config.install"
          },
          {
            "editType" : "edit",
            "file" : ".gitattributes"
          },
          {
            "editType" : "add",
            "file" : "tools/opam/gen_ocaml_config.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tools/opam/gen_ocaml_config.ml"
        ],
        "commitId" : "63fc454847224e72bab047a23686d6d25eabad42",
        "timestamp" : 1756833532000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Support relative paths in gen_ocaml_config.ml\u000a",
        "date" : "2025-09-02 18:18:52 +0100",
        "id" : "63fc454847224e72bab047a23686d6d25eabad42",
        "msg" : "Support relative paths in gen_ocaml_config.ml",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "tools/opam/gen_ocaml_config.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "stdlib/header.c"
        ],
        "commitId" : "e80c8e60a799909794a129e28174b36682a5511e",
        "timestamp" : 1755088255000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Remove the MAX_PATH limit in header.c on Windows\u000a",
        "date" : "2025-08-13 13:30:55 +0100",
        "id" : "e80c8e60a799909794a129e28174b36682a5511e",
        "msg" : "Remove the MAX_PATH limit in header.c on Windows",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/win32.c",
          "runtime/caml/osdeps.h",
          "runtime/dynlink.c",
          "runtime/unix.c"
        ],
        "commitId" : "622c3dfac90a2f326a5afb638b2d2e44ebfd675d",
        "timestamp" : 1731517277000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Move caml_search_dll_in_path to dynlink.c\u000a\u000aEliminates code duplication between unix.c and win32.c\u000a",
        "date" : "2024-11-13 17:01:17 +0000",
        "id" : "622c3dfac90a2f326a5afb638b2d2e44ebfd675d",
        "msg" : "Move caml_search_dll_in_path to dynlink.c",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/unix.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/win32.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/osdeps.h"
          },
          {
            "editType" : "edit",
            "file" : "runtime/dynlink.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/caml/backtrace.h",
          "runtime/backtrace_byt.c"
        ],
        "commitId" : "649f23cc76a779a983ba192d8727a0eb67c91218",
        "timestamp" : 1731596553000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Remove caml_cds_file\u000a\u000aOCaml 4.x global which should have been removed with OCaml 5.0\u000a",
        "date" : "2024-11-14 15:02:33 +0000",
        "id" : "649f23cc76a779a983ba192d8727a0eb67c91218",
        "msg" : "Remove caml_cds_file",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/backtrace_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/backtrace.h"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/header.c"
        ],
        "commitId" : "f1aa27b1244fd0ab48e608f94855427df692bbc1",
        "timestamp" : 1731617748000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "header.c: handle parasitic case of argc < 1\u000a",
        "date" : "2024-11-14 20:55:48 +0000",
        "id" : "f1aa27b1244fd0ab48e608f94855427df692bbc1",
        "msg" : "header.c: handle parasitic case of argc < 1",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/unix.c",
          "stdlib/header.c"
        ],
        "commitId" : "9c8e2754510b39f2d3903cca351ce898caa7f9b8",
        "timestamp" : 1731577903000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Remove unnecessary Cygwin path workarounds\u000a\u000aThis is no longer required (nor does it work). Cygwin 1.5.20 (July 2006)\u000aadded the transparent_exe option to the CYGWIN environment variable which\u000amade open behave in the same way as stat. Cygwin 1.7.1 (December 2009 and,\u000adespite the version number, the first release of Cygwin 1.7) made this\u000abehaviour default (and removed the ability to turn it off).\u000a",
        "date" : "2024-11-14 09:51:43 +0000",
        "id" : "9c8e2754510b39f2d3903cca351ce898caa7f9b8",
        "msg" : "Remove unnecessary Cygwin path workarounds",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/unix.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/header.c"
        ],
        "commitId" : "335db5d1ea1e73769d84e4d3311c1fc121511dfc",
        "timestamp" : 1731619135000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "header.c: malloc the result of searchpath\u000a",
        "date" : "2024-11-14 21:18:55 +0000",
        "id" : "335db5d1ea1e73769d84e4d3311c1fc121511dfc",
        "msg" : "header.c: malloc the result of searchpath",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/unix_executable.c",
          "runtime/unix.c",
          "Makefile",
          "runtime/caml/osdeps.h",
          "Makefile.cross",
          "stdlib/header.c",
          "stdlib/Makefile"
        ],
        "commitId" : "8d721286b72dba4e745af21e8005dfc38f5bcb79",
        "timestamp" : 1731619953000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Move searchpath from header.c into the runtime\u000a\u000aMerge the path-searching code from stdlib/header.c with the runtime's\u000aversion.\u000a",
        "date" : "2024-11-14 21:32:33 +0000",
        "id" : "8d721286b72dba4e745af21e8005dfc38f5bcb79",
        "msg" : "Move searchpath from header.c into the runtime",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile.cross"
          },
          {
            "editType" : "add",
            "file" : "runtime/unix_executable.c"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "runtime/unix.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/osdeps.h"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/unix_executable.c",
          "testsuite/tools/testLinkModes.ml",
          "runtime/unix.c",
          "stdlib/header.c"
        ],
        "commitId" : "b1fd5829490d13b0acae242b0297926ca732437f",
        "timestamp" : 1731621443000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Use caml_executable_name in header.c\u000a",
        "date" : "2024-11-14 21:57:23 +0000",
        "id" : "b1fd5829490d13b0acae242b0297926ca732437f",
        "msg" : "Use caml_executable_name in header.c",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/unix.c"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/unix_executable.c"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testLinkModes.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/startup_byt.c"
        ],
        "commitId" : "fd41979d0ee56bc7a275f6a6236930ef97eb3cf9",
        "timestamp" : 1740998987000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Don't check for shebang scripts on Windows\u000a\u000aBytecode startup includes a check which has no place on Windows.\u000a",
        "date" : "2025-03-03 10:49:47 +0000",
        "id" : "fd41979d0ee56bc7a275f6a6236930ef97eb3cf9",
        "msg" : "Don't check for shebang scripts on Windows",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "runtime/backtrace_byt.c",
          "runtime/startup_aux.c",
          "runtime/startup_byt.c",
          "runtime/caml/startup.h"
        ],
        "commitId" : "6b227e9890a2eefd93484cd1f6c35caa94a28bcc",
        "timestamp" : 1731596842000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Simplify the interface of caml_attempt_open\u000a\u000aPreviously, caml_attempt_open received a pointer to the string and\u000apassed this string to caml_search_exe_in_path. This function allocates a\u000afresh string which was then assigned to that pointer.\u000a\u000aThis interface was a little cryptic to follow - in particular, there\u000awere several scenarios in which the result was not being freed. It's\u000aalso not entirely clear that caml_attempt_open involved a PATH-search,\u000awhich appears to have been applied in error when CAML_DEBUG_FILE was\u000aadded.\u000a",
        "date" : "2024-11-14 15:07:22 +0000",
        "id" : "6b227e9890a2eefd93484cd1f6c35caa94a28bcc",
        "msg" : "Simplify the interface of caml_attempt_open",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/startup.h"
          },
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_aux.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/backtrace_byt.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/testLinkModes.ml",
          "stdlib/header.c"
        ],
        "commitId" : "1e99214f5421cce654a42e97eb3f3429645a3709",
        "timestamp" : 1740998987000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Preserve argv[0] on Unix in the executable header\u000a\u000aMakes the behaviour of the Unix and Windows versions of the header\u000aequivalent, in particular it means that if argv[0] doesn't describe the\u000aexecutable, more things fail for Cygwin.\u000a",
        "date" : "2025-03-03 10:49:47 +0000",
        "id" : "1e99214f5421cce654a42e97eb3f3429645a3709",
        "msg" : "Preserve argv[0] on Unix in the executable header",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testLinkModes.ml"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tests/lib-unix/common/cloexec_leap.ml",
          "stdlib/header.c",
          "testsuite/tests/lib-unix/common/cloexec.ml",
          "testsuite/tests/lib-unix/common/fdstatus_main.ml"
        ],
        "commitId" : "dede651c6c232b109dc4df75e87647d9ea04631c",
        "timestamp" : 1742223371000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Fix STARTUPINFO structure in stdlib/header.c\u000a\u000aIf a CRT application (including, therefore, another OCaml program),\u000aexec's a bytecode program which uses the executable header, the\u000acbReserved2 and lpReserved2 fields of the STARTUPINFO structure are\u000aquietly used by the CRT to pass handle information about open fds.\u000a\u000aThe status checker in the cloexec.ml test has C stubs, which causes\u000aocamltest to compile the bytecode version with -custom. The test is\u000asplit to have an additional intermediate pure OCaml program which simply\u000arepeats either the Unix.execv or Unix.create_process call with the\u000aSys.argv it was applied. In bytecode, ocamltest compiles this program\u000ajust with -use-runtime, which means it uses the executable header on\u000aWindows.\u000a\u000aWithout the change to header.c in this commit, that test begins to fail\u000ain bytecode on Windows, because the CRT information about inherited\u000ahandles is not passed on to the status checker (the HANDLE values will\u000ahave been inherited, as that's a kernel function, but the CRT structures\u000aregarding the fds are not initialised, which is what the checker than\u000alooks at).\u000a\u000aThe fix here simplifies the code considerably - rather than initialising\u000aa fresh STARTUPINFO structure, we simply use GetStartupInfo to retrieve\u000athe one which was used to create the process itself and pass that to\u000aCreateProcess - cbReserved2 and lpReserved2 are therefore passed on, and\u000athe cloexec.ml test passes again.\u000a",
        "date" : "2025-03-17 15:56:11 +0100",
        "id" : "dede651c6c232b109dc4df75e87647d9ea04631c",
        "msg" : "Fix STARTUPINFO structure in stdlib/header.c",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tests/lib-unix/common/cloexec.ml"
          },
          {
            "editType" : "add",
            "file" : "testsuite/tests/lib-unix/common/cloexec_leap.ml"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/lib-unix/common/fdstatus_main.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "testsuite/tools/testLinkModes.ml",
          "runtime/startup_byt.c",
          "testsuite/tools/testBytecodeBinaries.ml",
          "stdlib/header.c"
        ],
        "commitId" : "848930e274081e0bb4a1e295561322937346a975",
        "timestamp" : 1742138849000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Share image fd between header.c and startup_byt.c\u000a\u000aThe bytecode executable launcher (stdlib/header.c) can _only_ invoke\u000aocamlrun after it has opened itself in order to find out the name of the\u000aruntime to execute. However, once ocamlrun is exec'd, the knowledge of\u000athis file was previously lost and if it could not be recovered from\u000aargv[0], then execution fails.\u000a\u000aThis new approach, for both Windows and Unix, instead keeps the fd for\u000athe bytecode image open and passes its number to ocamlrun as\u000a__OCAML_EXEC_FD in the environment. ocamlrun detects this environment\u000avariable and uses that fd to load the bytecode image. If this fails, the\u000aruntime does _not_ fallback to any other mechanisms.\u000a\u000aOn Windows, it is possible to recover the filename from a HANDLE. It is\u000anot portably possible to do this on Unix, so the filename which was\u000aopened by the stdlib/header.c is instead appended to the environment\u000avariable.\u000a",
        "date" : "2025-03-16 15:27:29 +0000",
        "id" : "848930e274081e0bb4a1e295561322937346a975",
        "msg" : "Share image fd between header.c and startup_byt.c",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testBytecodeBinaries.ml"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testLinkModes.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "toplevel/topcommon.ml",
          "debugger/unix_tools.ml",
          "bytecomp/dll.ml",
          "runtime/unix.c"
        ],
        "commitId" : "564e69d21c238c9c828dcd5c461fc227d70d4908",
        "timestamp" : 1738411390000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Add comments on the handling of blank env vars\u000a\u000aClarify in various places the behaviour of reading an environment\u000avariable which is \"Set But Null\" (i.e. equal to the empty string as\u000aopposed to unset)\u000a",
        "date" : "2025-02-01 12:03:10 +0000",
        "id" : "564e69d21c238c9c828dcd5c461fc227d70d4908",
        "msg" : "Add comments on the handling of blank env vars",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "bytecomp/dll.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/unix.c"
          },
          {
            "editType" : "edit",
            "file" : "toplevel/topcommon.ml"
          },
          {
            "editType" : "edit",
            "file" : "debugger/unix_tools.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "stdlib/filename.ml"
        ],
        "commitId" : "ed0ce03d3f03798fe6279097ca27f35f5f6677fd",
        "timestamp" : 1738413323000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Ignore empty TMPDIR in the Filename module\u000a\u000aFor Unix, the Filename module now treats TMPDIR being set to the\u000aempty string, as if it were not set at all (which causes it to use /tmp\u000ainstead).\u000a",
        "date" : "2025-02-01 12:35:23 +0000",
        "id" : "ed0ce03d3f03798fe6279097ca27f35f5f6677fd",
        "msg" : "Ignore empty TMPDIR in the Filename module",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/filename.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "yacc/main.c"
        ],
        "commitId" : "9c1d124951f980c9010d0c2b33f1c59bb6eb2008",
        "timestamp" : 1738413462000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Ignore empty TMPDIR in ocamlyacc\u000a\u000aIf TMPDIR is set to the empty string, the Unix build of ocamlyacc now\u000adefaults to /tmp (as it would if TMPDIR were not set at all).\u000a\u000aThe Windows default for when TMPDIR is not set is alredy the current\u000adirectory, so no change is required.\u000a",
        "date" : "2025-02-01 12:37:42 +0000",
        "id" : "9c1d124951f980c9010d0c2b33f1c59bb6eb2008",
        "msg" : "Ignore empty TMPDIR in ocamlyacc",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "yacc/main.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "yacc/main.c"
        ],
        "commitId" : "edc396a4fd830b222cd22c92d30dfc9c21b444d6",
        "timestamp" : 1738413554000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Propagate non-empty tmpdir in ocamlyacc\u000a\u000aBy making tmpdir explicitly \".\" in the rare corner-case of TMPDIR being\u000aset to the empty string on Windows, it becomes unnecessary to keep\u000achecking whether tmpdir is zero-length.\u000a",
        "date" : "2025-02-01 12:39:14 +0000",
        "id" : "edc396a4fd830b222cd22c92d30dfc9c21b444d6",
        "msg" : "Propagate non-empty tmpdir in ocamlyacc",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "yacc/main.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/startup_aux.c",
          "Changes"
        ],
        "commitId" : "bd0d4f500d5a8bc7c21514751db472d9d9cfc72a",
        "timestamp" : 1738413799000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Ignore CAML_DEBUG_FILE if it's \"Set But Null\"\u000a",
        "date" : "2025-02-01 12:43:19 +0000",
        "id" : "bd0d4f500d5a8bc7c21514751db472d9d9cfc72a",
        "msg" : "Ignore CAML_DEBUG_FILE if it's \"Set But Null\"",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/startup_aux.c"
          },
          {
            "editType" : "edit",
            "file" : "Changes"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tools/profiling.ml"
        ],
        "commitId" : "3ee037fc4155bd91a3d3c1d0066f5f748f3c4365",
        "timestamp" : 1738414044000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Ignore OCAMLPROF_DUMP if it's \"Set But Null\"\u000a",
        "date" : "2025-02-01 12:47:24 +0000",
        "id" : "3ee037fc4155bd91a3d3c1d0066f5f748f3c4365",
        "msg" : "Ignore OCAMLPROF_DUMP if it's \"Set But Null\"",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "tools/profiling.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "otherlibs/unix/unix_win32.ml"
        ],
        "commitId" : "1a480f9181c4ad732df838196b3571e3135e4fea",
        "timestamp" : 1738414265000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Use non-raising Sys.getenv_opt in win32unix\u000a\u000aUse the non-raising Sys.getenv_opt internally in the Windows\u000aimplementation of the Unix module. In passing, treat the highly unlikely\u000acorner case of COMSPEC being \"Set But Null\" as if COMSPEC were not set.\u000a",
        "date" : "2025-02-01 12:51:05 +0000",
        "id" : "1a480f9181c4ad732df838196b3571e3135e4fea",
        "msg" : "Use non-raising Sys.getenv_opt in win32unix",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "otherlibs/unix/unix_win32.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "driver/compmisc.mli",
          "driver/compmisc.ml"
        ],
        "commitId" : "7452f8c68d19d5f9169bf15a521a7d3c98ca63ad",
        "timestamp" : 1738414478000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Ignore empty strings in Compmisc.set_from_env\u000a\u000aPreviously, invocations such as\u000a\u000aOCAML_COLOR= ocamlopt\u000a\u000aemitted warning 46 (bad-env-variable) which is not particularly helpful.\u000aAt present, Compmisc.set_from_env is used to implement OCAML_COLOR and\u000aOCAML_ERROR_STYLE, neither of which attached significance to the empty\u000astring. Compmisc.set_from_env is there changed to explictly ignore the\u000aenvironment variable value if it is \"\".\u000a",
        "date" : "2025-02-01 12:54:38 +0000",
        "id" : "7452f8c68d19d5f9169bf15a521a7d3c98ca63ad",
        "msg" : "Ignore empty strings in Compmisc.set_from_env",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "driver/compmisc.ml"
          },
          {
            "editType" : "edit",
            "file" : "driver/compmisc.mli"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "ocamltest/ocamltest_stdlib.ml"
        ],
        "commitId" : "905f25ad2d2b509c43d5d741f2b35dd79bcb8cc1",
        "timestamp" : 1738414727000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Ignore empty environment variables in ocamltest\u000a\u000aMost uses in ocamltest were via its safe_getenv function which already\u000amade unset and empty equivalent. This generalises the underlying\u000agetenv_with_default_value function always to return the default value if\u000athe variable is _either_ unset or set to the empty string.\u000a",
        "date" : "2025-02-01 12:58:47 +0000",
        "id" : "905f25ad2d2b509c43d5d741f2b35dd79bcb8cc1",
        "msg" : "Ignore empty environment variables in ocamltest",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "ocamltest/ocamltest_stdlib.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "ocamltest/main.ml"
        ],
        "commitId" : "84ab2f3c94cfaa941e79159f06afc1696e866d01",
        "timestamp" : 1738414873000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Ignore empty MAKE variable in ocamltest\u000a",
        "date" : "2025-02-01 13:01:13 +0000",
        "id" : "84ab2f3c94cfaa941e79159f06afc1696e866d01",
        "msg" : "Ignore empty MAKE variable in ocamltest",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "ocamltest/main.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "file_formats/cmt_format.ml"
        ],
        "commitId" : "fd95b83a26e15de36a065b8faaa5d81ae36c67e7",
        "timestamp" : 1738415159000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Treat OCAML_BINANNOT_WITHENV as unset when empty\u000a\u000aThis environment is intended to be used in the context of\u000aOCAML_BINANNOT_WITHENV=1 to enable it, so treat OCAML_BINANNOT_WITHENV=\u000aas if it weren't set at all.\u000a",
        "date" : "2025-02-01 13:05:59 +0000",
        "id" : "fd95b83a26e15de36a065b8faaa5d81ae36c67e7",
        "msg" : "Treat OCAML_BINANNOT_WITHENV as unset when empty",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "file_formats/cmt_format.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/startup_byt.c",
          "runtime/win32.c"
        ],
        "commitId" : "7bc87b94616af3c8f656b9742793e295871bde60",
        "timestamp" : 1738418124000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Add some limited information about CAMLSIGPIPE\u000a",
        "date" : "2025-02-01 13:55:24 +0000",
        "id" : "7bc87b94616af3c8f656b9742793e295871bde60",
        "msg" : "Add some limited information about CAMLSIGPIPE",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/win32.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/runtime_events.c",
          "otherlibs/runtime_events/runtime_events.mli"
        ],
        "commitId" : "fbd119553915448b254ecca08dd308cf42e033cc",
        "timestamp" : 1738418576000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Ignore empty OCAML_RUNTIME_EVENTS_ variables\u000a\u000aThe handling of OCAML_RUNTIME_EVENTS_DIR was incorrect if the value as\u000a\"Set But Null\" and the intention in the manual for\u000aOCAML_RUNTIME_EVENTS_START and OCAML_RUNTIME_EVENTS_PRESERVE is clearly\u000athat they should be set to non-empty values in order to trigger the\u000arequired effect.\u000a\u000aAll three variables are now ignored if they are set, but to an empty\u000astring.\u000a",
        "date" : "2025-02-01 14:02:56 +0000",
        "id" : "fbd119553915448b254ecca08dd308cf42e033cc",
        "msg" : "Ignore empty OCAML_RUNTIME_EVENTS_ variables",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/runtime_events.c"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/runtime_events/runtime_events.mli"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".depend",
          "ocamldoc/odoc_misc.mli",
          "ocamldoc/odoc_man.ml",
          "ocamldoc/odoc_misc.ml"
        ],
        "commitId" : "d7d08578ab2bca04efeb0c9a561ea1ce5cb80c23",
        "timestamp" : 1738417150000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Harden processing of SOURCE_DATE_EPOCH in ocamldoc\u000a\u000aPreviously, running:\u000a\u000aSOURCE_DATE_EPOCH= ocamldoc\u000a\u000aresulted in an uncaught Failure \"float_of_string\" exception. The\u000aprocessing of SOURCE_DATE_EPOCH is firstly hardened to cope with parsing\u000aerrors and then a one-time warning is displayed the first time it's\u000aactually used (at present it's only required in Odoc_man).\u000a",
        "date" : "2025-02-01 13:39:10 +0000",
        "id" : "d7d08578ab2bca04efeb0c9a561ea1ce5cb80c23",
        "msg" : "Harden processing of SOURCE_DATE_EPOCH in ocamldoc",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "ocamldoc/odoc_man.ml"
          },
          {
            "editType" : "edit",
            "file" : "ocamldoc/odoc_misc.ml"
          },
          {
            "editType" : "edit",
            "file" : ".depend"
          },
          {
            "editType" : "edit",
            "file" : "ocamldoc/odoc_misc.mli"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "runtime/startup_aux.c",
          "utils/config.common.ml.in",
          "testsuite/tests/backtrace/backtrace2.reference",
          "stdlib/.depend",
          "stdlib/hashtbl.ml"
        ],
        "commitId" : "6f952d51184c00524f37e2f004ca51ff9323a529",
        "timestamp" : 1738419234000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Ignore blank OCAMLRUNPARAM, OCAMLLIB and CAMLLIB\u000a\u000aPreviously, if OCAMLRUNPARAM was \"Set But Null\", CAMLRUNPARAM was\u000acompletely ignored. Similarly, a \"Set But Null\" value for OCAMLLIB\u000acaused CAMLLIB and subsequently the default location of the Standard\u000aLibrary to be ignored. Especially for OCAMLLIB/CAMLLIB, this behaviour\u000ais counter-intuitive, as it's highly unlikely to be useful.\u000a\u000aNow, if OCAMLLIB is set, but to the empty string, then CAMLLIB is\u000achecked and, more importantly, if it is either not set or also set to\u000athe empty string then the default location of the Standard Library is\u000astill used. For consistency, if OCAMLRUNPARAM is set, but to the empty string,\u000athen CAMLRUNPARAM is read.\u000a",
        "date" : "2025-02-01 14:13:54 +0000",
        "id" : "6f952d51184c00524f37e2f004ca51ff9323a529",
        "msg" : "Ignore blank OCAMLRUNPARAM, OCAMLLIB and CAMLLIB",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/startup_aux.c"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.common.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/backtrace/backtrace2.reference"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/.depend"
          },
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/hashtbl.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "utils/misc.mli",
          "testsuite/tools/test_ld_conf.ml",
          "runtime/unix.c",
          "runtime/startup_byt.c",
          "utils/misc.ml",
          "runtime/win32.c",
          "runtime/dynlink.c"
        ],
        "commitId" : "d979f37bb09a79f506e9c79eac40a8d0ce46eef0",
        "timestamp" : 1738425798000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Ignore empty components in PATH-like things\u000a\u000aPOSIX recognises empty components in a PATH-like variable as meaning \".\"\u000a(the current directory). This is reflected in the processing of\u000aOCAMLTOP_INCLUDE_PATH, CAML_LD_LIBRARY_PATH and ld.conf where either a\u000ablank component or a blank line is interpreted as \".\"\u000a\u000aSomewhat confusingly, this processing is applied inconsistently between\u000aUnix and Windows (it's confusing given that Windows more readily\u000aincludes the current working directory by default in PATH searches).\u000a\u000aIt also has the side-effect that a \"Set But Null\" environment variable\u000ais interpreted as \".\" which counter-intuitively makes\u000aCAML_LD_LIBRARY_PATH= ocamlrun add the current working directory to the\u000asearch path.\u000a\u000aBlank lines and empty components of both OCAMLTOP_INCLUDE_PATH and\u000aCAML_LD_LIBRARY_PATH are now ignored. The current working directory can\u000astill be explicitly included, of course, by adding a \".\" entry/line\u000awhere required.\u000a",
        "date" : "2025-02-01 16:03:18 +0000",
        "id" : "d979f37bb09a79f506e9c79eac40a8d0ce46eef0",
        "msg" : "Ignore empty components in PATH-like things",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/unix.c"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_ld_conf.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/misc.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/dynlink.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "runtime/win32.c"
          },
          {
            "editType" : "edit",
            "file" : "utils/misc.mli"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "lambda/printlambda.ml",
          "lambda/lambda.mli",
          "lambda/translprim.ml",
          "bytecomp/bytegen.ml",
          "lambda/lambda.ml",
          "runtime/unix.c",
          "runtime/win32.c",
          "middle_end/closure/closure.ml",
          "middle_end/flambda/closure_conversion.ml"
        ],
        "commitId" : "39930b194f5021172ae6ab6edb26ddce93289747",
        "timestamp" : 1738251797000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Add %shared_libraries primitive\u000a\u000aExposes the value of SUPPORT_DYNAMIC_LINKING.\u000a",
        "date" : "2025-01-30 15:43:17 +0000",
        "id" : "39930b194f5021172ae6ab6edb26ddce93289747",
        "msg" : "Add %shared_libraries primitive",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "bytecomp/bytegen.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/unix.c"
          },
          {
            "editType" : "edit",
            "file" : "middle_end/closure/closure.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/win32.c"
          },
          {
            "editType" : "edit",
            "file" : "lambda/printlambda.ml"
          },
          {
            "editType" : "edit",
            "file" : "lambda/lambda.ml"
          },
          {
            "editType" : "edit",
            "file" : "lambda/lambda.mli"
          },
          {
            "editType" : "edit",
            "file" : "lambda/translprim.ml"
          },
          {
            "editType" : "edit",
            "file" : "middle_end/flambda/closure_conversion.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "boot/ocamllex",
          "boot/ocamlc"
        ],
        "commitId" : "6c9898a101b5b1017d69d70c2f29ab9955b69ccb",
        "timestamp" : 1738252301000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Bootstrap\u000a",
        "date" : "2025-01-30 15:51:41 +0000",
        "id" : "6c9898a101b5b1017d69d70c2f29ab9955b69ccb",
        "msg" : "Bootstrap",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "boot/ocamllex"
          },
          {
            "editType" : "edit",
            "file" : "boot/ocamlc"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "toplevel/byte/topeval.ml",
          "runtime/startup_byt.c",
          "otherlibs/dynlink/byte/dynlink.ml"
        ],
        "commitId" : "6b1fdaa988467dd3929592b536da284fa7c1a0c7",
        "timestamp" : 1738252929000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Improve the \"dynamic loading not supported\" error\u000a\u000aIt is possible, especially when using Dynlink, to end up in the\u000asituation where a bytecode runtime which doesn't support dynamic loading\u000ais asked to load support DLLs (e.g. a bytecode image with a DLLS\u000asection, or a cma archive passed to the toplevel/Dynlink which has a\u000anon-empty lib_dllibs list).\u000a\u000aPreviously, the error message would refer to the name of the first DLL\u000abeing loaded and simply state that dynamic loading is not supported. The\u000aconfusing part is that typically this would refer to a DLL which is not\u000aon the system.\u000a\u000aNow, the bytecode linker only writes DLLS and DLPT when there are\u000aentries to write in them, and the runtime, toplevel and Dynlink provide\u000aa direct explanation that dynamic loading is needed, but is not\u000aavailable. In particular, the error now refers to the file which is\u000abeing loaded (i.e. the bytecode executable or the .cma file) rather than\u000aa .so file which doesn't exist.\u000a",
        "date" : "2025-01-30 16:02:09 +0000",
        "id" : "6b1fdaa988467dd3929592b536da284fa7c1a0c7",
        "msg" : "Improve the \"dynamic loading not supported\" error",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "otherlibs/dynlink/byte/dynlink.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "toplevel/byte/topeval.ml"
          },
          {
            "editType" : "edit",
            "file" : "Changes"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/startup_byt.c",
          "runtime/dynlink.c"
        ],
        "commitId" : "f221182b2d3bc2f368a7a500de0d256226abe8cb",
        "timestamp" : 1738269508000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Free tables after handing off to Dynlink\u000a\u000aIn the debug runtime, caml_prim_name_table remains for the lifetime of\u000athe program, as it's used by instrtrace.c, but in normal operation, once\u000athe list of primitives has been handed over to Dynlink, it's no longer\u000arequired. In the normal runtime, it's now freed after this handover.\u000a\u000aIn passing, strings themselves are no longer duplicated, as the code\u000apath is a good deal simpler than it used to be, and the bytecode section\u000aitself can reliably be used as the underlying buffer for\u000acaml_prim_name_table.\u000a\u000acaml_shared_libs_path is only kept at all to be handed over to Dynlink.\u000aIt, along with the two underlying buffers for CAML_LD_LIBRARY_PATH and\u000ald.conf are freed after the call.\u000a",
        "date" : "2025-01-30 20:38:28 +0000",
        "id" : "f221182b2d3bc2f368a7a500de0d256226abe8cb",
        "msg" : "Free tables after handing off to Dynlink",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/dynlink.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/caml/startup_aux.h",
          "runtime/startup_aux.c",
          "runtime/startup_byt.c"
        ],
        "commitId" : "6e1b3d18a001bf4b3cfd0d1c961725f498210c7a",
        "timestamp" : 1731062551000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Move print_magic and print_config out of caml_params\u000a\u000aThey are only used by the bytecode runtime and can be made static to\u000astartup_byt.\u000a",
        "date" : "2024-11-08 11:42:31 +0100",
        "id" : "6e1b3d18a001bf4b3cfd0d1c961725f498210c7a",
        "msg" : "Move print_magic and print_config out of caml_params",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/caml/startup_aux.h"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_aux.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/startup_aux.c",
          "stdlib/.depend",
          "testsuite/tests/backtrace/backtrace2.reference",
          "runtime/gc_ctrl.c",
          "runtime/caml/gc_ctrl.h",
          "stdlib/hashtbl.ml"
        ],
        "commitId" : "112118b0dcd2f02ed50625606c48260011ba23df",
        "timestamp" : 1732705938000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Preserve option R in caml_runtime_parameters\u000a\u000aThe setting for R was previous omitted in Sys.runtime_parameters, since\u000ait was only processed directly by the Hashtbl module and not stored in\u000athe runtime. Option R is now processed in caml_parase_ocamlrunparam and\u000astored to be accessed and updated via new primitives for the Hashtbl\u000amodule.\u000a\u000aCo-authored-by: David Allsopp <david.allsopp@metastack.com>\u000a",
        "date" : "2024-11-27 12:12:18 +0100",
        "id" : "112118b0dcd2f02ed50625606c48260011ba23df",
        "msg" : "Preserve option R in caml_runtime_parameters",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/startup_aux.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/gc_ctrl.c"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/.depend"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/gc_ctrl.h"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/hashtbl.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/backtrace/backtrace2.reference"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/gc_ctrl.c"
        ],
        "commitId" : "26bbe0fcbaaf4059cf0d26a901d4466da5903b70",
        "timestamp" : 1738584565000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Swap the V and v in caml_runtime_parameters\u000a\u000aConsistency - options displayed in alphabetical order with the uppercase\u000aletter appearing before the lowercase letter\u000a",
        "date" : "2025-02-03 12:09:25 +0000",
        "id" : "26bbe0fcbaaf4059cf0d26a901d4466da5903b70",
        "msg" : "Swap the V and v in caml_runtime_parameters",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/gc_ctrl.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "man/ocamlrun.1",
          "utils/clflags.mli",
          "utils/clflags.ml",
          "driver/compenv.ml",
          "runtime/caml/startup_aux.h",
          "tools/objinfo.ml",
          "driver/compenv.mli",
          "runtime/gc_ctrl.c",
          "asmcomp/asmlink.ml",
          "driver/maindriver.ml",
          "manual/src/cmds/runtime.etex",
          "runtime/startup_byt.c",
          "asmcomp/cmm_helpers.mli",
          "runtime/gen_primsc.sh",
          "asmcomp/cmm_helpers.ml",
          "runtime/startup_aux.c",
          "bytecomp/bytelink.ml",
          ".depend",
          "bytecomp/bytesections.mli",
          "bytecomp/bytesections.ml"
        ],
        "commitId" : "0b23ab72f0bb8527d7da954f5de30cb2b19854de",
        "timestamp" : 1628698584000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Add -set-runtime-default to the compilers\u000a\u000aWhen linking an executable, allows to set default to OCAMLRUNPARAM\u000avalues. This new OCAMLRUNPARAM string is accessible using the\u000a\"caml_executable_ocamlrunparam\" symbol or is embedded in a bytecode\u000asection.\u000a\u000aCo-authored-by: David Allsopp <david.allsopp@metastack.com>\u000a",
        "date" : "2021-08-11 17:16:24 +0100",
        "id" : "0b23ab72f0bb8527d7da954f5de30cb2b19854de",
        "msg" : "Add -set-runtime-default to the compilers",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/caml/startup_aux.h"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytesections.ml"
          },
          {
            "editType" : "edit",
            "file" : "tools/objinfo.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_aux.c"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "driver/maindriver.ml"
          },
          {
            "editType" : "edit",
            "file" : ".depend"
          },
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "manual/src/cmds/runtime.etex"
          },
          {
            "editType" : "edit",
            "file" : "runtime/gc_ctrl.c"
          },
          {
            "editType" : "edit",
            "file" : "asmcomp/asmlink.ml"
          },
          {
            "editType" : "edit",
            "file" : "asmcomp/cmm_helpers.mli"
          },
          {
            "editType" : "edit",
            "file" : "driver/compenv.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/gen_primsc.sh"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.mli"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytesections.mli"
          },
          {
            "editType" : "edit",
            "file" : "asmcomp/cmm_helpers.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "man/ocamlrun.1"
          },
          {
            "editType" : "edit",
            "file" : "driver/compenv.mli"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/testLinkModes.ml"
        ],
        "commitId" : "8703b35d487705133060886a77aefc34a40e3c85",
        "timestamp" : 1738587445000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Test -set-runtime-default in test-in-prefix\u000a\u000aThe test programs in the run after the prefix has been renamed are\u000acompiled with `-set-runtime-default R`, and the test program verifies\u000athat Hashtbl.is_randomized returns the expected value.\u000a",
        "date" : "2025-02-03 12:57:25 +0000",
        "id" : "8703b35d487705133060886a77aefc34a40e3c85",
        "msg" : "Test -set-runtime-default in test-in-prefix",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testLinkModes.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/startup_byt.c"
        ],
        "commitId" : "48ead089925a57670c7e44e9802564b57f2093e1",
        "timestamp" : 1745420721000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Re-order initialisations in bytecode\u000a\u000aIn bytecode startup, defer allocating memory until after the bytecode\u000aimage has been loaded as far as possible.\u000a",
        "date" : "2025-04-23 16:05:21 +0100",
        "id" : "48ead089925a57670c7e44e9802564b57f2093e1",
        "msg" : "Re-order initialisations in bytecode",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/startup_byt.c",
          "driver/maindriver.ml",
          "runtime/caml/misc.h"
        ],
        "commitId" : "138bf7b5a79041204249bb25dc12bfc7f3cf9184",
        "timestamp" : 1738706327000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Support c=1 mode in ocamlrun\u000a\u000aThe runtime's pooling mode has a slight Catch-22 problem for ocamlrun\u000awhen enabled using -set-runtime-default. Opening the bytecode file and\u000areading the ORUN section requires the memory subsystem.\u000a\u000aIn this revised version, caml_main in bytecode is particularly careful\u000ato track exactly what will have been allocated prior to reading the ORUN\u000asection and if ORUN requires the system to start pooling mode, the\u000aruntime now takes temporary malloc'd copies of everything which has been\u000amade so far so that it can be safely copied with a caml_stat_alloc\u000a_after_ pooling mode has been enabled.\u000a",
        "date" : "2025-02-04 21:58:47 +0000",
        "id" : "138bf7b5a79041204249bb25dc12bfc7f3cf9184",
        "msg" : "Support c=1 mode in ocamlrun",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "driver/maindriver.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/misc.h"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "testsuite/tools/testLinkModes.ml",
          "otherlibs/unix/Makefile",
          "otherlibs/Makefile.otherlibs.common"
        ],
        "commitId" : "7d0ce4b37174d1b667ce0ae714e824ea09a901bc",
        "timestamp" : 1737583191000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Fix C library options for win32unix\u000a\u000a-lws2_32 and -ladvapi32 are already supplied by default, so they don't\u000aneed to be in unix.cma/unix.cmxa. However, they do need to be passed\u000awhen building unix.cmxs, and they were previously acquired via\u000aunix.cmxa. Tweak the way LDOPTS is used in Makefile.otherlibs.common\u000a(which now is only used for the unix library) so that it's correctly\u000apassed to both ocamlopt and ocamlmklib.\u000a",
        "date" : "2025-01-22 21:59:51 +0000",
        "id" : "7d0ce4b37174d1b667ce0ae714e824ea09a901bc",
        "msg" : "Fix C library options for win32unix",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/unix/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testLinkModes.ml"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/Makefile.otherlibs.common"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/testToplevel.ml",
          "Changes",
          "otherlibs/systhreads/st_stubs.c",
          "otherlibs/systhreads/Makefile",
          "testsuite/tools/testDynlink.ml"
        ],
        "commitId" : "da9db14aa23d5e7574d8bd59208468bf113db91b",
        "timestamp" : 1720275839000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Build and install threads.cmxs\u000a\u000aCrucially, the corrects the flags used for creating a DLL on Windows,\u000aallowing threads.cmxs to be loaded in ocamlnat.\u000a",
        "date" : "2024-07-06 15:23:59 +0100",
        "id" : "da9db14aa23d5e7574d8bd59208468bf113db91b",
        "msg" : "Build and install threads.cmxs",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "otherlibs/systhreads/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testToplevel.ml"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/systhreads/st_stubs.c"
          },
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testDynlink.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "utils/ccomp.ml",
          "testsuite/tools/testLinkModes.ml"
        ],
        "commitId" : "e4a775afbe17d59e1f73f1c154e3b7fd8f8d065e",
        "timestamp" : 1729167515000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Fix inclusion of libraries when partial linking\u000a\u000ald -r (certainly in GNU binutils) has an empty search path - co-opt the\u000aMSVC search code and always resolve libraries when partial linking,\u000aexcept this time _ignore_ the ones which are missing. This seems to fit\u000athe rest of -output-complete-obj, given that the _standard_ C libraries\u000aare also omitted (-lm, -lpthread, etc.)\u000a",
        "date" : "2024-10-17 13:18:35 +0100",
        "id" : "e4a775afbe17d59e1f73f1c154e3b7fd8f8d065e",
        "msg" : "Fix inclusion of libraries when partial linking",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "utils/ccomp.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testLinkModes.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/testToplevel.ml",
          "testsuite/tools/testDynlink.ml",
          "flexdll",
          "tools/ci/inria/main"
        ],
        "commitId" : "84b9f1c278e41e7c0442c1de48cf6b3bb2abdd79",
        "timestamp" : 1732222163000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Use entrypoint flexdll branch\u000a\u000aFixes loading unix.cmxs in Cygwin64\u000a",
        "date" : "2024-11-21 20:49:23 +0000",
        "id" : "84b9f1c278e41e7c0442c1de48cf6b3bb2abdd79",
        "msg" : "Use entrypoint flexdll branch",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testToplevel.ml"
          },
          {
            "editType" : "edit",
            "file" : "tools/ci/inria/main"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testDynlink.ml"
          },
          {
            "editType" : "edit",
            "file" : "flexdll"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/testRelocation.ml",
          ".gitignore",
          ".depend",
          "Makefile"
        ],
        "commitId" : "56f52170451278786de3a12571d1c0e58317932e",
        "timestamp" : 1743793364000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Stop installing and documenting config_main, etc.\u000a\u000aConfig_main and Config_boot are built to ensure in the build that\u000autils/config.generated.ml.in and utils/config.fixed.ml are kept in sync\u000a(so that the next bootstrap doesn't unexpectedly break). However,\u000abecause these files were generated in the utils directory, they were\u000apicked up both by the install recipe and also when generating API\u000adocumentation.\u000a\u000aIt's slightly hairy to remove the wildcards and use filter, because we\u000acan easily end up with command lines which are too long (even on Unix),\u000aso instead these two modules are now generated in utils/config/\u000a",
        "date" : "2025-04-04 20:02:44 +0100",
        "id" : "56f52170451278786de3a12571d1c0e58317932e",
        "msg" : "Stop installing and documenting config_main, etc.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testRelocation.ml"
          },
          {
            "editType" : "edit",
            "file" : ".depend"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : ".gitignore"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/toolchain.ml",
          "Makefile"
        ],
        "commitId" : "10a0fddf518721653344fc01443880415ac8f9ce",
        "timestamp" : 1743802795000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Use clang-cl for flexdll support objects\u000a",
        "date" : "2025-04-04 22:39:55 +0100",
        "id" : "10a0fddf518721653344fc01443880415ac8f9ce",
        "msg" : "Use clang-cl for flexdll support objects",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/toolchain.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/test_ld_conf.ml",
          "testsuite/in_prefix/Makefile.test"
        ],
        "commitId" : "baf60face3fcaa7fdf2ba43853a1fb31c37a94fc",
        "timestamp" : 1754663562000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Two minor clean-ups in the in-prefix-tests\u000a\u000aDead code in the Makefile and the less-trodden path in\u000aTest_ld_conf.ensure_dir contained an obvious incorrect function call...\u000a",
        "date" : "2025-08-08 15:32:42 +0100",
        "id" : "baf60face3fcaa7fdf2ba43853a1fb31c37a94fc",
        "msg" : "Two minor clean-ups in the in-prefix-tests",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/in_prefix/Makefile.test"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_ld_conf.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/extern.c"
        ],
        "commitId" : "a68c290ef0c1d772d9b1e25bfbc509f1c5d92418",
        "timestamp" : 1618137938000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Add caml_output_value_with_compat primitive\u000a\u000aAlternate version of caml_output_value which returns a boolean\u000aindicating if the result was 32-bit compatible and would have succeeded\u000aif Compat_32 had been included in the flags.\u000a",
        "date" : "2021-04-11 11:45:38 +0100",
        "id" : "a68c290ef0c1d772d9b1e25bfbc509f1c5d92418",
        "msg" : "Add caml_output_value_with_compat primitive",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/extern.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "bytecomp/symtable.ml",
          "toplevel/byte/trace.ml",
          "toplevel/byte/topeval.ml",
          "testsuite/tests/tool-toplevel/pr9701.compilers.reference",
          "bytecomp/meta.ml",
          "Makefile",
          "bytecomp/meta.mli",
          "otherlibs/dynlink/byte/dynlink_symtable.ml",
          ".depend",
          "testsuite/tests/tool-toplevel/pr6468.compilers.reference",
          "runtime/meta.c"
        ],
        "commitId" : "0b7a36e2b843c30fc3e7cc1bafcff44ba485cadd",
        "timestamp" : 1755021911000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Split Meta into two\u000a\u000aAll the functions in Meta are now only required by the toplevel, however\u000atwo of them are still quite tangled up with Symtable. Begin the process\u000aof disentanglement by moving those two functions to Symtable and the\u000aremaining ones directly to the bytecode toplevel (Dynlink already has\u000aits own implementations).\u000a",
        "date" : "2025-08-12 19:05:11 +0100",
        "id" : "0b7a36e2b843c30fc3e7cc1bafcff44ba485cadd",
        "msg" : "Split Meta into two",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "toplevel/byte/trace.ml"
          },
          {
            "editType" : "delete",
            "file" : "bytecomp/meta.ml"
          },
          {
            "editType" : "edit",
            "file" : "toplevel/byte/topeval.ml"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : ".depend"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/tool-toplevel/pr9701.compilers.reference"
          },
          {
            "editType" : "delete",
            "file" : "bytecomp/meta.mli"
          },
          {
            "editType" : "edit",
            "file" : "runtime/meta.c"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/dynlink/byte/dynlink_symtable.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/tool-toplevel/pr6468.compilers.reference"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/symtable.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "bytecomp/bytelink.ml"
        ],
        "commitId" : "04b46c57be198d5fdfd780296a07c3940bdb6862",
        "timestamp" : 1755025881000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Omit CRCS if caml_reify_bytecode isn't used\u000a\u000aBytecode images (including for -output-obj) now only include the CRCS\u000asection if the image actually needs dynamic loading (which is identified\u000aby the use of the caml_reify_bytecode primitive which is only used by\u000athe toplevel and dynlink).\u000a",
        "date" : "2025-08-12 20:11:21 +0100",
        "id" : "04b46c57be198d5fdfd780296a07c3940bdb6862",
        "msg" : "Omit CRCS if caml_reify_bytecode isn't used",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "boot/ocamllex",
          "boot/ocamlc",
          "Makefile"
        ],
        "commitId" : "dde073e8cbbfde02fd163d6b2024f26eb9da4e73",
        "timestamp" : 1755026222000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Eliminate post-processing of bootstrap artefact\u000a\u000aIn order to be repeatable, the coreboot cycle routinely has to relink\u000aboth boot artefacts with a fixed configuration. It's not therefore much\u000amore of a stretch to link those artefacts with the required flags to\u000asuppress both the header (and RNTM section, if applicable) and debugging\u000ainformation.\u000a\u000aCombined with the previous change to suppress CRCS when the image\u000adoesn't use dynamic loading, the coreboot cycle can be accomplished\u000awithout having to post-process the artefacts with stripdebug.\u000a",
        "date" : "2025-08-12 20:17:02 +0100",
        "id" : "dde073e8cbbfde02fd163d6b2024f26eb9da4e73",
        "msg" : "Eliminate post-processing of bootstrap artefact",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "boot/ocamllex"
          },
          {
            "editType" : "edit",
            "file" : "boot/ocamlc"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/harness.ml",
          "testsuite/tools/testBytecodeBinaries.ml"
        ],
        "commitId" : "c12fe94097ad7c87c16618fef40592d37ef6717f",
        "timestamp" : 1757589208000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Fold-back into the test\u000a",
        "date" : "2025-09-11 12:13:28 +0100",
        "id" : "c12fe94097ad7c87c16618fef40592d37ef6717f",
        "msg" : "Fold-back into the test",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tools/harness.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/testBytecodeBinaries.ml"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
      "fullName" : "david.allsopp"
    }
  ]
}