|Line 103:||Line 103:|
* Make Considered Harmful
* Make Considered Harmful
The hardest part when writing a compiler for a functional language seems to be the make system - how to compile the compiler. GHC has rewritten it's build system from scratch at least 3 times. Yhc died under 10,000 lines of Python Scons scripts. There have been many alternatives to make proposed (
The hardest part when writing a compiler for a functional language seems to be the make system - how to compile the compiler. GHC has rewritten it's build system from scratch at least 3 times. Yhc died under 10,000 lines of Python Scons scripts. There have been many alternatives to make proposed (, ...) but none of them seem to work as well as one might hope. This talk discusses an alternative approach, writing a make system as a Haskell program with a suitable make library providing a convenient DSL.
==== Functional Grit ====
==== Functional Grit ====
Revision as of 10:52, 19 July 2009
AngloHaskell 2009 is taking place on the 7th of August at MSR Cambridge, with further activities on the 8th. It's free, and everyone is invited! Simply add your name to the wiki and we'll see you there :-)
We could use local contacts and someone to act as organisational contact on the day. People willing to put someone up for the night (even if on a floor) would also be much appreciated. Any volunteers?
1 Date and Venue
7th-8th of August in Cambridge, UK, starting with talks at Microsoft Research and with more planning to happen below.
1.1 Directions to MSR
MSR has some directions, which can be best summarised as ‘get a taxi’. Here is (hopefully) a Google Earth location of MSR, as well as a Google Maps link. (J J Thomson Avenue is immediately west of Clerk Maxwell Road.)
If you do take a taxi and the driver doesn't know where it is, tell him or her to drive down Madingley Road until you reach the West Cambridge site, J J Thomson Avenue. The Computer Laboratory (next door) has marginally better instructions.
The fastest way to MSR (on foot and public transport) from the station is to cut through to Trumpington Road via Bateman Street (don't follow the driving directions!), and take the Citi 4 or Uni 4. There's a bus stop just across the road from Bateman Street.
To get to the city centre by bus, take the Citi 1 or Citi 3. Do ask to make sure they're going in the right direction though! There are also a number of clearly marked shuttle busses between the centre and station running during the day every 10 minutes or so.
To walk to the centre (20 minutes not carrying luggage), go straight down the road facing you when you come out of the station, bear right when the road ends at some traffic lights / a WW1 memorial / the botanic gardens, and keep walking straight (Hills Road / Regent St / St Andrews St) for quite a while until you reach a pedestrianised bit, at which point you are in the centre.
From the city centre to MSR, you can catch the number 77 Madingley Road Park and Ride which goes from bus stop M on Emma St. (Or find your way to Pembroke or Silver Street, and catch the Citi 4 / Uni 4 from there.) (Note that the 77 doesn't stop by MSR any more, it goes to the park and ride from which you have to walk back, 10-15 mins. This caught me out the other day --SimonM).
To be verified:
Some parking spaces will be available around the back of the MSR building. To get out again, drivers will need to talk to reception to obtain a token.
Per last year, all attendees should bring or make a nametag that identifies you by your real name and/or IRC name. If anyone wants to drag a roll of stickers and a pen along that'll help!
If you can't make the start on Friday, or can only make it on Saturday, that's fine. If you're not sure where everyone's going to be, give one of the contacts a call or a text.
- Philippa Cowderoy
- Neil Mitchell
- Eric Kow
- Tom Schrijvers
- Eric Macaulay
- Peter McArthur
- Tristan Allwood (Friday only)
- Neil Brown (Friday only)
- Sam Martin
- Lennart Augustsson
- Edwin Brady
- Magnus Therning
- Michael Dever (Travelling over from Ireland, so if anyone else is going, get in touch :) )
It's likely that there'll be people in need of crashspace and so forth, so please organise here! Both offers and requests are good.
3.1 Nearby Colleges
Many of undergraduate colleges (which are really glorified halls of residence) offer cheap accommodation over the holidays. Locations near MSR include Churchill College, Wolfson Court (an annexe of Girton College), Fitzwillian College, Robinson College, New Hall (female only) and Burwells Field (an annexe of Trinity College). (This map might prove useful.)
There's a fairly inexpensive YHA hostel in Cambridge.
Another guest house right next to the station is Tenison Towers (01223 363924).
Planning will be taking place on IRC as per previous years: #anglohaskell on irc.freenode.net
If you're having trouble following things on IRC, the discussion page on the wiki might be a good place to leave comments and questions.
Previous years in Cambridge we had talks in the day on a Friday, followed by pubbage in the evening and assorted activities on the Saturday. This seemed to work, so we'll follow a similar model this year. Sadly we can't have talk space at MSR on a Saturday.
Volunteers please! Previously we have had a largely more practical set of talks than you might find at Fun in the Afternoon or an academic event. This was a good thing, and some of the best talks were from people who were far from considering themselves as experts, so feel free to tell us about your experiences.
In the event that more talks are offered than we have time for at MSR, we'll have to work out what we can do to find more time.
Talks planned and/or offered:
- Neil Mitchell - hopefully "Make Considered Harmful"
- Tom Schrijvers - "Monadic Constraint Programming"
- Tristan Allwood - I can offer a talk / demo, likely to be on using the GHC API for automatic crash testing. But I spoke last year, so happy to defer to someone else.
- Neil Brown - "CSP Proofs on the Cheap" (like several others, I spoke last year -- so others should have priority if we get too many talks)
People giving talks should add these as they have them :-)
- Monadic Constraint Programming
A constraint programming system combines two essential components: a constraint solver and a search engine. The constraint solver reasons about satisfiability of conjunctions of constraints, and the search engine controls the search for solutions by iteratively exploring a disjunctive search tree defined by the constraint program.
The Monadic Constraint Programming framework gives a monadic definition of constraint programming where the solver is defined as a monad threaded through the monadic search tree. Search and search strategies can then be defined as firstclass objects that can themselves be built or extended by composable search transformers. Search transformers give a powerful and unifying approach to viewing search in constraint programming, and the resulting constraint programming system is first class and extremely flexible.
- CSP Proofs on the Cheap
Hoare's Communicating Sequential Processes and the model-checker FDR provide a way to check implementations of concurrent programs against formal specifications and also to check for deadlock-freedom. The Communicating Haskell Processes (CHP) library already provides a way to implement CSP-style message-passing concurrency in Haskell using a CHP monad. In this talk, I discuss substituting the definition of the CHP monad for one that emits a formal model of the program, never requiring the full program to be executed and bypassing the need for source code analysis. This model can then be checked for deadlock or refinement of a specification. I will explain how several features of Haskell make this work possible, particularly monads and lazy evaluation.
- Make Considered Harmful
The hardest part when writing a compiler for a functional language seems to be the make system - how to compile the compiler. GHC has rewritten it's build system from scratch at least 3 times. Yhc died under 10,000 lines of Python Scons scripts. There have been many alternatives to make proposed (SCons, CMake ...) but none of them seem to work as well as one might hope. This talk discusses an alternative approach, writing a make system as a Haskell program with a suitable make library providing a convenient DSL. Practical experience suggests that this approach is the only sensible choice for a build system.
4.1.2 Functional Grit
In previous years there has been a successful 'functional grit' section. Usually an informal session for people to briefly talk/demo works in progress, no need to pre-register, just turn up and talk. Think small stones that might turn into functional pearls. If there's time it'd be great to do again this year.
4.2 Other activity
After Friday's talks, food and drink would be a good idea! Curry is traditional and probably the default, but we're open to other suggestions. After that, we'll retreat to a pub for the evening.
Repeating previous years, I suggest we go to The Regal for brunch on Saturday to kick off with. That's the Wetherspoons from last year. After that, punting again if it's not raining too much? Any suggestions for if it's wet?