
New patches:

[bug updates
John Meacham <john@repetae.net>**20100728100632
 Ignore-this: 8d8b5785de91b5bb0fa0d384c876adb6
] hunk ./bugs/issue-35cc6ddc1a577e163e9830b96f89151f0562c029.yaml 17
 component: fe
 release: 
 reporter: John Meacham <john@repetae.net>
-status: :unstarted
-disposition: 
+status: :closed
+disposition: :fixed
 creation_time: 2009-08-29 23:01:16.342844 Z
 references: []
 
hunk ./bugs/issue-35cc6ddc1a577e163e9830b96f89151f0562c029.yaml 28
   - John Meacham <john@repetae.net>
   - created
   - ""
+- - 2010-07-28 10:04:29.973045 Z
+  - John Meacham <john@repetae.net>
+  - closed with disposition fixed
+  - ""
hunk ./bugs/issue-9709edddb36d21acaed3a6d80c45bd0d475d4a60.yaml 8
 component: lib
 release: 0.7.6
 reporter: John Meacham <john@repetae.net>
-status: :unstarted
-disposition: 
+status: :closed
+disposition: :fixed
 creation_time: 2010-07-22 02:22:00.564146 Z
 references: []
 
hunk ./bugs/issue-9709edddb36d21acaed3a6d80c45bd0d475d4a60.yaml 19
   - John Meacham <john@repetae.net>
   - created
   - ""
+- - 2010-07-28 10:06:04.393045 Z
+  - John Meacham <john@repetae.net>
+  - closed with disposition fixed
+  - ""
hunk ./bugs/issue-aaaa53f275e24c9e2335d313c7a992a34bd38397.yaml 8
 component: tc
 release: 
 reporter: John Meacham <john@repetae.net>
-status: :unstarted
-disposition: 
+status: :closed
+disposition: :fixed
 creation_time: 2009-03-27 09:01:58.266972 Z
 references: []
 
hunk ./bugs/issue-aaaa53f275e24c9e2335d313c7a992a34bd38397.yaml 23
   - John Meacham <john@repetae.net>
   - commented
   - this bug appears to actually be that when a type is defaulted, the instances the default type belong to arn't added to the context
+- - 2010-07-28 10:04:43.243047 Z
+  - John Meacham <john@repetae.net>
+  - closed with disposition fixed
+  - ""
[fix parsing of RULES to match what ghc does
John Meacham <john@repetae.net>**20100729112521
 Ignore-this: 53e10a3ba7426c0994f3d03ee92c3eda
] hunk ./lib/jhc/Jhc/Num.hs 81
 realToFrac x   =  fromRational (toRational x)
 
 {-# RULES
-  "realToFrac/toRational"     realToFrac = toRational
-  "realToFrac/fromRational"   realToFrac = fromRational
-  "realToFrac/toDouble"       realToFrac = toDouble
-  "realToFrac/fromDouble"     realToFrac = fromDouble
- #-}
+"realToFrac/toRational"     realToFrac = toRational
+"realToFrac/fromRational"   realToFrac = fromRational
+"realToFrac/toDouble"       realToFrac = toDouble
+"realToFrac/fromDouble"     realToFrac = fromDouble
+#-}
 
 {-# RULES
hunk ./lib/jhc/Jhc/Num.hs 88
-  "fromIntegral/Int"          fromIntegral = (id :: Int -> Int)
-  "fromIntegral/Integer"      fromIntegral = (id :: Integer -> Integer)
-  "fromIntegral/toInt"        fromIntegral = toInt
-  "fromIntegral/fromInt"      fromIntegral = fromInt
-  "fromIntegral/toInteger"    fromIntegral = toInteger
-  "fromIntegral/fromInteger"  fromIntegral = fromInteger
- #-}
+"fromIntegral/Int"          fromIntegral = (id :: Int -> Int)
+"fromIntegral/Integer"      fromIntegral = (id :: Integer -> Integer)
+"fromIntegral/toInt"        fromIntegral = toInt
+"fromIntegral/fromInt"      fromIntegral = fromInt
+"fromIntegral/toInteger"    fromIntegral = toInteger
+"fromIntegral/fromInteger"  fromIntegral = fromInteger
+#-}
 
 
 {-# INLINE subtract #-}
hunk ./src/FrontEnd/HsParser.y 334
                       {% doForeign $2 (reverse $3) $4 $6  }
       | 'foreign' srcloc varids mstring '::' ctype '=' exp
                       {% doForeignEq $2 (reverse $3) $4 $6 $8 }
-      | PRAGMARULES rulelist PRAGMAEND
+      | PRAGMARULES rules PRAGMAEND
               { HsPragmaRules $ map (\x -> x { hsRuleIsMeta = $1 }) (reverse $2) }
       | srcloc PRAGMASPECIALIZE var '::' type PRAGMAEND
                       { HsPragmaSpecialize { hsDeclSrcLoc = $1, hsDeclBool = $2, hsDeclName = $3, hsDeclType = $5
hunk ./src/FrontEnd/HsParser.y 351
                   , hsRuleUniq = error "hsRuleUniq not set", hsRuleIsMeta = error "hsRuleIsMeta not set" } }
 
 rules :: { [HsRule] }
-      : rules optsemi rule  { $3 : $1 }
-      | rule optsemi           { [$1] }
-
-rulelist :: { [HsRule] }
-      : '{' rules '}' { $2 }
-      | layout_on rules close { $2 }
+      : rules ';'rule         { $3 : $1 }
+      | rules ';'             { $1 }
+      | rule                  { [$1] }
+      | {- empty -}           { [] }
 
 mfreevars :: { [(HsName,Maybe HsType)] }
       : 'forall' vbinds '.' { $2 }
[add rule for sum' Int
John Meacham <john@repetae.net>**20100729225737
 Ignore-this: 7f73d952716391ff235681a40a7b32c
] hunk ./lib/jhc/Prelude.hs 300
     prod []     a = a
     prod (x:xs) a = prod xs (a*x)
 
+--sum              =  foldl (+) 0
+--product          =  foldl (*) 1
+sum l	= sum' l 0 where
+    sum' []     a = a
+    sum' (x:xs) a = sum' xs (a+x)
+product	l = prod l 1 where
+    prod []     a = a
+    prod (x:xs) a = prod xs (a*x)
+
+sum' l	= rsum l 0 where
+    rsum []     a = a
+    rsum (x:xs) a = a `seq` rsum xs (a+x)
+
+{-# SPECIALIZE sum' :: [Int] -> Int #-}
+{-# RULES "sum/Int" forall . sum = sum' :: [Int] -> Int #-}
+
 -- maximum and minimum return the maximum or minimum value from a list,
 -- which must be non-empty, finite, and of an ordered type.
 
[clean up tiProgram and fix defaulting bug
John Meacham <john@repetae.net>**20100731083734
 Ignore-this: ee8d9972d5954327dfd43d95610d1648
] hunk ./src/FrontEnd/Tc/Main.hs 96
     as' <- sequence [ tcExprPoly a r | r <- bs | a <- as ]
     return (e',as')
 
-
-
 tcApp e1 e2 typ = do
     (e1,[e2]) <- tcApps e1 [e2] typ
     return (e1,e2)
hunk ./src/FrontEnd/Tc/Main.hs 228
     (arg `fn` ret) `subsumes` typ
     return (HsRightSection e1 e2)
 
-
-
 tiExpr expr@HsApp {} typ = withContext (makeMsg "in the application" $ render $ ppHsExp $ backToApp h as) $ do
     (h,as) <- tcApps h as typ
     return $ backToApp h as
hunk ./src/FrontEnd/Tc/Main.hs 773
     ans = do
         let (pr,is) = progressStep (progressNew (length bgs + 1) 45) '.'
         wdump FD.Progress $ liftIO $ do hPutStr stderr ("(" ++ is)
-        (r,ps) <- listenPreds $ f pr bgs [] mempty
+        (r,ps) <- listenPreds $ f pr bgs []
         ps <- flattenType ps
hunk ./src/FrontEnd/Tc/Main.hs 775
-        ch <- getClassHierarchy
-        ([],rs) <- splitPreds ch Set.empty ps
+--        ch <- getClassHierarchy
+    --    ([],rs) <- splitPreds ch Set.empty ps
+        (_,[],rs) <- splitReduce Set.empty Set.empty ps
         topDefaults rs
         return r
hunk ./src/FrontEnd/Tc/Main.hs 780
-        --ps <- return $ simplify ch ps
-        --liftIO $ mapM_ (putStrLn.show) ps
-        --return r
-    f pr (bg:bgs) rs cenv  = do
-        ((ds,env),ps) <- listenPreds (tcBindGroup bg)
-        ch <- getClassHierarchy
-        withContext (makeMsg "in the binding group:" $ show (getBindGroupName bg)) $ do
-            ([],leftovers) <- splitPreds ch Set.empty ps
-            --topDefaults leftovers
-            return ()
-
+    f pr (bg:bgs) rs  = do
+        (ds,env) <- (tcBindGroup bg)
         let (pr',os) = progressStep pr '.'
         wdump FD.Progress $ liftIO $ do hPutStr stderr os
hunk ./src/FrontEnd/Tc/Main.hs 784
-        localEnv env $ f pr' bgs (ds ++ rs) (env `mappend` cenv)
-    f _ [] rs _cenv = do
+        localEnv env $ f pr' bgs (ds ++ rs)
+    f _ [] rs = do
         ch <- getClassHierarchy
hunk ./src/FrontEnd/Tc/Main.hs 787
-        (pdecls,ps) <- listenPreds $ mapM tcPragmaDecl es
-        withContext (makeMsg "in the pragmas:" $ "rules") $ do
-            ([],leftovers) <- splitPreds ch Set.empty ps
-            --topDefaults leftovers
-            return ()
+        pdecls <- mapM tcPragmaDecl es
         wdump FD.Progress $ liftIO $ do hPutStr stderr ")\n"
         return (rs ++ concat pdecls)
 
[update version
John Meacham <john@repetae.net>**20100731090240
 Ignore-this: c66d4cfb9a98a2920c1d7349aaada66c
] hunk ./configure.ac 1
-AC_INIT([jhc],[0.7.5])
+AC_INIT([jhc],[0.7.6])
 AC_CONFIG_SRCDIR(src/Main.hs)
 AC_CONFIG_MACRO_DIR(ac-macros)
 AC_CONFIG_AUX_DIR(ac-macros)
[respect -fno-monomorphism-restriction flag in OPTIONS pragma
John Meacham <john@repetae.net>**20100731090828
 Ignore-this: ef6f90e93c0b13460d1784b176aee316
] hunk ./src/FrontEnd/Tc/Main.hs 558
         gs = vss Set.\\ fs
     (mvs,ds,rs) <- splitReduce fs vss ps'
     addPreds ds
-    sc' <- if restricted [decl] then do
+    mr <- flagOpt FO.MonomorphismRestriction
+    sc' <- if restricted mr [decl] then do
         let gs' = gs Set.\\ Set.fromList (freeVars rs)
         addPreds rs
         quantify (Set.toList gs') [] mv'
hunk ./src/FrontEnd/Tc/Main.hs 591
         gs = (Set.unions vss) Set.\\ fs
     (mvs,ds,rs) <- splitReduce fs (foldr1 Set.intersection vss) ps'
     addPreds ds
-    scs' <- if restricted bs then do
+    mr <- flagOpt FO.MonomorphismRestriction
+    scs' <- if restricted mr bs then do
         let gs' = gs Set.\\ Set.fromList (freeVars rs)
         addPreds rs
         quantify_n (Set.toList gs') [] ts'
hunk ./src/FrontEnd/Tc/Main.hs 762
     assertEntailment qs rs
     return ret
 
-restricted   :: [HsDecl] -> Bool
-restricted bs = any isHsActionDecl bs || (fopts FO.MonomorphismRestriction && any isSimpleDecl bs) where
+restricted :: Bool -> [HsDecl] -> Bool
+restricted monomorphismRestriction bs = any isHsActionDecl bs || (monomorphismRestriction && any isSimpleDecl bs) where
    isSimpleDecl :: (HsDecl) -> Bool
    isSimpleDecl (HsPatBind _sloc _pat _rhs _wheres) = True
    isSimpleDecl _ = False
hunk ./src/FrontEnd/Tc/Monad.hs 81
 import Name.Name
 import Name.Names
 import Options
-import Options
 import Support.CanType
 import Support.FreeVars
 import Support.Tickle
[update bugs
John Meacham <john@repetae.net>**20100731091603
 Ignore-this: 1a17ec88f98182d13d0a5e17bc883e18
] hunk ./bugs/issue-3c947a28a576f1e8120f82e88a958b4168cdff4f.yaml 6
 desc: Num is handled specially by the PrimitiveOperators mechanism. Instances should be explicitly declared in the libraries rather than magically conjured by the compiler.
 type: :task
 component: jhc
-release: 
+release: 0.7.6
 reporter: John Meacham <john@repetae.net>
hunk ./bugs/issue-3c947a28a576f1e8120f82e88a958b4168cdff4f.yaml 8
-status: :unstarted
-disposition: 
+status: :closed
+disposition: :fixed
 creation_time: 2010-07-09 22:07:27.758354 Z
 references: []
 
hunk ./bugs/issue-3c947a28a576f1e8120f82e88a958b4168cdff4f.yaml 19
   - John Meacham <john@repetae.net>
   - created
   - ""
+- - 2010-07-31 09:00:02.083167 Z
+  - John Meacham <john@repetae.net>
+  - assigned to release 0.7.6 from unassigned
+  - ""
+- - 2010-07-31 09:13:16.883166 Z
+  - John Meacham <john@repetae.net>
+  - closed with disposition fixed
+  - ""
addfile ./bugs/issue-4349a0366c4341276ad62997d1d108a431f8f931.yaml
hunk ./bugs/issue-4349a0366c4341276ad62997d1d108a431f8f931.yaml 1
+--- !ditz.rubyforge.org,2008-03-06/issue 
+title: replace .cabal library files with some YAML format
+desc: ""
+type: :feature
+component: fe
+release: 0.8.0
+reporter: John Meacham <john@repetae.net>
+status: :unstarted
+disposition: 
+creation_time: 2010-07-31 09:02:29.663166 Z
+references: []
+
+id: 4349a0366c4341276ad62997d1d108a431f8f931
+log_events: 
+- - 2010-07-31 09:02:30.793166 Z
+  - John Meacham <john@repetae.net>
+  - created
+  - ""
hunk ./bugs/issue-59017086c53487ae17f8c2b64c924a3344b940ca.yaml 6
 desc: get GC to the point where it can be enabled by default
 type: :feature
 component: be
-release: 0.7.6
+release: 0.8.0
 reporter: John Meacham <john@repetae.net>
 status: :unstarted
 disposition: 
hunk ./bugs/issue-59017086c53487ae17f8c2b64c924a3344b940ca.yaml 23
   - John Meacham <john@repetae.net>
   - assigned to release 0.7.6 from 0.7.5
   - ""
+- - 2010-07-31 09:13:47.463166 Z
+  - John Meacham <john@repetae.net>
+  - assigned to release 0.8.0 from 0.7.6
+  - ""
addfile ./bugs/issue-89306133e087188ec448361a3dd3e695f6842ea5.yaml
hunk ./bugs/issue-89306133e087188ec448361a3dd3e695f6842ea5.yaml 1
+--- !ditz.rubyforge.org,2008-03-06/issue 
+title: handle LANGUAGE pragma and -X in uniform way
+desc: ""
+type: :feature
+component: fe
+release: 0.8.0
+reporter: John Meacham <john@repetae.net>
+status: :unstarted
+disposition: 
+creation_time: 2010-07-31 09:01:06.643165 Z
+references: []
+
+id: 89306133e087188ec448361a3dd3e695f6842ea5
+log_events: 
+- - 2010-07-31 09:01:07.893167 Z
+  - John Meacham <john@repetae.net>
+  - created
+  - ""
hunk ./bugs/issue-c77dc71ddf86b94d2ab31055d8c1d25af9089817.yaml 6
 desc: "'Integral' is currently handled in a special manner by the compiler so it can generate instances internally for basic types. these instances should be explicit in the libraries."
 type: :task
 component: jhc
-release: 
+release: 0.7.6
 reporter: John Meacham <john@repetae.net>
hunk ./bugs/issue-c77dc71ddf86b94d2ab31055d8c1d25af9089817.yaml 8
-status: :unstarted
-disposition: 
+status: :closed
+disposition: :fixed
 creation_time: 2010-07-09 22:08:44.328395 Z
 references: []
 
hunk ./bugs/issue-c77dc71ddf86b94d2ab31055d8c1d25af9089817.yaml 19
   - John Meacham <john@repetae.net>
   - created
   - ""
+- - 2010-07-31 09:00:21.953166 Z
+  - John Meacham <john@repetae.net>
+  - assigned to release 0.7.6 from unassigned
+  - ""
+- - 2010-07-31 09:13:23.853166 Z
+  - John Meacham <john@repetae.net>
+  - closed with disposition fixed
+  - ""
hunk ./bugs/issue-d6a6db0061fb754cfe700a08cf2a7fb6524b8697.yaml 6
 desc: ""
 type: :bugfix
 component: be
-release: 0.7.6
+release: 0.8.0
 reporter: John Meacham <john@repetae.net>
 status: :unstarted
 disposition: 
hunk ./bugs/issue-d6a6db0061fb754cfe700a08cf2a7fb6524b8697.yaml 31
   - John Meacham <john@repetae.net>
   - assigned to release 0.7.6 from 0.7.5
   - ""
+- - 2010-07-31 09:13:39.113166 Z
+  - John Meacham <john@repetae.net>
+  - assigned to release 0.8.0 from 0.7.6
+  - ""
[release 0.7.6
John Meacham <john@repetae.net>**20100731092021
 Ignore-this: aa346961c78c30093be0828d2a1dabde
] hunk ./bugs/project.yaml 85
     - ""
 - !ditz.rubyforge.org,2008-03-06/release 
   name: 0.7.6
-  status: :unreleased
-  release_time: 
+  status: :released
+  release_time: 2010-07-31 09:20:11.763166 Z
   log_events: 
   - - 2010-07-22 02:20:12.504129 Z
     - John Meacham <john@repetae.net>
hunk ./bugs/project.yaml 92
     - created
     - ""
+  - - 2010-07-31 09:20:11.763166 Z
+    - John Meacham <john@repetae.net>
+    - released
+    - ""
[fix Makefile.am
John Meacham <john@repetae.net>**20100731104859
 Ignore-this: 25d9705738fc24a4c1b879635acd7ca9
] hunk ./Makefile.am 39
 	src/Util/Relation.hs src/Util/RWS.hs src/Util/SameShape.hs src/Util/Seq.hs src/Util/SetLike.hs src/Util/UnionFind.hs \
 	src/Util/UnionSolve.hs src/Util/UniqueMonad.hs src/Util/Util.hs src/Util/VarName.hs src/Version/Config.hs src/Version/Version.hs \
 	src/Support/IniParse.hs src/E/Lint.hs src/Util/Progress.hs src/Grin/StorageAnalysis.hs src/Util/YAML.hs src/Grin/Main.hs \
-        src/E/Main.hs src/Util/GMap.hs
+        src/E/Main.hs src/Util/GMap.hs src/Util/ExitCodes.hs
 
 
 GHCDEBUGOPTS= -W -fno-warn-unused-matches  -fwarn-type-defaults
hunk ./Makefile.am 255
 	cp -- $^ /home/john/public_html/computer/jhc
 
 manual.mkd: utils/stitch.prl $(JHC_MANUAL_FILES)
-	perl utils/stitch.prl $(JHC_MANUAL_FILES) > $a
+	perl utils/stitch.prl $(JHC_MANUAL_FILES) > $@
 
 manual: manual.mkd
 	pandoc $< --toc -s -f markdown -t html -s -c manual.css -o $@.html
hunk ./Makefile.am 290
 
 applicative-1.0.hl: lib/applicative/applicative.cabal lib/applicative/Control/Arrow.hs lib/applicative/Control/Applicative.hs lib/applicative/Data/Foldable.hs \
     lib/applicative/Control/Category.hs lib/applicative/Data/Traversable.hs base-1.0.hl jhc-1.0.hl
-base-1.0.hl: lib/base/base.cabal lib/base/System/Info.hs lib/base/Debug/Trace.hs lib/base/Data/Array.hs \
+base-1.0.hl: lib/base/base.cabal lib/base/Debug/Trace.hs lib/base/Data/Array.hs \
     lib/base/Data/Typeable.hs lib/base/Text/Printf.hs lib/base/System/Directory.hs lib/base/Data/Maybe.hs \
     lib/base/System/IO/Error.hs lib/base/System/IO/Binary.hs lib/base/System/CPUTime.hs lib/base/System/IO/Pipe.hs \
     lib/base/Control/Monad/Instances.hs lib/base/Foreign/Marshal/Error.hs lib/base/System/Exit.hs lib/base/System/Environment.hs \
hunk ./jhc.spec.in 52
 %{_datadir}/@PACKAGE@-@SHORTVERSION@/smallcheck-0.4.hl
 %{_datadir}/@PACKAGE@-@SHORTVERSION@/utility-ht-0.0.5.1.hl
 %{_datadir}/@PACKAGE@-@SHORTVERSION@/xhtml-3000.2.0.1.hl
+%{_datadir}/@PACKAGE@-@SHORTVERSION@/QuickCheck-1.2.0.0.hl
+%{_datadir}/@PACKAGE@-@SHORTVERSION@/parsec-2.1.0.1.hl
 %{_datadir}/@PACKAGE@-@SHORTVERSION@/include/HsFFI.h
 %{_sysconfdir}/@PACKAGE@-@SHORTVERSION@/targets.ini
 
[TAG 0.7.6
John Meacham <john@repetae.net>**20100731104908
 Ignore-this: d5edc6edd6d300cbae451f0e056ee018
] 
<
[fix Makefile.am
John Meacham <john@repetae.net>**20100731104859
 Ignore-this: 25d9705738fc24a4c1b879635acd7ca9
] 
[release 0.7.6
John Meacham <john@repetae.net>**20100731092021
 Ignore-this: aa346961c78c30093be0828d2a1dabde
] 
[update bugs
John Meacham <john@repetae.net>**20100731091603
 Ignore-this: 1a17ec88f98182d13d0a5e17bc883e18
] 
[respect -fno-monomorphism-restriction flag in OPTIONS pragma
John Meacham <john@repetae.net>**20100731090828
 Ignore-this: ef6f90e93c0b13460d1784b176aee316
] 
[update version
John Meacham <john@repetae.net>**20100731090240
 Ignore-this: c66d4cfb9a98a2920c1d7349aaada66c
] 
[clean up tiProgram and fix defaulting bug
John Meacham <john@repetae.net>**20100731083734
 Ignore-this: ee8d9972d5954327dfd43d95610d1648
] 
[add rule for sum' Int
John Meacham <john@repetae.net>**20100729225737
 Ignore-this: 7f73d952716391ff235681a40a7b32c
] 
[fix parsing of RULES to match what ghc does
John Meacham <john@repetae.net>**20100729112521
 Ignore-this: 53e10a3ba7426c0994f3d03ee92c3eda
] 
[bug updates
John Meacham <john@repetae.net>**20100728100632
 Ignore-this: 8d8b5785de91b5bb0fa0d384c876adb6
] 
[TAG deicek
John Meacham <john@repetae.net>**20100728100305
 Ignore-this: 40fceced59bef728bd45086acbd4e35f
] 
>

Context:

[TAG deicek
John Meacham <john@repetae.net>**20100728100305
 Ignore-this: 40fceced59bef728bd45086acbd4e35f
] 
Patch bundle hash:
2ba84d2cb80eb6ba34379fe86276edc6cb798754
