1. 20 Feb, 2001 6 commits
    • simonpj's avatar
      [project @ 2001-02-20 09:42:50 by simonpj] · 22ffc06a
      simonpj authored
      Typechecking [TcModule, TcBinds, TcHsSyn, TcInstDcls, TcSimplify]
      * Fix a bug in TcSimplify that broke functional dependencies.
        Interleaving unification and context reduction is trickier 
        than I thought.  Comments in the code amplify.  
      * Fix a functional-dependency bug, that meant that this pgm:
      	class C a b | a -> b where f :: a -> b
      	g :: (C a b, Eq b) => a -> Bool
      	g x = f x == f x
        gave an ambiguity error report.  I'm afraid I've forgotten
        what the problem was.
      * Correct the implementation of the monomorphism restriction,
        in TcBinds.generalise.  This fixes Marcin's bug report:
      	test1 :: Eq a => a -> b -> b
      	test1 x y = y
      	test2 = test1 (3::Int)
        Previously we were erroneously inferring test2 :: () -> ()
      * Make the "unf_env" that is looped round in TcModule go round
        in a big loop, not just round tcImports.  This matters when
        we have mutually recursive modules, so that the Ids bound in
        the source code may appear in the imports.  Sigh.  But no big
        It does mean that you have to be careful not to call isLocalId,
        isDataConId etc, because they consult the IdInfo of an Id, which 
        in turn may be determined by the loop-tied unf_env.
    • simonpj's avatar
      [project @ 2001-02-20 09:41:48 by simonpj] · 52eed22d
      simonpj authored
      Deprecations [HscTypes, MkIface, Rename, RnEnv, RnIfaces]
      * Arrange that a change in deprecations is treated as a 
        hi-file difference.
      * Warn about deprecations at the usage site.  This entailed
        changing HscTypes.GlobalRdrEnv to include deprecations.
        While I was at it, I changed the range of GlobalRdrEnv 
        to a data type, GlobalRdrElt, instead a of a pair.
    • simonpj's avatar
      [project @ 2001-02-20 09:40:43 by simonpj] · 5e624292
      simonpj authored
      Decoupling the Prelude [HsExpr, HsLit, HsPat, ParseUtil, Parser.y, PrelNames,
      ~~~~~~~~~~~~~~~~~~~~~~  Rename, RnEnv, RnExpr, RnHsSyn, Inst, TcEnv, TcMonad,
      			TcPat, TcExpr]
      The -fno-implicit-prelude flag is meant to arrange that when you write
      you get
      	fromInt 3
      where 'fromInt' is whatever fromInt is in scope at the top level of
      the module being compiled.  Similarly for
      	* numeric patterns
      	* n+k patterns
      	* negation
      This used to work, but broke when we made the static/dynamic flag distinction.
      It's now tidied up a lot.  Here's the plan:
        - PrelNames contains sugarList :: SugarList, which maps built-in names
          to the RdrName that should replace them.  
        - The renamer makes a finite map :: SugarMap, which maps the built-in names
          to the Name of the re-mapped thing
        - The typechecker consults this map via tcLookupSyntaxId when it is doing
          numeric things
      At present I've only decoupled numeric syntax, since that is the main demand,
      but the scheme is much more robustly extensible than the previous method.
      As a result some HsSyn constructors don't need to carry names in them
      (notably HsOverLit, NegApp, NPlusKPatIn)
    • simonpj's avatar
      [project @ 2001-02-20 09:38:59 by simonpj] · d5c7622a
      simonpj authored
      Back end changes [CgExpr, ClosureInfo, CoreSat, CoreUtils,
      ~~~~~~~~~~~~~~~~  CmdLineOpts, HscMain, CoreToStg, StgSyn]
      * Move CoreTidy and interface-file dumping *before* CoreSat.
        In this way interface files are not in A-normal form, so
        they are less bulky, and a bit easier to use as input to
        the optimiser.  
        So now CoreSat is regarded as a pre-pass to CoreToStg.
        Since CoreTidy pins on utterly-final IdInfo, CoreSat has to
        be very careful not to change the arity of any function.
      * CoreSat uses OrdList instead of lists to collect floating binds
        This in turn meant I could simplify the FloatingBind type a bit
      * Greatly simplfy the StgBinderInfo data type.  It was 
        gathering far more information than we needed.
      * Add a flag -fkeep-stg-types, which keeps type abstractions
        and applications in STG code, for the benefit of code generators
        that are typed; notably the .NET ILX code generator.
    • simonpj's avatar
      [project @ 2001-02-20 08:57:46 by simonpj] · d79c57bb
      simonpj authored
      Add fundeps tests
    • qrczak's avatar
      [project @ 2001-02-20 03:41:31 by qrczak] · d9ab3ccf
      qrczak authored
      Remove unbalanced #endif.
  2. 19 Feb, 2001 9 commits
    • rrt's avatar
      [project @ 2001-02-19 16:18:38 by rrt] · 5a4e3fcf
      rrt authored
      Use Sleep under mingw rather than sleep (which is obsolete), and try using
      fork under cygwin (it should work by now, shurely...).
    • rrt's avatar
      [project @ 2001-02-19 16:10:23 by rrt] · b17dd816
      rrt authored
      Don't declare unused struct termios on mingwin.
    • rrt's avatar
      [project @ 2001-02-19 16:07:48 by rrt] · a336a1e7
      rrt authored
      Move if #ifndefs so that no code is compiled on win32; the code that was
      compiled was doing nothing useful, and probably shouldn't have been.
    • rrt's avatar
      [project @ 2001-02-19 14:54:48 by rrt] · 984b949e
      rrt authored
      Add -mno-cygwin to CPPFLAGS on i386-unknown-mingw32 to stop configure.h
      getting lots of bogus headers that aren't there. I'm not at all sure why
      this hasn't caused problems before...
    • simonmar's avatar
      [project @ 2001-02-19 12:35:31 by simonmar] · 323d8c13
      simonmar authored
      fix the GHC_HAPPY_OPTS hack to correctly detect happy 1.10
    • simonmar's avatar
      [project @ 2001-02-19 12:13:49 by simonmar] · 19bbe5eb
      simonmar authored
      Rather than implement -K (which would probably need another primop),
      simply bump the maximum stack size to 8M.  It dynamically grows
    • sewardj's avatar
      [project @ 2001-02-19 11:38:55 by sewardj] · 8384f6dd
      sewardj authored
      Expand on comments re StString lifting activity
    • sewardj's avatar
      [project @ 2001-02-19 10:15:54 by sewardj] · 0879ee32
      sewardj authored
      Fix two bugs exposed when trying to boot HEAD on sparc with NCG and -O:
      1.  StScratchWords on sparc were in the wrong place; they were
          immediately above %fp and should have been immediately below.
          Fixed.  Also removed a suspicious-looking "+1" in the x86
          version of same.
      2.  (Potentially affects all platforms): Lift strings out from
          top-level literal data, and place them at the end of the block.
          The motivating example (bug) was:
              Bogon.ping_closure :
              (Data P_ Addr.A#_static_info)
              (Data StgAddr (Str `alalal'))
              (Data P_ (0))
           results in:
                      .align 8
              .global Bogon_ping_closure
                      .long   Addr_Azh_static_info
                      .long   .Ln1a8
                      .byte   0x61
                      .byte   0x6C
                      .byte   0x61
                      .byte   0x6C
                      .byte   0x61
                      .byte   0x6C
                      .byte   0x00
                      .long   0
         ie, the Str is planted in-line, when what we really meant was to place
         a _reference_ to the string there.  This is Way Wrong (tm).  Fixed.
    • qrczak's avatar
      [project @ 2001-02-19 09:06:23 by qrczak] · ec594d7e
      qrczak authored
      Oops, I broke it yesterday; don't use autoheader.
      (I don't see my yesterday's commit log. I changed #define to #undef
      in autoconf templates.)
  3. 18 Feb, 2001 2 commits
  4. 17 Feb, 2001 2 commits
  5. 16 Feb, 2001 4 commits
  6. 15 Feb, 2001 8 commits
  7. 14 Feb, 2001 9 commits