Haskell Weekly News: December 25, 2008
Welcome to issue 98 of HWN, a newsletter covering developments in the Haskell community.
Happy holidays! An exciting HWN for you this week, including a number of cool new libraries, the public release of Cryptol, a Haskell logo contest, and the second most awesome GHC bug ever (see augustss's quote at the end of the Quotes section for the most awesome GHC bug ever).
Cryptol now freely available. Don Stewart announced that Cryptol, the language of cryptography, is now available to the public! Cryptol is a domain specific language for the design, implementation and verification of cryptographic algorithms, developed over the past decade by Galois for the United States National Security Agency. It has been used successfully in a number of projects, and is also in use at Rockwell Collins, Inc. Cryptol is implemented in Haskell.
llvm-0.4.0.1. Lennart Augustsson announced version 0.4.0.1 of the release that is quite incompatible with the old 0.0.2 release.) Haskell LLVM bindings. LLVM is a virtual machine and the bindings allow you to generate code for this virtual machine. This code can then be executed by a JIT or written to a file for further processing by the LLVM tools.
bytestring-trie 0.1.0. wren ng thornton announced the release of bytestring-trie 0.1.0, an efficient finite map from (byte)strings to values. The implementation is based on big-endian patricia trees, like Data.IntMap.
RWH book club. Don Stewart announced that Matt Podwysocki has set up a Real World Haskell book club, a mailing list on google groups with already some 200 members discussing typical new user Haskell questions. Feel free to join if you like talking about Haskell, or teaching new users.
Thingie-0.80. Jeff Heard announced the release of Thingie, a library for creating 2D visualizations in a purely functional manner. It supports static visualizations and animation, and like most vis libraries, can probably do games as well as simple viz graphics.
typehash version 1.3. Lennart Augustsson announced the release of the typehash library, which allows you to produce a unique identifier (a cryptographic hash) for a type. This is useful if you save values of some type to a file (text, binary, whatever format you wish) and then when you read it back in again you want to verify that the type you want to read is the one you actually wrote. The library also supports type codes, which encode the complete structure of a type and can be used for finer comparison than just equality.
uvector-algorithms 0.1. Dan Doel announced the release of uvector-algorithms, a library of algorithms (mostly sorting) for the mutable arrays defined in uvector. It has several varieties of sorting, including introsort (quicksort which falls back on heapsort in bad cases), heapsort, a simple top- down merge sort and a radix sort. Also exposed are the operations that allow you to use the arrays as heaps and a combinator for safely using these mutable array algorithms to sort immutable arrays. All algorithms have been painstakingly profiled and optimized.
Data.List.Split. Brent Yorgey announced the release of Data.List.Split, which provides a wide range of strategies and a unified combinator framework for splitting lists with respect to some sort of delimiter.
HLint 1.0. Neil Mitchell announced the re-release of HLint, a tool for making suggestions to improve your Haskell code. Previously this tool was called Dr Haskell and depended on a working installation of Yhc; now it depends on GHC 6.10.1.
length of module name affecting performance??. Daniel GorÃn reported a GHC bug where in certain cases, changing the name of a module to something longer results in a 2x-3x performance hit! Strange but true.
Coroutines. Ryan Ingram posted some interesting code showing how to implement coroutines with session types.
Type wildcards. Eyal Lotem proposed a 'type wildcards' extension to the language.
Blog noiseHaskell news from the blogosphere.
Galois, Inc: Cryptol, the language of cryptography, now available.
Dan Piponi (sigfpe): The Mother of all Monads.
Real-World Haskell: Pat Eyler Interviews the Real World Haskell Team.
Philip Wadler: Unsafe.
Conrad Parker: Release: HOgg 0.4.1.
ezekiel smithburg: fast string appending/concatenation in haskell.
Brent Yorgey: Data.List.Split.
Alson Kemp: Turbinado: Implementing a poor-man's wiki.
Luke Palmer: Reactive spaces.
Conal Elliott: Smarter termination for thread racing.
Real-World Haskell: RWH on Twitter.
>>> Muharem Hrnjadovic: My new favourite book.
Alson Kemp: Turbinado update.
Philip Wadler: Type Safe Pattern Combinators, by Morten Rhiger.
Osfameron: Crossword puzzles in Haskell.
Brent Yorgey: QuickCheck rocks my socks.
>>> Matt Youell: If programming languages were martial arts.
>>> Sebastian Fischer: Haskell idioms I did not understand before hacking them on my own.
>>> Brian McCallister: Real World Haskell, for Jon.
Ivan Lazar Miljenovic: RWH Arrives Down Under!.
>>> Thomas ten Cate: XMonad with Ubuntu, dvorak, Pidgin and Skype.
>>> Jeremy Frens: PE Problem #3 in All Languages.
Jeremy Shaw: Data Migration with HApps-Data.
Real World Haskell: Haskell around the world.
Dougal Stanton: A brief look at fingertrees.
Quotes of the Week
- luqui: no!!! I was building a joke, but then I sent it before I thought of one.
- roconnor: We put up a clothes line and made a turing machine by hand at a party once ... that is the sort of parties I go to.
- cjs: In what other language could I have learned so much about Win32 programming (summary: basically, the Windows 3.0 API but with all sorts of hacks to deal with having more than one thread in the system), and come out having *enjoyed* myself? Praise to the Lord!
- PaulJohnson: A paradox of the Haskell world is that, while the language is Vulcan, the community around it is dominated by Warm Fuzziness. Clearly the two are not mutually exclusive.
- Botje: Caleskell even has unsafeSolveHaltingProblem?
- Taejo: * Taejo needs to write Sitar Hero in Yampa
- dons: it is safer for incompetent people to be working in Haskell than C++.
- mpeter: the quality of my code increased drastically when i realized i should stop telling the computer to do things which were stupid.
- byorgey: <Cale> RandomT/Random are effectively state monads. (in fact, they're thin candy shells around StateT/State.) <byorgey> "newtype: melts in the compiler, not in your hands"
- quicksilver: [on classes having the same name as constructs in other languages] it's like having a laxative called "after dinner mint", and people being upset when they were looking for something nice to eat after dinner.
- quicksilver: #haskell is a loquacracy!
- quicksilver: It's also the same thing as the Yoneda lemma. That's the thing about maths. Everything is actually the same.
- hugo: i feel like i was drugged with imperative programming, and now im in rehab.
- chrisdone: yo dawg we heard you like haskell so we installed a lambdabot in your ghci so you can monad while you monad
- augustss: ghc had a bug once where it deleted the source file if it had a type error. Quite sensible, I think.
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/