ANNOUNCE: jhc 0.6.0 Haskell Compiler
Hi, I am pleased to announce jhc 0.6.0, It has been a long time since an official release, so there have been a lot of changes. Jhc is an optimizing haskell compiler that focuses on creating fast and portable code. Jhc is still mainly of interest to jhc hackers and developers than the general haskell public, but it is starting to see use in embedded development with haskell so I decided to make more public announcements of major releases in the future. some links: The jhc homepage: http://repetae.net/computer/jhc/ Installation Instructions: http://repetae.net/computer/jhc/building.shtml The jhc manual: http://repetae.net/computer/jhc/manual.html And I am happy to announce, there is now a yum repository* for jhc and my other projects (such as DrIFT), so if you use an rpm based linux distribution, you can keep up to date with jhc official releases by doing: ; rpm -i http://repetae.net/yum/repetae-repo-1.0-3.noarch.rpm ; yum install jhc A couple recent changes: jhc now comes bundled with the 'containers' and 'applicative' library making it much easier to compile many haskell programs out there. (Data.Graph, Data.IntMap, Data.IntSet, Data.Map, Data.Sequence, Data.Set, Data.Tree, Control.Applicative, Control.Arrow, Control.Category, Data.Foldable, Data.Traversable) signifigant speed and resource usage improvements in compilation time. transparent cross compilation support for creating windows programs on a unix box. (or iPhone/Nokia Tablet/etc..) If you are interested in jhc development, please sign up on the jhc mailing list here: http://www.haskell.org/mailman/listinfo/jhc John * I would love to get proper 'deb's and BSD packages built also automatically, if anyone wants to help with this, please join the list and let us know. -- John Meacham - ⑆repetae.net⑆john⑈
The last version still uses a region inference algoritm instead of a garbage
collector?.
2009/3/17 John Meacham
Hi, I am pleased to announce jhc 0.6.0, It has been a long time since an official release, so there have been a lot of changes. Jhc is an optimizing haskell compiler that focuses on creating fast and portable code. Jhc is still mainly of interest to jhc hackers and developers than the general haskell public, but it is starting to see use in embedded development with haskell so I decided to make more public announcements of major releases in the future.
some links:
The jhc homepage: http://repetae.net/computer/jhc/
Installation Instructions: http://repetae.net/computer/jhc/building.shtml
The jhc manual: http://repetae.net/computer/jhc/manual.html
And I am happy to announce, there is now a yum repository* for jhc and my other projects (such as DrIFT), so if you use an rpm based linux distribution, you can keep up to date with jhc official releases by doing:
; rpm -i http://repetae.net/yum/repetae-repo-1.0-3.noarch.rpm ; yum install jhc
A couple recent changes:
jhc now comes bundled with the 'containers' and 'applicative' library making it much easier to compile many haskell programs out there. (Data.Graph, Data.IntMap, Data.IntSet, Data.Map, Data.Sequence, Data.Set, Data.Tree, Control.Applicative, Control.Arrow, Control.Category, Data.Foldable, Data.Traversable)
signifigant speed and resource usage improvements in compilation time.
transparent cross compilation support for creating windows programs on a unix box. (or iPhone/Nokia Tablet/etc..)
If you are interested in jhc development, please sign up on the jhc mailing list here: http://www.haskell.org/mailman/listinfo/jhc
John
* I would love to get proper 'deb's and BSD packages built also automatically, if anyone wants to help with this, please join the list and let us know.
-- John Meacham - ⑆repetae.net⑆john⑈ _______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
On Thu, Mar 19, 2009 at 03:22:33PM +0100, Alberto G. Corona wrote:
The last version still uses a region inference algoritm instead of a garbage collector?.
It turns out the choice of garbage collector is fairly independent of the rest of the compiler, so there is a flag to decide on what garbage collector to use (or none). Right now, however, there isn't really a universally good choice, the boehm gc will work, but it is quite slow. I am working on a middle of the road solution between full static analysis and garbage collection based on the mercury garbage collector for compilation to C, but of course, when compiling to something like llvm or C--, a different garbage collector might be in order. So, It is likely jhc will have multiple choices when it comes to garbage collection for a while until an obviously correct answer emerges. In the meantime, improving the static analysis (such as full region inference will do) helps all back ends so I will likely spend some time focusing on that. John -- John Meacham - ⑆repetae.net⑆john⑈
john:
Hi, I am pleased to announce jhc 0.6.0, It has been a long time since an official release, so there have been a lot of changes. Jhc is an optimizing haskell compiler that focuses on creating fast and portable code. Jhc is still mainly of interest to jhc hackers and developers than the general haskell public, but it is starting to see use in embedded development with haskell so I decided to make more public announcements of major releases in the future.
Hey John, I get the following build error: /usr/bin/ghc -fbang-patterns -O -ignore-package lang -W -fno-warn-unused-matches -fwarn-type-defaults -i -i./drift_processed -i./. -i. -odir . -hidir . -package mtl -package unix -ignore-package lang -package utf8-string -package binary -package zlib -fallow-undecidable-instances -fglasgow-exts -fallow-overlapping-instances --make Main.hs StringTable/StringTable_cbits.o cbits/md5sum.o -o jhc on the commandline: Warning: -fbang-patterns is deprecated: use -XBangPatterns or pragma {-# LANGUAGE BangPatterns#-} instead on the commandline: Warning: -fallow-undecidable-instances is deprecated: use -XUndecidableInstances or pragma {-# LANGUAGE UndecidableInstances#-} instead on the commandline: Warning: -fallow-overlapping-instances is deprecated: use -XOverlappingInstances or pragma {-# LANGUAGE OverlappingInstances#-} instead Util/Gen.hs:6:7: Could not find module `Control.Monad.Identity': it was found in multiple packages: transformers-0.1.1.0 mtl-1.1.0.2 make[1]: *** [jhc] Error 1 I *think* you have to -hide-all-packages then enable the ones you want one-by-one (check whatever commandline cabal emits here). Cheers, Don
On Sat, Mar 21, 2009 at 10:00:33AM -0700, Don Stewart wrote:
john:
Hi, I am pleased to announce jhc 0.6.0, It has been a long time since an official release, so there have been a lot of changes. Jhc is an optimizing haskell compiler that focuses on creating fast and portable code. Jhc is still mainly of interest to jhc hackers and developers than the general haskell public, but it is starting to see use in embedded development with haskell so I decided to make more public announcements of major releases in the future.
Hey John,
I get the following build error:
/usr/bin/ghc -fbang-patterns -O -ignore-package lang -W -fno-warn-unused-matches -fwarn-type-defaults -i -i./drift_processed -i./. -i. -odir . -hidir . -package mtl -package unix -ignore-package lang -package utf8-string -package binary -package zlib -fallow-undecidable-instances -fglasgow-exts -fallow-overlapping-instances --make Main.hs StringTable/StringTable_cbits.o cbits/md5sum.o -o jhc
on the commandline: Warning: -fbang-patterns is deprecated: use -XBangPatterns or pragma {-# LANGUAGE BangPatterns#-} instead
on the commandline: Warning: -fallow-undecidable-instances is deprecated: use -XUndecidableInstances or pragma {-# LANGUAGE UndecidableInstances#-} instead
on the commandline: Warning: -fallow-overlapping-instances is deprecated: use -XOverlappingInstances or pragma {-# LANGUAGE OverlappingInstances#-} instead
Util/Gen.hs:6:7: Could not find module `Control.Monad.Identity': it was found in multiple packages: transformers-0.1.1.0 mtl-1.1.0.2 make[1]: *** [jhc] Error 1
I *think* you have to -hide-all-packages then enable the ones you want one-by-one (check whatever commandline cabal emits here).
Hmm... what version of ghc are you using? I tested against ghc 6.8 since that is all I have available on my machines so it is possible the bugs are because you are using ghc 6.10. If the -hide-all-packages trick works for 6.8 too then I will do that always. I dropped 6.6 compatability at some point, but want to keep 6.8 in addition to 6.10 since that is among other things what amazon ec2 instances come with (since they are based on fedora core 8). Man. those high CPU ec2 instances are great for plowing through regression tests. :) John -- John Meacham - ⑆repetae.net⑆john⑈
On Sun, 2009-03-22 at 19:12 -0700, John Meacham wrote:
Util/Gen.hs:6:7:
Could not find module `Control.Monad.Identity': it was found in multiple packages: transformers-0.1.1.0 mtl-1.1.0.2 make[1]: *** [jhc] Error 1
I *think* you have to -hide-all-packages then enable the ones you
want one-by-one (check whatever commandline cabal emits here).
Hmm... what version of ghc are you using? I tested against ghc 6.8 since that is all I have available on my machines so it is possible the bugs are because you are using ghc 6.10.
This could happen with any version of ghc since 6.4. It's because Don has got a whole lot of packages installed. Testing with a vanilla install of ghc-6.8 or 6.10 will not catch this problem. Don has got the transformers package installed in addition to mtl. The transformers package is essentially an alternative implementation of mtl, it exports most of the same module names. So in all the packages he's got registered, there is overlap in the module name space. That's why it's important for packages to say exactly which other packages they need.
If the -hide-all-packages trick works for 6.8 too then I will do that always.
Yes, the -hide-all-packages will work with ghc 6.4+ It also means of course that you have to list all the other packages that jhc needs, eg: -hide-all-packages -package base -package blah -package etc That way you specify exactly the subset of the module namespace that jhc needs and you know there is no overlaps in that set. Then it doesn't matter what other crazy packages users have installed. FTIW, you can blame Cabal for you having to do this. It does the above -hide-all-packages stuff which lets users get away with having multiple implementations of the same modules exposed by different packages (though some users may count that as a feature rather than a bug). Duncan
On Sat, Mar 21, 2009 at 10:00 AM, Don Stewart
Util/Gen.hs:6:7: Could not find module `Control.Monad.Identity': it was found in multiple packages: transformers-0.1.1.0 mtl-1.1.0.2 make[1]: *** [jhc] Error 1
ghc-pkg hide transformers-0.1.1.0
--
Taral
participants (6)
-
Alberto G. Corona -
Don Stewart -
Duncan Coutts -
John Meacham -
Peter Verswyvelen -
Taral