1. 24 Aug, 2001 6 commits
  2. 23 Aug, 2001 30 commits
    • gla's avatar
      [project @ 2001-08-23 22:53:08 by gla] · e0075c8f
      gla authored
      Correct typos and minor errors.
      Reorganized most of the sections, and the interface subsection appears first in each section.
      Made a small change to Figure 1, the overall architecture of the storage manager.
      The description on the configuration of the nursery is now correct.
      Added a short section on the state of the heap allocator.
    • qrczak's avatar
      [project @ 2001-08-23 20:19:16 by qrczak] · 572ee73c
      qrczak authored
      Don't say that GHC doesn't do fixity resolution on the left hand side
      of a binding before deciding which symbol is the function symbol.
      This has been fixed.
    • gla's avatar
      [project @ 2001-08-23 18:23:46 by gla] · 068d72ee
      gla authored
      Rephrased a few paragraphs.
      Added a paragraph on the interface to retainerSet.
      Added 'To do' paragraphs, which may be useful for maintenance.
    • simonpj's avatar
      [project @ 2001-08-23 16:27:11 by simonpj] · 72126bb9
      simonpj authored
      Fix representation finding for recursive newtypes
    • simonmar's avatar
      [project @ 2001-08-23 15:34:49 by simonmar] · 7339849c
      simonmar authored
      Note that support for generics is currently broken.
    • simonpj's avatar
      [project @ 2001-08-23 15:06:59 by simonpj] · ae3231c4
      simonpj authored
      remove rnsource.hi-boot-5 (part of prev commit)
    • simonpj's avatar
      [project @ 2001-08-23 15:05:52 by simonpj] · f62fd70d
      simonpj authored
      More instance-gate fiddling.  This must be one of the most
      tiremsome bits of the entire compiler, and I appear to be
      incapable of modifying it without getting it wrong at least
      Still, this commit does tidy things up a bit.
      * The type renamers (rnHsType, etc) have moved from RnSource
        into a new module RnTypes.
      * This breaks a couple of loops, and lets us nuke RnSource.hi-boot.
    • simonmar's avatar
      [project @ 2001-08-23 14:44:43 by simonmar] · a0cc55a8
      simonmar authored
      Release notes updated with library changes since 5.00.2.
    • simonmar's avatar
      [project @ 2001-08-23 14:41:36 by simonmar] · 46863742
      simonmar authored
      include the 5.02 release notes
    • simonmar's avatar
      [project @ 2001-08-23 14:39:02 by simonmar] · f09b747e
      simonmar authored
      document -fno-code.
    • rrt's avatar
      [project @ 2001-08-23 14:38:31 by rrt] · 9f3d9cde
      rrt authored
      The new InstallShield for Windows Installer installer. I won't nuke the old
      IS6 one for now, but expect it to go after the GHC 5.02 release.
      The new installer uses the standard Windows Installer system, so should be
      easier to migrate away from InstallShield to a more automated system in
      future, though that will require the setup to be exported (the .ism format
      is proprietary to InstallShield).
      Also, the entire setup lives in one file rather than a zillion scattered
      over a hierarchy with lots of empty directories and space-including
      directory names, so it's rather easier to check out!
    • simonmar's avatar
      [project @ 2001-08-23 14:38:23 by simonmar] · 53acec44
      simonmar authored
      Document -fno-code.
    • rrt's avatar
      [project @ 2001-08-23 12:50:13 by rrt] · b9e2f03d
      rrt authored
      On second thoughts, strip either a backslash or a slash, as if we read
      an environment variable, we may well get a slash in the path; if we
      get a result from GetTempPath, it'll probably have a backslash.
    • rrt's avatar
      [project @ 2001-08-23 12:48:54 by rrt] · 7362ac37
      rrt authored
      Strip a backslash, not a slash.
    • simonmar's avatar
      [project @ 2001-08-23 10:55:37 by simonmar] · a022fabe
      simonmar authored
      Remove no-longer-useful README.  All that's left here now is the GHCi
      tests, which aren't ready to be moved over to the new testsuite yet.
    • simonmar's avatar
      [project @ 2001-08-23 10:53:46 by simonmar] · 02e6e233
      simonmar authored
      remove unused tests.
    • simonmar's avatar
      [project @ 2001-08-23 10:51:19 by simonmar] · db462b29
      simonmar authored
      old tests, most of which seem to have been used during development
      rather than as regression tests.
    • sewardj's avatar
      [project @ 2001-08-23 10:36:50 by sewardj] · cff3ca90
      sewardj authored
      Globally-uniquify the names of some _wrap functions so that the
      previously-undetected global namespace clashes don't cause an
      assertion failure in Hash.c when compiled -DDEBUG when starting GHCi
      with various hslibs packages.
    • simonmar's avatar
      [project @ 2001-08-23 10:33:36 by simonmar] · 212c2212
      simonmar authored
      Add a new section, documenting "GHC's take on behaviour that is left
      undefined or implementation specific in Haskell 98", and in it
      document the size of Int, the behaviour of fromIntegral, and the
      behaviour of floating-point exceptions.
    • rrt's avatar
      [project @ 2001-08-23 10:29:53 by rrt] · 17c8f290
      rrt authored
      reinstate some Windows-specific code I deleted by mistake.
    • rrt's avatar
      [project @ 2001-08-23 10:06:04 by rrt] · 3c5f4c86
      rrt authored
      Remove spurious ;; from when the changed line was in a case.
    • simonmar's avatar
      [project @ 2001-08-23 10:02:46 by simonmar] · a9d02738
      simonmar authored
      markup fixes
    • simonpj's avatar
      [project @ 2001-08-23 09:54:45 by simonpj] · 98bf5734
      simonpj authored
      	Be a bit more liberal when slurping instance decls
      Functional dependencies have (as usual) made things more complicated
      Suppose an interface file contains
      	interface A where
      	  class C a b | a->b where op :: a->b
      	  instance C Foo Baz where ...
      Now we are compiling
      	module B where
      	  import A
      	  t = op (v::Foo)
      Should we slurp the instance decl, even though Baz is nowhere mentioned
      in module B?  YES!  Because of the fundep, the (C Foo ?) part is enough to
      select this instance decl, and the Baz part follows.
      Rather than take fundeps into account "properly", we just slurp
      if C is visible and *any one* of the Names in the types
      This is a slightly brutal approximation, but most instance decls
      are regular H98 ones and it's perfect for them.
      	generalise the types of GatedDecl a bit
        RnHiFiles.loadInstDecl, RnHiFiles.loadRule, RnIfaces.selectGated:
      	the meat of the solution
        RdrName, OccName etc:
      	some consequential wibbles
    • simonmar's avatar
      [project @ 2001-08-23 08:54:45 by simonmar] · 321743a1
      simonmar authored
      Put a big flashing warning sign next to the description of -O2-for-C,
      and don't endorse it by claiming that we actually use it (we don't).
    • rrt's avatar
      [project @ 2001-08-23 08:45:50 by rrt] · dc2d5709
      rrt authored
      Remove dependency of win32 on greencard (because the latter is merged
      into the former). This is a temporary hack until the greencard library
      is added to the new libraries.
    • simonpj's avatar
      [project @ 2001-08-23 08:43:30 by simonpj] · de568761
      simonpj authored
      	Correct a horrible error in repType
      repType is meant to give the underlying representation of a type.
      But it wasn't taking account of the fact that *recursive* newtypes are
      still represented by a TyConApp.  (Non-recursive ones behave much more
      like type synonyms now.)
      As a result, if we have
      	newtype F = F (F->F)
      then Bad Things happen if we try to seq x::F.  We decide whether to
      push an ordinary return address or a SEQ frame based on the type,
      and repType didn't expose the fact that F is represented by a function type.
      Aargh. codeGen/should_run/cg050 now tests for this.
    • simonpj's avatar
      [project @ 2001-08-23 08:43:13 by simonpj] · b1045396
      simonpj authored
      Add coment
    • rrt's avatar
      [project @ 2001-08-23 08:36:11 by rrt] · c72d045c
      rrt authored
      Remove kludgy hack that on mingwin appends C: to the result of gcc
      -print-prog-name=ld, which doesn't work with the newest mingwin gcc
      (which kindly adds C: for us).
    • simonpj's avatar
      [project @ 2001-08-23 07:52:32 by simonpj] · 7d474405
      simonpj authored
      Use the unpack strategy!
    • simonpj's avatar
      [project @ 2001-08-23 07:13:16 by simonpj] · 92fbaba6
      simonpj authored
      	Improve the demand analyser [case]
      1. In the Case case of dmdAnal, I dealt with the case binder in a way that
      was both clumsy and pessimistic.  This commit fixes that:
      	-- Figure out whether the demand on the case binder is used, and use
      	-- that to set the scrut_dmd.  This is utterly essential.
      	-- Consider	f x = case x of y { (a,b) -> k y a }
      	-- If we just take scrut_demand = U(L,A), then we won't pass x to the
      	-- worker, so the worker will rebuild
      	--	x = (a, absent-error)
      	-- and that'll crash.
      	-- So at one stage I had:
      	--	dead_case_bndr		 = isAbsentDmd (idNewDemandInfo case_bndr')
      	--	keepity | dead_case_bndr = Drop
      	--		| otherwise	 = Keep
      	-- But then consider
      	--	case x of y { (a,b) -> h y + a }
      	-- where h : U(LL) -> T
      	-- The above code would compute a Keep for x, since y is not Abs, which is silly
      	-- The insight is, of course, that a demand on y is a demand on the
      	-- scrutinee, so we need to `both` it with the scrut demand
              scrut_dmd 		 = Seq Drop Now [idNewDemandInfo b | b <- bndrs', isId b]
      				   idNewDemandInfo case_bndr'
      	-- There used to be a special case for when
      	--	ty == TyVarTy tv
      	-- (a not-uncommon case) in which case the substitution was dropped.
      	-- But the type-tidier changes the print-name of a type variable without
      	-- changing the unique, and that led to a bug.   Why?  Pre-tidying, we had
      	-- a type {Foo t}, where Foo is a one-method class.  So Foo is really a newtype.
      	-- And it happened that t was the type variable of the class.  Post-tiding,
      2. 'defer' can be simplified to 'lub Abs', reducing the number of places
      where things can go wrong.
      3. Add comments
  3. 22 Aug, 2001 4 commits