[Haskell] Haskell Weekly News: Issue 98 - December 25, 2008

Brent Yorgey byorgey at seas.upenn.edu
Thu Dec 25 13:26:56 EST 2008


---------------------------------------------------------------------------
Haskell Weekly News
http://sequence.complete.org/hwn/20081225
Issue 98 - December 25, 2008
---------------------------------------------------------------------------

   Welcome to issue 98 of HWN, a newsletter covering developments in the
   [1]Haskell community.

   Happy holidays! An exciting HWN for you this week, including a number
   of cool new libraries, the [2]public release of [3]Cryptol, a
   [4]Haskell logo contest, and the [5]second most awesome GHC bug ever
   (see augustss's quote at the end of the Quotes section for the most
   awesome GHC bug ever).

Announcements

   Hieroglyph 0.85. Jeff Heard [6]announced that the Thingie library has
   been renamed [7]Hieroglyph, and now has support for displaying images
   on the Cairo canvas.

   Cryptol now freely available. Don Stewart [8]announced that [9]Cryptol,
   the language of cryptography, is [10]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.

   Control.Monad.IfElse. Jeff Heard [11]announced the
   [12]Control.Monad.IfElse module, which provides useful anaphoric and
   monadic versions of if-else and when.

   llvm-0.4.0.1. Lennart Augustsson [13]announced version 0.4.0.1 of the
   [14]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 [15]announced the release of
   [16]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 [17]announced that Matt Podwysocki has set
   up a [18]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 [19]announced the release of [20]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 [21]announced the release of
   the [22]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 [23]announced the release of
   [24]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 [25]announced the release of
   [26]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.

   Hoogle with more libraries. Neil Mitchell [27]announced that [28]Hoogle
   will now search lots of the libraries present on hackage!

   HLint 1.0. Neil Mitchell [29]announced the re-release of [30]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.

   rangemin-1.0. Louis Wasserman [31]announced the release of
   [32]rangemin, a library for efficiently preprocessing an array to find
   minimum elements of subranges of the array in constant time.

Discussion

   length of module name affecting performance??. Daniel Gorin
   [33]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.

   Time for a new logo?. Don Stewart [34]proposed a competition to produce
   a new Haskell logo! Submissions should go on the [35]wiki page; the
   deadline for logo submissions is December 31.

   Pattern combinators. Andrew Wagner [36]started a thread turning a
   [37]paper on pattern-matching in Haskell into actual code for hackage.

   Coroutines. Ryan Ingram [38]posted some interesting code showing how to
   implement coroutines with session types.

   Type wildcards. Eyal Lotem [39]proposed a 'type wildcards' extension to
   the language.

Blog noise

   [40]Haskell news from the [41]blogosphere.
     * Galois, Inc: [42]Cryptol, the language of cryptography, now
       available.
     * Dan Piponi (sigfpe): [43]The Mother of all Monads.
     * Real-World Haskell: [44]Pat Eyler Interviews the Real World Haskell
       Team.
     * Philip Wadler: [45]Unsafe.
     * Conrad Parker: [46]Release: HOgg 0.4.1.
     * ezekiel smithburg: [47]fast string appending/concatenation in
       haskell.
     * Brent Yorgey: [48]Data.List.Split.
     * Alson Kemp: [49]Turbinado: Implementing a poor-man's wiki.
     * Luke Palmer: [50]Reactive spaces.
     * Conal Elliott: [51]Smarter termination for thread racing.
     * Real-World Haskell: [52]RWH on Twitter.
     * >>> Muharem Hrnjadovic: [53]My new favourite book.
     * Alson Kemp: [54]Turbinado update.
     * Philip Wadler: [55]Type Safe Pattern Combinators, by Morten Rhiger.
     * Osfameron: [56]Crossword puzzles in Haskell.
     * Brent Yorgey: [57]QuickCheck rocks my socks.
     * >>> Matt Youell: [58]If programming languages were martial arts.
     * >>> Sebastian Fischer: [59]Haskell idioms I did not understand
       before hacking them on my own.
     * Alson Kemp: [60]Thinking about Haskell: You Know Lazy Evaluation;
       You Just Don't Know It.
     * >>> Brian McCallister: [61]Real World Haskell, for Jon.
     * Ivan Lazar Miljenovic: [62]RWH Arrives Down Under!.
     * >>> Thomas ten Cate: [63]XMonad with Ubuntu, dvorak, Pidgin and
       Skype.
     * >>> Jeremy Frens: [64]PE Problem #3 in All Languages.
     * Jeremy Shaw: [65]Data Migration with HApps-Data.
     * Chris Done: [66]Haskell Formlets: Composable web form construction
       and validation.
     * Real World Haskell: [67]Haskell around the world.
     * Dougal Stanton: [68]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

   New editions are posted to [69]the Haskell mailing list as well as to
   [70]the Haskell Sequence and [71]Planet Haskell. [72]RSS is also
   available, and headlines appear on [73]haskell.org.

   To help create new editions of this newsletter, please see the
   information on [74]how to contribute. Send stories to byorgey at cis
   dot upenn dot edu. The darcs repository is available at darcs get
   [75]http://code.haskell.org/~byorgey/code/hwn/ .

References

   1. http://haskell.org/
   2. http://www.galois.com/blog/2008/12/24/cryptol-the-language-of-cryptography-now-available/
   3. http://www.cryptol.net/
   4. http://haskell.org/haskellwiki/Haskell_logos/New_logo_ideas
   5. http://thread.gmane.org/gmane.comp.lang.haskell.glasgow.user/16037
   6. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49528
   7. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hieroglyph
   8. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49516
   9. http://www.cryptol.net/
  10. http://www.galois.com/blog/2008/12/24/cryptol-the-language-of-cryptography-now-available/
  11. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49365
  12. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/IfElse
  13. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49340
  14. file://localhost/home/brent/hacking/hwn/(This
  15. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49234
  16. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/bytestring-trie
  17. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49168
  18. http://groups.google.com/group/real-world-haskell-book-club
  19. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49147
  20. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Thingie
  21. http://article.gmane.org/gmane.comp.lang.haskell.cafe/48902
  22. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/typehash
  23. http://article.gmane.org/gmane.comp.lang.haskell.cafe/48889
  24. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/uvector%2Dalgorithms
  25. http://article.gmane.org/gmane.comp.lang.haskell.general/16700
  26. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/split
  27. http://article.gmane.org/gmane.comp.lang.haskell.general/16698
  28. http://haskell.org/hoogle
  29. http://article.gmane.org/gmane.comp.lang.haskell.general/16692
  30. http://www-users.cs.york.ac.uk/~ndm/hlint/
  31. http://article.gmane.org/gmane.comp.lang.haskell.general/16686
  32. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/rangemin
  33. http://thread.gmane.org/gmane.comp.lang.haskell.glasgow.user/16037
  34. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/48892
  35. http://haskell.org/haskellwiki/Haskell_logos/New_logo_ideas
  36. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/49267
  37. http://www.itu.dk/people/mir/typesafepatterns.pdf
  38. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/49108
  39. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/48987
  40. http://planet.haskell.org/
  41. http://haskell.org/haskellwiki/Blog_articles
  42. http://www.galois.com/blog/2008/12/24/cryptol-the-language-of-cryptography-now-available/
  43. http://sigfpe.blogspot.com/2008/12/mother-of-all-monads.html
  44. http://www.realworldhaskell.org/blog/2008/12/24/pat-eyler-interviews-the-real-world-haskell-team/
  45. http://wadler.blogspot.com/2008/12/unsafe.html
  46. http://blog.kfish.org/2008/12/release-hogg-041.html
  47. http://tehgeekmeister.wordpress.com/2008/12/22/fast-string-appendingconcatenation-in-haskell/
  48. http://byorgey.wordpress.com/2008/12/21/datalistsplit/
  49. http://www.alsonkemp.com/haskell/turbinado-implementing-a-poor-mans-wiki/
  50. file://localhost/home/brent/hacking/hwn/20081225.html
  51. http://conal.net/blog/posts/smarter-termination-for-thread-racing/
  52. http://www.realworldhaskell.org/blog/2008/12/18/rwh-on-twitter/
  53. http://muharem.wordpress.com/2008/12/18/my-favourite-book/
  54. http://www.alsonkemp.com/haskell/turbinado-update/
  55. http://wadler.blogspot.com/2008/12/type-safe-pattern-combinators.html
  56. http://greenokapi.net/blog/2008/12/18/crossword-puzzles-in-haskell/
  57. http://byorgey.wordpress.com/2008/12/16/quickcheck-rocks-my-socks/
  58. http://www.youell.com/matt/writing/?p=46
  59. http://www-ps.informatik.uni-kiel.de/~sebf/projects/haskell-idioms-i-did-not-understand-before-hacking-them-on-my-own.html
  60. http://www.alsonkemp.com/?p=110
  61. http://kasparov.skife.org/blog/src/haskell/real-world-haskell-for-jon.html
  62. http://ivanmiljenovic.wordpress.com/?p=30
  63. http://typethinker.blogspot.com/2008/12/xmonad-with-ubuntu-dvorak-pidgin-and.html
  64. http://jdfrens.blogspot.com/2008/12/pe-problem-3-in-all-languages.html
  65. http://nhlab.blogspot.com/2008/12/data-migration-with-happs-data.html
  66. http://chrisdone.com/blog/2008/12/14/Haskell-Formlets:-Composable-web-form-construction-and-validation
  67. http://www.realworldhaskell.org/blog/?p=154
  68. http://www.dougalstanton.net/blog/index.php/2008/12/12/a-brief-look-at-fingertrees/
  69. http://www.haskell.org/mailman/listinfo/haskell
  70. http://sequence.complete.org/
  71. http://planet.haskell.org/
  72. http://sequence.complete.org/node/feed
  73. http://haskell.org/
  74. http://haskell.org/haskellwiki/HWN
  75. http://code.haskell.org/~byorgey/code/hwn/


More information about the Haskell mailing list