magnusjonsson is currently certified at Journeyer level.

Name: Magnus Jonsson
Member since: 2007-06-11 16:43:26
Last Login: 2007-08-08 23:52:47

FOAF RDF Share This


Recent blog entries by magnusjonsson

Syndication: RSS 2.0

Yay! Today I submitted my first GHC patch, and not only that, a patch to Cabal too! The GHC patch removed a dependency on Cabal which caused the head build to fail today when Cabal changed its API. I first made a simplistic fix but then Igloo suggested I remove the dependency on Cabal completely from that particular piece of code so I revised my patch and he accepted it. I'm happy to say the GHC sources are now

The Cabal patch fixed some erroneous parsing of the output of "ghc --supported-languages". Cabal is changing the way it detects compiler language extensions and they happened to make a silly mistake in the new code.

If I keep going like this I'm going to learn a lot about GHC and the Haskell infrastructure I'm sure. The people on #ghc have been very helpful and receptive.

In my undergrad research I've been using Haskell to parse, transform and pretty-print Fortran code. In the beginning I used Open64, a Fortran compiler and source2source transformer written in C++ for the work, but one day I couldn't take it anymore and started writing a Fortran parser and pretty printer in Haskell instead. Things have been a bit more fun since then but I'd be happy to get rid of Fortran too. Unfortunately transforming Fortran is the whole point of the research so I guess I can't do that :)

I've also been toying with an own programming language. I aim to explore what a programming language based on use-once variables may look like and how it can be made more convenient to work with. Hopefully such a language could combine the benefits of functional programming with the straight-forwardness of imperative languages. Maybe I will write more about it at some point.

This is a late update on Gsharp, but better late than never. I have stopped contributing to Gsharp because I think there are now more pressing issues with it than adding more microtonal support. Here is what I got done:

  • A MIDI back-end that uses pitch bend messages to produce microtones.
  • Support for regular temperaments based on size of octave and size of fifth (and size of quartertone)
  • Access to this functionality from the GUI through CLIM commands.

Additionally Christophe Rhodes added quartertone glyphs which work well with my midi playback. This proves that the infrastructure support for microtones is now there. All that is lacking is the glyphs. But for now I think Gsharp has more important things that need to be worked on so I am stepping back until Gsharp has matured a little more.

I am now looking forward to delving into some Haskell hacking! I am hoping to get better at Haskell by hacking on the GHC compiler itself. Why? Because learning Haskell for the past few years I have come to think Haskell is the most interesting thing going on in CS right now. I vainly hope that in the near future (I will get my bachelor's degree in CS this spring if everything goes right) I will be able to work with Haskell or do research on/with it.

I have got basic microtonal support working in gsharp, but it is not connected to the GUI yet. In the process I discovered a handful of bugs in the midi package and I have submitted them to the maintainers. It turned out that Christophe Rhodes (one of the gsharp devs) is the main maintainer of it. Once the midi package has been updated and if other gsharp devs are okay with my code I will commit it to CVS.

It has been a pleasure to work in common lisp. I could hotswap code without restarting the application, test things in the REPL, and the full numeric tower simplified my code in an unexpected manner. I had originally planned to have one class for equal temperaments and one class for linear temperaments for precision reasons, but the rational number support and the numeric tower made the equal temperament class superfluous!

I'm continuing to dig into the Gsharp code, especially the buffer classes and the midi back-end. I found a little bug in the midi library used by Gsharp and emailed the university group that maintains it about whom to submit the bug-fix to.

I also found a small redundancy in the Gsharp code and I expect I will find more things as I wade through the code, so I am going to request write access to the Gsharp CVS repository once the mail server starts working again. It appears to have been down for the past few days and for this reason I haven't been able to join the Gsharp mailing lists either.

I'm posting my first blog entry! Here's why:

I want to add some microtonal support to GSharp and I talked about it with one of its developers, Christophe Rhodes (Xof on #lisp on He was very positive and helpful and suggested that I blog about my progress. So here I am.

I intend to first add support for simple temperaments in the midi back-end. By simple, I mean temperaments for which no accidentals beyond sharps and flats are needed.

If that goes well I may start adding some sagittal accidentals to support more temperaments.


Others have certified magnusjonsson as follows:

  • crhodes certified magnusjonsson as Journeyer

[ Certification disabled because you're not logged in. ]

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page