This is the first release for C++14. It includes a preview of a first version of the Fost 5 threading library, but fost-windows has been removed due to continued in-accessibility to a compiler and test platform. Old versions of Boost should probably be rebuilt so that they will be built with C++14.
Related Articles
All of the changes for this switch are going to take a bit of time to settle down. So far we are using C++14 for Android and Linux projects based on this release, but the packaging of it is probably still a bit off in some of the -dev projects.
We've also restricted the Boost versions that we're supporting to 1.55 through 1.58. And Android library is currently using 1.56.
Building on Linux
git clone --branch=4.15.06.44953 --recursive [email protected]:KayEss/fost-hello.git cd fost-hello Boost/build 58 0 Boost/install 58 0 hello/compile dist/bin/hello-world-d
Download locations
Applications
- beanbag — Stand alone transactional JSON database server — [email protected]:KayEss/beanbag.git
- beanbag-seed — Seed project for giving you a starting point to develop web applications using Beanbag — [email protected]:KayEss/beanbag-seed.git
- fost-hello — Sample seed project — [email protected]:KayEss/fost-hello.git
- mengmon — Stand alone web server — [email protected]:KayEss/mengmom.git
Libraries
- f5-threading — Preview of the first Fost 5 library which includes help for threading.
- fost-aws — Amazon AWS and OpenStack — [email protected]:KayEss/fost-aws.git
- fost-android — Eclipse project for Android that allows Fost 4 and Beanbags to be used on mobile devices — [email protected]:KayEss/fost-android.git
- fost-android-ndk — The native code for Android. Includes required parts of Boost configured to use the standard Android build system.
- fost-beanbag — Transactional JSON database — [email protected]:KayEss/fost-beanbag.git
- fost-base — Build system and core libraries — [email protected]:KayEss/fost-base.git
- fost-internet — Internet protocols, servers & clients — [email protected]:KayEss/fost-internet.git
- fost-meta — All libraries in one wrapper — [email protected]:KayEss/fost-meta.git
- fost-orm — Object/Relational mapping — [email protected]:KayEss/fost-orm.git
- fost-postgres — PostgreSQL — [email protected]:KayEss/fost-postgres.git
- fost-py — Python (2.x) bindings — [email protected]:KayEss/fost-py.git
- fost-web — Web server libraries — [email protected]:KayEss/fost-web.git
Detailed change log
fost-aws
- Remove explicit types to get rid of auto_ptr uses.
fost-base
- Use
std::rethrow_exception
to move an exception between threads. - Added variadic versions of
fostlib::push_back
andfostlib::insert
. - Add coercions for ascii_string and utf8_string to json.
- We need libatomic if we're using gcc++ (or clang) for many programs so just have it included.
- Pretty up some common log patterns when using colour output.
- Added colour options to the
stdout
logger. - Remove the
FOST_HAS_MOVE
define because with C++14 we don't need it. - Test file names can now end in
.tests.cpp
as well as-tests.cpp
. - Removed internal uses of
boost::scoped_ptr
. - Add SHA256 to the crypto wrappers.
- Replace all uses of
boost::filesystem::wpath
withpath
. - When building an executable make sure that we pull in at least everything for fost-core.
- Fix a build error with Boost 1.58.0.
- Switch to C++14.
- Improve the exception information where a
jcursor::insert
fails due to existing data at the requested key.
fost-internet
- Remove all uses of auto_ptr. Replace some with move semantics, others with unique_ptr.
- Fixed up the tests to use the new service API on the network connections.
- Changed the way that Boost ASIO IO services are used so that server accept sockets can be serviced totally independantly. This is an ugly workaround for the problem, but does at least cause all requests to be properly serviced.
- Allow apostrophes in the
fostlib::url::filepath_string
strings.
fost-orm
- Add a pre-commit mechanism to the
jsondb::local
. - Make the JSON DB local transaction movable.
- Add a
data
member to the local JSON transaction so all of the data can be fetched. - Add JSON database post-commit hooks to augement the transactions ones we already had.
- Fix a build error with Boost 1.58.0.
- Switch to C++14 and remove
auto_ptr
s.
fost-py
- Strip out auto_ptr.
- Add a new test so we can check the version of Python we're using.
- Alter the fpython tests so they don't rebuild the host for each one.
- Updated to C++14.