On May 23, 2019, at 4:28 PM, R Smith <ryansmit...@gmail.com> wrote:
> 
> it is very easy to add things to the base distro, but extremely hard to 
> impossible to ever take it away again, which means one should only ever "add" 
> with great caution.

Easy fix: -DSQLITE_OMIT_EXTENDED_MATH_LIBRARY

Include it by default, but let those on resource-constrained platforms yank it 
back out.

I think the biggest obstacle here is this: *which* math library do we use?

If SQLite’s math is based on the platform math library (e.g. libm.so) then it 
may substantially change behavior across platforms, which goes against one of 
the SQLite guarantees: your DB file behaves the same way everywhere.

If it’s a custom math library, that’ll take a lot of work to get right, and 
once done, then it’s “bloat” relative to the platform math library.

That can in turn be solved with more ifdefs (-DSQLITE_PLATFORM_MATH) but the 
way off-by-default options are usually handled in SQLite is that they aren’t 
checked as part of the test suites, so there are option combinations that don’t 
build a working library, much less give one that’s had all of the options 
cross-tested against each other.

I understand why that’s the case: the alternative is a combinatoric explosion 
where the number of test configurations is 2^N * M where N is the number of 
Boolean options and M is the number of the *non*-Boolean option combinations 
that need to be tested.  16 Boolean options is 64k runs of the test suite to 
cross-check every option against all possible combinations of the other 15 
options!
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to