:)
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
>