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!
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:
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:
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.
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
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):
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
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:
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…
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.”