Haskell Weekly News: January 05, 2008
Welcome to issue 68 of HWN, a newsletter covering developments in the Haskell community.
This HWN features new releases of the GHC and nhc98 Haskell compilers, a pre-release of darcs 2.0, several new user groups formed, and of course, more than 100 updated and new libraries
GHC 6.8.2. The GHC Team announced the release of GHC 6.8.2, featuring optimisation improvements, improvements to ghci and fixes to standalone deriving.
nhc98 1.2 released. Malcolm Wallace announced the release of nhc98 1.2. 1.20 is a refreshed release with many of the current core library packages included, and a variety of small bugfixes since the last release. It successfully compiles and runs more programs from the nobench suite than jhc, hbc, Hugs, or yhc. It generates an interpreted bytecode that, on the whole runs faster than that generated by Hugs or yhc, and in many cases is also faster than ghci. Although nhc98 is written in Haskell, you don't need an existing Haskell compiler on your platform to build nhc98 - a C compiler will do. Hence, it is portable to almost any unix-like machine with a 32-bit compatibility mode. Many useful build tools come included: hmake (the inspiration for ghc --make), hi (interactive read-eval-print, like Hugs or ghci), cpphs (Haskell-aware replacement for cpp) and hsc2hs (preprocessor for FFI code)
darcs 2.0.0pre2. David Roundy announced the availability of the second prerelease of darcs two, darcs 2.0.0pre2. This release fixes several severe performance bugs that were present in the first prerelease. These issues were identified and fixed thanks to the helpful testing of Simon Marlow and Peter Rockai. We also added support for compilation under ghc 6.4, so even more users should be able to test this release.
The Monad.Reader Issue 9: SoC special. Wouter Swierstra announced a new issue of The Monad.Reader, a 'Summer of Code Special' - it consists of three articles from student participants of Google's Summer of Code, describing the projects they worked on.
What's happening with Haskell? The 13th HCAR. Andres Loeh announced the 13th edition of the Haskell Communities and Activities Report
Teach yourself gtk2hs in 21 hours. Hans van Thiel announced a Gtk2Hs basics tutorial, based on the Tony Gale and Ian Main GTK+2.0 tutorial, is now available for review and comment.
atom. Tom Hawkins announced the release of atom 2007.12; atom is a domain-specific language embedded in Haskell for describing real-time control applications
HackageNew and updated libraries in the Hackage library database.
bytestring 0.9.0.4. Uploaded by DonaldStewart. bytestring: Fast, packed, strict and lazy byte arrays with a list interface.
uuagc 0.9.5. Uploaded by ArieMiddelkoop. uuagc: Attribute Grammar System of Universiteit Utrecht.
uulib 0.9.5. Uploaded by ArieMiddelkoop. uulib: Haskell Utrecht Tools Library.
llvm 0.0.2. Uploaded by BryanOSullivan. llvm: Bindings to the LLVM compiler toolkit.
HDBC-sqlite3 188.8.131.52. Uploaded by JohnGoerzen. HDBC-sqlite3: Sqlite v3 driver for HDBC.
HDBC-odbc 184.108.40.206. Uploaded by JohnGoerzen. HDBC-odbc: ODBC driver for HDBC.
dimensional 0.7.2. Uploaded by BjornBuckwalter. dimensional: Statically checked physical dimensions..
uulib 0.9.5. Uploaded by ArieMiddelkoop. uulib: Haskell Utrecht Tools Library.
hsc3 0.1. Uploaded by RohanDrape. hsc3: Haskell SuperCollider.
hosc 0.1. Uploaded by RohanDrape. hosc: Haskell Open Sound Control.
GLFW 0.2. Uploaded by PaulLiu. GLFW: A binding for GLFW, An OpenGL Framework.
control-timeout 0.1. Uploaded by AdamLangley. control-timeout: Timeout handling.
hiccup 0.35. Uploaded by KyleConsalus. hiccup: Relatively efficient Tcl interpreter with support for basic operations.
phooey 2.0. Uploaded by ConalElliott. phooey: Functional user interfaces.
reactive 0.0. Uploaded by ConalElliott. reactive: Simple foundation for functional reactive programming.
phooey 1.4. Uploaded by ConalElliott. phooey: Functional user interfaces.
hburg 1.1.1. Uploaded by IgorBohm. hburg: Haskell Bottom Up Rewrite Generator.
hinotify 0.2. Uploaded by LennartKolmodin. hinotify: Haskell binding to INotify.
cabal-rpm 0.3.3. Uploaded by BryanOSullivan. cabal-rpm: RPM package builder for Haskell Cabal source packages..
codec-libevent 0.1. Uploaded by AdamLangley. codec-libevent: Cross-platform structure serialisation.
irc 0.4. Uploaded by TrevorElliott. irc: A small library for parsing IRC messages..
dlist 0.4. Uploaded by DonaldStewart. dlist: Differences lists.
AutoForms 0.4.0. Uploaded by MadsLindstroem. AutoForms: GUI library based upon generic programming (SYB3).
bktrees 0.2.1. Uploaded by JosefSvenningsson. bktrees: A set data structure with approximate searching.
bktrees 0.2. Uploaded by JosefSvenningsson. bktrees: A set data structure with approximate searching.
binary-strict 0.1. Uploaded by AdamLangley. binary-strict: Binary deserialisation using strict ByteStrings.
haddock 0.9. Uploaded by SimonMarlow. haddock: Haddock is a documentation-generation tool for Haskell libraries.
bytestring-mmap 0.2.0. Uploaded by DonaldStewart. bytestring-mmap: mmap support for strict ByteStrings.
bytestring 0.9.0.3. Uploaded by DonaldStewart. bytestring: Fast, packed, strict and lazy byte arrays with a list interface.
hiccup 0.3. Uploaded by KyleConsalus. hiccup: Added by KyleConsalus, Wed Dec 19 17:00:42 PST 2007..
cedict 0.1.1. Uploaded by JasonDusek. cedict: Convenient Chinese character lookup..
TypeCompose 0.3. Uploaded by ConalElliott. TypeCompose: Type composition classes & instances.
bytestring-mmap 0.1.2. Uploaded by DonaldStewart. bytestring-mmap: mmap support for strict ByteStrings.
bytestring 0.9.0.2. Uploaded by DonaldStewart. bytestring: Fast, packed, strict and lazy byte arrays with a list interface.
bytestring-mmap 0.1.1. Uploaded by DonaldStewart. bytestring-mmap: mmap support for strict ByteStrings.
mkcabal 0.3. Uploaded by DonaldStewart. mkcabal: Generate cabal files for a Haskell project.
terminfo 0.1. Uploaded by Judah Jacobson. terminfo: Haskell bindings to the terminfo library..
Cabal 220.127.116.11. Uploaded by Duncan Coutts. Cabal: A framework for packaging Haskell software.
hxt 7.4. Uploaded by UweSchmidt. hxt: A collection of tools for processing XML with Haskell..
X11 1.4.1. Uploaded by Spencer Janssen. X11: A binding to the X11 graphics library.
dataenc 0.10.1. Uploaded by Magnus Therning. dataenc: Data encoding library currently providing Uuencode, Base64, Base64Url, Base32, Base32Hex, and Base16..
bytestringreadp 0.1. Uploaded by Gracjan Polak. bytestringreadp: A ReadP style parser library for ByteString.
encoding 0.3. Uploaded by HenningGuenther. encoding: A library for various character encodings.
hslua 0.2. Uploaded by Gracjan Polak. hslua: A Lua language interpreter embedding in Haskell.
xmonad-contrib 0.5. Uploaded by Spencer Janssen. xmonad-contrib: Third party extensions for xmonad.
xmonad 0.5. Uploaded by SpencerJanssen. xmonad: A tiling window manager.
pandoc 0.45. Uploaded by John MacFarlane. pandoc: Conversion between markup formats.
markov-chain 0.0.1. Uploaded by Henning Thielemann. markov-chain: Markov Chains for generating random sequences with a user definable behaviour..
parsedate 3000.0.0. Uploaded by Bjorn Bringert. parsedate: Data and time parsing for CalendarTime.
hackage2hwn 0.1. Uploaded by Don Stewart. hackage2hwn: Convert hackage = Hackage RSS feeds to Haskell Weekly News format.
hask-home 2007.12.6. Uploaded by BjornBringert. hask-home: Generate homepages for cabal packages.
hmarkup 3000.0.1. Uploaded by BjornBringert. hmarkup: Simple wikitext-like markup format implementation..
hspread 0.2. Uploaded by AndreaVezzosi. hspread: A client library for the spread toolkit.
pcap 0.4.2. Uploaded by BryanOSullivan. pcap: A system-independent interface for user-level packet capture.
hogg 0.3.0. Uploaded by ConradParker. hogg: Library and tools to manipulate the Ogg container format.
Finance-Quote-Yahoo 0.4.1. Uploaded by BradClawsie. Finance-Quote-Yahoo: Obtain quote data from finance.yahoo.com.
Monadius 0.9.20071204. Uploaded by GwernBranwen. Monadius: 2-D arcade scroller.
Shu-thing 1.0.20071203. Uploaded by GwernBranwen. Shu-thing: A vector shooter game.
hmatrix 0.1.1.0. Uploaded by AlbertoRuiz. hmatrix: Linear algebra and numerical computations.
HTTP 3001.0.3. Uploaded by BjornBringert. HTTP: Added by BjornBringert, Fri Nov 30 14:50:55 PST 2007..
rss 3000.0.1. Uploaded by BjornBringert. rss: A library for generating RSS 2.0 feeds..
haxr 3000.0.1. Uploaded by BjornBringert. haxr: XML-RPC client and server library..
fitsio 0.1. Uploaded by EricSessoms. fitsio: A library for reading and writing data files in the FITS data format..
YamlReference 0.6. Uploaded by Oren Ben Kiki. YamlReference, YAML reference implementation
LambdaShell 0.9.1. Uploaded by Robert Dockins. LambdaShell, simple shell for evaluating lambda expressions
Shellac 0.9.1. Uploaded by Robert Dockins. Shellac, a framework for creating shell envinronments
EdisonCore 18.104.22.168. Uploaded by Robert Dockins. EdisonCore, a library of efficent, purely-functional data structures (Core Implementations)
hmatrix 0.1.0.0. Uploaded by Alberto Ruiz. hmatrix, linear algebra and numerical computations
strict-concurrency 0.1. Uploaded by Don Stewart. strict-concurrency, strict concurrency abstractions
X11 1.4.0. Uploaded by Don Stewart. X11, binding to the X11 graphics library
safecopy 0.3. Uploaded by David Himmelstrup. safecopy, binary serialization with version control
HaXml 1.13.3. Uploaded by Malcolm Wallace. HaXml, utilities for manipulating XML documents
c2hs 0.15.1. Uploaded by Duncan Coutts. c2hs, C->Haskell Interface Generator
calc 0.1. Uploaded by Austin Seipp. calc, small compiler for arithmetic expressions.
miniplex 0.2.1. Uploaded by Lukas Mai. miniplex, simple 1-to-N interprocess communication
sat 1.1.1. Uploaded by Andrii Zvorygin. sat, CNF SATisfier
dimensional 0.7.1. Uploaded by Bjorn Buckwalter. dimensional, statically checked physical dimensions
hxt 7.4. Uploaded by Uwe Schmidt. hxt, collection of tools for processing XML with Haskell.
dlist 0.3.2. Uploaded by Don Stewart. dlist, difference lists. A list type supporting fast append.
mkcabal 0.2. Uploaded by Don Stewart. mkcabal, generate cabal files for a Haskell project
Chart 0.5. Uploaded by Tim Docker. Chart, a library for generating 2D Charts and Plots
MaybeT 0.1.1. Uploaded by Don Stewart. MaybeT, MaybeT monad transformer
regex-pcre 0.93. Uploaded by Chris Kuklewicz. regex-pcre, replaces Text.Regex
fixpoint 0.1. Uploaded by Roman Leshchinskiy. fixpoint, data types as fixpoints
ChasingBottoms 1.2.2. Uploaded by Nils Anders Danielsson. ChasingBottoms, support for testing partial and infinite values
GrowlNotify 0.3. Uploaded by Nicholas Burlett. GrowlNotify, notification utility for Growl
pcap 0.4.1. Uploaded by Bryan OSullivan. pcap, a system-independent interface for user-level packet capture
bencode 0.3. Uploaded by David Himmelstrup. bencode, parser and printer for bencoded data.
stream-fusion 0.1.1. Uploaded by Don Stewart. stream-fusion, provides the standard Haskell list library reimplemented to allow stream fusion. This should in general provide faster list operations, and faster code for list-heavy programs.
HTTP 3001.0.2. Uploaded by Bjorn Bringert. HTTP, library for client-side HTTP
X11-xft 0.2. Uploaded by Clemens Fruhwirth. X11-xft, bindings to the Xft, X Free Type interface library, and some Xrender parts
GrowlNotify 0.1. Uploaded by Nicholas Burlett. GrowlNotify, notification utility for Growl.
HsHaruPDF 0.0.0. Uploaded by Audrey Tang. HsHaruPDF, Haskell binding to libharu
unicode-normalization 0.1. Uploaded by Reinier Lamers. unicode-normalization, Unicode normalization using the ICU library
uniplate 1.0.1. Uploaded by Neil Mitchell. uniplate, uniform type generic traversals
lax-0.0.0. Uploaded by Wolfgang Jeltsch. lax, Lax arrows are variants of other arrows which are ?less strict? than the original arrows. They can be used, for example, to produce I/O fixpoints in situations where fixIO would fail.
fastcgi 3001.0.1. Uploaded by Bjorn Bringert. fastcgi, a Haskell library for writing FastCGI programs
Conference roundupNew user groups
Prototyping. Peter Verswyvelen announced a job using Haskell for prototyping computer animation and games
Blog noiseHaskell news from the blogosphere.
- Small shots of lambda calculus
- Pattern Matching in Ruby
- Haskell 'words' and Perl 'split'
- Word numbers, Part 4: Sort the words, sum the numbers
- Improve Your C#! Borrow from F#...
- Sun battling Microsoft (over F#?)
- zip in F# and Haskell
- Random numbers in Haskell
- A survey of Haskell unicode support
- Using Haskell for scripting tasks
- Princeton lost the DARPA Grand Challenge because of a C# memory leak
- Laziness in C#/LINQ
- Getting functional programming: currying
- The magic foldr
- Nested Parallel List Comprehensions
- FFI in Haskell
- Broadening ones horizons
- Monad Wars - 1: the Prompt
- Monad Wars - 2: the command line
- Holy Shmoly, GHC Haskell 6.8 smokes Python and Ruby away!
- Use those extra cores and beat C today! (Parallel Haskell redux)
- Parallelizing Haskell
- Python, Haskell, Ruby Smackdown
- Legitimate uses of micro-benchmarks: parameter passing and function call costs
- Holy Shmoly, GHC does some magic all by itself!
- PARE - PARallel Execution in Erlang - a response to Haskell
- Haskell design patterns are (probably) needed
- Deriving a Virtual Machine
- Games, cores, and functional languages
- Structure of a functional Java, er, method
- Current Fixation: Haskell
- Multicores, F# and SPJ: leading people to Haskell
- The IO Monad for People who Simply Don't Care
- Why I chose to learn Haskell
- Some Playing with Derivatives
- Solve Ball Clock Puzzle in Python and Haskell
- Back to functional languages... at least for a while?
- Overloading Semicolon, or, monads from 10,000 Feet
- Getting started with Haskell
- Arrows first encounter
- Arithmetic for lists
- Functional Programming on .NET - Part 1
- N-Queens in Haskell
- N-Queens in the writer monad
- Unit testing in Haskell
- Calculating the reflect-rotate-translate normal form for an isometry of the plane in Haskell, and verifying it with QuickCheck
- Visualizing 2D convex hull using Gtk and OpenGL in Haskell
- Hugs for the Nintendo DS
- Comparative terseness of Perl and Haskell
- Note on point-free programming style
- Haskell Fibonacci Revisited
- PXSL Tools 1.0: Your ticket out of XML Hell
- Haskell is kind of cool
- Learning Haskell with ProjectEuler
- Infinite lazy Knuth-Bendix completion for monoids in Haskell
- Hugs for the Nintendo DS
- My Type of Language...
- Catching pods with hpodder
- Hamming's problem
- Sharper function operators
- Xiangqiboard: play Xiangqi against a computer opponent
- Haskell is kind of cool
- FParsec - A Parser Combinator Library for F#
- LLVM bindings for Haskell
- perpubplat 0.9 - You're Looking at It: blog framework for Haskell
- The point of pointfree
- Web Objects and the underappreciated recursive do
- Equality operators in PHP and Haskell
- Pushing Haskell's type system to the limits: A reflective JSON serializer
- A Wake Up Call for the Logic Programming Community
- Design your functions for partial application
- Taxicab Numbers
- Composing Contracts
- HTTP content-type comparison at the type level
- Exploring JPEG
- What's interesting to me about SquirrelMail attack
- Haskell and F#: Language Design
- An example of Haskell's beauty
- My resolve to learn Haskell has become stronger after having watched 'A Taste of Haskell'
- Emacs love w/ Haskell
- Finding my way
- Why not Scala?
- A Different Kind of Obscurity
- Languages that save you some typing
Quotes of the Week
- Conal: For me, the heart of functional programming is exactly this separation between model and presentation. The former is naturally functional and compositional, while the latter is often imperative/sequential and not-so-compositional. IO belongs with the latter.
- ddarius: has programmed too much in Haskell. He now produces code that -compiles- and works the first time
- disspy: If all you know is C, everything begins to look like a segmentation fault.
- markedtrees: (On the city of Haskell) Ah yes, Haskell. Where all the types are strong, all the men carry arrows, and all the children are above average.
- ola-bini: Haskell's type system is really nice, for example, but OCaml's really feels like half of it exists just to cover up holes in the other half, I'm half way into Erlang, but for several reasons the language feels very primitive.
- so1i.warazd: I'm more and more comfortable spending time with Haskell these days. Haskell may not be the next thing, but whatever the next big thing is, it's probably going to have Haskelly fingerprints all over it?..
- sylvan: think that the perceived difficulty in using purely functional programming is probably a bit exaggerated these days, as all it means is 'we're explicit about where side effects occur'
- falvo: I really wish that someone would come up with a type-safe replacement for the likes of Python. Oh, wait, it's called Haskell! Unfortunately, I'm forbidden from using Haskell at work. Sigh
- Tyler Spaulding: eventually even 'simple' programs will nned multiple threads. Does that mean developers will suddenly flock to Haskell? Again, no. Language designers are well aware of the situation. Sun and Microsoft are constantly working on improving the Java and .NET frameworks. And by the time the average programmer needs it, both will have plenty of support for easy threading
- ricky clarkson: Haskell is full of Aha and Hah moments for me
- five9a2: Concurrency aside, I find it common to write Haskell code that is as fast as C. It is true that for most things, the C can be tweaked to go a bit faster, but that tweaking needs to be done on a case-by-case basis. In Haskell, it is easier to compose optimized components. Better algorithms beat an optimized compiler any day and using the best algorithms everywhere in C code tends to be painful, error-prone, and usually disparaged as premature optimization.
- Jeff Moser: It's been this fear of skills rot that has pushed me to look into Lisp, Haskell, F#, Erlang, and other languages to avoid The Blub Paradox.
- NFJS 2008 predictions: If you've never programmed in Haskell, now's a good time to learn, because those concepts and syntax are fast making their way towards you...
- The honey monster: With the advent of multi-core CPUs and the promise of many core processors in the near future it occurrs to me that my interest in functional programming languages could not of happened at a more opportune time. It is not that imperative programming languages are not as capable, merely that functional programming languages seem to be more natural fit
About the Haskell Weekly News
To help create new editions of this newsletter, please
see the contributing
information. Send stories to
dons at galois.com. The darcs
repository is available at
darcs get http://code.haskell.org/~dons/code/hwn/