views:

267

answers:

2

Every time I download SQLite, I come across the fact that they provide several different versions of their source code, which is something I've actually never seen any other project do. And more so they provide Amalgamations of Source, that kind of merge all their files into just 3 files. What's the reason for this? Is it just compilation speed? Or are there some really good reasons for it? Do other projects use Amalgamations of source code?

+2  A: 

It's done to make incorporation into existing projects simpler. Add one .h and one .c to your project, and you have the full SQLite engine.

I appreciate it. It's one less thing I have to worry about.

gbrandt
thats another way to look at it.
Robert Gould
"It's one less thing I have to worry about." -- That is until there's a security flaw (or other serious bug) discovered in SQLite; then *their* bug becomes *your* problem.
Dan Moulding
+6  A: 

As stated directly on their page about amalgamation

In addition to making SQLite easier to incorporate into other projects, the amalgamation also makes it run faster. Many compilers are able to do additional optimizations on code when it is contained with in a single translation unit such as it is in the amalgamation. We have measured performance improvements of between 5 and 10% when we use the amalgamation to compile SQLite rather than individual source files. The downside of this is that the additional optimizations often take the form of function inlining which tends to make the size of the resulting binary image larger.

I myself see's the incorporation into other projects the greatest benefit. It simply makes it much much easier to compile. No build script mess and whatever else follows from having a large collection of source files.

Zuu
Thanks! Didn't notice they had an about page
Robert Gould
You're welcome :)
Zuu