Author Archives: Don Stewart

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

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.

Arch Haskell News: February 2010

Hackage now has 1851 Haskell packages, of which 1541 (84%) have been natively packaged for Arch in AUR. All these packages are available via AUR, using the “bauerbill” tool (or other full-resolving package tool for Arch).

You can find the status of all Haskell packages in Arch here, regularly updated using the archlinux Haskell package tools.

Since the GHC 6.12 upgrade, there have been some major package updates:

Most things are now ready for GHC 6.12, with the notable exception of packages that:

  • depend on gtk2hs (not yet released for GHC 6.12)
  • parsec < 3 (Arch will be downgrading to parsec 2 to be HP compliant).

wxHaskell packaged for Arch

wxHaskell, the venerable portable and native GUI library for Haskell, is now packaged for Arch, in the following packages:

Which you can install with yaourt:

  yaourt –aur -S haskell-wxcore haskell-wx

And is already used by a number of graphical Haskell programs and libraries:

all packaged.

happstack 0.4: A scalable framework for developing web applications in Haskell

Happstack is the Haskell Application Server Stack. It is a scalable framework for developing web applications, similar in purpose to Django, RoR, Turbogears, Grails, Seaside. happstack powers and and you can use it to beat the Arc Challenge. The latest release of happstack is now available in Arch, via AUR, and features a built-in HTTP server, built-in persistant data store, many ways to do templating, a rich EDSL for designing requests and responses, and easy integration with an external database, or webserver.

All the packages are here:

To get started with happstack, you can work through Real World Happstack.

Arch Haskell News: September 12 2009

Hackage now has 1540 (+97) Haskell packages, of which 1342 (+76) (87.2%) have been natively packaged for Arch in AUR. All these packages are available via AUR, using the “yaourt” tool.

You can find the status of all Haskell packages in Arch here, regularly updated using the archlinux Haskell package tools.

Automated Package Tracking for Arch Haskell

It’s a lot of work managing the Haskell packages for Arch Linux. We use the principle of automating all parts of the packaging process, and rely on cabal to give us good metadata about our packages. However, over time we end up with packages generated for Arch using old versions of tools, or gaps in coverage.

In order to ensure consistent, high quality packages, we’ve been building a programmatic interface to AUR and Hackage, to automate checking of package sanity.

You can find:

With the new AUR package linter tool it should be easier to ensure all those Haskell packages are building and working as desired.