Overview
This is our second sprint, but it was also the first one that was held in a single location. Being all in one place was extremely helpful for us because it gave everybody a chance to interact with everybody else (especially with other Haskellers)! It also meant that instead of hacking a lot of code, we focused on sharing knowledge within the team and with the rest of the community, developing new ideas and planning for the future.- Total sprint patches : 24
- Participants: 11 onsite and 3 offsite
Presentations
An alternative patch theory notation?
![whiteboard scribbles from Marnix Klooster's patch theory notation](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-5HUwZnNptvqjPqp9F68HlG0HZdGdKJbWxKx6-VjLTWxb9CYq-WtZCbT2Zr09qKqvbsHRDd2V69pBBIaPELZu3UTPfE92iX29ITUaQ97wPxxPNcQCXRfefeVUb3oN_YRegrEBOkzUOow3/s200/DSC_1057.jpg)
question and answer session
On Saturday morning, Eric led a Question and Answer session in which the wider Haskell community could ask questions about darcs usage or share their experiences using darcs and learn more about the upcoming darcs 3 transition.Some of the features we discussed are the patch matching
--match
features, and the notion of context files which give you a precise notion of repository version, and also the darcs annotate command.One of the interesting experiences we learned from the Haskell community was that it is often useful to collect a set of completely unrelated repositories into a one. A problem that arises in this use case that repositories would have common filenames like "Makefile" that give rise to a conflicts. As a result of this discussion, Ganesh had some new ideas about how darcs could work to better support this scenario.
Thanks to Ben Moseley for the suggestion and to Ganesh and Petr for answers!
time-sliced HPC code coverage
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQVsdOFkzrX4m8wC7sj2xqQPBJPtf6f6bpktTIPP_aCtGaXyJMGXZj1nq8C-lHqDpOiQtedFQMAnDAdtvE29xaT2a8lZV9EYevpaxgQgmsl8A1Mx1GQwMfdb3eCLcnN4dRiPPbzj48ljLB/s200/DSC_1199.jpg)
Discussions and implementation
The camp/darcs-3 transition
Ian, Ganesh and Eric discussed plans for transitioning to camp or darcs 3. We still have a lot of questions left to answer, but four points are clear to us:- We at least want the camp-core (patch theory 3) component to be part of future darcs.
- Ian is focused on camp fundamentals for now, that is, proving things in Coq.
- We anticipate at least three more darcs releases (2010-07) before this fundamentals work is done.
- Meanwhile, the darcs team should work on converging to camp, for example, by turning as much code into small, reusable libraries as possible
Camp/darcs-3 and Coq
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrMLtIXM1sMaxLIaA3dHbliv0p_wt3KRfCkqHaJrLT0gAgX5YDI1hbVXVPn1SKJRga5rctICZG6bXMBGVB6mKA8B8jxt0KIgSpw6I7KLfGtns-HtNOmTpPrc_C65QqRuTRbgj6evaldERb/s200/DSC_1036.jpg)
Overall, the sprint was very productive for Ian. He achieved his goal of finishing the proof that he was working on, and also did some refactoring of it, making it much simpler and shorter than it started off. This will be even more important as he gets to the larger proofs that are still to come. Ian also refactored everything to use the Coq module system properly. Being able to pick the brains of some more experienced Coq folk at the Hackathon was key to getting so much done. Also valuable were some good discussions, which have given him a lot to think about!
implementation
- Proof completed and refactored by Ian
- Some minor bugs fixed in the camp theory and paper.
Documentation
Daniel Carrera continued his work on making the darcs wiki and patch theory documentation friendlier.![Daniel Carrera and Sigrid Kronenberger](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_BQqX4JW6c5rG2v-IWRIegErBt8WbEO4r6xOI77TTb-5KGwoZ0HCgOaRLVqk6mdu5WH16kG3nppsY2CTTrK3UrjAOpDAIFHCRNA0DpMpRh7dRNy0x1XE-2-_VrFuVo6ff9VD2w2DcuEjs/s200/DSC_1072.jpg)
Despite a lot of recent technical difficulties -- the darcs team is in the middle of a switch from MoinMoin to a darcsit wiki -- Daniel has made some great progress and has put together a static demo of the new content.
![screenshot of patch theory documentation page](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisd8l7VOkyP5icoXqesrnzrpFIyix_gtjrddb6_1DitUuU9xZ1QY5xr7eUEdpfScRR6pLbFAN5bSeCeOW4mLobfWC4wBgCV-00Ml-hxg9pMizMkdB6AIe2oxyl74s_ai4SgJu82Nw25QHV/s200/patch-theory.png)
Filecache optimisation
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqajuDfmoGj5h0fpqhVry0kPrfO-QpRSOvYDHCx6BLzsQojvbKJvDdUG-wSpK9E_yiksy8pA0aVpvxS2KbaLf784ftOXRoIfTJ1Imog_Y3i6Rjir-oCHxEx7Ea531qfn6enm4hIH5ehIeF/s200/DSC_1056.jpg)
Benedikt and other darcs hackers discussed the design of the filecache and how changes and annotate can be optimized by making use of it as well as the interaction between this and the new hashed-storage work . This lead to a simpler design of the filecache based on unique filenames (creation name + creation patch).
implementation:
- Prototype that creates filecache with "optimize --filecache"and uses it for "changes filename" implemented. These will be submitted for review when "annotate" has been adapted.
- Optimize parseDate by switching from String to ByteString to speed up reading the inventory file. Pending review.
Source file mechanism
Darcs's
--hashed
repositories make darcs a lot safer to use and also allow for performance gains such as --lazy
patch fetching and the global patch cache. But there are some annoying bugs in its implementation, for example, stale entries in our cache could cause darcs to waste time connecting to and timing out from non-existent servers.Petr has developed a plan to solve these issues by ignoring bad cache locations, warning about them, and deleting them when it is appropriate to do so. He has begun studying the darcs caching source code to prepare for future implementation work.
zlib and CRC errors
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgu-rUzrgx0CqBPziMxj6_mtpR1pro6jHy5bIkYOYuxlAhohcusGqBhDwFksUbmIzBgEFjQUt45IFTaU90E4cykj-_Z1tHPNQ48LOzl0ZzbSi9Azi-0DAfrJV-DEbsMNFWdVO6sOwPKRsUM/s200/DSC_1219.jpg)
Test suite improvements
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfsfJED7DnH9Y7hM5FWi9x2rxaa1RYTkwReth_ODJCY8qrVRqyR20xLZlpl6XUcJyrc33m6XNvKHHhls-co_WbBdc11JXfgo7l4hj5KIPw3Y_Ee-tp9Q4VnU6x15ke8sGqfoK2069yD_hB/s200/DSC_1054.jpg)
implementation:
- Profiling of darcs and test suites
- Patches sent and applied for some small optimisations.
Future work: filenames and semi-conflicts
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYzyXEX1vRZPb20B7IT4jxsMh4f0HgwDOzUHQJtHnztQuIe_TmfjedQ1-C9IVARY43pk8iPZi4J5ael1Aa1h4i_jgOnpGBCIzEOcMZXtZP3dtuHx51WkRrLmgpfmW2ewGNGH9HLG3kiG0S/s200/cimg0185.jpg)
Roughly speaking, darcs could associate each filename with some sort of unique ID. If we then try to merge two unrelated repositories that (for instance), have the same filename, darcs need not treat them as an actual conflict. These files would have a semi-conflicted state, where darcs does not really think of them as being conflicting, but warns the user about the clashing filenames. This mechanism could also be easily extended to deal with issues such as case-insensitive filesystems, or specific unsupported filenames (e.g. COM1 on Windows).
Future work: conflict state
Nicolas Pouillard developed an proposal for storing conflict markings in a "conflict state" file, which can then be passed on to high level conflict resolution tools, for example with a graphical interface.Future work: commute properties tool
Ganesh continued work on a tool he has been writing for some months which is intended to help with designing new patch types and their commutation rules. He doesn't have anything ready to unleash on the world yet, but hopes to soon.Participants
In addition to the work listed above, there was lots of other interesting work and discussions, not to mention time invested in getting (re)acquainted with the darcs source (Arjan, Eric and Ben). Thanks to everybody that participated and hope to see in hacking sprint #3!Here's the list of on-site participants in alphabetical order.
Arjan Boeijnk
- Daniel Carrera
- Marnix Klooster
- Eric Kow
- Ian Lynagh
- Ben Moseley
- Thorkil Naur
- Nicolas Pouillard
- Petr Ročkai
- Benedikt Schmidt
- Ganesh Sittampalam
Thanks to...
Haskell Hackathon organisers and sponsors
The Hac5 organisers did a brilliant job. We had Internet access, food and most importantly, a very warm welcome! Thanks to the Utrecht team for their very hard work getting the logistics down and congrulations for keeping 50-odd Haskell hackers happily hacking away.Thanks also to the sponsors of the Hackathon for their generous support:
![](http://www.haskell.org/sitewiki/images/a/a0/Galois.jpg)
![](http://www.haskell.org/sitewiki/images/0/0e/Research_bL.png)
![](http://www.haskell.org/sitewiki/images/d/de/Tupil-logo-wb.png)
Darcs Donors
Speaking of generosity, this is the first darcs hacking sprint to be supported with donations from the darcs community. We raised $1072 with contributions from 24 donors. This allowed us to subsidize travel for three of our darcs hackers and have some money left over for future darcs hacking sprint.Participants
Finally, thanks to all the participants of the Haskell Hackathon! It was a real joy for so many of us darcs hackers to be in a single room at the same time, and also for us to chat with folks from the wider Haskell community. Let's do this again!![](http://www.haskell.org/sitewiki/images/thumb/1/1c/Hac5.jpg/480px-Hac5.jpg)
Acknowledgements
Except for the group photo above (by Thomas Davie), and the photo of Ganesh by the whiteboard (by Reinier Lamers), these photos are by Martijn van Steenbergen and are available under the terms of the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 license license. Many thanks to Martijn, both for the photos and for tips on the pronunciation of Dutch vowels!Thanks also to darcs hackers who contributed to this report.
20 comments:
It's good to know that you made so much progress! And thanks for using my pictures. :-) Teaching you guys Dutch vowels was a lot of fun. :-)
Thanks to the Utrecht team for their very hard work getting the logistics down and congratulations for keeping 50-odd Haskell hackers happily hacking away. | drywall services
Eric led a Question and Answer session in which the wider Haskell community could ask questions about darts usage or share their experiences using darts and learn more about the upcoming darcs 3 transitions.
Darcs would consider these files to be semi-conflicted but nonetheless alert the user to the conflicting filenames even if it does not actually view them as being in conflict. | stump grinding
Benedikt and other darcs hackers discussed the design of the filecache and how changes and annotate can be optimized by making use of it as well as the interaction between this and the new hashed-storage work . mold remediation services miami florida
Marnix Klooster's innovative approach to an alternative patch theory notation is both intriguing and practical. Simplifying concepts like patch commutation into more intuitive terms, such as pushing a patch over another, seems like a promising way to enhance understanding. The avoidance of introducing new patch names and the reimagining of patch inverses as -p are creative solutions that could make the notation more accessible. Loldle
Being able to pick the brains of some more experienced Coq folk at the Hackathon was key to getting so much done.
- www.dallasdrywallsolutions.com/drywall-contractor-dallas-texas
Thanks for sharing your journey. https://haroclean.com/
Glad to visit this site. Thanks for the share. concrete patio
Thanks for the information, great one indeed. martial arts
Awesome post! Great job indeed. Miami Concreters Concrete driveway
The intention is to create a more readable form of patch theory writing see more..
Some of the features we discussed are the patch matching, match features, and the notion of context files which gives the Best drywall contractor in El Paso a precise notion of repository version, and also the darcs annotate command.
I enjoyed reading this. It was engaging and kept me interested throughout. concrete driveways
Thanks for your insight, I hadn’t thought about it that way. pool screen repair
It's nice seeing this site again. Great work! New Orleans Hydroseeding excavation
Great stuff you shared! Collierville Concrete Company concrete foundation
This is so perfect! Thanks
| rescreening
Post a Comment