Tuesday, August 29, 2006

Darcs is broken



Darcs is broken. I found it out the hard way yesterday, while I was trying to commit my patches to the main trunk of GHC.
Essentially, my patches were living in a separate branch. Of course the Darcs model does not need the concept of branches, as traditional SCMs do, but the analogy works fine here.
The debugger is complete just in time for the 6.6 GHC release, and we were planning to include it in the candidate release yesterday Monday.

But Darcs planned otherwise. While my patches were on a branch, I had been careful to keep this branch sync'ed to the main trunk. This means pulling patches from the main trunk once a week or so and fixing any conflicts with my code. Since my patches are spread around several subsystems in the compiler, conflicts have arisen three or four times during these three months.
It turns out that since the last sync with the main trunk I did around the 22nd of August, a new patch has been commited which conflicts with my work. But this time Darcs has decided against simply doing the merge and calling conflict. Instead, it will diverge exponentially and hang.

I have tried everything! I switched to Linux, to Windows, to older versions, I tried all sort of Darcs tricks... to no avail.

What is more embarrassing, it turns out that this is a well-known issue of Darcs, and looks like there is no hope for a solution in the near future.

So now what? The maintainers of the Ghc repo are aware of this Darcs issue, and they have sensibly requested me to avoid pushing patches with conflicts into the main repo. Which means I have to manually re-record all my patches, by hand (with help of diff/patch), into the main trunk. This could take me several evenings, and is boring as hell!
Of course I could record a One Big Patch, but that's a less desirable solution.

I wish I had known about this issue of Darcs before.
I wish Darcs patch theory wasn't so broken in the first place.

[posted with ecto]

Thursday, August 03, 2006

SoC demographic stats

The Google people have published some numbers about this year Summer of Code.

I am still jaws open. Haskell.org is ranking above organizations such as The Mozilla Foundation, Eclipse or Ruby Central !!

How would you interpret this?
Could it perhaps be an indication that Haskell and FP in general is starting to become more popular among the masses, at least young masses?
Or could it just mean that Haskell.org project proposals were terrific -they were, imho- and attracted a lot of minds?

In one way or another it is awesome, and I am really thankful to all the people in Google and in Haskell.org who have made this possible.

Tuesday, August 01, 2006

Feather by feather

I bought me a white Macbook a few weeks ago and have been loving it since the first day. This is my first Apple box and I was a bit afraid that the transition would be time consuming, but I have actually enjoyed it.
Some articles I recommend for tech-savvy people who are in the same situation - Macs are taking over the world nowadays - is the awesome Ars Technica collection of Mac Os reviews.
Even though this has been a great experience and I am loving Mac Os - the hardware is good too, but nothing gets close to a Thinkpad - the system feels very slow most of the time. I use to have several applications running - Emacs, Mail, iTunes, Firefox, Terminal.App, Preview, Colloquy, Skype... - and a perennial ghc compilation process. I'm not sure if this is solely because of the limited amount of RAM the Macbook has (512 mb) or if this has to do with Mac Os 'universal cache'. I say this because it is especially noticeable when I launch a compilation session, often the system becomes totally unuseable - I cannot even type in a console-.

So a major upgrade was in order. A new 7200 rpm hard drive and two 1gb sticks are arriving tomorrow, and I am getting ready for the migration. Sadly I can't use Tiger shiny Migration Assistant to help me, since it requires two Macs and I only have one :S

I'd loke to minimize the time used to install and setup the new hard drive, but also would like to do it from scratch in order to fix the beginner mistakes I have fall in, which include:
  • installing Stuffit, which is a PowerPC binary, will screw all the file associations for archive types
  • xompletely messy iTunes library
  • too many unix packages installed all around. I have used both fink and Darwin Ports, and it seems that a lot of hard drive space is wasted in overlapping base packages. Heck, I even went as far as to compiling amaRoK with fink (and all the base packages it requires!)
  • messy ghc installations all around
  • installing several softwares I didn't end up using
The list below is a self note of all the things I have installed and I want to keep:
  • Carbon Emacs (my .emacs sets up Haskell mode, hippie-completion and a few other keystrokes)
  • Darcs + Darcsweb + setup my httpd
  • of course Firefox. Sure, I like the looks of Camino, but it is not clear to me why would I want to sacrifice all the available Firefox extensions
    • Google Notebook + Google Sync + delicious Complete
  • Missing Sync (demo). Otherwise, iCal will be useless for me.
  • Colloquy
  • Adium (with this fix)
  • Skype (webcam beta version)
  • Dashboard plugins:
    • Wikipedia
    • Sing that itune
    • laTele
    • cloudLicious
    • Airport Radar
  • Spotlight plugins
  • iTunes plugins
    • Synergy (demo)
    • iScrobbler
    • iTunes Catalog (demo)
  • Textmate (demo)
  • XNJB proved pretty handy to manage my brother's Zen
  • Azureus, DivX
  • Omnigraffle, MindManager (demo)
  • Sleepless
  • TexShop + teTex (via fink)
  • XCode tools + Apple X11
  • Virtue Desktops
  • UnrarX
  • rdekstop (via port)
  • Chicken of the vnc
  • subversion (via port)
  • Parallels -unbearably slow with this little memory-. I only need it to tinker with Visual Haskell
  • MacPython
  • Alarm Clock

That's all, and that's enough.
This time the tribute is for Smog.