
Writing about C++, Programming, Fost 5, the web, Thailand and anything else that catches my attention—with some photos thrown in
There is a new library now, Makham, which is at the moment a basic coroutines library offering asynchronous task execution with ties through futures to non-coroutine code. This sits on top of the coroutines TS and is currently only usable from Clang.
There has also been more progress towards being able to move to immutable shared strings and away from the old fostlib::string interface, with more changes coming. A small change to the JSON parser has been shipped that gives a considerable performance boost (up to 30%) in some circumstances.
There is a new HTTP client library that supports testing through setting expectations which is part of the fost-internet library. Client code in the rest of the libraries will be migrated to it, which will improve testing capabilities for Fostgres and Odin.
You should install Boost development packages using your package manager or brew to safe you from having to build them.
git clone --branch=5.20.03.45095 --recursive git@github.com:hotkit/fost-hello.git cd fost-hello mkdir build.tmp cd build.tmp cmake -G Ninja .. -DCMAKE_INSTALL_PREFIX=../dist ninja install/strip export LD_LIBRARY_PATH=../dist/lib ../dist/bin/hello
On the Mac you will need to set DYLD_LIBRARY_PATH before running hello
export DYLD_LIBRARY_PATH=../dist/lib ../dist/bin/hello
json can now be constructed from u16 literals.std and boost shared_ptrs.digester interface to take more string types.json store the string directly rather than as a shared_ptr. This is a breaking change on json visitors.parse_error.jcursor API so it can mutate json more efficiently.-e (print arguments/environment) support from command line.fostgres-test.testserver.cookies to fostgres-test.rm-path to test scripts so we can remove JSON from variable values.tsmap::alter added so a found member can be changed in-situ.tsmap::add_if_not_found miss lambda can now mutate the found item.A very small release this time that just adds server verification to TLS/SSL connections. This is now enabled by default on the HTTP user agent.
Next time though there will be some libraries. Watch this space!
You should install Boost development packages using your package manager or brew to safe you from having to build them.
git clone --branch=5.19.12.45093 --recursive git@github.com:hotkit/fost-hello.git cd fost-hello mkdir build.tmp cd build.tmp cmake -G Ninja .. -DCMAKE_INSTALL_PREFIX=../dist ninja install/strip export LD_LIBRARY_PATH=../dist/lib ../dist/bin/hello
On the Mac you will need to set DYLD_LIBRARY_PATH before running hello
export DYLD_LIBRARY_PATH=../dist/lib ../dist/bin/hello
vstring header.All of the code has now been moved to a new home on GitHub and a couple of the libraries have had their names tweaked. Because of the way GitHub works this should be a completely transparent change.
Applications have for a while been able to use JSON as the configuration format. The problem with JSON for this is that it has very strict format requirements. Now the configuration files use a new “sloppy” JSON parser that allows commas anywhere that whitespace is allowed and also supports C/C++ style comments.
Fostgres will now always trim whitespace from strings before trying to insert them into the database. This should help with some consistency problems. If you don't want to trim the data then put "trim": false into the column configuration.
You should install Boost development packages using your package manager or brew to safe you from having to build them.
git clone --branch=5.19.09.45082 --recursive git@github.com:hotkit/fost-hello.git cd fost-hello mkdir build.tmp cd build.tmp cmake -G Ninja .. -DCMAKE_INSTALL_PREFIX=../dist ninja install/strip export LD_LIBRARY_PATH=../dist/lib ../dist/bin/hello
On the Mac you will need to set DYLD_LIBRARY_PATH before running hello
export DYLD_LIBRARY_PATH=../dist/lib ../dist/bin/hello
nullptr buffers.
f5::u8view.minit will now always try to execute, even if it is not needed.The biggest change this time around is that a large number of APIs have been marked for deprecation. These will be removed after the next tagged release (September), so please take special care with the deprecation notices and update any code.
We are currently working on full UTF-16 and UTF-32 support in f5-cord. Once this lands then we will deprecate a slew more of old string APIs. Our target is still to replace fostlib::string with f5::u8string. It will of course take a while.
Good progress is being with iOS support now. There is a new unit test runner, test-ios, that passes all unit tests and is available to download and build.
We've removed a couple of the applications that were never being updated, beanbag and beanbag-seed.
We will also cut down the scope of the open source part of Odin to remove the application handling aspects. These just cause a complication and we believe that the only use cases are particular to us. Please get in touch if this is not the case.
You should install Boost development packages using your package manager or brew to safe you from having to build them.
git clone --branch=5.18.09.45065 --recursive git@github.com:KayEss/fost-hello.git cd fost-hello mkdir build.tmp cd build.tmp cmake -G Ninja .. -DCMAKE_INSTALL_PREFIX=../dist ninja install/strip export LD_LIBRARY_PATH=../dist/lib ../dist/bin/hello-world-d
On the Mac you will need to set DYLD_LIBRARY_PATH before running hello-world-d
export DYLD_LIBRARY_PATH=../dist/lib ../dist/bin/hello-world-d
substr as the second argument handling doesn't match std::string::substr.std::experimental::optional with std::optionalstd::chrono::system_clockstd::string be explicitly invoked.length members of tagged_string and string.tagged_string that are currently on string.bin/minit back into project.string::length and tagged_string<>::lengthfostlib::test::c_files_folder, describing the root folder tests should use if they need access to the file system.FSL_FORCE_STD_FILESYSTEM switches from boost::filesystem to std::filesystem with names in fostlib::fs.fostlib::tagged_string<T, I>::underlying().fostlib::string::c_str().fostlib::string into an f5::u8string (u8string_transition).RETURNING support to connection's update method.-C option which changes its current directorytext/ Content-Type) are served as UTF8.
We've now finally started the process of porting the fostlib::string implementation to use f5::u8string. A short write up about the design can be found in the repository. There are going to be a lot of new deprecations in the next release and we'll then start to remove the deprecated code after that.
You should install Boost development packages using your package manager or brew to safe you from having to build them.
git clone --branch=5.18.09.45065 --recursive git@github.com:KayEss/fost-hello.git cd fost-hello mkdir build.tmp cd build.tmp cmake -G Ninja .. -DCMAKE_INSTALL_PREFIX=../dist ninja install/strip export LD_LIBRARY_PATH=../dist/lib ../dist/bin/hello-world-d
On the Mac you will need to set DYLD_LIBRARY_PATH before running hello-world-d
export DYLD_LIBRARY_PATH=../dist/lib ../dist/bin/hello-world-d
ends_with on the u8view and u8string.f5::u8stringtest.throw view to help with testing and control.exception.catch for running alternative views when exceptions are thrown.