{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "com.cloudbees.jenkins.GitHubPushCause",
          "shortDescription" : "Started by GitHub push by gasche"
        }
      ]
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/trunk" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 251,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "2f16b98a8d4f2359cdab0d56c2338f6c51b3598a",
            "branch" : [
              {
                "SHA1" : "2f16b98a8d4f2359cdab0d56c2338f6c51b3598a",
                "name" : "origin/trunk"
              }
            ]
          },
          "revision" : {
            "SHA1" : "2f16b98a8d4f2359cdab0d56c2338f6c51b3598a",
            "branch" : [
              {
                "SHA1" : "2f16b98a8d4f2359cdab0d56c2338f6c51b3598a",
                "name" : "origin/trunk"
              }
            ]
          }
        },
        "origin/4.11" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 249,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "4b57077048a9d6d79075755a18c9f79d0a8b9ba5",
            "branch" : [
              {
                "SHA1" : "4b57077048a9d6d79075755a18c9f79d0a8b9ba5",
                "name" : "origin/4.11"
              }
            ]
          },
          "revision" : {
            "SHA1" : "4b57077048a9d6d79075755a18c9f79d0a8b9ba5",
            "branch" : [
              {
                "SHA1" : "4b57077048a9d6d79075755a18c9f79d0a8b9ba5",
                "name" : "origin/4.11"
              }
            ]
          }
        },
        "refs/remotes/origin/4.11" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 268,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "751f965f801cfc9ba0c3be12d0fa9edd200d8073",
            "branch" : [
              {
                "SHA1" : "751f965f801cfc9ba0c3be12d0fa9edd200d8073",
                "name" : "refs/remotes/origin/4.11"
              }
            ]
          },
          "revision" : {
            "SHA1" : "751f965f801cfc9ba0c3be12d0fa9edd200d8073",
            "branch" : [
              {
                "SHA1" : "751f965f801cfc9ba0c3be12d0fa9edd200d8073",
                "name" : "refs/remotes/origin/4.11"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "751f965f801cfc9ba0c3be12d0fa9edd200d8073",
        "branch" : [
          {
            "SHA1" : "751f965f801cfc9ba0c3be12d0fa9edd200d8073",
            "name" : "refs/remotes/origin/4.11"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/ocaml/ocaml"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#268",
  "duration" : 2663356,
  "estimatedDuration" : 2534434,
  "executor" : None,
  "fullDisplayName" : "Risc-V-legacy #268",
  "id" : "268",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 268,
  "queueId" : 18775,
  "result" : "SUCCESS",
  "timestamp" : 1611848877804,
  "url" : "https://ci.inria.fr/ocaml/view/all/job/Risc-V-legacy/268/",
  "builtOn" : "olive",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "runtime/Makefile",
          "runtime/caml/skiplist.h",
          "runtime/debugger.c",
          "runtime/skiplist.c",
          "runtime/globroots.c"
        ],
        "commitId" : "fb79bd82499f8a90efb2e2bdb1bb57b62f4f5262",
        "timestamp" : 1611845978000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/gabriel.scherer",
          "fullName" : "gabriel.scherer"
        },
        "authorEmail" : "gabriel.scherer@gmail.com",
        "comment" : "Merge pull request #9635 from xavierleroy/skiplists\u000a\u000aIntroduce a library of skip lists and use them to fix a performance issue in the debugger (issue #9606)\u000a\u000a(cherry picked from commit c61fc39caac51e8414df5b53c9d0a7104011f4f2)\u000a",
        "date" : "2021-01-28 15:59:38 +0100",
        "id" : "fb79bd82499f8a90efb2e2bdb1bb57b62f4f5262",
        "msg" : "Merge pull request #9635 from xavierleroy/skiplists",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/debugger.c"
          },
          {
            "editType" : "add",
            "file" : "runtime/caml/skiplist.h"
          },
          {
            "editType" : "add",
            "file" : "runtime/skiplist.c"
          },
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "runtime/Makefile"
          },
          {
            "editType" : "edit",
            "file" : "runtime/globroots.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/skiplist.c",
          "runtime/caml/skiplist.h"
        ],
        "commitId" : "286e21cf4ac536857b43a580d79a36d18f2241a6",
        "timestamp" : 1611848569000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/gabriel.scherer",
          "fullName" : "gabriel.scherer"
        },
        "authorEmail" : "gabriel.scherer@gmail.com",
        "comment" : "Refactor skiplist to avoid UB casts (#9660)\u000a\u000aThis patch removes casts between struct skiplist * and struct skipcell *, and removes the \"layout compatibility\" fields in skiplist that were there to enable these casts.\u000a\u000aThe only algorithmic difference is that caml_skiplist_find is now \"stop-at\" (see discussion here), as this was slightly easier to write in the no-cast style.\u000a\u000a(cherry picked from commit 5946b93a855eb2549260b36274e2ae43d14efa15)\u000a",
        "date" : "2021-01-28 16:42:49 +0100",
        "id" : "286e21cf4ac536857b43a580d79a36d18f2241a6",
        "msg" : "Refactor skiplist to avoid UB casts (#9660)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/caml/skiplist.h"
          },
          {
            "editType" : "edit",
            "file" : "runtime/skiplist.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "runtime/extern.c",
          "runtime/caml/misc.h",
          "runtime/codefrag.c",
          "runtime/debugger.c",
          "runtime/meta.c",
          "runtime/misc.c",
          "runtime/fix_code.c",
          "runtime/intern.c",
          "runtime/dynlink_nat.c",
          "runtime/startup_nat.c",
          "runtime/Makefile",
          "runtime/caml/codefrag.h"
        ],
        "commitId" : "751f965f801cfc9ba0c3be12d0fa9edd200d8073",
        "timestamp" : 1611848706000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/gabriel.scherer",
          "fullName" : "gabriel.scherer"
        },
        "authorEmail" : "gabriel.scherer@gmail.com",
        "comment" : "More efficient management of code fragments (#9654)\u000a\u000a* Introducing codefrag: a new runtime module to work with code fragments\u000a\u000aThis module collects all the operations on code fragments performed in\u000avarious places of the runtime systems.  Applies both to bytecode and\u000ato native code.\u000a\u000aThe implementation is based on skiplists, so that \"lookup fragment by\u000aPC\" and \"lookup fragment by number\" are efficient (logarithmic in the\u000anumber of code fragments).  \"Lookup fragment by digest\" remains\u000alinear-time.\u000a\u000aThe new module also improves the handling of digests: now it is\u000apossible to mark a code fragment as \"no digest\" i.e. not marshal-able.\u000a\u000a* Use the new \"codefrag\" runtime module for marshaling and for the\u000a  debugger interface\u000a\u000aReplace the previous handling of code fragments with calls to the\u000afunctions provided by the \"codefrag\" runtime module.\u000a\u000a(cherry picked from commit 08e58c836e5b2e8e1015e06ad0ab3df444d6197a)\u000a",
        "date" : "2021-01-28 16:45:06 +0100",
        "id" : "751f965f801cfc9ba0c3be12d0fa9edd200d8073",
        "msg" : "More efficient management of code fragments (#9654)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/fix_code.c"
          },
          {
            "editType" : "add",
            "file" : "runtime/caml/codefrag.h"
          },
          {
            "editType" : "edit",
            "file" : "runtime/intern.c"
          },
          {
            "editType" : "add",
            "file" : "runtime/codefrag.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/caml/misc.h"
          },
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : "runtime/meta.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/startup_nat.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/dynlink_nat.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/debugger.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/misc.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/extern.c"
          },
          {
            "editType" : "edit",
            "file" : "runtime/Makefile"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://ci.inria.fr/ocaml/user/gabriel.scherer",
      "fullName" : "gabriel.scherer"
    }
  ]
}