The POCO C++ Libraries Blog

Poco 1.3.0b1

Filed under: News by peter at 17:27

A first beta of the upcoming Poco 1.3 release is available for download.

Release Notes:


– added HashMap, HashSet classes
– added Poco::Tuple
– added AbstractCache::getAllKeys(), improved performance of the get operation
– fixed AbstractCache::size() to do cache replacement before returning the size
– added additional match() method to RegularExpression and documented the fact that the simple
match() method internally sets RE_ANCHORED and RE_NOTEMPTY.
– added ExpirationDecorator template. Decorates data types so that they can be used with UniqueExpireCaches
– added operator ! to AutoPtr and SharedPtr
– Buffer uses std::size_t instead of int
– Exception::what() now returns exception name instead of message
– added poco_ndc_dbg() macro (same as poco_ndc(), but only enabled in debug builds)
– added Environment::get(name, defaultValue);
– Foundation.h now includes Config.h at the very beginning.
– added replace() and replaceInPlace() to Poco/String.h
– added AutoPtr::assign() and SharedPtr::assign()
– added operator () to AbstractEvent
– gcc Makefiles now strip release builds
– Void now has a == and != operator

  1. The sources will be in the SVN trunk shortly.

    Comment by guenter on November 17, 2006, 18:09

  2. No word on Poco Data? I am looking foward to it.


    Comment by Tim on November 18, 2006, 02:16

  3. Tim:

    PocoData is still incubating in the sandbox. Curently, there are SQLite and ODBC connectors (former tested on windows only). Obviously, this is not yet a release-grade material, but you are more than welcome to play with it and give feedback, suggestions or report any potential problems.
    Newly introduced Foundation::Tuple provides a solid ground for some useful additions such as Data::Recordset.
    As usual, the amount of available time is the most significant obstacle to everything, so if there is anyone out there willing to donate some time by testing ODBC connector on any *NIX or developing a native connector (PostgreSQL, MySQL, …) it would be much appreciated.


    Comment by alex on November 18, 2006, 17:58

  4. Alex,
    I am curious about progress on Molto; A Poco based servlet engine that you mentioned a few months ago. If you need tester I am wiling and ready. I can’t help out much with code however because I don’t consider myself a c++ guru like you folks.
    I don’t mind the absence of database access if you haven’t sorted this out. I can always mix with the excellent libray by Sergey ( OTL ).


    Comment by Paschal on November 19, 2006, 03:46

  5. Paschal:

    Unfortunately, Molto has been on the back burner for a looong time (I still have to remove ancient namespace macros :-/ ). I had multiple inquiries on it recently and I will seriously try to push the code out within the next week or two. It will definitely not be a release, but it will compile and be usable. Stay tuned …


    Comment by alex on November 19, 2006, 14:19

  6. I tried to build with VS2005 in WinXP, either with the IDE or your bat file I got a bunch of link errors,
    “LINK : fatal error LNK1181: cannot open input file ‘PocoFoundation.lib'”
    How can I solve this problem?

    Your library seems s quite interesting to me, I am eager to try it.


    Comment by tom on November 23, 2006, 05:59

  7. Hi Tom,
    glad you found our library. The link error you mentioned didn’t occur in our test environment, so
    to be able to help you, I need a bit more information:
    – Did you read the Build tutorial at ?
    – Do you use the p drive mapping? (one possible error is that the project that fails links to PocoFoundation via an absolute path (they should be relative though))
    – What is the first project that gives you that error?
    – Does the debug build of that project works (ie PocoFoundationd.lib is found)
    – Does poco\lib contain a PocoFoundation.lib?
    – Does Foundation build in release shared mode in the IDE? (it’s quite easy to overlook an error in the bat file)

    Hope we can pin down that error 🙂

    Comment by peter on November 23, 2006, 09:14

  8. I just found the cause. the build would fail if it’s run from a path which contains any space(‘ ‘) inside it.

    I guess you should put all the path you refer to in your script inside a pair of quotes, as is usually recommended in Windows.

    Comment by tom on November 23, 2006, 10:02

  9. Please can you provide static builds as well? Sometimes it makes sense to compile statically to minimize the number of files when deploying simple apps. I have tried unsuccessfully to create static libs may be just instructions on how to do this would be helpful.


    Comment by paschal on November 23, 2006, 17:57

  10. So here is a rough guideline.
    If you encounter problems,
    simply mail me or post in the forum.

    Open Foundation_vs80.sln
    Go the Configuration Manager and create a new debug_static config. Use debug_shared for the defaults.
    Now update the properties of the debug_static configuration:
    – Common: switch from create dll to static library. Be sure to press Apply!
    Change the output dirs from .\obj\debug_shared to .\obj\debug_static
    – C/C++:
    – Preprocessor: remove _USRDLL, Foundation_EXPORTS (also remove POCO_DLL if there)
    – Library: set output to ..\lib\PocoFoundationmtd.lib

    repeat for release build, just use release_shared and ..\lib\PocoFoundationmt.lib

    applications are simpler: add POCO_STATIC and link against the mt*.lib versions

    and also repeat for CppUnit, Net, XML, Util too, and
    testsuites and samples…

    So it’s actually quite a lot of work and we are currently lacking the time to do it.
    But if you manage to do it, we will gladly support you and integrate your work
    back in the final 1.3 release.

    PS: YOu must update WinTestRunner.h to:
    #if !defined(POCO_STATIC)
    #if defined(WinTestRunner_EXPORTS)
    #define WinTestRunner_API __declspec(dllexport)
    #define WinTestRunner_API __declspec(dllimport)
    #define WinTestRunner_API

    If you get link errors to _GetAdaptersInfo, add iphlpapi.lib.
    For network code add ws2_32.lib.
    for __imp__timeGetTime add winmm.lib

    Comment by peter on November 23, 2006, 21:07

  11. Having been primed for poco being DLL only by some old docs, I was happily surprised to open the solution file and found debug_static and release_static configurations already there.

    Just tacking this onto the end of this thread so that folks stumbling across this will know that this isn’t an issue any longer. (compiling 1.3.2 right now) ^_^

    Comment by Ivo Roper on June 11, 2008, 04:31

RSS RSS feed for comments on this post. TrackBack URI

Leave a comment