Another build of ghc 7.8 available

Yesterday evening I pushed out a new build of ghc 7.8 to [haskell-testing] and now all packages and the DB are signed so the stanza to use is


[haskell-testing]
Server = http://xsounds.org/~haskell/testing/$arch

Please make sure to put it right after [main] to pacman doesn’t accidentally mix in Haskell packages from [extra] or [contrib].

Enjoy!

Ghc 7.8.0 rc1 in testing repo

I’ve just finished uploading a few packages compiled with Ghc 7.8.0 rc1. Please try it out and report how it goes!

Just add the following and start the download:

[haskell-testing]
Server = http://xsounds.org/~haskell/testing/$arch
SigLevel = Never

The packages included are

Crypto 4.2.5.1
Diff 0.3.0
FileManipCompat 0.18
GLURaw 1.4.0.0
GLUT 2.5.1.0
Glob 0.7.3
HTTP 4000.2.10
HUnit 1.2.5.2
IfElse 0.85
MonadCatchIO-mtl 0.3.1.0
MonadCatchIO-transformers 0.3.1.0
ObjectName 1.0.0.0
OpenGL 2.9.1.0
OpenGLRaw 1.4.0.0
QuickCheck 2.6
SHA 1.6.4
StateVar 1.0.0.0
Unixutils-shadow 1.0.0
X11 1.6.1.1
X11-xft 0.3.1
abstract-deque 0.2.2.1
abstract-par 0.3.3
alex 3.1.3
anansi 0.4.5
ansi-terminal 0.6.1
ansi-wl-pprint 0.6.7.1
async 2.0.1.5
attoparsec 0.11.1.0
base-unicode-symbols 0.2.2.4
base16-bytestring 0.1.1.6
base64-bytestring 1.0.0.1
bktrees 0.3.1
blaze-builder 0.3.3.2
blaze-builder-conduit 1.0.0
blaze-html 0.7.0.1
blaze-markup 0.6.0.0
byteable 0.1.1
case-insensitive 1.1.0.3
cereal 0.4.0.1
cmdargs 0.10.7
cmdlib 0.3.5
colour 2.3.3
conduit 1.0.13
cpphs 1.17.1
crypto-api 0.13
cryptohash 0.11.2
csv 0.1.2
curl 1.3.8
data-default 0.5.3
data-default-class 0.0.1
data-default-instances-base 0.0.1
data-default-instances-containers 0.0.1
data-default-instances-dlist 0.0.1
data-default-instances-old-locale 0.0.1
date-cache 0.3.0
digest 0.0.1.2
dlist 0.6.0.1
edit-distance 0.2.1.2
entropy 0.2.2.4
erf 2.0.0.0
exceptions 0.3.3
extensible-exceptions 0.1.1.4
fast-logger 2.1.5
fgl 5.4.2.4
filemanip 0.3.6.2
ghc-paths 0.1.0.9
ghc-syb-utils 0.2.1.2
graphviz 2999.16.0.0
happy 1.19.3
hashable 1.2.1.0
haskeline 0.7.1.2
hasktags 0.68.7
hastache 0.5.1
hinotify 0.3.6
hostname 1.0
hs-bibutils 5.0
hscolour 1.20.3
hslogger 1.2.3
hslua 0.3.10
html 1.0.1.2
http-attoparsec 0.1.1
http-date 0.0.4
http-types 0.8.3
hxt 9.3.1.3
hxt-charproperties 9.1.1.1
hxt-regex-xmlschema 9.1.0
hxt-unicode 9.0.2.1
ieee754 0.7.3
interlude 0.1.2
io-choice 0.0.5
json 0.7
language-haskell-extract 0.2.4
largeword 1.0.5
libxml-sax 0.7.4
lifted-base 0.2.1.1
maccatcher 2.1.5
math-functions 0.1.4.0
mmap 0.5.9
mmorph 1.0.2
monad-control 0.3.2.2
monad-logger 0.3.4.0
monad-loops 0.4.2
monad-par 0.3.4.6
monad-par-extras 0.3.3
monads-tf 0.1.0.1
mtl 2.1.2
mwc-random 0.13.1.1
nats 0.1.2
network 2.4.2.2
network-conduit 1.0.2.1
network-info 0.2.0.3
optparse-applicative 0.7.0.2
parallel 3.2.0.4
parallel-io 0.3.3
parsec 3.1.5
path-pieces 0.1.3.1
polyparse 1.9
pool-conduit 0.1.2
primitive 0.5.1.0
pureMD5 2.1.2.1
pxsl-tools 1.0.1
random 1.0.1.1
regex-base 0.93.2
regex-compat 0.95.1
regex-pcre 0.94.4
regex-posix 0.95.2
resource-pool 0.2.1.1
resourcet 0.4.10
safe 0.3.4
scientific 0.2.0.1
semigroups 0.12.2
shellish 0.1.4
silently 1.2.4.1
simple-sendfile 0.2.13
split 0.2.2
statistics 0.10.5.2
stm 2.4.2
stm-chans 3.0.0
strict 0.3.2
syb 0.4.1
system-argv0 0.1.1
system-fileio 0.3.12
system-filepath 0.4.9
tagged 0.7
tagsoup 0.13.1
tar 0.4.0.1
temporary 1.2.0.1
test-framework 0.8.0.3
test-framework-hunit 0.3.0.1
test-framework-quickcheck2 0.3.0.2
text 0.11.3.1
th-lift 0.5.6
th-orphans 0.8
time-compat 0.1.0.3
transformers-base 0.4.1
uniplate 1.6.12
unix-compat 0.4.1.1
unix-time 0.2.2
unordered-containers 0.2.3.3
utf8-string 0.3.7
uuid 1.3.3
vault 0.3.0.3
vector 0.10.9.1
vector-algorithms 0.6.0.1
vector-binary-instances 0.2.1.0
void 0.6.1
wai 2.0.0
warp 2.0.3
wl-pprint-text 1.1.0.2
xhtml 3000.2.1
xml 1.3.13
xml-types 0.3.4
xmlgen 0.6.2.1
xmonad 0.11
zip-archive 0.2
zlib 0.5.4.1

GHC 7.6.1 moved to main repo

GHC 7.6.1 has now landed in the main repo. The following packages are still missing but will be added ASAP:

  • GLUT
  • anansi
  • buildwrapper
  • cblrepo
  • ghc-mod
  • pandoc
  • scion-browser

The old repo is kept around, but has been moved:

[haskell-old]
Server = http://www.kiwilight.com/haskell/old/$arch

It will stay around at least until the packages in the list above are re-added.

Repo built with GHC 7.6

As of this morning (CET) there is a repo with packages built with GHC 7.6:

[haskell-testing]
Server = http://www.kiwilight.com/haskell/testing/$arch

Currently it’s lacking slightly in available packages compared to [haskell]. The following packages are missing at the moment:

warp
wai
temporary
scion-browser
parallel-io
pandoc
cblrepo
bytestring-show
anansi
GLUT
glib
gtk
pango
ghc-mod
buildwrapper
persistent-template
haddock

The work with getting these packaged using GHC 7.6 continues, but in the meantime there’s at least a repo with 150+ packages to play with. Enjoy!

Arch Haskell under new management :-)

Recently there’s been quite a few things happening in the Arch Haskell community. Since Don stepped down from Arch Haskell work there have been quite a few changes in the community.

Before describing those changes I feel it’s worth pointing out just what Don has done over the last year or so. Pretty much single-handedly he has made sure that ArchLinux has almost all of Hackage available as native (source) packages. That resulted in ArchLinux being one of the best, if not the best, Linux distro for Haskell developers. In the end he maintained 1937 packages on AUR (there are currently 25237 packages on AUR in total), and he also wrote and maintained the tool used to track Hackage (cabal2arch).

So, what have we been up to since Don’s announcement?

First of all we’ve moved the activity to github. This allows us to maintain the packages as a team rather than put the entire burden on a single person. The source repositories, cabal2arch, archlinux, and archlinux-web are obviously where the source for the tool and its dependencies are kept. Furthermore there’s the habs git repo. This repo contains the source for all the packages (PKGBUILD and *.install files). Keeping all source packages on github will allow us to more easily accept updates and fixes to individual packages from people in the community. Unfortunately uploading to AUR still remains a bottle neck. Which conveniently brings me on to the ideas for the future.

Even though there now are two people who can upload packages AUR as arch-haskell, it is still likely to be a pain point in keeping up with the uploads to Hackage. The long-term solution is to stop using AUR, but for that to be possible we need to have some tool support for downloading and compiling packages from archhaskell/habs. Until that tool support is there we’ll keep uploading to AUR.

In the future we would also like to provide a subset of the packages in binary form. The main issue at the moment is keeping on top of the re-building that is necessary (if package foo is updated then all its dependants need to be re-built too). We are however well on our way towards having tools to support that. The next big issue is where to house the binary packages :-)

Even further into the future we will look closer at whether a repo of source packages really is the most effective way to track Hackage.

Even though we now have a few people who are hacking away on the tools, and try to keep up with Hackage, we can always use more help. So if you are interested in helping out this is a great opportunity to make a large impact. Just in this post I’ve mentioned a few areas where we need help:

  • Run cabal2arch on new packages on Hackage, QA the results and then file pull requests against archhaskell/habs.
  • Getting tools that support downloading from archhaskell/habs so we can move off AUR.
  • Improving the tools used to build binary packages.
  • Improve cabal2arch.
  • Anything else you can think of.
  • Last but not least, if you know a place where we could house binary packages, please let us know.

So, I encourage everyone with an interest in Haskell on ArchLinux to join the mailing list and get involved. No prior experience with Haskell is really necessary, a bit of shell (bash) scripting is enough for some of the planned things.

See you on the list!

CLasH: Haskell to VHDL compiler in AUR

CLaSH is a tool-chain/language to translate subsets of Haskell to synthesizable VHDL. Haskell modules (example) written in a hardware-oriented subset of Haskell are translated into VHDL by the library. That is, you can design hardware directly in Haskell, and generate hardware designs from GHCi.

The Hackage package is now available in AUR.

Amongst other things, it provides a “:vhdl” extension to the GHCi command line, allowing you to generate hardware designs from the GHCi prompt. For more information about CLaSH, see the examples, sources and documentation project page, and the demo from the Haskell Workshop last year:

Other hardware-related libraries in Haskell in AUR:

  • chalmers-lava2000 library: Hardware description library
  • clash library: CAES Language for Synchronous Hardware (CLaSH)
  • ForSyDe library: ForSyDe’s Haskell-embedded Domain Specific Language.
  • Wired library: Wire-aware hardware description
  • york-lava library: A library for digital circuit description.

berp: an implementation of Python 3, now in AUR (compiler and interpreter)

berp, is an implementation of Python 3, written in Haskell. It is now available in AUR.

It provides a compiler and an interpreter. In both cases the input Python program is translated into Haskell code. The compiler turns the Haskell code into machine code. The interpreter runs the Haskell code immediately via the GHCi interpreter. The user interface of the interpreter imitates the one provided by CPython.

For more information:

ThreadScope for Haskell now in AUR

ThreadScope is a graphical thread profiler and debugger for Haskell.

The Threadscope program attaches to a running Haskell program, allowing us to debug the parallel performance of Haskell programs. Using Threadscope we can check to see that work is well balanced across the available processors and spot performance issues relating to garbage collection or poor load balancing.

ThreadScope is now available pre-packaged for Arch Linux via AUR. It builds on the newly cabalized GTK libraries, such as haskell-cairo.

For information on how to use ThreadScope to improve the performance of your multicore Haskell programs, see the references:

Regular, shape-polymorphic, parallel arrays now in AUR

Repa, a new library for multi-dimensional automatically-parallel arrays in Haskell, is now available in Arch Linux via AUR.  Such arrays may be converted to and from bytestrings, and written out in various formats. Example algorithms are available, including fft2d, matmult, and laplace, along with an algorithm library. The library may prove useful for scientific and numerical computing, where high level languages, with good parallel performance, should shine.

More information about Repa is available:

The full set of packages are available in AUR:

Grammatical Framework, a programming language for multilingual grammar applications, now in Arch

GF, a programming language for multilingual grammar applications is
http://aur.archlinux.org/packages.php?ID=39561.

GF provides many tools for multi-language programming, and can be considered:

  • special-purpose language for grammars, like YACC, Bison, Happy, BNFC, but not restricted to programming languages
  • functional language, like Haskell, Lisp, OCaml, Scheme, SML, but specialized to grammar writing
  • natural language processing framework, like LKB, XLE, Regulus, but based on functional programming and type theory
  • categorial grammar formalism, like ACG, CCG, but different and equipped with different tools
  • logical framework, like Agda, Coq, Isabelle, but equipped with concrete syntax in addition to logic

GF can be used for building

GF is written in Haskell.