Git written entirely in Smalltalk?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Git written entirely in Smalltalk?

Ben Coman
Max,

The other say I was contemplating having a git implementation written
entirely in Pharo, and today I bumped into something from your history
(~2011?) [1]  indicating this might have been attempted.   I'm curious
why this was abandoned in favour of libgit bindings.

[1] http://scg.unibe.ch/wiki/students/maxleske

cheers -ben

Reply | Threaded
Open this post in threaded view
|

Re: Git written entirely in Smalltalk?

Max Leske
:)

It wasn’t a complete implementation but entirely written in Pharo, yes. The reason I decided to go for bindings is that Git is quite big. There are many things to implement and there’s a lot of mystery when it comes to implementation details. Using bindings reduces the cost of maintenance a lot, since the burden of updating and fixing stuff is no longer on me.

Additionally, performance was never really good with my solution, partly due to the VM of course (FFI wasn’t really an option for me back then, so all the calculations were done in the image). And finally, Git has a rather unconventional way of handling memory: allocate until it breaks. Since we’re quite constrained memory wise in Pharo, I would run into out of memory situations pretty quickly. Handing the memory management off to the library makes things a lot easier.

BTW, I based my project on the work of Tony Garnock-Jones (from NZ) who started work on a Git implementation for Squeak (but then gave up the project).

Cheers,
Max

> On 24 Feb 2016, at 12:30, Ben Coman <[hidden email]> wrote:
>
> Max,
>
> The other say I was contemplating having a git implementation written
> entirely in Pharo, and today I bumped into something from your history
> (~2011?) [1]  indicating this might have been attempted.   I'm curious
> why this was abandoned in favour of libgit bindings.
>
> [1] http://scg.unibe.ch/wiki/students/maxleske
>
> cheers -ben
>


Reply | Threaded
Open this post in threaded view
|

Re: Git written entirely in Smalltalk?

Damien Cassou-2
In reply to this post by Ben Coman
Ben Coman <[hidden email]> writes:

> The other say I was contemplating having a git implementation written
> entirely in Pharo, and today I bumped into something from your history
> (~2011?) [1]  indicating this might have been attempted.   I'm curious
> why this was abandoned in favour of libgit bindings.

Max did most of the work IIRC. Then Camillo and I tried to help. But
this is difficult to do because the git protocol is complex and we had
not much time to dive into it. We also didn't find good documentation.

--
Damien Cassou
http://damiencassou.seasidehosting.st

"Success is the ability to go from one failure to another without
losing enthusiasm." --Winston Churchill

Reply | Threaded
Open this post in threaded view
|

Re: Git written entirely in Smalltalk?

Richard Sargent
Administrator
In reply to this post by Ben Coman
Ben Coman wrote
Max,

The other say I was contemplating having a git implementation written
entirely in Pharo, and today I bumped into something from your history
(~2011?) [1]  indicating this might have been attempted.   I'm curious
why this was abandoned in favour of libgit bindings.
I have seen a lot of "not invented here" work in the Smalltalk world over the last 25 years. That in itself is enough reason to not reimplement everything in native Smalltalk.

There are whole communities out there who specialize in one esoteric piece of technology. You can stand on their shoulders or you can copy their work. One of those appeals a lot more to me than the other.

When we bind to someone else's work, their updates are almost free to us. Otherwise, we tie up a lot of our own resources replicating their work and not advancing our own.