Monthly Archives: August 2010

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.