<commit_before>{ minor_version, major_version, patch_version
, url ? null
, sha256, ...}@args:
let
  versionNoPatch = "${toString major_version}.${toString minor_version}";
  version = "${versionNoPatch}.${toString patch_version}";
  real_url = if url == null then
    "http://caml.inria.fr/pub/distrib/ocaml-${versionNoPatch}/ocaml-${version}.tar.xz"
  else url;
  safeX11 = stdenv: !(stdenv.isAarch32 || stdenv.isMips);
in

{ stdenv, fetchurl, ncurses, buildEnv
, libX11, xproto, useX11 ? safeX11 stdenv
, flambdaSupport ? false
}:

assert useX11 -> !stdenv.isAarch32 && !stdenv.isMips;
assert flambdaSupport -> stdenv.lib.versionAtLeast version "4.03";

let
   useNativeCompilers = !stdenv.isMips;
   inherit (stdenv.lib) optional optionals optionalString;
   name = "ocaml${optionalString flambdaSupport "+flambda"}-${version}";
in

stdenv.mkDerivation (args // rec {

  x11env = buildEnv { name = "x11env"; paths = [libX11 xproto]; };
  x11lib = x11env + "/lib";
  x11inc = x11env + "/include";

  inherit name;
  inherit version;

  src = fetchurl {
    url = real_url;
    inherit sha256;
  };

  prefixKey = "-prefix ";
  configureFlags = optionals useX11 [ "-x11lib" x11lib
                                      "-x11include" x11inc ]
  ++ optional flambdaSupport "-flambda"
  ;
<commit_msg>ocaml: fix build when X11 is not available<commit_after>{ minor_version, major_version, patch_version
, url ? null
, sha256, ...}@args:
let
  versionNoPatch = "${toString major_version}.${toString minor_version}";
  version = "${versionNoPatch}.${toString patch_version}";
  real_url = if url == null then
    "http://caml.inria.fr/pub/distrib/ocaml-${versionNoPatch}/ocaml-${version}.tar.xz"
  else url;
  safeX11 = stdenv: !(stdenv.isAarch32 || stdenv.isMips);
in

{ stdenv, fetchurl, ncurses, buildEnv
, libX11, xproto, useX11 ? safeX11 stdenv
, flambdaSupport ? false
}:

assert useX11 -> !stdenv.isAarch32 && !stdenv.isMips;
assert flambdaSupport -> stdenv.lib.versionAtLeast version "4.03";

let
   useNativeCompilers = !stdenv.isMips;
   inherit (stdenv.lib) optional optionals optionalString;
   name = "ocaml${optionalString flambdaSupport "+flambda"}-${version}";
in

let
  x11env = buildEnv { name = "x11env"; paths = [libX11 xproto]; };
  x11lib = x11env + "/lib";
  x11inc = x11env + "/include";
in

stdenv.mkDerivation (args // rec {

  inherit name;
  inherit version;

  src = fetchurl {
    url = real_url;
    inherit sha256;
  };

  prefixKey = "-prefix ";
  configureFlags = optionals useX11 [ "-x11lib" x11lib
                                      "-x11include" x11inc ]
  ++ optional flambdaSupport "-flambda"
  ;

{'fraction_non_alphanumeric': 0.13846737481031868, 'fraction_numerical': 0.036418816388467376, 'mean_word_length': 3.642605633802817, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6805792', 'n_tokens_mistral': 994, 'n_tokens_neox': 933, 'n_words': 209}