1. 08 Oct, 2001 1 commit
  2. 04 Oct, 2001 4 commits
  3. 03 Oct, 2001 12 commits
    • simonpj's avatar
      [project @ 2001-10-03 16:20:57 by simonpj] · a1b59a18
      simonpj authored
      Add comments, and nuke strictness info in CoreTidy if totally boring
      a1b59a18
    • rrt's avatar
      [project @ 2001-10-03 15:30:57 by rrt] · d1bf2fc3
      rrt authored
      Dear Sigbjorn,
      
      next time you turn an
      
      if...endif
      
      into an
      
      if...else..endif
      
      remember to check the sense of the test. Sometimes, it needs to be reversed
      (there was in this case a hint in the surrounding code).
      
      Love,
      
      Reuben.
      d1bf2fc3
    • simonpj's avatar
      [project @ 2001-10-03 13:59:22 by simonpj] · ea00738b
      simonpj authored
      wibbles only
      ea00738b
    • simonpj's avatar
      [project @ 2001-10-03 13:58:50 by simonpj] · f659cb97
      simonpj authored
      ---------------------
      	Clear up infelicities
      	---------------------
      	CorePrep, CoreUtils, SimplUtils
      	LiberateCase (wibbles only)
      
      * Previously CorePrep was floating LocalIds to top level, which
        breaks the invariant that after CorePrep all top level Ids are
        GlobalIds.  But it didn't really need to, and this pass makes it
        so.  It's much tidier now.
      
      * Make CorePrep do eta expansion on partial applications
      	x = foldr f y  ==>   x = \ys -> foldr f y ys
        (This used to be done in the simplifier, but now the
        simplifier only eta expands where there is at least one
        lambda already.)
      
      * Omit CoreUtils.etaReduce.  (Never called.)
      
      * Improve CoreUtils.etaExpand, so that it doesn't add gratuitous
        beta redexes.
      f659cb97
    • simonpj's avatar
      [project @ 2001-10-03 13:58:13 by simonpj] · 4a1e12a1
      simonpj authored
      ----------------------------------------------
      	Output curried functions for data constructors
      	----------------------------------------------
      			(incomplete)
      
      The idea here is to output code for the *curried* version of
      the worker of a data constructor, so that the worker can be
      treated as a first-class citizen elsewhere in the compiler.
      In particular, it doesn't need to be a "hasNoBinding" thing,
      which are the subject of a number of nasty hacks.
      
      These changes only do the business for the code gen route
      via AbstractC.  Remaining to do: the byte code generator.
      
      Idea: move the byte-code gen to STG code, and inject the
      curried data-constructor workers at the STG stage.
      
      
      	I hope the changes here won't make
      	anything stop working.  For now, constructor
      	workers remain "hasNoBinding" things.
      
      CgConTbls, CodeGen, CoreTidy, CoreToStg
      4a1e12a1
    • simonmar's avatar
      [project @ 2001-10-03 13:57:42 by simonmar] · b4623557
      simonmar authored
      Tidy up ghc/includes/Constants and related things.
      
      Now all the constants that the compiler needs to know, such as header
      size, update frame size, info table size and so on are generated
      automatically into a header file, DeriviedConstants.h, by a small C
      program in the same way as NativeDefs.h.  The C code in the RTS is
      expected to use sizeof() directly (it already does).
      
      Also tidied up the constants in MachDeps.h - all the constants
      representing the sizes of various types are named SIZEOF_<foo>, to
      match the constants defined in config.h.  PrelStorable.lhs now doesn't
      contain any special knowledge about GHC's conventions as regards the
      size of certain types, this is all in MachDeps.h.
      b4623557
    • simonpj's avatar
      [project @ 2001-10-03 13:57:33 by simonpj] · e205a0ce
      simonpj authored
      -------------------------------------------
      	Don't bomb out on inlining big constructors
      	-------------------------------------------
      
      The unfolder bombs out if the expression get too big; no point in
      computing its exact size when it's vast.  But for *constructors*
      applied to a lot of args, it's worth keeping going, because we
      get a big *disount* too
      	$fFooInt = :CFoo a1 a2 a3 ... a50
      
      We want to keep the inlining for $fFooInt in interface files, so
      that importing guys can do the selection.
      
      
      Solution: only bomb out when size-discount gets too big.
      e205a0ce
    • rrt's avatar
      [project @ 2001-10-03 10:18:31 by rrt] · 5e1f86a7
      rrt authored
      This file shouldn't be in the repository any more (there's a
      PrelGHC.hi-boot.pp).
      
      Why is it only me that notices these phantom leftovers? Why don't they cause
      problems for other people?
      5e1f86a7
    • sewardj's avatar
      [project @ 2001-10-03 09:56:18 by sewardj] · 7693d3bd
      sewardj authored
      In the interactive FFI, handle f-i'd fns which return char.
      7693d3bd
    • rrt's avatar
      [project @ 2001-10-03 09:43:11 by rrt] · a3ccd83f
      rrt authored
      Remove import of unDosifyPath, and the comment saying that it is used.
      a3ccd83f
    • simonmar's avatar
      [project @ 2001-10-03 09:20:20 by simonmar] · 28274f6a
      simonmar authored
      minor wibble: use Maybe.isJust rather than maybeToBool
      28274f6a
    • simonmar's avatar
      [project @ 2001-10-03 08:16:49 by simonmar] · 2e9f2703
      simonmar authored
      Don't print the "compilation IS NOT required" in quiet mode (-v0).
      2e9f2703
  4. 02 Oct, 2001 5 commits
  5. 01 Oct, 2001 18 commits