August to November 2010
My "project of the month" this time is definitely the restored OSRI (providers architecture) and a new clear POSIX build for Firebird. These are related features, one could not be done without other, and it was definitely a massive change.
As the result of OSRI we currently have a universal library (called traditionally fbclient), which can load the engine library and, without any other efforts, become the embedded library. The same library is also used by the server to serve remote connections.
New posix build
- has full support for parallel make (-j switch)
- does not compile any module more than once (like it was before with different defines)
- does not need special static binaries (like isql_static), other than gpre_boot
As a result a full FB3 release build on my 4-core AMD box takes just 2.5 minutes (DEV_BUILD is even faster).
It also can (like on Windows) create debug and release binaries at the same time (make Debug/make Release is used), has special tuning for developer mode (./configure --enable-developer) and does not require any changes in Makefile when adding (removing) files to existing projects.
Due to these massive changes, the number of other commits is relatively small:
- Fixed CORE-3116: gsec outputs list of users to stderr instead stdout
- Fixed CORE-3117: After an error in GDS_CLOSE_BLOB() blob handle becomes invalid
- Fixed package version generation for release builds
- Make source tarball build cvs/svn independent
- Fixed CORE-3143: Segmentation fault may occur when user interrupts gstat
- CORE-2639 - Pseudo-table with list of users, available for management to current user
- CORE-3185: Firebird compilation on a box, already running firebird server
- CORE-3148: Analyzed possible performance drawback of Kovalenko's patch
- Fixed performance issues when creating and destroying pools in trunk
- Avoid throwing C++ exceptions from authentication plugins
- Make fb_string's length limit type-dependent
- Fixed CORE-3220: isc_info_svc_get_users returns error message in the result cluster
- Fixed CORE-3212: Error compile 2.5 for FreeBSD
- Improvement CORE-3248: Set unused bytes of varchar values in message buffer to 0
- Fixed CORE-3249: gbak file is not truncated during backup operation
- Fixed CORE-3259: Deadlock and sefgault when processing ctrl-C in user code
- Fixed CORE-3261: Assertion when running restore service
- Fixed posix build in a case when long path is used as $BuildRoot.