1. 02 Jul, 2003 2 commits
    • simonpj's avatar
      [project @ 2003-07-02 13:18:24 by simonpj] · 96fd092f
      simonpj authored
      Fixes two minor bugs that I came across in the old
      CgCase code generation:
      1. We were generating
      	tmp = Sp[1]
      	... more uses of Sp[1]....
      instead of
      	tmp = Sp[1]
      	... more uses of tmp....
      in the (case v of ...prim alts...) situation
      2. The cost-centre restoration wasn't right for let-no-escapes
      I kept this fix separate, becuase it does change the code generated
    • simonpj's avatar
      [project @ 2003-07-02 13:12:33 by simonpj] · 3f5e4368
      simonpj authored
             Tidy up the code generator
      The code generation for 'case' expressions had grown
      huge and gnarly.  This commit removes about 120 lines of
      code, and makes it a lot easier to read too. I think the code
      generated is identical.
      Part of this was to simplify the StgCase data type, so
      that it is more like the Core case: there is a simple list
      of alternatives, and the DEFAULT (if present) must be the
      first.  This tidies and simplifies other Stg passes.
  2. 01 Jul, 2003 5 commits
  3. 30 Jun, 2003 5 commits
  4. 27 Jun, 2003 5 commits
    • simonpj's avatar
      [project @ 2003-06-27 21:17:24 by simonpj] · 8655d6ca
      simonpj authored
      Heal the head
    • sof's avatar
      [project @ 2003-06-27 18:28:31 by sof] · 9e6162f9
      sof authored
      Do as for one-shot linking and implicitly supply packages 'base' and
      'haskell98' when piecing together a DLL.
      Merge to STABLE.
    • wolfgang's avatar
      [project @ 2003-06-27 18:08:53 by wolfgang] · c27762cf
      wolfgang authored
      PowerPC: Make it work with Apple's version of GCC 3.3
    • stolz's avatar
      [project @ 2003-06-27 16:53:07 by stolz] · 25a96d10
      stolz authored
      Push down CPPFLAGS, CFLAGS and LDFLAGS.
      Now ./configure should pick up those flags and hopefully make life a bit
      easier for packagers. Notice that some flags which work fine for 'ld'
      won't work with ghc, e.g. the combination "-Wl,-E" which 'gtk-config --libs'
      suggests, so you'll usually want to set only -I or -L.
      > ghc -Wl,-E
      ghc-6.0: unrecognised flags: -Wl,-E
    • stolz's avatar
      [project @ 2003-06-27 16:21:10 by stolz] · 7f155a37
      stolz authored
      From genargs.pl:
      # This program generates a partial Haskell list of Strings from
      # words passed via stdin suitable for use in package.conf, e.g.:
      #   foo bar   --> "foo", "bar"
      #   "foo bar" --> "foo bar"
      #   foo\"bar  --> "foo\"bar"
      # Invoking genargs.pl with -comma will print an initial comma if
      # there's anything to print at all.
      # Sample application in a Makefile:
      #  HSIFIED_EXTRA_LD_OPTS= `echo "$(EXTRA_LD_OPTS)" | $(PERL) genargs.pl`
  5. 26 Jun, 2003 7 commits
  6. 25 Jun, 2003 3 commits
  7. 24 Jun, 2003 13 commits
    • stolz's avatar
      [project @ 2003-06-24 13:45:49 by stolz] · 2ec7f46d
      stolz authored
      Remove large chunk of duplicated documentation.
    • stolz's avatar
      [project @ 2003-06-24 12:56:43 by stolz] · 3251d5d3
      stolz authored
      FreeBSD Threaded-RTS wibbles (-pthread in {C,LD}FLAGS)
    • simonmar's avatar
      [project @ 2003-06-24 10:03:39 by simonmar] · 18fbcc6f
      simonmar authored
      Back out previous revision, the -traditional flag is now added in the
      suffix rule for .pp files (see $FPTOOLS_TOP/mk/suffix.mk).
    • simonmar's avatar
      [project @ 2003-06-24 10:01:27 by simonmar] · cd0f89a0
      simonmar authored
      "rec" should be a keyword only when -farrows is on, not when
      -fglasgow-exts is on.
    • ross's avatar
      [project @ 2003-06-24 09:44:44 by ross] · 81b7a3fb
      ross authored
      fix bug with ExprStmt, plus some cleaning up.
    • simonmar's avatar
      [project @ 2003-06-24 09:43:23 by simonmar] · fa2fe973
      simonmar authored
      Fix up compilation with GHC 5.02
    • stolz's avatar
      [project @ 2003-06-24 09:32:34 by stolz] · 9d5c1a04
      stolz authored
      Fix another occurence of openFileEx in stage2
    • stolz's avatar
      [project @ 2003-06-24 08:49:55 by stolz] · b996479a
      stolz authored
      - AP_UPD got renamed to AP in rev. 1.18 of ClosureTypes.h
      - #if 0-out section which is a sure segfault in the colouring loop
    • stolz's avatar
      [project @ 2003-06-24 08:47:05 by stolz] · 717412ee
      stolz authored
      Can't use tab stops in GTK
    • stolz's avatar
      [project @ 2003-06-24 08:31:35 by stolz] · 02928be0
      stolz authored
      Make 'depend' treated GTK includes as missing when building with FrontPanel.
    • stolz's avatar
      [project @ 2003-06-24 08:29:13 by stolz] · 073ba748
      stolz authored
      Eliminate warnings for ELF_*
    • simonpj's avatar
      [project @ 2003-06-24 08:03:15 by simonpj] · d2fcb5a6
      simonpj authored
      comments only
    • simonpj's avatar
      [project @ 2003-06-24 07:58:18 by simonpj] · 16e4ce4c
      simonpj authored
      	Add support for Ross Paterson's arrow notation
      Ross Paterson's ICFP'01 paper described syntax to support John Hughes's
      "arrows", rather as do-notation supports monads.  Except that do-notation is
      relatively modest -- you can write monads by hand without much trouble --
      whereas arrow-notation is more-or-less essential for writing arrow programs.
      It desugars to a massive pile of tuple construction and selection!
      For some time, Ross has had a pre-processor for arrow notation, but the
      resulting type error messages (reported in terms of the desugared code)
      are impenetrable.  This commit integrates the syntax into GHC.  The
      type error messages almost certainly still require tuning, but they should
      be better than with the pre-processor.
      Main syntactic changes (enabled with -farrows)
         exp ::= ... | proc pat -> cmd
         cmd ::= exp1 -<  exp2   |  exp1 >-  exp2
      	|  exp1 -<< exp2   |  exp1 >>- exp2
      	| \ pat1 .. patn -> cmd
      	| let decls in cmd
      	| if exp then cmd1 else cmd2
      	| do { cstmt1 .. cstmtn ; cmd }
      	| (| exp |) cmd1 .. cmdn
      	| cmd1 qop cmd2
      	| case exp of { calts }
         cstmt :: = let decls
      	 |   pat <- cmd
      	 |   rec { cstmt1 .. cstmtn }
      	 |   cmd
      New keywords and symbols:
      	proc rec
      	-<   >-   -<<   >>-
      	(|  |)
      The do-notation in cmds was not described in Ross's ICFP'01 paper; instead
      it's in his chapter in The Fun of Programming (Plagrave 2003).
      The four arrow-tail forms (-<) etc cover
        (a) which order the pices come in (-<  vs  >-), and
        (b) whether the locally bound variables can be used in the
      		arrow part (-<  vs  -<<) .
      In previous presentations, the higher-order-ness (b) was inferred,
      but it makes a big difference to the typing required so it seems more
      consistent to be explicit.
      The 'rec' form is also available in do-notation:
        * you can use 'rec' in an ordinary do, with the obvious meaning
        * using 'mdo' just says "infer the minimal recs"
      Still to do
      Top priority is the user manual.
      The implementation still lacks an implementation of
      the case form of cmd.
      Implementation notes
      Cmds are parsed, and indeed renamed, as expressions.  The type checker
      distinguishes the two.