Haskell Weekly News: November 15, 2008
Welcome to issue 93 of HWN, a newsletter covering developments in the Haskell community.
Congratulations to Ganesh (aka Heffalump) and Amanda on the birth of Alexander Suresh Kerr Sittampalam!
bustle-0.1. Will Thompson announced the release of Bustle, a tool to show diagrams of D-Bus traffic for profiling purposes. It consists of a small C executable to log traffic, and a Gtk+ application which draws diagrams using Cairo.
haskell-src-exts 0.4.1. Niklas Broberg announced a new major release of the haskell-src-exts package, an extension of the standard haskell-src package which handles most common syntactic extensions to Haskell. The new release features a cleaned up AST and names without ugly disambiguation prefixes.
darcs 2.1.1rc2. Eric Kow (kowey) announced the release of darcs 2.1.1rc2, which adds support for GHC 6.10.1. It also includes a Windows bug fix. If you're using GHC 6.10.1 or Windows, give it a try and let the darcs development team know how it works.
hpapi 0.1 release. Michael D. Adams announced the first release of hpapi, Performance API (PAPI) bindings for Haskell. PAPI provides access to various CPU counters such as cache-miss, instruction and pipeline stall counts.
Reactive library (FRP) and mailing list. Conal Elliott announced the release of Reactive, a library for functional reactive programming (FRP), similar to the original Fran but with a more modern interface (using standard type classes) and a hybrid push/pull implementation. It is designed to be used in a variety of contexts, such as interactive 2D and 3D graphics, graphical user interfaces, web services, and automatic recompilation/re-execution. There is also now a mailing list and a feature/bug tracker.
ANN (sorta): OpenGL with extra type safety. Neal Alexander announced a modification of the hOpenGL (and GLFW) source tree to force extra type checking on its various IO actions using the -XGeneralizedNewtypeDeriving extension. The main motivation was for writing concurrent OpenGL applications; the second motivation was to enforce static type checking on commands that can only be executed in certain OpenGL contexts (sending vertex data for example). Hopefully the code will be uploaded to Hackage as a separate package soon.
FieldTrip library (functional 3D) and mailing list. Conal Elliott announced the release of FieldTrip, a library for functional 3D graphics. It is intended for building static, animated, and interactive 3D geometry, efficient enough for real-time synthesis and display. FieldTrip also has a mailing list and a feature/bug tracker.
gitit 0.2 release - wiki using HAppS, git, pandoc. John MacFarlane announced the upload of an early version of gitit, a Haskell wiki program, to HackageDB. Gitit uses HAppS as a webserver, git for file storage, pandoc for rendering the (markdown) pages, and highlighting-kate for highlighted source code. You can try it out here. Comments and patches welcome.
Proof that Haskell is RT. Andrew Birkett asked whether there exists a formal proof that the Haskell language is referentially transparent. Such a thing cannot exist, since Haskell has no formally defined semantics, but an interesting discussion about referential transparency and semantics ensued anyway.
What *not* to use Haskell for. Dave Tapley asked how people answer the question, "what does Haskell not do well?" Unfortunately, it seems that there is no good answer to this question and the thread degenerated into a discussion of all the great things you can do with Haskell. If only Haskell sucked more.
Blog noiseHaskell news from the blogosphere.
Braden Shepherdson: Pimp Your XMonad #2: SmartBorders. The second in Braden's series on customising xmonad explains how to use the NoBorders extension to get rid of window borders when you don't want them.
Real-World Haskell: Real World Haskell Electronic Edition Now On Sale.
Conal Elliott: More beautiful fold zipping.
>>> Stephen: Endless Cavern. A procedurally-generated tessellated-cavern flying game.
Twan van Laarhoven: Arrays without bounds. Unbounded arrays (with O(1) amortized access) in Haskell!
"The GHC Team": Comparing concurrent linked-list implementations in Haskell.
Ketil Malde: 454 sequencing and parsing the SFF binary format.
Tom Schrijvers: Type Invariants for Haskell. Tom, Louis-Julien Guillemette, and Stefan Monnier's paper on Type Invariants for Haskell, which was recently accepted at PLPV'09.
Conal Elliott: Another lovely example of type class morphisms. Conal elaborates on Max Rabkin's recent post on composable folds.
Real-World Haskell: Beautiful Parallelism: Harnessing Multicores with Haskell. Don Stewart will be talking about programming mainstream multicore systems with Haskell at SC'08 next week in Austin, Texas.
Luke Palmer: Sketch of Udon (Version Control/Packaging system). Luke sketches a high-level design for a distributed storage system that could be used as the basis for solving a number of interesting problems.
Galois, Inc: Galois awarded NASA research contract.
Mark Jason Dominus: Representing ordinal numbers in the computer and elsewhere.
The GHC Team: Bootstrapping cabal-install.
Ben Moseley: Why does Functional Programming matter?.
Quotes of the Week
- BMeph: In a functional world, students would ask how that index shadowing works in those funny 'for' statements...
- digit: i'm almost annoyed at how brilliant xmonad is.
- _pizza_: i think Haskell is undoubtedly the world's best programming language for discovering the first few dozen numbers in the Fibonacci sequence over IRC.
- adu: let uncat3  =  ; uncat3 xs = (let (ys, zs) = splitAt 3 xs in ys : uncat3 zs) ; getFrom x y = map (x !!) $ map (fromIntegral . ((\x -> fromIntegral $ foldl (.|.) (0::Word8) (zipWith (\c n -> if c then bit n else (0::Word8)) x [0..2])) :: [Bool] -> Int)) $ reverse . uncat3 . reverse . concat . map (((\x -> map (testBit x) [7,6..0]) :: Word8 -> [Bool]) . fromIntegral . ord) $ y in getFrom " HWdelor" "e\184-\235"
- Beelsebob: ((:) "pigs eat") <^(++)^> ((:) " robot monkies")
About the Haskell Weekly News
To help create new editions of this newsletter, please
see the information on how
to contribute. Send stories to
byorgey at cis dot upenn
dot edu. The darcs repository is available at
darcs get http://code.haskell.org/~byorgey/code/hwn/