Re: [PATCH] build: get rid of the notion of a git library
- From
Felipe Contreras <felipe.contreras@gmail.com>
- Date
- Jun 11, 2013, 17:41 UTC
- Message-ID
- <CAMP44s02PqGFNmrGEcJVT6xcQHx8k4NYqJ_TtOTUEY8XHPj0BA@mail.gmail.com>
- In-Reply-To
- <7vtxl4blht.fsf@alter.siamese.dyndns.org>
On Tue, Jun 11, 2013 at 12:33 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 17 quoted lines
> Felipe Contreras <felipe.contreras@gmail.com> writes: > >>> - There may be pieces of usefully reusable code buried in >>> builtin/*.o; >>> >>> - By definition, any code (piece of data or function definition) in >>> builtin/*.o cannot be used in standalone binaries, because all of >>> builtin/*.o expect to link with git.o and expect their cmd_foo() >>> getting called from main in it; >>> >>> - By moving the useful reusable pieces ont of builtin/*.o and >>> adding them to libgit.a, these pieces become usable from >>> standalone binaries as well. >> >> What if these reusable pieces should not be used by standalone binaries? > > I am not sure what you mean. A piece is either reusable or not.
It can be reusable for A, but not for B. A being the 'git' binary, B being other standalone binaries.
Show 10 quoted lines
>> But this doesn't answer the question; what about code that is shared >> between builtins, but cannot be used by standalone programs? > > Again, I do not know what you mean by "cannot" here. My tentative > answer to that question is "the eventual goal should be not to have > any code in that class, and that is a reasonable goal we can achieve > once we refactor what ought to be reusable out of builtin/*.o". > > What are the examples you have in mind, code that we want to forbid > standalone from using?
init_copy_notes_for_rewrite(). Nothing outside the 'git' binary would need that. If you disagree, show me an example.
-- Felipe Contreras