Monthly Archives: February 2009

Arch Haskell News: Feb 28 2009

A regular update of Haskell in Arch Linux

Arch now has 945 Haskell packages in AUR. That’s an increase of 11 new packages this week. Well done everyone!

Cryptography

Data

Database

Devel

  • c2hs-0.16.0: C->Haskell FFI tool that gives some cross-language type safety
  • cabal2arch-0.5: Create Arch Linux packages from Cabal packages
  • hackage2hwn-0.5: Convert Hackage RSS feeds to wiki format for publishing on Haskell.org

Graphics

Gui

Math

System

Testing

Text

The Arch Haskell Team maintains the Haskell toolchain on Arch Linux. You can join us in #arch-haskell on freenode.org, or on the mailing list.

Arch Haskell News: Feb 21 2009

A regular update of Haskell in Arch Linux

Arch now has 934 Haskell packages in AUR.

That’s an increase of 8 new packages in the last 4 days. Well done everyone!

Noteworthy updates

The following packages, by category, were released or updated this week.

Concurrency

Control

Cryptography

Data

Database

Devel

Gui

Graphics

Network

System

Web

The Arch Haskell Team maintains the Haskell toolchain on Arch Linux. You can join us in #arch-haskell on freenode.org, or on the mailing list.

hipmunk: 2D physics for Haskell

hipmunk is a nice Haskell binding to the 2D physics library, chipmunk. It’s now packaged up for Arch Linux, with demos:

Here’s a demo installing the packages from AUR and running the physics demo:

Arch Haskell News: Feb 16 2009

A regular update of Haskell in Arch Linux

Arch now has 926 Haskell packages in AUR.

That’s an increase of 27 new packages in the last 8 days, or 3.38 new Haskell apps a day. Well done everyone!

Noteworthy updates

Installing Packages from AUR

To install AUR packages, we recommend yaourt, as in:

yaourt --noconfirm  --lightbg --aur -S haskell-haha

You may want to alias that command line. Here’s an example from this week’s releases:

The reason to use yaourt over cabal-install is that AUR packages correctly resolve all versions and, more importantly, C library and other system dependencies. Packages will also be pulled from the binary releases in [extra] and [community] where available, saving you build times.

New and Updated Packages

We now present package info sorted by category — let us know if this helps!

Algorithm

Codec

Compilers

Control

Cryptography

Data

Database

HSQL

HDBC

HaskellDB

Devel

Graphics

Gui

Language

Math

Network

System

Text

Web

  • haskell-hsp-0.4.5: Haskell Server Pages is a library for writing dynamic server-side web pages.

The Arch Haskell Team maintains the Haskell toolchain on Arch Linux. You can join us in #arch-haskell on freenode.org, or on the mailing list.

haskelldb: high level, type safe database queries for Haskell

The venerable haskelldb high level database interface for Haskell is now packaged up for Arch.

HaskellDB is a combinator library for expressing queries and other operations on relational databases in a type safe and declarative way. All the queries and operations are completely expressed within Haskell, no embedded (SQL) commands are needed.

The code base is around a decade now, and quite mature, but it has only recently been brought into the cabal and hackage world, making it trivial to package up and distribute. You can find all the packages here:

This release of haskelldb is layered over medium-level database interface suite, hdbc., so it can reuse the hdbc backends. The layers of Haskell database libs packaged up looks something like:

  1. High level: haskelldb, Takusen
  2. “Normal” level: HDBC, hsql
  3. Low level: sqlite, anydbm, hsSqlite3, PostgreSQL, BerkeleyDB

Low level ones typically just wrap the C interfaces underneath, providing few new safety guarantees. Medium level ones generally present a “sensible” Haskell API to the exposed db libraries, while the high level ones attempt to abstract out significant safety or productivity by embedding concepts deeper into the language.

Different libraries support different C backends, I’ll attempt to break that down here:

mysql postgres sqlite odbc oracle notes
hdbc Documented in RWH
haskelldb
High level
takusen Chooses backend(s) via compile time flag
hsql ? ? Less active?

Also of note is haskell-couchdb , and even haskell-hs3, for a different storage needs.

Finally, if you want to step away from calling out  to C altogether, and go for something purely in Haskell, there’s haskell-tcache, a transactional cache with configurable persistence in 100% Haskell using transactional memory.

Functional reactive grapefruit

Grapefruit is a new suite of libraries for functional reactive-style GUIs layered on top of GTK (via gtk2hs), announced today. Besides being a modern FRP gui library, it notably uses arrow syntax to describe gui components.

Arrow syntax is a bit of a rarity in Haskell code:

    addA f g = proc x -> do
                    y <- f -< x
                    z <- g -< x
                    returnA -< y + z

Will build the computation:

All the components are packaged here for Arch Linux.

In other funky Haskell gui news, haskell-haha has also been released and packaged for Arch, and lets us do vector graphics in ascii in the terminal…. hell yeah!
Here’s a video of haha at work, and how to get it via cabal (yaourt also works fine):

Arch Haskell News: Feb 07 2009

A regular update of Haskell in Arch Linux

Arch now has 899 Haskell packages in AUR.

That’s an increase of 35 new packages in the last 13 days, or 2.4 new Haskell apps a day. Well done everyone! Here’s the 90 day moving average of releases on hackage.haskell.org

The Arch Haskell Team maintains the Haskell toolchain on Arch Linux. You can join us in #arch-haskell on freenode.org, or on the mailing list.

happstack: a refreshingly innovative web application server

Happstack is a refreshingly innovative web application server written in Haskell. Leveraging the MACID state system, Happstack offers robust and scalable data access without the headache of managing a traditional RDBMS such as MySQL.

The first release was this week. You can now get AUR packages for it:

You can follow the emergence of Happstack in these posts,

  1. Look, HAppS may be alive again!
  2. Software Simply: Happstack: An Interview with Matthew Elde
  3. Happstack 0.1 release scheduled for Wednesday
  4. Mathew Elder joins patch-tag.com as a partner
  5. Happstack 0.1 Released (one day early!)

patch-tag.com is already running on it.

LLVM bindings for Haskell

The Haskell bindings to LLVM have been updated in Arch. You can also use the Hackage package, or get it from darcs.

This version of the package appears to add some new safety via type-level library:

This library permits performing computations on the type-level. Type-level functions are implemented using functional dependencies of multi parameter type classes. To date, Booleans and Numerals (Naturals and Positives) are supported. With regard to Numerals, there is support for common arithmetic operations (addition, substraction, multiplication, division, exponientation, logarithm, maximum, comparison, GCD) over natural numbers (using a decimal representation to make compile-time errors friendlier).

Lennart Augustsson informs us that type-level is used in the llvm binding to

  • keep track statically of vector lengths
  • sure that they are a power of 2
  • making sure that zero and sign extension between integer types go from a smaller to a bigger type
  • making sure that bitcast is done between types of the same number of bits

For a rather stunning example of what you can do with the Haskell LLVM embeddings — something you won’t see anywhere else — check out Lennart Augustsson’s embedding of BASIC in Haskell as a DSL, which also generates very competitive native code via LLVM…

SDL bindings for Haskell

Packages for the Haskell bindings to SDL are now available in Arch.:

Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used by MPEG playback software, emulators, and many popular games, including the award winning Linux port of “Civilization: Call To Power.”

Many parts of the library are available:

The new Haskell game library is built on top, as is the new purely functional user interface library.