summary refs log tree commit diff
path: root/pkgs/development/compilers/hugs/default.nix
blob: 4f3bbc6294be800224937953b7808b3300e18964 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
args: with args;
let edf = composableDerivation.edf;
    wwf = composableDerivation.wwf; in
composableDerivation.composableDerivation {} {

  name="hugs98";

  src = fetchurl {
      url = http://cvs.haskell.org/Hugs/downloads/2006-09/hugs98-Sep2006.tar.gz;
      sha256 = "3cf4d27673564cffe691bd14032369f646233f14daf2bc37c6c6df9f062b46b6";
  };

      #encode all character I/O using the byte encoding
      #determined by the locale in effect at that time. To
      #require that the UTF-8 encoding is always used, give
      #the --enable-char-encoding=utf8 option.
      #[default=autodetect]
  postUnpack = ''
    find -type f | xargs sed -i 's@/bin/cp@cp@';
  '';
  configurePhase="./configure --prefix=\$out --enable-char-encoding=utf8 $configureFlags";

  flags =
       edf { name = "pathCanonicalization"; feat="path-canonicalization"; }
    // edf { name="timer"; }   # enable evaluation timing (for benchmarking Hugs)
    // edf { name="profiling"; }# enable heap profiler
    // edf { name="stackDumps"; feat="stack-dummps"; } # enable stack dump on stack overflow
    // edf { name="largeBanner"; feat="large-banner"; } # disable multiline startup banner
    // edf { name="internal-prims"; } # experimental primitives to access Hugs's innards
    // edf { name="debug"; } # include C debugging information (for debugging Hugs)
    // edf { name="tag"; } # runtime tag checking (for debugging Hugs)
    // edf { name="lint"; } # enable "lint" flags (for debugging Hugs)
    // edf { name="only98"; } # build Hugs to understand Haskell 98 only
    // edf { name="ffi"; }
      #--with-nmake            produce a Makefile compatible with nmake
      #--with-gui              build Hugs for Windows GUI (Borland C++ only)
    // wwf { name="pthreads"; } #   build Hugs using POSIX threads C library
    ;

  cfg = {
    largeBannerSupport = true; # seems to be default


      char = { cfgOption = "--enable-char-encoding"; blocks = "utf8"; };
      utf8 = { cfgOption = "--enable-char-encoding=utf8"; blocks="char"; };

    };

  meta = {
    license = "as-is"; # gentoo is calling it this way..
    description = "The HUGS98 Haskell <interpreter";
    homepage = http://www.haskell.org/hugs;
  };
}