Tue Mar 6 22:15:04 PST 2012 John Meacham <[email protected]> * mv base to haskell-extras
Wed Mar 7 00:52:27 PST 2012 John Meacham <[email protected]> * clean up configure.ac a little Wed Mar 7 02:08:09 PST 2012 John Meacham <[email protected]> * update library dependencies
New patches: [mv base to haskell-extras John Meacham <[email protected]>**20120307061504 Ignore-this: acc62fbf85b246155f10055cf7228cd7 ] move ./lib/base ./lib/haskell-extras move ./lib/haskell-extras/base.yaml ./lib/haskell-extras/haskell-extras.yaml.m4 hunk ./Makefile.am 67 include library_deps.make EXTRA_DIST = src/data rts utils docs src/FrontEnd/HsParser.y $(BUILT_SOURCES) \ - lib/jhc lib/jhc-prim lib/base lib/haskell98 lib/flat-foreign $(JHC_LIBS) $(JHC_EXT_LIBS) \ + lib/jhc lib/jhc-prim lib/haskell-extras lib/haskell98 lib/flat-foreign $(JHC_LIBS) $(JHC_EXT_LIBS) \ src/StringTable/StringTable_cbits.c src/StringTable/StringTable_cbits.h src/cbits/md5sum.c jhc.1 \ src/StringTable/Atom.hsc jhc.spec src/cbits/lookup3.c \ manual.html lib/applicative examples/HelloWorld.hs examples/Calendar.hs \ hunk ./Makefile.am 282 show_elibs: lib/ext/*.cabal lib/ext/*.yaml -perl utils/build_extlibs.prl -l $^ -%: examples/%.hs jhc base-1.0.hl haskell98-1.0.hl +%: examples/%.hs jhc $(JHC_LIBS) ./jhc -L- -L$(srcdir) -L. --no-cache $(JHC_TEST) $< -o $@ # 2>&1 | tee [email protected] TESTS=HelloWorld Primes hunk ./configure.ac 1 -AC_INIT([jhc],[0.8.0]) +AC_INIT([jhc],[0.8.1]) AC_CONFIG_SRCDIR(src/Main.hs) AC_CONFIG_MACRO_DIR(ac-macros) AC_CONFIG_AUX_DIR(ac-macros) hunk ./lib/applicative/applicative.yaml 4 Name: applicative Version: 1.0 Hs-Source-Dirs: . -Options: [ -pbase, --noauto ] +Options: [ -phaskell2010, -phaskell-extras, --noauto ] Exposed-Modules: - Control.Applicative - Control.Arrow hunk ./lib/ext/safe.cabal 10 Maintainer: [email protected] Author: Neil Mitchell Homepage: http://www-users.cs.york.ac.uk/~ndm/safe/ -Build-Depends: base +Build-Depends: haskell-extras Category: Unclassified Synopsis: Library for safe (pattern match free) functions Description: hunk ./lib/ext/smallcheck.cabal 10 tests properties for all the finitely many values up to some depth, progressively increasing the depth used. -Build-Depends: base, haskell98 +Build-Depends: haskell98 Exposed-modules: Test.SmallCheck hunk ./lib/ext/xhtml.cabal 9 Author: Bjorn Bringert License: BSD3 License-file: LICENSE -build-depends: base Extensions: Synopsis: An XHTML combinator library Description: hunk ./lib/flat-foreign/flat-foreign.yaml 4 Name: flat-foreign Version: 1.0 hs-source-dir: . -build-depends: [base, jhc] +build-depends: [haskell2010] exposed-modules: [ Bits, CError, CForeign, CString, CTypes, ForeignPtr, Int, MarshalAlloc, MarshalArray, MarshalError, MarshalUtils, Ptr, StablePtr, Storable, Word ] hunk ./lib/haskell-extras/haskell-extras.yaml.m4 1 -Name: base -Version: 1.0 +Name: haskell-extras +Version: __JHC_VERSION__ Hs-Source-Dir: . Extensions: ForeignFunctionInterface hunk ./lib/haskell-extras/haskell-extras.yaml.m4 5 -Options: [ -pjhc, --noauto ] +build-depends: jhc +Options: [ --noauto ] Exposed-Modules: - Control.Exception - Control.Monad hunk ./lib/haskell2010/haskell2010.yaml.m4 6 Extensions: [ ForeignFunctionInterface, NoImplicitPrelude, UnboxedTuples, UnboxedValues ] Hs-Source-Dir: . -build-depends: [ jhc, base ] -#Options: [ --noauto ] +build-depends: [ jhc, haskell-extras ] +Options: [ --noauto ] Exposed-Modules: - Control.Monad - Data.Array hunk ./lib/haskell98/haskell98.yaml 4 name: haskell98 version: 1.0 options: --noauto -build-depends: [ base, jhc ] +build-depends: [ haskell2010, haskell-extras ] hs-source-dir: . exposed-modules: [ Prelude, Numeric, Array, CPUTime, Char, Complex, Directory, IO, Ix, List, Locale, Maybe, Monad, Random, Ratio, System, Time ] hunk ./library_deps.make 1 -base-1.0.hl: lib/base/base.yaml lib/base/System/Info.hs lib/base/Data/Int.hs 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/Word.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 lib/base/Data/Array/IO.hs lib/base/Data/Char.hs \ - lib/base/Data/Version.hs lib/base/Text/Show/Functions.hs lib/base/Control/Monad.hs lib/base/Data/Functor.hs lib/base/Data/Monoid.hs \ - lib/base/System/Locale.hs lib/base/System/IO.hs lib/base/Foreign/Marshal/Pool.hs lib/base/Prelude.hs lib/base/Control/Monad/Fix.hs \ - lib/base/Data/Complex.hs lib/base/Data/IORef.hs lib/base/System/Console/GetOpt.hs lib/base/Data/List.hs lib/base/System/Cmd.hs \ - lib/base/System/Random.hs lib/base/Data/Unicode.hs lib/base/Foreign/ForeignPtr.hs lib/base/System/Time.hs lib/base/Control/Exception.hs \ - lib/base/Foreign/StablePtr.hs lib/base/Foreign/C.hs lib/base/Data/Bits.hs lib/base/Foreign/Marshal.hs lib/base/Foreign.hs \ - lib/base/Data/Array/Unboxed.hs lib/base/Data/Function.hs lib/base/Data/Ix.hs jhc-prim-1.0.hl jhc-1.0.hl - ./jhc $(LIB_OPTIONS) --build-hl $< -o $@ -applicative-1.0.hl: lib/applicative/applicative.yaml 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 jhc-prim-1.0.hl base-1.0.hl jhc-1.0.hl - ./jhc $(LIB_OPTIONS) --build-hl $< -o $@ -flat-foreign-1.0.hl: lib/flat-foreign/flat-foreign.yaml lib/flat-foreign/StablePtr.hs lib/flat-foreign/MarshalAlloc.hs lib/flat-foreign/CForeign.hs lib/flat-foreign/Storable.hs \ - lib/flat-foreign/Ptr.hs lib/flat-foreign/MarshalArray.hs lib/flat-foreign/Int.hs lib/flat-foreign/CString.hs lib/flat-foreign/Word.hs \ - lib/flat-foreign/CError.hs lib/flat-foreign/CTypes.hs lib/flat-foreign/MarshalError.hs lib/flat-foreign/MarshalUtils.hs lib/flat-foreign/Bits.hs \ - lib/flat-foreign/ForeignPtr.hs jhc-prim-1.0.hl base-1.0.hl jhc-1.0.hl - ./jhc $(LIB_OPTIONS) --build-hl $< -o $@ -haskell98-1.0.hl: lib/haskell98/haskell98.yaml lib/haskell98/System.hs lib/haskell98/List.hs lib/haskell98/Time.hs lib/haskell98/Array.hs \ - lib/haskell98/Random.hs lib/haskell98/Complex.hs lib/haskell98/Locale.hs lib/haskell98/CPUTime.hs lib/haskell98/Ratio.hs \ - lib/haskell98/Monad.hs lib/haskell98/Directory.hs lib/haskell98/IO.hs lib/haskell98/Ix.hs lib/haskell98/Char.hs \ - lib/haskell98/Maybe.hs jhc-prim-1.0.hl base-1.0.hl jhc-1.0.hl +jhc-prim-1.0.hl: lib/jhc-prim/jhc-prim.yaml lib/jhc-prim/Jhc/Prim/IO.hs lib/jhc-prim/Jhc/Prim/Prim.hs lib/jhc-prim/Jhc/Prim/Array.hs lib/jhc-prim/Jhc/Prim/Wrapper.hs \ + lib/jhc-prim/Jhc/Prim/Rts.hs lib/jhc-prim/Jhc/Prim/Bits.hs ./jhc $(LIB_OPTIONS) --build-hl $< -o $@ jhc-1.0.hl: lib/jhc/jhc.yaml lib/jhc/Jhc/Prim.hs lib/jhc/Jhc/IO.hs lib/jhc/Jhc/Int.hs lib/jhc/Jhc/Inst/Enum.hs \ lib/jhc/Prelude/IO.hs lib/jhc/Jhc/Order.hs lib/jhc/System/C/Stdio.hs lib/jhc/Foreign/C/String.hs lib/jhc/Jhc/Show.hs \ hunk ./library_deps.make 17 lib/jhc/Jhc/Monad.hs lib/jhc/System/IO/Unsafe.hs lib/jhc/System/Mem/StableName.hs lib/jhc/Jhc/Inst/Read.hs lib/jhc/Jhc/Maybe.hs \ jhc-prim-1.0.hl ./jhc $(LIB_OPTIONS) --build-hl $< -o $@ -jhc-prim-1.0.hl: lib/jhc-prim/jhc-prim.yaml lib/jhc-prim/Jhc/Prim/IO.hs lib/jhc-prim/Jhc/Prim/Prim.hs lib/jhc-prim/Jhc/Prim/Array.hs lib/jhc-prim/Jhc/Prim/Wrapper.hs \ - lib/jhc-prim/Jhc/Prim/Rts.hs lib/jhc-prim/Jhc/Prim/Bits.hs +haskell-extras-0.8.0.hl: lib/haskell-extras/haskell-extras.yaml.m4 lib/haskell-extras/System/Info.hs lib/haskell-extras/Data/Int.hs lib/haskell-extras/Debug/Trace.hs lib/haskell-extras/Data/Array.hs \ + lib/haskell-extras/Data/Typeable.hs lib/haskell-extras/Text/Printf.hs lib/haskell-extras/System/Directory.hs lib/haskell-extras/Data/Word.hs lib/haskell-extras/Data/Maybe.hs \ + lib/haskell-extras/System/IO/Error.hs lib/haskell-extras/System/IO/Binary.hs lib/haskell-extras/System/CPUTime.hs lib/haskell-extras/System/IO/Pipe.hs lib/haskell-extras/Control/Monad/Instances.hs \ + lib/haskell-extras/Foreign/Marshal/Error.hs lib/haskell-extras/System/Exit.hs lib/haskell-extras/System/Environment.hs lib/haskell-extras/Data/Array/IO.hs lib/haskell-extras/Data/Char.hs \ + lib/haskell-extras/Data/Version.hs lib/haskell-extras/Text/Show/Functions.hs lib/haskell-extras/Control/Monad.hs lib/haskell-extras/Data/Functor.hs lib/haskell-extras/Data/Monoid.hs \ + lib/haskell-extras/System/Locale.hs lib/haskell-extras/System/IO.hs lib/haskell-extras/Foreign/Marshal/Pool.hs lib/haskell-extras/Prelude.hs lib/haskell-extras/Control/Monad/Fix.hs \ + lib/haskell-extras/Data/Complex.hs lib/haskell-extras/Data/IORef.hs lib/haskell-extras/System/Console/GetOpt.hs lib/haskell-extras/Data/List.hs lib/haskell-extras/System/Cmd.hs \ + lib/haskell-extras/System/Random.hs lib/haskell-extras/Data/Unicode.hs lib/haskell-extras/Foreign/ForeignPtr.hs lib/haskell-extras/System/Time.hs lib/haskell-extras/Control/Exception.hs \ + lib/haskell-extras/Foreign/StablePtr.hs lib/haskell-extras/Foreign/C.hs lib/haskell-extras/Data/Bits.hs lib/haskell-extras/Foreign/Marshal.hs lib/haskell-extras/Foreign.hs \ + lib/haskell-extras/Data/Array/Unboxed.hs lib/haskell-extras/Data/Function.hs lib/haskell-extras/Data/Ix.hs jhc-prim-1.0.hl jhc-1.0.hl + ./jhc $(LIB_OPTIONS) --build-hl $< -o $@ +haskell2010-0.8.0.hl: lib/haskell2010/haskell2010.yaml.m4 jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl + ./jhc $(LIB_OPTIONS) --build-hl $< -o $@ +flat-foreign-1.0.hl: lib/flat-foreign/flat-foreign.yaml lib/flat-foreign/StablePtr.hs lib/flat-foreign/MarshalAlloc.hs lib/flat-foreign/CForeign.hs lib/flat-foreign/Storable.hs \ + lib/flat-foreign/Ptr.hs lib/flat-foreign/MarshalArray.hs lib/flat-foreign/Int.hs lib/flat-foreign/CString.hs lib/flat-foreign/Word.hs \ + lib/flat-foreign/CError.hs lib/flat-foreign/CTypes.hs lib/flat-foreign/MarshalError.hs lib/flat-foreign/MarshalUtils.hs lib/flat-foreign/Bits.hs \ + lib/flat-foreign/ForeignPtr.hs jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl + ./jhc $(LIB_OPTIONS) --build-hl $< -o $@ +haskell98-1.0.hl: lib/haskell98/haskell98.yaml lib/haskell98/System.hs lib/haskell98/List.hs lib/haskell98/Time.hs lib/haskell98/Array.hs \ + lib/haskell98/Random.hs lib/haskell98/Complex.hs lib/haskell98/Locale.hs lib/haskell98/CPUTime.hs lib/haskell98/Ratio.hs \ + lib/haskell98/Monad.hs lib/haskell98/Directory.hs lib/haskell98/IO.hs lib/haskell98/Ix.hs lib/haskell98/Char.hs \ + lib/haskell98/Maybe.hs jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl ./jhc $(LIB_OPTIONS) --build-hl $< -o $@ hunk ./library_deps.make 40 -haskell2010-0.8.0.hl: lib/haskell2010/haskell2010.yaml.m4 jhc-prim-1.0.hl base-1.0.hl jhc-1.0.hl +applicative-1.0.hl: lib/applicative/applicative.yaml 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 jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl ./jhc $(LIB_OPTIONS) --build-hl $< -o $@ hunk ./library_deps.make 43 -JHC_LIBS = base-1.0.hl applicative-1.0.hl flat-foreign-1.0.hl haskell98-1.0.hl jhc-1.0.hl \ - jhc-prim-1.0.hl haskell2010-0.8.0.hl -containers-0.3.0.0.hl: lib/ext/containers.cabal jhc-prim-1.0.hl applicative-1.0.hl base-1.0.hl jhc-1.0.hl \ +JHC_LIBS = jhc-prim-1.0.hl jhc-1.0.hl haskell-extras-0.8.0.hl haskell2010-0.8.0.hl flat-foreign-1.0.hl \ + haskell98-1.0.hl applicative-1.0.hl +containers-0.3.0.0.hl: lib/ext/containers.cabal jhc-prim-1.0.hl applicative-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl \ lib/ext/containers.patch perl utils/build_extlibs.prl $< hunk ./library_deps.make 48 -Diff-0.1.2.hl: lib/ext/Diff.cabal jhc-prim-1.0.hl base-1.0.hl jhc-1.0.hl +Diff-0.1.2.hl: lib/ext/Diff.cabal jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 50 -html-1.0.1.2.hl: lib/ext/html.cabal jhc-prim-1.0.hl base-1.0.hl jhc-1.0.hl +html-1.0.1.2.hl: lib/ext/html.cabal jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 52 -HUnit-1.2.2.1.hl: lib/ext/HUnit.cabal jhc-prim-1.0.hl base-1.0.hl jhc-1.0.hl +HUnit-1.2.2.1.hl: lib/ext/HUnit.cabal jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 54 -parsec-2.1.0.1.hl: lib/ext/parsec.cabal jhc-prim-1.0.hl base-1.0.hl jhc-1.0.hl +parsec-2.1.0.1.hl: lib/ext/parsec.cabal jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 56 -pretty-1.0.1.1.hl: lib/ext/pretty.cabal jhc-prim-1.0.hl base-1.0.hl jhc-1.0.hl +pretty-1.0.1.1.hl: lib/ext/pretty.cabal jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 58 -QuickCheck-1.2.0.0.hl: lib/ext/QuickCheck.cabal jhc-prim-1.0.hl base-1.0.hl jhc-1.0.hl +QuickCheck-1.2.0.0.hl: lib/ext/QuickCheck.cabal jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 60 -safe-0.2.hl: lib/ext/safe.cabal jhc-prim-1.0.hl base-1.0.hl jhc-1.0.hl +safe-0.2.hl: lib/ext/safe.cabal jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 62 -smallcheck-0.4.hl: lib/ext/smallcheck.cabal jhc-prim-1.0.hl haskell98-1.0.hl base-1.0.hl jhc-1.0.hl \ +smallcheck-0.4.hl: lib/ext/smallcheck.cabal jhc-prim-1.0.hl haskell98-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl \ lib/ext/smallcheck.patch perl utils/build_extlibs.prl $< hunk ./library_deps.make 65 -xhtml-3000.2.0.1.hl: lib/ext/xhtml.cabal jhc-prim-1.0.hl base-1.0.hl jhc-1.0.hl +xhtml-3000.2.0.1.hl: lib/ext/xhtml.cabal jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 67 -transformers-0.2.1.0.hl: lib/ext/transformers.cabal jhc-prim-1.0.hl applicative-1.0.hl base-1.0.hl jhc-1.0.hl +transformers-0.2.1.0.hl: lib/ext/transformers.cabal jhc-prim-1.0.hl applicative-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 69 -filepath-1.2.0.0.hl: lib/ext/filepath.cabal jhc-prim-1.0.hl base-1.0.hl jhc-1.0.hl +filepath-1.2.0.0.hl: lib/ext/filepath.cabal jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 71 -deepseq-1.1.0.2.hl: lib/ext/deepseq.cabal jhc-prim-1.0.hl applicative-1.0.hl containers-0.3.0.0.hl base-1.0.hl \ +deepseq-1.1.0.2.hl: lib/ext/deepseq.cabal jhc-prim-1.0.hl applicative-1.0.hl containers-0.3.0.0.hl haskell-extras-0.8.0.hl \ jhc-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 74 -bytestring-0.9.2.0.hl: lib/ext/bytestring.yaml jhc-prim-1.0.hl base-1.0.hl jhc-1.0.hl lib/ext/bytestring.patch +bytestring-0.9.2.0.hl: lib/ext/bytestring.yaml jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl lib/ext/bytestring.patch perl utils/build_extlibs.prl $< JHC_EXT_LIBS = containers-0.3.0.0.hl Diff-0.1.2.hl html-1.0.1.2.hl HUnit-1.2.2.1.hl parsec-2.1.0.1.hl \ pretty-1.0.1.1.hl QuickCheck-1.2.0.0.hl safe-0.2.hl smallcheck-0.4.hl xhtml-3000.2.0.1.hl \ hunk ./library_deps.make 78 - transformers-0.2.1.0.hl filepath-1.2.0.0.hl deepseq-1.1.0.2.hl bytestring-0.9.2.0.hl + transformers-0.2.1.0.hl filepath-1.2.0.0.hl deepseq-1.1.0.2.hl [clean up configure.ac a little John Meacham <[email protected]>**20120307085227 Ignore-this: 255bde23aa451530727987934e68787 ] hunk ./Makefile.am 51 -I$(srcdir)/src PACKAGES= -hide-all-packages -package base -package fgl -package regex-compat -package random -package array -package directory \ - -package bytestring -package binary -package pretty -package mtl -package containers \ - -package unix -package utf8-string -package zlib -package HsSyck \ + -package bytestring -package binary -package mtl -package containers \ + -package unix -package utf8-string -package zlib -package HsSyck \ -package filepath -package process GHCLANG= -XTypeFamilies -XViewPatterns -XUndecidableInstances -XOverlappingInstances \ hunk ./configure.ac 44 GHCFLAGS="-hide-all-packages -package base" GHC_CHECK_MODULE(Data.Generics.Instances,syb,,,[]) GHC_CHECK_MODULE(System.Time,old-time,,,[]) +GHC_CHECK_MODULE(Text.PrettyPrint.HughesPJ,pretty,,,[]) GHC_CHECK_MODULE(System.Console.Readline,readline,,,[ GHC_CHECK_MODULE(System.Console.Editline.Readline,editline,, GHCFLAGS="$GHCFLAGS -DUSE_EDITLINE" hunk ./configure.ac 54 ]) ]) -GHC_CHECK_MODULE(System,,,[] ,[ GHCINC="$GHCINC -icompat/haskell98"]) +GHC_CHECK_MODULE(System,base,,[] ,[ GHCINC="$GHCINC -icompat/haskell98"]) AC_PROGRAM_REQUIRE(hsc2hs,hsc2hs, [ --with-hsc2hs=<hsc2hs location> Specify location of hsc2hs.]) if test -z "$HSC2HS"; then hunk ./configure.ac 62 exit 1 fi -GHCFLAGS="$GHCFLAGS -package pretty" TRY_COMPILE_GHC([ import Text.PrettyPrint.HughesPJ import Data.Monoid [update library dependencies John Meacham <[email protected]>**20120307100809 Ignore-this: 8a7d092c6112d7a5590d2adaec9c271a ] hunk ./lib/Test/QuickCheck.hs 1 ------------------------------------------------------------------------------ --- | --- Module : Test.QuickCheck --- Copyright : (c) Koen Claessen, John Hughes 2001 --- License : BSD-style (see the file libraries/base/LICENSE) --- --- Maintainer : [email protected] --- Stability : experimental --- Portability : portable --- --- QuickCheck v.0.2 --- DRAFT implementation; last update 000104. --- Koen Claessen, John Hughes. --- This file represents work in progress, and might change at a later date. --- ------------------------------------------------------------------------------ - -module Test.QuickCheck - -- testing functions - ( quickCheck -- :: prop -> IO () - , verboseCheck -- :: prop -> IO () - , test -- :: prop -> IO () -- = quickCheck - - , Config(Config, configMaxTest, configMaxFail, configSize, configEvery) -- :: * - , defaultConfig -- :: Config - , check -- :: Config -> prop -> IO () - - -- property combinators - , forAll -- :: Gen a -> (a -> prop) -> prop - , (==>) -- :: Bool -> prop -> prop - - -- gathering test-case information - , label -- :: String -> prop -> prop - , collect -- :: Show a => a -> prop -> prop - , classify -- :: Bool -> String -> prop -> prop - , trivial -- :: Bool -> prop -> prop - - -- generator combinators - , Gen -- :: * -> * ; Functor, Monad - - , elements -- :: [a] -> Gen a - , two -- :: Gen a -> Gen (a,a) - , three -- :: Gen a -> Gen (a,a,a) - , four -- :: Gen a -> Gen (a,a,a,a) - - , sized -- :: (Int -> Gen a) -> Gen a - , resize -- :: Int -> Gen a -> Gen a - , choose -- :: Random a => (a, a) -> Gen a - , oneof -- :: [Gen a] -> Gen a - , frequency -- :: [(Int, Gen a)] -> Gen a - - , vector -- :: Arbitrary a => Int -> Gen [a] - - -- default generators - , Arbitrary(arbitrary,coarbitrary) -- :: class - , rand -- :: Gen StdGen - , promote -- :: (a -> Gen b) -> Gen (a -> b) - , variant -- :: Int -> Gen a -> Gen a - - -- testable - , Testable(property) -- :: class - , Property -- :: * - - -- For writing your own driver - , Result(Result,ok,arguments) -- :: data - , generate -- :: Int -> StdGen -> Gen a -> a - , evaluate -- :: Testable a => a -> Gen Result - ) - where - -import Prelude - -import Random -import List( group, sort, intersperse ) -import Monad( liftM2, liftM3, liftM4 ) - -infixr 0 ==> -infix 1 `classify` - --------------------------------------------------------------------- --- Generator - -newtype Gen a - = Gen (Int -> StdGen -> a) - -sized :: (Int -> Gen a) -> Gen a -sized fgen = Gen (\n r -> let Gen m = fgen n in m n r) - -resize :: Int -> Gen a -> Gen a -resize n (Gen m) = Gen (\_ r -> m n r) - -rand :: Gen StdGen -rand = Gen (\n r -> r) - -promote :: (a -> Gen b) -> Gen (a -> b) -promote f = Gen (\n r -> \a -> let Gen m = f a in m n r) - -variant :: Int -> Gen a -> Gen a -variant v (Gen m) = Gen (\n r -> m n (rands r !! (v+1))) - where - rands r0 = r1 : rands r2 where (r1, r2) = split r0 - -generate :: Int -> StdGen -> Gen a -> a -generate n rnd (Gen m) = m size rnd' - where - (size, rnd') = randomR (0, n) rnd - -instance Functor Gen where - fmap f m = m >>= return . f - -instance Monad Gen where - return a = Gen (\n r -> a) - Gen m >>= k = - Gen (\n r0 -> let (r1,r2) = split r0 - Gen m' = k (m n r1) - in m' n r2) - --- derived - -choose :: Random a => (a, a) -> Gen a -choose bounds = (fst . randomR bounds) `fmap` rand - -elements :: [a] -> Gen a -elements xs = (xs !!) `fmap` choose (0, length xs - 1) - -vector :: Arbitrary a => Int -> Gen [a] -vector n = sequence [ arbitrary | i <- [1..n] ] - -oneof :: [Gen a] -> Gen a -oneof gens = elements gens >>= id - -frequency :: [(Int, Gen a)] -> Gen a -frequency xs = choose (1, tot) >>= (`pick` xs) - where - tot = sum (map fst xs) - - pick n ((k,x):xs) - | n <= k = x - | otherwise = pick (n-k) xs - --- general monadic - -two :: Monad m => m a -> m (a, a) -two m = liftM2 (,) m m - -three :: Monad m => m a -> m (a, a, a) -three m = liftM3 (,,) m m m - -four :: Monad m => m a -> m (a, a, a, a) -four m = liftM4 (,,,) m m m m - --------------------------------------------------------------------- --- Arbitrary - -class Arbitrary a where - arbitrary :: Gen a - coarbitrary :: a -> Gen b -> Gen b - -instance Arbitrary () where - arbitrary = return () - coarbitrary _ = variant 0 - -instance Arbitrary Bool where - arbitrary = elements [True, False] - coarbitrary b = if b then variant 0 else variant 1 - -instance Arbitrary Int where - arbitrary = sized $ \n -> choose (-n,n) - coarbitrary n = variant (if n >= 0 then 2*n else 2*(-n) + 1) - -instance Arbitrary Integer where - arbitrary = sized $ \n -> choose (-fromIntegral n,fromIntegral n) - coarbitrary n = variant (fromInteger (if n >= 0 then 2*n else 2*(-n) + 1)) - -instance Arbitrary Float where - arbitrary = liftM3 fraction arbitrary arbitrary arbitrary - coarbitrary x = coarbitrary (decodeFloat x) - -instance Arbitrary Double where - arbitrary = liftM3 fraction arbitrary arbitrary arbitrary - coarbitrary x = coarbitrary (decodeFloat x) - -fraction a b c = fromInteger a + (fromInteger b / (abs (fromInteger c) + 1)) - -instance (Arbitrary a, Arbitrary b) => Arbitrary (a, b) where - arbitrary = liftM2 (,) arbitrary arbitrary - coarbitrary (a, b) = coarbitrary a . coarbitrary b - -instance (Arbitrary a, Arbitrary b, Arbitrary c) => Arbitrary (a, b, c) where - arbitrary = liftM3 (,,) arbitrary arbitrary arbitrary - coarbitrary (a, b, c) = coarbitrary a . coarbitrary b . coarbitrary c - -instance (Arbitrary a, Arbitrary b, Arbitrary c, Arbitrary d) - => Arbitrary (a, b, c, d) - where - arbitrary = liftM4 (,,,) arbitrary arbitrary arbitrary arbitrary - coarbitrary (a, b, c, d) = - coarbitrary a . coarbitrary b . coarbitrary c . coarbitrary d - -instance Arbitrary a => Arbitrary [a] where - arbitrary = sized (\n -> choose (0,n) >>= vector) - coarbitrary [] = variant 0 - coarbitrary (a:as) = coarbitrary a . variant 1 . coarbitrary as - -instance (Arbitrary a, Arbitrary b) => Arbitrary (a -> b) where - arbitrary = promote (`coarbitrary` arbitrary) - coarbitrary f gen = arbitrary >>= ((`coarbitrary` gen) . f) - --------------------------------------------------------------------- --- Testable - -data Result - = Result { ok :: Maybe Bool, stamp :: [String], arguments :: [String] } - -nothing :: Result -nothing = Result{ ok = Nothing, stamp = [], arguments = [] } - -newtype Property - = Prop (Gen Result) - -result :: Result -> Property -result res = Prop (return res) - -evaluate :: Testable a => a -> Gen Result -evaluate a = gen where Prop gen = property a - -class Testable a where - property :: a -> Property - -instance Testable () where - property _ = result nothing - -instance Testable Bool where - property b = result (nothing{ ok = Just b }) - -instance Testable Result where - property res = result res - -instance Testable Property where - property prop = prop - -instance (Arbitrary a, Show a, Testable b) => Testable (a -> b) where - property f = forAll arbitrary f - -forAll :: (Show a, Testable b) => Gen a -> (a -> b) -> Property -forAll gen body = Prop $ - do a <- gen - res <- evaluate (body a) - return (argument a res) - where - argument a res = res{ arguments = show a : arguments res } - -(==>) :: Testable a => Bool -> a -> Property -True ==> a = property a -False ==> a = property () - -label :: Testable a => String -> a -> Property -label s a = Prop (add `fmap` evaluate a) - where - add res = res{ stamp = s : stamp res } - -classify :: Testable a => Bool -> String -> a -> Property -classify True name = label name -classify False _ = property - -trivial :: Testable a => Bool -> a -> Property -trivial = (`classify` "trivial") - -collect :: (Show a, Testable b) => a -> b -> Property -collect v = label (show v) - --------------------------------------------------------------------- --- Testing - -data Config = Config - { configMaxTest :: Int - , configMaxFail :: Int - , configSize :: Int -> Int - , configEvery :: Int -> [String] -> String - } - -quick :: Config -quick = Config - { configMaxTest = 100 - , configMaxFail = 1000 - , configSize = (+ 3) . (`div` 2) - , configEvery = \n args -> let s = show n in s ++ [ '\b' | _ <- s ] - } - -verbose :: Config -verbose = quick - { configEvery = \n args -> show n ++ ":\n" ++ unlines args - } - -defaultConfig :: Config -defaultConfig = quick - -test, quickCheck, verboseCheck :: Testable a => a -> IO () -test = check quick -quickCheck = check quick -verboseCheck = check verbose - -check :: Testable a => Config -> a -> IO () -check config a = - do rnd <- newStdGen - tests config (evaluate a) rnd 0 0 [] - -tests :: Config -> Gen Result -> StdGen -> Int -> Int -> [[String]] -> IO () -tests config gen rnd0 ntest nfail stamps - | ntest == configMaxTest config = do done "OK, passed" ntest stamps - | nfail == configMaxFail config = do done "Arguments exhausted after" ntest stamps - | otherwise = - do putStr (configEvery config ntest (arguments result)) - case ok result of - Nothing -> - tests config gen rnd1 ntest (nfail+1) stamps - Just True -> - tests config gen rnd1 (ntest+1) nfail (stamp result:stamps) - Just False -> - putStr ( "Falsifiable, after " - ++ show ntest - ++ " tests:\n" - ++ unlines (arguments result) - ) - where - result = generate (configSize config ntest) rnd2 gen - (rnd1,rnd2) = split rnd0 - -done :: String -> Int -> [[String]] -> IO () -done mesg ntest stamps = - do putStr ( mesg ++ " " ++ show ntest ++ " tests" ++ table ) - where - table = display - . map entry - . reverse - . sort - . map pairLength - . group - . sort - . filter (not . null) - $ stamps - - display [] = ".\n" - display [x] = " (" ++ x ++ ").\n" - display xs = ".\n" ++ unlines (map (++ ".") xs) - - pairLength xss@(xs:_) = (length xss, xs) - entry (n, xs) = percentage n ntest - ++ " " - ++ concat (intersperse ", " xs) - - percentage n m = show ((100 * n) `div` m) ++ "%" - --------------------------------------------------------------------- --- the end. rmfile ./lib/Test/QuickCheck.hs hunk ./lib/Test/QuickCheck/Batch.hs 1 ------------------------------------------------------------------------------ --- | --- Module : Test.QuickCheck.Batch --- Copyright : (c) Andy Gill 2001 --- License : BSD-style (see the file libraries/base/LICENSE) --- --- Maintainer : [email protected] --- Stability : experimental --- Portability : non-portable (uses Control.Exception, Control.Concurrent) --- --- This is a batch driver for running QuickCheck (GHC only). --- ------------------------------------------------------------------------------ - -{- - - Here is the key for reading the output. - - . = test successful - - ? = every example passed, but quickcheck did not find enough good examples - - * = test aborted for some reason (out-of-time, bottom, etc) - - # = test failed outright - - - - We also provide the dangerous "isBottom". - - - - Here is is an example of use for sorting: - - - - testOptions :: TestOptions - - testOptions = TestOptions - - { no_of_tests = 100 -- number of tests to run - - , length_of_tests = 1 -- 1 second max per check - - -- where a check == n tests - - , debug_tests = False -- True => debugging info - - } - - - - prop_sort1 xs = sort xs == sortBy compare xs - - where types = (xs :: [OrdALPHA]) - - prop_sort2 xs = - - (not (null xs)) ==> - - (head (sort xs) == minimum xs) - - where types = (xs :: [OrdALPHA]) - - prop_sort3 xs = (not (null xs)) ==> - - last (sort xs) == maximum xs - - where types = (xs :: [OrdALPHA]) - - prop_sort4 xs ys = - - (not (null xs)) ==> - - (not (null ys)) ==> - - (head (sort (xs ++ ys)) == min (minimum xs) (minimum ys)) - - where types = (xs :: [OrdALPHA], ys :: [OrdALPHA]) - - prop_sort6 xs ys = - - (not (null xs)) ==> - - (not (null ys)) ==> - - (last (sort (xs ++ ys)) == max (maximum xs) (maximum ys)) - - where types = (xs :: [OrdALPHA], ys :: [OrdALPHA]) - - prop_sort5 xs ys = - - (not (null xs)) ==> - - (not (null ys)) ==> - - (head (sort (xs ++ ys)) == max (maximum xs) (maximum ys)) - - where types = (xs :: [OrdALPHA], ys :: [OrdALPHA]) - - - - test_sort = runTests "sort" testOptions - - [ run prop_sort1 - - , run prop_sort2 - - , run prop_sort3 - - , run prop_sort4 - - , run prop_sort5 - - ] - - - - When run, this gives - - Main> test_sort - - sort : ..... - - - - You would tie together all the test_* functions - - into one test_everything, on a per module basis. - - - - Examples of use of bottom and isBottom: - - {- test for abort -} - - prop_head2 = isBottom (head []) - - {- test for strictness -} - - prop_head3 = isBottom (head bottom) - -} - -module Test.QuickCheck.Batch - ( run -- :: Testable a => a -> TestOptions -> IO TestResult - , runTests -- :: String -> TestOptions -> - -- [TestOptions -> IO TestResult] -> IO () - , defOpt -- :: TestOptions - , TestOptions (..) - , TestResult (..) - , isBottom -- :: a -> Bool - , bottom -- :: a {- _|_ -} - ) where - -import Prelude - -import System.Random -import Control.Concurrent -import Control.Exception hiding (catch, evaluate) -import qualified Control.Exception as Exception (catch, evaluate) -import Test.QuickCheck -import System.IO.Unsafe - -data TestOptions = TestOptions { - no_of_tests :: Int, - length_of_tests :: Int, - debug_tests :: Bool } - -defOpt :: TestOptions -defOpt = TestOptions - { no_of_tests = 100 - , length_of_tests = 1 - , debug_tests = False - } - -data TestResult = TestOk String Int [[String]] - | TestExausted String Int [[String]] - | TestFailed [String] Int - | TestAborted Exception - -tests :: Config -> Gen Result -> StdGen -> Int -> Int -> [[String]] - -> IO TestResult -tests config gen rnd0 ntest nfail stamps - | ntest == configMaxTest config = return (TestOk "OK, passed" ntest stamps) - | nfail == configMaxFail config = return (TestExausted "Arguments exhausted after" - ntest stamps) - | otherwise = - do (if not (null txt) then putStr txt else return ()) - case ok result of - Nothing -> - tests config gen rnd1 ntest (nfail+1) stamps - Just True -> - tests config gen rnd1 (ntest+1) nfail (stamp result:stamps) - Just False -> - do return (TestFailed (arguments result) ntest) - where - txt = configEvery config ntest (arguments result) - result = generate (configSize config ntest) rnd2 gen - (rnd1,rnd2) = split rnd0 - -batch n v = Config - { configMaxTest = n - , configMaxFail = n * 10 - , configSize = (+ 3) . (`div` 2) - , configEvery = \n args -> if v then show n ++ ":\n" ++ unlines args else "" - } - --- Here we use the same random number each time, --- so we get reproducable results! -run :: Testable a => a -> TestOptions -> IO TestResult -run a TestOptions { no_of_tests = n, length_of_tests = len, debug_tests = debug } = - do me <- myThreadId - ready <- newEmptyMVar - r <- if len == 0 - then try theTest - else try (do - -- This waits a bit, then raises an exception in its parent, - -- saying, right, you've had long enough! - watcher <- forkIO (Exception.catch - (do threadDelay (len * 1000 * 1000) - takeMVar ready - throwTo me NonTermination - return ()) - (\ _ -> return ())) - -- Tell the watcher we are starting... - putMVar ready () - -- This is cheating, because possibly some of the internal message - -- inside "r" might be _|_, but anyway.... - r <- theTest - -- Now, we turn off the watcher. - -- Ignored if the watcher is already dead, - -- (unless some unlucky thread picks up the same name) - killThread watcher - return r) - case r of - Right r -> return r - Left e -> return (TestAborted e) - where - theTest = tests (batch n debug) (evaluate a) (mkStdGen 0) 0 0 [] - --- Prints a one line summary of various tests with common theme -runTests :: String -> TestOptions -> [TestOptions -> IO TestResult] -> IO () -runTests name scale actions = - do putStr (rjustify 25 name ++ " : ") - f <- tr 1 actions [] 0 - mapM fa f - return () - where - rjustify n s = replicate (max 0 (n - length s)) ' ' ++ s - - tr n [] xs c = do - putStr (rjustify (max 0 (35-n)) " (" ++ show c ++ ")\n") - return xs - tr n (action:actions) others c = - do r <- action scale - case r of - (TestOk _ m _) - -> do { putStr "." ; - tr (n+1) actions others (c+m) } - (TestExausted s m ss) - - -> do { putStr "?" ; - tr (n+1) actions others (c+m) } - (TestAborted e) - -> do { putStr "*" ; - tr (n+1) actions others c } - (TestFailed f num) - -> do { putStr "#" ; - tr (n+1) actions ((f,n,num):others) (c+num) } - - fa :: ([String],Int,Int) -> IO () - fa (f,n,no) = - do putStr "\n" - putStr (" ** test " - ++ show (n :: Int) - ++ " of " - ++ name - ++ " failed with the binding(s)\n") - sequence_ [putStr (" ** " ++ v ++ "\n") - | v <- f ] - putStr "\n" - --- Look out behind you! These can be misused badly. --- However, in the context of a batch tester, can also be very useful. - -bottom :: a -bottom = error "_|_" - -isBottom :: a -> Bool -isBottom a = unsafePerformIO (do - a' <- try (Exception.evaluate a) - case a' of - Left _ -> return True - Right _ -> return False) rmfile ./lib/Test/QuickCheck/Batch.hs hunk ./lib/Test/QuickCheck/Poly.hs 1 ------------------------------------------------------------------------------ --- | --- Module : Test.QuickCheck.Poly --- Copyright : (c) Andy Gill 2001 --- License : BSD-style (see the file libraries/base/LICENSE) --- --- Maintainer : [email protected] --- Stability : experimental --- Portability : portable --- --- This is an attempt to emulate polymorphic types for the --- purposes of testing by using abstract monomorphic types. --- --- It is likely that future versions of QuickCheck will --- include some polymorphic emulation testing facility, --- but this module can be used for now. --- ------------------------------------------------------------------------------ - -module Test.QuickCheck.Poly - ( ALPHA - , BETA - , GAMMA - , OrdALPHA - , OrdBETA - , OrdGAMMA - ) where - -import Prelude - -import Test.QuickCheck -import Test.QuickCheck.Utils - -{- This is the basic pseudo-polymorphic object. - - The idea is you can't cheat, and use the integer - - directly, but need to use the abstraction. - - - - We use phantom types (ref: Domain Specific Embedded Compilers, - - Daan Leijen & Erik Meijer, 2nd Conference of Domain Specific - - Languages, Austin, TX, 1999) - -} - -newtype Poly a = Poly Int - -instance Show (Poly a) where - show (Poly a) = "_" ++ show a - -instance Arbitrary (Poly a) where - arbitrary = sized $ \n -> (choose (1,n) >>= return . Poly) - coarbitrary (Poly n) = variant (if n >= 0 then 2*n else 2*(-n) + 1) - -instance Eq a => Eq (Poly a) where - (Poly a) == (Poly b) = a == b - -instance Ord a => Ord (Poly a) where - (Poly a) `compare` (Poly b) = a `compare` b - -{- - - These are what we export, our pseudo-polymorphic instances. - -} - -type ALPHA = Poly ALPHA_ -data ALPHA_ = ALPHA_ deriving (Eq) - -type BETA = Poly BETA_ -data BETA_ = BETA_ deriving (Eq) - -type GAMMA = Poly GAMMA_ -data GAMMA_ = GAMMA_ deriving (Eq) - -type OrdALPHA = Poly OrdALPHA_ -data OrdALPHA_ = OrdALPHA_ deriving (Eq,Ord) - -type OrdBETA = Poly OrdBETA_ -data OrdBETA_ = OrdBETA_ deriving (Eq,Ord) - -type OrdGAMMA = Poly OrdGAMMA_ -data OrdGAMMA_ = OrdGAMMA_ deriving (Eq,Ord) - -{- - - This is a condition on OrdALPHA, OrdBETA, etc, itself. - - It states that all OrdALPHA objects obey total ordering. - -} - -prop_OrdPOLY x y = isTotalOrder x y - where types = (x :: OrdALPHA, y :: OrdALPHA) rmfile ./lib/Test/QuickCheck/Poly.hs hunk ./lib/Test/QuickCheck/Utils.hs 1 ------------------------------------------------------------------------------ --- | --- Module : Test.QuickCheck.Utils --- Copyright : (c) Andy Gill 2001 --- License : BSD-style (see the file libraries/base/LICENSE) --- --- Maintainer : [email protected] --- Stability : experimental --- Portability : portable --- --- These are some general purpose utilities for use with QuickCheck. --- ------------------------------------------------------------------------------ - -module Test.QuickCheck.Utils - ( isAssociativeBy - , isAssociative - , isCommutableBy - , isCommutable - , isTotalOrder - ) where - -import Prelude - -import Test.QuickCheck - -isAssociativeBy :: (Show a,Testable prop) - => (a -> a -> prop) -> Gen a -> (a -> a -> a) -> Property -isAssociativeBy (===) src (**) = - forAll src $ \ a -> - forAll src $ \ b -> - forAll src $ \ c -> - ((a ** b) ** c) === (a ** (b ** c)) - -isAssociative :: (Arbitrary a,Show a,Eq a) => (a -> a -> a) -> Property -isAssociative = isAssociativeBy (==) arbitrary - -isCommutableBy :: (Show a,Testable prop) - => (b -> b -> prop) -> Gen a -> (a -> a -> b) -> Property -isCommutableBy (===) src (**) = - forAll src $ \ a -> - forAll src $ \ b -> - (a ** b) === (b ** a) - -isCommutable :: (Arbitrary a,Show a,Eq b) => (a -> a -> b) -> Property -isCommutable = isCommutableBy (==) arbitrary - -isTotalOrder :: (Arbitrary a,Show a,Ord a) => a -> a -> Property -isTotalOrder x y = - classify (x > y) "less than" $ - classify (x == y) "equals" $ - classify (x < y) "greater than" $ - x < y || x == y || x > y rmfile ./lib/Test/QuickCheck/Utils.hs rmdir ./lib/Test/QuickCheck rmdir ./lib/Test hunk ./lib/flat-foreign/flat-foreign.yaml 5 Version: 1.0 hs-source-dir: . build-depends: [haskell2010] +options: --noauto exposed-modules: [ Bits, CError, CForeign, CString, CTypes, ForeignPtr, Int, MarshalAlloc, MarshalArray, MarshalError, MarshalUtils, Ptr, StablePtr, Storable, Word ] hunk ./library_deps.make 17 lib/jhc/Jhc/Monad.hs lib/jhc/System/IO/Unsafe.hs lib/jhc/System/Mem/StableName.hs lib/jhc/Jhc/Inst/Read.hs lib/jhc/Jhc/Maybe.hs \ jhc-prim-1.0.hl ./jhc $(LIB_OPTIONS) --build-hl $< -o $@ -haskell-extras-0.8.0.hl: lib/haskell-extras/haskell-extras.yaml.m4 lib/haskell-extras/System/Info.hs lib/haskell-extras/Data/Int.hs lib/haskell-extras/Debug/Trace.hs lib/haskell-extras/Data/Array.hs \ +haskell-extras-0.8.1.hl: lib/haskell-extras/haskell-extras.yaml.m4 lib/haskell-extras/System/Info.hs lib/haskell-extras/Data/Int.hs lib/haskell-extras/Debug/Trace.hs lib/haskell-extras/Data/Array.hs \ lib/haskell-extras/Data/Typeable.hs lib/haskell-extras/Text/Printf.hs lib/haskell-extras/System/Directory.hs lib/haskell-extras/Data/Word.hs lib/haskell-extras/Data/Maybe.hs \ lib/haskell-extras/System/IO/Error.hs lib/haskell-extras/System/IO/Binary.hs lib/haskell-extras/System/CPUTime.hs lib/haskell-extras/System/IO/Pipe.hs lib/haskell-extras/Control/Monad/Instances.hs \ lib/haskell-extras/Foreign/Marshal/Error.hs lib/haskell-extras/System/Exit.hs lib/haskell-extras/System/Environment.hs lib/haskell-extras/Data/Array/IO.hs lib/haskell-extras/Data/Char.hs \ hunk ./library_deps.make 28 lib/haskell-extras/Foreign/StablePtr.hs lib/haskell-extras/Foreign/C.hs lib/haskell-extras/Data/Bits.hs lib/haskell-extras/Foreign/Marshal.hs lib/haskell-extras/Foreign.hs \ lib/haskell-extras/Data/Array/Unboxed.hs lib/haskell-extras/Data/Function.hs lib/haskell-extras/Data/Ix.hs jhc-prim-1.0.hl jhc-1.0.hl ./jhc $(LIB_OPTIONS) --build-hl $< -o $@ -haskell2010-0.8.0.hl: lib/haskell2010/haskell2010.yaml.m4 jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl +haskell2010-0.8.1.hl: lib/haskell2010/haskell2010.yaml.m4 haskell-extras-0.8.1.hl jhc-prim-1.0.hl jhc-1.0.hl ./jhc $(LIB_OPTIONS) --build-hl $< -o $@ flat-foreign-1.0.hl: lib/flat-foreign/flat-foreign.yaml lib/flat-foreign/StablePtr.hs lib/flat-foreign/MarshalAlloc.hs lib/flat-foreign/CForeign.hs lib/flat-foreign/Storable.hs \ lib/flat-foreign/Ptr.hs lib/flat-foreign/MarshalArray.hs lib/flat-foreign/Int.hs lib/flat-foreign/CString.hs lib/flat-foreign/Word.hs \ hunk ./library_deps.make 33 lib/flat-foreign/CError.hs lib/flat-foreign/CTypes.hs lib/flat-foreign/MarshalError.hs lib/flat-foreign/MarshalUtils.hs lib/flat-foreign/Bits.hs \ - lib/flat-foreign/ForeignPtr.hs jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl + lib/flat-foreign/ForeignPtr.hs haskell-extras-0.8.1.hl jhc-prim-1.0.hl jhc-1.0.hl ./jhc $(LIB_OPTIONS) --build-hl $< -o $@ haskell98-1.0.hl: lib/haskell98/haskell98.yaml lib/haskell98/System.hs lib/haskell98/List.hs lib/haskell98/Time.hs lib/haskell98/Array.hs \ lib/haskell98/Random.hs lib/haskell98/Complex.hs lib/haskell98/Locale.hs lib/haskell98/CPUTime.hs lib/haskell98/Ratio.hs \ hunk ./library_deps.make 38 lib/haskell98/Monad.hs lib/haskell98/Directory.hs lib/haskell98/IO.hs lib/haskell98/Ix.hs lib/haskell98/Char.hs \ - lib/haskell98/Maybe.hs jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl + lib/haskell98/Maybe.hs haskell-extras-0.8.1.hl jhc-prim-1.0.hl jhc-1.0.hl ./jhc $(LIB_OPTIONS) --build-hl $< -o $@ applicative-1.0.hl: lib/applicative/applicative.yaml lib/applicative/Control/Arrow.hs lib/applicative/Control/Applicative.hs lib/applicative/Data/Foldable.hs lib/applicative/Control/Category.hs \ hunk ./library_deps.make 41 - lib/applicative/Data/Traversable.hs jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl + lib/applicative/Data/Traversable.hs haskell-extras-0.8.1.hl jhc-prim-1.0.hl jhc-1.0.hl ./jhc $(LIB_OPTIONS) --build-hl $< -o $@ hunk ./library_deps.make 43 -JHC_LIBS = jhc-prim-1.0.hl jhc-1.0.hl haskell-extras-0.8.0.hl haskell2010-0.8.0.hl flat-foreign-1.0.hl \ +JHC_LIBS = jhc-prim-1.0.hl jhc-1.0.hl haskell-extras-0.8.1.hl haskell2010-0.8.1.hl flat-foreign-1.0.hl \ haskell98-1.0.hl applicative-1.0.hl hunk ./library_deps.make 45 -containers-0.3.0.0.hl: lib/ext/containers.cabal jhc-prim-1.0.hl applicative-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl \ +containers-0.3.0.0.hl: lib/ext/containers.cabal haskell-extras-0.8.1.hl jhc-prim-1.0.hl jhc-1.0.hl applicative-1.0.hl \ lib/ext/containers.patch perl utils/build_extlibs.prl $< hunk ./library_deps.make 48 -Diff-0.1.2.hl: lib/ext/Diff.cabal jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl +Diff-0.1.2.hl: lib/ext/Diff.cabal haskell-extras-0.8.1.hl jhc-prim-1.0.hl jhc-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 50 -html-1.0.1.2.hl: lib/ext/html.cabal jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl +html-1.0.1.2.hl: lib/ext/html.cabal haskell-extras-0.8.1.hl jhc-prim-1.0.hl jhc-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 52 -HUnit-1.2.2.1.hl: lib/ext/HUnit.cabal jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl +HUnit-1.2.2.1.hl: lib/ext/HUnit.cabal haskell-extras-0.8.1.hl jhc-prim-1.0.hl jhc-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 54 -parsec-2.1.0.1.hl: lib/ext/parsec.cabal jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl +parsec-2.1.0.1.hl: lib/ext/parsec.cabal haskell-extras-0.8.1.hl jhc-prim-1.0.hl jhc-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 56 -pretty-1.0.1.1.hl: lib/ext/pretty.cabal jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl +pretty-1.0.1.1.hl: lib/ext/pretty.cabal haskell-extras-0.8.1.hl jhc-prim-1.0.hl jhc-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 58 -QuickCheck-1.2.0.0.hl: lib/ext/QuickCheck.cabal jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl +QuickCheck-1.2.0.0.hl: lib/ext/QuickCheck.cabal haskell-extras-0.8.1.hl jhc-prim-1.0.hl jhc-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 60 -safe-0.2.hl: lib/ext/safe.cabal jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl +safe-0.2.hl: lib/ext/safe.cabal haskell-extras-0.8.1.hl jhc-prim-1.0.hl jhc-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 62 -smallcheck-0.4.hl: lib/ext/smallcheck.cabal jhc-prim-1.0.hl haskell98-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl \ +smallcheck-0.4.hl: lib/ext/smallcheck.cabal haskell-extras-0.8.1.hl haskell98-1.0.hl jhc-prim-1.0.hl jhc-1.0.hl \ lib/ext/smallcheck.patch perl utils/build_extlibs.prl $< hunk ./library_deps.make 65 -xhtml-3000.2.0.1.hl: lib/ext/xhtml.cabal jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl +xhtml-3000.2.0.1.hl: lib/ext/xhtml.cabal haskell-extras-0.8.1.hl jhc-prim-1.0.hl jhc-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 67 -transformers-0.2.1.0.hl: lib/ext/transformers.cabal jhc-prim-1.0.hl applicative-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl +transformers-0.2.1.0.hl: lib/ext/transformers.cabal haskell-extras-0.8.1.hl jhc-prim-1.0.hl jhc-1.0.hl applicative-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 69 -filepath-1.2.0.0.hl: lib/ext/filepath.cabal jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl +filepath-1.2.0.0.hl: lib/ext/filepath.cabal haskell-extras-0.8.1.hl jhc-prim-1.0.hl jhc-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 71 -deepseq-1.1.0.2.hl: lib/ext/deepseq.cabal jhc-prim-1.0.hl applicative-1.0.hl containers-0.3.0.0.hl haskell-extras-0.8.0.hl \ - jhc-1.0.hl +deepseq-1.1.0.2.hl: lib/ext/deepseq.cabal haskell-extras-0.8.1.hl jhc-prim-1.0.hl jhc-1.0.hl containers-0.3.0.0.hl \ + applicative-1.0.hl perl utils/build_extlibs.prl $< hunk ./library_deps.make 74 -bytestring-0.9.2.0.hl: lib/ext/bytestring.yaml jhc-prim-1.0.hl haskell-extras-0.8.0.hl jhc-1.0.hl lib/ext/bytestring.patch +bytestring-0.9.2.0.hl: lib/ext/bytestring.yaml haskell-extras-0.8.1.hl jhc-prim-1.0.hl jhc-1.0.hl lib/ext/bytestring.patch perl utils/build_extlibs.prl $< JHC_EXT_LIBS = containers-0.3.0.0.hl Diff-0.1.2.hl html-1.0.1.2.hl HUnit-1.2.2.1.hl parsec-2.1.0.1.hl \ pretty-1.0.1.1.hl QuickCheck-1.2.0.0.hl safe-0.2.hl smallcheck-0.4.hl xhtml-3000.2.0.1.hl \ hunk ./library_deps.make 78 - transformers-0.2.1.0.hl filepath-1.2.0.0.hl deepseq-1.1.0.2.hl + transformers-0.2.1.0.hl filepath-1.2.0.0.hl deepseq-1.1.0.2.hl hunk ./src/data/targets.ini.in 23 cflags_debug=-g cflags_nodebug=-DNDEBUG -O3 profile=false -autoload=base,haskell98 +autoload=haskell2010,haskell-extras,haskell98 ; cross compilation entries Context: [add auto-generated make rules for all libraries. John Meacham <[email protected]>**20120307055016 Ignore-this: a6febbaf42d19ca29b0541809182b93c ] [begin adding haskell2010 package John Meacham <[email protected]>**20120307035605 Ignore-this: eaae9201d70dece4f2e7bb115d295e07 ] [start using Jhc.ForeignPtr John Meacham <[email protected]>**20120307035523 Ignore-this: 4947965ba3de583014a924e498ba5367 ] [remove some files from drift_processed that no longer have DrIFT annotations John Meacham <[email protected]>**20120307020552 Ignore-this: 12c00145035104fbbf869072f3be3569 ] [make Info type ids not depend on the exact format of TypeRep, reduce size of type ids from 32 to 8 bits. John Meacham <[email protected]>**20120307014613 Ignore-this: c2243c0c28122f03a4b869c28a449d8d ] [build_extlibs.prl: correctly check the return status of getstore Roman Cheplyaka <[email protected]>**20120218071732 Ignore-this: 20165069fc8aaa1528969216f7c51435 ] [ghc 7.4 compatibility changes John Meacham <[email protected]>**20120306035643 Ignore-this: c15e182e5a05efb7a623f6386fbb9884 ] [implement finalizers in the RTS, add foreignptr rts routines, properly set saved_gc on safe ffi calls John Meacham <[email protected]>**20120221132313 Ignore-this: 1a27919674abc4a6955c245eec88aaf9 ] [add support for monolithic blocks that are plain malloced memory and can be big. John Meacham <[email protected]>**20120221032043 Ignore-this: 201ba4e67027f3336cfa5e984aefa89 ] [introduce dedicated array allocation routine. clean up jgc garbage collector John Meacham <[email protected]>**20120221011655 Ignore-this: b8e153205aeaf94af76a97b0ee9aa895 ] [make 'div' and 'mod' round to -Infinity properly John Meacham <[email protected]>**20120220094634 Ignore-this: c46b383b9a2a6a63ff44e30a8a63f376 ] [add prototype for gc_alloc John Meacham <[email protected]>**20120220050616 Ignore-this: 444b34148332459dc0e3d32b7c55d3e0 ] [fix deriving rules for read/show when it comes to labels John Meacham <[email protected]>**20120220044322 Ignore-this: 20c9c89ae066716fe3ec8eb4d37c6034 ] [disabled buggy unused transformation in type analysis pass John Meacham <[email protected]>**20120220031442 Ignore-this: 8ad84739daff7f4faff0ba251898ea1a ] [move debugging routines to rts/profile.c John Meacham <[email protected]>**20120217052015 Ignore-this: d2e087faf6e3408dc135fd905d85244b ] [fix rts unit tests John Meacham <[email protected]>**20120217035045 Ignore-this: 460d7eadde056908b668ea27d5a69aa5 ] [export gc_alloc John Meacham <[email protected]>**20120217002235 Ignore-this: dcb70b3ad303f0343147b4e1d6d413b9 ] [Makes the class deriving mechanism more robust: [email protected]**20120216214017 Ignore-this: 6d93691849d255c310b2af7098572ea8 - the names of the classes to be derived may be given qualified. - the functions from the Prelude internally used need not be in scope and won't clash with other bindings. ] [Moved Jhc.List.drop to module Jhc.Basics (since it is used in instance deriving) [email protected]**20120214222939 Ignore-this: f95d4818bad6d79d8fc7566ee0912714 ] [The typechecker now verifies that the main function has a type that can be unified with IO a. This is required by the Haskell 98 Report. [email protected]**20120211050446 Ignore-this: 8a1d8ca36929c0de0fb4357538ea6c5b Failing to do so allows both to accept invalid programs like: > main :: [()] > main = return () and to reject valid programs like: > main = return () ] [Improves the error message shown when a monomorphic pattern has a polymorphic type that cannot be defaulted. [email protected]**20120211045931 Ignore-this: efd70b7535eb0444148aabdbe96ed0b9 The previous error message seemed more like an internal error ("withDefaults.ambiguity: ...") ] [fix for building rts in different modes, profile,debug,windows John Meacham <[email protected]>**20120216201402 Ignore-this: 39b08c82b7239beaeaa6e77a3b986cd4 ] [move rest of rts into seperate c files rather than including it directly. John Meacham <[email protected]>**20120216090215 Ignore-this: d0bf719a38e306f78e182a5c0107573d ] [add pragmaExp to the lexer/parser John Meacham <[email protected]>**20120216044837 Ignore-this: 77393cb5bdd28fba526d57d26ac099b8 ] [update documentation with new extensions John Meacham <[email protected]>**20120214172359 Ignore-this: 2f412f29f20127ce3f97f200674ed8b6 ] [fixes for android John Meacham <[email protected]>**20120213150333 Ignore-this: cf6df59b212e3402ec21507410485270 ] [make += work with '-m' command line options John Meacham <[email protected]>**20120213102300 Ignore-this: 36cb4039cd34ba73d2cc973b7c00798b ] [move jhc_rts_alloc to gc_none John Meacham <[email protected]>**20120213100906 Ignore-this: 1c2e9028d72127acd5a448971266f627 ] [added rts/rts_support, cleaned up rts code. John Meacham <[email protected]>**20120213070644 Ignore-this: 79533860331fbd02057748e3d1b81666 ] [make 'Requires' a simple set, include the calling convention with the requirements. John Meacham <[email protected]>**20120212053838 Ignore-this: b7fa6f8ece79c96073d8638a876456de ] [move slub.c and jhc_jgc.* to rts directory John Meacham <[email protected]>**20120212040246 Ignore-this: a40354544b8908732c733bf8a38e7e68 ] [add unit tests for stableptr John Meacham <[email protected]>**20120212031148 Ignore-this: 17b41baeec806fb53ca2c10c6489097 ] [reorganize rts/ directory, add README for it John Meacham <[email protected]>**20120212022718 Ignore-this: c8a9f067696233958757830b62a7264b ] [add rts/test directory John Meacham <[email protected]>**20120212004706 Ignore-this: 1e6d0cb4ba809a1d6089d04704d5a60f ] [allow being explicit in export/import lists by specifying 'kind', 'class', 'type', or 'data'. add PTS rule to allow proper typing of Complex_ John Meacham <[email protected]>**20120211052157 Ignore-this: 12155286186022f896d3474a2bb5d23a ] [fix Options.hs makefile dependency John Meacham <[email protected]>**20120211024909 Ignore-this: a0742d7ce4eba41314741b6ca2d6498d ] [added user defined kind extension John Meacham <[email protected]>**20120211042248 Ignore-this: ded329985c5c81aa8c4612f7aa19559b ] [Add missing src/Options.hs to jhc tarball Sergei Trofimovich <[email protected]>**20120209065334 Ignore-this: dfc50115ee26986ab2d303a462cd29b9 ] [added mingw32-gcc to MINGW search Sergei Trofimovich <[email protected]>**20110414073938 Ignore-this: 87fa46f0e4532663a9d92930c9c38152 ] [add c-- types for complex and vector values John Meacham <[email protected]>**20120210051026 Ignore-this: 4a1e4c8cec01f73b75913622c22fa55 ] [add documentation for the multi-return ccall extension, clean up code. John Meacham <[email protected]>**20120209201351 Ignore-this: 47504b653ee9f71bde40e91959238292 ] [add extension to allow multiple return values from c functions John Meacham <[email protected]>**20120209142228 Ignore-this: 51e4a3f9ca80ff2eae7f21376f0a0992 ] [fix obscure error message for invalid instance reported by roman John Meacham <[email protected]>**20120209114221 Ignore-this: 98d60e20cb63caaebbe1269887160b9f ] [remove APrim type, use Prim directly, clean up corresponding cruft. John Meacham <[email protected]>**20120209104920 Ignore-this: 8a3fbeea72e7f52809a3468df2b8b228 ] [turn ExtType into a real abstract type John Meacham <[email protected]>**20120209100704 Ignore-this: c802a07fee0f2461cca19aa28f99ff61 ] [add 'capi' foreign function call type, simplify type of E.FromHs monad, check for more FFI related errors John Meacham <[email protected]>**20120209091611 Ignore-this: 1945b5336e6001d6da6cd63a77bd1efd ] [add md5lazyIO, check for bad paths in createTempFile John Meacham <[email protected]>**20120209091527 Ignore-this: f9e5f0dafc9615d5c5c50cb49829c5a5 ] [add foreign types, interpret Ptr when creating external C types John Meacham <[email protected]>**20120209090647 Ignore-this: c49bea3938e2edabda9d7528cfb1121a ] [Add some more exotic primitive ops, ffs,clz,ctz,byteswap,popcount,parity. John Meacham <[email protected]>**20120209070848 Ignore-this: b61b1c08db35ccad33f24536b99913df ] [jhc.spec fixes John Meacham <[email protected]>**20120209015329 Ignore-this: 64488edc34893a734f81b1c01c0b1ff4 ] [TAG 0.8.0 John Meacham <[email protected]>**20120208020026 Ignore-this: 2d0d963331a43650879ae72d81ff62e8 ] Patch bundle hash: f7e4e199ecbc418ab051f8ea4817dc393dabe059
_______________________________________________ jhc mailing list [email protected] http://www.haskell.org/mailman/listinfo/jhc
