{
  "_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,055",
          "upstreamBuild" : 1055,
          "upstreamProject" : "precheck",
          "upstreamUrl" : "job/precheck/"
        }
      ]
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/backport-trunk" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1055,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "347e68ced3ad39c626d71117686aa799a65f3328",
            "branch" : [
              {
                "SHA1" : "347e68ced3ad39c626d71117686aa799a65f3328",
                "name" : "refs/remotes/origin/backport-trunk"
              }
            ]
          },
          "revision" : {
            "SHA1" : "347e68ced3ad39c626d71117686aa799a65f3328",
            "branch" : [
              {
                "SHA1" : "347e68ced3ad39c626d71117686aa799a65f3328",
                "name" : "refs/remotes/origin/backport-trunk"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "347e68ced3ad39c626d71117686aa799a65f3328",
        "branch" : [
          {
            "SHA1" : "347e68ced3ad39c626d71117686aa799a65f3328",
            "name" : "refs/remotes/origin/backport-trunk"
          }
        ]
      },
      "remoteUrls" : [
        "${REPO_URL}"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "false,ocaml-riscv",
  "duration" : 11131528,
  "estimatedDuration" : 7181960,
  "executor" : None,
  "fullDisplayName" : "precheck » false,ocaml-riscv false,ocaml-riscv",
  "id" : "1055",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 1055,
  "queueId" : 19207,
  "result" : "SUCCESS",
  "timestamp" : 1745492612554,
  "url" : "https://ci.inria.fr/ocaml/job/precheck/flambda=false,label=ocaml-riscv/1055/",
  "builtOn" : "ocaml-riscv",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/test_in_prefix.ml"
        ],
        "commitId" : "baba9257616ab49e2cd2203a66c1bd3f39473bad",
        "timestamp" : 1745488279000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Xcode 16 / macOS 15\u000a",
        "date" : "2025-04-24 10:51:19 +0100",
        "id" : "baba9257616ab49e2cd2203a66c1bd3f39473bad",
        "msg" : "Xcode 16 / macOS 15",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "configure.ac",
          "configure",
          "ocaml-variants.opam",
          "Makefile"
        ],
        "commitId" : "bd7c392edf384a6e904176d56fdede2b02194d5d",
        "timestamp" : 1736950826000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Add --with-stublibs configure option\u000a\u000a--with-stublibs is intended for use in opam and allows an additional\u000adirectory to be added at the top of $(ocamlc -where)/ld.conf.\u000a",
        "date" : "2025-01-15 14:20:26 +0000",
        "id" : "bd7c392edf384a6e904176d56fdede2b02194d5d",
        "msg" : "Add --with-stublibs configure option",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "ocaml-variants.opam"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/caml/osdeps.h",
          "runtime/dynlink.c"
        ],
        "commitId" : "dea4758baa9a65e2886bbfc1215f64061f0a0bf1",
        "timestamp" : 1737840156000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Don't add a double-separator when locating ld.conf\u000a\u000aWhen calculating the full path for ld.conf, the runtime unconditionally\u000aconcatenated \"/ld.conf\". This is harmless when the separators appear in\u000athe middle of a path (\"/usr/local/lib/ocaml//ld.conf\" is equivalent to\u000athe version with only single slashes), but it is technically incorrect\u000afor two corners cases with OCAMLLIB and CAMLLIB:\u000a\u000a- if either is explicitly set to \"/\" then \"//ld.conf\" is _not_ the same\u000a  file as \"/ld.conf\". This is mildly relevant on Windows and Cygwin\u000a  where the two initial slashes (including as \"\\/\" for native Windows)\u000a  will be interpreted as a UNC path\u000a- if either is explicitly blank, then \"ld.conf\" (i.e. ld.conf in the\u000a  current directory) is a less illogical file to open than \"/ld.conf\"\u000a",
        "date" : "2025-01-25 21:22:36 +0000",
        "id" : "dea4758baa9a65e2886bbfc1215f64061f0a0bf1",
        "msg" : "Don't add a double-separator when locating ld.conf",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/caml/osdeps.h"
          },
          {
            "editType" : "edit",
            "file" : "runtime/dynlink.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/test_in_prefix.ml",
          "runtime/caml/osdeps.h",
          "runtime/dynlink.c",
          "bytecomp/dll.ml"
        ],
        "commitId" : "5ed071788f5c3e16955c285f5a7c502005fe8963",
        "timestamp" : 1737885115000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "ld.conf-relative path interpretation\u000a\u000aExplicit relative paths in ld.conf are now interpreted relative to the\u000adirectory containing ld.conf.\u000a",
        "date" : "2025-01-26 09:51:55 +0000",
        "id" : "5ed071788f5c3e16955c285f5a7c502005fe8963",
        "msg" : "ld.conf-relative path interpretation",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/osdeps.h"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/dll.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/dynlink.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/in_prefix/README.md",
          "testsuite/tools/test_in_prefix.ml",
          "configure.ac",
          "configure",
          "ocaml-variants.opam"
        ],
        "commitId" : "d8950ae7641981e3a621ee0534c8b3ad0837261b",
        "timestamp" : 1618063447000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Generate ld.conf using relative paths\u000a",
        "date" : "2021-04-10 15:04:07 +0100",
        "id" : "d8950ae7641981e3a621ee0534c8b3ad0837261b",
        "msg" : "Generate ld.conf using relative paths",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "ocaml-variants.opam"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/in_prefix/README.md"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "utils/config.mli",
          "testsuite/tools/test_in_prefix.ml",
          "runtime/dynlink.c",
          "manual/src/cmds/runtime.etex",
          "bytecomp/dll.ml",
          "runtime/caml/dynlink.h"
        ],
        "commitId" : "fba6a2ec1a54d8ce85881a3474ea05a1c06051c3",
        "timestamp" : 1618051399000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Load ld.conf from all possible places\u000a\u000aBefore, the first ld.conf found from $OCAMLLIB, $CAMLLIB or the\u000apreconfigured standard library location was loaded. Now all of these\u000aare loaded.\u000a",
        "date" : "2021-04-10 11:43:19 +0100",
        "id" : "fba6a2ec1a54d8ce85881a3474ea05a1c06051c3",
        "msg" : "Load ld.conf from all possible places",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/dynlink.c"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.mli"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/dll.ml"
          },
          {
            "editType" : "edit",
            "file" : "manual/src/cmds/runtime.etex"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/dynlink.h"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/startup_byt.c",
          "runtime/dynlink.c",
          "runtime/caml/dynlink.h"
        ],
        "commitId" : "0f6e15cc36729c44a716c6790425fdf0c2fe98f2",
        "timestamp" : 1738489757000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Remove caml_get_stdlib_location\u000a\u000aThe function was only ever added to share the logic between dynlink.c\u000aand startup_byt.c - now that dynlink.c doesn't require it, move the\u000afunction to startup_byt.c and make it internal again.\u000a",
        "date" : "2025-02-02 09:49:17 +0000",
        "id" : "0f6e15cc36729c44a716c6790425fdf0c2fe98f2",
        "msg" : "Remove caml_get_stdlib_location",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/dynlink.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/dynlink.h"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "bytecomp/dll.ml",
          "testsuite/tools/test_in_prefix.ml",
          "runtime/dynlink.c"
        ],
        "commitId" : "3b5cbe2e3d80752bcaca0c08d2c0865d52163f74",
        "timestamp" : 1618051634000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Harden the parsing of ld.conf w.r.t. load and CRLF\u000a",
        "date" : "2021-04-10 11:47:14 +0100",
        "id" : "3b5cbe2e3d80752bcaca0c08d2c0865d52163f74",
        "msg" : "Harden the parsing of ld.conf w.r.t. load and CRLF",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "bytecomp/dll.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/dynlink.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/test_in_prefix.ml",
          "runtime/dynlink.c",
          "bytecomp/dll.ml",
          "runtime/startup_byt.c",
          "runtime/caml/dynlink.h"
        ],
        "commitId" : "d8d2698718d0a5611d906b3865f52dff5404ae23",
        "timestamp" : 1737046840000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Use caml_parse_ld_conf in ocamlc\u000a\u000aEliminate the need for two implementations of the parsing logic for\u000ald.conf by sharing the C implementation (which must exist, since it's\u000apart of bytecode startup) with the bytecode compiler, replacing\u000aDll.ld_conf_contents\u000a",
        "date" : "2025-01-16 17:00:40 +0000",
        "id" : "d8d2698718d0a5611d906b3865f52dff5404ae23",
        "msg" : "Use caml_parse_ld_conf in ocamlc",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "bytecomp/dll.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/dynlink.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/dynlink.h"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "configure.ac",
          "otherlibs/systhreads/Makefile",
          "configure",
          "otherlibs/Makefile.otherlibs.common",
          "Makefile"
        ],
        "commitId" : "f8fb79c5917b109084c34cf5097492e5cfbe463a",
        "timestamp" : 1738243289000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Tidy installation of static builds\u000a\u000a- $libdir/stublibs is no longer created for a --disable-shared build\u000a- When $libdir/stublibs is not created, it is also not added to ld.conf\u000a",
        "date" : "2025-01-30 13:21:29 +0000",
        "id" : "f8fb79c5917b109084c34cf5097492e5cfbe463a",
        "msg" : "Tidy installation of static builds",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/systhreads/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/Makefile.otherlibs.common"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "configure.ac",
          "configure"
        ],
        "commitId" : "32c07e16f0d0663b59cc72c77618d54d8c4658d6",
        "timestamp" : 1739009598000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Fix the detection of Cygwin-like build environments\u000a\u000aBoth Cygwin and MSYS2 are now consistently detected on MSYS2. In\u000aparticular, this means that ./configure --prefix $PWD/install and\u000asimilar will cause the prefix to be correctly translated to a Windows\u000apath, as already happens on Cygwin.\u000a",
        "date" : "2025-02-08 10:13:18 +0000",
        "id" : "32c07e16f0d0663b59cc72c77618d54d8c4658d6",
        "msg" : "Fix the detection of Cygwin-like build environments",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "configure.ac",
          ".github/workflows/build-msvc.yml",
          "configure",
          "tools/ci/appveyor/appveyor_build.sh"
        ],
        "commitId" : "478ea61b892f5528efbbf0dd6a94d9b0a84ed23a",
        "timestamp" : 1739033315000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Preserve backslashes in --prefix\u000a\u000aPreviously, the --prefix argument was always normalised with cygpath -m\u000awhich meant that regardless of the argument, the paths used in the\u000acompiler would always use slashes.\u000a\u000aThis behaviour is preserved if a slash is detected in the argument, i.e.\u000athe caller explicitly uses mixed notation (e.g. `--prefix=C:/Prefix` or\u000a`--prefix $PWD/install`). In particular, it means that a Cygwin-style\u000apath will be correctly converted to a Windows-style path.\u000a\u000aIf the path uses backslashes, then it is still converted to use forward\u000aslashes for the installation commands, but the backslashes are otherwise\u000apreserved and used within the build itself.\u000a",
        "date" : "2025-02-08 16:48:35 +0000",
        "id" : "478ea61b892f5528efbbf0dd6a94d9b0a84ed23a",
        "msg" : "Preserve backslashes in --prefix",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".github/workflows/build-msvc.yml"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "tools/ci/appveyor/appveyor_build.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/test_in_prefix.ml",
          "runtime/backtrace_byt.c",
          "bytecomp/bytelink.ml",
          "runtime/startup_byt.c",
          "runtime/caml/startup.h",
          "runtime/gen_primsc.sh"
        ],
        "commitId" : "4ebf0c1ab34b215d575a7ef91c0aaf553205eb86",
        "timestamp" : 1742461734000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Harden startup of -custom executables\u000a\u000aBy default, ocamlrun first tries to resolve argv[0] to determine where\u000athe bytecode image is and then tries opening the executable image\u000aitself. This is obviously correct for ocamlrun, when being called using\u000aa shebang or executable header, but it's not correct for -custom\u000aexecutables where we _know_ that the bytecode image should be with the\u000aexecutable. To achieve this, a new mode is added to\u000acaml_byte_program_mode (and the existing ones renamed) such that\u000acaml_byte_program_mode is now STANDARD (for ocamlrun - the existing\u000abehaviour), APPENDED (for -custom executables - the new behaviour) and\u000aEMBEDDED (for -output-complete-exe/-output-obj - the original use of\u000ait).\u000a\u000aThe mode is also set directly by the linker, rather than having a\u000adefault in libcamlrun which is then overridden by the startup code for\u000a-output-complete-exe.\u000a\u000aIn the new APPENDED mode, if caml_executable_name is implemented (i.e.\u000ait returns a string) then this file _must_ contain the bytecode image\u000aand no other mechanisms are used. On platforms where\u000acaml_executable_name is not implemented, APPENDED falls back to STANDARD\u000afor compatibility.\u000a\u000aTechnically, this stops an argv[0] injection attack on setuid/setgid\u000a-custom bytecode executables, although setuid should be used with\u000a-output-complete-exe, if at all.\u000a",
        "date" : "2025-03-20 09:08:54 +0000",
        "id" : "4ebf0c1ab34b215d575a7ef91c0aaf553205eb86",
        "msg" : "Harden startup of -custom executables",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/startup.h"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/gen_primsc.sh"
          },
          {
            "editType" : "edit",
            "file" : "runtime/backtrace_byt.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "boot/ocamlc",
          "boot/ocamllex",
          "bytecomp/bytelink.ml"
        ],
        "commitId" : "c7c3889c6a6ee743ae055cfc99a26c0da403e88e",
        "timestamp" : 1739350839000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Interpret . in runtime-launch-info\u000a\u000aThe runtime-launch-info file includes the location of the binary\u000adirectory. The compiler is extended so that . refers to the directory of\u000athe compiler binary.\u000a",
        "date" : "2025-02-12 09:00:39 +0000",
        "id" : "c7c3889c6a6ee743ae055cfc99a26c0da403e88e",
        "msg" : "Interpret . in runtime-launch-info",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "boot/ocamlc"
          },
          {
            "editType" : "edit",
            "file" : "boot/ocamllex"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "configure.ac",
          "Makefile.build_config.in",
          "configure"
        ],
        "commitId" : "54afc9c8a63705cbf3c6e19638746562e2376c1e",
        "timestamp" : 1618082223000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Add --with-relative-libdir configure option\u000a\u000a--with-relative-libdir can be used instead of --libdir to specify a\u000adirectory relative to --bindir which is used by the compiler to compute\u000athe location of the Standard Library.\u000a",
        "date" : "2021-04-10 20:17:03 +0100",
        "id" : "54afc9c8a63705cbf3c6e19638746562e2376c1e",
        "msg" : "Add --with-relative-libdir configure option",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.build_config.in"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/dynlink.c",
          "runtime/startup_byt.c",
          "Makefile",
          "runtime/stdlib.c",
          "runtime/caml/startup.h"
        ],
        "commitId" : "e8b3a3cd4ef7b83fdee5304a4cb1924d5ee3f2ba",
        "timestamp" : 1618082223000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Add caml_standard_library_default to the runtime\u000a\u000aPreviously, the bytecode runtime just use OCAML_STDLIB_DIR from\u000abuild_config.h. This value is now stored once in stdlib.o as\u000acaml_standard_library_default.\u000a",
        "date" : "2021-04-10 20:17:03 +0100",
        "id" : "e8b3a3cd4ef7b83fdee5304a4cb1924d5ee3f2ba",
        "msg" : "Add caml_standard_library_default to the runtime",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "runtime/dynlink.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/startup.h"
          },
          {
            "editType" : "add",
            "file" : "runtime/stdlib.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "utils/config.mli",
          "utils/clflags.mli",
          "driver/optmaindriver.ml",
          "Makefile",
          "driver/main_args.ml",
          "utils/clflags.ml",
          "driver/compenv.ml",
          "driver/main_args.mli",
          "driver/compenv.mli",
          "driver/maindriver.ml",
          "testsuite/tools/test_in_prefix.ml",
          "bytecomp/bytelink.ml",
          "utils/config.common.ml.in"
        ],
        "commitId" : "18fc50bd858052819683227671ff469d2fb9e0d3",
        "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\u000a\u000aAllows the default location used by the bytecode runtime for the\u000aStandard Library to be overridden when creating bytecode executables.\u000a",
        "date" : "2021-08-11 17:16:24 +0100",
        "id" : "18fc50bd858052819683227671ff469d2fb9e0d3",
        "msg" : "Add -set-runtime-default",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "driver/compenv.ml"
          },
          {
            "editType" : "edit",
            "file" : "driver/optmaindriver.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.ml"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "driver/compenv.mli"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.mli"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.mli"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.common.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "driver/maindriver.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.mli"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "lambda/translprim.ml",
          "middle_end/compilenv.ml",
          "middle_end/closure/closure.ml",
          "tools/objinfo.ml",
          "asmcomp/asmlink.ml",
          "lambda/printlambda.ml",
          "file_formats/cmx_format.mli",
          "lambda/lambda.mli",
          "lambda/lambda.ml",
          "bytecomp/bytegen.ml",
          "asmcomp/asmpackager.ml",
          "runtime/startup_byt.c",
          "runtime/sys.c",
          "asmcomp/cmm_helpers.mli",
          "asmcomp/cmm_helpers.ml",
          "middle_end/compilenv.mli",
          ".depend",
          "bytecomp/bytelink.ml",
          "middle_end/flambda/closure_conversion.ml",
          "bytecomp/bytesections.mli",
          "bytecomp/bytesections.ml"
        ],
        "commitId" : "8b93714b8a6baa6762d6aa0f08d07d755719e035",
        "timestamp" : 1628698584000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Add %standard_library_default\u000a",
        "date" : "2021-08-11 17:16:24 +0100",
        "id" : "8b93714b8a6baa6762d6aa0f08d07d755719e035",
        "msg" : "Add %standard_library_default",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".depend"
          },
          {
            "editType" : "edit",
            "file" : "asmcomp/cmm_helpers.ml"
          },
          {
            "editType" : "edit",
            "file" : "middle_end/compilenv.mli"
          },
          {
            "editType" : "edit",
            "file" : "lambda/printlambda.ml"
          },
          {
            "editType" : "edit",
            "file" : "tools/objinfo.ml"
          },
          {
            "editType" : "edit",
            "file" : "asmcomp/asmpackager.ml"
          },
          {
            "editType" : "edit",
            "file" : "lambda/lambda.ml"
          },
          {
            "editType" : "edit",
            "file" : "middle_end/compilenv.ml"
          },
          {
            "editType" : "edit",
            "file" : "middle_end/closure/closure.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "file_formats/cmx_format.mli"
          },
          {
            "editType" : "edit",
            "file" : "asmcomp/asmlink.ml"
          },
          {
            "editType" : "edit",
            "file" : "middle_end/flambda/closure_conversion.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytesections.mli"
          },
          {
            "editType" : "edit",
            "file" : "asmcomp/cmm_helpers.mli"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytesections.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/sys.c"
          },
          {
            "editType" : "edit",
            "file" : "lambda/lambda.mli"
          },
          {
            "editType" : "edit",
            "file" : "lambda/translprim.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytegen.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "boot/ocamlc",
          "boot/ocamllex"
        ],
        "commitId" : "a3066e2e3d61a920f95205cab2c5d142f4c95529",
        "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" : "a3066e2e3d61a920f95205cab2c5d142f4c95529",
        "msg" : "Bootstrap",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "boot/ocamlc"
          },
          {
            "editType" : "edit",
            "file" : "boot/ocamllex"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/test_in_prefix.ml",
          "Makefile.cross",
          "Makefile.build_config.in",
          "utils/config.generated.ml.in"
        ],
        "commitId" : "22ad2fc8db8cb0f5cf3ee611e3902037e164112c",
        "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",
        "date" : "2021-08-11 17:16:24 +0100",
        "id" : "22ad2fc8db8cb0f5cf3ee611e3902037e164112c",
        "msg" : "Use %standard_library_default in Config",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile.build_config.in"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.generated.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.cross"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "utils/config.mli",
          "Makefile",
          "ocamltest/ocaml_tests.ml",
          "runtime/caml/startup_aux.h",
          "utils/config.fixed.ml",
          "ocamltest/ocamltest_config.ml.in",
          "runtime/caml/sys.h",
          "runtime/sys.c",
          "runtime/win32.c",
          "utils/config.common.ml.in",
          "runtime/caml/s.h.in",
          "configure.ac",
          "bytecomp/dll.ml",
          "tools/ocamlmklib.ml",
          "utils/config.generated.ml.in",
          "runtime/caml/startup.h",
          "ocamltest/ocamltest_config.mli",
          "runtime/caml/osdeps.h",
          "tools/stripdebug.ml",
          "configure",
          "asmcomp/asmlink.ml",
          "runtime/unix.c",
          "runtime/startup_byt.c",
          "runtime/startup_nat.c",
          "runtime/dynlink.c",
          "Makefile.common",
          "bytecomp/bytelink.ml",
          "runtime/startup_aux.c",
          "runtime/stdlib.c"
        ],
        "commitId" : "894b3869f7613eb0d4416b770a654964d6c83682",
        "timestamp" : 1618063999000,
        "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, since it is only ever used if\u000aDynlink is being used).\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-global-string to force\u000acaml_standard_library_default to stay a relative value.\u000a",
        "date" : "2021-04-10 15:13:19 +0100",
        "id" : "894b3869f7613eb0d4416b770a654964d6c83682",
        "msg" : "Allow libdir to be found relative to bindir",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/startup_nat.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/startup_aux.h"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/osdeps.h"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.generated.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "runtime/dynlink.c"
          },
          {
            "editType" : "edit",
            "file" : "tools/stripdebug.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/dll.ml"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.common"
          },
          {
            "editType" : "edit",
            "file" : "tools/ocamlmklib.ml"
          },
          {
            "editType" : "edit",
            "file" : "asmcomp/asmlink.ml"
          },
          {
            "editType" : "edit",
            "file" : "ocamltest/ocamltest_config.mli"
          },
          {
            "editType" : "edit",
            "file" : "runtime/stdlib.c"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.mli"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/startup.h"
          },
          {
            "editType" : "edit",
            "file" : "runtime/sys.c"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.common.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "runtime/win32.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/s.h.in"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "ocamltest/ocaml_tests.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/unix.c"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.fixed.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/sys.h"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_aux.c"
          },
          {
            "editType" : "edit",
            "file" : "ocamltest/ocamltest_config.ml.in"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/in_prefix/README.md",
          "testsuite/tools/test_in_prefix.ml",
          "testsuite/in_prefix/Makefile.test"
        ],
        "commitId" : "b0a62da885f6d9f82e819799f9289925caa6bc43",
        "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" : "b0a62da885f6d9f82e819799f9289925caa6bc43",
        "msg" : "Update the installation test for enable-relative",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/in_prefix/README.md"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/in_prefix/Makefile.test"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.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" : "bf9b87143c731ea7c014fd91a785ba0044d053b9",
        "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" : "bf9b87143c731ea7c014fd91a785ba0044d053b9",
        "msg" : "Test --with-relative-libdir in CI",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "appveyor.yml"
          },
          {
            "editType" : "edit",
            "file" : "tools/ci/appveyor/appveyor_build.sh"
          },
          {
            "editType" : "edit",
            "file" : ".github/workflows/build.yml"
          },
          {
            "editType" : "edit",
            "file" : ".github/workflows/build-msvc.yml"
          },
          {
            "editType" : "edit",
            "file" : "tools/ci/actions/runner.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tools/ci/inria/main"
        ],
        "commitId" : "f0e7614031899f72eb763d20b06891a9f26b4bb7",
        "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" : "f0e7614031899f72eb763d20b06891a9f26b4bb7",
        "msg" : "NFPR: fully test --with-relative-libdir in precheck",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "tools/ci/inria/main"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "configure.ac",
          "configure"
        ],
        "commitId" : "2bec8f7e05e5dae6b4e2d10446ac7d1f2e0a638e",
        "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" : "2bec8f7e05e5dae6b4e2d10446ac7d1f2e0a638e",
        "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" : "d68147550cf557de2bb4daf17be46f18fa4b2527",
        "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" : "d68147550cf557de2bb4daf17be46f18fa4b2527",
        "msg" : "Detect but ignore -fdebug-prefix-map on mingw-w64",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "utils/ccomp.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "configure.ac",
          "testsuite/tests/native-debugger/linux-lldb-amd64.ml",
          "testsuite/tools/test_in_prefix.ml",
          "configure",
          "testsuite/tests/tool-debugger/find-artifacts/debuggee.ml",
          "Makefile.common",
          "testsuite/tests/native-debugger/linux-lldb-arm64.ml"
        ],
        "commitId" : "0a2287d94b5c27bc4d7fa0624d49af0074789e27",
        "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" : "0a2287d94b5c27bc4d7fa0624d49af0074789e27",
        "msg" : "Increase reproducibility of relative artefacts",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tests/native-debugger/linux-lldb-arm64.ml"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/tool-debugger/find-artifacts/debuggee.ml"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/native-debugger/linux-lldb-amd64.ml"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.common"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/Makefile"
        ],
        "commitId" : "1da346fd5282118231e18435efa59f9b98002e7f",
        "timestamp" : 1730034496000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Typo in stdlib/Makefile\u000a\u000aAffects forced recompilation of runtime-launch-info\u000a",
        "date" : "2024-10-27 14:08:16 +0100",
        "id" : "1da346fd5282118231e18435efa59f9b98002e7f",
        "msg" : "Typo in stdlib/Makefile",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/headernt.c",
          "stdlib/Makefile"
        ],
        "commitId" : "48c95fb467298ca95220d7407c55fb43f8af5e6b",
        "timestamp" : 1730047857000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Reduce tmpheader.exe to 4-5KiB on Windows\u000a\u000astdlib/headernt.c was adapted in OCaml 3.00 to reduce its size by\u000aavoiding the use of the CRT and using Windows API functions directly\u000a(this is a well-studied trick on Windows, principally as a puzzle for\u000aproducing tiny binaries).\u000a\u000aThis got \"regressed\" slightly in OCaml 4.06, in the complex introduction\u000aof wide character support for Windows, as the mingw-w64 incantation\u000arequired was unclear, so the entry point was changed to wmain, and the\u000asize of the header increased.\u000a\u000aBy switching from wcslen (a CRT function) to lstrlen (a Win32 API\u000afunction), headernt.c again only requires kernel32.dll.\u000a\u000aAdditional flags are added for both ld (mingw-w64) and link (MSVC) to\u000asqueeze every last byte out of tmpheader.exe. The MSVC version of the\u000aheader is once again no longer passed through strip, as this was found\u000ato be corrupting the executable (and had never been reducing its size\u000aanyway).\u000a",
        "date" : "2024-10-27 17:50:57 +0100",
        "id" : "48c95fb467298ca95220d7407c55fb43f8af5e6b",
        "msg" : "Reduce tmpheader.exe to 4-5KiB on Windows",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/headernt.c"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/headernt.c"
        ],
        "commitId" : "099cf67f27a15a806f5d722ff0a47d653bd759d9",
        "timestamp" : 1730048143000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Stop using Caml_inline and Camlnoret in headernt.c\u000a\u000aheadernt.c will never be compiled with a C++ compiler, so _Noreturn can\u000abe used directly, and modern C compilers are sufficiently intelligent to\u000awork out when to inline!\u000a",
        "date" : "2024-10-27 17:55:43 +0100",
        "id" : "099cf67f27a15a806f5d722ff0a47d653bd759d9",
        "msg" : "Stop using Caml_inline and Camlnoret in headernt.c",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/headernt.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/header.c"
        ],
        "commitId" : "00394a256ad9c136bb52b3f12a356453144526e2",
        "timestamp" : 1731410260000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Remove unnecessary guards around unistd.h\u000a\u000aAlready updated to remove the actual test in s.h, since XPG1 (1985)\u000arequired it and it is therefore part of the Single Unix\u000aSpecification (1992), but the _WIN32 guard and the loading of s.h are\u000aunnecessary.\u000a",
        "date" : "2024-11-12 11:17:40 +0000",
        "id" : "00394a256ad9c136bb52b3f12a356453144526e2",
        "msg" : "Remove unnecessary guards around unistd.h",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/header.c"
        ],
        "commitId" : "2d3da283fb822ac730f75bcff37fe5fb5fe67cc3",
        "timestamp" : 1731411189000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Use PATH_MAX instead of MAXPATHLEN\u000a",
        "date" : "2024-11-12 11:33:09 +0000",
        "id" : "2d3da283fb822ac730f75bcff37fe5fb5fe67cc3",
        "msg" : "Use PATH_MAX instead of MAXPATHLEN",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/header.c"
        ],
        "commitId" : "6840c5350584032b3b42b5a1d9ed7b28b6eeba4a",
        "timestamp" : 1731411512000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Assume S_ISREG and SEEK_END\u000a\u000aDefined in sys/stat.h and unistd.h respectively by the Single Unix\u000aSpecification.\u000a",
        "date" : "2024-11-12 11:38:32 +0000",
        "id" : "6840c5350584032b3b42b5a1d9ed7b28b6eeba4a",
        "msg" : "Assume S_ISREG and SEEK_END",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/header.c"
        ],
        "commitId" : "82cae00dcd8498eeef2795c288a9813539267a5f",
        "timestamp" : 1731411590000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Move O_BINARY definition to \"header\" section\u000a\u000aO_BINARY is added for maximum Cygwin compatibility, but it's not a Posix\u000aflag.\u000a",
        "date" : "2024-11-12 11:39:50 +0000",
        "id" : "82cae00dcd8498eeef2795c288a9813539267a5f",
        "msg" : "Move O_BINARY definition to \"header\" section",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/caml/exec.h.in",
          "stdlib/headernt.c",
          "stdlib/header.c"
        ],
        "commitId" : "bf81067520bf9aac9a59379e90ded737d5d72236",
        "timestamp" : 1731411837000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Make caml/exec.h independent\u000a\u000aHave exec.h include <stdint.h> itself. The bytecode executable header\u000anow only depends on exec.h.\u000a",
        "date" : "2024-11-12 11:43:57 +0000",
        "id" : "bf81067520bf9aac9a59379e90ded737d5d72236",
        "msg" : "Make caml/exec.h independent",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/caml/exec.h.in"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/headernt.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/headernt.c",
          "stdlib/header.c"
        ],
        "commitId" : "6a29c243ad85efa13a153c15b3aed657c101accd",
        "timestamp" : 1731413023000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Re-order some header functions (no-op)\u000a",
        "date" : "2024-11-12 12:03:43 +0000",
        "id" : "6a29c243ad85efa13a153c15b3aed657c101accd",
        "msg" : "Re-order some header functions (no-op)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/headernt.c"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/headernt.c"
        ],
        "commitId" : "e0735ffe1b31537ef82b57d494c520f88fe75d9b",
        "timestamp" : 1731413511000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Share error path in headernt.c\u000a",
        "date" : "2024-11-12 12:11:51 +0000",
        "id" : "e0735ffe1b31537ef82b57d494c520f88fe75d9b",
        "msg" : "Share error path in headernt.c",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/headernt.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/headernt.c",
          "stdlib/header.c"
        ],
        "commitId" : "041c7a7db5b970392535a7fe141973736d98d4a5",
        "timestamp" : 1731413945000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Unify implementation of read_size\u000a\u000aModernisations applied in headernt.c but not applied to header.c - use\u000auint32_t rather than unsigned long\u000a",
        "date" : "2024-11-12 12:19:05 +0000",
        "id" : "041c7a7db5b970392535a7fe141973736d98d4a5",
        "msg" : "Unify implementation of read_size",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/headernt.c"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/headernt.c"
        ],
        "commitId" : "ea531e6435415edc46ef544f7072f62cb0a82e03",
        "timestamp" : 1731418450000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "headernt.c: inline run_runtime into main\u000a",
        "date" : "2024-11-12 13:34:10 +0000",
        "id" : "ea531e6435415edc46ef544f7072f62cb0a82e03",
        "msg" : "headernt.c: inline run_runtime into main",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/headernt.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/header.c"
        ],
        "commitId" : "20bd9c686c66ac26ba54bd14121bbee5e07d6620",
        "timestamp" : 1731420032000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Check for errors from lseek in header.c\u000a",
        "date" : "2024-11-12 14:00:32 +0000",
        "id" : "20bd9c686c66ac26ba54bd14121bbee5e07d6620",
        "msg" : "Check for errors from lseek in header.c",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/headernt.c",
          "stdlib/header.c"
        ],
        "commitId" : "fe180aad5502de6a5224ac2dee97c6940ba4b27b",
        "timestamp" : 1731421819000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Refactor error display code\u000a",
        "date" : "2024-11-12 14:30:19 +0000",
        "id" : "fe180aad5502de6a5224ac2dee97c6940ba4b27b",
        "msg" : "Refactor error display code",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/headernt.c"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/header.c"
        ],
        "commitId" : "a9eef9a21fc7928501f0752aebca253f5ae638eb",
        "timestamp" : 1731423475000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "header.c: close bytecode image before exec\u000a\u000aLeaking fd\u000a",
        "date" : "2024-11-12 14:57:55 +0000",
        "id" : "a9eef9a21fc7928501f0752aebca253f5ae638eb",
        "msg" : "header.c: close bytecode image before exec",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/headernt.c",
          "stdlib/header.c"
        ],
        "commitId" : "07ce7b54ac5bbbe49093442c0e6a23551a49633a",
        "timestamp" : 1731432361000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Tweak the signature of read_runtime_path\u000a",
        "date" : "2024-11-12 17:26:01 +0000",
        "id" : "07ce7b54ac5bbbe49093442c0e6a23551a49633a",
        "msg" : "Tweak the signature of read_runtime_path",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/headernt.c"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/header.c"
        ],
        "commitId" : "db405ee41ae7f7fc33d90158513d339dd026fa9f",
        "timestamp" : 1731432906000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Use execvp in header.c (as in headernt.c)\u000a\u000aBrings the behaviour of the two headers into line with each other - if\u000aRNTM is ocamlrun on Unix, ocamlrun will now be sought in PATH.\u000a",
        "date" : "2024-11-12 17:35:06 +0000",
        "id" : "db405ee41ae7f7fc33d90158513d339dd026fa9f",
        "msg" : "Use execvp in header.c (as in headernt.c)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/headernt.c"
        ],
        "commitId" : "40785ced7ea20c704375599c21e3dbc98f0526ef",
        "timestamp" : 1731433147000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "headernt: make read_runtime_path more CRTish\u000a",
        "date" : "2024-11-12 17:39:07 +0000",
        "id" : "40785ced7ea20c704375599c21e3dbc98f0526ef",
        "msg" : "headernt: make read_runtime_path more CRTish",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/headernt.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/headernt.c"
        ],
        "commitId" : "817c3eb410b9c7451235ee226bb9d93da59d166e",
        "timestamp" : 1731434233000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Missing error case in headernt.c\u000a",
        "date" : "2024-11-12 17:57:13 +0000",
        "id" : "817c3eb410b9c7451235ee226bb9d93da59d166e",
        "msg" : "Missing error case in headernt.c",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/headernt.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/headernt.c",
          "stdlib/header.c"
        ],
        "commitId" : "d6a8ccef16b3984481a218297c07a6ea6e91e5ac",
        "timestamp" : 1731514621000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Unify the common parts of header.c and headernt.c\u000a",
        "date" : "2024-11-13 16:17:01 +0000",
        "id" : "d6a8ccef16b3984481a218297c07a6ea6e91e5ac",
        "msg" : "Unify the common parts of header.c and headernt.c",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/headernt.c"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/in_prefix/README.md",
          "stdlib/headernt.c",
          "testsuite/tools/test_in_prefix.ml",
          "stdlib/header.c",
          "stdlib/Makefile"
        ],
        "commitId" : "3fb5aabfcdf9dd3f610286b4bd9bbf159a945499",
        "timestamp" : 1731515223000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Merge stdlib/header{,nt}.c\u000a",
        "date" : "2024-11-13 16:27:03 +0000",
        "id" : "3fb5aabfcdf9dd3f610286b4bd9bbf159a945499",
        "msg" : "Merge stdlib/header{,nt}.c",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "stdlib/headernt.c"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/in_prefix/README.md"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "utils/clflags.ml",
          "utils/clflags.mli",
          "driver/main_args.mli",
          "bytecomp/bytelink.ml",
          "driver/main_args.ml"
        ],
        "commitId" : "6c7cff317a86406bf8fb0207ba3ec4455ae8406d",
        "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" : "6c7cff317a86406bf8fb0207ba3ec4455ae8406d",
        "msg" : "Add -launch-method to ocamlc",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "utils/clflags.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.mli"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.mli"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "utils/config.mli",
          "testsuite/tools/test_in_prefix.ml",
          "utils/config.fixed.ml",
          "utils/config.generated.ml.in"
        ],
        "commitId" : "8a9006bbc5c8fb51387417bd8e462949b1f86d6a",
        "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" : "8a9006bbc5c8fb51387417bd8e462949b1f86d6a",
        "msg" : "Test both bytecode header methods",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "utils/config.fixed.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.mli"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.generated.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Makefile.config.in",
          "utils/config.mli",
          "configure.ac",
          "runtime/Mangling.md",
          "Makefile",
          "build-aux/ocaml_version.m4",
          "utils/config.generated.ml.in",
          "configure",
          "utils/config.common.ml.in",
          "utils/config.fixed.ml",
          "Makefile.build_config.in",
          "runtime/caml/version.h.in"
        ],
        "commitId" : "b46f7b4f60a2e224e89feda889d7a5e0262226e9",
        "timestamp" : 1618137938000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Determine RuntimeID values in configure\u000a",
        "date" : "2021-04-11 11:45:38 +0100",
        "id" : "b46f7b4f60a2e224e89feda889d7a5e0262226e9",
        "msg" : "Determine RuntimeID values in configure",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "utils/config.fixed.ml"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.build_config.in"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.mli"
          },
          {
            "editType" : "add",
            "file" : "runtime/Mangling.md"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.generated.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.config.in"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/version.h.in"
          },
          {
            "editType" : "edit",
            "file" : "build-aux/ocaml_version.m4"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.common.ml.in"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "bytecomp/bytelink.ml"
        ],
        "commitId" : "5da000ff483d9ee37bc8ce9c6fb271922de1c04a",
        "timestamp" : 1632480136000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Put Bytecode RuntimeID in runtime-launch-info\u000a",
        "date" : "2021-09-24 11:42:16 +0100",
        "id" : "5da000ff483d9ee37bc8ce9c6fb271922de1c04a",
        "msg" : "Put Bytecode RuntimeID in runtime-launch-info",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "bytecomp/bytelink.mli",
          "boot/ocamlc",
          "boot/ocamllex",
          "driver/main_args.ml"
        ],
        "commitId" : "f6d4995aadd4df9199e2b9d4c56f2e4db0513979",
        "timestamp" : 1740759794000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Bootstrap\u000a",
        "date" : "2025-02-28 16:23:14 +0000",
        "id" : "f6d4995aadd4df9199e2b9d4c56f2e4db0513979",
        "msg" : "Bootstrap",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "boot/ocamlc"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.mli"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.ml"
          },
          {
            "editType" : "edit",
            "file" : "boot/ocamllex"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/test_in_prefix.ml",
          "configure.ac",
          "configure",
          "bytecomp/bytelink.ml",
          "runtime/startup_byt.c",
          "Makefile"
        ],
        "commitId" : "7f6030aaf60c723114918ac5a6e155909211d9d1",
        "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 names\u000a",
        "date" : "2021-04-11 16:12:02 +0100",
        "id" : "7f6030aaf60c723114918ac5a6e155909211d9d1",
        "msg" : "Mangle the bytecode runtime names",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/test_in_prefix.ml",
          "bytecomp/bytelink.ml",
          "Makefile",
          "asmcomp/asmlink.ml"
        ],
        "commitId" : "d7a33f1a5904fd05476b6df203bfcb4e24c926c1",
        "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" : "d7a33f1a5904fd05476b6df203bfcb4e24c926c1",
        "msg" : "Build suffixed shared runtimes",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : "asmcomp/asmlink.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "utils/config.mli",
          "configure.ac",
          "runtime/Mangling.md",
          "Makefile",
          "utils/config.generated.ml.in",
          "configure",
          "utils/config.fixed.ml",
          "Makefile.build_config.in"
        ],
        "commitId" : "953e3fa9f9c02b955cf36c0fd8cc484e53621464",
        "timestamp" : 1661762389000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Add Zinc RuntimeID Mask for portability\u000a",
        "date" : "2022-08-29 09:39:49 +0100",
        "id" : "953e3fa9f9c02b955cf36c0fd8cc484e53621464",
        "msg" : "Add Zinc RuntimeID Mask for portability",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "runtime/Mangling.md"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.mli"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.fixed.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.generated.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.build_config.in"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "utils/config.mli",
          "configure.ac",
          "Makefile",
          "utils/config.generated.ml.in",
          "configure",
          "Makefile.build_config.in",
          "utils/config.fixed.ml",
          "bytecomp/symtable.mli",
          "utils/misc.mli",
          "bytecomp/symtable.ml",
          "utils/misc.ml",
          "bytecomp/bytelink.ml",
          "utils/config.common.ml.in"
        ],
        "commitId" : "30850677a912d4062eee3f9fa4fe39ded329f34f",
        "timestamp" : 1662326051000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Compute the Zinc runtime ID in the linker\u000a\u000aWIP work towards the use int31 bit (not completed) and the\u000aadditional_runtimes setting is present, although it's to be removed.\u000a",
        "date" : "2022-09-04 22:14:11 +0100",
        "id" : "30850677a912d4062eee3f9fa4fe39ded329f34f",
        "msg" : "Compute the Zinc runtime ID in the linker",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/symtable.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/misc.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.common.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.build_config.in"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.fixed.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/misc.mli"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/symtable.mli"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.generated.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.mli"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "boot/ocamlc"
        ],
        "commitId" : "5c18131f546a41b2ee67e49043c434cfe8f87e43",
        "timestamp" : 1740759794000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Bootstrap\u000a",
        "date" : "2025-02-28 16:23:14 +0000",
        "id" : "5c18131f546a41b2ee67e49043c434cfe8f87e43",
        "msg" : "Bootstrap",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "boot/ocamlc"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "bytecomp/bytelink.ml",
          "configure.ac",
          "configure"
        ],
        "commitId" : "bc9dcf2325b17f2e0f912964df1b49416a9d0a72",
        "timestamp" : 1740759794000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Remove Bytecode RuntimeID in runtime-launch-info\u000a",
        "date" : "2025-02-28 16:23:14 +0000",
        "id" : "bc9dcf2325b17f2e0f912964df1b49416a9d0a72",
        "msg" : "Remove Bytecode RuntimeID in runtime-launch-info",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "bytecomp/dll.mli",
          "utils/clflags.mli",
          "ocamltest/ocaml_actions.ml",
          "bytecomp/dll.ml",
          "boot/ocamllex",
          "otherlibs/dynlink/dynlink_config.ml.in",
          "driver/main_args.ml",
          "tools/ocamlmklib.ml",
          "file_formats/cmo_format.mli",
          "utils/clflags.ml",
          "bytecomp/bytelink.mli",
          "otherlibs/systhreads/Makefile",
          "driver/compenv.ml",
          "otherlibs/dynlink/dynlink_config.mli",
          "driver/main_args.mli",
          "driver/compenv.mli",
          "tools/objinfo.ml",
          "otherlibs/dynlink/byte/dynlink_symtable.ml",
          "runtime/dynlink.c",
          "boot/ocamlc",
          "otherlibs/Makefile.otherlibs.common",
          "bytecomp/bytelink.ml",
          "otherlibs/dynlink/byte/dynlink_symtable.mli"
        ],
        "commitId" : "189b6f5f1097e3d355444d059cbd467b884256d7",
        "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" : "189b6f5f1097e3d355444d059cbd467b884256d7",
        "msg" : "Add runtime suffixes to bytecode stub libraries",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "utils/clflags.ml"
          },
          {
            "editType" : "edit",
            "file" : "driver/compenv.mli"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/systhreads/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.mli"
          },
          {
            "editType" : "edit",
            "file" : "boot/ocamlc"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/dynlink/dynlink_config.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/dll.mli"
          },
          {
            "editType" : "edit",
            "file" : "runtime/dynlink.c"
          },
          {
            "editType" : "edit",
            "file" : "driver/compenv.ml"
          },
          {
            "editType" : "edit",
            "file" : "file_formats/cmo_format.mli"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/dynlink/byte/dynlink_symtable.mli"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.ml"
          },
          {
            "editType" : "edit",
            "file" : "ocamltest/ocaml_actions.ml"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/dynlink/dynlink_config.mli"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.mli"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/Makefile.otherlibs.common"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/dll.ml"
          },
          {
            "editType" : "edit",
            "file" : "boot/ocamllex"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.mli"
          },
          {
            "editType" : "edit",
            "file" : "tools/objinfo.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/dynlink/byte/dynlink_symtable.ml"
          },
          {
            "editType" : "edit",
            "file" : "tools/ocamlmklib.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "boot/ocamlc",
          "bytecomp/bytelink.ml",
          "testsuite/tools/test_in_prefix.ml"
        ],
        "commitId" : "19d195002552f04162ce3e06ef107efc2ff45427",
        "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" : "19d195002552f04162ce3e06ef107efc2ff45427",
        "msg" : "Make Windows header absolute (as on Unix)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "boot/ocamlc"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "utils/clflags.mli",
          "configure.ac",
          "driver/main_args.ml",
          "utils/clflags.ml",
          "configure",
          "tools/ocamlsize",
          "bytecomp/bytelink.ml",
          "driver/main_args.mli",
          "runtime/caml/s.h.in",
          "stdlib/header.c",
          "stdlib/Makefile"
        ],
        "commitId" : "f203f34f1e8b81ba8c2279e4e677b5a962b305d7",
        "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" : "f203f34f1e8b81ba8c2279e4e677b5a962b305d7",
        "msg" : "Add -runtime-search to ocamlc",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "tools/ocamlsize"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.mli"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/s.h.in"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.mli"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "utils/clflags.ml",
          "utils/clflags.mli",
          "bytecomp/bytelink.ml",
          "driver/main_args.ml"
        ],
        "commitId" : "184a0c901a079d21f2d9a7aba498ef574d09270c",
        "timestamp" : 1743455013000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Tweak the type\u000a",
        "date" : "2025-03-31 22:03:33 +0100",
        "id" : "184a0c901a079d21f2d9a7aba498ef574d09270c",
        "msg" : "Tweak the type",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "utils/clflags.ml"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.mli"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "utils/clflags.mli",
          "configure.ac",
          "driver/main_args.ml",
          "bytecomp/bytelink.mli",
          "configure",
          "bytecomp/bytelink.ml",
          "boot/ocamlc",
          "Makefile.build_config.in"
        ],
        "commitId" : "e68250ecfb98bbccf5a813b47981c0a088d8769b",
        "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" : "e68250ecfb98bbccf5a813b47981c0a088d8769b",
        "msg" : "Add --enable-runtime-search[-target] options",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.mli"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.build_config.in"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.mli"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "boot/ocamlc"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/in_prefix/README.md",
          "testsuite/tools/test_in_prefix.ml",
          "testsuite/in_prefix/Makefile.test"
        ],
        "commitId" : "cdb9004a474610ee21be1449b5a600263241888d",
        "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 camlheader-search\u000a",
        "date" : "2024-07-13 21:29:10 +0200",
        "id" : "cdb9004a474610ee21be1449b5a600263241888d",
        "msg" : "Update the installation test for camlheader-search",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/in_prefix/Makefile.test"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/in_prefix/README.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "utils/config.mli",
          "configure.ac",
          "utils/clflags.mli",
          "driver/main_args.ml",
          "Makefile",
          "utils/config.generated.ml.in",
          "utils/clflags.ml",
          "bytecomp/bytelink.mli",
          "configure",
          "Makefile.build_config.in",
          "utils/config.fixed.ml",
          "Makefile.common",
          "bytecomp/bytelink.ml",
          "boot/ocamlc"
        ],
        "commitId" : "c914cc0baa24c32373c958658a86f9406baa96d1",
        "timestamp" : 1743460600000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Use Config instead of runtime-launch-info\u000a",
        "date" : "2025-03-31 23:36:40 +0100",
        "id" : "c914cc0baa24c32373c958658a86f9406baa96d1",
        "msg" : "Use Config instead of runtime-launch-info",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "utils/config.generated.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.build_config.in"
          },
          {
            "editType" : "edit",
            "file" : "driver/main_args.ml"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : "configure.ac"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.mli"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.mli"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.common"
          },
          {
            "editType" : "edit",
            "file" : "configure"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.mli"
          },
          {
            "editType" : "edit",
            "file" : "utils/config.fixed.ml"
          },
          {
            "editType" : "edit",
            "file" : "boot/ocamlc"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/test_in_prefix.ml",
          "testsuite/in_prefix/Makefile.test"
        ],
        "commitId" : "794b263df8ff6293ae0309774fdfb0024ee3b535",
        "timestamp" : 1743462337000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Update the test\u000a",
        "date" : "2025-04-01 00:05:37 +0100",
        "id" : "794b263df8ff6293ae0309774fdfb0024ee3b535",
        "msg" : "Update the test",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/in_prefix/Makefile.test"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tools/ci/actions/runner.sh",
          ".github/workflows/build.yml",
          ".github/workflows/build-msvc.yml",
          "tools/ci/appveyor/appveyor_build.sh"
        ],
        "commitId" : "5e098544294d42d1f4d2d9921ce9355f3487b930",
        "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" : "5e098544294d42d1f4d2d9921ce9355f3487b930",
        "msg" : "Test --enable-runtime-search in CI",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "tools/ci/actions/runner.sh"
          },
          {
            "editType" : "edit",
            "file" : ".github/workflows/build-msvc.yml"
          },
          {
            "editType" : "edit",
            "file" : ".github/workflows/build.yml"
          },
          {
            "editType" : "edit",
            "file" : "tools/ci/appveyor/appveyor_build.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "bytecomp/bytelink.ml",
          "stdlib/header.c"
        ],
        "commitId" : "c7e222c1d00a21d4e5a8e2e21816ce83e011f755",
        "timestamp" : 1662326051000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Compute the Zinc runtime ID\u000a\u000aWIP work towards the use int31 bit (not completed) and the\u000aadditional_runtimes setting is present, although it's to be removed.\u000a",
        "date" : "2022-09-04 22:14:11 +0100",
        "id" : "c7e222c1d00a21d4e5a8e2e21816ce83e011f755",
        "msg" : "Compute the Zinc runtime ID",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "boot/ocamlc"
        ],
        "commitId" : "d150e625475913d70fdf747d642744546f96682f",
        "timestamp" : 1740931183000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Bootstrap\u000a",
        "date" : "2025-03-02 15:59:43 +0000",
        "id" : "d150e625475913d70fdf747d642744546f96682f",
        "msg" : "Bootstrap",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "boot/ocamlc"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tools/ci/inria/main"
        ],
        "commitId" : "fdbb1ad6e31fe9c2c82601e6833fe2d630b393bb",
        "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" : "fdbb1ad6e31fe9c2c82601e6833fe2d630b393bb",
        "msg" : "NFPR: fully test --enable-runtime-search in precheck",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "tools/ci/inria/main"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/win32.c",
          "runtime/caml/osdeps.h",
          "runtime/dynlink.c",
          "runtime/unix.c"
        ],
        "commitId" : "f73fda7aa18b09a5c654614afbfd2c058be91aa1",
        "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" : "f73fda7aa18b09a5c654614afbfd2c058be91aa1",
        "msg" : "Move caml_search_dll_in_path to dynlink.c",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/win32.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/osdeps.h"
          },
          {
            "editType" : "edit",
            "file" : "runtime/dynlink.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/unix.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/header.c"
        ],
        "commitId" : "066bc1ab85a6c08187fbdf03a455eac7b0a3dba8",
        "timestamp" : 1731577903000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "header.c: remove unnecessary Cygwin workaround\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" : "066bc1ab85a6c08187fbdf03a455eac7b0a3dba8",
        "msg" : "header.c: remove unnecessary Cygwin workaround",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/caml/backtrace.h",
          "runtime/backtrace_byt.c"
        ],
        "commitId" : "07ecf352274e9284aa53b4a63885bd936954c4b9",
        "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" : "07ecf352274e9284aa53b4a63885bd936954c4b9",
        "msg" : "Remove caml_cds_file",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/caml/backtrace.h"
          },
          {
            "editType" : "edit",
            "file" : "runtime/backtrace_byt.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/backtrace_byt.c",
          "runtime/startup_aux.c",
          "runtime/startup_byt.c",
          "runtime/caml/startup.h"
        ],
        "commitId" : "36bd2bf474d2baf96695ad620c83ee3ce1a5f3a9",
        "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" : "36bd2bf474d2baf96695ad620c83ee3ce1a5f3a9",
        "msg" : "Simplify the interface of caml_attempt_open",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/caml/startup.h"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_aux.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/backtrace_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/header.c"
        ],
        "commitId" : "66d74a0e9f76ebdf45bb00cf6276811798d9dc1a",
        "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" : "66d74a0e9f76ebdf45bb00cf6276811798d9dc1a",
        "msg" : "header.c: handle parasitic case of argc < 1",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/header.c"
        ],
        "commitId" : "5c293f7ba862e22756c8ff91d06ec909fb3ae879",
        "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" : "5c293f7ba862e22756c8ff91d06ec909fb3ae879",
        "msg" : "header.c: malloc the result of searchpath",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/unix.c",
          "Makefile",
          "runtime/caml/osdeps.h",
          "Makefile.cross",
          "runtime/unix_searchpath.c",
          "stdlib/header.c",
          "stdlib/Makefile"
        ],
        "commitId" : "0554548e5fa8a3f64735df44f0539a6bc74a7119",
        "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" : "0554548e5fa8a3f64735df44f0539a6bc74a7119",
        "msg" : "Move searchpath from header.c into the runtime",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "Makefile.cross"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/osdeps.h"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/unix.c"
          },
          {
            "editType" : "add",
            "file" : "runtime/unix_searchpath.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/unix_executable.c",
          "testsuite/tools/test_in_prefix.ml",
          "runtime/unix_searchpath.c",
          "runtime/unix.c",
          "Makefile",
          "stdlib/header.c"
        ],
        "commitId" : "7583dd81f0d6df8a6e56fe0c98b8aaaf185f92b6",
        "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" : "7583dd81f0d6df8a6e56fe0c98b8aaaf185f92b6",
        "msg" : "Use caml_executable_name in header.c",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "runtime/unix_searchpath.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/unix.c"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          },
          {
            "editType" : "add",
            "file" : "runtime/unix_executable.c"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/startup_byt.c"
        ],
        "commitId" : "3e35526d5216a834cabafa7f83f6d6f606f9559b",
        "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" : "3e35526d5216a834cabafa7f83f6d6f606f9559b",
        "msg" : "Don't check for shebang scripts on Windows",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/test_in_prefix.ml",
          "stdlib/header.c"
        ],
        "commitId" : "0899ad41b8fcfd0f00ff1221322ff5f0e41dffd9",
        "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" : "0899ad41b8fcfd0f00ff1221322ff5f0e41dffd9",
        "msg" : "Preserve argv[0] on Unix in the executable header",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tests/lib-unix/common/cloexec.ml",
          "testsuite/tests/lib-unix/common/fdstatus_main.ml"
        ],
        "commitId" : "063b7649be3b3c2e7fe161a9c6cbedc66387e5a1",
        "timestamp" : 1743428646000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Harden the cloexec.ml test on Windows\u000a\u000aOn slower machines, it's possible for the main part of the test (in\u000afdstatus_main.ml) to complete before the cloexec.ml has actually\u000aterminated as part of `Unix.execv` (this is an artefact of how the\u000aunderlying CRT `execv` call is implemented on Windows).\u000a\u000aStrictly on native Windows, cloexec.ml creates an additional dummy file\u000aand takes a write lock on it (with `Unix.lockf`). Before running, if\u000athis file exists, fdstatus_main.ml will also try to take a write lock on\u000ait, providing a way of fdstatus_main.ml being sure that its ancestor has\u000afully terminated without actually having to know its PID.\u000a",
        "date" : "2025-03-31 14:44:06 +0100",
        "id" : "063b7649be3b3c2e7fe161a9c6cbedc66387e5a1",
        "msg" : "Harden the cloexec.ml test on Windows",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tests/lib-unix/common/cloexec.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/lib-unix/common/fdstatus_main.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tests/lib-unix/common/fdstatus_aux.c",
          "testsuite/tests/lib-unix/common/cloexec.ml",
          "testsuite/tests/lib-unix/common/fdstatus_main.ml"
        ],
        "commitId" : "396e693ced27c0e6f35b922213b428fc7a8c1d88",
        "timestamp" : 1743436964000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Possible alternate approach...\u000a",
        "date" : "2025-03-31 17:02:44 +0100",
        "id" : "396e693ced27c0e6f35b922213b428fc7a8c1d88",
        "msg" : "Possible alternate approach...",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tests/lib-unix/common/cloexec.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/lib-unix/common/fdstatus_aux.c"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/lib-unix/common/fdstatus_main.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "otherlibs/unix/channels_win32.c"
        ],
        "commitId" : "10f837eb420f16a6d57abe87b4d6875c28d1615a",
        "timestamp" : 1743508960000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "... and the bug-fix which goes with it\u000a",
        "date" : "2025-04-01 13:02:40 +0100",
        "id" : "10f837eb420f16a6d57abe87b4d6875c28d1615a",
        "msg" : "... and the bug-fix which goes with it",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "otherlibs/unix/channels_win32.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" : "c45a01c66f9806d055ef974cc9c77268846287f5",
        "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" : "c45a01c66f9806d055ef974cc9c77268846287f5",
        "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" : [
          "testsuite/tools/test_in_prefix.ml",
          "runtime/startup_byt.c",
          "stdlib/header.c"
        ],
        "commitId" : "869dd51d413872f1728b3e068848bf78802a93c9",
        "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" : "869dd51d413872f1728b3e068848bf78802a93c9",
        "msg" : "Share image fd between header.c and startup_byt.c",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/header.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "toplevel/topcommon.ml",
          "debugger/unix_tools.ml",
          "bytecomp/dll.ml",
          "runtime/unix.c"
        ],
        "commitId" : "10b786037067ae7961663cfd0d93f11be2f15399",
        "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" : "10b786037067ae7961663cfd0d93f11be2f15399",
        "msg" : "Add comments on the handling of blank env vars",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "debugger/unix_tools.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/dll.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/unix.c"
          },
          {
            "editType" : "edit",
            "file" : "toplevel/topcommon.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/filename.ml"
        ],
        "commitId" : "c59bca011ac13defdcc2d7a272c8fcb34c7551ec",
        "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" : "c59bca011ac13defdcc2d7a272c8fcb34c7551ec",
        "msg" : "Ignore empty TMPDIR in the Filename module",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/filename.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "yacc/main.c"
        ],
        "commitId" : "07d74966d4d9e8ebe491ea11f6a541e05b2d97d5",
        "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" : "07d74966d4d9e8ebe491ea11f6a541e05b2d97d5",
        "msg" : "Ignore empty TMPDIR in ocamlyacc",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "yacc/main.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "yacc/main.c"
        ],
        "commitId" : "0c412672ff40c4585407d85256010fcb16ae7684",
        "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" : "0c412672ff40c4585407d85256010fcb16ae7684",
        "msg" : "Propagate non-empty tmpdir in ocamlyacc",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "yacc/main.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/startup_aux.c"
        ],
        "commitId" : "daaa76c932d5bf39486a6ac3b571ce2596d2a6a7",
        "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" : "daaa76c932d5bf39486a6ac3b571ce2596d2a6a7",
        "msg" : "Ignore CAML_DEBUG_FILE if it's \"Set But Null\"",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/startup_aux.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tools/profiling.ml"
        ],
        "commitId" : "ed6b61b088f851b2e4a688504629848f654557a8",
        "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" : "ed6b61b088f851b2e4a688504629848f654557a8",
        "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" : "779c1289fc69067a236b6d37ab501d254d457437",
        "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" : "779c1289fc69067a236b6d37ab501d254d457437",
        "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" : "03a50c6c122f233efcbb66e9a3e854e7f90201ad",
        "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" : "03a50c6c122f233efcbb66e9a3e854e7f90201ad",
        "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" : "ffd9eff801a6df525c023213c9cb79f77b9dfa55",
        "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" : "ffd9eff801a6df525c023213c9cb79f77b9dfa55",
        "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" : "9a8b31be6970a99a3ca07f88a9aa60d9df3d2de5",
        "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" : "9a8b31be6970a99a3ca07f88a9aa60d9df3d2de5",
        "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" : "83a6988a2a031ae171b979e4766a81021b2a3246",
        "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" : "83a6988a2a031ae171b979e4766a81021b2a3246",
        "msg" : "Treat OCAML_BINANNOT_WITHENV as unset when empty",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "file_formats/cmt_format.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".depend",
          "ocamldoc/odoc_misc.mli",
          "ocamldoc/odoc_man.ml",
          "ocamldoc/odoc_misc.ml"
        ],
        "commitId" : "9e63e6150206182f32c8366afc75250b9c7112fa",
        "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" : "9e63e6150206182f32c8366afc75250b9c7112fa",
        "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" : [
          "runtime/startup_byt.c",
          "runtime/win32.c"
        ],
        "commitId" : "f84e9003bb40346681d379ee00e700824f5126d1",
        "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" : "f84e9003bb40346681d379ee00e700824f5126d1",
        "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" : "2986941b386f6e133f405f0c8a530f7eedadda43",
        "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" : "2986941b386f6e133f405f0c8a530f7eedadda43",
        "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" : [
          "runtime/dynlink.c",
          "utils/config.common.ml.in",
          "runtime/startup_aux.c",
          "testsuite/tests/backtrace/backtrace2.reference",
          "stdlib/.depend",
          "stdlib/hashtbl.ml"
        ],
        "commitId" : "e36cc23a561ca9f69682b8418e819be8aff010fd",
        "timestamp" : 1738419234000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Ignore blank OCAMRUNPARAM, 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" : "e36cc23a561ca9f69682b8418e819be8aff010fd",
        "msg" : "Ignore blank OCAMRUNPARAM, OCAMLLIB and CAMLLIB",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "utils/config.common.ml.in"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/backtrace/backtrace2.reference"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/.depend"
          },
          {
            "editType" : "edit",
            "file" : "runtime/dynlink.c"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/hashtbl.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_aux.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "utils/misc.mli",
          "toplevel/topcommon.ml",
          "runtime/unix.c",
          "bytecomp/dll.ml",
          "runtime/startup_byt.c",
          "utils/misc.ml",
          "testsuite/tools/test_in_prefix.ml",
          "runtime/win32.c",
          "runtime/dynlink.c"
        ],
        "commitId" : "ee304ed33ff0ca22ab6bfe258d5614ff962179bc",
        "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 Windowsm 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" : "ee304ed33ff0ca22ab6bfe258d5614ff962179bc",
        "msg" : "Ignore empty components in PATH-like things",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/unix.c"
          },
          {
            "editType" : "edit",
            "file" : "utils/misc.mli"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : "toplevel/topcommon.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/misc.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/dll.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/dynlink.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/win32.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "otherlibs/Makefile.otherlibs.common",
          "otherlibs/unix/Makefile",
          "testsuite/tools/test_in_prefix.ml"
        ],
        "commitId" : "59328552e2012631217a71d719c52444b60d2126",
        "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" : "59328552e2012631217a71d719c52444b60d2126",
        "msg" : "Fix C library options for win32unix",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/Makefile.otherlibs.common"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/unix/Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "otherlibs/systhreads/st_stubs.c",
          "testsuite/tools/test_in_prefix.ml",
          "otherlibs/systhreads/Makefile"
        ],
        "commitId" : "986020bd90e85f5668c0230cae3df1c53934a399",
        "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" : "986020bd90e85f5668c0230cae3df1c53934a399",
        "msg" : "Build and install threads.cmxs",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "otherlibs/systhreads/st_stubs.c"
          },
          {
            "editType" : "edit",
            "file" : "otherlibs/systhreads/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "utils/ccomp.ml",
          "testsuite/tools/test_in_prefix.ml"
        ],
        "commitId" : "e65ca93db331fd909053248e162be4fe10fa136d",
        "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" : "e65ca93db331fd909053248e162be4fe10fa136d",
        "msg" : "Fix inclusion of libraries when partial linking",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/ccomp.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "flexdll",
          "testsuite/tools/test_in_prefix.ml",
          "tools/ci/inria/main"
        ],
        "commitId" : "7c97641ab4301425846bfda54ed3687a751d2b02",
        "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" : "7c97641ab4301425846bfda54ed3687a751d2b02",
        "msg" : "Use entrypoint flexdll branch",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "flexdll"
          },
          {
            "editType" : "edit",
            "file" : "tools/ci/inria/main"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/test_in_prefix.ml",
          "tools/ocamlmklib.ml"
        ],
        "commitId" : "1a1bc16a08bcf3eb66fad7b17ef357f2e6465ec1",
        "timestamp" : 1732641669000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
          "fullName" : "david.allsopp"
        },
        "authorEmail" : "david.allsopp@metastack.com",
        "comment" : "Revert \"accept unknown options\"\u000a\u000aThis reverts commit 31cbd26c16f81c8a273ad3ba988c49db6b0dbe38.\u000a",
        "date" : "2024-11-26 17:21:09 +0000",
        "id" : "1a1bc16a08bcf3eb66fad7b17ef357f2e6465ec1",
        "msg" : "Revert \"accept unknown options\"",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "tools/ocamlmklib.ml"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/test_in_prefix.ml",
          ".gitignore",
          ".depend",
          "Makefile"
        ],
        "commitId" : "62bd725c9154bb9bda01040718ae4a55a21da998",
        "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" : "62bd725c9154bb9bda01040718ae4a55a21da998",
        "msg" : "Stop installing and documenting config_main, etc.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".depend"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : ".gitignore"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/test_in_prefix.ml",
          "Makefile"
        ],
        "commitId" : "915bcfb7270e32b79334e5b8247d5af169cefa20",
        "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" : "915bcfb7270e32b79334e5b8247d5af169cefa20",
        "msg" : "Use clang-cl for flexdll support objects",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          },
          {
            "editType" : "edit",
            "file" : "Makefile"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "lambda/lambda.mli",
          "lambda/printlambda.ml",
          "lambda/translprim.ml",
          "lambda/lambda.ml",
          "bytecomp/bytegen.ml",
          "runtime/unix.c",
          "runtime/win32.c",
          "middle_end/closure/closure.ml",
          "middle_end/flambda/closure_conversion.ml"
        ],
        "commitId" : "4c01b1f23cbe254fb5abb08396c8285852f19a1d",
        "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" : "4c01b1f23cbe254fb5abb08396c8285852f19a1d",
        "msg" : "Add %shared_libraries primitive",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "lambda/lambda.ml"
          },
          {
            "editType" : "edit",
            "file" : "middle_end/closure/closure.ml"
          },
          {
            "editType" : "edit",
            "file" : "middle_end/flambda/closure_conversion.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytegen.ml"
          },
          {
            "editType" : "edit",
            "file" : "lambda/lambda.mli"
          },
          {
            "editType" : "edit",
            "file" : "lambda/translprim.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/win32.c"
          },
          {
            "editType" : "edit",
            "file" : "lambda/printlambda.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/unix.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "boot/ocamllex",
          "boot/ocamlc"
        ],
        "commitId" : "f6574c5b53ab8e7390ec99d08d569c9cbe2a5b1f",
        "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" : "f6574c5b53ab8e7390ec99d08d569c9cbe2a5b1f",
        "msg" : "Bootstrap",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "boot/ocamllex"
          },
          {
            "editType" : "edit",
            "file" : "boot/ocamlc"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "toplevel/byte/topeval.ml",
          "runtime/startup_byt.c",
          "otherlibs/dynlink/byte/dynlink.ml"
        ],
        "commitId" : "63ab0dea6b5b56139af5c93398fcd695e13b38d4",
        "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" : "63ab0dea6b5b56139af5c93398fcd695e13b38d4",
        "msg" : "Improve the \"dynamic loading not supported\" error",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "otherlibs/dynlink/byte/dynlink.ml"
          },
          {
            "editType" : "edit",
            "file" : "toplevel/byte/topeval.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/startup_byt.c",
          "runtime/dynlink.c"
        ],
        "commitId" : "f45c1784c4ebf01e8cbddd648cb95c101854688e",
        "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, its 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" : "f45c1784c4ebf01e8cbddd648cb95c101854688e",
        "msg" : "Free tables after handing off to Dynlink",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/dynlink.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/startup_aux.c",
          "runtime/caml/startup_aux.h",
          "runtime/startup_byt.c"
        ],
        "commitId" : "c2c6c22610f5e139d11ac05bbf97d7c3dcf523ce",
        "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" : "c2c6c22610f5e139d11ac05bbf97d7c3dcf523ce",
        "msg" : "Move print_magic and print_config out of caml_params",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_aux.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/startup_aux.h"
          }
        ]
      },
      {
        "_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" : "78d7beb3125c8c8d784e7207f88cc895af226a9e",
        "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" : "78d7beb3125c8c8d784e7207f88cc895af226a9e",
        "msg" : "Preserve option R in caml_runtime_parameters",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/.depend"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_aux.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/gc_ctrl.c"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/hashtbl.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/gc_ctrl.h"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/backtrace/backtrace2.reference"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/gc_ctrl.c"
        ],
        "commitId" : "a8f02176f365b26f5e4faade05a94d90ffa1d919",
        "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" : "a8f02176f365b26f5e4faade05a94d90ffa1d919",
        "msg" : "Swap the V and v in caml_runtime_parameters",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/gc_ctrl.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "man/ocamlrun.1",
          "utils/clflags.mli",
          "utils/clflags.ml",
          "driver/compenv.ml",
          "runtime/caml/startup_aux.h",
          "tools/objinfo.ml",
          "driver/compenv.mli",
          "asmcomp/asmlink.ml",
          "runtime/gc_ctrl.c",
          "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" : "7ae2a2957c2f4918f57d10f23a0fb0f18ad79b68",
        "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" : "7ae2a2957c2f4918f57d10f23a0fb0f18ad79b68",
        "msg" : "Add -set-runtime-default to the compilers",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "driver/compenv.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_byt.c"
          },
          {
            "editType" : "edit",
            "file" : "asmcomp/asmlink.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/startup_aux.h"
          },
          {
            "editType" : "edit",
            "file" : "driver/maindriver.ml"
          },
          {
            "editType" : "edit",
            "file" : "asmcomp/cmm_helpers.ml"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.mli"
          },
          {
            "editType" : "edit",
            "file" : "man/ocamlrun.1"
          },
          {
            "editType" : "edit",
            "file" : "runtime/gc_ctrl.c"
          },
          {
            "editType" : "edit",
            "file" : "utils/clflags.ml"
          },
          {
            "editType" : "edit",
            "file" : "asmcomp/cmm_helpers.mli"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_aux.c"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytesections.mli"
          },
          {
            "editType" : "edit",
            "file" : "tools/objinfo.ml"
          },
          {
            "editType" : "edit",
            "file" : "driver/compenv.mli"
          },
          {
            "editType" : "edit",
            "file" : "runtime/gen_primsc.sh"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytelink.ml"
          },
          {
            "editType" : "edit",
            "file" : ".depend"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytesections.ml"
          },
          {
            "editType" : "edit",
            "file" : "manual/src/cmds/runtime.etex"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tools/test_in_prefix.ml"
        ],
        "commitId" : "b9f9f2c2b5cbf906fd4d9618a389f4fdb5f108db",
        "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" : "b9f9f2c2b5cbf906fd4d9618a389f4fdb5f108db",
        "msg" : "Test -set-runtime-default in test-in-prefix",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tools/test_in_prefix.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/startup_byt.c"
        ],
        "commitId" : "62f924aa46df4e3f61f8d3398178afb3504b443d",
        "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" : "62f924aa46df4e3f61f8d3398178afb3504b443d",
        "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" : "347e68ced3ad39c626d71117686aa799a65f3328",
        "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" : "347e68ced3ad39c626d71117686aa799a65f3328",
        "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"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://ci.inria.fr/ocaml/user/david.allsopp",
      "fullName" : "david.allsopp"
    }
  ]
}