1. 26 Jun, 2001 9 commits
    • sof's avatar
      [project @ 2001-06-26 23:22:37 by sof] · 544eeafe
      sof authored
    • sof's avatar
      [project @ 2001-06-26 23:12:19 by sof] · d2f7d10f
      sof authored
      Test whether $(CC) supports -mwin32 + have configure script set SRC_CC_OPTS
    • rrt's avatar
      [project @ 2001-06-26 16:32:03 by rrt] · 80b91584
      rrt authored
      Get rid of quotes around arguments to -D and -U. These get stripped by the
      Unix shell, but not by Windows's system, which upsets gcc.
    • rrt's avatar
      [project @ 2001-06-26 16:31:07 by rrt] · de27420c
      rrt authored
      Make system.c get compiled properly
    • rrt's avatar
      [project @ 2001-06-26 16:30:50 by rrt] · cfff5d21
      rrt authored
      Fix typos
    • rrt's avatar
      [project @ 2001-06-26 15:51:55 by rrt] · 3b8aa6ae
      rrt authored
      Make stage two getExecDir for Windows work again. Where did it go before?
    • simonpj's avatar
      [project @ 2001-06-26 11:07:55 by simonpj] · 38ca3fed
      simonpj authored
      Add #include for SysTools
    • simonpj's avatar
      [project @ 2001-06-26 11:07:42 by simonpj] · d1d60a15
      simonpj authored
      Add comments
    • reid's avatar
      [project @ 2001-06-26 08:13:04 by reid] · 39c84a7d
      reid authored
      NOTE: new configure.in - remember to autoconf and reconfig
      I'm moving X.gc and Xlib.gc from hslibs/graphics/lib/x11 to
      hslibs/xlib and integrating them into the hslibs maketree.  This lib
      now lives at the same place in the hierarchy as win32 - probably not
      perfect for the new library story but good enough for the old hslibs I
      I'm not converting them from GreenCard to hsc2hs but I think that
      would be a good medium term goal.  I'd like to do it myself because
      I'd like to try using hsc2hs but I can't imagine when I'll get the
      time so if someone feels like doing it, go right ahead.  (The HGL
      (hslibs/graphics/lib/x11) is probably the only code that depends on
      the Xlib interface - so mild changes to the Xlib API would be fairly
      easy to fix up.)
      It all seems to build and compile (not sure about linking yet) but,
      for the life of me, I can't figure out what part of the makefile calls
      ghc-pkg -a so that isn't quite working yet.  (I _think_ the makefile
      does this - but could be wrong.)
      If someone could either point me at the relevant part of the makefile
      docs or just fix it for me, I could move onto getting the graphics lib
      integrated into the hslibs maketree - which would leave me with just
      the Hugs part of the HGL distribution to fix before the next Hugs
      release.  (If I was a good Haggis, I'd beat up on Hugs' ffi too - but
      I'm a very overworked Haggis at the moment so I'm not sure I'll get
      that far.)
  2. 25 Jun, 2001 14 commits
    • sof's avatar
      [project @ 2001-06-25 21:08:01 by sof] · aea0a3d6
      sof authored
      sorry - prev. commit didn't take into account that the ghc version scheme isn't just a.bb[.c], but also a.bb[.yyyymmdd]. This broke the nightly build, my bad
    • sof's avatar
      [project @ 2001-06-25 17:28:30 by sof] · 6b6f88da
      sof authored
      Replace GHC version testing with something a bit more sturdy
    • simonpj's avatar
      [project @ 2001-06-25 14:50:22 by simonpj] · 68ad4c6a
      simonpj authored
      Keep pgm paths in native format
    • simonpj's avatar
      [project @ 2001-06-25 14:36:04 by simonpj] · a5ded1f8
      simonpj authored
      Import wibbles
    • simonpj's avatar
      [project @ 2001-06-25 13:13:58 by simonpj] · f00281df
      simonpj authored
      In nubBy, put argument to eq in the standard order
    • rrt's avatar
      [project @ 2001-06-25 11:11:16 by rrt] · 0282f593
      rrt authored
      Fix so that it compiles on both pre and post 5.00 series compilers.
    • rrt's avatar
      [project @ 2001-06-25 09:49:59 by rrt] · 14e414ec
      rrt authored
      Comment out an uncomfortable ASSERT for now.
    • rrt's avatar
      [project @ 2001-06-25 09:44:10 by rrt] · 265be40f
      rrt authored
      Add more symbols for mingwin version to get it to work. This still needs
      tidying up.
    • rrt's avatar
      [project @ 2001-06-25 09:34:11 by rrt] · d157569b
      rrt authored
      Remove hacked-in definition of system for mingwin; instead we now just link
      against the new version of systemCmd from lib/std/cbits/system.c.
    • simonpj's avatar
      [project @ 2001-06-25 08:09:57 by simonpj] · d069cec2
      simonpj authored
      	Squash newtypes
      This commit squashes newtypes and their coerces, from the typechecker
      onwards.  The original idea was that the coerces would not get in the
      way of optimising transformations, but despite much effort they continue
      to do so.   There's no very good reason to retain newtype information
      beyond the typechecker, so now we don't.
      Main points:
      * The post-typechecker suite of Type-manipulating functions is in
      types/Type.lhs, as before.   But now there's a new suite in types/TcType.lhs.
      The difference is that in the former, newtype are transparent, while in
      the latter they are opaque.  The typechecker should only import TcType,
      not Type.
      * The operations in TcType are all non-monadic, and most of them start with
      "tc" (e.g. tcSplitTyConApp).  All the monadic operations (used exclusively
      by the typechecker) are in a new module, typecheck/TcMType.lhs
      * I've grouped newtypes with predicate types, thus:
      	data Type = TyVarTy Tyvar | ....
      		  | SourceTy SourceType
      	data SourceType = NType TyCon [Type]
      			| ClassP Class [Type]
      			| IParam Type
      [SourceType was called PredType.]  This is a little wierd in some ways,
      because NTypes can't occur in qualified types.   However, the idea is that
      a SourceType is a type that is opaque to the type checker, but transparent
      to the rest of the compiler, and newtypes fit that as do implicit parameters
      and dictionaries.
      * Recursive newtypes still retain their coreces, exactly as before. If
      they were transparent we'd get a recursive type, and that would make
      various bits of the compiler diverge (e.g. things which do type comparison).
      * I've removed types/Unify.lhs (non-monadic type unifier and matcher),
      merging it into TcType.
      Ditto typecheck/TcUnify.lhs (monadic unifier), merging it into TcMType.
    • simonpj's avatar
      [project @ 2001-06-25 08:08:32 by simonpj] · 3622a7de
      simonpj authored
      	Add a new case optimisation
      I found that lib/std/PrelCError had a case-expression that was
      generating terrible code.   Something like this
      	x | p `is` 1 -> e1
      	  | p `is` 2 -> e2
      where @is@ was something like
      	p `is` n = p /= (-1) && p == n
      This gave rise to a horrible sequence of cases
      	case p of
      	  (-1) -> $j p
      	  1    -> e1
      	  DEFAULT -> $j p
      and similarly in cascade for all the join points!
      Solution: add the following transformation:
      	case e of		=====>     case e of
      	  C _ -> <expr>			     D v -> ....v....
      	  D v -> ....v....		     DEFAULT -> <expr>
      	  DEFAULT -> <expr>
      The point is that we merge common RHSs, at least for the DEFAULT case.
      [One could do something more elaborate but I've never seen it needed.]
      This transformation is implemented in SimplUtils.mkCase
      *** WARNING ***
      	To make this transformation easy, I have switched the convention
      	for DEFAULT clauses.  They must now occur FIRST in the list of
      	alternatives for a Core case expression.  (The semantics is
      	unchanged: they still are a catch-all case.)
      	The reason is that DEFAULT clauses sometimes need special treatment,
      	and it's a lot easier to find them at the front.
      	The easiest way to be insensitive to this change is to use
      	CoreUtils.findDefault to pull the default clause out.
      I've made the (surprisingly few) changes consequent on this changed
      of convention, but they aren't in this commit.  Instead they are part
      of the big commit on newtypes I'm doing at the same time.
    • simonpj's avatar
      [project @ 2001-06-25 08:01:16 by simonpj] · a12bed53
      simonpj authored
      	Fix a predicate-simplification bug
      Fixes a bug pointed out by Marcin
          data R = R {f :: Int}
          foo:: (?x :: Int) => R -> R
          foo r = r {f = ?x}
      	Could not deduce `?x :: Int' from the context ()
      	arising from use of implicit parameter `?x' at Test.hs:4
      	In the record update: r {f = ?x}
      	In the definition of `foo': r {f = ?x}
      The predicate simplifier was declining to 'inherit' an
      implicit parameter.  This is right for a let-binding, but
      wrong for an expression binding.  For example, a simple
      expression type signature:
      		(?x + 1) :: Int
      This was rejected because the ?x constraint could not be
      floated out -- but that's wrong for expressions.
    • sof's avatar
      [project @ 2001-06-25 05:25:31 by sof] · ef934bae
      sof authored
      One RCS  will do
    • sof's avatar
      [project @ 2001-06-25 01:35:07 by sof] · 2917a645
      sof authored
      With -no-hs-main, don't force PrelMain.o to be linked (=> Main.o)
  3. 23 Jun, 2001 2 commits
  4. 22 Jun, 2001 8 commits
  5. 18 Jun, 2001 4 commits
  6. 15 Jun, 2001 3 commits