{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "com.cloudbees.jenkins.GitHubPushCause",
          "shortDescription" : "Started by GitHub push by xavierleroy"
        },
        {
          "_class" : "com.cloudbees.jenkins.GitHubPushCause",
          "shortDescription" : "Started by GitHub push by xavierleroy"
        }
      ]
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/trunk" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 178,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "400fe3f3a20d93dbcc4669c3d17a4821ec8f99b7",
            "branch" : [
              {
                "SHA1" : "400fe3f3a20d93dbcc4669c3d17a4821ec8f99b7",
                "name" : "origin/trunk"
              }
            ]
          },
          "revision" : {
            "SHA1" : "400fe3f3a20d93dbcc4669c3d17a4821ec8f99b7",
            "branch" : [
              {
                "SHA1" : "400fe3f3a20d93dbcc4669c3d17a4821ec8f99b7",
                "name" : "origin/trunk"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "400fe3f3a20d93dbcc4669c3d17a4821ec8f99b7",
        "branch" : [
          {
            "SHA1" : "400fe3f3a20d93dbcc4669c3d17a4821ec8f99b7",
            "name" : "origin/trunk"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/ocaml/ocaml"
      ],
      "scmName" : ""
    },
    {
      "_class" : "hudson.plugins.git.GitTagAction"
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#178",
  "duration" : 2602240,
  "estimatedDuration" : 2534434,
  "executor" : None,
  "fullDisplayName" : "Risc-V-legacy #178",
  "id" : "178",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 178,
  "queueId" : 53680,
  "result" : "SUCCESS",
  "timestamp" : 1592129726055,
  "url" : "https://ci.inria.fr/ocaml/view/all/job/Risc-V-legacy/178/",
  "builtOn" : "olive",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "stdlib/obj.ml",
          "stdlib/obj.mli",
          "runtime/obj.c"
        ],
        "commitId" : "ec33006c0a2253a29dfc55c36b66358cd20b188f",
        "timestamp" : 1591799377000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/xavier.leroy",
          "fullName" : "xavier.leroy"
        },
        "authorEmail" : "xavier.leroy@college-de-france.fr",
        "comment" : "Add type Obj.raw_data and functions Obj.raw_field, Obj.set_raw_field\u000a\u000aSome OCaml objects contain data that cannot be safely represented\u000aas an OCaml value (type Obj.t).  For example, in no-naked-pointers mode,\u000athis is the case for code pointers inside closures, and for the\u000a\"custom operations\" pointers inside custom blocks.\u000a\u000aThis PR introduces a type Obj.raw_data (an alias for nativeint)\u000ato encapsulate this data, and functions\u000aObj.raw_field / Obj.set_raw_field to read and write the \"raw\" contents\u000aof fields of blocks.\u000a\u000aNote: just like it is wrong to access code pointers and custom operations\u000ausing Obj.field / Obj.set_field, it is wrong to access regular fields\u000apossibly containing pointers into the OCaml heap using\u000aObj.raw_field / Obj.set_raw_field.  The OCaml heap block can be\u000areclaimed or moved after its address was captured by Obj.raw_field.\u000aSymmetrically, Obj.set_raw_field on a regular field bypasses the\u000awrite barrier of the GC.\u000a",
        "date" : "2020-06-10 16:29:37 +0200",
        "id" : "ec33006c0a2253a29dfc55c36b66358cd20b188f",
        "msg" : "Add type Obj.raw_data and functions Obj.raw_field, Obj.set_raw_field",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "stdlib/obj.ml"
          },
          {
            "editType" : "edit",
            "file" : "stdlib/obj.mli"
          },
          {
            "editType" : "edit",
            "file" : "runtime/obj.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "toplevel/trace.ml",
          "bytecomp/meta.ml",
          "runtime/meta.c",
          "bytecomp/meta.mli"
        ],
        "commitId" : "c2db3288c190ff1dfb8a16ba3d242d89d45e5ed9",
        "timestamp" : 1591799443000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/xavier.leroy",
          "fullName" : "xavier.leroy"
        },
        "authorEmail" : "xavier.leroy@college-de-france.fr",
        "comment" : "Use type Obj.raw_data to represent code pointers in the REPL trace facility\u000a\u000aUsing Obj.t is incorrect in no-naked-pointer mode, as it exposes\u000acode pointers as OCaml values.\u000a",
        "date" : "2020-06-10 16:30:43 +0200",
        "id" : "c2db3288c190ff1dfb8a16ba3d242d89d45e5ed9",
        "msg" : "Use type Obj.raw_data to represent code pointers in the REPL trace facility",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "bytecomp/meta.ml"
          },
          {
            "editType" : "edit",
            "file" : "toplevel/trace.ml"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/meta.mli"
          },
          {
            "editType" : "edit",
            "file" : "runtime/meta.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tests/lib-marshal/intextaux.c",
          "testsuite/tests/lib-marshal/intext.ml"
        ],
        "commitId" : "b0cd12d1c48fb22d7d06d49c7976bccce7d58068",
        "timestamp" : 1592041142000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/xavier.leroy",
          "fullName" : "xavier.leroy"
        },
        "authorEmail" : "xavier.leroy@college-de-france.fr",
        "comment" : "Test intext.ml: do not use the caml_static_alloc primitive\u000a\u000aThis primitive (from runtime/obj.c) is being phased out because\u000ait returns a naked pointer outside the OCaml heap.\u000a\u000aInstead, for the test, use a statically-allocated buffer\u000athat is never visible from OCaml.\u000a",
        "date" : "2020-06-13 11:39:02 +0200",
        "id" : "b0cd12d1c48fb22d7d06d49c7976bccce7d58068",
        "msg" : "Test intext.ml: do not use the caml_static_alloc primitive",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tests/lib-marshal/intextaux.c"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/lib-marshal/intext.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/obj.c"
        ],
        "commitId" : "d6f949608db2566bb928df7aeae5c1e2ca1dad29",
        "timestamp" : 1592065388000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/xavier.leroy",
          "fullName" : "xavier.leroy"
        },
        "authorEmail" : "xavier.leroy@college-de-france.fr",
        "comment" : "Remove the primitive functions caml_static_{alloc,free,resize}\u000a\u000aThese primitives are dangerous because they produce naked pointers\u000aoutside the OCaml heap, with a risk of \"GC pointer confusion\".\u000a(After caml_free and a heap extension, the freed memory area can be\u000areallocated as part of the OCaml heap, causing the naked pointer to\u000abecome a bad heap pointer).\u000a\u000aThese primitives are not used anywhere in the core OCaml system\u000a(in particular they are not exposed via the Obj module).\u000aAn OPAM-wide grep shows no uses there either.\u000a",
        "date" : "2020-06-13 18:23:08 +0200",
        "id" : "d6f949608db2566bb928df7aeae5c1e2ca1dad29",
        "msg" : "Remove the primitive functions caml_static_{alloc,free,resize}",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/obj.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "boot/ocamlc",
          "boot/ocamllex"
        ],
        "commitId" : "0a11f73c8bde08ec0c0291d525e635c71f3237ec",
        "timestamp" : 1592065620000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/xavier.leroy",
          "fullName" : "xavier.leroy"
        },
        "authorEmail" : "xavier.leroy@college-de-france.fr",
        "comment" : "Bootstrap after removal of caml_static_{alloc,free_resize} primitives\u000a\u000aFollow-up to d6f949608\u000a",
        "date" : "2020-06-13 18:27:00 +0200",
        "id" : "0a11f73c8bde08ec0c0291d525e635c71f3237ec",
        "msg" : "Bootstrap after removal of caml_static_{alloc,free_resize} primitives",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "boot/ocamlc"
          },
          {
            "editType" : "edit",
            "file" : "boot/ocamllex"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes"
        ],
        "commitId" : "0a2dacbd42fae2f365f31807a94db7167a5aef12",
        "timestamp" : 1592127746000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/xavier.leroy",
          "fullName" : "xavier.leroy"
        },
        "authorEmail" : "xavier.leroy@college-de-france.fr",
        "comment" : "Changes entry for #9655\u000a",
        "date" : "2020-06-14 11:42:26 +0200",
        "id" : "0a2dacbd42fae2f365f31807a94db7167a5aef12",
        "msg" : "Changes entry for #9655",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Changes"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes"
        ],
        "commitId" : "2ad3a038bb4b1928b46212070b49ca7d5c39c6b0",
        "timestamp" : 1592128003000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/xavier.leroy",
          "fullName" : "xavier.leroy"
        },
        "authorEmail" : "xavier.leroy@college-de-france.fr",
        "comment" : "Changes entry for #9675\u000a",
        "date" : "2020-06-14 11:46:43 +0200",
        "id" : "2ad3a038bb4b1928b46212070b49ca7d5c39c6b0",
        "msg" : "Changes entry for #9675",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Changes"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://ci.inria.fr/ocaml/user/xavier.leroy",
      "fullName" : "xavier.leroy"
    }
  ]
}