Merge pull request #119126 from fabaff/pycomfoconnect
[NixPkgs.git] / pkgs / development / compilers / bupc / default.nix
blob9b3a291a1a0861b0bdd61f045e7a922db2cfb624
1 { lib, stdenv, fetchurl, perl, coreutils }:
3 stdenv.mkDerivation rec {
4   name = "berkeley_upc-2.22.0";
6   src = fetchurl {
7     url = "http://upc.lbl.gov/download/release/${name}.tar.gz";
8     sha256 = "041l215x8z1cvjcx7kwjdgiaf9rl2d778k6kiv8q09bc68nwd44m";
9   };
11   postPatch = ''
12     patchShebangs .
13   '';
15   # Used during the configure phase
16   ENVCMD = "${coreutils}/bin/env";
18   nativeBuildInputs = [ coreutils ];
19   buildInputs = [ perl ];
21   meta = with lib; {
22     description = "A compiler for the Berkely Unified Parallel C language";
23     longDescription = ''
24       Unified Parallel C (UPC) is an extension of the C programming language
25       designed for high performance computing on large-scale parallel
26       machines.The language provides a uniform programming model for both
27       shared and distributed memory hardware. The programmer is presented with
28       a single shared, partitioned address space, where variables may be
29       directly read and written by any processor, but each variable is
30       physically associated with a single processor. UPC uses a Single Program
31       Multiple Data (SPMD) model of computation in which the amount of
32       parallelism is fixed at program startup time, typically with a single
33       thread of execution per processor.
34     '';
35     homepage = "https://upc.lbl.gov/";
36     license = licenses.mit;
37     platforms = with platforms; [ linux ];
38     maintainers = with maintainers; [ zimbatm ];
39   };