[filesystem, regex, asio] These three libraries successfully ported to Windows Phone 8.1

After the helpful advice I received in this mailing list and other forums, I'm happy to report that the three Boost libraries, filesystem, regex, and asio have been successfully ported to Windows Phone 8.1. Our corporate product is back up and running on Windows Phone 8.1 devices. I assume there are others who will be happy to download the new Boost code for use in their WP 8.1 apps. These libraries will hopefully join those already ported by Steven Gates of Microsoft [http://blogs.msdn.com/b/vcblog/archive/2014/07/18/using-boost-libraries-in-w...]. I am therefore beginning the process of verifying the port using the Boost regression test suite (I have to decide how to get them to run under Windows Phone 8.1). When the code has passed the regression suite I will issue a pull request against the GitHub repository. Thanks again to everyone in this list for their helpful comments and suggestions, Moshe Rubin Technology Manager Hyperlync Technologies Ltd. Jerusalem, Israel

On 26 Jan 2015 at 10:53, Moshe Rubin wrote:
When the code has passed the regression suite I will issue a pull request against the GitHub repository.
Some tips for creating a successful pull request: 1. Avoid #ifdef spam. Write thunk emulations of missing APIs where possible. Here's an example for GetTickCount64(): https://github.com/boostorg/thread/blob/master/include/boost/thread/wi n32/thread_primitives.hpp#L290. Remember Boost still supports Windows XP and exclusively targets an XP level Win32 API. Use GetProcAddress for newer APIs. 2. Avoid using macros to implement functionality. 3. Don't forget to modify the documentation where needed to support the changes. 4. It might sound obvious, but make sure the unit test suite still passes on Windows XP in default build settings on all of MSVC-8, mingw32 and mingw-w64. You'd be surprised how often pull requests don't because they use some Vista or later API, or an API not supported by mingw32. If a pull request doesn't instantly go all green on all supported platforms it tends to not be merged and get put off till much later (sometimes forever). Right now cygwin support is broken at least in thread, but other libraries are probably a lot better, so test that too. 5. Consider additional unit tests where appropriate. In this situation I'd doubt you'd need them. And thank you very much for the improved WinRT support. Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/

On 26.01.2015 16:51, Niall Douglas wrote:
On 26 Jan 2015 at 10:53, Moshe Rubin wrote:
When the code has passed the regression suite I will issue a pull request against the GitHub repository. Some tips for creating a successful pull request:
1. Avoid #ifdef spam. Write thunk emulations of missing APIs where possible. Here's an example for GetTickCount64(): https://github.com/boostorg/thread/blob/master/include/boost/thread/wi n32/thread_primitives.hpp#L290. Remember Boost still supports Windows XP and exclusively targets an XP level Win32 API. Use GetProcAddress for newer APIs. That's not actually possible for WinPhone apps. You need a library handle to call GetProcAddress, and LoadLibrary(Ex) and GetModuleHandle are both forbidden to Store apps. Only LoadPackagedLibrary is allowed, and that is itself a Windows 8-only function (and in fact a Store-only function).
Sebastian

On 26 Jan 2015 at 18:34, Sebastian Redl wrote:
1. Avoid #ifdef spam. Write thunk emulations of missing APIs where possible. Here's an example for GetTickCount64(): https://github.com/boostorg/thread/blob/master/include/boost/thread/wi n32/thread_primitives.hpp#L290. Remember Boost still supports Windows XP and exclusively targets an XP level Win32 API. Use GetProcAddress for newer APIs. That's not actually possible for WinPhone apps. You need a library handle to call GetProcAddress, and LoadLibrary(Ex) and GetModuleHandle are both forbidden to Store apps. Only LoadPackagedLibrary is allowed, and that is itself a Windows 8-only function (and in fact a Store-only function).
I am aware of that. I was referring to emulating Win8/Phone functionality on WinXP. Sorry if I was unclear. Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/

On January 26, 2015 10:51:23 AM EST, Niall Douglas
Here's an example for GetTickCount64(): https://github.com/boostorg/thread/blob/master/include/boost/thread/win32/th....
Isn't BOOST_PLAT_WINDOWS_RUNTIME misspelled? ___ Rob (Sent from my portable computation engine)

On 27 Jan 2015 at 4:48, Rob Stewart wrote:
On January 26, 2015 10:51:23 AM EST, Niall Douglas
wrote: Here's an example for GetTickCount64(): https://github.com/boostorg/thread/blob/master/include/boost/thread/win32/th....
Isn't BOOST_PLAT_WINDOWS_RUNTIME misspelled?
It could be. However its build CI test is all green, which suggests it is correct. https://ci.nedprod.com/view/Boost%20Thread-Expected-Permit/job/Boost.T hread%20Build/CPPSTD=c++14,CXX=msvc-11.0,LINKTYPE=shared,label=winphon e8/ Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/
participants (4)
-
Moshe Rubin
-
Niall Douglas
-
Rob Stewart
-
Sebastian Redl