packages feed

ajhc 0.8.0.8 → 0.8.0.9

raw patch · 27 files changed

+576/−315 lines, 27 filesdep +cpphs

Dependencies added: cpphs

Files

README.md view
@@ -1,10 +1,15 @@-# [Ajhc](http://ajhc.metasepi.org/) - arafura-jhc [![Build Status](https://travis-ci.org/ajhc/ajhc.png)](https://travis-ci.org/ajhc/ajhc)+# [Ajhc](http://ajhc.metasepi.org/) - arafura-jhc  A fork of [jhc](http://repetae.net/computer/jhc/). And also a Haskell compiler.   This project is founded by [Metasepi Project](http://metasepi.org/). +## Build Status++* [![Build Status](https://travis-ci.org/ajhc/ajhc.png?branch=arafura)](https://travis-ci.org/ajhc/ajhc) Ubuntu+* [![Build Status](https://travis-ci.org/ajhc/ajhc.png?branch=arafura-ci4osx)](https://travis-ci.org/ajhc/ajhc) Mac OS X+ ## How to install      $ sudo apt-get install haskell-platform libncurses5-dev gcc m4@@ -12,11 +17,11 @@  ## How to build latest version -    $ sudo apt-get install make locales autoconf libreadline-dev \+    $ sudo apt-get install make locales autoconf haskell-derive-utils \       libconfig-yaml-perl graphviz haskell-platform cpphs pandoc hscolour po4a \       libghc-temporary-dev libghc-haskeline-dev libghc-utf8-string-dev libghc-hssyck-dev \       libghc-test-framework-th-dev libghc-test-framework-hunit-dev \-      libghc-test-framework-quickcheck2-dev libghc-uniplate-dev libgc-dev gcc-multilib valgrind+      libghc-test-framework-quickcheck2-dev libghc-uniplate-dev libgc-dev gcc valgrind     $ git clone git://github.com/ajhc/ajhc.git     $ cd ajhc     $ git checkout arafura@@ -76,34 +81,10 @@  ## Future plan -### Yet- * No more depend on Perl (LWP and YAML).-* Rewrite Cortex-M3 base library with Ajhc.-* Analyze jhc internal (Japanese doc).-  https://github.com/ajhc/ajhc-hacking-guide * Port Haskell libraries on haskell-platform to Ajhc. * Understand jhc's region inference.-* Play with Android NDK. http://developer.android.com/tools/sdk/ndk/index.html * Play with Google Native Client. https://developers.google.com/native-client/-* Snatch ChibiOS/RT. http://www.chibios.org/dokuwiki/doku.php * Write Linux kernel driver with Haskell. * Get smaller RTS. Benchmark the RTS for running on custom FPGA CPU. * Start rewritng NetBSD kernel with Ajhc.--### Done--* Try to rewrite a part of NetBSD bootloader.-  http://www.youtube.com/watch?v=JMyxy5Qo2m8-* Translate Jhc User’s Manual to Japanese.-  http://metasepi.org/posts/2013-01-12-jhc_manual_ja.html-* Fix bug that run stm32f3-discovery demo. It causes Ajhc RTS heep impl.-  https://github.com/ajhc/demo-cortex-m3/tree/master/stm32f3-discovery-* Support to build on Windows.-* Cabalize Ajhc. Ajhc's hl files will be not controled with cabal.-* Support LPCXpresso NXP LPX1769 with demo.-* Pass all regress test, and enable regress fail setting on travis-ci.-  https://travis-ci.org/ajhc/ajhc-* No more depend on DrIFT. Use http://hackage.haskell.org/package/derive.-* Find critical region of Ajhc for reentrant and thread safe.-* Find the method to implement GC that can be interrupted.
ajhc.cabal view
@@ -1,7 +1,7 @@ cabal-version: >= 1.10 name:          ajhc build-type:    Custom-version:       0.8.0.8+version:       0.8.0.9 license:       GPL-2 license-file:  COPYING category:      Compiler@@ -55,6 +55,7 @@         binary,         bytestring,         containers,+        cpphs,         derive,         directory,         fgl,
src/C/FFI.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE TemplateHaskell #-}+{-# OPTIONS_GHC -F -pgmFderive -optF-F #-} module C.FFI(     CallConv(..),     Safety(..),@@ -10,7 +10,6 @@  import C.Prims import Data.Binary-import Data.DeriveTH import Data.Typeable  type CName = String@@ -33,4 +32,6 @@     }  deriving(Eq,Ord,Show,Typeable) -$(derive makeBinary ''FfiExport)+{-!+deriving instance Binary FfiExport+!-}
src/C/FromGrin2.hs view
@@ -1,4 +1,5 @@-{-# LANGUAGE OverloadedStrings, RecordWildCards, ViewPatterns, TemplateHaskell #-}+{-# LANGUAGE OverloadedStrings, RecordWildCards, ViewPatterns #-}+{-# OPTIONS_GHC -F -pgmFderive -optF-F #-} module C.FromGrin2(compileGrin) where  import Control.Monad.Identity@@ -7,7 +8,6 @@ import Data.List import Data.Maybe import Data.Monoid(Monoid(..))-import Data.DeriveTH import System.FilePath import Text.PrettyPrint.HughesPJ(nest,($$),fsep) import qualified Data.ByteString.Lazy as LBS@@ -53,8 +53,6 @@     wFunctions :: Map.Map Name Function     } -$(derive makeMonoid ''Written)- -- special type representations when possible data TyRep     = TyRepRawTag    -- stored raw tag@@ -1024,3 +1022,7 @@  basicType' :: ExtType -> Type basicType' b = basicType (show b)++{-!+deriving instance Monoid Written+!-}
src/C/Prims.hs view
@@ -1,10 +1,10 @@-{-# LANGUAGE OverloadedStrings, TemplateHaskell #-}+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -F -pgmFderive -optF-F #-} module C.Prims where  import Data.Binary import Data.Monoid(Monoid(..)) import Data.Typeable-import Data.DeriveTH import qualified Data.Set as Set  import Doc.DocLike@@ -17,7 +17,6 @@  data CallConv = CCall | StdCall | CApi | Primitive | DotNet     deriving(Eq,Ord,Show)-$(derive makeBinary ''CallConv)  data Safety = Safe | Unsafe | JhcContext deriving(Eq,Ord,Show) @@ -178,7 +177,10 @@     g dn [n] = return dn { primDotNetName = packString n }     g _ _ = fail "invalid .NET ffi specification" -$(derive makeBinary ''Safety)-$(derive makeBinary ''DotNetPrim)-$(derive makeBinary ''Prim)-$(derive makeBinary ''PrimTypeInfo)+{-!+deriving instance Binary CallConv+deriving instance Binary Safety+deriving instance Binary DotNetPrim+deriving instance Binary Prim+deriving instance Binary PrimTypeInfo+!-}
src/Cmm/Op.hs view
@@ -1,9 +1,8 @@-{-# LANGUAGE TemplateHaskell #-} {-# OPTIONS -funbox-strict-fields #-}+{-# OPTIONS_GHC -F -pgmFderive -optF-F #-} module Cmm.Op where  import Data.Binary-import Data.DeriveTH import Util.Gen import qualified Text.ParserCombinators.ReadP as P import Text.Read.Lex@@ -400,12 +399,14 @@     isEagerSafe (ConvOp o _) = isEagerSafe o     isEagerSafe _ = False -$(derive makeBinary ''BinOp)-$(derive makeBinary ''UnOp)-$(derive makeBinary ''ConvOp)-$(derive makeBinary ''ValOp)-$(derive makeBinary ''ArchBits)-$(derive makeBinary ''TyBits)-$(derive makeBinary ''TyHint)-$(derive makeBinary ''Ty)-$(derive makeBinary ''Op)+{-!+deriving instance Binary BinOp+deriving instance Binary UnOp+deriving instance Binary ConvOp+deriving instance Binary ValOp+deriving instance Binary ArchBits+deriving instance Binary TyBits+deriving instance Binary TyHint+deriving instance Binary Ty+deriving instance Binary Op+!-}
src/DataConstructors.hs view
@@ -1,4 +1,5 @@-{-# LANGUAGE OverloadedStrings, TemplateHaskell #-}+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -F -pgmFderive -optF-F #-} module DataConstructors(     AliasType(..),     boxPrimitive,@@ -52,7 +53,6 @@  import C.Prims import Data.Binary-import Data.DeriveTH import Doc.DocLike as D import Doc.PPrint import Doc.Pretty@@ -920,7 +920,9 @@     (rt_float128,  "__float128")     ] -$(derive makeBinary ''AliasType)-$(derive makeBinary ''DataFamily)-$(derive makeBinary ''Constructor)-$(derive makeBinary ''Slot)+{-!+deriving instance Binary AliasType+deriving instance Binary DataFamily+deriving instance Binary Constructor+deriving instance Binary Slot+!-}
src/E/CPR.hs view
@@ -1,11 +1,10 @@-{-# LANGUAGE TemplateHaskell #-}+{-# OPTIONS_GHC -F -pgmFderive -optF-F #-} module E.CPR(Val(..), cprAnalyzeDs, cprAnalyzeProgram) where  import Control.Monad.Writer(runWriter,tell,Monoid(..)) import Data.Binary import Data.Monoid() import Data.Typeable-import Data.DeriveTH import qualified Data.Map as Map  import Cmm.Number@@ -138,4 +137,6 @@         f e = error $ "cprAnalyze'.f: " ++ show e         g = snd . cprAnalyze' env -$(derive makeBinary ''Val)+{-!+deriving instance Binary Val+!-}
src/E/Demand.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE TemplateHaskell #-}+{-# OPTIONS_GHC -F -pgmFderive -optF-F #-} module E.Demand(     Demand(..),     DemandSignature(..),@@ -14,7 +14,6 @@ import Data.Binary import Data.List hiding(union,delete) import Data.Typeable-import Data.DeriveTH  --import Debug.Trace import DataConstructors@@ -403,8 +402,10 @@ instance Show DemandSignature where     showsPrec _ (DemandSignature n dt) = showString "<" . shows n . showString "," . shows dt . showString ">" -$(derive makeBinary ''Demand)-$(derive makeBinary ''SubDemand)-$(derive makeBinary ''DemandEnv)-$(derive makeBinary ''DemandType)-$(derive makeBinary ''DemandSignature)+{-!+deriving instance Binary Demand+deriving instance Binary SubDemand+deriving instance Binary DemandEnv+deriving instance Binary DemandType+deriving instance Binary DemandSignature+!-}
src/E/SSimplify.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE TemplateHaskell #-}+{-# OPTIONS_GHC -F -pgmFderive -optF-F #-} module E.SSimplify(     Occurance(..),     cacheSimpOpts,@@ -14,7 +14,6 @@ import Control.Monad.Identity import Data.Maybe import Data.Typeable-import Data.DeriveTH import Debug.Trace import Data.List hiding(delete,union,insert) import qualified Data.Set as Set@@ -1082,4 +1081,6 @@  --smAddBoundNamesIdMap = smAddNamesIdSet . idMapToIdSet -$(derive makeMonoid ''Env)+{-!+deriving instance Monoid Env+!-}
src/E/Type.hs view
@@ -1,11 +1,10 @@-{-# LANGUAGE TemplateHaskell #-}+{-# OPTIONS_GHC -F -pgmFderive -optF-F #-} -- | The definitions related to jhc core  module E.Type where  import Data.Foldable hiding(concat) import Data.Traversable-import Data.DeriveTH  import C.Prims import Cmm.Number@@ -16,7 +15,6 @@ import Name.Names import StringTable.Atom import Util.Gen-import Util.SetLike import qualified Info.Info as Info  {- @Internals@@ -259,7 +257,9 @@  --  Imported from other files :- -$(derive makeIs ''Lit)-$(derive makeIs ''ESort)-$(derive makeIs ''E)-$(derive makeFrom ''E)+{-!+deriving instance Is Lit+deriving instance Is ESort+deriving instance Is E+deriving instance From E+!-}
src/FlagDump.hs view
@@ -120,120 +120,120 @@     show Progress = "progress"     show Stats = "stats" -one "verbose" = Right $ foldr (.) id [ f | Right f <- [ one "progress"]]-one "the" = Right $ Set.insert The-one "no-the" = Right $ Set.delete The-one "core-mini" = Right $ Set.insert CoreMini-one "no-core-mini" = Right $ Set.delete CoreMini-one "kind-steps" = Right $ Set.insert KindSteps-one "no-kind-steps" = Right $ Set.delete KindSteps-one "veryverbose" = Right $ foldr (.) id [ f | Right f <- [ one "progress",one "stats"]]-one "ini" = Right $ Set.insert Ini-one "no-ini" = Right $ Set.delete Ini+one "kind" = Right $ Set.insert Kind+one "no-kind" = Right $ Set.delete Kind+one "types" = Right $ Set.insert Types+one "no-types" = Right $ Set.delete Types+one "grin" = Right $ Set.insert Grin+one "no-grin" = Right $ Set.delete Grin one "program" = Right $ Set.insert Program one "no-program" = Right $ Set.delete Program-one "atom" = Right $ Set.insert Atom-one "no-atom" = Right $ Set.delete Atom-one "grin-preeval" = Right $ Set.insert GrinPreeval-one "no-grin-preeval" = Right $ Set.delete GrinPreeval-one "grin-graph" = Right $ Set.insert GrinGraph-one "no-grin-graph" = Right $ Set.delete GrinGraph-one "e-alias" = Right $ Set.insert EAlias-one "no-e-alias" = Right $ Set.delete EAlias-one "renamed" = Right $ Set.insert Renamed-one "no-renamed" = Right $ Set.delete Renamed+one "all-types" = Right $ Set.insert AllTypes+one "no-all-types" = Right $ Set.delete AllTypes+one "scc-modules" = Right $ Set.insert SccModules+one "no-scc-modules" = Right $ Set.delete SccModules+one "core-mini" = Right $ Set.insert CoreMini+one "no-core-mini" = Right $ Set.delete CoreMini+one "defs" = Right $ Set.insert Defs+one "no-defs" = Right $ Set.delete Defs+one "optimization-stats" = Right $ Set.insert OptimizationStats+one "no-optimization-stats" = Right $ Set.delete OptimizationStats+one "bindgroups" = Right $ Set.insert Bindgroups+one "no-bindgroups" = Right $ Set.delete Bindgroups+one "stats" = Right $ Set.insert Stats+one "no-stats" = Right $ Set.delete Stats+one "grin-datalog" = Right $ Set.insert GrinDatalog+one "no-grin-datalog" = Right $ Set.delete GrinDatalog one "datatable-builtin" = Right $ Set.insert DatatableBuiltin one "no-datatable-builtin" = Right $ Set.delete DatatableBuiltin+one "rules-spec" = Right $ Set.insert RulesSpec+one "no-rules-spec" = Right $ Set.delete RulesSpec+one "e-alias" = Right $ Set.insert EAlias+one "no-e-alias" = Right $ Set.delete EAlias+one "ini" = Right $ Set.insert Ini+one "no-ini" = Right $ Set.delete Ini+one "imports" = Right $ Set.insert Imports+one "no-imports" = Right $ Set.delete Imports+one "e-size" = Right $ Set.insert ESize+one "no-e-size" = Right $ Set.delete ESize+one "core-steps" = Right $ Set.insert CoreSteps+one "no-core-steps" = Right $ Set.delete CoreSteps one "aspats" = Right $ Set.insert Aspats one "no-aspats" = Right $ Set.delete Aspats+one "preprocessed" = Right $ Set.insert Preprocessed+one "no-preprocessed" = Right $ Set.delete Preprocessed one "grin-final" = Right $ Set.insert GrinFinal one "no-grin-final" = Right $ Set.delete GrinFinal-one "instance" = Right $ Set.insert Instance-one "no-instance" = Right $ Set.delete Instance-one "defs" = Right $ Set.insert Defs-one "no-defs" = Right $ Set.delete Defs-one "c" = Right $ Set.insert C-one "no-c" = Right $ Set.delete C-one "e-size" = Right $ Set.insert ESize-one "no-e-size" = Right $ Set.delete ESize-one "core-initial" = Right $ Set.insert CoreInitial-one "no-core-initial" = Right $ Set.delete CoreInitial-one "class" = Right $ Set.insert Class-one "no-class" = Right $ Set.delete Class-one "datatable" = Right $ Set.insert Datatable-one "no-datatable" = Right $ Set.delete Datatable-one "core-afterlift" = Right $ Set.insert CoreAfterlift-one "no-core-afterlift" = Right $ Set.delete CoreAfterlift one "steps" = Right $ Set.insert Steps one "no-steps" = Right $ Set.delete Steps-one "all-types" = Right $ Set.insert AllTypes-one "no-all-types" = Right $ Set.delete AllTypes-one "types" = Right $ Set.insert Types-one "no-types" = Right $ Set.delete Types-one "core" = Right $ Set.insert Core-one "no-core" = Right $ Set.delete Core-one "preprocessed" = Right $ Set.insert Preprocessed-one "no-preprocessed" = Right $ Set.delete Preprocessed-one "rules" = Right $ Set.insert Rules-one "no-rules" = Right $ Set.delete Rules-one "exports" = Right $ Set.insert Exports-one "no-exports" = Right $ Set.delete Exports-one "core-steps" = Right $ Set.insert CoreSteps-one "no-core-steps" = Right $ Set.delete CoreSteps-one "sigenv" = Right $ Set.insert Sigenv-one "no-sigenv" = Right $ Set.delete Sigenv-one "kind" = Right $ Set.insert Kind-one "no-kind" = Right $ Set.delete Kind-one "rules-spec" = Right $ Set.insert RulesSpec-one "no-rules-spec" = Right $ Set.delete RulesSpec-one "optimization-stats" = Right $ Set.insert OptimizationStats-one "no-optimization-stats" = Right $ Set.delete OptimizationStats-one "srcsigs" = Right $ Set.insert Srcsigs-one "no-srcsigs" = Right $ Set.delete Srcsigs-one "class-summary" = Right $ Set.insert ClassSummary-one "no-class-summary" = Right $ Set.delete ClassSummary+one "the" = Right $ Set.insert The+one "no-the" = Right $ Set.delete The+one "e-info" = Right $ Set.insert EInfo+one "no-e-info" = Right $ Set.delete EInfo+one "verbose" = Right $ foldr (.) id [ f | Right f <- [ one "progress"]]+one "c" = Right $ Set.insert C+one "no-c" = Right $ Set.delete C one "dcons" = Right $ Set.insert Dcons one "no-dcons" = Right $ Set.delete Dcons-one "grin-posteval" = Right $ Set.insert GrinPosteval-one "no-grin-posteval" = Right $ Set.delete GrinPosteval-one "grin-initial" = Right $ Set.insert GrinInitial-one "no-grin-initial" = Right $ Set.delete GrinInitial-one "parsed" = Right $ Set.insert Parsed-one "no-parsed" = Right $ Set.delete Parsed-one "core-pass" = Right $ Set.insert CorePass-one "no-core-pass" = Right $ Set.delete CorePass-one "e-verbose" = Right $ Set.insert EVerbose-one "no-e-verbose" = Right $ Set.delete EVerbose one "core-mangled" = Right $ Set.insert CoreMangled one "no-core-mangled" = Right $ Set.delete CoreMangled-one "progress" = Right $ Set.insert Progress-one "no-progress" = Right $ Set.delete Progress-one "imports" = Right $ Set.insert Imports-one "no-imports" = Right $ Set.delete Imports-one "stats" = Right $ Set.insert Stats-one "no-stats" = Right $ Set.delete Stats one "core-beforelift" = Right $ Set.insert CoreBeforelift one "no-core-beforelift" = Right $ Set.delete CoreBeforelift-one "e-info" = Right $ Set.insert EInfo-one "no-e-info" = Right $ Set.delete EInfo-one "decls" = Right $ Set.insert Decls-one "no-decls" = Right $ Set.delete Decls-one "tags" = Right $ Set.insert Tags-one "no-tags" = Right $ Set.delete Tags-one "derived" = Right $ Set.insert Derived-one "no-derived" = Right $ Set.delete Derived-one "bindgroups" = Right $ Set.insert Bindgroups-one "no-bindgroups" = Right $ Set.delete Bindgroups-one "grin-datalog" = Right $ Set.insert GrinDatalog-one "no-grin-datalog" = Right $ Set.delete GrinDatalog+one "kind-steps" = Right $ Set.insert KindSteps+one "no-kind-steps" = Right $ Set.delete KindSteps one "boxy-steps" = Right $ Set.insert BoxySteps one "no-boxy-steps" = Right $ Set.delete BoxySteps-one "scc-modules" = Right $ Set.insert SccModules-one "no-scc-modules" = Right $ Set.delete SccModules+one "e-verbose" = Right $ Set.insert EVerbose+one "no-e-verbose" = Right $ Set.delete EVerbose+one "exports" = Right $ Set.insert Exports+one "no-exports" = Right $ Set.delete Exports+one "veryverbose" = Right $ foldr (.) id [ f | Right f <- [ one "progress",one "stats"]]+one "renamed" = Right $ Set.insert Renamed+one "no-renamed" = Right $ Set.delete Renamed+one "atom" = Right $ Set.insert Atom+one "no-atom" = Right $ Set.delete Atom+one "instance" = Right $ Set.insert Instance+one "no-instance" = Right $ Set.delete Instance+one "derived" = Right $ Set.insert Derived+one "no-derived" = Right $ Set.delete Derived+one "parsed" = Right $ Set.insert Parsed+one "no-parsed" = Right $ Set.delete Parsed+one "core-pass" = Right $ Set.insert CorePass+one "no-core-pass" = Right $ Set.delete CorePass+one "decls" = Right $ Set.insert Decls+one "no-decls" = Right $ Set.delete Decls+one "srcsigs" = Right $ Set.insert Srcsigs+one "no-srcsigs" = Right $ Set.delete Srcsigs+one "progress" = Right $ Set.insert Progress+one "no-progress" = Right $ Set.delete Progress one "grin-normalized" = Right $ Set.insert GrinNormalized one "no-grin-normalized" = Right $ Set.delete GrinNormalized-one "grin" = Right $ Set.insert Grin-one "no-grin" = Right $ Set.delete Grin+one "core-afterlift" = Right $ Set.insert CoreAfterlift+one "no-core-afterlift" = Right $ Set.delete CoreAfterlift+one "rules" = Right $ Set.insert Rules+one "no-rules" = Right $ Set.delete Rules+one "grin-graph" = Right $ Set.insert GrinGraph+one "no-grin-graph" = Right $ Set.delete GrinGraph+one "class" = Right $ Set.insert Class+one "no-class" = Right $ Set.delete Class+one "grin-initial" = Right $ Set.insert GrinInitial+one "no-grin-initial" = Right $ Set.delete GrinInitial+one "core" = Right $ Set.insert Core+one "no-core" = Right $ Set.delete Core+one "tags" = Right $ Set.insert Tags+one "no-tags" = Right $ Set.delete Tags+one "core-initial" = Right $ Set.insert CoreInitial+one "no-core-initial" = Right $ Set.delete CoreInitial+one "datatable" = Right $ Set.insert Datatable+one "no-datatable" = Right $ Set.delete Datatable+one "grin-preeval" = Right $ Set.insert GrinPreeval+one "no-grin-preeval" = Right $ Set.delete GrinPreeval+one "grin-posteval" = Right $ Set.insert GrinPosteval+one "no-grin-posteval" = Right $ Set.delete GrinPosteval+one "sigenv" = Right $ Set.insert Sigenv+one "no-sigenv" = Right $ Set.delete Sigenv+one "class-summary" = Right $ Set.insert ClassSummary+one "no-class-summary" = Right $ Set.delete ClassSummary one x = Left x  {-# NOINLINE process #-}
src/FlagOpts.hs view
@@ -70,70 +70,70 @@     show Pthread = "pthread"     show Customthread = "customthread" -one "profile" = Right $ Set.insert Profile-one "no-profile" = Right $ Set.delete Profile-one "m4" = Right $ Set.insert M4-one "no-m4" = Right $ Set.delete M4-one "lint" = Right $ Set.insert Lint-one "no-lint" = Right $ Set.delete Lint-one "ffi" = Right $ Set.insert Ffi-one "no-ffi" = Right $ Set.delete Ffi+one "exists" = Right $ Set.insert Exists+one "no-exists" = Right $ Set.delete Exists+one "wrapper" = Right $ Set.insert Wrapper+one "no-wrapper" = Right $ Set.delete Wrapper+one "boehm" = Right $ Set.insert Boehm+one "no-boehm" = Right $ Set.delete Boehm+one "debug" = Right $ Set.insert Debug+one "no-debug" = Right $ Set.delete Debug+one "full-int" = Right $ Set.insert FullInt+one "no-full-int" = Right $ Set.delete FullInt+one "jgc" = Right $ Set.insert Jgc+one "no-jgc" = Right $ Set.delete Jgc+one "glasgow-exts" = Right $ foldr (.) id [ f | Right f <- [ one "forall",one "ffi",one "unboxed-tuples"]] one "monomorphism-restriction" = Right $ Set.insert MonomorphismRestriction one "no-monomorphism-restriction" = Right $ Set.delete MonomorphismRestriction+one "rules" = Right $ Set.insert Rules+one "no-rules" = Right $ Set.delete Rules one "prelude" = Right $ Set.insert Prelude one "no-prelude" = Right $ Set.delete Prelude-one "customthread" = Right $ Set.insert Customthread-one "no-customthread" = Right $ Set.delete Customthread-one "debug" = Right $ Set.insert Debug-one "no-debug" = Right $ Set.delete Debug-one "wrapper" = Right $ Set.insert Wrapper-one "no-wrapper" = Right $ Set.delete Wrapper+one "m4" = Right $ Set.insert M4+one "no-m4" = Right $ Set.delete M4+one "type-analysis" = Right $ Set.insert TypeAnalysis+one "no-type-analysis" = Right $ Set.delete TypeAnalysis one "bang-patterns" = Right $ Set.insert BangPatterns one "no-bang-patterns" = Right $ Set.delete BangPatterns-one "pthread" = Right $ Set.insert Pthread-one "no-pthread" = Right $ Set.delete Pthread-one "unboxed-tuples" = Right $ Set.insert UnboxedTuples-one "no-unboxed-tuples" = Right $ Set.delete UnboxedTuples-one "forall" = Right $ Set.insert Forall-one "no-forall" = Right $ Set.delete Forall-one "full-int" = Right $ Set.insert FullInt-one "no-full-int" = Right $ Set.delete FullInt-one "default" = Right $ foldr (.) id [ f | Right f <- [ one "inline-pragmas",one "rules",one "wrapper",one "defaulting",one "type-analysis",one "monomorphism-restriction",one "global-optimize",one "full-int",one "prelude"]]-one "negate" = Right $ Set.insert Negate-one "no-negate" = Right $ Set.delete Negate-one "user-kinds" = Right $ Set.insert UserKinds-one "no-user-kinds" = Right $ Set.delete UserKinds-one "glasgow-exts" = Right $ foldr (.) id [ f | Right f <- [ one "forall",one "ffi",one "unboxed-tuples"]]+one "customthread" = Right $ Set.insert Customthread+one "no-customthread" = Right $ Set.delete Customthread+one "raw" = Right $ Set.insert Raw+one "no-raw" = Right $ Set.delete Raw one "standalone" = Right $ Set.insert Standalone one "no-standalone" = Right $ Set.delete Standalone-one "type-analysis" = Right $ Set.insert TypeAnalysis-one "no-type-analysis" = Right $ Set.delete TypeAnalysis-one "boehm" = Right $ Set.insert Boehm-one "no-boehm" = Right $ Set.delete Boehm-one "jgc" = Right $ Set.insert Jgc-one "no-jgc" = Right $ Set.delete Jgc+one "user-kinds" = Right $ Set.insert UserKinds+one "no-user-kinds" = Right $ Set.delete UserKinds one "defaulting" = Right $ Set.insert Defaulting one "no-defaulting" = Right $ Set.delete Defaulting-one "nothread" = Right $ Set.insert Nothread-one "no-nothread" = Right $ Set.delete Nothread-one "rules" = Right $ Set.insert Rules-one "no-rules" = Right $ Set.delete Rules-one "controlled" = Right $ Set.insert Controlled-one "no-controlled" = Right $ Set.delete Controlled+one "negate" = Right $ Set.insert Negate+one "no-negate" = Right $ Set.delete Negate one "type-families" = Right $ Set.insert TypeFamilies one "no-type-families" = Right $ Set.delete TypeFamilies+one "default" = Right $ foldr (.) id [ f | Right f <- [ one "inline-pragmas",one "rules",one "wrapper",one "defaulting",one "type-analysis",one "monomorphism-restriction",one "global-optimize",one "full-int",one "prelude"]]+one "controlled" = Right $ Set.insert Controlled+one "no-controlled" = Right $ Set.delete Controlled+one "pthread" = Right $ Set.insert Pthread+one "no-pthread" = Right $ Set.delete Pthread+one "forall" = Right $ Set.insert Forall+one "no-forall" = Right $ Set.delete Forall+one "unboxed-tuples" = Right $ Set.insert UnboxedTuples+one "no-unboxed-tuples" = Right $ Set.delete UnboxedTuples+one "cpp" = Right $ Set.insert Cpp+one "no-cpp" = Right $ Set.delete Cpp one "unboxed-values" = Right $ Set.insert UnboxedValues one "no-unboxed-values" = Right $ Set.delete UnboxedValues-one "inline-pragmas" = Right $ Set.insert InlinePragmas-one "no-inline-pragmas" = Right $ Set.delete InlinePragmas one "global-optimize" = Right $ Set.insert GlobalOptimize one "no-global-optimize" = Right $ Set.delete GlobalOptimize-one "cpp" = Right $ Set.insert Cpp-one "no-cpp" = Right $ Set.delete Cpp-one "exists" = Right $ Set.insert Exists-one "no-exists" = Right $ Set.delete Exists-one "raw" = Right $ Set.insert Raw-one "no-raw" = Right $ Set.delete Raw+one "nothread" = Right $ Set.insert Nothread+one "no-nothread" = Right $ Set.delete Nothread+one "lint" = Right $ Set.insert Lint+one "no-lint" = Right $ Set.delete Lint+one "profile" = Right $ Set.insert Profile+one "no-profile" = Right $ Set.delete Profile+one "inline-pragmas" = Right $ Set.insert InlinePragmas+one "no-inline-pragmas" = Right $ Set.delete InlinePragmas+one "ffi" = Right $ Set.insert Ffi+one "no-ffi" = Right $ Set.delete Ffi one x = Left x  {-# NOINLINE process #-}
src/FrontEnd/Class.hs view
@@ -1,4 +1,5 @@-{-# LANGUAGE NoMonoLocalBinds, NamedFieldPuns, TemplateHaskell #-}+{-# LANGUAGE NoMonoLocalBinds, NamedFieldPuns #-}+{-# OPTIONS_GHC -F -pgmFderive -optF-F #-} module FrontEnd.Class(     printClassHierarchy,     instanceToTopDecls,@@ -32,7 +33,6 @@ import Data.Generics(mkQ,something) import Data.List(nub) import Data.Maybe-import Data.DeriveTH import Debug.Trace import Text.PrettyPrint.HughesPJ(render,Doc()) import Text.Printf@@ -534,6 +534,8 @@     ] -} -$(derive makeBinary ''Inst)-$(derive makeBinary ''AssociatedType)-$(derive makeBinary ''ClassRecord)+{-!+deriving instance Binary Inst+deriving instance Binary AssociatedType+deriving instance Binary ClassRecord+!-}
src/FrontEnd/HsSyn.hs view
@@ -1,9 +1,8 @@-{-# LANGUAGE TemplateHaskell #-}+{-# OPTIONS_GHC -F -pgmFderive -optF-F #-} module FrontEnd.HsSyn where  import Data.Binary import Data.Generics-import Data.DeriveTH  import C.FFI import FrontEnd.SrcLoc@@ -437,20 +436,24 @@ hsKindQuestQuest = HsKind s_QuestQuest hsKindStarBang = HsKind s_StarBang -$(derive makeUpdate ''HsModule)-$(derive makeBinary ''HsAssoc)-$(derive makeIs ''HsDecl)-$(derive makeIs ''HsConDecl)-$(derive makeUpdate ''HsConDecl)-$(derive makeBinary ''HsQualType)-$(derive makeBinary ''HsType)-$(derive makeIs ''HsType)-$(derive makeBinary ''HsTyVarBind)-$(derive makeUpdate ''HsTyVarBind)-$(derive makeBinary ''HsAsst)-$(derive makeIs ''HsLiteral)-$(derive makeIs ''HsExp)-$(derive makeUpdate ''HsExp)-$(derive makeUpdate ''HsClassHead)-$(derive makeIs ''HsPat)-$(derive makeBinary ''HsKind)+++{-!+deriving instance Update HsModule+deriving instance Binary HsAssoc+deriving instance Is HsDecl+deriving instance Is HsConDecl+deriving instance Update HsConDecl+deriving instance Binary HsQualType+deriving instance Binary HsType+deriving instance Is HsType+deriving instance Binary HsTyVarBind+deriving instance Update HsTyVarBind+deriving instance Binary HsAsst+deriving instance Is HsLiteral+deriving instance Is HsExp+deriving instance Update HsExp+deriving instance Update HsClassHead+deriving instance Is HsPat+deriving instance Binary HsKind+!-}
src/FrontEnd/KindInfer.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE TemplateHaskell #-}+{-# OPTIONS_GHC -F -pgmFderive -optF-F #-} {-# OPTIONS -funbox-strict-fields #-} -- | -- This module implements the Kind Inference algorithm, and the routines which@@ -23,7 +23,6 @@ import Control.Monad.Writer import Data.Binary import Data.Generics(Typeable, everything, mkQ)-import Data.DeriveTH import Data.IORef import Data.List import System.IO.Unsafe@@ -625,4 +624,6 @@ fromHsTyVar (HsTyExpKind (Located _ t) _) = fromHsTyVar t fromHsTyVar _ = fail "fromHsTyVar" -$(derive makeMonoid ''KindEnv)+{-!+deriving instance Monoid KindEnv+!-}
src/FrontEnd/Representation.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE TemplateHaskell #-}+{-# OPTIONS_GHC -F -pgmFderive -optF-F #-} module FrontEnd.Representation(     Type(..),     Tyvar(..),@@ -27,7 +27,6 @@ import Data.IORef  import Data.Binary-import Data.DeriveTH import Doc.DocLike import Doc.PPrint import FrontEnd.Tc.Kind@@ -312,9 +311,11 @@ tTTuple' ts = foldl TAp (TCon $ Tycon (unboxedNameTuple TypeConstructor  n) (foldr Kfun kindUTuple $ replicate n kindStar)) ts where     n = length ts -$(derive makeBinary ''MetaVarType)-$(derive makeBinary ''Type)-$(derive makeBinary ''MetaVar)-$(derive makeBinary ''Tycon)-$(derive makeBinary ''Pred)-$(derive makeBinary ''Qual)+{-!+deriving instance Binary MetaVarType+deriving instance Binary Type+deriving instance Binary MetaVar+deriving instance Binary Tycon+deriving instance Binary Pred+deriving instance Binary Qual+!-}
src/FrontEnd/SrcLoc.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE TemplateHaskell #-}+{-# OPTIONS_GHC -F -pgmFderive -optF-F #-} module FrontEnd.SrcLoc where  import Control.Applicative@@ -8,7 +8,6 @@ import Data.Traversable import Data.Binary import Data.Generics-import Data.DeriveTH  import PackedString @@ -121,8 +120,11 @@       | sl1 == sl2 = show sl1       | otherwise = show sl1 ++ "-" ++ show sl2 -$(derive makeUpdate ''SrcLoc)-$(derive makeBinary ''SrcLoc)-$(derive makeUpdate ''SrcSpan)-$(derive makeBinary ''SrcSpan)-$(derive makeBinary ''Located)+{-!+deriving instance Update SrcLoc+deriving instance Binary SrcLoc+deriving instance Update SrcSpan+deriving instance Binary SrcSpan+deriving instance Binary Located+!-}+
src/FrontEnd/Tc/Kind.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE TemplateHaskell #-}+{-# OPTIONS_GHC -F -pgmFderive -optF-F #-} module FrontEnd.Tc.Kind(     Kind(..),     KBase(..),@@ -18,7 +18,6 @@ import Data.IORef import Data.Monoid import Data.Binary-import Data.DeriveTH  import Doc.DocLike import Doc.PPrint(pprint,pprintPrec,pprintAssoc,Assoc(..),PPrint,pprintBinary)@@ -166,5 +165,7 @@ unfoldKind (Kfun k1 k2) = k1 : unfoldKind k2 unfoldKind v = [v] -$(derive makeBinary ''KBase)-$(derive makeBinary ''Kind)+{-!+deriving instance Binary KBase+deriving instance Binary Kind+!-}
src/FrontEnd/Tc/Monad.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE ImpredicativeTypes, TemplateHaskell #-}+{-# OPTIONS_GHC -F -pgmFderive -optF-F #-} module FrontEnd.Tc.Monad(     CoerceTerm(..),     Tc(),@@ -54,7 +54,6 @@ import Control.Monad.Writer.Strict import Data.IORef import Data.List-import Data.DeriveTH --import Text.PrettyPrint.HughesPJ(Doc) import qualified Data.Foldable as T import qualified Data.Map as Map@@ -124,8 +123,6 @@     outKnots         :: [(Name,Name)]     } -$(derive makeMonoid ''Output)- newtype Tc a = Tc (ReaderT TcEnv (WriterT Output IO) a)     deriving(MonadFix,MonadIO,MonadReader TcEnv,MonadWriter Output,Functor) @@ -563,3 +560,7 @@     taus <- mapM (newMetaVar Tau) ks     varBind mv (sfunc taus)     bsfunc taus++{-!+deriving instance Monoid Output+!-}
src/Grin/SSimplify.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE TemplateHaskell #-}+{-# OPTIONS_GHC -F -pgmFderive -optF-F #-} module Grin.SSimplify(simplify,explicitRecurse) where  import Control.Monad.Identity@@ -10,7 +10,6 @@ import qualified Data.IntSet as IS import qualified Data.Map as Map import qualified Data.Set as Set-import Data.DeriveTH  import Grin.Grin import Grin.Noodle@@ -50,8 +49,6 @@     colFreeVars :: GSet Var     } -$(derive makeMonoid ''SCol)- {- data ExpInfo = ExpInfo {     expFreeVars :: GSet Var,@@ -432,4 +429,7 @@             g e = tickle g e         return $ as :-> grinLet [createFuncDef True nname (as :-> g e) ] (App nname as (getType e)) -$(derive makeMonoid ''SEnv)+{-!+deriving instance Monoid SCol+deriving instance Monoid SEnv+!-}
src/Ho/ReadSource.hs view
@@ -47,7 +47,9 @@         _ | fopts FO.Cpp -> readSystem "cpphs" $ incFlags ++ defFlags ++ [fn]           | fopts FO.M4  -> do                 m4p <- m4Prelude-                readSystem "m4" $ ["-s", "-P"] ++ incFlags ++ defFlags ++ [m4p,fn]+                useGm4 <- existCommand "gm4"+                let c = if useGm4 then "gm4" else "m4"+                readSystem c $ ["-s", "-P"] ++ incFlags ++ defFlags ++ [m4p,fn]           | otherwise -> return lbs  m4Prelude :: IO FilePath
src/Ho/Type.hs view
@@ -1,10 +1,9 @@-{-# LANGUAGE TemplateHaskell #-}+{-# OPTIONS_GHC -F -pgmFderive -optF-F #-} module Ho.Type where  import Data.Monoid import qualified Data.ByteString as BS import Data.Map-import Data.DeriveTH  import Data.Version import DataConstructors(DataTable)@@ -21,7 +20,6 @@ import Name.Id import Name.Name(Name,Module) import PackedString-import Util.SetLike import Support.CFF import Support.MapBinaryInstance() import Support.MD5@@ -184,9 +182,11 @@   -} -$(derive makeUpdate ''CollectedHo)-$(derive makeUpdate ''HoTcInfo)-$(derive makeMonoid ''HoTcInfo)-$(derive makeUpdate ''HoBuild)-$(derive makeMonoid ''HoBuild)-$(derive makeUpdate ''Ho)+{-!+deriving instance Update CollectedHo+deriving instance Update HoTcInfo+deriving instance Monoid HoTcInfo+deriving instance Update HoBuild+deriving instance Monoid HoBuild+deriving instance Update Ho+!-}
src/Name/VConsts.hs view
@@ -1,10 +1,9 @@-{-# LANGUAGE TemplateHaskell #-}+{-# OPTIONS_GHC -F -pgmFderive -optF-F #-} module Name.VConsts where  import Control.Applicative import Data.Foldable import Data.Traversable-import Data.DeriveTH  -- This is much more verbose/complicated than it needs be. @@ -77,6 +76,8 @@     func_runRaw :: a     } -$(derive makeFunctor ''FuncNames)-$(derive makeTraversable ''FuncNames)-$(derive makeFoldable ''FuncNames)+{-!+deriving instance Functor FuncNames+deriving instance Traversable FuncNames+deriving instance Foldable FuncNames+!-}
src/RawFiles.hs view
@@ -1087,6 +1087,254 @@ {-# NOINLINE changelog #-} changelog :: ByteString changelog = unsafePerformIO $ unsafePackAddress "\+ \commit fdd05fe6aeec7d305a818b5a92c36fc2e1a5574c\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Sat Oct 26 18:38:40 2013 +0900\n\+ \\n\+ \    Add release note for 0.8.0.9.\n\+ \\n\+ \commit 0e19f347196f9d8dfabc60b9f65dc2b3557885e3\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Wed Oct 9 14:36:16 2013 +0900\n\+ \\n\+ \    Added regress test for BUG #48 (fixed #48).\n\+ \\n\+ \commit 4a8646ec8a0b0b9120c60d37ef189a1e9dacd6b5\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Wed Oct 9 14:03:19 2013 +0900\n\+ \\n\+ \    Test: Travis-CI find the #48 BUG with running regress test?\n\+ \\n\+ \commit ae2208bb53df805907008a60063ef53f1f699d9b\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Tue Oct 8 22:51:38 2013 +0900\n\+ \\n\+ \    Fix Segmentation fault: gc_add_root with static thunk.\n\+ \\n\+ \commit 9c264872105597700e2ba403851cf3b236cb1646\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Fri Oct 4 02:23:00 2013 +0900\n\+ \\n\+ \    Should set disable profiling option on cabal configure.\n\+ \\n\+ \commit cc2cac2ba49c65801ffe2078bcd7522011cc718f\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Fri Oct 4 01:59:42 2013 +0900\n\+ \\n\+ \    No prof.\n\+ \\n\+ \commit 3c7517d6e2bcf003c8135174383f77975965b865\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Fri Oct 4 01:01:17 2013 +0900\n\+ \\n\+ \    Copy from OS X branch.\n\+ \\n\+ \commit 971a778441a64fc62897861a655f18387be834bd\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Fri Oct 4 00:41:40 2013 +0900\n\+ \\n\+ \    Do not run haddock on travis-ci.\n\+ \\n\+ \commit bc824e11e5db34f74c4b6cabf8ba55b6bcbea0dd\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Wed Sep 25 17:53:43 2013 +0900\n\+ \\n\+ \    Update travis setting.\n\+ \\n\+ \commit 5a961d1c3d5fcbf7399392dc7015c482fa797c57\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Wed Sep 25 02:52:40 2013 +0900\n\+ \\n\+ \    Split travis-ci scripts.\n\+ \\n\+ \commit bb2db48f6c3cc9b00ef25f100630d47e5820bcdd\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Sat Sep 7 12:38:58 2013 +0900\n\+ \\n\+ \    The derive-2.5.13 does not have indent problem.\n\+ \\n\+ \commit 26656dc5399d5ea92d63165396d1ef561b3dc01e\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Fri Sep 6 22:25:40 2013 +0900\n\+ \\n\+ \    Edit deb package list needed by Ajhc.\n\+ \\n\+ \commit 2f784567629a52e6b588f1a03b9d8df2e2a80fdf\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Wed Sep 4 19:40:29 2013 +0900\n\+ \\n\+ \    Suport \"gm4\" command for BSD like OS.\n\+ \\n\+ \commit 2d251f59c8cc9de2f62484fc23c7a3170b4179c7\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Wed Sep 4 18:54:36 2013 +0900\n\+ \\n\+ \    Use derive-2.5.11 on travis-ci.\n\+ \\n\+ \commit aefe5c1a89363902be856d40a78d91bc118e4e5a\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Wed Sep 4 18:41:47 2013 +0900\n\+ \\n\+ \    Avoid derive error.\n\+ \    \n\+ \    The BUG is caused by derive-2.5.12. It's not duplicated withderive-2.5.11.\n\+ \\n\+ \commit 0f5f9f9fd6748a7ef640966be221b3dfe92ed45f\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Wed Sep 4 16:41:40 2013 +0900\n\+ \\n\+ \    Fix a bit miss.\n\+ \\n\+ \commit b74a18f1256ab34fb8ee445292c505fd48ef88de\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Wed Sep 4 16:38:52 2013 +0900\n\+ \\n\+ \    Need haskell-derive-utils: deb package to install git ver.\n\+ \\n\+ \commit 853c6c23134a16cdbf94dbbce228fb5cef22e096\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Wed Sep 4 16:34:24 2013 +0900\n\+ \\n\+ \    Path to $HOME/.cabal/bin.\n\+ \\n\+ \commit 5176a8c40fd218d7befe1e36d4dfe7337ec66f71\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Wed Sep 4 16:21:55 2013 +0900\n\+ \\n\+ \    Start from Haskell env on travis-ci.\n\+ \\n\+ \commit bd1a4d06dc9407a2a4bb1ab83f2d1c5c82c2c867\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Wed Sep 4 16:18:13 2013 +0900\n\+ \\n\+ \    Fix some warning message.\n\+ \\n\+ \commit fbde2c3f65a98705250ea0717292764deef4108c\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Wed Sep 4 16:10:08 2013 +0900\n\+ \\n\+ \    Free derive from TemplateHaskell oppression.\n\+ \\n\+ \commit 59fdda5cb93af5a6ece2d571f211cb173120a632\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Wed Sep 4 12:37:52 2013 +0900\n\+ \\n\+ \    Do not use -g option for m4. Old m4 not support it.\n\+ \\n\+ \commit a7aec48094754fb45739009b85be283bce0c32a3\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Tue Sep 3 20:05:54 2013 +0900\n\+ \\n\+ \    Fill zero arena->public_caches_p.\n\+ \\n\+ \commit 0f4d9a92a622cf1ea4ddae3b433ce802dbeeeb86\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Tue Sep 3 19:41:52 2013 +0900\n\+ \\n\+ \    Depend on cpphs.\n\+ \\n\+ \commit 8969d49c72588b198f55955fda0079c15b2507d4\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Tue Sep 3 19:41:31 2013 +0900\n\+ \\n\+ \    Fix miss commit.\n\+ \\n\+ \commit 6615edf30a87e65260d4be8bde94ac00c929a5c8\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Tue Sep 3 12:54:11 2013 +0900\n\+ \\n\+ \    No need obj-c line.\n\+ \\n\+ \commit 0a905b8f5547bc3be217ce5919a95dd7bbfa2c16\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Tue Sep 3 12:45:08 2013 +0900\n\+ \\n\+ \    Come back .travis.yml for Ubuntu.\n\+ \\n\+ \commit 9341d487860fa95001e891e41607be7e7a914fb8\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Tue Sep 3 07:45:53 2013 +0900\n\+ \\n\+ \    Set cabal bin path.\n\+ \\n\+ \commit 7a364f822f007c3c3bb034a421e2696da4e49aa2\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Tue Sep 3 07:40:32 2013 +0900\n\+ \\n\+ \    Test to cabal install from Hackage DB.\n\+ \\n\+ \commit 4ce9691aa649111e8ab5aa5081d09e49cf4a9fd3\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Tue Sep 3 07:10:54 2013 +0900\n\+ \\n\+ \    New cabal-setup target.\n\+ \\n\+ \commit f7372641f7a04d55931fbbb7341e6ccf2e0cf0d2\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Tue Sep 3 06:31:49 2013 +0900\n\+ \\n\+ \    Try to use haskell-platform packed as binary package.\n\+ \\n\+ \commit 42d56a828d2bb6211228b0b41475465d1b850485\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Tue Sep 3 06:22:43 2013 +0900\n\+ \\n\+ \    List up Mac OS X pkgs.\n\+ \\n\+ \commit cd52e3e5dfe3bd7b80ad4efa7b32521f6e7098f0\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Tue Sep 3 06:17:10 2013 +0900\n\+ \\n\+ \    cabal-install is lighter than haskell-platform on travis-ci.\n\+ \\n\+ \commit 583fe0a1905069c85ec0cd1b1e8784de2ce2610e\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Tue Sep 3 05:24:31 2013 +0900\n\+ \\n\+ \    Add haskell packages needed for build Ajhc.\n\+ \\n\+ \commit 31fb46d7f8a0ae298d1ac16731e0a42853e68c87\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Tue Sep 3 04:46:57 2013 +0900\n\+ \\n\+ \    Try \"brew install haskell-platform --verbose\".\n\+ \\n\+ \commit d8feae23a50430844ab226b5a0977b3d5475c5b5\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Tue Sep 3 04:41:39 2013 +0900\n\+ \\n\+ \    Add --verbose option for brew.\n\+ \\n\+ \commit ed2b2a0f5fa7035abdba822bef6ec4810e5af483\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Tue Sep 3 04:32:31 2013 +0900\n\+ \\n\+ \    Too heavy installing haskell-platform with brew.\n\+ \\n\+ \commit aca1dd4317052d62b4573920c913acf7e46e14e0\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Tue Sep 3 04:14:56 2013 +0900\n\+ \\n\+ \    Use homebrew.\n\+ \\n\+ \commit 124f20ce0489c25d8c0360543fd702142eec8f94\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Tue Sep 3 03:53:13 2013 +0900\n\+ \\n\+ \    New git branch to run test on Mac OS X + travis-ci.\n\+ \\n\+ \commit 4d2f4e3786300666451585926a46e1093c1dae69\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Mon Sep 2 23:42:53 2013 +0900\n\+ \\n\+ \    m4 -g for BSD like OS.\n\+ \\n\+ \commit 694ab3c7ddb9b85efe3b88ef16554c6beee195cd\n\+ \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\+ \Date:   Mon Sep 2 16:14:45 2013 +0900\n\+ \\n\+ \    Bump up version 0.8.0.9.\n\+ \\n\  \commit a1265f031e6b75f9346ec23ca7caec0b5ced82bc\n\  \Author: Kiwamu Okabe <kiwamu@debian.or.jp>\n\  \Date:   Mon Sep 2 16:12:19 2013 +0900\n\@@ -2754,7 +3002,7 @@ {-# NOINLINE shortchange_txt #-} shortchange_txt :: ByteString shortchange_txt = unsafePerformIO $ unsafePackAddress "\- \a1265f031e6b75f9346ec23ca7caec0b5ced82bc\+ \fdd05fe6aeec7d305a818b5a92c36fc2e1a5574c\  \"#  -- | Generated from rts\/rts\/slub.c@@ -3164,10 +3412,6 @@  \static struct s_block *get_free_block(gc_t gc, arena_t arena, bool retry);\n\  \static void *jhc_aligned_alloc(unsigned size);\n\  \\n\- \typedef struct {\n\- \        sptr_t ptrs[0];\n\- \} entry_t;\n\- \\n\  \static const void *nh_start, *nh_end;\n\  \\n\  \static bool\n\@@ -3176,14 +3420,6 @@  \        return (s < (entry_t *)nh_start || s > (entry_t *)nh_end);\n\  \}\n\  \\n\- \struct stack {\n\- \        unsigned size;\n\- \        unsigned ptr;\n\- \        entry_t * *stack;\n\- \};\n\- \\n\- \#define EMPTY_STACK { 0, 0, NULL }\n\- \\n\  \static void\n\  \stack_grow(struct stack *s, unsigned grow)\n\  \{\n\@@ -3207,15 +3443,13 @@  \        }\n\  \}\n\  \\n\- \static struct stack root_stack = EMPTY_STACK;\n\- \\n\  \void gc_add_root(gc_t gc, arena_t arena, void *root)\n\  \{\n\  \        if(IS_PTR(root)) {\n\  \                entry_t *nroot = TO_GCPTR(root);\n\  \                if(gc_check_heap(nroot)) {\n\- \                        stack_check(&root_stack,1);\n\- \                        root_stack.stack[root_stack.ptr++] = nroot;\n\+ \                        stack_check(&arena->root_stack,1);\n\+ \                        arena->root_stack.stack[arena->root_stack.ptr++] = nroot;\n\  \                }\n\  \        }\n\  \}\n\@@ -3277,10 +3511,10 @@  \        clear_used_bits(arena);\n\  \\n\  \        debugf(\"Setting Roots:\");\n\- \        stack_check(&stack, root_stack.ptr);\n\- \        for(unsigned i = 0; i < root_stack.ptr; i++) {\n\- \                gc_add_grey(&stack, root_stack.stack[i]);\n\- \                debugf(\" %p\", root_stack.stack[i]);\n\+ \        stack_check(&stack, arena->root_stack.ptr);\n\+ \        for(unsigned i = 0; i < arena->root_stack.ptr; i++) {\n\+ \                gc_add_grey(&stack, arena->root_stack.stack[i]);\n\+ \                debugf(\" %p\", arena->root_stack.stack[i]);\n\  \                DO_GC_MARK_DEEPER(&stack, &number_redirects);\n\  \        }\n\  \        debugf(\" # \");\n\@@ -3342,7 +3576,7 @@  \                        number_stack,\n\  \                        number_ptr,\n\  \                        number_redirects,\n\- \                        (unsigned)root_stack.ptr\n\+ \                        (unsigned)arena->root_stack.ptr\n\  \                       );\n\  \                arena->number_allocs = 0;\n\  \        }\n\@@ -3845,6 +4079,7 @@  \alloc_public_caches(arena_t arena, size_t size) {\n\  \        if (arena->public_caches_p == NULL) {\n\  \                arena->public_caches_p = malloc(size);\n\+ \                memset(arena->public_caches_p, 0, size);\n\  \        }\n\  \}\n\  \\n\@@ -3872,6 +4107,7 @@  \        arena->block_used = 0;\n\  \        arena->block_threshold = 8;\n\  \        arena->current_megablock = NULL;\n\+ \        memset(&arena->root_stack, 0, sizeof(arena->root_stack));\n\  \\n\  \        for (int i = 0; i < GC_STATIC_ARRAY_NUM; i++) {\n\  \                find_cache(&arena->array_caches[i], arena, i + 1, i + 1);\n\@@ -5187,6 +5423,18 @@  \\n\  \#if _JHC_GC == _JHC_GC_JGC\n\  \\n\+ \typedef struct {\n\+ \        sptr_t ptrs[0];\n\+ \} entry_t;\n\+ \\n\+ \struct stack {\n\+ \        unsigned size;\n\+ \        unsigned ptr;\n\+ \        entry_t * *stack;\n\+ \};\n\+ \\n\+ \#define EMPTY_STACK { 0, 0, NULL }\n\+ \\n\  \struct s_caches_pub;\n\  \\n\  \struct s_arena {\n\@@ -5201,6 +5449,7 @@  \        unsigned number_gcs;    // number of garbage collections\n\  \        unsigned number_allocs; // number of allocations since last garbage collection\n\  \        gc_t gc_stack_base;\n\+ \        struct stack root_stack;\n\  \// 7 to share caches with the first 7 tuples\n\  \#define GC_STATIC_ARRAY_NUM 7\n\  \#define GC_MAX_BLOCK_ENTRIES 150\n\
src/Util/FilterInput.hs view
@@ -1,4 +1,4 @@-module Util.FilterInput (filterInput,readSystem) where+module Util.FilterInput (filterInput,readSystem,existCommand) where  import Control.Monad (when) import Data.List@@ -24,3 +24,8 @@     when (rExit /= ExitSuccess) $       putErrDie (printf "'%s' exited abnormally (%s)" (intercalate " " (prog:args)) (show rExit))     return $ LBS.pack rStdout++existCommand :: String -> IO Bool+existCommand cmd = do+  (rExit, _, _) <- readProcessWithExitCode "which" [cmd] ""+  return $ if rExit == ExitSuccess then True else False
src/Version/Config.hs view
@@ -1,7 +1,7 @@ module Version.Config where  shortVersion = "0.8"-version = "0.8.0.8"+version = "0.8.0.9" package = "ajhc" libdir  = "/usr/local/lib" datadir = "/usr/local/share"