MuniHac is a three day Haskell hackathon taking place from Friday 16th to Sunday 18th November 2018 in the beautiful city of Munich, hosted and sponsored by TNG Technology Consulting GmbH and co-organized by Well-Typed LLP. The Hackathon is intended to follow the tradition of other Haskell Hackathons such as the ZuriHac, HacBerlin, UHac and many others.
We have capacity for ~80 Haskellers to collaborate on any Haskell-related project they like. There will be beginner workshops and a mentor program to help you get started. Of course you can as well start hacking Haskell right away. Anyone is welcome to participate. Beginner or pro, we've got you covered :)
Hacking on Haskell projects will be the main focus of the event, but we will also have a couple of talks by renowned Haskellers. The MuniHac is furthermore a great opportunity to meet and socialize with fellow Haskellers and have a great time together. Among other things, we are looking forward to having BBQ, pizza and a traditional Weißwurstfrühstück.
Doors will open at 9am CET on Friday 16th and close at 5pm CET on Sunday 18th November 2018.
Patterns in Haskell are useful, but they're prone to issues such as incomplete and redundant patterns if used carelessly. Thankfully, GHC offers a very handy static analysis, called pattern-match coverage checking, which emits warnings if you use patterns recklessly. This talk explores the design considerations of coverage checking, considers some of the more challenging aspects of determining whether patterns are exhaustive, and even demonstrates some patterns that aren't checked correctly (as of GHC 8.6!) but will be soon.
Ryan is a Ph.D student at Indiana University, where he
attempts to combine techniques from software verification and
determinism (sometimes successfully!). He is also a key
contributor to GHC, where he specializes in the areas of
deriving, Template Haskell, pattern-match coverage
checking, and various odds and ends in the typechecker. Through a
series of strange coincidences, he is also a member of the Haskell
Core Libraries Committee and maintains libraries ranging from
Forget everything you know about Template Haskell. We will enter the beautiful world of Typed Template Haskell where its only possible to construct well-scoped and well-typed terms. Why? By writing our program in multiple stages, we can guarantee to eliminate the interpretative overhead caused by abstraction.
Matthew will give an introduction to Typed Template Haskell and then describe some examples of how to construct abstract and efficient programs using techniques from multi-stage programming. We will construct an "efficient" power function and also give a sketch of how to implement a SQL query compiler as inspired by the functional pearl "A SQL to C Compiler in 500 Lines of Code".
Matthew is a PhD student at the University of Bristol focusing on program generation with applications to optimisation. In the quest to write the perfect program he has become a regular contributor to GHC where he has recently been working on making the compiler easier to extend by using source plugins.
As real-time and distributed systems become common-place, latencies associated with memory management begin to limit the usability of garbage collected languages. In particular, the Glasgow Haskell Compiler has long relied on a throughput-oriented copying garbage collector; while this collector provides good memory locality for user programs, minimal fragmentation, and efficient collection, it imposes large latencies when collecting large heaps.
Recent language implementations (e.g. Go, Mono, various Java implementations) have moved away from have avoided the problem of garbage collection latency through use of concurrent collection on a non-moving heap. In this talk Ben will provide a high-level overview of a concurrent, non-moving garbage collector implemented for the Glasgow Haskell Compiler. This collector offers significantly improved pause times without the need for code recompilation and with minimal impact on program runtime. He will discuss the trade-offs implicit in the design, the challenges posed by collecting Haskell in particular, and present some preliminary performance measurements from a prototype implementation.
Ben uses Haskell in fields as diverse as applied machine learning, scientific data analysis, robotics control, and compiler engineering. He is an active contributor to the Glasgow Haskell Compiler with focus on code generation, Core optimization, and the runtime system, and has worked extensively towards bringing GHC to the ARM architecture.
He has experience implementing numerical methods for machine learning, with an eye towards leveraging Haskell’s strong type system to enforce correctness at compile-time. Ben has expertise developing high-performance distributed systems in a wide range of languages. Past projects include GPU-based modelling of high-energy particle interactions and an implementation of parallel machine learning algorithms for large-scale social network analysis.
He is completing a PhD in Physics at the University of Massachusetts and has publications spanning social network analysis, computational physics, and biophysics.
Please note that all times are CET.
|Friday, Nov. 16th, 2018|
|8:00||Doors open & Registration|
|9:15||Time for everybody to present their projects and/or find fellow Haskellers to work with|
|9:30||Hack on||Beginner's Workshop|
|11:00||Keynote: Ryan Scott: The Curious Case of Pattern-Match Coverage Checking|
|14:00||Hack on||Beginner's workshop (continued)|
|15:30||Coffee & cake|
|19:00||After-hack get-together: Bei Mario (https://goo.gl/maps/dzu52Qvr3d62)|
|Saturday, Nov. 17th, 2018|
|8:30||Doors open & Breakfast|
|11:00||Keynote: Matthew Pickering: Beautiful Template Haskell|
|14:00||Hack on||Datatype-Generic Programming|
|15:30||Coffee & cake|
|19:00||After-hack get-together: Prinz Alfons (https://goo.gl/maps/LgmLF4qnqn22)|
|Sunday, Nov. 18th, 2018|
|9:30||Traditional Bavarian Breakfast|
|11:00||Keynote: Ben Gamari: A low-latency garbage collector for GHC|
|14:00||Coffee & cake|
A few suggestions to help you find a hotel.