{
  "_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" : 152,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "4aa90e9784bc66a43572bb2ac9175837192aebe1",
            "branch" : [
              {
                "SHA1" : "4aa90e9784bc66a43572bb2ac9175837192aebe1",
                "name" : "origin/trunk"
              }
            ]
          },
          "revision" : {
            "SHA1" : "4aa90e9784bc66a43572bb2ac9175837192aebe1",
            "branch" : [
              {
                "SHA1" : "4aa90e9784bc66a43572bb2ac9175837192aebe1",
                "name" : "origin/trunk"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "4aa90e9784bc66a43572bb2ac9175837192aebe1",
        "branch" : [
          {
            "SHA1" : "4aa90e9784bc66a43572bb2ac9175837192aebe1",
            "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" : "#152",
  "duration" : 2668148,
  "estimatedDuration" : 2534434,
  "executor" : None,
  "fullDisplayName" : "Risc-V-legacy #152",
  "id" : "152",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 152,
  "queueId" : 52143,
  "result" : "SUCCESS",
  "timestamp" : 1591376062323,
  "url" : "https://ci.inria.fr/ocaml/view/all/job/Risc-V-legacy/152/",
  "builtOn" : "olive",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/interp.c",
          "runtime/caml/mlvalues.h",
          "bytecomp/bytegen.ml"
        ],
        "commitId" : "9e128577a4fded29ed5f5caed734bab97417de85",
        "timestamp" : 1591371728000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/xavier.leroy",
          "fullName" : "xavier.leroy"
        },
        "authorEmail" : "xavier.leroy@college-de-france.fr",
        "comment" : "New representation of closures, bytecode part\u000a\u000aAdd a \"closure information\" field after each code pointer in\u000aa closure.  This field generalizes the \"arity\" field used by\u000athe native-code compiler, in that it has room both for an arity\u000a(always 0 in bytecode) and for the distance from the closure\u000ato the first environment variable in the closure block.\u000a\u000aThis makes closures \"self-described\" and easy to scan for pointers:\u000aeverything up to the first env var is out-of-heap code pointers or\u000aintegers; everything after the first env var is a well-formed value.\u000a\u000aAt this point a bootstrap is needed.\u000a",
        "date" : "2020-06-05 17:42:08 +0200",
        "id" : "9e128577a4fded29ed5f5caed734bab97417de85",
        "msg" : "New representation of closures, bytecode part",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/caml/mlvalues.h"
          },
          {
            "editType" : "edit",
            "file" : "bytecomp/bytegen.ml"
          },
          {
            "editType" : "edit",
            "file" : "runtime/interp.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "boot/ocamllex",
          "boot/ocamlc"
        ],
        "commitId" : "a1f21661a488dad9dd2ebafe0ccd484c6e4e7d5e",
        "timestamp" : 1591371889000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/xavier.leroy",
          "fullName" : "xavier.leroy"
        },
        "authorEmail" : "xavier.leroy@college-de-france.fr",
        "comment" : "New representation of closures, intermediate bootstrap\u000a\u000aocamlc's computations of offsets in closures changed to match changes in the\u000aabstract machine.\u000a",
        "date" : "2020-06-05 17:44:49 +0200",
        "id" : "a1f21661a488dad9dd2ebafe0ccd484c6e4e7d5e",
        "msg" : "New representation of closures, intermediate bootstrap",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "boot/ocamllex"
          },
          {
            "editType" : "edit",
            "file" : "boot/ocamlc"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "asmcomp/cmm_helpers.ml",
          "asmcomp/cmmgen.ml",
          "asmcomp/cmm_helpers.mli"
        ],
        "commitId" : "7f5a137972fa08de923619d7456106336891a954",
        "timestamp" : 1591372018000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/xavier.leroy",
          "fullName" : "xavier.leroy"
        },
        "authorEmail" : "xavier.leroy@college-de-france.fr",
        "comment" : "New representation of closures, native-code compilation\u000a\u000aIn code that builds closures, instead of the old arity field,\u000aproduce a closure information field encoding arity + position of environment.\u000a",
        "date" : "2020-06-05 17:46:58 +0200",
        "id" : "7f5a137972fa08de923619d7456106336891a954",
        "msg" : "New representation of closures, native-code compilation",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "asmcomp/cmm_helpers.ml"
          },
          {
            "editType" : "edit",
            "file" : "asmcomp/cmm_helpers.mli"
          },
          {
            "editType" : "edit",
            "file" : "asmcomp/cmmgen.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "testsuite/tests/formatting/test_locations.dlocations.ocamlc.reference",
          "testsuite/tests/formatting/test_locations.dlocations.ocamlopt.clambda.reference",
          "testsuite/tests/formatting/test_locations.dno-locations.ocamlopt.flambda.reference",
          "testsuite/tests/formatting/test_locations.dno-locations.ocamlopt.clambda.reference",
          "testsuite/tests/formatting/test_locations.dlocations.ocamlopt.flambda.reference",
          "testsuite/tests/formatting/test_locations.ml"
        ],
        "commitId" : "e57785524b75dde6d0cf22bac9689cb76dbcd885",
        "timestamp" : 1591372099000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/xavier.leroy",
          "fullName" : "xavier.leroy"
        },
        "authorEmail" : "xavier.leroy@college-de-france.fr",
        "comment" : "Restrict 'test_locations' to 64-bit archs and update expected outputs\u000a\u000aExpected outputs contain integer values for the \"closure info\"\u000afield of some closures.  These values differ in 32 and 64 bits,\u000asince the arity is stored in top 8 bits.  This test would need\u000adifferent expected outputs for 32- and 64-bit platforms.\u000a\u000aTo keep things simple, this commit restricts the test\u000ato only run on 64-bit platforms.  Since this changes the locations\u000a",
        "date" : "2020-06-05 17:48:19 +0200",
        "id" : "e57785524b75dde6d0cf22bac9689cb76dbcd885",
        "msg" : "Restrict 'test_locations' to 64-bit archs and update expected outputs",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "testsuite/tests/formatting/test_locations.dlocations.ocamlc.reference"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/formatting/test_locations.dlocations.ocamlopt.clambda.reference"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/formatting/test_locations.dlocations.ocamlopt.flambda.reference"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/formatting/test_locations.dno-locations.ocamlopt.flambda.reference"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/formatting/test_locations.dno-locations.ocamlopt.clambda.reference"
          },
          {
            "editType" : "edit",
            "file" : "testsuite/tests/formatting/test_locations.ml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/major_gc.c"
        ],
        "commitId" : "843ec6227a664bff8b685b39ba7fe2e6350c19cf",
        "timestamp" : 1591372307000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/xavier.leroy",
          "fullName" : "xavier.leroy"
        },
        "authorEmail" : "xavier.leroy@college-de-france.fr",
        "comment" : "During major GC, scan the environment part of closures only\u000a\u000aHere we start reaping the benefits of the new closure representation.\u000a\u000aThe fields of a closure block that contain the code pointers need not\u000abe scanned (in general) and must not be scanned (in no-naked-pointers mode).\u000a\u000aHere, conservatively, we skip them in no-naked-pointers mode only,\u000abut it would be sound to skip them unconditionally.\u000a",
        "date" : "2020-06-05 17:51:47 +0200",
        "id" : "843ec6227a664bff8b685b39ba7fe2e6350c19cf",
        "msg" : "During major GC, scan the environment part of closures only",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/major_gc.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/startup_aux.c"
        ],
        "commitId" : "121dbb90f48c84aada841e1a087a5b3d74f3d3c7",
        "timestamp" : 1591372314000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/xavier.leroy",
          "fullName" : "xavier.leroy"
        },
        "authorEmail" : "xavier.leroy@college-de-france.fr",
        "comment" : "Give preallocated atoms the GC color Black\u000a\u000aAtoms are zero-sized blocks allocated outside the heap.\u000aIt simplifies the GC in no-naked-pointers mode if their headers\u000ahave GC color Black, meaning \"don't traverse\".\u000aIn ocamlopt, Black is already used as the color for constant blocks\u000astatically allocated outside the heap.\u000a",
        "date" : "2020-06-05 17:51:54 +0200",
        "id" : "121dbb90f48c84aada841e1a087a5b3d74f3d3c7",
        "msg" : "Give preallocated atoms the GC color Black",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/startup_aux.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "runtime/major_gc.c"
        ],
        "commitId" : "85f5006fd0e394aae848210c348ba4377f902499",
        "timestamp" : 1591372314000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/xavier.leroy",
          "fullName" : "xavier.leroy"
        },
        "authorEmail" : "xavier.leroy@college-de-france.fr",
        "comment" : "No need to special-case zero-sized blocks in no-naked-pointers mode\u000a\u000aNow that atoms have black headers, all zero-sized blocks (atoms or\u000aocamlopt-generated static data) have black headers and will not\u000abe traversed or changed by the major GC.\u000a",
        "date" : "2020-06-05 17:51:54 +0200",
        "id" : "85f5006fd0e394aae848210c348ba4377f902499",
        "msg" : "No need to special-case zero-sized blocks in no-naked-pointers mode",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "runtime/major_gc.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes"
        ],
        "commitId" : "59da2292b1ceb5315e445a5e164b5e3d8aff3d3b",
        "timestamp" : 1591372362000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/xavier.leroy",
          "fullName" : "xavier.leroy"
        },
        "authorEmail" : "xavier.leroy@college-de-france.fr",
        "comment" : "Changes entry for #9619\u000a",
        "date" : "2020-06-05 17:52:42 +0200",
        "id" : "59da2292b1ceb5315e445a5e164b5e3d8aff3d3b",
        "msg" : "Changes entry for #9619",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Changes"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changes",
          "lambda/lambda.mli",
          "lambda/lambda.ml",
          "lambda/translclass.ml",
          "lambda/translcore.ml",
          ".depend",
          "lambda/simplif.ml"
        ],
        "commitId" : "4aa90e9784bc66a43572bb2ac9175837192aebe1",
        "timestamp" : 1591375538000,
        "author" : {
          "absoluteUrl" : "https://ci.inria.fr/ocaml/user/noreply",
          "fullName" : "noreply"
        },
        "authorEmail" : "noreply@github.com",
        "comment" : "Limit the number of parameters for an uncurried or untupled function (#9620)\u000a\u000aThis commit introduces a quantity Lambda.max_arity that is the maximal\u000anumber of parameters that a Lambda function can have.\u000a\u000aUncurrying is throttled so that, for example, assuming the limit is 10,\u000aa 15-argument curried function fun x1 ... x15 -> e\u000abecomes a 10-argument function (x1...x10) that returns a 5-argument\u000afunction (x11...x15).\u000a\u000aConcerning untupling, a function that takes a N-tuple of arguments,\u000awhere N is above the limit, remains a function that takes a single\u000aargument that is a tuple.\u000a\u000aCurrently, max_arity is set to 126 in native-code, to match the new\u000arepresentation of closures implemented by #9619.  A signed 8-bit field\u000ais used to store the arity.  126 instead of 127 to account for the\u000aextra \"environment\" argument.\u000a\u000aIn bytecode the limit is infinity (max_int) because there are no needs\u000ayet for a limit on the number of parameters.\u000a",
        "date" : "2020-06-05 18:45:38 +0200",
        "id" : "4aa90e9784bc66a43572bb2ac9175837192aebe1",
        "msg" : "Limit the number of parameters for an uncurried or untupled function (#9620)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "lambda/translclass.ml"
          },
          {
            "editType" : "edit",
            "file" : "Changes"
          },
          {
            "editType" : "edit",
            "file" : ".depend"
          },
          {
            "editType" : "edit",
            "file" : "lambda/lambda.ml"
          },
          {
            "editType" : "edit",
            "file" : "lambda/simplif.ml"
          },
          {
            "editType" : "edit",
            "file" : "lambda/translcore.ml"
          },
          {
            "editType" : "edit",
            "file" : "lambda/lambda.mli"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://ci.inria.fr/ocaml/user/xavier.leroy",
      "fullName" : "xavier.leroy"
    },
    {
      "absoluteUrl" : "https://ci.inria.fr/ocaml/user/noreply",
      "fullName" : "noreply"
    }
  ]
}