INN indentation

Julien ÉLIE julien at trigofacile.com
Mon Oct 18 21:58:38 UTC 2021


Hi Russ,

>> It seems like that all inclusions of "clibrary.h", or of both "clibrary.h"
>> and "config.h", should be changed to only one inclusion of
>> "portable/system.h".
>> And "clibrary.h" moved to "portable/system.h".
> 
> I think that's right.

Change done.



> That reminds me that I want to take a moment now that everything is in Git
> and switch the INN build system over to Automake, since I think it would
> get rid of a bunch of maintenance gotchas and chores that currently have
> to be done manually.  It will raise a few questions, though, such as
> whether the additional human-readable information in MANIFEST is useful
> when it's no longer necessary to generate a distribution.

I am unsure people really look at the MANIFEST...
We can get rid of it if no longer useful to pick up the right files to 
include in a release.



>> I think the namespace is ok (I'm not aware of any complaints about it).
>> Unless I am missing something, there isn't any work to do for that task,
>> is it?
> 
> So, the problem with the namespace is that we create a shared library that
> has tons of random functions exported from it that don't share any common
> prefix, and hence sprawl all over the C function namespace.  (Stuff like
> concat, all the buffer_* stuff, etc.  Often they have their own namespace,
> like QIO, but sometimes they don't nad it's not really consistent.

Understood, thanks.



> For a well-behaved shared library, ideally all that stuff should have inn_
> or INN_ prefixes.  But that's a huge pain in the ass to do because it's
> little changes all over the source base, and I'm not sure if it's a good
> use of time.  This is part of why, for example, the Debian packages
> install the libinn shared library out of the normal library search path,
> since it's not entirely a well-behaved shared library.  (Also it doesn't
> have symbol versioning.)
> 
> Another approach rather than rename everything would be to shrink the
> symbols provided by the shared library down considerably to only things
> that make sense for external programs seeking to have API access to INN
> data files, namespace all of those, and then hide all the other symbols.
> This would probably involve creating a separate static library with the
> internal utility code like buffer and linking that with all the
> executables.  This is what I do for other projects with a shared library
> to keep the shared library ABI minimal.  Again, not sure it's worth it,
> and it would break any out-of-tree software that really uses libinn for
> its random utility functions.

Sounds like a great amount of work, with no real direct benefit...



>> Time has come to get rid of "inn/defines.h" at the same time,
>> and just include the necessary headers instead of it.
> 
> Yup, that would be great.

Also done.

-- 
Julien ÉLIE

« Il est difficile de discuter avec des gens qui ne peuvent pas entendre
   et qui ne veulent pas entendre. » (Julius Welhausen)


More information about the inn-workers mailing list