1. 28 Feb, 2001 1 commit
    • qrczak's avatar
      [project @ 2001-02-28 00:01:01 by qrczak] · 871db587
      qrczak authored
      * Add {intToInt,wordToWord}{8,16,32}# primops. WARNING: Not implemented
        in ncg for Alpha and Sparc. But -O -fasm is not going to go far anyway
        because of other omissions.
      * Have full repertoire of 8,16,32-bit signed and unsigned MachMisc.Size
        values. Again only x86 is fully supported. They are used for
        {index,read,write}{Int,Word}{8,16,32}{OffAddr,Array}# and
        {intToInt,wordToWord}{8,16,32}# primops.
      * Have full repertoire of
        {OffAddr,Array} primops and appropriate instances.
        There were various omissions in various places.
      * Add {plus,minus,times}Word# primops to avoid so many Word# <-> Int#
      * Rewrite modules PrelWord and PrelInt almost from scratch.
      * Simplify fromInteger and realToFrac rules. For each of
        {Int,Word}{8,16,32} there is just a pair of fromInteger rules
        replacing the source or target type with Int or Word. For
        {Int,Word,Int64,Word64} there are rules from any to any.
        Don't include rules which are derivable from inlining anyway,
        e.g. those mentioning Integer. Old explicit coercions are simply
        defined as appropriately typed fromInteger.
      * Various old coercion functions marked as deprecated.
      * Add instance Bits Int, and
        instance {Show,Num,Real,Enum,Integral,Bounded,Ix,Read,Bits} Word.
      * Coercions to sized integer types consistently behave as cutting the
        right amount of bits from the infinite two-complement representation.
        For example (fromIntegral (-1 :: Int8) :: Word64) == maxBound.
      * ghc/tests/numeric/should_run/arith011 tests {Int,Word}64 and instance
        Bits Int, and does not try to use overflowing toEnum. arith011.stdout
        is not updated yet because of a problem I will tell about soon.
      * Move fromInteger and realToFrac from Prelude to PrelReal.
        Move fromInt from PrelNum to PrelReal and define as fromInteger.
        Define toInt as fromInteger. fromInteger is the place to write
        integer conversion rules for.
      * Remove ArrayBase.newInitialisedArray, use default definition of
        newArray instead.
      * Bugs fixed:
        - {quot,rem}Word# primop attributes.
        - integerToInt64# for small negative values.
        - {min,max}Bound::Int on 64-bit platforms.
        - iShiftRL64#.
        - Various Bits instances.
      * Polishing:
        - Use 'ppr' instead of 'pprPrimOp' and 'text . showPrimRep'.
        - PrimRep.{primRepString,showPrimRepToUser} removed.
        - MachMisc.sizeOf returns Int instead of Integer.
        - Some eta reduction, parens, spacing, and reordering cleanups -
          sorry, couldn't resist.
      * Questions:
        - Should iShiftRL and iShiftRL64 be removed? IMHO they should,
          s/iShiftRA/iShiftR/, s/shiftRL/shiftR/. The behaviour on shifting
          is a property of the signedness of the type, not the operation!
          I haven't done this change.
  2. 27 Feb, 2001 12 commits
    • simonmar's avatar
      [project @ 2001-02-27 17:15:53 by simonmar] · 60ac8eb4
      simonmar authored
      Don't blacklist everything in simplifyExpr.  Allow simple inlining to
      happen (actually, this is what exposed the bug I just fixed in
    • simonmar's avatar
      [project @ 2001-02-27 17:14:44 by simonmar] · 1aa6eb78
      simonmar authored
      Need to tidy the expression before compiling it, purely in order to
      clone the ids in case of clashes.
    • simonmar's avatar
      [project @ 2001-02-27 15:26:04 by simonmar] · a29fe417
      simonmar authored
      - make flushing and :def work again in the interpreter
    • simonmar's avatar
      [project @ 2001-02-27 15:25:18 by simonmar] · 8a097699
      simonmar authored
      - clean up recognising of objects on the ghci command line
      - recognise objects on the ghc --make command line, and link them in (untested)
    • rrt's avatar
      [project @ 2001-02-27 14:37:17 by rrt] · d424a4fb
      rrt authored
      Update ffi001.stdout (was simply wrong) and change fed001.hs in line with
      library changes.
    • rrt's avatar
      [project @ 2001-02-27 14:34:46 by rrt] · 6900cdd4
      rrt authored
      Merge changes from 4.08 branch.
    • simonmar's avatar
      [project @ 2001-02-27 13:38:58 by simonmar] · 42d07019
      simonmar authored
      changes for commandline do-bindings: define failIO.
    • simonmar's avatar
      [project @ 2001-02-27 13:38:15 by simonmar] · 18ca279f
      simonmar authored
      remove PutFullMVar
    • rrt's avatar
      [project @ 2001-02-27 12:43:45 by rrt] · 6339f4b0
      rrt authored
      mingwin "fixes": getourtimeofday now returns the right units, and awaitEvent
      fudged to use WinSock select(), so that although it doesn't work for file
      handles, at least it doesn't cause nasty crashes; instead it just blocks.
    • rrt's avatar
      [project @ 2001-02-27 12:36:36 by rrt] · ec46629d
      rrt authored
      Add ILX support (all #ifdefed on ILX for now) and tidied up some
      indentation. We now support --mk-dll, so remove the comment about adding
    • simonpj's avatar
      [project @ 2001-02-27 11:50:05 by simonpj] · 82f63df9
      simonpj authored
      Temporary fix for a nasty black hole
      The problem is that the type checker has a big knot for "unf_env".
      This means that we can't look at unfoldings inside the loop, which
      is fair enough.  But setting an unfolding in the IdInfo is strict
      in the unfolding, so we can't look at the IdInfo either.
      But isLocalId looks at the IdInfo, and it was being used in an
      assert in TcHsSyn, and in setting the in_scope_vars in TcIfaceSig.
      I think the right solution is to take the "flavour" out of IdInfo,
      and put it into VarDetails, but I've done a quick fix for now.
      (Remove the assert, and use a different way in TcIfaceSig.)
    • rrt's avatar
      [project @ 2001-02-27 10:03:22 by rrt] · 2140976e
      rrt authored
      Avoid types that lickle Windows doesn't understand aaahhhh. Why not just
      avoid this whole file? Well, some of the types are widely used.
  3. 26 Feb, 2001 16 commits
  4. 23 Feb, 2001 7 commits
  5. 22 Feb, 2001 4 commits