4 ms·
An alternative view of this amalgamation: https://sabotage-linux.github.io/blog/1/ https://sabotage-linux.github.io/blog/1/
by aninteger 5y ago
An alternative view of this amalgamation: https://sabotage-linux.github.io/blog/1/ https://sabotage-linux.github.io/blog/1/
- ghoward 5y agoShameless plug: I did some performance testing to test the Sabotage Linux post. [1] It turns out (or at least my benchmarks said) that link-time optimization is better in almost every case. [1]: https://gavinhoward.com/2019/08/link-time-optimization-vs-single-file-code/ https://gavinhoward.com/2019/08/link-time-optimization-vs-si...
- Arcsech 5y agoThe author of that article is overly focused on the Linux (or similar) deployment model, which most definitely does not cover all uses of SQLite. The argument against 2) also depends on a feature available in specific versions of specific compilers, which again, a piece of software that supports as many use cases as SQLite can’t depend on. Even in that model, I’ve long found that the arguments against 1) are weak in practice (especially with a well-designed and maintained lib like SQLite) versus the additional complexity added by depending on dynamically linked libraries.
- joshka 5y agoThe article has great points, delivered with enough punchiness for them not to be taken constructively.
- smitty1e 5y ago25 Sep 2013 I'd say that it's of historical interest at best. The amalgamation exists to simplify matters.
- adamrezich 5y agoseems like the tl;dr is: the amalgamation is stupid because 1.) it takes longer to build than it would if it wasn't an amalgamation and 2.) zip files instead of tarballs is somehow discriminatory against linux users(?). it's as though the author missed the entire point of the amalgamation to begin with, i.e. so you can easily embed sqlite directly into your application, in scenarios where your reason for doing so outweighs the cons of foregoing using shared libraries (i.e. embedded). basically, linux guy is disproportionately outraged that the sqlite amalgamation takes a minute to build because of intentional choices made to simplify cross-platform and "incorporated" builds instead of just doing everything The Linux Way. it's not difficult to see why the amalgamation exists given C's lack of a well-defined cross-platform build system and the massively wide array of platforms and situations sqlite is used in production in.
- karmakaze 5y agoI wouldn't put up with 2min build times if I could avoid it. There are incremental compile/link options though, right? For that matter, I could also use the < 32K source-line files instead of the all-in-one if it saved me time.