python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / development / interpreters / j / default.nix
blob5e67986ac105e9e5140966c248cbf372aff3420d
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , bc
5 , libedit
6 , readline
7 , avxSupport ? stdenv.hostPlatform.avxSupport
8 }:
10 stdenv.mkDerivation rec {
11   pname = "j";
12   version = "904-beta-c";
14   src = fetchFromGitHub {
15     name = "${pname}-source";
16     owner = "jsoftware";
17     repo = "jsource";
18     rev = "j${version}";
19     hash = "sha256-MzEO/saHEBl1JwVlFC6P2UKm9RZnV7KVrNd9h4cPV/w=";
20   };
22   buildInputs = [
23     readline
24     libedit
25     bc
26   ];
28   dontConfigure = true;
30   # emulating build_all.sh configuration variables
31   jplatform =
32     if stdenv.isDarwin then "darwin"
33     else if stdenv.hostPlatform.isAarch then "raspberry"
34     else if stdenv.isLinux then "linux"
35     else "unsupported";
37   j64x =
38     if stdenv.is32bit then "j32"
39     else if stdenv.isx86_64 then
40       if (stdenv.isLinux && avxSupport) then "j64avx" else "j64"
41     else if stdenv.isAarch64 then
42       if stdenv.isDarwin then "j64arm" else "j64"
43     else "unsupported";
45   buildPhase = ''
46     runHook preBuild
48     export SRCDIR=$(pwd)
49     export HOME=$TMPDIR
50     export JLIB=$SRCDIR/jlibrary
51     export CC=cc
53     cd make2
55     patchShebangs .
57     j64x="${j64x}" jplatform="${jplatform}" ./build_all.sh
59     cp -v $SRCDIR/bin/${jplatform}/${j64x}/* "$JLIB/bin"
61     runHook postBuild
62   '';
64   doCheck = true;
66   checkPhase = ''
67     runHook preCheck
69     echo "Smoke test"
70     echo 'i. 10' | $JLIB/bin/jconsole | fgrep "0 1 2 3 4 5 6 7 8 9"
72     # Now run the real tests
73     pushd $SRCDIR/test
74     for f in *.ijs
75     do
76       echo -n "test $f: "
77       $JLIB/bin/jconsole < $f > /dev/null || echo FAIL && echo PASS
78     done
79     popd
81     runHook postCheck
82   '';
84   installPhase = ''
85     runHook preInstall
87     mkdir -p "$out/share/j/"
88     cp -r $JLIB/{addons,system} "$out/share/j"
89     cp -r $JLIB/bin "$out"
91     runHook postInstall
92   '';
94   meta = with lib; {
95     homepage = "http://jsoftware.com/";
96     description = "J programming language, an ASCII-based APL successor";
97     longDescription = ''
98       J is a high-level, general-purpose programming language that is
99       particularly suited to the mathematical, statistical, and logical analysis
100       of data. It is a powerful tool for developing algorithms and exploring
101       problems that are not already well understood.
102     '';
103     license = licenses.gpl3Plus;
104     maintainers = with maintainers; [ raskin synthetica AndersonTorres ];
105     platforms = with platforms; unix;
106   };