Re: Libification project (SoC)
- From
- Steve Frécinaux <nudrema@gmail.com>
- Date
- Mar 16, 2007, 18:22 UTC
- Message-ID
- <1174069353.2599.13.camel@mejai>
- In-Reply-To
- <alpine.LFD.0.83.0703161218140.5518@xanadu.home>
On Fri, 2007-03-16 at 12:26 -0400, Nicolas Pitre wrote:
> Sure. But the output from an executable is a damn good abstraction and > the executable itself is an impenetrable boundary. Anything can change > (and did change) underneath.
Strictly speaking, you can use opaque structures for commits and so on (so that the outside world will only ever see a pointer), and use some getter/setters for commonly used stuffs (like datum, title, content).
Also, I guess what people would expect from a C library is roughly the same as for the current plumbing... just easier to use from another program. It doesn't need a low-level access to data structure (most applications would be to interact with an existing repo or to store data for a third-party software, something that is high-level) and I don't think such an opaque API would be a huge constraint as soon as you keep the Object/Index/Tree/Commit/etc basic opaque structs.