Wed Feb 18 01:33:23 PST 2009 John Meacham <[email protected]> * support Win32 target.
Wed Feb 18 02:19:48 PST 2009 John Meacham <[email protected]> * add E/Show.hs-boot to the list of hs-boot files Ignore-this: a4243c6a2209237d7c245f409d19f857 Wed Feb 18 02:36:53 PST 2009 John Meacham <[email protected]> tagged todthicedal Ignore-this: 20a12b57a2c88ffdf4e31fea33a2a4fc Wed Feb 18 02:36:57 PST 2009 John Meacham <[email protected]> * update datestamp Ignore-this: 38a19570744139ee668fefb24e83a5be Wed Feb 18 03:27:20 PST 2009 John Meacham <[email protected]> * update documentation Ignore-this: dbfff88da59670d189f90e599f1fd5a7 Wed Feb 18 04:45:59 PST 2009 John Meacham <[email protected]> * add --print-hsc-options option to jhc Ignore-this: 40b9055b3a4e599bda630f3cfbdaa958
New patches: [support Win32 target. John Meacham <[email protected]>**20090218093323] < > { hunk ./data/rts/jhc_rts.c 31 static void A_COLD jhc_print_profile(void) { +#ifndef __WIN32__ struct tms tm; times(&tm); hunk ./data/rts/jhc_rts.c 34 +#endif if(!(_JHC_PROFILE || getenv("JHC_RTS_PROFILE"))) return; fprintf(stderr, "\n-----------------\n"); hunk ./data/rts/jhc_rts.c 43 fprintf(stderr, "Complie: %s\n", jhc_c_compile); fprintf(stderr, "Version: %s\n\n", jhc_version); jhc_alloc_print_stats(); +#ifndef __WIN32__ float cpt = (float)sysconf(_SC_CLK_TCK); fprintf(stderr, "User Time: %.2fs\n", (float)tm.tms_utime/cpt); fprintf(stderr, "System Time: %.2fs\n", (float)tm.tms_stime/cpt); hunk ./data/rts/jhc_rts.c 48 fprintf(stderr, "Total Time: %.2fs\n", (float)(tm.tms_stime + tm.tms_utime)/cpt); +#endif #if _JHC_PROFILE fprintf(stderr, "\nFunction Calls: %llu\n", (unsigned long long)jhc_prof_function_calls); hunk ./data/rts/jhc_rts.c 80 abort(); } +#ifdef __WIN32__ +#define jhc_setjmp(jb) setjmp(*(jmp_buf *)jb) +#define jhc_longjmp(jb) longjmp(*(jmp_buf *)jb,1) +#define getchar_unlocked() getchar() +#define putchar_unlocked(x) putchar(x) +#define getc_unlocked(x) getc(x) +#define putc_unlocked(x,y) putc(x,y) +#else #define jhc_setjmp(jb) sigsetjmp(*(jmp_buf *)jb,0) #define jhc_longjmp(jb) siglongjmp(*(jmp_buf *)jb,1) hunk ./data/rts/jhc_rts.c 90 +#endif struct jhc_continuation { void *argument; hunk ./data/rts/jhc_rts.c 146 jhc_argv = argv + 1; jhc_progname = argv[0]; setlocale(LC_ALL,""); - if (sigsetjmp(jhc_uncaught,0)) + if (jhc_setjmp(jhc_uncaught)) jhc_error("Uncaught Exception"); else _amain(); hunk ./data/rts/jhc_rts_header.h 14 #include <math.h> #include <assert.h> #include <float.h> +#ifndef __WIN32__ #include <sys/times.h> hunk ./data/rts/jhc_rts_header.h 16 +#endif #include <setjmp.h> } [add E/Show.hs-boot to the list of hs-boot files John Meacham <[email protected]>**20090218101948 Ignore-this: a4243c6a2209237d7c245f409d19f857 ] < > { hunk ./E/Show.hs-boot 12 render :: Doc -> String prettyE :: E -> String -ePrettyEx :: E -> Doc +ePrettyEx :: E -> Doc ePretty :: E -> Doc instance DocLike d => PPrint d TVr hunk ./Makefile.am 115 install-exec-hook: cd $(DESTDIR)$(bindir) && $(LN_S) -f jhc$(EXEEXT) jhci$(EXEEXT) -HSBOOT= DataConstructors.hs-boot FrontEnd/Tc/Class.hs-boot Grin/Grin.hs-boot Grin/Show.hs-boot Info/Binary.hs-boot +HSBOOT= DataConstructors.hs-boot FrontEnd/Tc/Class.hs-boot Grin/Grin.hs-boot Grin/Show.hs-boot Info/Binary.hs-boot E/Show.hs-boot # Various rules for generated Haskell files } [TAG todthicedal John Meacham <[email protected]>**20090218103653 Ignore-this: 20a12b57a2c88ffdf4e31fea33a2a4fc ] < [add E/Show.hs-boot to the list of hs-boot files John Meacham <[email protected]>**20090218101948 Ignore-this: a4243c6a2209237d7c245f409d19f857 ] [Makefile.am: swap order of args to sed [email protected]**20080421014252 This is necessary for building on my system; otherwise sed always fails with an error. ] [support Win32 target. John Meacham <[email protected]>**20090218093323] [don't abort if DrIFT is not installed John Meacham <[email protected]>**20090218080847 Ignore-this: a1d3ecf56256f5d7164998f8d5a142f2 ] [fix compatability with ghc 6.10 due to Data.Map.lookup type change John Meacham <[email protected]>**20090218080813 Ignore-this: 6383f410fc69c2791a2a1184bea3dd70 ] [minor cleanups. John Meacham <[email protected]>**20080417003717] [Fix kind printing for Lambdas/foralls Samuel Bronson <[email protected]>**20080416232609] [Improve lambda/pi printing code Samuel Bronson <[email protected]>**20080411230159 Only only put as many lambda/pi abstractions on a line as will fit. Use sortKindLike to get the uppercase lambdas for type variables of kind other than *. (For instance, * -> *.) I had to make E.TypeCheck, E.Eval and E.Subst import E.Show with a {-# SOURCE #-} pragma before I could use sortKindLike. (I also had to write the .hs-boot file, of course). ] [Use $(HC) --interactive instead of ghci, in case a non-default version of GHC is in use Samuel Bronson <[email protected]>**20080410193413] [Allow irrefutable patterns in lambdas + regression test Samuel Bronson <[email protected]>**20080330043358] [fix conflicts in Name.Names John Meacham <[email protected]>**20080326092848] [rearrange libraries some, move RULES to more logical places John Meacham <[email protected]>**20080326092814] [allow 'non-decreasing indentation' John Meacham <[email protected]>**20080326092755] [Improve (->) situation somewhat Samuel Bronson <[email protected]>**20080318033431 Control.Arrow still won't quite work... something about Control.Arrow.172_a not getting a kind inferred... ] [Remove duplicate case in kiType Samuel Bronson <[email protected]>**20080317200547] [Oops... left out one of the most important parts of -dsquare-stats Samuel Bronson <[email protected]>**20080320192134] [TAG eogmidkiv John Meacham <[email protected]>**20080324121616] > { } [update datestamp John Meacham <[email protected]>**20090218103657 Ignore-this: 38a19570744139ee668fefb24e83a5be ] < > { hunk ./configure.ac 1 -AC_INIT([jhc],[0.5.20080307]) +AC_INIT([jhc],[0.5.20090218]) AC_CONFIG_SRCDIR(Main.hs) AC_CONFIG_MACRO_DIR(ac-macros) AC_CONFIG_AUX_DIR(ac-macros) hunk ./configure.ac 7 AM_INIT_AUTOMAKE([foreign no-dependencies std-options]) -REVISION=20080307 +REVISION=20090218 SHORTVERSION=0.5 AC_CANONICAL_HOST } [update documentation John Meacham <[email protected]>**20090218112720 Ignore-this: dbfff88da59670d189f90e599f1fd5a7 ] < > { hunk ./docs/building.mkd.in 6 All versions of jhc are available from the [Download Directory](http://repetae.net/computer/jhc/drop/). The project is -also under darcs revision control, for information on getting the source code -from darcs and building it, see the [Development Page](development.shtml). +also under darcs revision control however the build process from darcs is +somewhat more involved. For information on getting the source code from darcs +and building it, see the [Development Page](development.shtml). Getting the RPM --------------- hunk ./docs/building.mkd.in 13 -This is by far the easiest way to go about it, an RPM for x86 based systems -(32 or 64 bits) can be instaled from: -<http://repetae.net/computer/jhc/drop/@pack...@-@vers...@-@[email protected]>. +This is by far the easiest way to go about it if you have an rpm based system, an RPM for x86 based systems + can be instaled from: +<http://repetae.net/computer/jhc/drop/@pack...@-@vers...@-@[email protected]_64.rpm>. There is also a 'src' rpm in the download directory for rebuilding from source. Building from the tarball hunk ./docs/building.mkd.in 25 has the following dependencies: * GHC 6.8.2 or better - * Recent version of [DrIFT](http://repetae.net/computer/haskell/DrIFT) * haskell library [binary](http://hackage.haskell.org/cgi-bin/hackage-scripts/package/binary) * haskell library [zlib](http://hackage.haskell.org/cgi-bin/hackage-scripts/package/zlib) hunk ./docs/building.mkd.in 50 '.hl' files in your build directory and doing a 'make libs'. however it is recommended you work with the development darcs tree if you plan on modifying the base libraries. - - - hunk ./docs/development.mkd 13 Getting the source ------------------ +If you simply wish to use jhc, it is easier to build from the distribution +tarball, as described on the [Building Page](building.shtml). If you are interested +in developing or modifying jhc itself, then building from darcs as described on this +page is recommended. + In order to build from the darcs repo, you need the following things installed: * GHC 6.8.2 or better hunk ./docs/development.mkd 29 * a working 'perl' install for various sundry tasks * the happy haskell parser generator -First you must install darcs, there are a couple projects you need to pull in order to compile jhc, the following should produce a working tree: +First you must install darcs, there are a couple projects you need to pull in +order to compile jhc, the following should produce a working tree: darcs get http://repetae.net/repos/jhc cd jhc hunk ./docs/development.mkd 52 make helloworld -however, during development it is often easier to use the raw haskell source of the libraries directly. in order to do that, you can run jhc with the following options when run in the development tree. +however, during development it is often easier to use the raw haskell source of +the libraries directly. in order to do that, you can run jhc with the following +options when run in the development tree. ./jhc -v --noauto -ilib/base -ilib/haskell98 test/HelloWorld.hs -o helloworld } [add --print-hsc-options option to jhc John Meacham <[email protected]>**20090218124559 Ignore-this: 40b9055b3a4e599bda630f3cfbdaa958 ] < > { hunk ./Main.hs 69 import Util.Graph import Util.SetLike as S import Version.Version(versionString,versionContext,versionSimple) +import qualified Version.Config as VC import qualified C.FromGrin2 as FG2 import qualified E.CPR import qualified E.Demand as Demand(analyzeProgram) hunk ./Main.hs 114 putStrLn "Libraries found:" ll <- libraryList sequence_ [ putStrLn name | (name,_) <- ll ] - ShowHo ho -> dumpHoFile ho - Version -> putStrLn versionString - DependencyTree -> doDependency (optArgs o) - VersionCtx -> putStrLn (versionString ++ versionContext) - _ -> processFiles (optArgs o) + ShowHo ho -> dumpHoFile ho + Version -> putStrLn versionString + PrintHscOptions -> putStrLn $ "-I" ++ VC.datadir ++ "/" ++ VC.package ++ "-" ++ VC.shortVersion ++ "/include" + DependencyTree -> doDependency (optArgs o) + VersionCtx -> putStrLn (versionString ++ versionContext) + _ -> processFiles (optArgs o) processFiles [] | Nothing <- optMainFunc options = do hunk ./Makefile.am 67 install-data-hook: $(JHC_LIBS) $(INSTALL) -d $(DESTDIR)$(datadir)/@pack...@-@SHORTVERSION@ + $(INSTALL) -d $(DESTDIR)$(datadir)/@pack...@-@SHORTVERSION@/include for lib in $(JHC_LIBS); do \ test -f "$$lib" && $(INSTALL_DATA) $$lib $(DESTDIR)$(datadir)/@pack...@-@SHORTVERSION@ ; \ test -f "$(srcdir)/$$lib" && $(INSTALL_DATA) "$(srcdir)/$$lib" $(DESTDIR)$(datadir)/@pack...@-@SHORTVERSION@ ; \ hunk ./Makefile.am 72 done + $(INSTALL_DATA) "$(srcdir)/data/HsFFI.h" $(DESTDIR)$(datadir)/@pack...@-@SHORTVERSION@/include ; uninstall-hook: $(JHC_LIBS) rm -f -- "$(DESTDIR)$(bindir)/jhci$(EXTEXT)" hunk ./Makefile.am 79 for lib in $(JHC_LIBS); do \ rm -f -- "$(DESTDIR)$(datadir)/@pack...@-@SHORTVERSION@/$$lib" ; \ done + rm -f -- "$(DESTDIR)$(datadir)/@pack...@-@SHORTVERSION@/include/HsFFI.h" ; UTILS = utils/op_process.prl utils/opt_sets.prl utils/gen_props.prl utils/op_names.prl utils/op_raw.prl hunk ./Options.hs 54 | DependencyTree -- ^ show simple dependency tree | ShowHo String -- ^ Show ho-file. | ListLibraries -- ^ List libraries + | PrintHscOptions -- ^ Print options for hsc2hs deriving(Eq) hunk ./Options.hs 148 , Option [] ["progc"] (ReqArg (\d -> optCC_s d) "gcc") "c compiler to use" , Option [] ["arg"] (ReqArg (\d -> optProgArgs_u (++ [d])) "arg") "arguments to pass interpreted program" , Option ['N'] ["noprelude"] (NoArg (optPrelude_s False)) "no implicit prelude" - , Option ['C'] [] (NoArg (optMode_s CompileHoGrin)) "Typecheck, compile ho and grin." - , Option ['c'] [] (NoArg (optMode_s CompileHo)) "Typecheck and compile ho." - , Option [] ["interpret"] (NoArg (optMode_s Interpret)) "interpret." - , Option ['k'] ["keepgoing"] (NoArg (optKeepGoing_s True)) "keep going on errors." - , Option [] ["width"] (ReqArg (optColumns_s . read) "COLUMNS") "width of screen for debugging output." - , Option [] ["main"] (ReqArg (optMainFunc_s . Just . (,) False) "Main.main") "main entry point." - , Option ['m'] ["arch"] (ReqArg (optArch_s . Just ) "arch") "target architecture." - , Option [] ["entry"] (ReqArg (optMainFunc_s . Just . (,) True) "<expr>") "main entry point, showable expression." + , Option ['C'] [] (NoArg (optMode_s CompileHoGrin)) "Typecheck, compile ho and grin" + , Option ['c'] [] (NoArg (optMode_s CompileHo)) "Typecheck and compile ho" + , Option [] ["interpret"] (NoArg (optMode_s Interpret)) "interpret" + , Option ['k'] ["keepgoing"] (NoArg (optKeepGoing_s True)) "keep going on errors" + , Option [] ["width"] (ReqArg (optColumns_s . read) "COLUMNS") "width of screen for debugging output" + , Option [] ["main"] (ReqArg (optMainFunc_s . Just . (,) False) "Main.main") "main entry point" + , Option ['m'] ["arch"] (ReqArg (optArch_s . Just ) "arch") "target architecture" + , Option [] ["entry"] (ReqArg (optMainFunc_s . Just . (,) True) "<expr>") "main entry point, showable expression" , Option ['e'] [] (ReqArg (\d -> optStmts_u (d:)) "<statement>") "run given statement as if on jhci prompt" , Option [] ["debug"] (NoArg (optDebug_s True)) "debugging" , Option [] ["show-ho"] (ReqArg (optMode_s . ShowHo) "file.ho") "Show ho file" hunk ./Options.hs 161 , Option [] ["noauto"] (NoArg (optNoAuto_s True)) "Don't automatically load base and haskell98 packages" , Option ['p'] [] (ReqArg (\d -> optHls_u (++ [d])) "file.hl") "Load given haskell library .hl file" - , Option ['L'] [] (ReqArg (optHlPath_u . idu) "path") "Look for haskell libraries in the given directory." + , Option ['L'] [] (ReqArg (optHlPath_u . idu) "path") "Look for haskell libraries in the given directory" , Option [] ["build-hl"] (ReqArg (optMode_s . BuildHl) "file.cabal") "Build hakell library from given library description file" , Option [] ["interactive"] (NoArg (optMode_s Interactive)) "run interactivly" , Option [] ["ignore-ho"] (NoArg (optIgnoreHo_s True)) "Ignore existing haskell object files" hunk ./Options.hs 171 , Option [] ["ho-dir"] (ReqArg (optHoDir_s . Just ) "<dir>") "Where to place and look for ho files" , Option [] ["stale"] (ReqArg (optStale_u . idu) "Module") "Treat these modules as stale, even if a ho file is present" , Option [] ["dependency"] (NoArg (optMode_s DependencyTree)) "Follow import dependencies only then quit" - , Option [] ["no-follow-deps"] (NoArg (optFollowDeps_s False)) "Don't follow depencies not listed on command line." - , Option [] ["list-libraries"] (NoArg (optMode_s ListLibraries)) "List of installed libraries." + , Option [] ["no-follow-deps"] (NoArg (optFollowDeps_s False)) "Don't follow depencies not listed on command line" + , Option [] ["list-libraries"] (NoArg (optMode_s ListLibraries)) "List of installed libraries" + , Option [] ["print-hsc-options"] (NoArg (optMode_s PrintHscOptions)) "print options to pass to hsc2hs" ] -- | Width of terminal. hunk ./jhc.spec.in 39 %{_datadir}/@pack...@-@SHORTVERSION@/base-1.0.hl %{_datadir}/@pack...@-@SHORTVERSION@/haskell98-1.0.hl +%{_datadir}/@pack...@-@SHORTVERSION@/include/HsFFI.h %doc COPYING } Context: [Makefile.am: swap order of args to sed [email protected]**20080421014252 This is necessary for building on my system; otherwise sed always fails with an error. ] [don't abort if DrIFT is not installed John Meacham <[email protected]>**20090218080847 Ignore-this: a1d3ecf56256f5d7164998f8d5a142f2 ] [fix compatability with ghc 6.10 due to Data.Map.lookup type change John Meacham <[email protected]>**20090218080813 Ignore-this: 6383f410fc69c2791a2a1184bea3dd70 ] [minor cleanups. John Meacham <[email protected]>**20080417003717] [Fix kind printing for Lambdas/foralls Samuel Bronson <[email protected]>**20080416232609] [Improve lambda/pi printing code Samuel Bronson <[email protected]>**20080411230159 Only only put as many lambda/pi abstractions on a line as will fit. Use sortKindLike to get the uppercase lambdas for type variables of kind other than *. (For instance, * -> *.) I had to make E.TypeCheck, E.Eval and E.Subst import E.Show with a {-# SOURCE #-} pragma before I could use sortKindLike. (I also had to write the .hs-boot file, of course). ] [Use $(HC) --interactive instead of ghci, in case a non-default version of GHC is in use Samuel Bronson <[email protected]>**20080410193413] [Allow irrefutable patterns in lambdas + regression test Samuel Bronson <[email protected]>**20080330043358] [fix conflicts in Name.Names John Meacham <[email protected]>**20080326092848] [rearrange libraries some, move RULES to more logical places John Meacham <[email protected]>**20080326092814] [allow 'non-decreasing indentation' John Meacham <[email protected]>**20080326092755] [Improve (->) situation somewhat Samuel Bronson <[email protected]>**20080318033431 Control.Arrow still won't quite work... something about Control.Arrow.172_a not getting a kind inferred... ] [Remove duplicate case in kiType Samuel Bronson <[email protected]>**20080317200547] [Oops... left out one of the most important parts of -dsquare-stats Samuel Bronson <[email protected]>**20080320192134] [TAG eogmidkiv John Meacham <[email protected]>**20080324121616] Patch bundle hash: 2564aa1ea5663c8deed73545353c25a6c978e68b
_______________________________________________ jhc mailing list [email protected] http://www.haskell.org/mailman/listinfo/jhc
