Editorial = Just "Automated testing fever strikes the camp, with three new QuickCheck-related libraries and tools released.", Announce [ Item "QuickCheck 2 development version" "Bjorn Bringert" "[http://article.gmane.org/gmane.comp.lang.haskell.general/14511 announced] that the development version of QuickCheck 2 is now available in a public darcs repository. Highlights of the new QuickCheck version include: shrinking of failing test cases; supports testing monadic code; handles exceptions gracefully; coarbitrary has moved to a separate class; type-level modifiers for changing test data generation (e.g. NonNegative); function table printing; and user-defined actions when properties fail. The source is [http://www.cs.chalmers.se/~bringert/darcs/QuickCheck/ available via darcs].", Item "PQC: QuickCheck in the Age of Concurrency" "Don Stewart" "[http://article.gmane.org/gmane.comp.lang.haskell.general/14503 announced] PQC: Parallel QuickCheck. [http://www.cse.unsw.edu.au/~dons/pqc.html PQC] provides a single module: [http://www.cse.unsw.edu.au/~dons/pqc/Test-QuickCheck-Parallel.html Test.QuickCheck.Parallel]. This is a QuickCheck driver that runs property lists as jobs in parallel, and will utilise as many cores as you wish, with the SMP parallel GHC 6.6 runtime. It is simple, scalable replacement for Test.QuickCheck.Batch.", Item "cabal-test: automatic testing for Cabal projects" "David Himmelstrup" "[http://article.gmane.org/gmane.comp.lang.haskell.general/14519 announced] cabal-test, the automatic tester for Cabal projects. The cabal-test tool is capable of testing embedded QuickCheck properties in any and all cabalized projects. The tests are currently executed in parallel with PQC. QuickCheck properties can reside anywhere in the code and don't have to be exported. The [http://darcs.haskell.org/~lemmih/cabal-test darcs repo] is available.", Item "Streams 0.1.7" "Bulat Ziganshin" "[http://article.gmane.org/gmane.comp.lang.haskell.general/14504 announced] Streams version 0.1.7, a fast extensible [http://haskell.org/haskellwiki/Library/Streams I/O and serialization library]. Changes include: GHc 6.6 support, support for files larger than 4G on Windows, haddock documentation.", Item "Ranged Sets 0.0.3" "Paul Johnson" "[http://article.gmane.org/gmane.comp.lang.haskell.general/14492/ announced] the 0.0.3 release of [http://ranged-sets.sourceforge.net/Ranged/ Ranged Sets]. Ranged sets allow programming with sets of values described by a list of ranges. A value is a member of the set if it lies within one of the ranges. The ranges in a set are ordered and non-overlapping, so the standard set operations can be implemented by merge algorithms in O(n) time.", Item "NeHe Tutorials in Haskell" "Jason Dagit" "[http://article.gmane.org/gmane.comp.lang.haskell.cafe/16880 has converted] the (somewhat) famous NeHe tutorials for OpenGL to HOpenGL. A darcs repository has been created for anyone interested (and I welcome darcs patches). More information at [http://codersbase.com/index.php/Nehe-tuts the tutorial's site].", Item "Type-class overloaded functions" "Oleg Kiselyov" "[http://thread.gmane.org/gmane.comp.lang.haskell.general/14482/focus=14483 presented] functions polymorphic over classes of types. Each instance of such (2-polymorphic) function uses ordinary 1-polymorphic methods, to generically process values of many types, members of that 2-instance type class. The typeclass constraints are thus manipulated as first-class entities. We also show how to write typeclass instances with back-tracking: if one instance does not apply, the typechecker will chose the `next' instance -- in the precise meaning of `next'.", Item "Cabal mode for emacs" "Matthew Danish" "[http://mapcar.org/haskell/cabal-mode/ released] a small (and developing) major mode for editing Cabal files in emacs.", Item "YCR2JS Programmers Guide Draft" "Dimitry Golubovsky" "[http://article.gmane.org/gmane.comp.lang.haskell.cafe/16764 announced] the draft of low-level [http://haskell.org/haskellwiki/Yhc/Javascript/Programmers_guide programming guide for Yhc Core to Javascript converter]. Everyone interested in future use of this tool is encouraged to read and review the Guide. Its purpose is to give some ideas about interaction of Haskell programs converted into Javascript with a web browser on the lowest possible level, without application frameworks and support libraries (just because these haven't been developed).", Item "NeHe Tutorials in Haskell" "Jason Dagit" "[http://thread.gmane.org/gmane.comp.lang.haskell.cafe/16870/focus=16870 announced] the availability of the (somewhat) famous NeHe tutorials for OpenGL have been ported to HOpenGL. A [http://codersbase.com/index.php/Nehe-tuts darcs repository] is provided." ], HaskellPrime [ Link "http://thread.gmane.org/gmane.comp.lang.haskell.prime/1919/focus=1919" "Standard (core) libraries initiative: rationale" ], Libraries [ ], Conferences (Just "[http://sneezy.cs.nott.ac.uk/fun/nov-06/ Fun in the Afternoon]") [ Item "Links: web programming without tiers" "Phil Wadler." "", Item "Mechanized Metatheory Model-Checking" "James Cheney." "Syntactic techniques based on operational semantics and type systems are extremely useful for studying the metatheory of logics and programming languages. However, proving properties of such systems is often an onerous task, because there are often a large number of 'standard' or straightforward cases. It is tempting to cut corners and do careful proofs only for cases that seem interesting, but this can easily lead to a counterexample being missed. It therefore seems attractive to try to formalize such proofs in order to ensure their validity. However, this cure is often worse than the disease, since theorem proving tools tend to have a high learning curve. Moreover, theorem proving generally addresses the uncommon case of formalizing an informal proof of a well-understood system which has stood the test of time, rather than the common case of finding a bug in a poorly-understood system that may still be under development.", Item "A Principled Approach to Version Control" "Wouter Swierstra." "Version control systems are essential for managing the distributed development of large software pro jects. We present a formal model for reasoning about version control. In particular, we give a general definition of patch. Patches abstract over the data on which they operate, making our framework equally suited for version control of everything from highly-structured XML files to blobs of bits. We model repositories as a multiset of patches. The mathematical definitions of patches and repositories enable us to reason about complicated issues such as conflicts and conflict resolution.", Item "C\\# is a functional programming language" "Andrew Kennedy." "Polymorphic functions, parameterized types, lambda expressions, type inference, streams, GADTs, and combinator libraries: these are features usually associated with functional languages such as Haskell and ML. In this talk I will show how the design of C\\# 3.0, launching next year, was strongly influenced by ideas from functional programming, and supports all these features. I will use classic examples from the functional programming literature to illustrate the talk." ], Discussion [ Item "The Future of MissingH" "John Goerzen" "[http://thread.gmane.org/gmane.comp.lang.haskell.cafe/16819/focus=16819 opened] a discussion on the future development of MissingH, in order to improve usability and adoption by the community. It was felt that the current monolithic structure, and nondescript naming raises the barrier to use.", Item "Controlling backtracking with the list monad" "Isto" "[http://thread.gmane.org/gmane.comp.lang.haskell.cafe/16776/focus=16776 posed] an interesting question about whether the backtracking in a list monad could be controlled, producing a nice way to build branch and bounding algorithms", Item "Lifting conditionals" "Dougal Stanton" "[http://thread.gmane.org/gmane.comp.lang.haskell.cafe/16779/focus=16779 asked] about lifting if/then/else into the IO monad, revealing some interesting subtleties in the implementation", Item "Cheap commits for improving the library documentation" "Don Stewart" "[http://thread.gmane.org/gmane.comp.lang.haskell.cafe/16848/focus=16848 created] a new page, for non-core contributors to submit suggestions on improving library documentation. Rather than require the user to produce a darcs patch, than can instead add their change to the wiki page. Ideally, a wiki-editable version of the entire haddock docs would be desired", Item "Optimising a hash function" "Ivan Tomac" "[http://thread.gmane.org/gmane.comp.lang.haskell.cafe/16849/focus=16849 asked] about optimising low-level bit shifting code to run close to C speed.", Item "Common subexpression elimination" "Christian Maeder" "[http://thread.gmane.org/gmane.comp.lang.haskell.glasgow.user/11318/focus=11318 asked] about common subexpression elimination in GHC.", Item "Passing arrays between Haskell and C without overhead" "Brian Hulley" "[http://thread.gmane.org/gmane.comp.lang.haskell.glasgow.user/11313/focus=11313 asked] for advice on how best to bind to a C library, from Haskell, such that data can be passed with zero copying.", Item "Creating Loadable Dynamic Libraries in OSX" "Alfonso Acosta" "[http://thread.gmane.org/gmane.comp.lang.haskell.glasgow.user/11297/focus=11297 described] how to create dynamic loadable libraries (.so) with GHC 6.6 under Linux X86 using some C glue code and linking with -optl -shared. Advice was sought on porting this to OSX." ], Jobs [ ], Blogs [ Link "http://computativestylings.blogspot.com/2006/11/scoping-and-my-scheme-interpreter.html" "Scoping, and my Scheme Interpreter", Link "http://matteo.vaccari.name/blog/?p=59" "XP Day Benelux: the report", Link "http://sigfpe.blogspot.com/2006/11/from-l-theorem-to-spreadsheet.html" "From Löb's Theorem to Spreadsheet Evaluation", Link "http://haskell-web.blogspot.com/2006/11/search-engine-written-in-haskell-part_24.html" "A search engine written in Haskell: part two", Link "http://triple.aeoth.net/2006/11/24/ocaml-first-impressions/" "OCaml - First Impressions", Link "http://www.osnews.com/story.php?news_id=16554" "House: an Operating System Written in Haskell", Link "http://sigfpe.blogspot.com/2006/11/yoneda-lemma.html" " Reverse Engineering Machines with the Yoneda Lemma", Link "http://chanson.livejournal.com/156835.html" "Haskell and functional programming", Link "http://scienceblogs.com/goodmath/2006/11/query_for_readers_interested_i.php" "Query for readers: Interested in Haskell?", Link "http://scienceblogs.com/goodmath/2006/11/why_haskell.php" "Why Haskell?", Link "http://n3dst4.livejournal.com/50393.html" "What rocks", Link "http://kawagner.blogspot.com/2006/11/why-pointers-and-references-are-bad.html" "Why pointers and references are a bad thing", Link "http://www.nekomancer.net/blog/archives/reasons-to-learn-c" "Reasons to learn C", Link "http://geeklikemetoo.blogspot.com/2006/11/some-haskell-basics.html" "Some Thoughts on Haskell", Link "http://channel9.msdn.com/Showpost.aspx?postid=231495" "Simon Peyton Jones and Tim Harris explain STM [video]" ], Quotes [ Quote "Cale" "GADT pattern match in non-rigid context. There are prescriptions available for that sort of thing.", Quote "Bulat" "Base lib includes everything, from 'const' to starship control", Quote "Cale" "I should actually think before coding, but the type system is so good.", Quote "Syzygy-" "Why do I get the feeling that the arrow code was written during 'Speak like a pirate day'?", Quote "SamB" "[on the subject of fromJust] thinks that unJust would be a more fun name for that", Quote "apfelmus" "Ah, yet another UndeadArray necromancer exhausting his stack of bones. May the forces of light suggest to structure the incantation of darkness?", Quote "dons" "Ah, it *is* like Haskell. I see: Jiffy Pop is the family fun treat. No other brand of popcorn offers a self-contained popping pan. It can even be used outdoors.", Quote "thetallguy" "Using and advocating Haskell is like being Calvin (and Hobbes). To you, it's alive, real, a true delight. To those who know better, it's a stuffed tiger." ], Commits [ Commit "Mon Nov 27 05:06:02 PST 2006" "Wolfgang Thaller" "[http://article.gmane.org/gmane.comp.lang.haskell.cvs.ghc/18000 Initial support for x86_64-darwin]. Basic -fvia-C code generation is there, not much testing.", Commit "Fri Nov 24 15:05:48 PST 2006" "simonpj" "[http://article.gmane.org/gmane.comp.lang.haskell.cvs.ghc/17969 Fix constraint handling for lazy patterns]. Lazy patterns are quite tricky! Consider f ~(C x) = 3. Can the Num constraint from the 3 be discharged by a Num dictionary bound by the pattern? Definitely not! See Note 'Hopping the LIE in lazy patterns' in TcPat. The type checker wasn't ensuring this, and that was causing all manner of strange things to happen. It actually manifested as a strictness bug reported by Sven Panne." ] -- vim: paste