[Haskell] Haskell Weekly News: January 31, 2007
Donald Bruce Stewart
dons at cse.unsw.edu.au
Wed Jan 31 04:42:29 EST 2007
---------------------------------------------------------------------------
Haskell Weekly News
http://sequence.complete.org/hwn/20070131
Issue 57 - January 31, 2007
---------------------------------------------------------------------------
Welcome to issue 57 of HWN, a weekly newsletter covering developments
in the [1]Haskell community.
Lots of news to report after a break due to Hac '07 and POPL.
1. http://haskell.org/
Announcements
lhs2tex 1.12. Andres Loeh [2]announced lhs2TeX version 1.12, a
preprocessor to generate LaTeX code from literate Haskell sources.
[3]lhs2TeX includes the following features: highly customized output;
liberal parser; generate multiple versions of a program or document
from a single source; active documents: call Haskell to generate parts
of the document (useful for papers on Haskell); a manual explaining
all the important aspects of lhs2TeX.
2. http://article.gmane.org/gmane.comp.lang.haskell.general/14733
3. http://www.iai.uni-bonn.de/~loeh/lhs2tex/
hscom. Krasimir Angelov [4]announced the [5]hscom library. This is a
FFI library for Microsoft COM. It is far from complete and it doesn't
have automatic IDL to Haskell translator but if you have ever thought
to start writing you own COM library for Haskell then please take a
look. It is designed to be as close as possible to the standard FFI
library for C.
4. http://article.gmane.org/gmane.comp.lang.haskell.general/14743
5. http://darcs.haskell.org/packages/hscom/
DeepArrow 0.0: Arrows for 'deep application'. Conal Elliott
[6]announced the birth of [7]DeepArrow, a Haskell library for
composable 'editors' of pure values. DeepArrow enables 'deep function
application' in two senses: deep application of functions and
application of deep functions. These tools generalize beyond values
and functions, via the DeepArrow subclass of the Arrow type class.
6. http://article.gmane.org/gmane.comp.lang.haskell.general/14753
7. http://haskell.org/haskellwiki/DeepArrow
Phooey 0.1: functional user interface library. Conal Elliott
[8]announced version 0.1 of [9]Phooey, an arrow-based functional user
interface library. New in version 0.1: documentation, text input,
boolean input/output, mtl. Phooey is now used in [10]TV.
8. http://article.gmane.org/gmane.comp.lang.haskell.general/14754
9. http://haskell.org/haskellwiki/phooey
10. http://haskell.org/haskellwiki/TV
TV 0.0: Tangible Values. Conal Elliott [11]announced TV, a library for
composing tangible values (TVs): values that carry along external
interfaces. In particular, TVs can be composed to create new TVs, and
they can be directly executed with a friendly GUI, a process that
reads and writes character streams, or many other kinds interfaces.
Values and interfaces are combined for direct use, and separable for
composability. [12]See the project page.
11. http://article.gmane.org/gmane.comp.lang.haskell.general/14755
12. http://haskell.org/haskellwiki/TV
polyparse 1.00. Malcolm Wallace [13]announced the release of
[14]PolyParse, a collection of parser combinator libraries in Haskell.
They were all previously distributed as part of HaXml, but are now
split out to make them more widely available.
13. http://article.gmane.org/gmane.comp.lang.haskell.general/14777
14. http://www.cs.york.ac.uk/fp/polyparse
Data.Binary: binary serialisation. The Binary Strike Force
[15]announced the release of [16]Binary, a high performance, pure
binary serialisation library for Haskell. It is available from
[17]Hackage and [18]darcs. The 'binary' package provides efficient
serialisation of Haskell values to and from lazy ByteStrings.
ByteStrings constructed this way may then be written to disk, written
to the network, or further processed (e.g. stored in memory directly,
or compressed in memory with zlib or bzlib).
15. http://article.gmane.org/gmane.comp.lang.haskell.general/14800
16. http://www.cse.unsw.edu.au/~dons/binary/Data-Binary.html
17. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/binary/0.2
18. http://darcs.haskell.org/binary
DrIFT 2.2.1: support for Data.Binary. John Meacham [19]announced that
[20]DrIFT 2.2.1 is out and now has support for the Data.Binary module.
19. http://article.gmane.org/gmane.comp.lang.haskell.general/14802
20. http://repetae.net/~john/computer/haskell/DrIFT/
A History of Haskell. Simon Peyton-Jones [21]mentioned that the paper
'A History of Haskell: being lazy with class', authored by Paul Hudak,
John Hughes, Phil Wadler and Simon, is finally done. [22]You can get a
copy now!
21. http://article.gmane.org/gmane.comp.lang.haskell.general/14793
22. http://research.microsoft.com/~simonpj/papers/history-of-haskell/index.htm
piggybackGHC 0.1. Martin Grabmueller [23]announced the release 0.1 of
[24]piggybackGHC, a small utility package for using GHC for lexing and
parsing Haskell source code. The library uses the GHC library for all
the hard stuff, so all supported GHC extensions are available.
23. http://article.gmane.org/gmane.comp.lang.haskell.cafe/18461
24. http://uebb.cs.tu-berlin.de/~magr/projects/piggybackGHC/doc/
regex-tdfa 0.20. Chris Kuklewicz [25]announced regex-tdfa, a 'tagged'
DFA regular expression backend in pure Haskell, along with a suite of
updates to the existing regex packages.
25. http://article.gmane.org/gmane.comp.lang.haskell.cafe/18553
hpaste.org. Eric Mertens [26]announced 'hpaste', the [27]Haskell
Pastebin. Developed over a few days by many of the members of the
Haskell irc channel, it provies a reliable paste bot with
Haskell-specific capabilities.
26. http://article.gmane.org/gmane.comp.lang.haskell.cafe/18565
27. http://hpaste.org/
Haskell'
This section covers the [28]Haskell' standardisation process.
* [29]Views in Haskell
* [30]Pattern guards
* [31]Help from the community
* [32]Polymorphic Components
28. http://hackage.haskell.org/trac/haskell-prime
29. http://thread.gmane.org/gmane.comp.lang.haskell.general/14766
30. http://thread.gmane.org/gmane.comp.lang.haskell.prime/1992
31. http://thread.gmane.org/gmane.comp.lang.haskell.prime/2002/focus=2026
32. http://thread.gmane.org/gmane.comp.lang.haskell.prime/2002
Libraries
This week's proposals and extensions to the [33]standard libraries.
* [34]Splitting up the crypto package
* [35]Cofunctors
* [36]System.Timeout module for base
* [37]Unsafe aspects of ByteString
* [38]Add Data.String containing IsString(fromString) to base
* [39]Make StateT in mtl lazy
33. http://haskell.org/haskellwiki/Library_submissions
34. http://article.gmane.org/gmane.comp.lang.haskell.libraries/6108
35. http://article.gmane.org/gmane.comp.lang.haskell.libraries/6108
36. http://thread.gmane.org/gmane.comp.lang.haskell.libraries/6144
37. http://thread.gmane.org/gmane.comp.lang.haskell.libraries/6152
38. http://thread.gmane.org/gmane.comp.lang.haskell.libraries/6172
39. http://thread.gmane.org/gmane.comp.lang.haskell.libraries/6174
Discussion
Beautiful concurrency. Simon Peyton-Jones [40]announced that the
revised draft of 'Beautiful concurrency' is now [41]online, and
feedback is welcome.
40. http://article.gmane.org/gmane.comp.lang.haskell.general/14739
41. http://haskell.org/haskellwiki/Talk:SantaClausProblemV2
Even higher-order abstract syntax: typeclasses vs GADT. Oleg Kiselyov
[42]demonstrated a typeclass implementation of the canonical use case
for GADTs: a higher-order abstract-syntax-based embedding of a
language in Haskell, with implement static and dynamic semantics of
the language. The interpreter of the language is tagless and
statically assured: only well-typed terms may be evaluated, and the
evaluation of those does not get stuck.
42. http://article.gmane.org/gmane.comp.lang.haskell.general/14764
JHC call for volunteers. John Meacham [43]mentioned that Jhc has
recently gotten a ghc back end, making it much closer to mainstream
use as an optimizing 'front end' to ghc. In addition to some of jhc's
crazy optimizations, it implements several extensions to the language
which will likely prove interesting to play with to some. John would
like to welcome any volunteers who would like to help develop the ghc
back end while I work on improving the grin back end and optimizations
in general, to make JHC a viable alternative compiler for Haskell.
43. http://article.gmane.org/gmane.comp.lang.haskell.general/14798
State monad strictness. Yitzchak Gale [44]pondered strictness in State
monads.
44. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/18276
Using PAPI to measure performance with CPU events. Alexey Yakushev
[45]described how to use the new PAPI library together with GHC to
gather performance information from your CPU (cache misses, branch
misprediction). At present only cache miss information is supported in
a platform independent way (though not tested). Also, this
implementation separates the performance information for the garbage
collector and the mutator so it is quite useful if you are
implementing an optimisation.
45. http://article.gmane.org/gmane.comp.lang.haskell.cafe/18315
Simple proof-carrying code in Haskell 98. Oleg Kiselyov
[46]demonstrated a datatype `Terminates' that can hold only an
assuredly terminating (strongly normalizable) term in untyped
lambda-calculus. Furthermore, the values of the datatype `Terminates'
contain all and only those untyped lambda-calculus terms with that
property. To create the value `Terminates', the user submits the term
in question and the proof of its termination. The proof will be
verified -- and if it holds, the Terminates certificate will be
created.
46. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/18375
Article review: Category Theory. David House [47]mentioned that he's
written a chapter for the Wikibook that attempts to teach some basic
Category Theory in a Haskell hacker-friendly fashion.
47. http://en.wikibooks.org/wiki/Haskell/Category_theory
IO is not a monad. Yitzchak Gale [48]sparked a long thread on issues
of parametricity and polymorphic seq in the IO monad
48. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/18569
Monad laws for fail. Ulf Norrel [49]wondered about what properties
'fail' should satisify
49. http://article.gmane.org/gmane.comp.lang.haskell.libraries/6162
Jobs
Postdoctoral Research Fellow at St Andrews. Kevin Hammond
[50]announced a vacancy for a postdoctoral research fellow, working
with the Hume language developed jointly with [51]Heriot-Watt
University. Knowledge of Haskell and other functional programming
technologies is a distinct advantage.
50. http://article.gmane.org/gmane.comp.lang.haskell.general/14744
51. http://www.hume-lang.org/
Blog noise
[52]Haskell news from the blogosphere.
* [53]Haskell: Too Hard, or Just Hard Enough?
* [54]One Month with Haskell
* [55]foldr and foldl in JavaScript
* [56]Haskell Revisited
* [57]Haskell, first impressions (with sexy results)
* [58]Haskell: bootstrapping into a clue about monads
* [59]How To Use Monad Transformers
* [60]Error handling in Haskell
* [61]Learning Haskell inch by inch
* [62]Haskell: the Basics of Type Classes
* [63]Clockwork languages
* [64]Fun with Haskell
* [65]Programming Productivity and Programming Languages
* [66]Second order folds
* [67]Happy Haskell hacking
* [68]Simple STM TCP server
* [69]Languages and paradigms and cores, oh my!
* [70]Bug Reporting
* [71]High performance Haskell
* [72]Threads
* [73]Literate Haskell
* [74]The end of free lunch CPU performance and other papers
* [75]The monad behind every zipper
* [76]The functional C programmer
* [77]Strictly for Lazy Programmers
* [78]Haskell introduction for beginners
* [79]Haskell Basics
* [80]Haskell laziness
* [81]A First Step Into Monads
* [82]More Monads: Stateful Programming
* [83]Why the IO monad?
* [84]Haskell epiphanette
* [85]More About Language Productivty: Corbato's Law
* [86]Laziness and fizzbuzz in Haskell
* [87]C# looks scary
* [88]Random thoughts
52. http://planet.haskell.org/
53. http://neilbartlett.name/blog/?p=11
54. http://blogs.nubgames.com/code/?p=17
55. http://satta.org/2007/01/08/foldr-and-foldl-in-javascript/
56. http://corfield.org/blog/index.cfm/do/blog.entry/entry/Haskell_Revisited
57. http://www.stonecode.org/blog/?p=101
58. http://www.serpentine.com/blog/2007/01/09/haskell-bootstrapping-into-a-clue-about-monads/
59. http://cale.yi.org/index.php/How_To_Use_Monad_Transformers
60. http://edwinb.wordpress.com/2007/01/15/error-handling-in-haskell/
61. http://e-scribe.com/news/328
62. http://scienceblogs.com/goodmath/2007/01/haskell_the_basics_of_type_cla_1.php
63. http://journal.dedasys.com/articles/2007/01/17/clockwork-languages
64. http://braindump.dk/tech/2007/01/19/fun-with-haskell/
65. http://josefsblog.blogspot.com/2007/01/programming-productivity-and.html
66. http://www.acooke.org/andrew/writing/folds.html
67. http://daniel-yokomizo.livejournal.com/6949.html
68. http://sequence.complete.org/node/258
69. http://nointernalmonologue.blogspot.com/2007/01/languages-and-paradigms-and-cores-oh-my.html
70. http://japple.blogspot.com/2007/01/bug-reporting.html
71. http://www.randomhacks.net/articles/2007/01/22/high-performance-haskell
72. http://radar.oreilly.com/archives/2007/01/threads_conside.html
73. http://emresahin.net/2007/01/21/literate-programming-in-haskell/
74. http://www.cpu.uttaruk.com/2007/01/25/the-end-of-free-lunch-cpu-performance-and-other-papers/
75. http://sigfpe.blogspot.com/2007/01/monads-hidden-behind-every-zipper.html
76. http://jaortega.wordpress.com/2007/01/29/the-functional-c-programmer/
77. http://floatingpoint.tinou.com/2007/01/strictly_for_la.html
78. http://blog.interlinked.org/tutorials/haskell_introduction.html
79. http://blog.interlinked.org/tutorials/haskell_2.html
80. http://blog.interlinked.org/tutorials/haskell_laziness.html
81. http://scienceblogs.com/goodmath/2007/01/haskell_a_first_step_into_mona_1.php
82. http://scienceblogs.com/goodmath/2007/01/more_monads_stateful_programmi_1.php
83. http://kawagner.blogspot.com/2007/01/real-functional-programming-or-why-io.html
84. http://rubynations.blogspot.com/2007/01/haskell-epiphanette.html
85. http://www.neilmix.com/2007/01/25/more-about-language-productivty-corbatos-law/
86. http://mult.ifario.us/articles/2007/01/25/laziness-and-fizzbuzz-in-haskell
87. http://garybernhardt.blogspot.com/2007/01/c-30-looks-promising.html
88. http://poundbang.in/2007/01/22/post-barcamp-thoughts-comments/
Quotes of the Week
* ndm: [dons] How do we serialise an Int portably? [ndm] Just use
the first 29 bits
* C.M.Brown: I told them they could all finish the class in 5
minutes if they used Haskell... The look of horror on the
student's faces when I mentioned the 'H' word was priceless.
However, they were all prepared to spend 50 minutes writing a Java
program which would have the same effect.
* dons: dons law: if you have a bug, you are missing a QC property
* BjarneStroustrup: Within C++, there is a much smaller and cleaner
language struggling to get out.
* ClaudiusMaximus: Compiling with -O2 reduced the time taken by my
program's execution from 28 mins to 17 seconds.
* dons: Think of a monad as a spacesuite full of nuclear waste in
the ocean next to a container of apples. now, you can't put
oranges in the space suite or the nucelar waste falls in the
ocean, *but* the apples are carried around anyway, and you just
take what you need.
* Runar Jordahl: Haskell has quite the following among the alpha
geeks
* bakert: I know all my programs can be reduced to only one tenth
the size if only I can learn all these crazy functions
* glguy: [on hpaste.org] you can have your code syntax colored
however you like, as long as that color is 'haskell'
* huschi: Programing in haskell seems a bit frustrating. i'm missing
searching for errors :(
* dons: I had a dream about how to write instance Binary Integer
last night
* bd: If a graph is reduced in a forest, and no one is around to
pattern match the resulting WHNF, does it cause a space leak?
* bos: [dons] and stricify, specialise and inline as appropriate
till the raw bytestring Addr# start appearing [bos] um, is that
next to the dilithium crystals?
* kolmodin: It's nice to have static types after a bottle of wine
* nmessenger: Brain explosion is like a traditional pasttime in
#haskell
Code Watch
Thu Jan 11 05:13:59 PST 2007. Pepe Iborra.
[89]Added the new :breakpoint continue option. Previously, when in a breakpoint, :quit
was used to continue execution. This is not the right thing to do, so
this patch restores :quit to its original meaning whether or not ghci
is in an inferior session. The continue behavior is now provided by
':breakpoint continue'. I added a synonim command in :continue because
it is much shorter, but this is optional
About the Haskell Weekly News
Each week, new editions are posted to [90]the Haskell mailing list as
well as to [91]the Haskell Sequence and [92]Planet Haskell. [93]RSS is
also available, and headlines appear on [94]haskell.org. Headlines are
available as [95]PDF.
To help create new editions of this newsletter, please see the
[96]contributing information. Send stories to dons at cse.unsw.edu.au.
The darcs repository is available at darcs get
[97]http://www.cse.unsw.edu.au/~dons/code/hwn
89. http://article.gmane.org/gmane.comp.lang.haskell.cvs.ghc/18817
90. http://www.haskell.org/mailman/listinfo/haskell
91. http://sequence.complete.org/
92. http://planet.haskell.org/
93. http://sequence.complete.org/node/feed
94. http://haskell.org/
95. http://www.cse.unsw.edu.au/~dons/code/hwn/archives/20070131.pdf
96. http://haskell.org/haskellwiki/HWN
97. http://www.cse.unsw.edu.au/~dons/code/hwn
More information about the Haskell
mailing list