Pages

Thursday 24 May 2012

HadesMem v2 Work Has Started

I have finally returned to working on HadesMem, and at long last I am starting work on v2. This means I will hopefully be able to address some of the long-standing requests that require breaking changes to fix. Because of this I recommend you continue to use v1.6.0 until trunk is more stable. For the time being, trunk is going to be a bit of a minefield, but it will be worth it in the end. ;)

Thursday 10 May 2012

Boost.Signals Compile Error under VC11 Developer Preview

To keep with the theme of providing patches for issues in Boost I have discovered which are yet to be fixed upstream, I have one final patch which addresses a compilation error in Boost.Signals under VC11.

This patch is extremely trivial, as there is already MSVC specific workaround code in place for this particular error, however it only covers up to VC10. The patch simply bumps the version number to that of VC11.

Boost.Interprocess under GCC via MinGW-w64 Pedantic Warnings

When compiling projects consuming Boost.Interprocess for Windows using GCC via MinGW-w64, if you have both pedantic warnings and warnings as errors enabled, then a warning is generated in Boost.Interprocess that is impossible to disable via the GCC diagnostic pragmas.

I am providing a quick and dirty patch to work around that. Be warned however that the header in question is a mess, and full of 'suspect' code. This patch does nothing to address that, it simply works around the warning in the simplest manner I could see (another alternative would be to perform the cast responsible for the error with a union instead of a reinterpret_cast, however that just adds to the standards conformance violations).

Monday 7 May 2012

The missing blog Part #10b?

Recently I have been working on a project relating to keyboards and the translation of keyboard input to its associated character output. Basically, I want to cache all possible input combinations so I can look them up at runtime without having to call the ToUnicodeEx API with potentially 'tainted' state, which was causing problems with dead keys when I called it from a keyboard hook (or other similar mechanisms).

I have been working on this with the help of Michael Kaplan's blog and his amazingly detailed and helpful series Getting all you can out of a keyboard layout. So far I have just been porting the code to C++, one step in the series at a time, to gain a better understanding of how everything works. When I reached part 10a however I noticed that there seemed to be a missing part 10b. I raised this with Mr Kaplan on his blog and he has graciously agreed to write the final piece of the series.

No code from me yet (I do wish however to eventually post my port of the code to C++), but I wanted to give a shout-out to Mr Kaplan and encourage others to check out his awesome blog. If you're interested in i18n/l10n, languages, keyboards, etc you will probably find yourself going back and reading years worth of archives like I did.