1{ lib
2, stdenv
3, fetchurl
4, gsl
5, plotutils
6, postgresql
7}:
8
9stdenv.mkDerivation rec {
10 pname = "algol68g";
11 version = "2.8.4";
12
13 src = fetchurl {
14 url = "https://jmvdveer.home.xs4all.nl/${pname}-${version}.tar.gz";
15 hash = "sha256-WCPM0MGP4Qo2ihF8w5JHSMSl0P6N/w2dgY/3PDQlZfA=";
16 };
17
18 patches = [
19 # add PNG support
20 ./0001-plotutils-png-support.diff
21 ];
22
23 buildInputs = [
24 gsl
25 plotutils
26 postgresql
27 ];
28
29 postInstall = let
30 pdfdoc = fetchurl {
31 url = "https://jmvdveer.home.xs4all.nl/learning-algol-68-genie.pdf";
32 hash = "sha256-QCwn1e/lVfTYTeolCFErvfMhvwCgsBnASqq2K+NYmlU=";
33 };
34 in
35 ''
36 install -m644 ${pdfdoc} $out/share/doc/${pname}/learning-algol-68-genie.pdf
37 '';
38
39 meta = with lib; {
40 homepage = "https://jmvdveer.home.xs4all.nl/en.algol-68-genie.html";
41 description = "Algol 68 Genie compiler-interpreter";
42 longDescription = ''
43 Algol 68 Genie (a68g) is a recent checkout hybrid compiler-interpreter,
44 written from scratch by Marcel van der Veer. It ranks among the most
45 complete Algol 68 implementations. It implements for example arbitrary
46 precision arithmetic, complex numbers, parallel processing, partial
47 parametrisation and formatted transput, as well as support for curses,
48 regular expressions and sounds. It can be linked to GNU plotutils, the GNU
49 scientific library and PostgreSQL.
50 '';
51 license = licenses.gpl3Plus;
52 maintainers = with maintainers; [ AndersonTorres ];
53 mainProgram = "a68g";
54 platforms = platforms.unix;
55 };
56}