--------------------------------------------------------------------------- Haskell Weekly News http://sequence.complete.org/hwn/20090826 Issue 128 - August 26, 2009 ---------------------------------------------------------------------------
Welcome to issue 128 of HWN, a newsletter covering developments in the [1]Haskell community. New releases of haddock, gitit, jhc, formlets, and lots of other libraries and tools; Edinburgh Hack Day, ICFP, and HacPDX coming up; exciting times! The Google Summer of Code has also wrapped up. See below for final progress reports from this summer's Haskell participants. PS: Just as this was going to press, Thomas Ten Cate released the Scion library from his Google Summer of Code project; hence it isn't listed below but you should check it out anyway! Announcements GLUT 2.2.1.0. Sven Panne [2]announced a new version of the [3]GLUT package. The package is now autoconf-free, with API entries are resolved dynamically at runtime; support for sRGB framebuffers has been added; and support for context profiles has been added. Potential Network SIG. Thomas DuBuisson [4]announced the formation of a SIG to hammer out a design for a new Network API, seeing as the current API, a straight-forward Berkeley binding, doesn't seem to please anyone in a Haskell context. epoll bindings 0.1.1. Toralf Wittner [5]announced the release of [6]epoll bindings 0.1.1. Epoll is an I/O event notification facility for Linux similar to poll but with good scaling characteristics. Currently the bindings are fairly low level and close to the C API, but there are plans to add some buffer or stream abstraction on top. Eventually, when GHC can make use of epoll/kqueue in addition to select, this library will not be needed anymore. Until then it might be useful for applications which monitor large numbers of file descriptors. gitit 0.6.1. John MacFarlane [7]announced the release of [8]gitit 0.6.1, a wiki program that runs on happstack, the Haskell web application server stack, and stores pages and other content in a git or darcs filestore. The whole code base has been overhauled since the last release: gitit is now faster, more memory efficient, more modular, and more secure. It also has many new features, including page metadata and categories, atom feeds (sitewide and per-page), support for literate Haskell, a better configuration system, an improved caching system, a Haskell library exporting happstack wiki handlers, and a plugin system. jhc 0.7.1. John Meacham [9]announced the 0.7.1 release of the [10]jhc optimizing Haskell compiler. There have been a lot of changes since the last public release. Some notable ones include the use of a general compiler cache by default rather than object files; reworked library support; an updated manual, with clearer build instructions; support for writing pure C libraries in Haskell; numerous library updates; smart progress meters; typechecking before compilation; and various bug fixes and cross compilation improvements. rss2irc 0.3 released. Simon Michael [11]announced the release of [12]rss2irc version 0.3, an irc bot created by Don Stewart to watch rss feeds and announce new items on irc, now maintained by Simon. This version includes reliable http networking, irc flood protection, better error handling & reporting, extensive debugging output, Atom support, more useful defaults, precise control of irc output, and is now installable on OSX. Feedback and patches welcome. formlets 0.6. Chris Eidhof [13]announced that the formlets team has released a new version of [14]formlets, a library to build type-safe, composable web forms. Most notably, Mightybyte and Chris worked on the [15]massInput functionality, which is now ready for use! graphtype -- A simple tool to illustrate dependencies between Haskell types. Max Desyatov [16]announced the release of [17]graphtype, a tool for visualising type declarations in Haskell source files. It produces [18].dot-files for subsequent processing with graphviz. OAuth library in haskell. Diego Souza [19]announced the release of [20]hoauth, a library which helps you to deal with the [21]oauth protocol. Currently it supports only consumer side applications, but there are plans to add service providers support in near future. ByteString Nums. Jason Dusek [22]announced [23]bytestring-nums, a simple package for relatively careless parsing of numbers from ByteStrings. It works to parse out integer strings, floating point strings and hex strings. haskell-src-exts-1.1.3. Niklas Broberg [24]announced the release of [25]haskell-src-exts-1.1.3, a package for Haskell source code manipulation. It handles (almost) all syntactic extensions to the Haskell 98 standard implemented by GHC, and the parsing can be parametrised on what extensions to recognise. haskell-src-exts-1.1.3 is a highly experimental release, which does not change the current stable part of haskell-src-exts. But it includes a whole new set of modules implementing a new and more accurate syntax tree where all nodes are adorned with annotations. Together with this comes a parser that retains exact source information, stored in the aforementioned annotations. Help in testing and bug reporting is welcome and appreciated! ministg-0.2, an interpreter for STG operational semantics. Bernie Pope [26]announced the first public release of [27]Ministg, an interpreter for a high-level, small-step, operational semantics for the STG machine, the abstract machine at the core of GHC. One of the main features of Ministg is the ability to record a trace of the execution steps as a sequence of HTML files; here is an [28]example trace. OpenCLRaw 1.0.1000. Jeff Heard [29]announced the release of [30]OpenCLRaw, a raw binding to the OpenCL, a platform for single-host heterogeneous, data-parallel computing. He has future plans to create higher-level bindings on top of these raw ones. compose-trans-0.0. Miguel Mitrofanov [31]announced [32]compose-trans, a small library intended to make monad transformers composable. Haddock version 2.5.0. David Waern [33]announced the release of [34]Haddock 2.5.0. This version reverts to the old multi-page index for large packages, shows GADT records in the generated documentation, adds a --use-unicode flag for displaying prettier versions of common symbols, and many other changes. Edinburgh Meetup (Sat 29 Aug) and Hack Day (Sun 30 Aug). Eric Kow [35]sent a reminder that we will be having a [36]Hack Day in Edinburgh on Sunday 30 August at the ICFP venue. There will also be a meetup the day before, 09:30 Saturday 29 August just outside the ICFP venue; we'll have a quick wander and hopefully find some nice places to sit and chat, whip out the occasional laptop and fling a lambda or not being careful not to injure the passers-by. Cleaner networking API - network-fancy. Taru Karttunen [37]announced [38]network-fancy, which offers a cleaner API to networking facilities in Haskell. It supports high-level operations on tcp, udp and unix sockets. Feedback on the API is welcome! GLFW-0.4.1. Paul L [39]announced a new version of [40]GLFW, 0.4.1. Notable changes include a workaround for a FFI bug that affects GHC < 6.10 on 64-bit machines, a fix for the compilation problem on OS X for GHC > 6.10.1, a compatibility fix to work with both OpenGL 2.3.0.0 and older versions, choice of a "dynamic" flag to link with dynamic GLFW C library instead, and a number of other fixes, cleanups and improvements. HacPDX, A Hackathon in Portland. Thomas DuBuisson [41]announced [42]HacPDX, an opportunity for Portland Haskell hackers to join together in building and improving libraries and tools. If you've never been, hackathons are typically not only a good opportunity for experienced devs to work together but also a great way for newcomers to get involved in the community. HacPDX will take place Friday September 25 to Sunday September 27 at Portland State University; see the email for more specific details. Hack on the Delve core, with Delve and Haskell. spoon [43]announced [44]Delve, a new programming language intended to bring the benefits of static type checking and functional programming to object-oriented design and development, currently being implemented in Haskell. Contributors welcome! cabal-query 0.1. Max Desyatov [45]announced the release of [46]cabal-query, a package to assist in finding a set of Cabal packages which satisfy your needs. EnumMap-0.0.1. John Van Enk [47]announced the first version of [48]EnumMap, a generalization of IntMap that constrains the key to Enum rather than forcing it to be Int. Google Summer of Code Progress updates from participants in the 2008 [49]Google Summer of Code. Haddock improvements! Isaac Dupree has [50]wrapped up his project, with patches waiting to be merged back into both Haddock and GHC. His final post contains a detailed description of the work he did; looks like we'll have much better cross-package documentation support in Haddock soon! EclipseFP. Thomas Ten Cate began adding a notion of [51]build targets to EclipseFP, so that projects can be created without .cabal files. He has [52]wrapped up the project for now, and although he isn't fully happy with the results that he achieved, he was able to make useful contributions which hopefully others can continue to build on. Improving the Haskell space profiling experience. Gergely Patai's project is done: he [53]uploaded hp2any, a set of realtime space profiling tools, to Hackage. He also [54]created a [55]haskellwiki page describing it and its use. haskell-src-exts -> haskell-src. Niklas Broberg has been [56]working on a complete revamp of the AST, lexer and parser to allow for exact source info to be kept in the tree, which in turn will allow exact printing of the code as it was read. darcs. Petr Rockai posted a [57]final report where he described his accomplishments: the hashed-storage library for reading and writing filesystem trees in hash-based formats; darcs whatsnew integration with hashed-storage; progress on a new and improved version of hashed-storage, and a branch of darcs depending on it; and darcs-benchmark, a standalone package for benchmarking darcs. Discussion Unification and matching in Abelian groups. John D. Ramsdell [58]shared some code implementing unification and matching in Abelian groups. Grouping and SIMD in parallel Haskell (using Nested Data Parallel Haskell ideas in legacy code). Zefirov Sergey [59]posted some code showing how to translate Parallel Haskell programs (expressed with par and pseq) into Nested Data Parallel Haskell. Request for Comments - hscurrency 0.0.1. Max Cantor [60]requested feedback on some simple tools to do safe calculations on different currencies. DDC compiler and effects; better than Haskell? (was Re: unsafeDestructiveAssign?). Peter Verswyvelen began a long [61]discussion about the DDC compiler and its effect system, and the relationship to Haskell and monads. Jobs Credit Suisse is hiring. Ganesh Sittampalam [62]announced that the Global Modelling and Analytics Group (GMAG) at Credit Suisse is once again looking to hire functional programmers; see his email for more information. Jane Street is Hiring (as if you didn't already know). Yaron Minsky sent out a [63]reminder that [64]Jane Street is looking to hire functional programmers; see his email for more details. He also mentioned that he will be at parts of ICFP, CUFP and DEFUN this year, so if you're interested, come and talk to him there. Galois is Hiring. Don Stewart [65]announced that Galois is continuing to hire, with multiple positions for talented functional programmers (with both junior and senior positions). They will be at ICFP and related events; see Don or Lee Pike. Blog noise [66]Haskell news from the [67]blogosphere. Blog posts from people new to the Haskell community are marked with >>>, be sure to welcome them! * Isaac Dupree: [68]Summer of Code Wrap-Up.. * Thomas ten Cate: [69]Endgame. * Jeff Heard: [70]Followup to my earlier post on Hilbert curve timeseries plots. * Jeff Heard: [71]Plotting timeseries in space filling curves. * Magnus Therning: [72]Making a choice from a list in Haskell, Vty (part 5, the last one). * Magnus Therning: [73]Fork/exec in Haskell. * Edward Kmett: [74]Iteratees, Parsec and Monoids (Slides). * Chris Smith: [75]Flow Equivalence Code in Haskell. * Thomas Ten Cate: [76]Build targets. * Chris Smith: [77]Catching a Mathematical Error Using Haskell's Type System. * Well-Typed: [78]Industrial Haskell Group meeting at CUFP. * London HUG: [79]Next meeting: Alex McLean, Live coding music with Haskell. * David Amos: [80]Finite fields, part 1. * Greg Bacon: [81]Simple analogy for lazy evaluation . * Magnus Therning: [82]JSON in Haskell. * Notes on the LHC: [83]Status update: New Integer implementation.. * Edward Kmett: [84]Clearer Reflections. * Petr Rockai: [85]soc final report. * Gergely Patai: [86]hp2any overview online. * Brent Yorgey: [87]New 2D text layout library. * Manuel Chakravarty: [88]World's first formal machine-checked proof of a general-purpose operating system kernel.. * Bryan O'Sullivan: [89]Haskell Platform support for Fedora: we're almost there. * Gergely Patai: [90]hp2any on Hackage. * Doug Beardsley: [91]Dynamic List Formlets in Haskell . * Niklas Broberg: [92]Quick update. * Christopher Lane Hinson: [93]FactoryArrow. * Michael Feathers: [94]Imposing the Edges Later . * Brent Yorgey: [95]Species operations: differentiation. * >>> Ron Leisti: [96]A prime number sieve in Haskell. Quotes of the Week * bos: You don't get accurate answers from Perl. It just lies to you to keep you happy. * ray: haskell' will come out in 2020 and be h98 with hierarchical modules * ray: enlarge your kleisli arrow, please the category ladies * quicksilver: making the compiler writer's job painful is one of the main duties of a language designer. * gwern: as a plugin, yes, but that's like being so out of shape that a guy in a wheelchair can outrace you - yes, he needs a tool, but you should still be ashamed of yourself * Cale's Lemma: Any sufficiently long string of operator symbols looks like a fish. * randomwords: How "complete" does an application before it's OK to upload to hackage? <ray> there are no standards <randomwords> lawless wasteland. Got it. * ndm: I was browsing through the Yhc standard libraries, as one does on the weekend, and was drawn to Yhc's sort function. * michaelfeathers: I did a parody post to Haskell Cafe last year where I had some code that was calling (nub . nub) zip12 and asked if there was a zip13 and no one called it out as a joke. About the Haskell Weekly News New editions are posted to [97]the Haskell mailing list as well as to [98]the Haskell Sequence and [99]Planet Haskell. [100]RSS is also available, and headlines appear on [101]haskell.org. To help create new editions of this newsletter, please see the information on [102]how to contribute. Send stories to byorgey at cis dot upenn dot edu. The darcs repository is available at darcs get [103]http://code.haskell.org/~byorgey/code/hwn/ . References 1. http://haskell.org/ 2. http://article.gmane.org/gmane.comp.lang.haskell.general/17442 3. http://hackage.haskell.org/package/GLUT 4. http://article.gmane.org/gmane.comp.lang.haskell.libraries/11813 5. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62782 6. http://hackage.haskell.org/package/epoll 7. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62776 8. http://gitit.johnmacfarlane.net/ 9. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62759 10. http://repetae.net/computer/jhc 11. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62743 12. http://hackage.haskell.org/package/rss2irc 13. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62738 14. http://hackage.haskell.org/package/formlets 15. http://softwaresimply.blogspot.com/2009/08/dynamic-list-formlets-in-haskell.html 16. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62736 17. http://hackage.haskell.org/package/graphtype 18. http://i.piccy.info/i4/00/90/bfa07290012c2d3b455696bdaa86.png 19. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62735 20. http://hackage.haskell.org/package/hoauth 21. http://oauth.net/ 22. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62695 23. http://hackage.haskell.org/package/bytestring-nums 24. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62682 25. http://hackage.haskell.org/package/haskell-src-exts 26. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62559 27. http://www.haskell.org/haskellwiki/Ministg 28. http://www.cs.mu.oz.au/~bjpop/trace/step0.html 29. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62414 30. http://hackage.haskell.org/package/OpenCLRaw 31. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62390 32. http://hackage.haskell.org/package/compose%2Dtrans 33. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62341 34. http://www.haskell.org/haddock 35. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62324 36. http://www.haskell.org/haskellwiki/Hac7 37. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62277 38. http://hackage.haskell.org/package/network%2Dfancy 39. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62259 40. http://hackage.haskell.org/package/GLFW 41. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62195 42. http://haskell.org/haskellwiki/HacPDX 43. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62173 44. http://killersmurf.blogspot.com/ 45. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62139 46. http://hackage.haskell.org/package/cabal%2Dquery 47. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62119 48. http://hackage.haskell.org/package/EnumMap 49. http://hackage.haskell.org/trac/summer-of-code/wiki/SoC2008 50. http://haddock2009.wordpress.com/2009/08/26/summer-of-code-wrap-up/ 51. http://eclipsefp.wordpress.com/2009/08/20/build-targets/ 52. http://eclipsefp.wordpress.com/2009/08/25/endgame/ 53. http://just-bottom.blogspot.com/2009/08/hp2any-on-hackage.html 54. http://just-bottom.blogspot.com/2009/08/hp2any-overview-online.html 55. http://www.haskell.org/haskellwiki/Hp2any 56. http://nibrofun.blogspot.com/2009/08/just-quick-note-since-i-realise-i.html 57. http://web.mornfall.net/blog/soc_final_report.html 58. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/62486 59. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/62403 60. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/62342 61. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/62205 62. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62406 63. http://article.gmane.org/gmane.comp.lang.haskell.general/17436 64. http://www.janestreet.com/ 65. http://article.gmane.org/gmane.comp.lang.haskell.cafe/62191 66. http://planet.haskell.org/ 67. http://haskell.org/haskellwiki/Blog_articles 68. http://haddock2009.wordpress.com/2009/08/26/summer-of-code-wrap-up/ 69. http://eclipsefp.wordpress.com/ 70. http://vis.renci.org/jeff/2009/08/24/followup-to-my-earlier-post-on-hilbert-curve-timeseries-plots/ 71. http://vis.renci.org/jeff/2009/08/24/plotting-timeseries-in-space-filling-curves/ 72. http://therning.org/magnus/archives/732 73. http://therning.org/magnus/archives/727 74. http://comonad.com/reader/2009/iteratees-parsec-and-monoid/ 75. http://cdsmith.wordpress.com/2009/08/20/flow-equivalence-code-in-haskell/ 76. http://eclipsefp.wordpress.com/2009/08/20/build-targets/ 77. http://cdsmith.wordpress.com/2009/08/19/catching-a-mathematical-error-using-haskells-type-system/ 78. http://blog.well-typed.com/2009/08/industrial-haskell-group-meeting-at-cufp/ 79. http://www.londonhug.net/2009/08/18/next-meeting-alex-mclean-live-coding-music-with-haskell/ 80. http://haskellformaths.blogspot.com/2009/08/finite-fields-part-1.html 81. http://gbacon.blogspot.com/2009/08/simple-analogy-for-lazy-evaluation.html 82. http://therning.org/magnus/archives/719 83. http://lhc-compiler.blogspot.com/2009/08/status-update-new-integer.html 84. http://comonad.com/reader/2009/clearer-reflection/ 85. http://web.mornfall.net/blog/soc_final_report.html 86. http://just-bottom.blogspot.com/2009/08/hp2any-overview-online.html 87. http://byorgey.wordpress.com/2009/08/14/new-2d-text-layout-library/ 88. http://justtesting.org/post/162408446/worlds-first-formal-machine-checked-proof-of-a 89. http://www.serpentine.com/blog/2009/08/12/haskell-platform-support-for-fedora-were-almost-there/ 90. http://just-bottom.blogspot.com/2009/08/hp2any-on-hackage.html 91. http://softwaresimply.blogspot.com/2009/08/dynamic-list-formlets-in-haskell.html 92. http://nibrofun.blogspot.com/2009/08/just-quick-note-since-i-realise-i.html 93. http://blog.downstairspeople.org/2009/08/09/factoryarrow/ 94. http://blog.objectmentor.com/articles/2009/08/08/imposing-the-edges-later 95. http://byorgey.wordpress.com/2009/08/05/species-operations-differentiation/ 96. http://www.ronleisti.com/wp/2009/07/26/a-prime-number-sieve-in-haskell/ 97. http://www.haskell.org/mailman/listinfo/haskell 98. http://sequence.complete.org/ 99. http://planet.haskell.org/ 100. http://sequence.complete.org/node/feed 101. http://haskell.org/ 102. http://haskell.org/haskellwiki/HWN 103. http://code.haskell.org/~byorgey/code/hwn/ _______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell