Hi, Stuart Henderson wrote on Wed, Sep 09, 2015 at 05:51:18PM +0100: > On 2015/09/09 11:47, Amit Kulkarni wrote:
>> AFAIK, the original rationale for importing sqlite into base was for >> storing the database table (INDEX?) for building ports using dpb. It >> can be switched to a port module with some pains. > mandoc uses it. True, or more precisely, man(1), apropos(1), whatis(1), and makewhatis(8) use it, mandoc(1) itself does not. That definitely wasn't the original rationale to import sqlite, though. If i remember the discussion back then correctly, people said: 1. It will be useful for all kinds of cool stuff in base. Once we have it, people will use it at various places. 2. Code quality is not too bad. 3. Code size is not excessive. 4. The chief developer is very serious and cooperative. I don't remember anybody challenging any of that at that time, and i don't remember anybody ever challenging point 4 at any time. Once it was in, Kristaps got excited about point 1 above and used it to replace db(3), and indeed, that solved some minor problems (for example with byte order and races) and made it marginally easier to integrate and polish some cool new features. When i started work to clean up mandoc-sqlite integration during t2k13, mostly motivated by the perspective of using a database concept and implementation less dated than db(3), i didn't question points 2 and 3 above, i neglected to consider whether points 2, 3, and 4 are sufficient reasons that depending on it does no harm, and i neglected to do any kind of code audit or review of development speed, goals, and practices. Since about s2k14, i bitterly rue that neglect. I definitely wouldn't use sqlite again for the mandoc toolbox. The project goals are simply and plainly incompatible. Sqlite is too much about database featurism, accepting considerable bloat into the codebase, while mandoc needs to focus on minimalism and security and is only harmed by advanced database features and in particular by performance optimizations complicating the code. That said, i'm considering half a dozen different options to get rid of the mandoc dependency on sqlite. But all of them imply considerable effort and/or considerable loss of features. Of course, features lost might get restored later if it comes to that. No definite plans exist yet. Maybe, the dependency on sqlite might even remain. Who knows at this point. Note that i'm just saying this publicly to avoid misunderstandings about the relationship between mandoc and sqlite. I will not participate in a public discussion of these matters, but will discuss this only among OpenBSD developers, and maybe privately with package maintainers in other operating systems, for example, but no necessarily limited to, FreeBSD, pkgsrc, illumos, and Alpine, Void, and Crux Linux. Yours, Ingo