From marlowsd at gmail.com Wed Jul 1 06:27:39 2009 From: marlowsd at gmail.com (Simon Marlow) Date: Wed Jul 1 06:10:14 2009 Subject: [Haskell] Haskell Implementers Workshop: accepted talks Message-ID: <4A4B3A1B.5030207@gmail.com> The list of talks at the Haskell Implementers Workshop 2009 has now been posted, and I think you'll agree we have an exciting lineup: http://haskell.org/haskellwiki/HaskellImplementorsWorkshop See you on 5 September! Cheers, Simon From ndmitchell at gmail.com Wed Jul 1 15:16:19 2009 From: ndmitchell at gmail.com (Neil Mitchell) Date: Wed Jul 1 14:58:51 2009 Subject: [Haskell] ANN: HLint 1.6 Message-ID: <404396ef0907011216n5ffbd20ew39f0d1a7678f4ac2@mail.gmail.com> Hi, I am pleased to announce HLint 1.6, a tool for automatically suggesting improvements to your Haskell code. For example: $ hlint darcs-2.1.2 CommandLine.lhs:49:1: Warning, eta reduce Found: quotedArg ftable = between (char '"') (char '"') $ quoteContent ftable Why not: quotedArg = between (char '"') (char '"') . quoteContent CommandLine.lhs:94:1: Error, use concatMap Found: concat $ map escapeC s Why not: concatMap escapeC s Ssh.hs:155:17: Error, use isPrefixOf Found: take 1 path == "~" Why not: "~" `isPrefixOf` path == INSTALLATION == To install hlint, do the standard cabal magic: cabal update && cabal install hlint The home page for HLint is: http://community.haskell.org/~ndm/hlint/ The manual is at: http://community.haskell.org/~ndm/darcs/hlint/hlint.htm == NEW FEATURES FROM 1.4 == * Upgrade to haskell-src-exts 1.0.0, this should fix lots of bugs * Add lots of new hints * Fix a pile of hlint specific bugs * Better HTML report generation * Parallel execution (on my machine, +RTS -N4 makes it run 3 times faster) * Better support for things the darcs project wanted Please try out HLint and let me know what you think! Thanks, Neil From simonpj at microsoft.com Thu Jul 2 10:18:45 2009 From: simonpj at microsoft.com (Simon Peyton-Jones) Date: Thu Jul 2 10:01:23 2009 Subject: [Haskell] Fun with type functions Message-ID: <638ABD0A29C8884A91BC5FB5C349B1C34391910CF7@EA-EXMSG-C334.europe.corp.microsoft.com> Friends Ken, Oleg, and I have finished Version 2 of our paper "Fun with Type Functions", which gives a programmer's tour of what type functions are and how they are useful. http://haskell.org/haskellwiki/Simonpj/Talk:FunWithTypeFuns If you have a moment to look at, and wanted to help us improve it, the above link goes to a wiki page where you can comment on the paper or discuss it. We still have time to improve it. Thanks Simon From jpm at cs.uu.nl Fri Jul 3 09:07:28 2009 From: jpm at cs.uu.nl (=?ISO-8859-1?Q?Jos=E9_Pedro_Magalh=E3es?=) Date: Fri Jul 3 08:50:17 2009 Subject: [Haskell] ANNOUNCE: regular-0.1 Message-ID: <52f14b210907030607y4fd6c29dlf944334ed61608dd@mail.gmail.com> regular: Generic programming with fixed points for regular datatypes ==================================================================== Many generic programs require information about the recursive positions of a datatype. Examples include the generic fold, generic rewriting, and the Zipper data structure. This approach provides a fixed point view on data which allows these definitions for regular datatypes. It can be seen as a simplification of the Multirec library, which provides similar functionality but for families of (possibly mutually recursive) datatypes. This library is the underlying generic representation mechanism in the paper: Thomas van Noort, Alexey Rodriguez, Stefan Holdermans, Johan Jeuring, Bastiaan Heeren. A Lightweight Approach to Datatype-Generic Rewriting. In Ralf Hinze and Don Syme, editors, Proceedings of the ACM SIGPLAN Workshop on Generic Programming, WGP 2008, Victoria, BC, Canada, September 20, 2008, pages 13?24. ACM Press, 2008. More information is available on the webpage: http://www.cs.uu.nl/wiki/bin/view/GenericProgramming/Regular Features -------- * A simple library with a fixed point view * Includes detailed examples, such as the generic fold * Forms the basis for a generic rewriting library: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/rewriting * In its current form, this library does not support nested datatypes. Support to access parameters of a datatype is limited. Requirements ------------ * GHC 6.10.1 or later * Cabal 1.2.1 or later Download -------- With cabal-install: cabal install regular Get the package: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/regular Get the source: svn checkout https://subversion.cs.uu.nl/repos/project.dgp-haskell.libraries/regular/ Bugs & Support -------------- Report issues, request features, or just discuss the library with the authors, maintainers, and other interested persons at: http://www.haskell.org/mailman/listinfo/generics -------------- Jos? Pedro Magalh?es Universiteit Utrecht -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090703/85370328/attachment-0001.html From byorgey at seas.upenn.edu Sat Jul 4 11:52:40 2009 From: byorgey at seas.upenn.edu (Brent Yorgey) Date: Sat Jul 4 11:35:03 2009 Subject: [Haskell] Haskell Weekly News: Issue 124 - July 4, 2009 Message-ID: <20090704155240.GA2382@seas.upenn.edu> --------------------------------------------------------------------------- Haskell Weekly News http://sequence.complete.org/hwn/20090704 Issue 124 - July 04, 2009 --------------------------------------------------------------------------- Welcome to issue 124 of HWN, a newsletter covering developments in the [1]Haskell community. Announcements HLint 1.6. Neil Mitchell [2]announced the release of [3]HLint 1.6, a tool for automatically suggesting improvements to Haskell code. Haskell Implementers Workshop: accepted talks. Simon Marlow [4]announced that the list of talks at the [5]Haskell Implementers Workshop 2009 has now been posted. bloxorz clone. Patai Gergely [6]announced a [7]Haskell clone of the game "bloxorz", written by Viktor Devecseri. Fun with type functions. Simon Peyton-Jones [8]announced that he, Ken Shan, and Oleg have finished Version 2 of their [9]paper "Fun with Type Functions", which gives a programmer's tour of what type functions are and how they are useful. If you have a moment to look at, and wanted to help them improve it, leave comments on the linked wiki page. package Boolean: Generalized booleans. Conal Elliott [10]announced [11]Boolean, a new package for generalized booleans, which provides type classes with generalizations of Boolean values and operations, if-then-else, Eq and Ord. TernaryTrees-0.1.1.1 - An efficient ternary tree implementation of Sets and Maps. Alex Mason [12]announced the release of [13]TernaryTrees, a package that extends Data.Set ad Data.Map with some ternary tree structures, one of the more efficient ways of storing strings in a set. 6.12.1 planning. Simon Marlow [14]announced plans for a release of GHC 6.12.1, sometime around September. If you have the time and inclination to help with any of the listed features, please get involved! regular-0.1. Jos? Pedro Magalh?es [15]announced the release of the [16]regular library. Many generic programs require information about the recursive positions of a data type, such as generic fold, generic rewriting, and the Zipper data structure. Regular provides a fixed point view on data which allows these definitions for regular data types. It also serves as the basis for a [17]generic rewriting library. Google Summer of Code Progress updates from participants in the 2008 [18]Google Summer of Code. Haddock improvements. Isaac Dupree has made it easier to generate Haddock documentation [19]for non-exported functions, posted an [20]overview of the issues involved in getting proper cross-package documentation working, and his current [21]plan. EclipseFP. Thomas Ten Cate has done a lot of work on EclipseFP, including some [22]cosmetic updates and getting [23]error reporting to work better. space profiling. Gergely Patai is [24]working on a network protocol for his profiling grapher tool, so that other tools can monitor the profiling information. haskell-src-exts. Niklas Broberg has [25]released [26]haskell-src-exts version 1.0.0! fast darcs. Petr Rockai has completed [27]quite a bit of work on darcs, including a [28]beta release of darcs 2.3. Discussion Monoid wants a (++) equivalent. Bryan O'Sullivan [29]suggested adding a more concise operator to the Monoid class for 'mappend', leading to a long, bike-shed-ish (but hopefully still useful) discussion. Reflections on the ICFP 2009 programming contest. Justin Bailey began a [30]discussion on results and experiences from the ICFP 2009 programming contest. Blog noise [31]Haskell news from the [32]blogosphere. Blog posts from people new to the Haskell community are marked with >>>, be sure to welcome them! * Gergely Patai: [33]Playing and learning. * Ketil Malde: [34]A set of tools for working with 454 sequences. * Sebastian Fischer: [35]FP Overview. * Magnus Therning: [36]Making a choice from a list in Haskell, Vty (part 1). * David Amos: [37]Conjugacy classes, part 1. * Well-Typed.Com: [38]GHC and Windows DLLs. * Manuel M T Chakravarty: [39]Converting typed term representations: from HOAS to de Bruijn.. * >>> Ivan Uemlianin: [40]Haskell: sort and sortBy. * Gregory Collins: [41]Building a website with Haskell, part 3. * Michael Snoyman: [42]Hack sample- chat server. * Luke Palmer: [43]On the By functions. * Magnus Therning: [44]Dataenc finally making it into Debian. * Thomas ten Cate: [45]New build instructions. * Erik de Castro Lopo: [46]Three More for the Debian New Queue. * >>> Yuval Kogman: [47]What Haskell did to my brain. * Greg Bacon: [48]FFI: calling into kernel32.dll. * Greg Bacon: [49]Setting up a simple test with Cabal. * Ketil Malde: [50]Dephd updates. * Bryan O'Sullivan: [51]What's in a text API?. * Brent Yorgey: [52]2009 ICFP programming contest reflections. * Galois, Inc: [53]Galois, Inc. Wins Two Small Business Research Awards from Federal Agencies. * Greg Bacon: [54]Cleaning up your Haskell imports. * Douglas M. Auclair (geophf): [55]Realized Constants are Comonadic. Quotes of the Week * KF8NH: all monads are functors, but for Hysterical Raisins not all Monads are Functors. * lilac: lambda actually is just the greek letter l. it stands for lilac. * lilac: before mauke we all implemented map with a fold every time we needed it. * luqui: I'll just stick to my religion: I have a personal relationship with our lord and savior, the untyped lambda calculus. * copumpkin: I think I was implemented in haskell. I mean, my parents never used seq, ever. * Benjamin Russell: Haskell. "Avoid success at all costs." Made with dinosaur technology. About the Haskell Weekly News New editions are posted to [56]the Haskell mailing list as well as to [57]the Haskell Sequence and [58]Planet Haskell. [59]RSS is also available, and headlines appear on [60]haskell.org. To help create new editions of this newsletter, please see the information on [61]how to contribute. Send stories to byorgey at cis dot upenn dot edu. The darcs repository is available at darcs get [62]http://code.haskell.org/~byorgey/code/hwn/ . References 1. http://haskell.org/ 2. http://article.gmane.org/gmane.comp.lang.haskell.general/17332 3. http://community.haskell.org/~ndm/hlint/ 4. http://article.gmane.org/gmane.comp.lang.haskell.general/17331 5. http://haskell.org/haskellwiki/HaskellImplementorsWorkshop 6. http://article.gmane.org/gmane.comp.lang.haskell.cafe/60907 7. http://just-bottom.blogspot.com/2009/07/playing-and-learning.html 8. http://article.gmane.org/gmane.comp.lang.haskell.cafe/60846 9. http://haskell.org/haskellwiki/Simonpj/Talk:FunWithTypeFuns 10. http://article.gmane.org/gmane.comp.lang.haskell.cafe/60716 11. http://hackage.haskell.org/package/Boolean 12. http://www.haskell.org//pipermail/haskell-cafe/2009-June/063625.html 13. http://hackage.haskell.org/package/TernaryTrees 14. http://www.haskell.org//pipermail/haskell-cafe/2009-June/063681.html 15. http://www.haskell.org//pipermail/haskell/2009-July/021468.html 16. http://www.cs.uu.nl/wiki/bin/view/GenericProgramming/Regular 17. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/rewriting 18. http://hackage.haskell.org/trac/summer-of-code/wiki/SoC2008 19. http://haddock2009.wordpress.com/2009/06/23/how-to-navigate-your-code/ 20. http://haddock2009.wordpress.com/2009/06/24/cross-package-documentation-part-1/ 21. http://haddock2009.wordpress.com/2009/06/25/cross-package-plan-a/ 22. http://eclipsefp.wordpress.com/2009/06/20/cosmetics/ 23. http://eclipsefp.wordpress.com/2009/06/30/compiling-and-error-reporting/ 24. http://just-bottom.blogspot.com/2009/06/short-term-hp2any-plans.html 25. http://nibrofun.blogspot.com/2009/06/gsoc-status-report-week-4.html 26. http://hackage.haskell.org/package/haskell%2Dsrc%2Dexts 27. http://web.mornfall.net/blog/soc_progress_5.html 28. http://web.mornfall.net/blog/darcs_2.3_beta_1.html 29. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/60754 30. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/60690 31. http://planet.haskell.org/ 32. http://haskell.org/haskellwiki/Blog_articles 33. http://just-bottom.blogspot.com/2009/07/playing-and-learning.html 34. http://blog.malde.org/index.php/2009/07/03/a-set-of-tools-for-working-with-454-sequences/ 35. http://www-ps.informatik.uni-kiel.de/~sebf/haskell/fp-overview.html 36. http://therning.org/magnus/archives/685 37. http://haskellformaths.blogspot.com/2009/06/conjugacy-classes-part-1.html 38. http://blog.well-typed.com/2009/07/ghcdlls/ 39. http://justtesting.org/post/134566537 40. http://llaisdy.wordpress.com/2009/07/03/haskell-sort-and-sortby/ 41. http://gregorycollins.net/posts/2009/07/02/building-a-website-part-3 42. http://blog.snoyman.com/2009/07/01/hack-sample-chat-server/ 43. http://lukepalmer.wordpress.com/2009/07/01/on-the-by-functions/ 44. http://therning.org/magnus/archives/672 45. http://eclipsefp.wordpress.com/2009/07/01/new-build-instructions/ 46. http://www.mega-nerd.com/erikd/Blog/CodeHacking/Debian/polyparse_dataenc_json.html 47. http://nothingmuch.woobling.org/talks/takahashi.xul?data=yapc_na_2009/haskell_brain.txt#page1 48. http://feedproxy.google.com/~r/gbacon/~3/o-lAJeIoUbk/ffi-calling-into-kernel32dll.html 49. http://feedproxy.google.com/~r/gbacon/~3/7rlf4Dd1JKU/setting-up-simple-test-with-cabal.html 50. http://blog.malde.org/index.php/2009/06/16/dephd-updates/ 51. http://www.serpentine.com/blog/2009/06/30/python-and-haskell-text-apis-compare/ 52. http://byorgey.wordpress.com/2009/06/29/2009-icfp-programming-contest-reflections/ 53. http://www.galois.com/blog/2009/06/29/galois-awarded-two-federal-sbirs/ 54. http://feedproxy.google.com/~r/gbacon/~3/AGNKaCB2-GI/cleaning-up-your-haskell-imports.html 55. http://logicaltypes.blogspot.com/2009/06/realized-constants-are-comonadic.html 56. http://www.haskell.org/mailman/listinfo/haskell 57. http://sequence.complete.org/ 58. http://planet.haskell.org/ 59. http://sequence.complete.org/node/feed 60. http://haskell.org/ 61. http://haskell.org/haskellwiki/HWN 62. http://code.haskell.org/~byorgey/code/hwn/ From michael.dever2 at mail.dcu.ie Sun Jul 5 09:43:53 2009 From: michael.dever2 at mail.dcu.ie (Michael Dever) Date: Sun Jul 5 09:26:44 2009 Subject: [Haskell] ANN: Gtk2hsGenerics Message-ID: Hi all, Apologies if this goes through twice. I extracted some functions from working on haskellfm, and made them a bit generic. There's no new functionality in this, but some handy functions that I found useful while working on it. They take some of the pain out extracting information from stores and adding more information in. The modules are: Graphics.UI.Gtk.Generics.ListStore: Functionality for: Repopulating an existing ListStore with a list of new data. Obtaining an element from a ListStore, identified by a TreePath. Prepending/Appending a ListStore with another list. Graphics.UI.Gtk.Generics.TreeStore: Functionality for: Obtaining all the objects from a TreeStore that correspond to a TreePath. Finding a TreePath to match the elements in a supplied list. Graphics.UI.Gtk.Generics.TreeView *At the moment this only applies to a TreeView with ListStore.* Functionality for: Getting a single selection from a TreeView containing a ListStore. Getting multiple selections from a TreeView containing a ListStore. Applying a function to a single selection of a TreeView containing a ListStore. Applying a function across multiple selections from a TreeView containing a ListStore. The package is available on Hackage at: http://hackage.haskell.org/package/Gtk2hsGenerics-0.1 Regards, Michael -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090705/ef5e135b/attachment.html From matt at mattelder.org Sun Jul 5 15:57:06 2009 From: matt at mattelder.org (Matthew Elder) Date: Sun Jul 5 15:39:46 2009 Subject: [Haskell] ANNOUNCE: sendfile-0.2, now with portable offset + bytecount parameters Message-ID: <987d172d0907051257s702249efwb4c742fb7edd4d78@mail.gmail.com> Announcing sendfile-0.2, now with portable offset + bytecount parameters! See: http://hackage.haskell.org/package/sendfile-0.2 Testers needed / wanted! Happy Hacking, Matthew Elder -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090705/1208f5f0/attachment.html From marlowsd at gmail.com Tue Jul 7 10:04:46 2009 From: marlowsd at gmail.com (Simon Marlow) Date: Tue Jul 7 09:47:04 2009 Subject: [Haskell] Announcing the new Haskell Prime process, and Haskell 2010 Message-ID: <4A5355FE.9010901@gmail.com> At last year's Haskell Symposium, it was announced that we would change the Haskell Prime process to make it less monolithic. Since then, everyone has been busy using Haskell (or implementing it), and we haven't made much progress on the standardisation side of things. Well, with ICFP and the Haskell Symposium approaching we felt it was time to get the new process moving and hopefully produce a language revision this year. I've updated the Haskell' wiki with the new information; in particular the process is documented here: http://hackage.haskell.org/trac/haskell-prime/wiki/Process We're aiming to announce the list of accepted proposals at the Haskell Symposium this year. However, owing to the short timescale, the list is going to be correspondingly short, and limited to extensions which are either already fully specified (i.e. the FFI) or are small and well-understood. The following list is very provisional; we'll be making the final decisions next month. ForeignFunctionInterface LineCommentSyntax PatternGuards DoAndIfThenElse Remove n+k patterns RelaxedDependencyAnalysis EmptyDataDeclarations HierarchicalModules NonDecreasingIndentation remove FixityResolution from the context-free grammar change the syntax of QualifiedOperators In the coming weeks we'll be refining proposals in preparation for Haskell 2010. By all means suggest more possibilities; however note that as per the new process, a proposal must be "complete" (i.e. in the form of an addendum) in order to be a candidate for acceptance. I have updated the status page http://hackage.haskell.org/trac/haskell-prime/wiki/Status marking everything except the proposals that have been already implemented in the draft Report as "old". The new process requires a proposal to have an owner or owners in order to make progress; once a proposal has an owner it will move into the "under discussion" state. To take up ownership of an existing proposal, or to start a new proposal, ask on the mailing list. There are other ways you can get involved; some suggestions are on the Haskell' main page: http://hackage.haskell.org/trac/haskell-prime/wiki (hmm, I suppose we should fix that logo too...) Cheers, Simon From claus.reinke at talk21.com Tue Jul 7 11:40:48 2009 From: claus.reinke at talk21.com (Claus Reinke) Date: Tue Jul 7 11:23:09 2009 Subject: [Haskell] Re: Announcing the new Haskell Prime process, and Haskell 2010 References: <4A5355FE.9010901@gmail.com> Message-ID: <5830C8CC26834FFC9706D330E85370F7@cr3lt> > At last year's Haskell Symposium, it was announced that we would change > the Haskell Prime process to make it less monolithic. > .. > In the coming weeks we'll be refining proposals in preparation for > Haskell 2010. Given the incremental nature of the new standards, would it be useful to switch back to version numbers, eg "Haskell 2.0.0 (2010)" instead of "Haskell 2010"? Otherwise, we'll end up with half a dozen more or less current Haskells related by no obvious means. "Haskell'98" was chosen because it projected more permanence than the Haskell 1.x line of Haskell revisions that came before it. Having API instead of date encoded in the name would support deprecations, breaking changes, or additions as well as make it clear whether a new year's version does break anything or not. Btw, once upon a time, there was a discussion about an even more modular approach, standardising language extensions without saying which extensions made up a standard language. That would give support to the status quo, where people want to use, say, Haskell'98+FFI+Hierarchical Modules+MPTC+.. In other words, existing language extensions (LANGUAGE pragmas) ought to be standardized (currently, they mean different things in different implementations), independent of whether or not the committee decides to group them into a Haskell X. Claus From allbery at ece.cmu.edu Tue Jul 7 12:17:18 2009 From: allbery at ece.cmu.edu (Brandon S. Allbery KF8NH) Date: Tue Jul 7 11:59:51 2009 Subject: [Haskell] Re: Announcing the new Haskell Prime process, and Haskell 2010 In-Reply-To: <5830C8CC26834FFC9706D330E85370F7@cr3lt> References: <4A5355FE.9010901@gmail.com> <5830C8CC26834FFC9706D330E85370F7@cr3lt> Message-ID: <0B904C0C-0D7B-4C0F-B084-4CA8F13947FA@ece.cmu.edu> On Jul 7, 2009, at 11:40 , Claus Reinke wrote: >> At last year's Haskell Symposium, it was announced that we would >> change the Haskell Prime process to make it less monolithic. .. >> In the coming weeks we'll be refining proposals in preparation for >> Haskell 2010. > > Given the incremental nature of the new standards, would it be > useful to switch back to version numbers, eg "Haskell 2.0.0 (2010)" > instead of "Haskell 2010"? Otherwise, we'll end up with half a > dozen more or less current Haskells related by no obvious means. > "Haskell'98" was chosen because it projected more permanence > than the Haskell 1.x line of Haskell revisions that came before it. Arguably it was *too* successful at that. -- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery@kf8nh.com system administrator [openafs,heimdal,too many hats] allbery@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH -------------- next part -------------- A non-text attachment was scrubbed... Name: PGP.sig Type: application/pgp-signature Size: 195 bytes Desc: This is a digitally signed message part Url : http://www.haskell.org/pipermail/haskell/attachments/20090707/bc7e9b85/PGP-0001.bin From marcosomarviera at gmail.com Tue Jul 7 16:00:42 2009 From: marcosomarviera at gmail.com (Marcos Viera) Date: Tue Jul 7 15:43:05 2009 Subject: [Haskell] ANNOUNCE: AspectAG 0.1.1 In-Reply-To: <1B6E1D99-7B9E-4493-88B2-0EA4A54A5906@swierstra.net> References: <1213789520.15010.837.camel@localhost> <7A61F72B-55DD-4390-AA51-1A6B6FBF2C31@swierstra.net> <49399A47.1020103@van.steenbergen.nl> <1B6E1D99-7B9E-4493-88B2-0EA4A54A5906@swierstra.net> Message-ID: <4A53A96A.2000403@gmail.com> We are pleased to announce the availability of the package "AspectAG", a library of strongly typed Attribute Grammars implemented using type-level programming. The package contains the code associated with our paper at ICFP 2009: @inproceedings{Viera:Attribute-Grammars, Author = {Marcos Viera and S.~Doaitse Swierstra and Wouter Swierstra}, Title = {Attribute Grammars Fly First-Class: How to do Aspect Oriented Programming in Haskell}, Booktitle = {ICFP'09: Proceedings of the 2009 SIGPLAN International Conference on Functional Programming}, Year = {2009} } You can find some more information at http://www.cs.uu.nl/wiki/bin/view/Center/AspectAG. Enjoy! Doaitse Swierstra Wouter Swierstra Marcos Viera From matt at mattelder.org Tue Jul 7 22:58:23 2009 From: matt at mattelder.org (Matthew Elder) Date: Tue Jul 7 22:40:58 2009 Subject: [Haskell] ANNOUNCE: sendfile-0.3 Message-ID: <987d172d0907071958t6ed02c63he71772aae52b56b4@mail.gmail.com> Announcing sendfile-0.3 at http://hackage.haskell.org/package/sendfile-0.3 [ List of Changes ] * The signature for sendFile' has changed it was: Handle -> FilePath -> Int -> Int -> IO () now is: Handle -> Handle -> Int -> IO () This allows you to pass in a handle instead of a FilePath for the infile, and since you can now directly manipulate the infile handle, there is no need for offset (one can use hSeek). * Documentation updated / expanded * fileSize function removed (didn't belong) * Errors are now wrapped in proper errnos (using Foreign.C.Error for nix and Win32.Error for win) and give useful messages on exception. * The Module Name has been changed to reflect its function: it was: SendFile now is: Network.Socket.SendFile Windows and Linux seem to be working well, who wants to contribute patches for BSD and Mac? Much thanks goes to Duncan Coutts for his constructive criticism and feedback on 0.2. As usual, please continue to send bugs / feedback / etc to happs@googlegroups.com. Cheers! Matthew Elder -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090707/94e0db6f/attachment.html From jgm at berkeley.edu Wed Jul 8 04:20:11 2009 From: jgm at berkeley.edu (John MacFarlane) Date: Wed Jul 8 04:03:04 2009 Subject: [Haskell] ANN: texmath 0.1.0.1 - conversion of LaTeX math to MathML Message-ID: <20090708082011.GA16421@protagoras.phil.berkeley.edu> I'm pleased to announce an early release of texmath, a Haskell library for converting LaTeX math formulas to MathML. Hackage: http://hackage.haskell.org/package/texmath-0.1.0.1 Github: http://github.com/jgm/texmath/tree/master The package includes a standalone test program, testTeXMathML, and a CGI script, texmath-cgi, that can be used in web apps. This script is used in the demos at http://johnmacfarlane.net/texmath.xhtml http://johnmacfarlane.net/texmath.html texmath supports most of basic LaTeX and AMS extensions, but I'm sure some things have been left out, so let me know if you try a formula that should work but doesn't. John From kowey at darcs.net Wed Jul 8 06:12:24 2009 From: kowey at darcs.net (Eric Kow) Date: Wed Jul 8 05:54:37 2009 Subject: [Haskell] Haskell Hack Day, Edinburgh, 30 August 2009 Message-ID: <20090708101223.GJ12171@brighton.ac.uk> Dear Haskellers, I am pleased to report that we will be having a Haskell Hack Day in Edinburgh, on Sunday 30 August (before the ICFP begins). The day will be held at the ICFP conference venue, the Royal College of Physicians. The Hack Day will be free and open to all. Come join us; it'll be a lot of fun! Registration: http://www.haskell.org/haskellwiki/Hac7/Register More information: http://www.haskell.org/haskellwiki/Hac7 Note also, for those of you who want to double your hacking pleasure, we are on the look-out for some local pubs, cafes, etc that we can use for a little pre-Hack-Day-hacking Saturday. Please let us know if you would like to join this expedition as well and if you know of any good places to go. Thanks! Eric -- Eric Kow PGP Key ID: 08AC04F9 -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 197 bytes Desc: Digital signature Url : http://www.haskell.org/pipermail/haskell/attachments/20090708/454d904d/attachment.bin From t.h at gmx.info Wed Jul 8 18:15:12 2009 From: t.h at gmx.info (Timo B. =?utf-8?q?H=C3=BCbel?=) Date: Wed Jul 8 17:57:28 2009 Subject: [Haskell] ANN: Hayoo! beta 0.4 Message-ID: <200907090015.12572.t.h@gmx.info> Hello! We are pleased to announce the next beta version 0.4 of Hayoo!, the Haskell API search engine with find-as-you-type and suggestions. Visit Hayoo! here: http://holumbus.fh-wedel.de/hayoo This release includes some major changes to the web interface: - The full description of a function can now be displayed upon request, using the small "+" symbol in front of the description text - The most common root modules for all functions found are shown as list, providing a shortcut for further restricting the current query - Some example queries on the start page for easier use of Hayoo! Additionally, we have again updated the search index. It contains all packages from Hackage as well as gtk2hs as of 06.07.2009, a total of 111.946 function and type definitions. Please let us know about any problems, hints and suggestions. Happy hacking, Timo From jeff at nokrev.com Wed Jul 8 18:27:51 2009 From: jeff at nokrev.com (Jeff Wheeler) Date: Wed Jul 8 18:10:07 2009 Subject: [Haskell] ANN: hsparql, a SPARQL query generator/DSL and client Message-ID: <1247092071.4864.17.camel@ulysses> I'm excited to announce the first version of hsparql. HSparql makes it easy to query SPARQL-compliant servers using a relatively intuitive DSL and very simple client. SPARQL is a SQL-ish query language for stores of RDF data. So, SPARQL lets you search the structured data in several big databases. I wrote it so that I could search DBpedia [1], a neat site that pulls structured data from Wikipedia's infoboxes, and also ties it to remote data services like MusicBrainz and US Census information. HSparql isn't tied to DBpedia in any way, though, and can search any server. The DSL looks something like this: > simple :: Query [Variable] > simple = do > resource <- prefix (iriRef "http://dbpedia.org/resource/") > dbpprop <- prefix (iriRef "http://dbpedia.org/property/") > foaf <- prefix (iriRef "http://xmlns.com/foaf/0.1/") > > x <- var > name <- var > page <- var > > triple x (dbpprop .:. "genre") (resource .:. "Web_browser") > > triple x (foaf .:. "name") name > triple x (foaf .:. "page") page > > return [name, page] It's currently available on Hackage [2], and at the moment the source is only available from the tarball hosted there. I'd greatly appreciate any feedback on this package. Thanks! Jeff Wheeler [1] http://dbpedia.org/ [2] http://hackage.haskell.org/package/hsparql From nicolas.pouillard at gmail.com Thu Jul 9 05:34:00 2009 From: nicolas.pouillard at gmail.com (Nicolas Pouillard) Date: Thu Jul 9 05:17:35 2009 Subject: [Haskell] Re: [Haskell-cafe] ANN: hsparql, a SPARQL query generator/DSL and client In-Reply-To: <1247092071.4864.17.camel@ulysses> References: <1247092071.4864.17.camel@ulysses> Message-ID: <1247131943-sup-704@ausone.inria.fr> Excerpts from Jeff Wheeler's message of Thu Jul 09 00:27:51 +0200 2009: > I'm excited to announce the first version of hsparql. HSparql makes it > easy to query SPARQL-compliant servers using a relatively intuitive DSL > and very simple client. I've looked at your DSL and it looks really neat. While reading I was wondering if GADTs could help having an even nicer query language. -- Nicolas Pouillard http://nicolaspouillard.fr From voigt at tcs.inf.tu-dresden.de Thu Jul 9 07:40:48 2009 From: voigt at tcs.inf.tu-dresden.de (Janis Voigtlaender) Date: Thu Jul 9 07:23:01 2009 Subject: [Haskell] Re: [Haskell-cafe] ANN: Hayoo! beta 0.4 In-Reply-To: <200907090015.12572.t.h@gmx.info> References: <200907090015.12572.t.h@gmx.info> Message-ID: <4A55D740.6090001@tcs.inf.tu-dresden.de> Timo B. H?bel wrote: > Visit Hayoo! here: http://holumbus.fh-wedel.de/hayoo > > Additionally, we have again updated the search index. It contains all packages > from Hackage as well as gtk2hs as of 06.07.2009, a total of 111.946 function > and type definitions. Is it possible that coverage has decreased in some areas? I am pretty sure that a week ago or so I could use Hayoo to find sumP :: Num a => [:a:] -> a from GHC.PArr. Now, that result does not turn up anymore. Ciao, Janis. -- Dr. Janis Voigtlaender http://wwwtcs.inf.tu-dresden.de/~voigt/ mailto:voigt@tcs.inf.tu-dresden.de From ccshan at post.harvard.edu Thu Jul 9 17:58:08 2009 From: ccshan at post.harvard.edu (Chung-chieh Shan) Date: Thu Jul 9 17:40:30 2009 Subject: [Haskell] NASSLLI 2010 call for course and workshop proposals Message-ID: <20090709215807.GA328@mantle.rutgers.edu> NASSLLI 2010 North American Summer School in Logic, Language and Information 2010 June 21-26, Indiana University CALL for COURSE and WORKSHOP PROPOSALS The fourth NASSLLI (after previous editions at Stanford University, Indiana University, and UCLA) will return to Bloomington, Indiana, June 21-25, 2010. The summer school, loosely modeled on the long-running ESSLLI series in Europe, will consist of a number of courses and workshops, selected on the basis of the proposals. By default, courses and workshops meet for 90 or 120 minutes on each of five days. Proposals are invited that present interdisciplinary work between the areas of logic, linguistics, computer science, cognitive science, philosophy and artificial intelligence, though work in just one area is within the scope of the summer school if it can be applied in other fields. Examples of possible topics (adapting from previous NASSLLI courses) would include e.g. logics for communication, computational semantics, game theory (for logic, language and/or computation), dynamic semantics, modal logics, linear logic, machine learning techniques, statistical language models, and automated theorem proving. We encourage potential course or workshop contributors to check out previous programs at: http://www.linguistics.ucla.edu/nasslli04/program.html http://www.stanford.edu/group/nasslli/ http://www.indiana.edu/~nasslli/2003/program.html Courses and workshops should aim to be accessible to an interdisciplinary, graduate level audience. Courses may certainly focus on a single area, but lecturers should then include introductory background, try to avoid specialized notation that cannot be applied more widely, and spend time on the question of how the topic is relevant to other fields. A workshop can be more accessible if its program is bracketed by broader-audience talks that introduce and summarize the week's presentations. Associated Workshops/Conferences: In addition to courses and workshops taking place during the main NASSLLI five day session, Indiana University welcomes proposals for 1-3 day workshops or conferences hosted on campus immediately before or after the summer school, thus on the weekends of June 18-20 and June 27-29 2010. Previous such associated meetings have included a Mathematics of Language conference and Theoretical Aspects of Reasoning About Knowledge (TARK). Submission Details: Submissions should be by email, and should indicate 1) person(s) and affiliation 2) type of event (course or workshop; main session or weekend workshop/conference) 3) an outline of the course up to 500 words 4) an indication of whether special equipment is needed to teach that course (beamer, computer ...) 5) a statement about the instructor's experience in teaching in interdisciplinary settings 6) expected costs (whether you want to be paid hotel and/or travel, and descriptions of funding in hand or for which you will apply) Financial Details: A course may be taught by one or two persons. Conference fees are waived for all instructors. However, we are only able to pay for the full travel and expenses of one instructor per course. If two persons are lecturing, they may share a lump sum paid for both. We must also stress that while proposals from all over the world are welcomed, the Summer School can in general guarantee only toreimburse travel costs for travel from destinations within North America to Bloomington, although exceptions can be made depending on the financial situation. Furthermore, we encourage all lecturers to fund their own travel if this is feasible, since this will allow us to use our available funding for student scholarships. Workshops are more complicated financially than courses, and a proposal for a workshop should include a plan to obtain some outside funding for the speakers. Notifications of Interest: To give us an idea about the number of submissions, we would like you to email us, ideally within two weeks, in case you are interested in submitting a proposal. This will not commit you to actually submit one (and not emailing in advance does not preclude you from submitting a full proposal). Schedule: Jun 18 on, 2009 - unofficial notifications of intention to submit; Sep 15, 2009 - Deadline for submissions; Nov 1, 2009 - Course/workshop proposers notified of p.c. decisions; Nov 15, 2009 - Official announcement of program; May 15, 2009 - Material for courses available for printing; Jun 21, 2010 - Start of NASSLLI 2010 courses. Program Committee: David Beaver (committee chair), UT Austin Thony Gillies, Rutgers University John Horty, University of Maryland Sandra Kuebler, Indiana University Eric Pacuit, Stanford University Chris Potts, Stanford University Dan Roth, University of Illinois, Urbana/Champaign Chung-Chieh Shan, Rutgers University Matthias Scheutz, Indiana University Standing NASSLLI Steering Committee: David Beaver, UT Austin Larry Moss (committee chair), Indiana University Phokion Kolaitis, UC Santa Cruz / IBM Almaden Research Center Valeria de Paiva, Cuill Inc. Stuart Shieber, Harvard University Moshe Vardi, Rice University Website: News will be posted at: http://www.indiana.edu/~nasslli Inquiries: General inquiries regarding NASSLLI 2010, notifications of interest in course or workshop proposal submission, and final submissions of proposals should be directed to: nasslli AT indiana.edu Informal inquiries regarding potential courses or workshops may also be directed to: David Beaver, dib AT mail.utexas.edu (with "NASSLLI" in the subject line). Principal local organizers at Indiana University are Markus Dickinson, Sandra Kuebler, and Larry Moss, and they can be contacted via the main alias: nasslli AT indiana.edu -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: Digital signature Url : http://www.haskell.org/pipermail/haskell/attachments/20090709/7527dc03/attachment-0001.bin From matt at mattelder.org Fri Jul 10 21:10:27 2009 From: matt at mattelder.org (Matthew Elder) Date: Fri Jul 10 20:52:51 2009 Subject: [Haskell] ANNOUNCE: sendfile-0.3.1 Message-ID: <987d172d0907101810h2e70c4b2ic1158d705d764aa@mail.gmail.com> sendfile-0.3.1 -------------------------------------------------------------------------------- * Fixed a bug where Windows would send the whole file with sendFile' if you used '0' for count. * Converted the foreign calls for windows and linux to 'unsafe' since code should be lock-free. * Only positive integers are allowed for count now in sendFile' since negative is undefined in the portable sense. Still looking for someone to create some bsd and mac patches! Thanks, Matt -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090710/e776207f/attachment.html From byorgey at seas.upenn.edu Sun Jul 12 12:08:04 2009 From: byorgey at seas.upenn.edu (Brent Yorgey) Date: Sun Jul 12 11:50:08 2009 Subject: [Haskell] Haskell Weekly News: Issue 125 - July 12, 2009 Message-ID: <20090712160804.GA31474@seas.upenn.edu> --------------------------------------------------------------------------- Haskell Weekly News http://sequence.complete.org/hwn/20090712 Issue 125 - July 12, 2009 --------------------------------------------------------------------------- Welcome to issue 125 of HWN, a newsletter covering developments in the [1]Haskell community. Announcements Announcing the new Haskell Prime process, and Haskell 2010. Simon Marlow [2]announced the new and improved [3]Haskell Prime process, and a list of proposals which are currently under consideration to be accepted into the next (2010) revision of the standard. AspectAG 0.1.1. Marcos Viera [4]announced the release of [5]AspectAG, a library of strongly typed Attribute Grammars implemented using type-level programming. Colour tutorial. Russell O'Connor [6]announced a [7]tutorial wiki page for the [8]colour library. Haskell Hack Day, Edinburgh, 30 August 2009. Eric Kow [9]announced a [10]Haskell Hack Day to be held in Edinburgh, on Sunday 30 August, before ICFP. The Hack Day will be held at the ICFP conference venue, the Royal College of Physicians. sendfile-0.3. Matthew Elder [11]announced the release of [12]sendfile-0.3, which includes a more general interface, updated documentation, and more. Gtk2hsGenerics. Michael Dever [13]announced the release of [14]Gtk2hsGenerics, a package which contains utility functions for extracting from and adding to stores. darcs 2.3 beta 2. Petr Rockai [15]announced that darcs 2.3 beta 2 is available for testing. It can be installed using the [16]darcs-beta package on Hackage (be sure to 'cabal update' first). The new beta release adds index upgrade functionality to hashed-storage, and now uses an architecture-independent index format. hsparql, a SPARQL query generator/DSL and client. Jeff Wheeler [17]announced the first version of [18]hsparql, which makes it easy to query SPARQL-compliant servers using a relatively intuitive DSL and very simple client. SPARQL is a SQL-ish query language for stores of RDF data. Hayoo! beta 0.4. Timo B. [19]announced the next beta version 0.4 of [20]Hayoo!, the Haskell API search engine with find-as-you-type and suggestions. This release includes some major changes to the web interface, including the ability to display the full description of a function, and some example queries featured on the start page, as well as an updated search index. texmath 0.1.0.1 - conversion of LaTeX math to MathML. John MacFarlane [21]announced an early release of [22]texmath, a Haskell library for converting LaTeX math formulas to MathML. The package includes a standalone test program, testTeXMathML, and a CGI script, texmath-cgi, that can be used in web apps. You can see demos of the script [23]here and [24]here. BostonHaskell: Next meeting - July 16th at MIT CSAIL Reading Room (32-G882). Ravi Nanavati [25]announced the July meeting of the [26]Boston Area Haskell Users' Group, to be held Thursday, July 16th from 6:30pm - 8:30pm in the MIT CSAIL Reading Room. Scheduled talks include "An Introduction to GHC Hacking" by Alec Heller, and "Haskell on the iPhone" by Ryan Trinkle. There are still openings for Lightning Talks (5-minute talk, 2-minute Q&A). See the announcement for more details. AC-Vector, AC-Colour and AC-EasyRaster-GTK. Andrew Coppin [27]announced the release of three packages: [28]AC-Vector, which provides unboxed vectors of Doubles with arithmetic, dot product and cross product, and a few other useful items; [29]AC-Colour, which provides two simple RGB color types, optimized for simplicity and speed; and [30]AC-EasyRaster-GTK, a layer over Gtk2hs which provides easy pixel-twiddling functionality. Google Summer of Code Progress updates from participants in the 2008 [31]Google Summer of Code. Haddock improvements. Isaac Dupree has had a [32]good deal of success getting cross-package documentation to work, with a few remaining loose ends. space profiling. Gergely Patai's profile graphing application [33]is now capable of connecting to a profile relay server that can broadcast the heap profile of its associated process on the fly, so it is now possible to attach an observer to a program that was started earlier. He now plans to shift to working on a history manager. fast darcs. Petr Rockai has produced [34]another darcs 2.3 beta release, and has done more work on [35]designing an efficient storage system. Discussion Leaner Haskell.org frontpage. haskell [36]proposed a new design for the haskell.org front page. Bikeshedding ensues, news at 11. exercise - a completely lazy sorting algorithm. Petr Pudlak [37]asked whether it is possible to write a lazy sorting algorithm which allows access to the kth item of the sorted output in linear time, for all k. An interesting discussion and mind-expanding code followed. Implementing Las Vegas algorithms in Haskell. Matthias G?rgens began a [38]discussion on implementing Las Vegas algorithms, which use a source of randomness but have results which are still deterministic. What should the type of such functions be? Is it OK to use unsafePerformIO in their definition? Blog noise [39]Haskell news from the [40]blogosphere. Blog posts from people new to the Haskell community are marked with >>>, be sure to welcome them! * Petr Rockai: [41]Designing Storage for darcs. * >>> haskelladdict: [42]Having fun sorting with Haskell. * Jeff Heard: [43]C2HS example: To save other people frustration. * JP Moresmau: [44]Mazes of Monad: 1.0.5 and (maybe) final version uploaded. * Sean Leather: [45]Fun and generic things to do with EMGM at the London HUG. * Greg Bacon: [46]Gyrigrams. * Magnus Therning: [47]Making a choice from a list in Haskell, Vty (part 2). * Jeff Heard: [48]A quick buster example. * Jeff Heard: [49]An ugly force-directed layout implementation. * Petr Rockai: [50]darcs 2.3 beta 2. * Isaac Dupree: [51]Cross-package documentation going well!. * >>> dasuxullebt: [52]I (don't) like Haskell. * Holumbus: [53]Some Hayoo! Improvements. * David Amos: [54]Conjugacy classes, part 2. * Michael Snoyman: [55]hack-handler-webkit. * Dan Piponi (sigfpe): [56]A Monad for Combinatorial Search with Heuristics. * Greg Bacon: [57]A programmable semicolon explained. * Holumbus: [58]Another Hayoo! Update. * Gergely Patai: [59]Remote profiling at your fingertips. * The GHC Team: [60]Visualising the Haskell package dependency graph. * Bryan O'Sullivan: [61]First steps with Haskell text API improvement. * Paul Hudak: [62]Haskell and the Arts. * >>> John Gunderman: [63]Haskell Cabal in Ubuntu. * Sebastian Sylvan: [64]Ray tracing signed distance functions. Quotes of the Week * SimonPJ: [re: class constraints on data declarations] In GHC's source code these contexts are consistently called stupid_theta. * JN: this tutorial just introduced _|_ and called it bottom. I assume that's because it looks like an ass? * uman: so you can pass functions around as objects... this sounds like JavaScript * Twey: Mr. Wing, sir, if you are listening: you have the I.Q. of a semolina pudding. And your homepage is full of tags. I'm not sure which is the greater insult, but at least one is objectively true. * jmcarthur: #haskell: Overwhelmingly helpful. * lilac: class Monad m where / return and Kleisli compose / must form a monoid that's my new monad tutorial haiku i think that is the best monad tutorial i have ever read * dcoutts: make sure happy is on your path and it'll all be ok * ski: my answer to that is : don't deduce, denote! * roco: guys i have problem, does anybody know programming ? * dhjdhj: All new features added to C++ are intended to fix previously new features added to C++ About the Haskell Weekly News New editions are posted to [65]the Haskell mailing list as well as to [66]the Haskell Sequence and [67]Planet Haskell. [68]RSS is also available, and headlines appear on [69]haskell.org. To help create new editions of this newsletter, please see the information on [70]how to contribute. Send stories to byorgey at cis dot upenn dot edu. The darcs repository is available at darcs get [71]http://code.haskell.org/~byorgey/code/hwn/ . References 1. http://haskell.org/ 2. http://www.haskell.org//pipermail/haskell/2009-July/021472.html 3. http://hackage.haskell.org/trac/haskell-prime/wiki/Process 4. http://www.haskell.org//pipermail/haskell/2009-July/021475.html 5. http://hackage.haskell.org/package/AspectAG 6. http://www.haskell.org//pipermail/haskell-cafe/2009-July/064065.html 7. http://www.haskell.org/haskellwiki/Colour 8. http://hackage.haskell.org/package/colour 9. http://article.gmane.org/gmane.comp.lang.haskell.general/17345 10. http://www.haskell.org/haskellwiki/Hac7 11. http://article.gmane.org/gmane.comp.lang.haskell.general/17343 12. http://hackage.haskell.org/package/sendfile 13. http://article.gmane.org/gmane.comp.lang.haskell.general/17336 14. http://hackage.haskell.org/package/Gtk2hsGenerics 15. http://article.gmane.org/gmane.comp.lang.haskell.cafe/61071 16. http://hackage.haskell.org/package/darcs%2Dbeta 17. http://article.gmane.org/gmane.comp.lang.haskell.cafe/61062 18. http://hackage.haskell.org/package/hsparql 19. http://article.gmane.org/gmane.comp.lang.haskell.cafe/61060 20. http://holumbus.fh-wedel.de/hayoo 21. http://article.gmane.org/gmane.comp.lang.haskell.cafe/61049 22. http://hackage.haskell.org/package/texmath 23. http://johnmacfarlane.net/texmath.xhtml 24. http://johnmacfarlane.net/texmath.html 25. http://article.gmane.org/gmane.comp.lang.haskell.cafe/61003 26. http://www.haskell.org/haskellwiki/Boston_Area_Haskell_Users%27_Group 27. http://article.gmane.org/gmane.comp.lang.haskell.cafe/60944 28. http://hackage.haskell.org/package/AC-Vector 29. http://hackage.haskell.org/package/AC-Colour 30. http://hackage.haskell.org/package/AC-EasyRaster-GTK 31. http://hackage.haskell.org/trac/summer-of-code/wiki/SoC2008 32. http://haddock2009.wordpress.com/2009/07/09/cross-package-documentation-going-well/ 33. http://just-bottom.blogspot.com/2009/07/remote-profiling-at-your-fingertips.html 34. http://web.mornfall.net/blog/darcs_2.3_beta_2.html 35. http://web.mornfall.net/blog/designing_storage_for_darcs.html 36. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/61082 37. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/60981 38. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/60998 39. http://planet.haskell.org/ 40. http://haskell.org/haskellwiki/Blog_articles 41. http://web.mornfall.net/blog/designing_storage_for_darcs.html 42. http://haskelladdict.wordpress.com/2009/07/11/having-fun-sorting-with-haskell/ 43. http://vis.renci.org/jeff/2009/07/10/c2hs-example-to-save-other-people-frustration/ 44. http://jpmoresmau.blogspot.com/2009/07/mazes-of-monad-105-and-maybe-final.html 45. http://feedproxy.google.com/~r/splonderzoek/~3/qnt94yp_Er4/fun-and-generic-things-to-do-with-emgm.html 46. http://feedproxy.google.com/~r/gbacon/~3/QKPjQ0Fxl_4/gyrigrams.html 47. http://therning.org/magnus/archives/689 48. http://vis.renci.org/jeff/2009/07/09/a-quick-buster-example/ 49. http://vis.renci.org/jeff/2009/07/09/an-ugly-force-directed-layout-implementation/ 50. http://web.mornfall.net/blog/darcs_2.3_beta_2.html 51. http://haddock2009.wordpress.com/2009/07/09/cross-package-documentation-going-well/ 52. http://uxul.wordpress.com/2009/07/09/i-dont-like-haskell/ 53. http://holumbus.fh-wedel.de/blog/?p=24 54. http://haskellformaths.blogspot.com/2009/07/conjugacy-classes-part-2.html 55. http://blog.snoyman.com/2009/07/08/hack-handler-webkit/ 56. http://blog.sigfpe.com/2009/07/monad-for-combinatorial-search-with.html 57. http://feedproxy.google.com/~r/gbacon/~3/UGYWKr-huLY/programmable-semicolon-explained.html 58. http://holumbus.fh-wedel.de/blog/?p=23 59. http://just-bottom.blogspot.com/2009/07/remote-profiling-at-your-fingertips.html 60. http://ghcmutterings.wordpress.com/2009/07/06/visualising-the-haskell-package-dependency-graph/ 61. http://www.serpentine.com/blog/2009/07/06/first-steps-with-haskell-text-api-improvement/ 62. http://www.infoq.com/presentations/haskell-arts-paul-hudak 63. http://sporkcode.wordpress.com/2009/07/05/haskell-cabal-in-ubuntu/ 64. http://sebastiansylvan.spaces.live.com/blog/cns!4469F26E93033B8C!173.entry 65. http://www.haskell.org/mailman/listinfo/haskell 66. http://sequence.complete.org/ 67. http://planet.haskell.org/ 68. http://sequence.complete.org/node/feed 69. http://haskell.org/ 70. http://haskell.org/haskellwiki/HWN 71. http://code.haskell.org/~byorgey/code/hwn/ From icfp.publicity at googlemail.com Sun Jul 12 22:45:40 2009 From: icfp.publicity at googlemail.com (Matthew Fluet (ICFP Publicity Chair)) Date: Sun Jul 12 22:27:40 2009 Subject: [Haskell] ICFP09 Final Call for Participation Message-ID: <53ff55480907121945s1a66a7eck5ce5074eb99dc306@mail.gmail.com> ===================================================================== Final Call for Participation The 14th ACM SIGPLAN International Conference on Functional Programming (ICFP 2009) http://www.cs.nott.ac.uk/~gmh/icfp09.html Edinburgh, Scotland, 31 August - 2 September 2009 ===================================================================== ***** Accommodation Deadline: July 20, 2009 ***** Due to the overlap with Edinburgh Festival, accommodations may be difficult to secure after the deadline. Reserve now! http://www.haskell.org/haskellwiki/ICFP_2009_Local_Arrangements ***** Early Registration Deadline: July 30, 2009 ***** http://www.regmaster.com/conf/icfp2009.html ICFP 2009 provides a forum for researchers and developers to hear about the latest work on the design, implementations, principles, and uses of functional programming. The conference covers the entire spectrum of work, from practice to theory, including its peripheries. Preliminary program: * Abstracts: + http://web.cecs.pdx.edu/~apt/icfp09_accepted_papers/accepted.html * Schedule: + http://web.cecs.pdx.edu/~apt/icfp09_preliminary_program.pdf * Invited speakers: + Guy Steele -- Organizing Functional Code for Parallel Execution: or, foldl and foldr Considered Slightly Harmful + Benjamin Pierce -- Lambda, the Ultimate TA: Using a Proof Assistant to Teach Programming Language Foundations + Dan Piponi -- Commutative Monads, Diagrams and Knots Schedule including related workshops: * Aug 30: ACM SIGPLAN Workshop on ML * Aug 30: ACM SIGPLAN Workshop on Generic Programming * Aug 31-Sep 2: ICFP09 * Sep 3: ACM SIGPLAN Haskell Symposium * Sep 3: ACM SIGPLAN Developer Tracks on Functional Programming * Sep 4: Commercial Users of Functional Programming * Sep 4: ACM SIGPLAN Workshop on Mechanizing Metatheory * Sep 4: ACM SIGPLAN Workshop on Approaches and Applications of Inductive Programming * Sep 5: ACM SIGPLAN Erlang Workshop * Sep 5: ACM SIGPLAN Developer Tracks on Functional Programming * Sep 5: ACM SIGPLAN Haskell Implementors Workshop Conference organizers: * General Chair: Graham Hutton (University of Nottingham) * Program Chair: Andrew Tolmach (Portland State University) * Local Arrangements Chairs: Philip Wadler (University of Edinburgh), Kevin Hammond (University of St Andrews), and Gregory Michaelson (Heriot-Watt University) * Workshop Co-Chairs: Christopher Stone (Harvey Mudd College), and Michael Sperber (DeinProgramm) * Programming Contest Chair: Andrew Gill (University of Kansas) * Publicity Chair: Matthew Fluet (Toyota Technological Institute at Chicago) From bulat.ziganshin at gmail.com Mon Jul 13 08:35:06 2009 From: bulat.ziganshin at gmail.com (Bulat Ziganshin) Date: Mon Jul 13 08:25:21 2009 Subject: [Haskell] 20 years ago Message-ID: <1147957281.20090713163506@gmail.com> Hello haskell, Industrial programmers often think that functional programming is "unnatural" and cannot be mastered by most of them. But 20 years ago they thought the same about OOP The first widespead OOP system was a Turbo Pascal 5.5, released 1989. i've downloaded its manual, quickly scanned it and found what i've expected: "The challenge of object-oriented programming (OOP) is that it sometimes requires you to set aside habits and ways of thinking about programming that have been considered standard for many years. Once that is done, however, OOP is simple, straight-forward, and superior for solving many of the prob- lems that plague traditional software programs." http://edn.embarcadero.com/article/images/20803/TP_55_OOP_Guide.pdf -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com From leon.p.smith at gmail.com Mon Jul 13 16:26:18 2009 From: leon.p.smith at gmail.com (Leon Smith) Date: Mon Jul 13 16:08:16 2009 Subject: [Haskell] ANN: data-ordlist-0.0.1 and NumberSieves-0.0 Message-ID: Two new packages have been uploaded to Hackage, one that implements bag (multiset) and set operations on ordered lists, and another that offers three different number theoretic sieves. http://hackage.haskell.org/package/data-ordlist Data.OrdList offers many of the same kinds of operations as Data.Set, although Data.Set is likely to often be a better choice. However, this library is not intended to be used as an abstract datatype for sets and multisets, rather it is intended to be a convenient way for efficiently dealing with lists that you happen to know are ordered. It includes operations such as union, merge, exclusive union, intersection, and difference. Also notable is that it includes nub on ordered lists, as well as sortOn and nubSort functions. http://hackage.haskell.org/package/NumberSieves NumberSieves includes the Sieve of O'Neill, from "The Geniune Sieve of Eratosthenes" by Melissa O'Neill, which offers an incremental primality sieve based on priority queues. Also included are two array-based generalizations of the Sieve of Eratosthenes. The first sieves a prime divisor for each number in the sieve, which is useful if you want to factor a large quantity of small numbers. The second sieves Euler's totient, useful if you want to calculate the phi function for a large quantity of small numbers. Best, Leon -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090713/d312bf85/attachment-0001.html From DekuDekuplex at Yahoo.com Tue Jul 14 02:14:44 2009 From: DekuDekuplex at Yahoo.com (Benjamin L.Russell) Date: Tue Jul 14 01:56:52 2009 Subject: [Haskell] Re: 20 years ago References: <1147957281.20090713163506@gmail.com> Message-ID: On Mon, 13 Jul 2009 16:35:06 +0400, Bulat Ziganshin wrote: >The first widespead OOP system was a Turbo Pascal 5.5, released 1989. Just for the record, Turbo Pascal was preceded by a *pure* object-oriented language, Smalltalk [1], as described below: >The Smalltalk language, which was developed at Xerox PARC (by Alan Kay >and others) in the 1970s, introduced the term object-oriented >programming to represent the pervasive use of objects and messages as >the basis for computation.... Smalltalk and with it OOP were introduced to >a wider audience by the August 1981 issue of Byte magazine. The difference between a pure object-oriented programming language and an impure one is that in the former, there is no difference between values which are objects and values which are primitive types, as explained below [2]: >Smalltalk is a "pure" object-oriented programming language, meaning >that, unlike Java and C++, there is no difference between values which >are objects and values which are primitive types. In Smalltalk, primitive >values such as integers, booleans and characters are also objects, in the >sense that they are instances of corresponding classes, and operations >on them are invoked by sending messages. A programmer can change >the classes that implement primitive values, so that new behavior can >be defined for their instances--for example, to implement new control >structures--or even so that their existing behavior will be changed. >This fact is summarised in the commonly heard phrase "In Smalltalk >everything is an object" (which would more accurately be expressed as >"all values are objects", as variables aren't). Most currently widespread programming languages that are termed "object-oriented" aren't really object-oriented, but are really procedural with object-oriented extensions. For example, this is true of such languages as C++ and Java. Incidentally, there is an interesting paper [3] by Matthias Felleisen presenting the thesis, as described in the synopsis [4], that "good object-oriented programming heavily ``borrows'' from functional programming and that the future of object-oriented programming is to study functional programming and language design even more." -- Benjamin L. Russell [1] "Object-oriented programming - Wikipedia, the free encyclopedia." _Wikipedia, the free encyclopedia._ 13 July 2009. 14 July 2009. . [2] "Smalltalk - Wikipedia, the free encyclopedia." _Wikipedia, the free encyclopedia._ 3 July 2009. 14 July 2009. . [3] Felleisen, Matthias. "Functional Objects, Functional Classes." Invited talk at 18th European Conference on Object-Oriented Programming, Oslo, Norway, 14-18 June 2004. 16 June 2004. . [4] Felleisen, Matthias. "Functional Objects, Functional Classes." College of Computer and Information Science, Northeastern University. 4 Aug. 2004. 14 July 2009. . -- Benjamin L. Russell / DekuDekuplex at Yahoo dot com http://dekudekuplex.wordpress.com/ Translator/Interpreter / Mobile: +011 81 80-3603-6725 "Furuike ya, kawazu tobikomu mizu no oto." -- Matsuo Basho^ From bulat.ziganshin at gmail.com Tue Jul 14 03:52:22 2009 From: bulat.ziganshin at gmail.com (Bulat Ziganshin) Date: Tue Jul 14 03:39:19 2009 Subject: [Haskell] Re: 20 years ago In-Reply-To: References: <1147957281.20090713163506@gmail.com> Message-ID: <695085323.20090714115222@gmail.com> Hello Benjamin, Tuesday, July 14, 2009, 10:14:44 AM, you wrote: >>The first widespead OOP system was a Turbo Pascal 5.5, released 1989. > Just for the record, Turbo Pascal was preceded by a *pure* TP was a first OOP system sold in hundreds of thousands of copies. it was "OOP for the masses" and its manual reflects what masses thought about OOP those times - just the same that they think about FP now. you can replace OOP with FP in the manual text i cited and read it as modern text :) -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com From DekuDekuplex at Yahoo.com Tue Jul 14 06:23:11 2009 From: DekuDekuplex at Yahoo.com (Benjamin L.Russell) Date: Tue Jul 14 06:05:22 2009 Subject: [Haskell] Re: 20 years ago References: <1147957281.20090713163506@gmail.com> <695085323.20090714115222@gmail.com> Message-ID: <02mo55dtdn6o6n6vfvtpq0eo674hros8fe@4ax.com> Hello Bulat, On Tue, 14 Jul 2009 11:52:22 +0400, you wrote: >you can replace OOP with FP in the manual text i cited and read it as >modern text :) Mostly, perhaps. But how about the following portions (see page 16) [1]? ;) >Object-oriented languages were once called "actor languages" with this metaphor in mind. >One often amusing outgrowth of this is that OOP fanatics anthropomorphize >their objects. Data structures are no longer passive buckets for you to toss >values in. In the new view of things, an object is looked upon as an actor on >a stage, with a set of lines (methods) memorized. When you (the director) >give the word, the actor recites from the script. Let's try.... >Functional languages were once called "actor languages" with this metaphor in mind. Hmm ... this doesn't quite seem to fit.... >One often amusing outgrowth of this is that FP fanatics anthropomorphize >their functions. Data structures are no longer passive buckets for you to toss >values in. In the new view of things, a function is looked upon as an actor on >a stage, with a set of lines () >memorized. When you (the director) give the word, the actor recites from the script. Forgive me, but I can't quite think of anything corresponding to "methods" here. Can you get these portions to fit without mixing metaphors? ;-) -- Benjamin L. Russell [1] Borland International, Inc. _Turbo Pascal 5.5 Object-Oriented Programming Guide._ Scotts Valley, CA: Borland International, Inc., 1989. . -- Benjamin L. Russell / DekuDekuplex at Yahoo dot com http://dekudekuplex.wordpress.com/ Translator/Interpreter / Mobile: +011 81 80-3603-6725 "Furuike ya, kawazu tobikomu mizu no oto." -- Matsuo Basho^ From bulat.ziganshin at gmail.com Tue Jul 14 07:00:03 2009 From: bulat.ziganshin at gmail.com (Bulat Ziganshin) Date: Tue Jul 14 06:42:38 2009 Subject: [Haskell] Re: 20 years ago In-Reply-To: <02mo55dtdn6o6n6vfvtpq0eo674hros8fe@4ax.com> References: <1147957281.20090713163506@gmail.com> <695085323.20090714115222@gmail.com> <02mo55dtdn6o6n6vfvtpq0eo674hros8fe@4ax.com> Message-ID: <768948039.20090714150003@gmail.com> Hello Benjamin, Tuesday, July 14, 2009, 2:23:11 PM, you wrote: >>you can replace OOP with FP in the manual text i cited and read it as >>modern text :) > Mostly, perhaps. But how about the following portions (see page 16) i meant only the ideology portion i cited, not that you can replace s/OOP/FP/ in turbo pascal book and sell it as Haskell one :) -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com From DekuDekuplex at Yahoo.com Tue Jul 14 08:40:46 2009 From: DekuDekuplex at Yahoo.com (Benjamin L.Russell) Date: Tue Jul 14 08:22:53 2009 Subject: [Haskell] Re: 20 years ago References: <1147957281.20090713163506@gmail.com> <695085323.20090714115222@gmail.com> <02mo55dtdn6o6n6vfvtpq0eo674hros8fe@4ax.com> <768948039.20090714150003@gmail.com> Message-ID: On Tue, 14 Jul 2009 15:00:03 +0400, Bulat Ziganshin wrote: >Hello Benjamin, > >Tuesday, July 14, 2009, 2:23:11 PM, you wrote: > >>>you can replace OOP with FP in the manual text i cited and read it as >>>modern text :) > >> Mostly, perhaps. But how about the following portions (see page 16) > >i meant only the ideology portion i cited, not that you can replace >s/OOP/FP/ in turbo pascal book and sell it as Haskell one :) At the risk of getting off-topic, incidentally, do you know how to install the programming language for the manual text that you had cited on Windows XP Professional, Service Pack 3, in order to try out the examples in the text? Out of curiosity, I tried downloading [1] and installing it, but every time I ran INSTALL.EXE, the program wouldn't seem to proceed past looking for a floppy disk in my A: drive. -- Benjamin L. Russell [1] Intersimone, David. "Antique Software: Turbo Pascal v5.5." _Database Tools and Developer Software | Embarcadero Technologies_. 2009. Embarcadero Technologies, Inc. 14 July 2009. . -- Benjamin L. Russell / DekuDekuplex at Yahoo dot com http://dekudekuplex.wordpress.com/ Translator/Interpreter / Mobile: +011 81 80-3603-6725 "Furuike ya, kawazu tobikomu mizu no oto." -- Matsuo Basho^ From Sven.Panne at aedion.de Tue Jul 14 13:16:41 2009 From: Sven.Panne at aedion.de (Sven Panne) Date: Tue Jul 14 12:58:35 2009 Subject: [Haskell] ANNOUNCE: StateVar 1.0.0.0 Message-ID: <200907141916.41758.Sven.Panne@aedion.de> To further modularize the OpenGL/OpenAL packages, a new StateVar package has been released to Hackage. It contains state variables, which are references in the IO monad, like IORefs or parts of the OpenGL state. Cheers, S. From Sven.Panne at aedion.de Tue Jul 14 13:18:36 2009 From: Sven.Panne at aedion.de (Sven Panne) Date: Tue Jul 14 13:00:29 2009 Subject: [Haskell] ANNOUNCE: ObjectName 1.0.0.0 Message-ID: <200907141918.36727.Sven.Panne@aedion.de> A new (tiny) ObjectName package has been released to Hackage. It contains the class ObjectName, which corresponds to the general notion of explicitly handled identifiers for API objects, e.g. a texture object name in OpenGL or a buffer object name in OpenAL. Cheers, S. From Sven.Panne at aedion.de Tue Jul 14 13:22:45 2009 From: Sven.Panne at aedion.de (Sven Panne) Date: Tue Jul 14 13:04:40 2009 Subject: [Haskell] ANNOUNCE: OpenGLRaw 1.0.1.0 Message-ID: <200907141922.46015.Sven.Panne@aedion.de> A new version of the OpenGLRaw package has been uploaded to Hackage. Support for the following OpenGL extensions has been added: GL_NV_texture_shader2 GL_NV_depth_clamp GL_NV_primitive_restart GL_NV_vertex_array_range2 GL_NV_occlusion_query GL_NV_fence GL_NV_light_max_exponent GL_NV_texture_env_combine4 GL_NV_fog_distance GL_NV_register_combiners2 GL_NV_register_combiners GL_NV_light_max_exponent GL_NV_multisample_filter_hint GL_NV_texture_shader GL_NV_vertex_array_range GL_NV_texgen_emboss GL_NV_copy_depth_to_color Cheers, S. From Sven.Panne at aedion.de Tue Jul 14 13:25:33 2009 From: Sven.Panne at aedion.de (Sven Panne) Date: Tue Jul 14 13:07:32 2009 Subject: [Haskell] ANNOUNCE: GLURaw 1.0.0.0 Message-ID: <200907141925.34037.Sven.Panne@aedion.de> A new GLURaw package has been uploaded to Hackage. It contains full support for all GLU functionality and is similar in spirit to the OpenGLRaw package, i.e. it is a 1:1 mapping of the C interface, no libraries or headers are needed at build time, and the GLU API entries are resolved dynamically at runtime. Cheers, S. From yairchu at gmail.com Wed Jul 15 09:33:21 2009 From: yairchu at gmail.com (Yair Chuchem) Date: Wed Jul 15 09:15:30 2009 Subject: [Haskell] ANNOUNCE: generator 0.5.1 Message-ID: <879DFD17-D34A-4243-86FD-6B550160E8CC@gmail.com> A new "generator" package has been uploaded to Hackage. It implements an alternative list monad transformer, a list class, and related functions. The difference from mtl/transformers's ListT is that mtl is a monadic action that returns a list: newtype ListT m a = ListT { runListT :: m [a] } generator's is a monadic list: data ListItem l a = Nil | Cons { headL :: a, tailL :: l a } newtype ListT m a = ListT { runListT :: m (ListItem (ListT m) a) } A short example program which reads numbers from the user and interactively sums them up: import Control.Monad.ListT (ListT) import Data.List.Class (execute, joinM, repeat, scanl, takeWhile) import Prelude hiding (repeat, scanl, takeWhile) main = execute . joinM . fmap print . scanl (+) 0 . fmap (fst . head) . takeWhile (not . null) . fmap reads . joinM $ (repeat getLine :: ListT IO (IO String)) I also wrote an example/blog-post about using ListT to add an undo option to the classic game of "hamurabi": http://mashebali.blogspot.com/2009/07/charlemagne-disraeli-and-jefferson.html Another interesting observation is that "ListT [] a" is a tree of "a"s. The module Data.List.Tree includes functions to prune and search such trees (dfs, bfs, bestFirstSearchOn, etc). This can be useful for modularizing code that uses the list monad for combinatoric search by decoupling tree creation from processing and pruning. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090715/dfca1bc7/attachment-0001.html From simon at joyful.com Wed Jul 15 13:51:45 2009 From: simon at joyful.com (Simon Michael) Date: Wed Jul 15 13:33:38 2009 Subject: [Haskell] ANN: shelltestrunner 0.6 released Message-ID: I'm pleased to announce the first release of shelltestrunner: a small tool for testing any command-line program by running it through "shell" tests defined with a simple file format. Each test can specify the command-line arguments, input, expected output, expected stderr output, and/or expected exit code. This was extracted from the hledger project, inspired by the tests in John Wiegley's ledger project, and uses Max Bolingbroke's test- framework. In some cases you will get a big speedup by using test- framework's parallelising feature. Example: $ shelltestrunner shelltestrunner *.test -- -j8 :args.test:1: [OK] :args.test:2: [OK] :args.test:3: [OK] :args.test:4: [OK] :early-j-option.test: [OK] :help-flag.test: [OK] etc. I hope you find it useful. Feedback, patches, or alternate packaging suggestions are welcome! Best, -Simon From simon at joyful.com Wed Jul 15 13:54:00 2009 From: simon at joyful.com (Simon Michael) Date: Wed Jul 15 13:35:53 2009 Subject: [Haskell] Re: ANN: shelltestrunner 0.6 released In-Reply-To: References: Message-ID: And the urls: home - http://hackage.haskell.org/package/shelltestrunner darcs repo - http://joyful.com/repos/shelltestrunner From sjoerd at w3future.com Wed Jul 15 17:24:55 2009 From: sjoerd at w3future.com (Sjoerd Visscher) Date: Wed Jul 15 17:06:54 2009 Subject: [Haskell] ANNOUNCE: generator 0.5.1 In-Reply-To: <879DFD17-D34A-4243-86FD-6B550160E8CC@gmail.com> References: <879DFD17-D34A-4243-86FD-6B550160E8CC@gmail.com> Message-ID: <006747AE-91E5-43B6-9EFB-FD14F43023B4@w3future.com> This sounds similar to ChoiceT from the monadLib package. Did you know ChoiceT? greetings, Sjoerd On Jul 15, 2009, at 3:33 PM, Yair Chuchem wrote: > A new "generator" package has been uploaded to Hackage. > > It implements an alternative list monad transformer, a list class, > and related functions. > > The difference from mtl/transformers's ListT is that > mtl is a monadic action that returns a list: > newtype ListT m a = ListT { runListT :: m [a] } > generator's is a monadic list: > data ListItem l a = Nil | Cons { headL :: a, tailL :: l a } > newtype ListT m a = ListT { runListT :: m (ListItem (ListT m) a) } > A short example program which reads numbers from the user and > interactively sums them up: > import Control.Monad.ListT (ListT) > import Data.List.Class (execute, joinM, repeat, scanl, takeWhile) > import Prelude hiding (repeat, scanl, takeWhile) > > main = > execute . joinM . fmap print . > scanl (+) 0 . > fmap (fst . head) . > takeWhile (not . null) . > fmap reads . > joinM $ (repeat getLine :: ListT IO (IO String)) > I also wrote an example/blog-post about using ListT to add an undo > option to the classic game of "hamurabi": > http://mashebali.blogspot.com/2009/07/charlemagne-disraeli-and-jefferson.html > > Another interesting observation is that "ListT [] a" is a tree of > "a"s. > The module Data.List.Tree includes functions to prune and search > such trees (dfs, bfs, bestFirstSearchOn, etc). > This can be useful for modularizing code that uses the list monad > for combinatoric search by decoupling tree creation from processing > and pruning. > > _______________________________________________ > Haskell mailing list > Haskell@haskell.org > http://www.haskell.org/mailman/listinfo/haskell -- Sjoerd Visscher sjoerd@w3future.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090715/c68b3f2c/attachment.html From yairchu at gmail.com Wed Jul 15 18:31:03 2009 From: yairchu at gmail.com (Yair Chuchem) Date: Wed Jul 15 18:12:58 2009 Subject: [Haskell] ANNOUNCE: generator 0.5.1 In-Reply-To: <006747AE-91E5-43B6-9EFB-FD14F43023B4@w3future.com> References: <879DFD17-D34A-4243-86FD-6B550160E8CC@gmail.com> <006747AE-91E5-43B6-9EFB-FD14F43023B4@w3future.com> Message-ID: <58D83289-FC5C-4EEA-8C9D-3556A6A47D6F@gmail.com> I did not know about ChoiceT. It does offer the same basic functionality: runChoiceT :: (Monad m) => ChoiceT m a -> m (Maybe (a,ChoiceT m a)) runChoiceT is equivalent to my runListT, and for the "Hamurabi" example ChoiceT would work just as well as ListT. An interesting thing is that I arrived to ListT from a totally different perpective: A monadic list as an alternative to Lazy IO and Iteratee (I'm not claiming this provides everything Iteratee does). That's what brought me to implement scanl, takeWhile, and other list operations for ListT. Other related monads: Sebastian Fisher's "Reinventing Haskell Backtracking" (http://www-ps.informatik.uni-kiel.de/~sebf/pub/atps09.html ) seems to be similar (I think). and Dan Piponi's PList monad (http://blog.sigfpe.com/2009/07/monad-for-combinatorial-search-with.html ) offers a similar functionality to my bestFirstSeachSortedChildrenOn function (http://hackage.haskell.org/packages/archive/generator/0.5.1/doc/html/Data-List-Tree.html#v%3AbestFirstSearchSortedChildrenOn ). pythagorianTriplets = catMaybes . fmap fst . bestFirstSearchSortedChildrenOn snd . generate $ do x <- lift [1..] yield (Nothing, x) y <- lift [1..] yield (Nothing, x + y) z <- lift [1..] yield (Nothing, x + y + z) lift . guard $ x^2 + y^2 == z^2 yield (Just (x, y, z), 0) > print $ take 10 pythagorianTriplets [(3,4,5),(4,3,5),(6,8,10),(8,6,10),(5,12,13),(12,5,13),(9,12,15), (12,9,15),(15,8,17),(8,15,17)] cheers, Yair On Jul 16, 2009, at 12:24 AM, Sjoerd Visscher wrote: > This sounds similar to ChoiceT from the monadLib package. Did you > know ChoiceT? > > greetings, > Sjoerd > > On Jul 15, 2009, at 3:33 PM, Yair Chuchem wrote: > >> A new "generator" package has been uploaded to Hackage. >> >> It implements an alternative list monad transformer, a list class, >> and related functions. >> >> The difference from mtl/transformers's ListT is that >> mtl is a monadic action that returns a list: >> newtype ListT m a = ListT { runListT :: m [a] } >> generator's is a monadic list: >> data ListItem l a = Nil | Cons { headL :: a, tailL :: l a } >> newtype ListT m a = ListT { runListT :: m (ListItem (ListT m) a) } >> A short example program which reads numbers from the user and >> interactively sums them up: >> import Control.Monad.ListT (ListT) >> import Data.List.Class (execute, joinM, repeat, scanl, takeWhile) >> import Prelude hiding (repeat, scanl, takeWhile) >> >> main = >> execute . joinM . fmap print . >> scanl (+) 0 . >> fmap (fst . head) . >> takeWhile (not . null) . >> fmap reads . >> joinM $ (repeat getLine :: ListT IO (IO String)) >> I also wrote an example/blog-post about using ListT to add an undo >> option to the classic game of "hamurabi": >> http://mashebali.blogspot.com/2009/07/charlemagne-disraeli-and-jefferson.html >> >> Another interesting observation is that "ListT [] a" is a tree of >> "a"s. >> The module Data.List.Tree includes functions to prune and search >> such trees (dfs, bfs, bestFirstSearchOn, etc). >> This can be useful for modularizing code that uses the list monad >> for combinatoric search by decoupling tree creation from processing >> and pruning. >> >> _______________________________________________ >> Haskell mailing list >> Haskell@haskell.org >> http://www.haskell.org/mailman/listinfo/haskell > > -- > Sjoerd Visscher > sjoerd@w3future.com > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090715/5ea149b1/attachment-0001.html From sebf at informatik.uni-kiel.de Thu Jul 16 03:10:53 2009 From: sebf at informatik.uni-kiel.de (Sebastian Fischer) Date: Thu Jul 16 02:52:47 2009 Subject: [Haskell] ANNOUNCE: generator 0.5.1 In-Reply-To: <58D83289-FC5C-4EEA-8C9D-3556A6A47D6F@gmail.com> References: <879DFD17-D34A-4243-86FD-6B550160E8CC@gmail.com> <006747AE-91E5-43B6-9EFB-FD14F43023B4@w3future.com> <58D83289-FC5C-4EEA-8C9D-3556A6A47D6F@gmail.com> Message-ID: On Jul 16, 2009, at 12:31 AM, Yair Chuchem wrote: > Sebastian Fisher's "Reinventing Haskell Backtracking" (http://www-ps.informatik.uni-kiel.de/~sebf/pub/atps09.html > ) > seems to be similar (I think). The nested monadic tails of your lists seem more similar to the nested monadic data described in the ICFP'09 paper with Oleg Kiselyov and Chung-chieh Shan [1]. The ideas described in that paper are on Hackage and your ListT seems similar to the List type in Data.Monadic.List [2] although our version not only uses monadic tails but also monadic heads. See [3] for a tutorial. Although the types are similar, we arrived at it for yet another purpose.. Cheers, Sebastian [1]: [2]: [3]: -- Underestimating the novelty of the future is a time-honored tradition. (D.G.) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090716/2ca64f98/attachment.html From v.dijk.bas at gmail.com Thu Jul 16 03:18:28 2009 From: v.dijk.bas at gmail.com (Bas van Dijk) Date: Thu Jul 16 03:00:16 2009 Subject: [Haskell] ANNOUNCE: generator 0.5.1 In-Reply-To: <879DFD17-D34A-4243-86FD-6B550160E8CC@gmail.com> References: <879DFD17-D34A-4243-86FD-6B550160E8CC@gmail.com> Message-ID: On Wed, Jul 15, 2009 at 3:33 PM, Yair Chuchem wrote: > A new "generator" package has been uploaded to Hackage. > It implements an alternative list monad transformer, a list class, and > related functions. I see you define ListT as a datatype: http://hackage.haskell.org/packages/archive/generator/0.5.1/doc/html/src/Control-Monad-ListT.html#ListT Can't you better define it as a newtype and so avoid the overhead of constructing and deconstructing ListTs? Or do you need to worry about strictness? BTW, note that your ListT is also similar to my StreamT: http://code.haskell.org/~basvandijk/code/stream/Control/Monad/StreamT.hs (not on Hackage) regards, Bas From yairchu at gmail.com Thu Jul 16 03:54:51 2009 From: yairchu at gmail.com (Yair Chuchem) Date: Thu Jul 16 03:36:44 2009 Subject: [Haskell] ANNOUNCE: generator 0.5.1 In-Reply-To: References: <879DFD17-D34A-4243-86FD-6B550160E8CC@gmail.com> Message-ID: <73D4E6BD-C642-40CA-9F24-0F6EE0D23DA8@gmail.com> On Jul 16, 2009, at 10:18 AM, Bas van Dijk wrote: > I see you define ListT as a datatype: > > http://hackage.haskell.org/packages/archive/generator/0.5.1/doc/html/src/Control-Monad-ListT.html#ListT > > Can't you better define it as a newtype I should had done that, and next released version will fix it. > BTW, note that your ListT is also similar to my StreamT: > http://code.haskell.org/~basvandijk/code/stream/Control/Monad/StreamT.hs > (not on Hackage) It seems like StreamT is an infinite-list version of ListT. another difference is that StreamT redefines scanl, transpose, etc and for ListT I created a List class (for which regular lists are an instance) for which the standard list functions are defined: filter, takeWhile, everything which keeps items in the list for functions which don't keep the item in the list I define similar functions (because the result is in the item monad the type is different) so you can do import Data.List.Class (takeWhile) import Prelude hiding (takeWhile) and still use takeWhile for lists (except maybe mine isn't as efficient as Data.List's and maybe doesn't bring its useful rewrite rules to play) thanks to SequenceT I also found http://www.haskell.org/haskellwiki/ListT_done_right which at its core is just like my ListT From yairchu at gmail.com Thu Jul 16 08:14:20 2009 From: yairchu at gmail.com (Yair Chuchem) Date: Thu Jul 16 07:56:15 2009 Subject: [Haskell] Re: ANNOUNCE: generator 0.5.1 Message-ID: Sebastian Fisher wrote: > The nested monadic tails of your lists seem more similar to the > nested monadic data described in the ICFP'09 paper with Oleg > Kiselyov and Chung-chieh Shan [1]. The ideas described in that paper > are on Hackage and your ListT seems similar to the List type in > Data.Monadic.List [2] although our version not only uses monadic > tails but also monadic heads. See [3] for a tutorial. A small correction: the tail of ListT is not monadic, but "unpacking" it (getting either a Nil or a Cons) is. If just the tail was monadic one couldn't create a list which might be empty depending on a monadic result, For example: linesFromUser :: ListT IO String linesFromUser = takeWhile (not . null) . joinM $ repeat getLine linesFromUser is a list of lines from the user until an empty line, not including the empty line. the first line entered by the user determines if the list is empty or not. cheers, Yair -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090716/5ffb7c4d/attachment.html From ifl2009 at shu.edu Thu Jul 16 10:21:30 2009 From: ifl2009 at shu.edu (IFL 2009) Date: Thu Jul 16 10:03:29 2009 Subject: [Haskell] IFL 2009: Third Call for Papers Message-ID: An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090716/02ea3f3c/attachment-0001.html From igloo at earth.li Thu Jul 16 10:42:10 2009 From: igloo at earth.li (Ian Lynagh) Date: Thu Jul 16 10:23:58 2009 Subject: [Haskell] ANNOUNCE: GHC version 6.10.4 Message-ID: <20090716144210.GA23789@matrix.chaos.earth.li> ============================================================== The (Interactive) Glasgow Haskell Compiler -- version 6.10.4 ============================================================== The GHC Team is pleased to announce a new patchlevel release of GHC. This release contains a number of bugfixes relative to 6.10.3, so we recommend upgrading. Release notes are here: http://haskell.org/ghc/docs/6.10.4/html/users_guide/release-6-10-4.html How to get it ~~~~~~~~~~~~~ The easy way is to go to the web page, which should be self-explanatory: http://www.haskell.org/ghc/ We supply binary builds in the native package format for many platforms, and the source distribution is available from the same place. Packages will appear as they are built - if the package for your system isn't available yet, please try again later. Background ~~~~~~~~~~ Haskell is a standard lazy functional programming language; the current language version is Haskell 98, agreed in December 1998 and revised December 2002. GHC is a state-of-the-art programming suite for Haskell. Included is an optimising compiler generating good code for a variety of platforms, together with an interactive system for convenient, quick development. The distribution includes space and time profiling facilities, a large collection of libraries, and support for various language extensions, including concurrency, exceptions, and foreign language interfaces (C, whatever). GHC is distributed under a BSD-style open source license. A wide variety of Haskell related resources (tutorials, libraries, specifications, documentation, compilers, interpreters, references, contact information, links to research groups) are available from the Haskell home page (see below). On-line GHC-related resources ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Relevant URLs on the World-Wide Web: GHC home page http://www.haskell.org/ghc/ GHC developers' home page http://hackage.haskell.org/trac/ghc/ Haskell home page http://www.haskell.org/ Supported Platforms ~~~~~~~~~~~~~~~~~~~ The list of platforms we support, and the people responsible for them, is here: http://hackage.haskell.org/trac/ghc/wiki/Contributors Ports to other platforms are possible with varying degrees of difficulty. The Building Guide describes how to go about porting to a new platform: http://hackage.haskell.org/trac/ghc/wiki/Building Developers ~~~~~~~~~~ We welcome new contributors. Instructions on accessing our source code repository, and getting started with hacking on GHC, are available from the GHC's developer's site run by Trac: http://hackage.haskell.org/trac/ghc/ Mailing lists ~~~~~~~~~~~~~ We run mailing lists for GHC users and bug reports; to subscribe, use the web interfaces at http://www.haskell.org/mailman/listinfo/glasgow-haskell-users http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs There are several other haskell and ghc-related mailing lists on www.haskell.org; for the full list, see http://www.haskell.org/mailman/listinfo/ Some GHC developers hang out on #haskell on IRC, too: http://www.haskell.org/haskellwiki/IRC_channel Please report bugs using our bug tracking system. Instructions on reporting bugs can be found here: http://www.haskell.org/ghc/reportabug From gale at sefer.org Thu Jul 16 11:18:33 2009 From: gale at sefer.org (Yitzchak Gale) Date: Thu Jul 16 11:00:40 2009 Subject: [Haskell] ANNOUNCE: generator 0.5.1 In-Reply-To: <879DFD17-D34A-4243-86FD-6B550160E8CC@gmail.com> References: <879DFD17-D34A-4243-86FD-6B550160E8CC@gmail.com> Message-ID: <2608b8a80907160818l68c985e3va37f7e4f90f6e4e0@mail.gmail.com> Yair Chuchem wrote: > A new "generator" package has been uploaded to Hackage. > It implements an alternative list monad transformer, a list class, and > related functions. This, and just about all of the other "similar" types mentioned in this thread, are all new names for the venerable "ListT Done Right" that has been around for many years: http://www.haskell.org/haskellwiki/ListT_done_right The ListT that is (still, unbelievably) in the mtl package is very broken, and shouldn't be used. It's not even a monad - it doesn't satisfy the monad laws. So why make up new names? Just call it ListT. I agree, ListT is a very nice approach. Perhaps that is why this wheel has been re-invented so many times, many more even than what has been brought up in this thread. Unfortunately, given the way the standard libraries are currently implemented in GHC, ListT IO cannot be made exception-safe, so ListT has limited usefulness for real software. The main problem is the type of the primitives (un)blockAsyncExceptions# which makes it possible to block exceptions only in IO itself, not in transformations of IO. That, in turn, makes it impossible to implement things like bracket and finally in transformations of IO. What we need is something like startBlocking :: IO () stopBlocking :: IO () Regards, Yitz From voigt at tcs.inf.tu-dresden.de Fri Jul 17 04:39:34 2009 From: voigt at tcs.inf.tu-dresden.de (Janis Voigtlaender) Date: Fri Jul 17 04:21:19 2009 Subject: [Haskell] PEPM'10 - Call for Papers (Deadline: 6 Oct 09) - Invited Speakers announced Message-ID: <4A6038C6.6080509@tcs.inf.tu-dresden.de> =============================================================== CALL FOR PAPERS ACM SIGPLAN 2010 Workshop on Partial Evaluation and Program Manipulation (PEPM'10) Madrid, January 18-19, 2010 (Affiliated with POPL'10) http://www.program-transformation.org/PEPM10 =============================================================== INVITED SPEAKERS: * Lennart Augustsson (Standard Chartered Bank, UK) * Jeremy Siek (University of Colorado at Boulder, USA) IMPORTANT DATES: * Paper submission: Tue, October 6, 2009, 23:59, Apia time * Author notification: Thu, October 29, 2009 * Camera-ready papers: Mon, November 9, 2009 To facilitate smooth organization of the review process, authors are asked to submit a short abstract by October 1, 2009. SUBMISSION CATEGORIES: * Regular research papers (max. 10 pages in ACM Proceedings style) * Tool demonstration papers (max. 4 pages plus max. 6 pages appendix) TRAVEL SUPPORT: Students and other attendants in need can apply for a SIGPLAN PAC grant to help cover expenses. For details, see http://www.sigplan.org/PAC.htm. SCOPE: The PEPM Symposium/Workshop series aims to bring together researchers and practitioners working in the areas of program manipulation, partial evaluation, and program generation. PEPM focuses on techniques, theories, tools, and applications of analysis and manipulation of programs. The 2010 PEPM workshop will be based on a broad interpretation of semantics-based program manipulation in a continued effort to expand the scope of PEPM significantly beyond the traditionally covered areas of partial evaluation and specialization and include practical applications of program transformations such as refactoring tools, and practical implementation techniques such as rule-based transformation systems. In addition, it covers manipulation and transformations of program and system representations such as structural and semantic models that occur in the context of model-driven development. In order to reach out to practitioners, there is a separate category of tool demonstration papers. Topics of interest for PEPM'10 include, but are not limited to: * Program and model manipulation techniques such as transformations driven by rules, patterns, or analyses, partial evaluation, specialization, program inversion, program composition, slicing, symbolic execution, refactoring, aspect weaving, decompilation, and obfuscation. * Program analysis techniques that are used to drive program/model manipulation such as abstract interpretation, static analysis, binding-time analysis, dynamic analysis, constraint solving, type systems, automated testing and test case generation. * Analysis and transformation for programs/models with advanced features such as objects, generics, ownership types, aspects, reflection, XML type systems, component frameworks, and middleware. * Techniques that treat programs/models as data objects including meta-programming, generative programming, deep embedded domain-specific languages, program synthesis by sketching and inductive programming, staged computation, and model-driven program generation and transformation. * Application of the above techniques including experimental studies, engineering needed for scalability, and benchmarking. Examples of application domains include legacy program understanding and transformation, DSL implementations, visual languages and end-user programming, scientific computing, middleware frameworks and infrastructure needed for distributed and web-based applications, resource-limited computation, and security. We especially encourage papers that break new ground including descriptions of how program/model manipulation tools can be integrated into realistic software development processes, descriptions of robust tools capable of effectively handling realistic applications, and new areas of application such as rapidly evolving systems, distributed and web-based programming including middleware manipulation, model-driven development, and on-the-fly program adaptation driven by run-time or statistical analysis. PROCEEDINGS: There will be formal proceedings published by ACM Press. In addition to printed proceedings, accepted papers will be included in the ACM Digital Library. Selected papers may later on be invited for a journal special issue dedicated to PEPM'10. SUBMISSION GUIDELINES: Papers should be submitted electronically via the workshop web site. Regular research papers must not exceed 10 pages in ACM Proceedings style. Tool demonstration papers must not exceed 4 pages in ACM Proceedings style, and authors will be expected to present a live demonstration of the described tool at the workshop (tool papers should include an additional appendix of up to 6 extra pages giving the outline, screenshots, examples, etc. to indicate the content of the proposed live demo at the workshop). Authors using Latex to prepare their submissions should use the new improved SIGPLAN proceedings style (sigplanconf.cls). PROGRAM CO-CHAIRS: * John Gallagher (Roskilde University, Denmark, and IMDEA Software, Spain) * Janis Voigtl?nder (Technische Universit?t Dresden, Germany) PROGRAM COMMITTEE MEMBERS: * Wei-Ngan Chin (National University of Singapore, Singapore) * Michael Codish (Ben-Gurion University of the Negev, Israel) * Jim Cordy (Queen's University, Canada) * Nate Foster (University of Pennsylvania, USA) * Haifeng Guo (University of Nebraska at Omaha, USA) * Patricia Johann (University of Strathclyde, UK) * Oleg Kiselyov (FNMOC, USA) * G?nter Kniesel (University of Bonn, Germany) * Viktor Kuncak (Ecole Polytechnique F?d?rale de Lausanne, Switzerland) * Yanhong Annie Liu (State University of New York at Stony Brook, USA) * Andres L?h (Utrecht University, Netherlands) * Jan Midtgaard (Roskilde University, Denmark) * David Monniaux (National Center for Scientific Research (CNRS) and VERIMAG laboratory, France) * Akimasa Morihata (University of Tokyo, Japan) * Alberto Pettorossi (Universit? di Roma Tor Vergata, Italy) * Jo?o Saraiva (Universidade do Minho, Portugal) * Ganesh Sittampalam (Credit Suisse, UK) * Fausto Spoto (Universit? di Verona, Italy) * Harald S?ndergaard (University of Melbourne, Australia) * Walid Taha (Rice University, USA) From ivan.miljenovic at gmail.com Sat Jul 18 10:23:07 2009 From: ivan.miljenovic at gmail.com (Ivan Lazar Miljenovic) Date: Sat Jul 18 10:04:56 2009 Subject: [Haskell] ANNOUNCE: graphviz-2999.0.0.0 Message-ID: <87ljmm9ik4.fsf@gmail.com> I am pleased to announce a new release of the graphviz package for Haskell, which provides bindings to the GraphViz [1] suite of tools. [1] http://www.graphviz.org/ Probably the biggest and most important change in this release is that AFAICT, all 152 attributes utilised/supported by GraphViz [2] are now specified and supported by this library. However, I'm not fully sure how well the parsing of these attributes will turn out; if you notice a bug/problem then please let me know. [2] http://graphviz.org/doc/info/attrs.html I've specified this as being the first in the 2999.0 series of releases. I will switch to 3000.0 when the generic graph class has been released and graphviz switched to using it rather than just FGL. One other future change that I'm considering is to improve the parsing ability of the Dot language. At the moment, graphviz assumes the following layout is followed: * Graph attributes * Nodes with their attributes (clusters are supported only for creation, not parsing). * Edges with their attributes. To match the behaviour of upstream, this will need to be changed into just a list of statements, where a statement is one of five things [3]: * A Node * An Edge * An attribute (either for the graph overall, nodes or for edges) * "ID '=' ID" (not quite sure what this is; some kind of assignment) * A subgraph (clusters are a specific type of subraph) As the way of defining an attribute for a specific grouping of nodes/edges/subgraphs is to have them all listed after the attribute definition (whereas those beforehand do not have this attribute), the imperative nature of the Dot language does not allow us to split these statements up as we currently do. [3] http://graphviz.org/doc/info/lang.html As such, I'm asking which of the following two choices people would prefer: 1. Follow upstream so that it can fully parse a Dot graph 2. Keep it as it is, so that it is possible to consider all edges, etc. easily. Other major changes to this release: ==================================== * Fixed a bug where the Show instance and read function for DotEdge had the from/to nodes the wrong way round. This was not immediately noticed since the Graph -> DotGraph functions created them the wrong way round, so for those users who only used these this was not apparent. Spotted by Neil Brown. * Greatly improved Attribute usage: almost all attributes are now covered with allowed values. * Extend DotGraph to include whether a graph is strict or not and if it has an ID. Also move the directedGraph field. * Make "Dot" refer to the actual dot command and DotArrow refer to the ArrowType (rather than DotCmd and Dot as before). * Make the Data.GraphViz.ParserCombinators module available to end users again, but not re-exported by Data.GraphViz; it has a warning message up the top not to be used. It is there purely for documentative purposes. * Use extensible-exceptions so that base < 4 is once again supported. * Follow the PVP rather than using dates for versions: http://www.haskell.org/haskellwiki/Package_versioning_policy Note that this means that any library/application using more than a trivial sub-set of graphviz will most likely need to be updated. However, now that the PVP is being followed it should be easier to tell in future when updates will be required. Other items I'm wanting to do in future releases: ================================================= * Allow user to choose whether or not the graph is meant to be directed or undirected. * Improve parsing to fully (or at least follow more closely) support Dot. * Improve clustering/subgraph support. * Use a PrettyPrinter rather than Show to generate Dot output. * Improve Output support. * Find and fix the handle closing bug with graphvizWithHandle. -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com From byorgey at seas.upenn.edu Sat Jul 18 11:23:29 2009 From: byorgey at seas.upenn.edu (Brent Yorgey) Date: Sat Jul 18 11:05:19 2009 Subject: [Haskell] Haskell Weekly News: Issue 126 - July 18, 2009 Message-ID: <20090718152329.GA16388@seas.upenn.edu> --------------------------------------------------------------------------- Haskell Weekly News http://sequence.complete.org/hwn/20090718 Issue 126 - July 18, 2009 --------------------------------------------------------------------------- Welcome to issue 126 of HWN, a newsletter covering developments in the [1]Haskell community. [2]Hac phi is next weekend! With almost 30 people already registered, it looks like we're going to have a fantastic time hacking in Philadelphia. It's still not too late to [3]register! Announcements GHC 6.10.4. Ian Lynagh [4]announced a new patchlevel release of GHC, 6.10.4. This version has very few changes over 6.10.3, but fixes some bugs that could be critical for a few users. See the [5]release notes for details. shelltestrunner 0.6 released. Simon Michael [6]announced the first release of [7]shelltestrunner, a small tool for testing any command-line program by running it through "shell" tests defined with a simple file format. generator 0.5.1. Yair Chuchem [8]announced the release of the [9]generator package, which implements an alternative list monad transformer, a list class, and related functions. GLURaw 1.0.0.0. Sven Panne [10]announced a new [11]GLURaw package, containing full support for all GLU functionality and similar in spirit to the OpenGLRaw package: it is a 1:1 mapping of the C interface, no libraries or headers are needed at build time, and the GLU API entries are resolved dynamically at runtime. OpenGLRaw 1.0.1.0. Sven Panne [12]announced a new version of the [13]OpenGLRaw package, which adds support for a number of OpenGL extensions. ObjectName 1.0.0.0. Sven Panne [14]announced a (tiny) new package, [15]ObjectName, which contains a class corresponding to the general notion of explicitly handled identifiers for API objects, e.g. a texture object name in OpenGL or a buffer object name in OpenAL. StateVar 1.0.0.0. Sven Panne [16]announced the [17]StateVar package, which further modularizes the OpenGL/OpenAL packages. It implements state variables, which are references in the IO monad, like IORefs or parts of the OpenGL state. data-ordlist-0.0.1 and NumberSieves-0.0. Leon Smith [18]announced the release of two new packages: [19]Data.OrdList offers a convenient way for efficiently dealing with lists that you happen to know are ordered, and includes operations such as union, merge, exclusive union, intersection, and difference. [20]NumberSieves includes the Sieve of O'Neill, from "The Geniune Sieve of Eratosthenes" by Melissa O'Neill, which offers an incremental primality sieve based on priority queues. Also included are two array-based generalizations of the Sieve of Eratosthenes: one for factoring a large quantity of small numbers, and another for calculating the phi function for a large quantity of small numbers. graphviz-2999.0.0.0. Ivan Lazar Miljenovic [21]announced a new release of the [22]graphviz package for Haskell, which provides bindings to the [23]GraphViz suite of tools. The biggest and most important change in this release is that all 152 attributes utilised/supported by GraphViz are now specified and supported. uncommon IMO problem - toilet management. Henning Thielemann [24]announced a [25]Haskell package for managing toilet use at the International Mathematical Olympiad. darcs 2.3 beta 4. Petr Rockai [26]announced another darcs 2.3 beta release, which features better Windows support. If you're on Windows, you should be able to install it with 'cabal install darcs-beta' -- give it a try! Google Summer of Code Progress updates from participants in the 2008 [27]Google Summer of Code. space profiling. Gergely Patai has been working on a [28]heap profile manager. fast darcs. Petr Rockai put out another [29]another darcs 2.3 beta release, and made a [30]bunch of other progress including getting darcs up and running on win32, working on hashed-storage, and optimizing 'darcs show contents'. Discussion is closing a class this easy? Conor McBride [31]asked for feedback on some code intended to effectively create a closed type class. laziness blowup exercise. Thomas Hartman [32]challenged readers to squash a memory leak. Blog noise [33]Haskell news from the [34]blogosphere. Blog posts from people new to the Haskell community are marked with >>>, be sure to welcome them! * Gergely Patai: [35]Introducing the heap profile manager. * FP Lunch: [36]Folding Statistics. * Petr Rockai: [37]soc progress 8. * Greg Bacon: [38]Monadic takeWhile. * Petr Rockai: [39]darcs 2.3 beta 4. * David Amos: [40]Counting symmetries using transversals. * Magnus Therning: [41]XML prettifier in Haskell. * Petr Rockai: [42]soc progress 7. Quotes of the Week * Berengal: For me, understanding the basics/reasoning behind haskell's type system was just a minute meditating on the phrase "what's the square root of hello?" * bitwize: The oleg is to functional studliness as the farad is to capacitance: a hopelessly large base unit. * maartenm: euclidate: to promote a conjecture to an axiom just for the sake of simplicity * RobertGreaye: Some suggest the original English remained in Britain when the North American colonies were founded; others claim it was brought to the Americas by the British settlers, leaving a pale imitation back in Britain. The truth is much stranger: the original English was actually smuggled out of Britain to the West Indies in a wardrobe belonging to General Sir Ralph Abercromby, where it ended up on the island of Trinidad after Sir Ralph took possession of that territory in the name of the British Crown. About the Haskell Weekly News New editions are posted to [43]the Haskell mailing list as well as to [44]the Haskell Sequence and [45]Planet Haskell. [46]RSS is also available, and headlines appear on [47]haskell.org. To help create new editions of this newsletter, please see the information on [48]how to contribute. Send stories to byorgey at cis dot upenn dot edu. The darcs repository is available at darcs get [49]http://code.haskell.org/~byorgey/code/hwn/ . References 1. http://haskell.org/ 2. http://haskell.org/haskellwiki/Hac_%CF%86 3. http://haskell.org/haskellwiki/Hac_%CF%86/Register 4. http://www.haskell.org//pipermail/haskell/2009-July/021508.html 5. http://haskell.org/ghc/docs/6.10.4/html/users_guide/release-6-10-4.html 6. http://article.gmane.org/gmane.comp.lang.haskell.general/17367 7. http://hackage.haskell.org/package/shelltestrunner 8. http://article.gmane.org/gmane.comp.lang.haskell.general/17366 9. http://hackage.haskell.org/package/generator 10. http://article.gmane.org/gmane.comp.lang.haskell.general/17364 11. http://hackage.haskell.org/package/GLURaw 12. http://article.gmane.org/gmane.comp.lang.haskell.general/17363 13. http://hackage.haskell.org/package/OpenGLRaw 14. http://article.gmane.org/gmane.comp.lang.haskell.general/17362 15. http://hackage.haskell.org/package/ObjectName 16. http://article.gmane.org/gmane.comp.lang.haskell.general/17361 17. http://hackage.haskell.org/package/StateVar 18. http://article.gmane.org/gmane.comp.lang.haskell.general/17355 19. http://hackage.haskell.org/package/data-ordlist 20. http://hackage.haskell.org/package/NumberSieves 21. http://article.gmane.org/gmane.comp.lang.haskell.cafe/61494 22. http://hackage.haskell.org/package/graphviz 23. http://www.graphviz.org/ 24. http://article.gmane.org/gmane.comp.lang.haskell.cafe/61448 25. http://hackage.haskell.org/package/toilet-0.0.1 26. http://article.gmane.org/gmane.comp.lang.haskell.cafe/61302 27. http://hackage.haskell.org/trac/summer-of-code/wiki/SoC2008 28. http://just-bottom.blogspot.com/2009/07/introducing-heap-profile-manager.html 29. http://web.mornfall.net/blog/darcs_2.3_beta_4.html 30. http://web.mornfall.net/blog/soc_progress_8.html 31. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/61456 32. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/61283 33. http://planet.haskell.org/ 34. http://haskell.org/haskellwiki/Blog_articles 35. http://just-bottom.blogspot.com/2009/07/introducing-heap-profile-manager.html 36. http://sneezy.cs.nott.ac.uk/fplunch/weblog/?p=232 37. http://web.mornfall.net/blog/soc_progress_8.html 38. http://feedproxy.google.com/~r/gbacon/~3/Q-Y-KapB8iI/monadic-takewhile.html 39. http://web.mornfall.net/blog/darcs_2.3_beta_4.html 40. http://haskellformaths.blogspot.com/2009/07/counting-symmetries-using-transversals.html 41. http://therning.org/magnus/archives/695 42. http://web.mornfall.net/blog/soc_progress_7.html 43. http://www.haskell.org/mailman/listinfo/haskell 44. http://sequence.complete.org/ 45. http://planet.haskell.org/ 46. http://sequence.complete.org/node/feed 47. http://haskell.org/ 48. http://haskell.org/haskellwiki/HWN 49. http://code.haskell.org/~byorgey/code/hwn/ From matt at mattelder.org Sun Jul 19 01:10:03 2009 From: matt at mattelder.org (Matthew Elder) Date: Sun Jul 19 00:52:02 2009 Subject: [Haskell] sendfile-0.4 released: sockets and freebsd and docs oh my! In-Reply-To: <987d172d0907182209n439b41b8j9764df19ede84ae7@mail.gmail.com> References: <987d172d0907182209n439b41b8j9764df19ede84ae7@mail.gmail.com> Message-ID: <987d172d0907182210oa355d3ftea376c9b7c689abf@mail.gmail.com> sendfile-0.4: http://hackage.haskell.org/package/sendfile -------------------------------------------------------------------------------- * FreeBSD support contributed by Maxime Henrion (untested!) * sendFile is now unsafeSendFile (continued support for a Handle as the output) * sendFile' is now unsafeSendFile' (continued support for a Handle as the output) * sendFile and sendFile' now take a Socket as the output instead of a Handle in order to be more semantically correct and typesafe (a Handle used for the output which was not created from a Socket will cause runtime errors). Thanks to Johan Tibell for this discussion. * documentation extended / improved Regards, Matthew Elder -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090719/c19fff26/attachment.html From ivan.miljenovic at gmail.com Mon Jul 20 09:08:49 2009 From: ivan.miljenovic at gmail.com (Ivan Lazar Miljenovic) Date: Mon Jul 20 08:50:37 2009 Subject: [Haskell] ANNOUNCE: graphviz-2999.1.0.1 Message-ID: <87vdlnwlge.fsf@gmail.com> This is a bug-fix release to fix the various Attribute-related problems in the previous release (2999.0.0.0) spotted mainly by Zsolt Dollenstein. Please disregard version 2999.1.0.0; it had a small bug. Similarly, people should avoid using 2999.0.0.0 unless they don't use any Either-based Attributes. The problem (which took me a while to realise) was that whilst I was using Either to denote that an attribute could take one of two different types of values (e.g. Bool and String) and the parsing for that worked. However, since I was using Show (I know it's bad, it was on my TODO, remember?) to generate the Dot code, then whenever one of these values was converted then either Left or Right would appear, and GraphViz doesn't seem to like that for some reason... I also took the opportunity to define custom types for more Attributes (as they only accept certain String values). Furthermore, GraphViz states that attributes that can accept a boolean value are set to True when the attribute is listed on its own; the library now does this even for those Attributes that use a custom type that combines Bool with something else. One other small change is that the Color Attribute now takes in a list of Colors; if you only want one, use a singleton list (it was either that or a custom datatype that takes either a single Color or a list of Colors...). Note that 2999.1.0.0 accidentally only had singleton Color values for the Color Attribute rather than a list, hence the quick version bump. Nothing else has changed in the library apart from the Attributes. Regarding my request in the previous email about the possible new layout of the DotGraph datatype: How many people actually build DotGraphs by hand or pull them apart by hand? If there were getNodes :: DotGraph -> [Node] and getEdges :: DotGraph -> [Edge] functions available, would you accept an all-in-one data type that just contains a generic list of statements and thus follows upstream more closely? Even leaving aside parsing, this would allow for greater flexibility for creating wild and wacky graphs or for a monadic interface or something for building DotGraphs (which someone has asked me for, but which at the moment I have no idea how to do...). -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com From flippa at flippac.org Mon Jul 20 10:07:23 2009 From: flippa at flippac.org (Philippa Cowderoy) Date: Mon Jul 20 09:49:26 2009 Subject: [Haskell] Anglohaskell - wifi signups Message-ID: <4A647A1B.7010408@flippac.org> Wifi signups are Anglohaskell are now on the wiki - please add your details by the 31st of July if you want a wifi account at MS Research for the Friday. Alternatively, reply to this email with your full name, institution, country of residence and email address. The Anglohaskell wiki page can be found at http://www.haskell.org/haskellwiki/AngloHaskell/2009 There's still room for more talks if anyone's got something they fancy giving a go - everything from cutting edge research to "what I did with Haskell on my holiday" is welcome, as is everyone from GHC implentors to newbies frantically writing Hello World on their laptop in the back row. -- flippa@flippac.org From bulat.ziganshin at gmail.com Tue Jul 21 09:51:04 2009 From: bulat.ziganshin at gmail.com (Bulat Ziganshin) Date: Tue Jul 21 09:32:46 2009 Subject: [Haskell] TABI 0.1: a typeful tagged cross-language calling convention Message-ID: <644954872.20090721175104@gmail.com> Hello, i've uploaded very preliminary version of TABI to http://tabi.googlecode.com/files/tabi-0.1.tar.gz Shortly speaking, while with cdecl calling convention you pass parameters by position, TABI passes parameters by name and annotates each parameter with its type It may be used in following situations: * providing interoperatbility between C, Haskell and any other languages while avoiding complexity of language-specific FFI descriptions. For example, Lua function may receive all parameters as the table * passing complex datastructures between various languages forth and back, providing faster alternative to serialization approach * implementing APIs that may be extended without losing compatibility - new services and parameters may not be supported by all client and server implementations but everything will work together ... read the rest at http://code.google.com/p/tabi/ issue tracker and SVN repository is also there -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com From felipe.lessa at gmail.com Tue Jul 21 11:38:44 2009 From: felipe.lessa at gmail.com (Felipe Lessa) Date: Tue Jul 21 11:20:23 2009 Subject: [Haskell] TABI 0.1: a typeful tagged cross-language calling convention In-Reply-To: <644954872.20090721175104@gmail.com> References: <644954872.20090721175104@gmail.com> Message-ID: <20090721153844.GA20298@kira.casa> On Tue, Jul 21, 2009 at 05:51:04PM +0400, Bulat Ziganshin wrote: > * passing complex datastructures between various languages forth > and back, providing faster alternative to serialization approach I've read the code and I don't see how tabi manages to do this. It is serializing as well but it is including the type and name information, so it seems that at best it would have the same overhead as just serializing the data without any metadata. Am I missing something? -- Felipe. From kyagrd at gmail.com Tue Jul 21 21:47:46 2009 From: kyagrd at gmail.com (Ahn, Ki Yung) Date: Tue Jul 21 21:29:35 2009 Subject: [Haskell] [ANN] Korean translation of "Programming in Haskell" Message-ID: I am very happy to announce that we now have a non-English book on Haskell. It is now being printed and officially the publishing date is 2009-07-24. It will be available on Korean bookstores from next week. Publisher's new book announcement: http://www.daerim.net/new_20050605/books/view.asp?ISBN=9788972808183 http://www.drbook.co.kr/new_20050605/books/view.asp?ISBN=9788972808183 Book hompage (being updated): http://pl.pusan.ac.kr/~haskell/ There are some additional screenshots of installing Hugs and GHC, which isn't in the original translation, and also has Windows port of Graham Hutton's original script on the book hompage that uses interactive programs using non-buffered standard inputs and ANSI code. And, it has the new Haskell logo on its cover :) If you are in Korean institution teaching programming languages related courses you can introduce it to students as recommended text to understand and feel about what functional programming paradigm is. It can be also used as a introductory programming course, or for self learning. Also, if you have a international Korean student outside of Korea having difficulties in understanding functional programming paradigm this you can introduce this book as a good starting point. We hope this translation makes a positive impact increasing the number of functional programmers locally in Korea. Many thanks to everyone who helped us translators on this project including Graham Hutton himself, Gyun Woo who has shown interest and given advice and also provided a space for homepage, the Korean reviewers who volunteered for correcting errors in the draft, colleagues in Portland State University who encourages this project, and the Daerim publishing for making a brave decision to publish the first Korean book on Higher-Order & Type language in the market even though there are not yet many local institutions or industry using Haskell. (FYI, there has been only two books on functional language published in Korean before, both translations. One is the SICP, and the other is Programming in Erlang.) -- Ahn, Ki Yung From kyagrd at gmail.com Tue Jul 21 21:57:53 2009 From: kyagrd at gmail.com (Ahn, Ki Yung) Date: Tue Jul 21 21:39:36 2009 Subject: [Haskell] Re: Just a typo In-Reply-To: References: Message-ID: Ahn, Ki Yung ? ?: > ... > > (FYI, there has been only two books on functional language published in > Korean before, both translations. One is the SICP, and the other is > Programming in Erlang.) It's the "Programming Erlang", no "in" between. > -- > Ahn, Ki Yung From dino at ui3.info Tue Jul 21 22:55:31 2009 From: dino at ui3.info (Dino Morelli) Date: Tue Jul 21 22:37:27 2009 Subject: [Haskell] ANNOUNCE: uacpid-0.0.4 Message-ID: Announcing uacpid-0.0.4 uacpid is a daemon designed to be run in userspace that will monitor the local system's acpid socket for hardware events. These events can then be acted upon by handlers with access to the user's environment. An example of why you need this: Suppose you want to have a hardware event change the active X displays, like a laptop external monitor function button. Some tools to achieve this display change require the logged in user's DISPLAY and other settings that may be difficult or impossible to gain access to from acpid scripts. Another example is media control function buttons, like play/pause or next/previous track for a music player. uacpid is running as you and is getting the hardware events reported by the system's acpid. uacpid can then act on the events on your behalf, with your environment. Available from Hackage, Arch Linux's AUR, darcs, see the homepage: http://ui3.info/d/proj/uacpid.html -- Dino Morelli email: dino@ui3.info web: http://ui3.info/d/ irc: dino- pubkey: http://ui3.info/d/dino-4AA4F02D-pub.gpg From Jean-Christophe.Filliatre at lri.fr Wed Jul 22 02:43:00 2009 From: Jean-Christophe.Filliatre at lri.fr (=?ISO-8859-1?Q?Jean-Christophe_Filli=E2tre?=) Date: Wed Jul 22 02:22:22 2009 Subject: [Haskell] Call for Papers: PLPV 2010 Message-ID: <4A66B4F4.4080906@lri.fr> Call For Papers Programming Languages meets Program Verification (PLPV) 2010 http://slang.soe.ucsc.edu/plpv10/ Tuesday, January 19, 2010 Madrid, Spain Affiliated with POPL 2010 Overview: The goal of PLPV is to foster and stimulate research at the intersection of programming languages and program verification. Work in this area typically attempts to reduce the burden of program verification by taking advantage of particular semantic and/or structural properties of the programming language. One example is dependently typed programming languages, which leverage a language's type system to specify and check richer than usual specifications, possibly with programmer-provided proof terms. Another example is extended static checking systems like Spec#, which extends C# with pre- and postconditions along with a static verifier for these contracts. We invite submissions on all aspects, both theoretical and practical, of the integration of programming language and program verification technology. To encourage cross-pollination between different communities, we seek a broad the scope for PLPV. In particular, submissions may have diverse foundations for verification (type-based, Hoare-logic-based, etc), target diverse kinds of programming languages (functional, imperative, object-oriented, etc), and apply to diverse kinds of program properties (data structure invariants, security properties, temporal protocols, etc). Submissions: Submissions should fall into one of the following three categories: 1. Regular research papers that describe new work on the above or related topics. Submissions in this category have an upper limit of 12 pages, but shorter submissions are also encouraged. 2. Work-in-progress reports should describe new work that is ongoing and may not be fully completed or evaluated. Submissions in this category should be at most 6 pages in total length. 3. Proposals for challenge problems which the author believes is are useful benchmarks or important domains for language-based program verification techniques. Submissions in this category should be at most 6 pages in total length. Submissions should be prepared with SIGPLAN two-column conference format. Submitted papers must adhere to the SIGPLAN republication policy. Concurrent submissions to other workshops, conferences, journals, or similar forums of publication are not allowed. Publication: Accepted papers will be published by the ACM and appear in the ACM digital library. Student Attendees: Students with accepted papers or posters are encouraged to apply for a SIGPLAN PAC grant that will help to cover travel expenses to PLPV. Details on the PAC program and the application can be found on the workshop web page. PAC also offers support for companion travel. Important Dates: * Electronic submission: October 8, 2009, 11:59pm Samoa time (UTC-11) * Notification: November 8, 2009 * Final version: November 17, 2009 * Workshop: January 19, 2010 Organizers: * Cormac Flanagan (University of California, Santa Cruz) * Jean-Christophe Filli?tre (CNRS) Program Committee: * Adam Chlipala (Harvard University) * Ranjit Jhala (University of California, San Diego) * Joseph Kiniry (University College Dublin) * Rustan Leino (Microsoft Research) * Xavier Leroy (INRIA Paris-Rocquencourt) * Conor McBride (University of Strathclyde) * Andrey Rybalchenko (Max Planck Institute for Software Systems) * Tim Sheard (Portland State University) * Stephanie Weirich (University of Pennsylvania) From me at mornfall.net Thu Jul 23 10:02:37 2009 From: me at mornfall.net (Petr Rockai) Date: Thu Jul 23 09:44:17 2009 Subject: [Haskell] ANN: darcs 2.3.0 Message-ID: <87prbrfqf6.fsf@twilight.int.mornfall.net.> Hello! I'd like to announce immediate availability of a new stable release of darcs, 2.3.0. There is a number of improvements and bugfixes over the previous stable release, 2.2. Moreover, work has been done to improve performance of "darcs whatsnew" for large repositories. As in the past, there are two source tarballs available. As of this release, the cabal-based build is preferred, and the autoconf build is deprecated. You can obtain the source tarballs at these addresses: * http://repos.mornfall.net/darcs/darcs-2.3.0.tar.gz * http://repos.mornfall.net/darcs/darcs-2.3.0_autoconf.tar.gz The build instructions are available in the enclosed README file in those tarballs. Moreover, if you have cabal-install available, you can install latest stable release of darcs by issuing the following commands (no tarballs needed): $ cabal update $ cabal install darcs This should give you a darcs binary in `~/.cabal/bin` -- you should probably add this to your PATH. More detailed instructions for installing on Windows are available near the end of this announcement. What's New ---------- This is a summary of important changes since the last stable release (2.2): * Lots and lots of documentation changes (Trent). * Haskeline improvements (Judah). * Cabal as default buildsystem (many contributors). * Fixes in darcs check/repair memory usage (Bertram, David). * Performance improvement in subtree record (Reinier). * New option: --summary --xml (Florian Gilcher). * New option: changes --max-count (Eric and Petr). * Fix changes --only-to-files for renames (Dmitry). * Performance fix in "darcs changes" (Benedikt). * Hardlinks on NTFS (Salvatore). * Coalesce more changes when creating rollbacks (David). * New unit test runner (Reinier). * Inclusion of darcs-shell in contrib (L?szl?, Trent). * Author name/address canonisation: .authorspellings (Simon). * Working directory index and substantial "darcs wh" optimisation (Petr). * New command: "darcs show index" (Petr). * Gzip CRC check and repair feature (Ganesh). A number of issues has been resolved since 2.2 as well. See http://bugs.darcs.net/issueN for details on bug number N. * 948 darcsman (Trent) * 1206 countable nouns (Trent) * 1285 cabal test v. cabal clean (Trent) * 1302 use resolved, not resolved-in-unstable (Trent) * 1235 obliterate --summary (Rob) * 1270 no MOTD for --xml-output (Lele) * 1311 cover more timezones (Dave) * 1292 re-encoding haskeline input (Judah) * 1313 clickable ToC and refs in PDF manual Trent) * 1310 create merged \darcsCommand{add} (Trent) * 1333 better "cannot push to current repository" warning (Petr) * 1347 (autoconf) check for unsafeMMapFile if mmap use enabled (Dave) * 1361 specify required includes for curl in cabal file (Reinier) * 1379 remove libwww support (Trent) * 1366 remove unreachable code for direct ncurses use (Trent) * 1271 do not install two copies of darcs.pdf (Trent) * 1358 encode non-ASCII characters in mail headers (Reinier) * 1393 swap "darcs mv" and "darcs move" (Trent) * 1405 improve discoverability of global author file (Trent) * 1402 don't "phone home" about bugs (Trent) * 1301 remove obsolete zsh completion scripts (Trent) * 1162 makeAbsolute is now a total function (Ben F) * 1269 setpref predist - exitcode ignored bug (Ben M) * 1415 --edit-long-comment, not --edit-description, in help (Trent) * 1413 remove duplicate documentation (Trent) * 1423 complain about empty add/remove (Trent) * 1437 Implement darcs changes --max-count (Eric) * 1430 lazy pattern matching in (-:-) from Changes command module (Dmitry) * 1434 refactor example test (Trent) * 1432 refer to %APPDATA%, not %USERPROFILE% (Trent) * 1186 give a chance to abort if user did not edit description file (Dmitry) * 1446 make amend-record -m foo replace only the patch name (Dmitry) * 1435 default to get --hashed from a darcs-1.0 source (Trent) * 1312 update and reduce build notes (Trent) * 1351 fix repository path handling on Windows (Salvatore) * 1173 support hard links on NTFS (Salvatore) * 1248 support compressed inventories for darcs-1 repos (Ganesh) * 1455 implement "darcs help environment" (Trent) The question of GHC 6.8 ----------------------- Using GHC 6.10.3 or newer is *strongly recommended*. You may compile darcs with GHC 6.8, but there are several caveats. If you are using 6.8.2 or older, please disable mmap support (pass -f-mmap to cabal install or runghc Setup configure). Note that the GHC 6.8.2 that ships with Debian Lenny is not affected and it should be safe to keep mmap enabled. It is also recommended to disable use of Hackage zlib when compiling with GHC 6.8.2 (including the Debian Lenny version): pass -f-zlib to cabal. When using zlib, we have seen occasional crashes with error messages like "openBinaryFile: file locked" -- this is a known GHC 6.8.2 bug (and is fixed in GHC 6.8.3). Last, if you are using a 64-bit system, darcs may hang when you exit a pager when compiled with GHC older than 6.10.3. Although this is harmless, it is quite inconvenient. Overall, the status of GHC 6.8 is "semi-supported": for many cases, things will work just fine, especially if you take a little extra caution with compilation flags. Installing on Windows --------------------- To install darcs on Windows systems from scratch, please download the Haskell Platform and MSYS: * http://hackage.haskell.org/platform/2009.2.0.1/HaskellPlatform-2009.2.0.1-setup.exe * http://sourceforge.net/projects/mingw/files/MSYS+Base+System/MSYS-1.0.11-rc-1.exe/download After installing both, you should have an "MSYS" icon: run MSYS and in the terminal window type (the `$` character denotes the prompt, do not repeat it): $ cabal update $ cabal install darcs -f-curl This should download, compile and install all required dependencies and also darcs itself. The resulting darcs executable will be placed into the Haskell Platform executables folder, and should be accessible from the MSYS shell (just type "darcs --version" to check). Yours, Petr. From Sven.Panne at aedion.de Thu Jul 23 15:48:58 2009 From: Sven.Panne at aedion.de (Sven Panne) Date: Thu Jul 23 15:30:24 2009 Subject: [Haskell] ANNOUNCE: Tensor 1.0.0.1 Message-ID: <200907232148.59120.Sven.Panne@aedion.de> A new Tensor package has been uploaded to Hackage. It is yet another spin-off of the OpenGL package, containing a few tensor data types and their instances for some basic type classes. Currently the word "tensor" might be a bit too much, but it is planned to add matrices, too. Note that this package deliberately does *not* contain new type classes or some elaborate tensor operations. After some discussion it was clear that the design space is too large and there a various ways to add these features, with varying goals in the design, none "more correct" or canonical than the other. Cheers, S. From Sven.Panne at aedion.de Thu Jul 23 15:52:51 2009 From: Sven.Panne at aedion.de (Sven Panne) Date: Thu Jul 23 15:34:17 2009 Subject: [Haskell] ANNOUNCE: OpenAL 1.4.0.0 Message-ID: <200907232152.51851.Sven.Panne@aedion.de> A new version of the OpenAL package has been uploaded to Hackage. It is functionally equivalent to the previous version, but the dependency on the OpenGL package has been removed. Instead, the highly portable StateVar, ObjectName and Tensor package are used, decoupling things a bit more. Cheers, S. From Sven.Panne at aedion.de Thu Jul 23 15:54:16 2009 From: Sven.Panne at aedion.de (Sven Panne) Date: Thu Jul 23 15:35:41 2009 Subject: [Haskell] ANNOUNCE: ALUT 2.2.0.0 Message-ID: <200907232154.17035.Sven.Panne@aedion.de> A new version of the ALUT package has been uploaded to Hackage. It is functionally equivalent to the previous version, but the dependency on the OpenGL package has been removed. Instead, the highly portable StateVar package is used, decoupling things a bit more. Cheers, S. From yairchu at gmail.com Thu Jul 23 18:57:53 2009 From: yairchu at gmail.com (Yair Chuchem) Date: Thu Jul 23 18:39:21 2009 Subject: [Haskell] ANNOUNCE: generator 0.5.1 In-Reply-To: <2608b8a80907160818l68c985e3va37f7e4f90f6e4e0@mail.gmail.com> References: <879DFD17-D34A-4243-86FD-6B550160E8CC@gmail.com> <2608b8a80907160818l68c985e3va37f7e4f90f6e4e0@mail.gmail.com> Message-ID: On Jul 16, 2009, at 6:18 PM, Yitzchak Gale wrote: > This, and just about all of the other "similar" types mentioned > in this thread, are all new names for the venerable "ListT Done Right" > that has been around for many years: > > http://www.haskell.org/haskellwiki/ListT_done_right > > The ListT that is (still, unbelievably) in the mtl package > is very broken, and shouldn't be used. It's not even > a monad - it doesn't satisfy the monad laws. > > So why make up new names? Just call it ListT. I did call it ListT, although I did place it in the "generator" package. Now I split the package so ListT is in the "List" package (better name - I agree) List: List monad transformer and typeclass. Standard list operations. generator: Python-generator notation for creation of monadic lists. From kyagrd at gmail.com Thu Jul 23 20:32:38 2009 From: kyagrd at gmail.com (Ahn, Ki Yung) Date: Thu Jul 23 20:14:22 2009 Subject: [Haskell] ANN: yices 0.0.0.1 - Haskell programming interface to Yices SMT solver Message-ID: http://hackage.haskell.org/package/yices Incomplete (no bitvectors) syntax, parser, and inter process communication to Yices from Haskell through pipe. Purpose for building and using this library was to generate test cases from constraints that SMT solvers can solve. I only used it for that particular purpose, so the code in general is not yet fully tested. Use at your own risk and error reports are welcomed. See http://yices.csl.sri.com/ for further information on Yices. Note: this package does not include Yices. You should get it from the Yices homepage and install it before using this library. @ If you already have a better API for Yices or other SMT solvers, and if you can open the source please upload it to hacakage. That would be great help for some people. -- Ahn, Ki Yung From kirby81 at gmail.com Fri Jul 24 08:25:48 2009 From: kirby81 at gmail.com (Salvatore Insalaco) Date: Fri Jul 24 08:07:15 2009 Subject: [Haskell] Re: [Haskell-cafe] ANN: darcs 2.3.0 In-Reply-To: <87prbrfqf6.fsf@twilight.int.mornfall.net.> References: <87prbrfqf6.fsf@twilight.int.mornfall.net.> Message-ID: <5a376f550907240525i632c1b0bv3d24447a553a778b@mail.gmail.com> Great! Just a little note: MSYS isn't required to install Darcs with cabal on Windows, just to develop or run tests. From Jean-Christophe.Filliatre at lri.fr Fri Jul 24 16:58:38 2009 From: Jean-Christophe.Filliatre at lri.fr (=?ISO-8859-1?Q?Jean-Christophe_Filli=E2tre?=) Date: Fri Jul 24 16:40:00 2009 Subject: [Haskell] Call for Papers: VSTTE 2009 Message-ID: <4A6A207E.3020803@lri.fr> We apologise if you receive this message more than once. ********************************************************* * * * VSTTE 2009 * * * * Workshop on Verified Software * * Theory Tools and Experiments * * * * (affiliated with Formal Methods Week) * * * * November 2, 2009 * * Eindhoven, the Netherlands * * http://vstte09.lri.fr/ * * * * Deadline for submissions: Sep 4, 2009 * * * ********************************************************* FM 2009 is the sixteenth in a series of symposia of the Formal Methods Europe association, and the second one that is organized as a world congress. Ten years after FM'99, the 1st World Congress, the formal methods communities from all over the world will once again have an opportunity to meet. FM 2009 will be both an opportunity to celebrate, and an opportunity to join in when enthusiastic researchers and practitioners from a diversity of backgrounds and schools come together to discuss their ideas and experiences. The workshop on Verified Software: Theories, Tools, and Experiments (VSTTE 2009) will take place on November the 2nd. The focus of this workshop will be on tools, as previous VSTTE conferences in Zurich and Toronto emphasised theories and experiments. Consisting of contributed papers and invited talks, the workshop will focus on the tools behind the development of systematic methods for specifying, building, and verifying high-quality software. This includes topics like: * Program logic * Specification and verification techniques * Tool support for specification languages * Tool for various design methodologies * Tool integration and plug-ins * Automation in formal verification * Tool comparisons and benchmark repositories * Combination of tools and techniques (e.g. formal vs. semiformal, software specification vs. engineering techniques) * Customizing tools for particular applications Papers about tool architectures, and their achievements are most welcome. The contributed papers, which should report on previously unpublished work, can reflect current and preliminary work in areas of software verification. New technical results, overviews of new developments in software verification projects, short papers accompanying tool demonstrations, as well as position papers on how to further advance the goal of verified software are all welcome. SUBMISSION PROCEDURE ==================== Submitted papers should not have been submitted elsewhere for publication, should use the Springer-Verlag's package ftp://ftp.springer.de/pub/tex/latex/svjour/sttt/, and should not exceed 15 pages including appendices. Papers will be processed through the EasyChair conference management system. IMPORTANT DATES =============== Submission deadline September 4, 2009, 11:59pm Samoa time (UTC-11) Notification of acceptance October 2, 2009 Final version October 16, 2009 CONTACT ======= Leo Freitas, leo@cs.york.ac.uk Department of Computer Science University of York, YO10 5DD York, UK Tel: (+44) (0) 1904 434753 Jean-Christophe Filliatre, Jean-Christophe.Filliatre@lri.fr CNRS / INRIA Saclay - Ile-de-france - ProVal Parc Orsay Universite, batiment N 4, rue Jacques Monod 91893 Orsay Cedex FRANCE Tel: (+33) (0)1 74 85 42 27 FURTHER INFORMATION =================== Further information will be put on the workshop web-page http://vstte09.lri.fr/. From ivan.miljenovic at gmail.com Sat Jul 25 02:58:08 2009 From: ivan.miljenovic at gmail.com (Ivan Lazar Miljenovic) Date: Sat Jul 25 02:39:41 2009 Subject: [Haskell] ANNOUNCE: graphviz-2999.1.0.2 Message-ID: <87tz11p7un.fsf@gmail.com> This is a bug release that fixes a bug spotted by Srihari Ramanathan where the Dot representation of Color values were double-quoted when they shouldn't have been. -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com From niklas.broberg at gmail.com Sun Jul 26 15:00:07 2009 From: niklas.broberg at gmail.com (Niklas Broberg) Date: Sun Jul 26 14:41:30 2009 Subject: [Haskell] ANN: haskell-src-exts-1.1.0 Message-ID: Fellow Haskelleers, I'm pleased to announce the release of haskell-src-exts-1.1.0, bringing you tuple sections, comments, and a few bug fixes. haskell-src-exts is a package for Haskell source code manipulation. In particular it defines an abstract syntax tree representation, and a parser and pretty-printer to convert between this representation and String. 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.0: =================== * Adds rudimentary support for retaining comments while parsing a source document. The support currently comes in the following form: - The module Language.Haskell.Exts.Comments defines a datatype Comment with two constructors denoting single-line (--) and multi-line ({- -}) comments. - The Parseable class is extended with a function 'parseWithComments :: Parseable ast => ParseMode -> String -> ParseResult (ast, [Comment])' which simply returns all comments as a list alongside the AST. There are also specialised versions for the usual suspects. Example run: HSE> parseExpWithComments defaultParseMode "1 + {- comment -} 4 -- end\n" ParseOk (InfixApp (Lit (Int 1)) (QVarOp (UnQual (Symbol "+"))) (Lit (Int 4)),[Mu ltiLine (SrcLoc {srcFilename = ".hs", srcLine = 1, srcColumn = 3}) " co mment ",SingleLine (SrcLoc {srcFilename = ".hs", srcLine = 1, srcColumn = 19}) " end"]) This first release of comment support is as seen very rudimentary, but I'm releasing it early in the hope that people who need features tied to this will start looking at what's there and send me comments on what further support they would like to see and consider missing. * Support for TupleSections: * Fixes a bug where the statements of a list comprehension were returned in the wrong order (oops!). * Fixes a bug where function definitions were printed incorrectly when using PPOffsideRule - thanks to Mathieu Boespflug for the patch. * Fixes the broken 'cabal test' - thanks to Robin Green for the entire test runner support! Cheers and Happy Haskelling, /Niklas From tom.davie at gmail.com Mon Jul 27 05:46:07 2009 From: tom.davie at gmail.com (Thomas Davie) Date: Mon Jul 27 05:27:24 2009 Subject: [Haskell] Building a library for C users Message-ID: <3C09A527-7E1D-404A-966C-F9E0D6485BD0@gmail.com> Hiya all, I'm trying to build a library that can be called from C code. The ghc manual implies that this can be done, but does not specify the compiler options that I need to throw at it, and into which files I should put initialisation/end routines. Does anyone know the magic I need to invoke to get ghc to produce for me (a) a header file, (b) preferably a dynamic library, put a static one if all else fails. Thanks Tom Davie From jgbailey at gmail.com Tue Jul 28 12:19:39 2009 From: jgbailey at gmail.com (Justin Bailey) Date: Tue Jul 28 12:01:08 2009 Subject: [Haskell] Building a library for C users In-Reply-To: <3C09A527-7E1D-404A-966C-F9E0D6485BD0@gmail.com> References: <3C09A527-7E1D-404A-966C-F9E0D6485BD0@gmail.com> Message-ID: You should be able to find information on this in the haskell wiki (www.haskell.org). Searching for "foreign" will probably bring it up. You'll probably end up having to link a static library - GHC doesn't yet produce dynamic libraries, though there is work in that area going on right now. Look for the "Industrial Haskell Group" blog for more. On Mon, Jul 27, 2009 at 2:46 AM, Thomas Davie wrote: > Hiya all, > ?I'm trying to build a library that can be called from C code. ?The ghc > manual implies that this can be done, but does not specify the compiler > options that I need to throw at it, and into which files I should put > initialisation/end routines. ?Does anyone know the magic I need to invoke to > get ghc to produce for me (a) a header file, (b) preferably a dynamic > library, put a static one if all else fails. > > Thanks > > Tom Davie > _______________________________________________ > Haskell mailing list > Haskell@haskell.org > http://www.haskell.org/mailman/listinfo/haskell > From wss at cs.nott.ac.uk Wed Jul 29 04:26:51 2009 From: wss at cs.nott.ac.uk (Wouter Swierstra) Date: Wed Jul 29 04:08:09 2009 Subject: [Haskell] ANN: The Monad.Reader - Issue 14 Message-ID: <1CF5B234-D964-4931-BE81-91BD92150BFE@cs.nott.ac.uk> Dear all, I am pleased to announce that a new issue of The Monad.Reader is now available: http://themonadreader.wordpress.com/ Issue 14 consists of the following three articles: * Fun with Morse Code by Heinrich Apfelmus * Hieroglyph 2: Purely Functional Information Graphics Revisited by Jefferson Heard * Lloyd Allison?s Corecursive Queues: Why Continuations Matter by Leon P Smith Please note that I've moved the Monad.Reader to a new Wordpress blog. You may want to update your bookmarks. If you?d like to write something for the next issue of The Monad.Reader, please get in touch. I haven?t fixed the deadline for the next issue just yet, but expect a deadline late 2009. Wouter From Sven.Panne at aedion.de Wed Jul 29 12:26:30 2009 From: Sven.Panne at aedion.de (Sven Panne) Date: Wed Jul 29 12:07:39 2009 Subject: [Haskell] ANNOUNCE: OpenGL 2.3.0.0 Message-ID: <200907291826.30307.Sven.Panne@aedion.de> A new version of the OpenGL package has bee uploaded to Hackage. The main change is that it is now only a convenience layer upon the OpenGLRaw and GLURaw packages, written in in pure Haskell without the FFI. The latter two packages load the native libraries dynamically and do not rely on any C headers, making it possible to build all OpenGL-related packages even on machines without any installed native OpenGL support. Apart from that, a bug in vertexAttribPointer has been fixed. Cheers, S. From Sven.Panne at aedion.de Wed Jul 29 12:31:21 2009 From: Sven.Panne at aedion.de (Sven Panne) Date: Wed Jul 29 12:12:30 2009 Subject: [Haskell] ANNOUNCE: GLUT 2.2.0.0 Message-ID: <200907291831.21863.Sven.Panne@aedion.de> A new version of the GLUT package has been uploaded to Hackage. It depends on the new OpenGL, StateVar and Tensor packages, but apart from that the API is unchanged. Furthermore, a simple, pure OpenGL 3.1 demo has been added, which does not rely on any deprecated OpenGL functionality (SmoothOpenGL3). Cheers, S. From uzytkownik2 at gmail.com Thu Jul 30 22:53:59 2009 From: uzytkownik2 at gmail.com (Maciej Piechotka) Date: Thu Jul 30 22:35:04 2009 Subject: [Haskell] ANNOUNCE: nntp 0.0.2 Message-ID: <1249008839.2504.34.camel@notebook> Nntp is a library to connect to nntp (i.e. mainly USENET) servers. Since 0.0.1 nntp undergone an nearly total rewrite. Currently RFC977 + one command of RFC2980 is implemented but RFC3977 is on the top of the TODO list. Changes since 0.0.1: - Put into a NntpT monad. It allows to pass and change the state more easily. As code should not be interleave much with normal IO (servers sometimes have short timeout) additional lifts should not be a problem. - Add basic support for XHDR. Other commands should follow. TODO: - Implement the CAPABILITIES call - Change article headers to allow fetching only some of the headers (for use with XOVER etc.) - Implementing other commands - Writing tests - Implementing extentions (TLS, Auth...) Special thanks for Antti-Juhani Kaijanaho who allowed me to experiment with NNTP protocol on his server. Regards -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part Url : http://www.haskell.org/pipermail/haskell/attachments/20090730/663cfb4c/attachment.bin From ninegua at gmail.com Fri Jul 31 16:43:14 2009 From: ninegua at gmail.com (Paul L) Date: Fri Jul 31 16:24:15 2009 Subject: [Haskell] ANNOUNCE: OpenGL 2.3.0.0 In-Reply-To: <200907291826.30307.Sven.Panne@aedion.de> References: <200907291826.30307.Sven.Panne@aedion.de> Message-ID: <856033f20907311343w4e070e07k52e1cd07b3570e2c@mail.gmail.com> Hi Sven, Thanks a lot for bringing OpenGL out of the autoconf dependency, it would really help with installation on platforms like Windows. I've also noticed that the decision was made to use solely C types as instances for VertexComponent, ColorComponent, etc. I'm not sure I understand this change because: 1. There was no default type for things like GL.Vertex3, and one had to explicitly annotate the type. Removing Int, Float from the Component classes would surely break A LOT OF existing code. 2. I don't see a problem adding back Int, Float, Double, etc. as instances of those Component classes along side of C types. On the other hand, I'm comfortable with changing types like GLint to C types, as existing code should have used GLint instead of Int. -- Regards, Paul Liu Yale Haskell Group http://www.haskell.org/yale On 7/29/09, Sven Panne wrote: > A new version of the OpenGL package has bee uploaded to Hackage. The main > change is that it is now only a convenience layer upon the OpenGLRaw and > GLURaw packages, written in in pure Haskell without the FFI. The latter two > packages load the native libraries dynamically and do not rely on any C > headers, making it possible to build all OpenGL-related packages even on > machines without any installed native OpenGL support. Apart from that, a bug > in vertexAttribPointer has been fixed. > > Cheers, > S. > > _______________________________________________ > Haskell mailing list > Haskell@haskell.org > http://www.haskell.org/mailman/listinfo/haskell > From RafaelGCPP.Linux at gmail.com Fri Jul 31 18:44:04 2009 From: RafaelGCPP.Linux at gmail.com (Rafael Gustavo da Cunha Pereira Pinto) Date: Fri Jul 31 18:25:07 2009 Subject: [Haskell] ANNOUNCE: OpenGL 2.3.0.0 In-Reply-To: <856033f20907311343w4e070e07k52e1cd07b3570e2c@mail.gmail.com> References: <200907291826.30307.Sven.Panne@aedion.de> <856033f20907311343w4e070e07k52e1cd07b3570e2c@mail.gmail.com> Message-ID: <351ff25e0907311544o6f19a42q415c9008b8df4202@mail.gmail.com> While "fixing" GLFW I was thinking exactly the same. GLFW uses a lot of Floats for textures, and it wouldn't hurt bad to add those instances... As for GLInts, GLFW used a lot of Int32 when it should be using Sizei. On Fri, Jul 31, 2009 at 17:43, Paul L wrote: > Hi Sven, > > Thanks a lot for bringing OpenGL out of the autoconf dependency, it > would really help with installation on platforms like Windows. > > I've also noticed that the decision was made to use solely C types as > instances for VertexComponent, ColorComponent, etc. I'm not sure I > understand this change because: > > 1. There was no default type for things like GL.Vertex3, and one had > to explicitly annotate the type. Removing Int, Float from the > Component classes would surely break A LOT OF existing code. > > 2. I don't see a problem adding back Int, Float, Double, etc. as > instances of those Component classes along side of C types. > > On the other hand, I'm comfortable with changing types like GLint to C > types, as existing code should have used GLint instead of Int. > > -- > Regards, > Paul Liu > > Yale Haskell Group > http://www.haskell.org/yale > > On 7/29/09, Sven Panne wrote: > > A new version of the OpenGL package has bee uploaded to Hackage. The main > > change is that it is now only a convenience layer upon the OpenGLRaw and > > GLURaw packages, written in in pure Haskell without the FFI. The latter > two > > packages load the native libraries dynamically and do not rely on any C > > headers, making it possible to build all OpenGL-related packages even on > > machines without any installed native OpenGL support. Apart from that, a > bug > > in vertexAttribPointer has been fixed. > > > > Cheers, > > S. > > > > _______________________________________________ > > Haskell mailing list > > Haskell@haskell.org > > http://www.haskell.org/mailman/listinfo/haskell > > > _______________________________________________ > Haskell mailing list > Haskell@haskell.org > http://www.haskell.org/mailman/listinfo/haskell > -- Rafael Gustavo da Cunha Pereira Pinto -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090731/91651b98/attachment-0001.html From dons at galois.com Fri Jul 31 20:01:07 2009 From: dons at galois.com (Don Stewart) Date: Fri Jul 31 19:44:14 2009 Subject: [Haskell] ANNOUNCE: The Haskell Platform 2009.2.0.2 Message-ID: <20090801000107.GM3854@whirlpool.galois.com> We're pleased to announce the third release of the Haskell Platform: a single, standard Haskell distribution for everyone. The specification, along with installers (including Windows and Unix installers for a full Haskell environment) are available. Download the Haskell Platform 2009.2.0.2: http://hackage.haskell.org/platform/ The Haskell Platform is a single, standard Haskell distribution for every system, in the form of a blessed library and tool suite for Haskell distilled from the thousands of libraries on Hackage, along with installers for a wide variety of systems. It saves developers work picking and choosing the best Haskell libraries and tools to use for a task. When you install the Haskell Platform, you get the latest stable compiler, an expanded set of core libraries, additional development tools, and cabal-install ? so you can download anything else you need from Hackage. What you get: http://hackage.haskell.org/platform/contents.html With regular time-based releases, we expect the platform will grow into a rich, indispensable development environment for all Haskell projects. Since the first release, there have been over 100,000 downloads of the installers. Thanks! -- The Platform Infrastructure Team