[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

possible soc project: accessing git datastores from guile

From: Andy Wingo
Subject: possible soc project: accessing git datastores from guile
Date: Mon, 05 Apr 2010 20:56:58 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.92 (gnu/linux)


Crossposting from

I know your problem: you are a student, and the Google Summer of Code
has started, but you haven't found a project worth doing. Or, perhaps
you have submitted a proposal already, but you're not psyched about it.
You really wanted to munge bytes on disk using Scheme. I totally dig it.

That is why you should make a proposal to make a library for accessing
Git datastores from Guile. Great idea, right? You probably had it too!

The scope of the work would be to write the equivalent of Git's
"plumbing" layer in Scheme. The first step would be to be able to git
cat-file any object in the database. Then you would need to be able to
insert into the database, via git-hash-object, and then to be able to
update a ref with git-update-ref.

At the same time, all of this functionality should be available on the
command line, via something like a gilt executable: gilt cat-file foo,
for example.

The reason why this work is interesting is N-fold:

    * Having a Git library will be nice. Indeed a number of software
      projects use Git as a database.

    * Having a Git implementation that can be linked to Guile will be
      good too. (Guile is LGPLv3+, Git is GPLv2 only.)

    * It will be interesting to see how fast a Scheme-only solution will
      be. Raw SHA1 calculation will probably still have to be done in C

    * Finally it's going to be total fun! It's a good scope for an SOC
      project: you can implement as far as you get, and you learn skills
      like how to do real-world development in Scheme, producing fast

Interested? Time is running out. 9 April appears to be the deadline.
Requirements are a proficiency with Git, and you should implement a
command-line Guile program that returns the MD5 or SHA-1 hash of the
file given as its argument. It's OK to copy the MD5 or SHA-1
implementation from elsewhere, but document that; I just want to know if
you can actually wire up the pieces correctly, and beyond that, is your
Scheme in good taste.

So, should this thing be up your alley, reply to this mail, or visit
#guile during the European daytime, and let's talk!


reply via email to

[Prev in Thread] Current Thread [Next in Thread]