-
Notifications
You must be signed in to change notification settings - Fork 62
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mpich pkg, bad library path, compilation fail #186
Comments
Nick, can you clarify which package set is this happening on? I couldn't quite reproduce on 2013Q4/x86_64, and I'm thinking maybe you're playing with the multiarch one? |
Nevermind, was able to reproduce on a newer platform. The fix actually is to not include the /usr/lib/amd64 path at all (no need to add /opt/local/lib/amd64, which won't have anything useful anyway). I'll see to implement this. |
Add test Upstream changes: 1.5.6 (2014-04-14) Bug fixes: Check the last line even if it has no end-of-line. (Issue #273) 1.5.5 (2014-04-10) Bug fixes: Fix regression with E22 checks and inline comments. (Issue #271) 1.5.4 (2014-04-07) Bug fixes: Fix negative offset with E303 before a multi-line docstring. (Issue #269) 1.5.3 (2014-04-04) Bug fixes: Fix wrong offset computation when error is on the last char of a physical line. (Issue #268) 1.5.2 (2014-04-04) Changes: Distribute a universal wheel file. Bug fixes: Report correct line number for E303 with comments. (Issue #60) Do not allow newline after parameter equal. (Issue #252) Fix line number reported for multi-line strings. (Issue #220) Fix false positive E121/E126 with multi-line strings. (Issue #265) Fix E501 not detected in comments with Python 2.5. Fix caret position with --show-source when line contains tabs. 1.5.1 (2014-03-27) Bug fixes: Fix a crash with E125 on multi-line strings. (Issue #263) 1.5 (2014-03-26) Changes: Report E129 instead of E125 for visually indented line with same indent as next logical line. (Issue #126) Report E265 for space before block comment. (Issue #190) Report E713 and E714 when operators not in and is not are recommended. (Issue #236) Allow long lines in multiline strings and comments if they cannot be wrapped. (Issue #224). Optionally disable physical line checks inside multiline strings, using # noqa. (Issue #242) Change text for E121 to report "continuation line under-indented for hanging indent" instead of indentation not being a multiple of 4. Report E131 instead of E121 / E126 if the hanging indent is not consistent within the same continuation block. It helps when error E121 or E126 is in the ignore list. Report E126 instead of E121 when the continuation line is hanging with extra indentation, even if indentation is not a multiple of 4. Bug fixes: Allow the checkers to report errors on empty files. (Issue #240) Fix ignoring too many checks when --select is used with codes declared in a flake8 extension. (Issue #216) Fix regression with multiple brackets. (Issue #214) Fix StyleGuide to parse the local configuration if the keyword argument paths is specified. (Issue #246) Fix a false positive E124 for hanging indent. (Issue #254) Fix a false positive E126 with embedded colon. (Issue #144) Fix a false positive E126 when indenting with tabs. (Issue #204) Fix behaviour when exclude is in the configuration file and the current directory is not the project directory. (Issue #247) The logical checks can return None instead of an empty iterator. (Issue #250) Do not report multiple E101 if only the first indentation starts with a tab. (Issue #237) Fix a rare false positive W602. (Issue #34) 1.4.6 (2013-07-02) Changes: Honor # noqa for errors E711 and E712. (Issue #180) When both a tox.ini and a setup.cfg are present in the project directory, merge their contents. The tox.ini file takes precedence (same as before). (Issue #182) Give priority to --select over --ignore. (Issue #188) Compare full path when excluding a file. (Issue #186) New option --hang-closing to switch to the alternative style of closing bracket indentation for hanging indent. Add error E133 for closing bracket which is missing indentation. (Issue #103) Accept both styles of closing bracket indentation for hanging indent. Do not report error E123 in the default configuration. (Issue #103) Bug fixes: Do not crash when running AST checks and the document contains null bytes. (Issue #184) Correctly report other E12 errors when E123 is ignored. (Issue #103) Fix false positive E261/E262 when the file contains a BOM. (Issue #193) Fix E701, E702 and E703 not detected sometimes. (Issue #196) Fix E122 not detected in some cases. (Issue #201 and #208) Fix false positive E121 with multiple brackets. (Issue #203) 1.4.5 (2013-03-06) When no path is specified, do not try to read from stdin. The feature was added in 1.4.3, but it is not supported on Windows. Use - filename argument to read from stdin. This usage is supported since 1.3.4. (Issue #170) Do not require setuptools in setup.py. It works around an issue with pip and Python 3. (Issue #172) Add __pycache__ to the ignore list. Change misleading message for E251. (Issue #171) Do not report false E302 when the source file has a coding cookie or a comment on the first line. (Issue #174) Reorganize the tests and add tests for the API and for the command line usage and options. (Issues #161 and #162) Ignore all checks which are not explicitly selected when select is passed to the StyleGuide constructor. 1.4.4 (2013-02-24) Report E227 or E228 instead of E225 for whitespace around bitwise, shift or modulo operators. (Issue #166) Change the message for E226 to make clear that it is about arithmetic operators. Fix a false positive E128 for continuation line indentation with tabs. Fix regression with the --diff option. (Issue #169) Fix the TestReport class to print the unexpected warnings and errors. 1.4.3 (2013-02-22) Hide the --doctest and --testsuite options when installed. Fix crash with AST checkers when the syntax is invalid. (Issue #160) Read from standard input if no path is specified. Initiate a graceful shutdown on Control+C. Allow to change the checker_class for the StyleGuide. 1.4.2 (2013-02-10) Support AST checkers provided by third-party applications. Register new checkers with register_check(func_or_cls, codes). Allow to construct a StyleGuide with a custom parser. Accept visual indentation without parenthesis after the if statement. (Issue #151) Fix UnboundLocalError when using # noqa with continued lines. (Issue #158) Re-order the lines for the StandardReport. Expand tabs when checking E12 continuation lines. (Issue #155) Refactor the testing class TestReport and the specific test functions into a separate test module. 1.4.1 (2013-01-18) Allow sphinx.ext.autodoc syntax for comments. (Issue #110) Report E703 instead of E702 for the trailing semicolon. (Issue #117) Honor # noqa in addition to # nopep8. (Issue #149) Expose the OptionParser factory for better extensibility. 1.4 (2012-12-22) Report E226 instead of E225 for optional whitespace around common operators (*, **, /, + and -). This new error code is ignored in the default configuration because PEP 8 recommends to "use your own judgement". (Issue #96) Lines with a # nopep8 at the end will not issue errors on line length E501 or continuation line indentation E12*. (Issue #27) Fix AssertionError when the source file contains an invalid line ending "\r\r\n". (Issue #119) Read the [pep8] section of tox.ini or setup.cfg if present. (Issue #93 and #141) Add the Sphinx-based documentation, and publish it on http://pep8.readthedocs.org/. (Issue #105)
v1.0.10 -- 09 Apr 2014 --------------------- - TLSSChannel: use malloc/realloc/free instead of their legacy Local* variants (fixes #222) - VCard: remove \r from vcard photos. Fixes a recent change Facebook made to their vcard pictures (patch by Fernando Sanchez) - Jingle: fixed replying; distinguish between 'from' and 'initiator'; added Jingle::Session::setInitiator() - Jingle: fixed ::ICEUDP to actually add candidates; added ::Session::initiator(), ::setHandler(), ::sessionAccept( PluginList ); fixed storing of new sessions in ::SessionManager (patches by Erich Keane) - Jingle: removed Jingle::setInitiator() and ::setResponder() (now provided by ctor) - AtomicRefCount: fixed compilation on iOS (patch by Erich Keane) - Jingle::Plugin: added JinglePluginType, pluginType(), and findPlugin() to easily look for and retrieve specific plugins - ConnectionBOSH: fixed return value for recv() (patch by Sudarshan Prasad) - Parser: get rid of bogus isValid() (fixes #180, #224) v1.0.9 -- 15 Oct 2013 --------------------- - changed colon to dash in uid generation to possibly fix #191 - added Channel Binding (needed for SASL SCRAM-SHA-1-PLUS) to SChannel on win32 (untested) - fixed SCRAM-SHA-1-PLUS v1.0.8 -- 15 Oct 2013 --------------------- - ConnectionTLS: make stacked TLS/SSL connections work again with HTTP proxies - added SASL SCRAM-SHA-1/SCRAM-SHA-1-PLUS authentication mechanisms (GnuTLS & OpenSSL only) (#201) - properly seed the RNG - SHA::hex(): finalize() only once v1.0.7.1 -- 11 Oct 2013 --------------------- - fixed/updated the win32 project files v1.0.7 -- 11 Oct 2013 --------------------- - added Jingle (XEP-0166) - added Jingle ICE-UDP Transport (XEP-0176) - added Jingle File Transfer (XEP-0234) - fixed compilation in iOS7 SDK (thanks to Kurt Vermeersch) - fixed bug in stanza handling/counting related to Stream Management (patch by Norbert Riedlin) - added protected ClientBase::stanzasSent() to return sent stanzas (if Stream Management enabled) v1.0.6 -- 04 Sep 2013 --------------------- - ClientBase: removed check for empty message body --> messages of type chat with empty bodies will be passed on to listeners - required for Message Carbons - MessageSession: removed check for empty message body --> messages of type chat with empty bodies will be passed on to listeners - required for Message Carbons - don't send presence after stream resumption - added ClientBase::sendQueue() - documentation updates and fixes v1.0.5 -- 02 Sep 2013 --------------------- - added support for Stanza Forwarding (XEP-0297) - added support for Message Carbons (XEP-0280) v1.0.4 -- 30 Aug 2013 --------------------- - added support for Stream Management (XEP-0198) - Fix some iterator usage for portability related to erase (patch by Daniel Bowen) - Ensure setting a connection does not leave a deleted value in the member variable for a time (patch by Daniel Bowen) - Add operator< and relatives to JID so that it can be in a map (patch by Daniel Bowen) - Sandboxing on Apple doesn't like getprotobyname (patch by Daniel Bowen) - MessageSession::send(): removed default argument of 2nd parameter to remove ambiguity of MS::send( string ) (#206) (source incompatible!) - VCard: renamed setPhoto( string ) to setPhotoUri( string ) (#166) (source and binary incompatible) v1.0.3 -- 22 Jul 2013 --------------------- - Changed license to GPLv3 - removed space from VS project name (--> gloox-1.0) - VCardUpdate: fixed handling of empty hash (#203) - VCardUpdate: added hasPhoto() to inidicate whether there was a photo tag (#203) - compilation fixed when using getaddrinfo (patch by Roy van Dam) - Receipt: recognize id attribute (patch by Dídac Pérez) (#208) - MessageSession: added MS::send( string& ) to properly provide a base for MUCMS::send( string& ) (#206) - really fixed memory leak in prep::idna() - gloox.vcproj: removed not-yet-present tlsgnutlsserver.cpp/.h v1.0.2 -- 05 Jul 2013 --------------------- - SOCKS5Bytestream: Don't wait for incoming data, notify about open stream immediately upon connection (patch by Erik Horemans) - fixed/updated Code::Blocks and VS project files (fixes #197, #198) - fixed memory leak in ClientBase (fixes #204) - fixed memory leak in prep::idna() v1.0.1 -- 29 Jun 2013 --------------------- - Added support for Serverless Messaging (XEP-0174) - TLSOpenSSLServer: compilation fix - don't bail on DNS TCP queries - fixed µs timeout value (now defaults to 1.000.000) - omit port in initial greeting (usually -1 anyway) - fixed SHA1 hashes of 55 byte strings (#164) - fixed CFLAGS and LIBS in pkg-config file (#163) - fixed SOCKS5Bytestream double close notification - tell gcrypt that we're using pthreads (if available) - ClientBase: send IQ error response for unsupported features - ClientBase: fixed potential infinite loop on IQ error - ClientBase: fixed NTLM auth - ClientBase, SEF: mutex-protected SE handling - PubSub: added 'subscribe & configure' - PubSub: added optional subid - SOCKS5BytestreamServer: expose local socket - RosterManager: don't use string-comparison on JIDs; use JID class - NonSASLAuth: fixed resource usage by deprecating ClientBase::m_selectedResource - InBandBytestream: don't call handler in dtor - util: fixed long2string() - fixed a few leaks in GnutTLS client code (#181) - VCard: made getters const (#186) (binary-incompatible change!) - PubsubManager: fixed using wrong Tag (#190) - Search: fixed search() (#193) - DNS: fix socket leak if no network connection is available (#192) - PubsubManager: unconditionally call handleItemPublication() (#194) - configure: Added -lgcrypt (dependency of GNUTLS)
Add test Upstream changes: 1.5.6 (2014-04-14) Bug fixes: Check the last line even if it has no end-of-line. (Issue #273) 1.5.5 (2014-04-10) Bug fixes: Fix regression with E22 checks and inline comments. (Issue #271) 1.5.4 (2014-04-07) Bug fixes: Fix negative offset with E303 before a multi-line docstring. (Issue #269) 1.5.3 (2014-04-04) Bug fixes: Fix wrong offset computation when error is on the last char of a physical line. (Issue #268) 1.5.2 (2014-04-04) Changes: Distribute a universal wheel file. Bug fixes: Report correct line number for E303 with comments. (Issue #60) Do not allow newline after parameter equal. (Issue #252) Fix line number reported for multi-line strings. (Issue #220) Fix false positive E121/E126 with multi-line strings. (Issue #265) Fix E501 not detected in comments with Python 2.5. Fix caret position with --show-source when line contains tabs. 1.5.1 (2014-03-27) Bug fixes: Fix a crash with E125 on multi-line strings. (Issue #263) 1.5 (2014-03-26) Changes: Report E129 instead of E125 for visually indented line with same indent as next logical line. (Issue #126) Report E265 for space before block comment. (Issue #190) Report E713 and E714 when operators not in and is not are recommended. (Issue #236) Allow long lines in multiline strings and comments if they cannot be wrapped. (Issue #224). Optionally disable physical line checks inside multiline strings, using # noqa. (Issue #242) Change text for E121 to report "continuation line under-indented for hanging indent" instead of indentation not being a multiple of 4. Report E131 instead of E121 / E126 if the hanging indent is not consistent within the same continuation block. It helps when error E121 or E126 is in the ignore list. Report E126 instead of E121 when the continuation line is hanging with extra indentation, even if indentation is not a multiple of 4. Bug fixes: Allow the checkers to report errors on empty files. (Issue #240) Fix ignoring too many checks when --select is used with codes declared in a flake8 extension. (Issue #216) Fix regression with multiple brackets. (Issue #214) Fix StyleGuide to parse the local configuration if the keyword argument paths is specified. (Issue #246) Fix a false positive E124 for hanging indent. (Issue #254) Fix a false positive E126 with embedded colon. (Issue #144) Fix a false positive E126 when indenting with tabs. (Issue #204) Fix behaviour when exclude is in the configuration file and the current directory is not the project directory. (Issue #247) The logical checks can return None instead of an empty iterator. (Issue #250) Do not report multiple E101 if only the first indentation starts with a tab. (Issue #237) Fix a rare false positive W602. (Issue #34) 1.4.6 (2013-07-02) Changes: Honor # noqa for errors E711 and E712. (Issue #180) When both a tox.ini and a setup.cfg are present in the project directory, merge their contents. The tox.ini file takes precedence (same as before). (Issue #182) Give priority to --select over --ignore. (Issue #188) Compare full path when excluding a file. (Issue #186) New option --hang-closing to switch to the alternative style of closing bracket indentation for hanging indent. Add error E133 for closing bracket which is missing indentation. (Issue #103) Accept both styles of closing bracket indentation for hanging indent. Do not report error E123 in the default configuration. (Issue #103) Bug fixes: Do not crash when running AST checks and the document contains null bytes. (Issue #184) Correctly report other E12 errors when E123 is ignored. (Issue #103) Fix false positive E261/E262 when the file contains a BOM. (Issue #193) Fix E701, E702 and E703 not detected sometimes. (Issue #196) Fix E122 not detected in some cases. (Issue #201 and #208) Fix false positive E121 with multiple brackets. (Issue #203) 1.4.5 (2013-03-06) When no path is specified, do not try to read from stdin. The feature was added in 1.4.3, but it is not supported on Windows. Use - filename argument to read from stdin. This usage is supported since 1.3.4. (Issue #170) Do not require setuptools in setup.py. It works around an issue with pip and Python 3. (Issue #172) Add __pycache__ to the ignore list. Change misleading message for E251. (Issue #171) Do not report false E302 when the source file has a coding cookie or a comment on the first line. (Issue #174) Reorganize the tests and add tests for the API and for the command line usage and options. (Issues #161 and #162) Ignore all checks which are not explicitly selected when select is passed to the StyleGuide constructor. 1.4.4 (2013-02-24) Report E227 or E228 instead of E225 for whitespace around bitwise, shift or modulo operators. (Issue #166) Change the message for E226 to make clear that it is about arithmetic operators. Fix a false positive E128 for continuation line indentation with tabs. Fix regression with the --diff option. (Issue #169) Fix the TestReport class to print the unexpected warnings and errors. 1.4.3 (2013-02-22) Hide the --doctest and --testsuite options when installed. Fix crash with AST checkers when the syntax is invalid. (Issue #160) Read from standard input if no path is specified. Initiate a graceful shutdown on Control+C. Allow to change the checker_class for the StyleGuide. 1.4.2 (2013-02-10) Support AST checkers provided by third-party applications. Register new checkers with register_check(func_or_cls, codes). Allow to construct a StyleGuide with a custom parser. Accept visual indentation without parenthesis after the if statement. (Issue #151) Fix UnboundLocalError when using # noqa with continued lines. (Issue #158) Re-order the lines for the StandardReport. Expand tabs when checking E12 continuation lines. (Issue #155) Refactor the testing class TestReport and the specific test functions into a separate test module. 1.4.1 (2013-01-18) Allow sphinx.ext.autodoc syntax for comments. (Issue #110) Report E703 instead of E702 for the trailing semicolon. (Issue #117) Honor # noqa in addition to # nopep8. (Issue #149) Expose the OptionParser factory for better extensibility. 1.4 (2012-12-22) Report E226 instead of E225 for optional whitespace around common operators (*, **, /, + and -). This new error code is ignored in the default configuration because PEP 8 recommends to "use your own judgement". (Issue #96) Lines with a # nopep8 at the end will not issue errors on line length E501 or continuation line indentation E12*. (Issue #27) Fix AssertionError when the source file contains an invalid line ending "\r\r\n". (Issue #119) Read the [pep8] section of tox.ini or setup.cfg if present. (Issue #93 and #141) Add the Sphinx-based documentation, and publish it on http://pep8.readthedocs.org/. (Issue #105)
v1.0.10 -- 09 Apr 2014 --------------------- - TLSSChannel: use malloc/realloc/free instead of their legacy Local* variants (fixes #222) - VCard: remove \r from vcard photos. Fixes a recent change Facebook made to their vcard pictures (patch by Fernando Sanchez) - Jingle: fixed replying; distinguish between 'from' and 'initiator'; added Jingle::Session::setInitiator() - Jingle: fixed ::ICEUDP to actually add candidates; added ::Session::initiator(), ::setHandler(), ::sessionAccept( PluginList ); fixed storing of new sessions in ::SessionManager (patches by Erich Keane) - Jingle: removed Jingle::setInitiator() and ::setResponder() (now provided by ctor) - AtomicRefCount: fixed compilation on iOS (patch by Erich Keane) - Jingle::Plugin: added JinglePluginType, pluginType(), and findPlugin() to easily look for and retrieve specific plugins - ConnectionBOSH: fixed return value for recv() (patch by Sudarshan Prasad) - Parser: get rid of bogus isValid() (fixes #180, #224) v1.0.9 -- 15 Oct 2013 --------------------- - changed colon to dash in uid generation to possibly fix #191 - added Channel Binding (needed for SASL SCRAM-SHA-1-PLUS) to SChannel on win32 (untested) - fixed SCRAM-SHA-1-PLUS v1.0.8 -- 15 Oct 2013 --------------------- - ConnectionTLS: make stacked TLS/SSL connections work again with HTTP proxies - added SASL SCRAM-SHA-1/SCRAM-SHA-1-PLUS authentication mechanisms (GnuTLS & OpenSSL only) (#201) - properly seed the RNG - SHA::hex(): finalize() only once v1.0.7.1 -- 11 Oct 2013 --------------------- - fixed/updated the win32 project files v1.0.7 -- 11 Oct 2013 --------------------- - added Jingle (XEP-0166) - added Jingle ICE-UDP Transport (XEP-0176) - added Jingle File Transfer (XEP-0234) - fixed compilation in iOS7 SDK (thanks to Kurt Vermeersch) - fixed bug in stanza handling/counting related to Stream Management (patch by Norbert Riedlin) - added protected ClientBase::stanzasSent() to return sent stanzas (if Stream Management enabled) v1.0.6 -- 04 Sep 2013 --------------------- - ClientBase: removed check for empty message body --> messages of type chat with empty bodies will be passed on to listeners - required for Message Carbons - MessageSession: removed check for empty message body --> messages of type chat with empty bodies will be passed on to listeners - required for Message Carbons - don't send presence after stream resumption - added ClientBase::sendQueue() - documentation updates and fixes v1.0.5 -- 02 Sep 2013 --------------------- - added support for Stanza Forwarding (XEP-0297) - added support for Message Carbons (XEP-0280) v1.0.4 -- 30 Aug 2013 --------------------- - added support for Stream Management (XEP-0198) - Fix some iterator usage for portability related to erase (patch by Daniel Bowen) - Ensure setting a connection does not leave a deleted value in the member variable for a time (patch by Daniel Bowen) - Add operator< and relatives to JID so that it can be in a map (patch by Daniel Bowen) - Sandboxing on Apple doesn't like getprotobyname (patch by Daniel Bowen) - MessageSession::send(): removed default argument of 2nd parameter to remove ambiguity of MS::send( string ) (#206) (source incompatible!) - VCard: renamed setPhoto( string ) to setPhotoUri( string ) (#166) (source and binary incompatible) v1.0.3 -- 22 Jul 2013 --------------------- - Changed license to GPLv3 - removed space from VS project name (--> gloox-1.0) - VCardUpdate: fixed handling of empty hash (#203) - VCardUpdate: added hasPhoto() to inidicate whether there was a photo tag (#203) - compilation fixed when using getaddrinfo (patch by Roy van Dam) - Receipt: recognize id attribute (patch by Dídac Pérez) (#208) - MessageSession: added MS::send( string& ) to properly provide a base for MUCMS::send( string& ) (#206) - really fixed memory leak in prep::idna() - gloox.vcproj: removed not-yet-present tlsgnutlsserver.cpp/.h v1.0.2 -- 05 Jul 2013 --------------------- - SOCKS5Bytestream: Don't wait for incoming data, notify about open stream immediately upon connection (patch by Erik Horemans) - fixed/updated Code::Blocks and VS project files (fixes #197, #198) - fixed memory leak in ClientBase (fixes #204) - fixed memory leak in prep::idna() v1.0.1 -- 29 Jun 2013 --------------------- - Added support for Serverless Messaging (XEP-0174) - TLSOpenSSLServer: compilation fix - don't bail on DNS TCP queries - fixed µs timeout value (now defaults to 1.000.000) - omit port in initial greeting (usually -1 anyway) - fixed SHA1 hashes of 55 byte strings (#164) - fixed CFLAGS and LIBS in pkg-config file (#163) - fixed SOCKS5Bytestream double close notification - tell gcrypt that we're using pthreads (if available) - ClientBase: send IQ error response for unsupported features - ClientBase: fixed potential infinite loop on IQ error - ClientBase: fixed NTLM auth - ClientBase, SEF: mutex-protected SE handling - PubSub: added 'subscribe & configure' - PubSub: added optional subid - SOCKS5BytestreamServer: expose local socket - RosterManager: don't use string-comparison on JIDs; use JID class - NonSASLAuth: fixed resource usage by deprecating ClientBase::m_selectedResource - InBandBytestream: don't call handler in dtor - util: fixed long2string() - fixed a few leaks in GnutTLS client code (#181) - VCard: made getters const (#186) (binary-incompatible change!) - PubsubManager: fixed using wrong Tag (#190) - Search: fixed search() (#193) - DNS: fix socket leak if no network connection is available (#192) - PubsubManager: unconditionally call handleItemPublication() (#194) - configure: Added -lgcrypt (dependency of GNUTLS)
Last pkgsrc was version from 2002. Changes in 2.04: Add new programming language ObjectiveâC. Add new bracket style option "style=google" (-A14). Add new option "indent-preproc-cond" (xw) to indent preprocessor conditional statements (#118). Add new bracket modify options "attach-namespaces", "attach-classes", "attach-inlines", and "attach-extern-c". Add new option "indent-modifiers" (-xG) to indent class access modifiers one-half indent (#130). Add new option "remove-brackets" (-xj) to remove brackets from single line conditional statements. Add new option "remove-comment-prefix" (-xp) to remove the leading '*' from multi-line comments. Add new option "align-method-colon" (-xM) to align ObjectiveâC method colons. Add new option "pad-method-colon=#" (-xP#) to space pad ObjectiveâC method colons. Add new options "pad-method-prefix" (-xQ), and "unpad-method-prefix" (-xR) to pad the ObjectiveâC "-" and "+" method prefix. Add new dll entry point AStyleMainUtf16 for processing C# UTF-16 strings. Add formatting of C++11 raw string literals (#222). Add "style=knf" as an alternative to "style=linux". Remove depreciated "bracket=" options. Improve recognition and formatting of pointers and references (#174 and other changes). Improve the recognition of block-opening brackets. Improve code using a static code analyzer (#195). Change "max-code-length" to include ObjectiveâC methods. Change "indent-elseifs" and "break-blocks" to look ahead only if in command-type brackets (speed improvement). Fix linux bracket styles to break the opening bracket in inline function definitions (#185). Fix indentation of switch block comments (#164). Fix enums to indent with tabs when requested (#92, #121). Fix formatting of rvalue reference without a name in a declaration (#219). Fix "pad-first-paren-out" to not pad if the following parens are empty (#232). Fix end-of-statement reset when comments follow closing bracket. Fix the ASBeautifier active and waiting stacks to delete the ASBeautifier objects before deleting the pointers. Fix ASBeautifier "init" to delete the tempStack vectors before deleting the tempStack. Fix Linux piping problem by changing "cin" input to build a stringstream before formatting. Fix to identify the correct bracket type when 'extern "C"' is part of the enum definition. Fix to clear 'extern "C"' variables when the block is closed. Fix unindented 'extern "C"' to not indent when in a #else preprocessor directive. Fix not always correctly formatting linux type brackets for enum blocks. Fix align-pointer in a range-based for statement (#217). Fix pointer-reference argument alignment to correctly position a following comment (#235). Fix to not attach a bracket to a line ending in a backslash '\' (#186, #214, #220). Fix to recognize templates using multiple lines (#85, #87, #136). Fix formatting of template continuation lines (#85, #87, #136). Fix to allow '^' as an array operator (#233). Fix an "enum" argument being mistaken for an enumeration (#211). Fix to recognize a non-instatement array after a "},{" sequence. Fix "pad-oper" to not pad before a following comma. Fix recognition of an operator when the calculation contains a bitwise "not" '~' (#166). Fix to allow a preprocessor statement within a preprocessor define (#238). Fix preprocessor comparison to check for whole words (#246). Fix "add-brackets" when a line contains more than one paren pairs (#181). Fix to allow Mac old CR line endings in the options file (#129). Refactor to aid debugging and improve design and decomposition: Move ALL preliminary indentation calculations to computePreliminaryIndentation() in ASBeautifier. Move calculation of 'force tab' indents to preLineWS() in ASBeautifier. Combine methods init() and init(ASSourceIterator*) in ASBeautifier. Extract method adjustParsedLineIndentation() in ASBeautifier. Extract method parseCurrentLine() in ASEnhancer. Remove astyle_main.cpp unused functions getFilesUnchanged, getOptionsFileRequired, and setOptionsFileRequired. Older changes included in distfile, or available on http://astyle.sourceforge.net/notes.html
Changelog: ================================================================================ GLM 0.9.5.4: 2014-06-21 -------------------------------------------------------------------------------- - Fixed non-utf8 character #196 - Added FindGLM install for CMake #189 - Fixed GTX_color_space - saturation #195 - Fixed glm::isinf and glm::isnan for with Android NDK 9d #191 - Fixed builtin GLM_ARCH_SSE4 #204 - Optimized Quaternion vector rotation #205 - Fixed missing doxygen @endcond tag #211 - Fixed instruction set detection with Clang #158 - Fixed orientate3 function #207 - Fixed lerp when cosTheta is close to 1 in quaternion slerp #210 - Added GTX_io for io with <iostream> #144 - Fixed fastDistance ambiguity #215 - Fixed tweakedInfinitePerspective #208 and added user-defined epsilon to tweakedInfinitePerspective - Fixed std::copy and std::vector with GLM types #214 - Fixed strict aliasing issues #212, #152 - Fixed std::nextafter not supported with C++11 on Android #213 - Fixed corner cases in exp and log functions for quaternions #199 ================================================================================ GLM 0.9.5.3: 2014-04-02 -------------------------------------------------------------------------------- - Added instruction set auto detection with Visual C++ using _M_IX86_FP - /arch compiler argument - Fixed GTX_raw_data code dependency - Fixed GCC instruction set detection - Added GLM_GTX_matrix_transform_2d extension (#178, #176) - Fixed CUDA issues (#169, #168, #183, #182) - Added support for all extensions but GTX_string_cast to CUDA - Fixed strict aliasing warnings in GCC 4.8.1 / Android NDK 9c (#152) - Fixed missing bitfieldInterleave definisions - Fixed usubBorrow (#171) - Fixed eulerAngle*** not consistent for right-handed coordinate system (#173) - Added full tests for eulerAngle*** functions (#173) - Added workaround for a CUDA compiler bug (#186, #185) ================================================================================ GLM 0.9.5.2: 2014-02-08 -------------------------------------------------------------------------------- - Fixed initializer list ambiguity (#159, #160) - Fixed warnings with the Android NDK 9c - Fixed non power of two matrix products - Fixed mix function link error - Fixed SSE code included in GLM tests on "pure" platforms - Fixed undefined reference to fastInverseSqrt (#161) - Fixed GLM_FORCE_RADIANS with <glm/ext.hpp> build error (#165) - Fix dot product clamp range for vector angle functions. (#163) - Tentative fix for strict aliasing warning in GCC 4.8.1 / Android NDK 9c (#152) - Fixed GLM_GTC_constants description brief (#162) ================================================================================ GLM 0.9.5.1: 2014-01-11 -------------------------------------------------------------------------------- - Fixed angle and orientedAngle that sometimes return NaN values (#145) - Deprecated degrees for function parameters and display a message - Added possible static_cast conversion of GLM types (#72) - Fixed error 'inverse' is not a member of 'glm' from glm::unProject (#146) - Fixed mismatch between some declarations and definitions - Fixed inverse link error when using namespace glm; (#147) - Optimized matrix inverse and division code (#149) - Added intersectRayPlane function (#153) - Fixed outerProduct return type (#155) ================================================================================ GLM 0.9.5.0: 2013-12-25 -------------------------------------------------------------------------------- - Added forward declarations (glm/fwd.hpp) for faster compilations - Added per feature headers - Minimized GLM internal dependencies - Improved Intel Compiler detection - Added bitfieldInterleave and _mm_bit_interleave_si128 functions - Added GTX_scalar_relational - Added GTX_dual_quaternion - Added rotation function to GTX_quaternion (#22) - Added precision variation of each type - Added quaternion comparison functions - Fixed GTX_multiple for negative value - Removed GTX_ocl_type extension - Fixed post increment and decrement operators - Fixed perspective with zNear == 0 (#71) - Removed l-value swizzle operators - Cleaned up compiler detection code for unsupported compilers - Replaced C cast by C++ casts - Fixed .length() that should return a int and not a size_t - Added GLM_FORCE_SIZE_T_LENGTH and glm::length_t - Removed unnecessary conversions - Optimized packing and unpacking functions - Removed the normalization of the up argument of lookAt function (#114) - Added low precision specializations of inversesqrt - Fixed ldexp and frexp implementations - Increased assert coverage - Increased static_assert coverage - Replaced GLM traits by STL traits when possible - Allowed including individual core feature - Increased unit tests completness - Added creating of a quaternion from two vectors - Added C++11 initializer lists - Fixed umulExtended and imulExtended implementations for vector types (#76) - Fixed CUDA coverage for GTC extensions - Added GTX_io extension - Improved GLM messages enabled when defining GLM_MESSAGES - Hidden matrix _inverse function implementation detail into private section ================================================================================ GLM 0.9.4.6: 2013-09-20 -------------------------------------------------------------------------------- - Fixed detection to select the last known compiler if newer version #106 - Fixed is_int and is_uint code duplication with GCC and C++11 #107 - Fixed test suite build while using Clang in C++11 mode - Added c++1y mode support in CMake test suite - Removed ms extension mode to CMake when no using Visual C++ - Added pedantic mode to CMake test suite for Clang and GCC - Added use of GCC frontend on Unix for ICC and Visual C++ fronted on Windows for ICC - Added compilation errors for unsupported compiler versions - Fixed glm::orientation with GLM_FORCE_RADIANS defined #112 - Fixed const ref issue on assignment operator taking a scalar parameter #116 - Fixed glm::eulerAngleY implementation #117 ================================================================================ GLM 0.9.4.5: 2013-08-12 -------------------------------------------------------------------------------- - Fixed CUDA support - Fixed inclusion of intrinsics in "pure" mode #92 - Fixed language detection on GCC when the C++0x mode isn't enabled #95 - Fixed issue #97: register is deprecated in C++11 - Fixed issue #96: CUDA issues - Added Windows CE detection #92 - Added missing value_ptr for quaternions #99 ================================================================================ GLM 0.9.4.4: 2013-05-29 -------------------------------------------------------------------------------- - Fixed slerp when costheta is close to 1 #65 - Fixed mat4x2 value_type constructor #70 - Fixed glm.natvis for Visual C++ 12 #82 - Added assert in inversesqrt to detect division by zero #61 - Fixed missing swizzle operators #86 - Fixed CUDA warnings #86 - Fixed GLM natvis for VC11 #82 - Fixed GLM_GTX_multiple with negative values #79 - Fixed glm::perspective when zNear is zero #71 ================================================================================ GLM 0.9.4.3: 2013-03-20 -------------------------------------------------------------------------------- - Detected qualifier for Clang - Fixed C++11 mode for GCC, couldn't be enabled without MS extensions - Fixed squad, intermediate and exp quaternion functions - Fixed GTX_polar_coordinates euclidean function, takes a vec2 instead of a vec3 - Clarify the license applying on the manual - Added a docx copy of the manual - Fixed GLM_GTX_matrix_interpolation - Fixed isnan and isinf on Android with Clang - Autodetected C++ version using __cplusplus value - Fixed mix for bool and bvec* third parameter ================================================================================ GLM 0.9.4.2: 2013-02-14 -------------------------------------------------------------------------------- - Fixed compAdd from GTX_component_wise - Fixed SIMD support for Intel compiler on Windows - Fixed isnan and isinf for CUDA compiler - Fixed GLM_FORCE_RADIANS on glm::perspective - Fixed GCC warnings - Fixed packDouble2x32 on XCode - Fixed mix for vec4 SSE implementation - Fixed 0x2013 dash character in comments that cause issue in Windows Japanese mode - Fixed documentation warnings - Fixed CUDA warnings ================================================================================ GLM 0.9.4.1: 2012-12-22 -------------------------------------------------------------------------------- - Improved half support: -0.0 case and implicit conversions - Fixed Intel Composer Compiler support on Linux - Fixed interaction between quaternion and euler angles - Fixed GTC_constants build - Fixed GTX_multiple - Fixed quat slerp using mix function when cosTheta close to 1 - Improved fvec4SIMD and fmat4x4SIMD implementations - Fixed assert messages - Added slerp and lerp quaternion functions and tests ================================================================================ GLM 0.9.4.0: 2012-11-18 -------------------------------------------------------------------------------- - Added Intel Composer Compiler support - Promoted GTC_espilon extension - Promoted GTC_ulp extension - Removed GLM website from the source repository - Added GLM_FORCE_RADIANS so that all functions takes radians for arguments - Fixed detection of Clang and LLVM GCC on MacOS X - Added debugger visualizers for Visual C++ 2012 ================================================================================ GLM 0.9.3.4: 2012-06-30 -------------------------------------------------------------------------------- - Added SSE4 and AVX2 detection. - Removed VIRTREV_xstream and the incompatibility generated with GCC - Fixed C++11 compiler option for GCC - Removed MS language extension option for GCC (not fonctionnal) - Fixed bitfieldExtract for vector types - Fixed warnings - Fixed SSE includes ================================================================================ GLM 0.9.3.3: 2012-05-10 -------------------------------------------------------------------------------- - Fixed isinf and isnan - Improved compatibility with Intel compiler - Added CMake test build options: SIMD, C++11, fast math and MS land ext - Fixed SIMD mat4 test on GCC - Fixed perspectiveFov implementation - Fixed matrixCompMult for none-square matrices - Fixed namespace issue on stream operators - Fixed various warnings - Added VC11 support
Version 2.0 ----------- (released Nov 9, 2014) - Default lexer encoding is now "guess", i.e. UTF-8 / Locale / Latin1 is tried in that order. - Major update to Swift lexer (pull request #410). - Multiple fixes to lexer guessing in conflicting cases: * recognize HTML5 by doctype * recognize XML by XML declaration * don't recognize C/C++ as SystemVerilog - Simplified regexes and builtin lists. Version 2.0rc1 -------------- (released Oct 16, 2014) - Dropped Python 2.4 and 2.5 compatibility. This is in favor of single-source compatibility between Python 2.6, 2.7 and 3.3+. - New website and documentation based on Sphinx (finally!) - Lexers added: * APL (#969) * Agda and Literate Agda (pull request #203) * Alloy (pull request #355) * AmbientTalk * BlitzBasic (pull request #197) * ChaiScript (pull request #24) * Chapel (pull request #256) * Cirru (pull request #275) * Clay (pull request #184) * ColdFusion CFC (pull request #283) * Cryptol and Literate Cryptol (pull request #344) * Cypher (pull request #257) * Docker config files * EBNF (pull request #193) * Eiffel (pull request #273) * GAP (pull request #311) * Golo (pull request #309) * Handlebars (pull request #186) * Hy (pull request #238) * Idris and Literate Idris (pull request #210) * Igor Pro (pull request #172) * Inform 6/7 (pull request #281) * Intel objdump (pull request #279) * Isabelle (pull request #386) * Jasmin (pull request #349) * JSON-LD (pull request #289) * Kal (pull request #233) * Lean (pull request #399) * LSL (pull request #296) * Limbo (pull request #291) * Liquid (#977) * MQL (pull request #285) * MaskJS (pull request #280) * Mozilla preprocessors * Mathematica (pull request #245) * NesC (pull request #166) * Nit (pull request #375) * Nix (pull request #267) * Pan * Pawn (pull request #211) * Perl 6 (pull request #181) * Pig (pull request #304) * Pike (pull request #237) * QBasic (pull request #182) * Red (pull request #341) * ResourceBundle (#1038) * Rexx (pull request #199) * Rql (pull request #251) * Rsl * SPARQL (pull request #78) * Slim (pull request #366) * Swift (pull request #371) * Swig (pull request #168) * TADS 3 (pull request #407) * Todo.txt todo lists * Twig (pull request #404) - Added a helper to "optimize" regular expressions that match one of many literal words; this can save 20% and more lexing time with lexers that highlight many keywords or builtins. - New styles: "xcode" and "igor", similar to the default highlighting of the respective IDEs. - The command-line "pygmentize" tool now tries a little harder to find the correct encoding for files and the terminal (#979). - Added "inencoding" option for lexers to override "encoding" analogous to "outencoding" (#800). - Added line-by-line "streaming" mode for pygmentize with the "-s" option. (pull request #165) Only fully works for lexers that have no constructs spanning lines! - Added an "envname" option to the LaTeX formatter to select a replacement verbatim environment (pull request #235). - Updated the Makefile lexer to yield a little more useful highlighting. - Lexer aliases passed to ``get_lexer_by_name()`` are now case-insensitive. - File name matching in lexers and formatters will now use a regex cache for speed (pull request #205). - Pygments will now recognize "vim" modelines when guessing the lexer for a file based on content (pull request #118). - Major restructure of the ``pygments.lexers`` module namespace. There are now many more modules with less lexers per module. Old modules are still around and re-export the lexers they previously contained. - The NameHighlightFilter now works with any Name.* token type (#790). - Python 3 lexer: add new exceptions from PEP 3151. - Opa lexer: add new keywords (pull request #170). - Julia lexer: add keywords and underscore-separated number literals (pull request #176). - Lasso lexer: fix method highlighting, update builtins. Fix guessing so that plain XML isn't always taken as Lasso (pull request #163). - Objective C/C++ lexers: allow "@" prefixing any expression (#871). - Ruby lexer: fix lexing of Name::Space tokens (#860) and of symbols in hashes (#873). - Stan lexer: update for version 2.4.0 of the language (pull request #162, PR#255, PR#377). - JavaScript lexer: add the "yield" keyword (pull request #196). - HTTP lexer: support for PATCH method (pull request #190). - Koka lexer: update to newest language spec (pull request #201). - Haxe lexer: rewrite and support for Haxe 3 (pull request #174). - Prolog lexer: add different kinds of numeric literals (#864). - F# lexer: rewrite with newest spec for F# 3.0 (#842), fix a bug with dotted chains (#948). - Kotlin lexer: general update (pull request #271). - Rebol lexer: fix comment detection and analyse_text (pull request #261). - LLVM lexer: update keywords to v3.4 (pull request #258). - PHP lexer: add new keywords and binary literals (pull request #222). - external/markdown-processor.py updated to newest python-markdown (pull request #221). - CSS lexer: some highlighting order fixes (pull request #231). - Ceylon lexer: fix parsing of nested multiline comments (#915). - C family lexers: fix parsing of indented preprocessor directives (#944). - Rust lexer: update to 0.9 language version (pull request #270, PR#388). - Elixir lexer: update to 0.15 language version (pull request #392). - Fix swallowing incomplete tracebacks in Python console lexer (#874).
Upstream changes: 1.2.0 2015-04-14 07:13:00+0000 - [core] bundle libyaml #248 (Kazuho Oku) - [core] implement master-worker process mode and daemon mode (bundles Server::Starter) #258 #270 (Kazuho Oku) - [file] more mime-types by default #250 #254 #280 (Tatsuhiko Kubo, George Liu, Kazuho Oku) - [file][http1] fix connection being closed if the length of content is zero #276 (Kazuho Oku) - [headers] fix heap overrun during configuration #251 (Kazuho Oku) - [http2] do not delay sending PUSH_PROMISE #221 (Kazuho Oku) - [http2] reduce memory footprint under high load #271 (Kazuho Oku) - [http2] fix incorrect error sent when number of streams exceed the limit #268 (Kazuho Oku) - [proxy] fix heap overrun when building request sent to upstream #266 #269 (Moto Ishizawa, Kazuho Oku) - [proxy] fix laggy response in case the length of content is zero #274 #276 (Kazuho Oku) - [SSL] fix potential stall while reading data from client #268 (Kazuho Oku) - [SSL] bundle LibreSSL #236 #272 (Kazuho Oku) - [SSL] obtain source-level compatibility with BoringSSL #228 (Kazuho Oku) - [SSL] add directive `listen.ssl.cipher-preference` for controlling the selection logic of cipher-suites #233 (Kazuho Oku) - [SSL] disable TLS compression #252 (bisho) - [libh2o] fix C++ compatibility (do not use empty struct) #225 (Kazuho Oku) - [libh2o] search external dependencies using pkg-config #227 (Kazuho Oku) - [misc] fix GCC version detection bug used for controlling compiler warnings #224 (Kazuho Oku) - [misc] check merory allocation failures in socket pool #265 (Tatsuhiko Kubo) 1.1.1 2015-03-09 06:12:00+0000 - [proxy] fix crash on NetBSD when upstream connection is persistent #217 (Kazuho Oku) - [misc] fix compile error on FreeBSD #211 #212 (Syohei Yoshida) 1.1.0 2015-03-06 06:41:00+0000 - [core][file] send redirects appending '/' as abs-path redirects #209 (Kazuho Oku) - [headers] add directives for manipulating response headers #204 (Kazuho Oku) - [http2] do not send a corrupt response if header value is longer than 126 bytes #193 (Kazuho Oku) - [http2] fix interoperability issue with nghttp2 0.7.5 and above 5c42eb1 (Kazuho Oku) - [proxy] send `via` header to upstream #191 (Kazuho Oku) - [proxy] resolve hostname asynchronously #207 (Kazuho Oku) - [proxy] distribute load between upstream servers (using `rand()`) #208 (Kazuho Oku) - [proxy] fix a bug that may cause a corrupt `location` header being forwarded #190 (Kazuho Oku) - [reproxy] add support for `x-reproxy-url` header #187 #197 (Daisuke Maki, Kazuho Oku) 1.0.1 2015-02-23 05:50:00+0000 - [core] change backlog size from 65,536 to 65,535 #183 (Tatsuhiko Kubo) - [http2] fix assertion failure in HPACK encoder #186 (Kazuho Oku) - [http2] add `extern` to some global variables that were not marked as such #178 (Kazuho Oku) - [proxy] close persistent upstream connection if client abruptly closes the stream #188 (Kazuho Oku) - [proxy] fix internal state corruption in case upstream sends response headers divided into multpile packets #189 (Kazuho Oku) - [SSL] add host header to OCSP request #176 (Masaaki Hirose) - [libh2o] do not require header files under `deps/` when using libh2o #173 (Kazuho Oku) - [libh2o] fix compile error in examples when compiled with `H2O_USE_LIBUV=0` #177 (Kazuho Oku) - [libh2o] in example, add missing / after the reference path #180 (Matthieu Garrigues) - [misc] fix invalid HTML in sample page #175 (Deepak Prakash) 1.0.0 2015-02-18 20:01:00+0000 - [core] add redirect handler #150 (Kazuho Oku) - [core] add `pid-file` directive for specifying the pid file #164 (Kazuho Oku) - [core] connections accepted by host-specific listeners should not be handled by handlers of other hosts #163 (Kazuho Oku) - [core] (FreeBSD) fix a bug that prevented the standalone server from booting when run as root #160 (Kazuho Oku) - [core] switch to pipe-based interthread messaging #154 (Kazuho Oku) - [core] use kqueue on all BSDs #156 (Kazuho Oku) - [access-log] more logging directives: %H, %m, %q, %U, %V, %v #158 (Kazuho Oku) - [access-log] bugfix: header values were not logged when specified using uppercase letters #157 (Kazuho Oku) - [file] add application/json to defalt MIME-types #159 (Tatsuhiko Kubo) - [http2] add support for the finalized version of HTTP/2 #166 (Kazuho Oku) - [http2] fix issues reported by h2spec v0.0.6 #165 (Kazuho Oku) - [proxy] merge the cookie headers before sending to upstream #161 (Kazuho Oku) - [proxy] simplify the configuration directives (and make persistent upstream connections as default) #162 (Kazuho Oku) - [SSL] add configuration directive to preload DH params #148 (Jeff Marrison) - [libh2o] separate versioning scheme using H2O_LIBRARY_VERSION_* #167 (Kazuho Oku) 0.9.2 2015-02-10 04:17:00+0000 - [core] graceful shutdown on SIGTERM #119 (Kazuho Oku) - [core] less TCP errors under high load #81 (Kazuho Oku) - [file] add support for HEAD requests #110 (Mark Hoersken) - [http1] MSIE workaround (send `Cache-Control: private` in place of Vary) #114 (Kazuho Oku) - [http2] support server-push #133 (Kazuho Oku) - [http2] fix spurious RST_STREAMS being sent #132 (Kazuho Oku) - [http2] weight-based distribution of bandwidth #135 (Kazuho Oku) - [proxy] added configuration directive `proxy.preserve-host` #112 (Masahiro Nagano) - [proxy] sends X-Forwarded-For and X-Forwarded-Proto headers #112 (Masahiro Nagano) - [proxy] stability improvements #61 (Kazuho Oku) - [misc] adjustments to make the source code more analyzer-friendly #113,#117 (Nick Desaulniers, Maks Naumov) 0.9.1 2015-01-19 21:13:00+0000 - added configuration directives: ssl/cipher-suite, ssl/ocsp-update-interval, ssl/ocsp-max-failures, expires, file.send-gzip - [http2] added support for draft-16 (draft-14 is also supported) - [http2] dependency-based prioritization - [http2] improved conformance to the specification - [SSL] OCSP stapling (automatically enabled by default) - [SSL] fix compile error with OpenSSL below version 1.0.1 - [file] content negotiation (serving .gz files) - [expires] added support for Cache-Control: max-age - [libh2o] libh2o and the header files installed by `make install` - [libh2o] fix compile error when used from C++ - automatically setuids to nobody when run as root and if `user` directive is not set - automatically raises RLIMIT_NOFILE - uses all CPU cores by default - now compiles on NetBSD and other BSD-based systems
pkgsrc change: allow build on Ruby 2.2. ## 0.8.12 (2015-05-26) * Fix `HTTP.timeout` API (was loosing previously defined options). (@ixti) ## 0.8.11 (2015-05-22) * SNI support for HTTPS connections. See #229. (@tarcieri) * Use "http.rb" in the User-Agent string. See #227. (@tarcieri) ## 0.8.10 (2015-05-14) * Fix cookie headers generation. (@ixti) ## 0.8.9 (2015-05-11) * Add cookies support. (@ixti) * Enforce stringified body encoding. See #219. (@Connorhd) ## 0.8.8 (2015-05-09) * Fix CONNECT header for proxies. See #217. (@Connorhd) ## 0.8.7 (2015-05-08) * Fix `HTTP.timeout` API with options only given. (@ixti) ## 0.8.6 (2015-05-08) * Reset global timeouts after the request finishes. See #215. (@zanker) ## 0.8.5 (2015-05-06) * Add simple timeouts configuration API. See #205. (@ixti) * Deprecate `Request#request_header`. Use `Request#headline` instead. (@ixti) ## 0.8.4 (2015-04-23) * Deprecate `#default_headers` and `#default_headers=`. (@ixti) * Deprecate chainable methods with `with_` prefix. See #207. (@ixti) * Add support of HTTPS connections through proxy. See #186. (@Connorhd) ## 0.8.3 (2015-04-07) * Fix request headline. See #206. (@ixti) * Remove deprecated `Request#__method__`. (@ixti) ## 0.8.2 (2015-04-06) * Fix Celluloid::IO compatibility. See #203. (@ixti) * Cleanup obsolete code. (@zanker) ## 0.8.1 (2015-04-02) * Add missing `require "resolv"`. See #202. (@ixti) * Add block-form `#persistent` calls. See #200, #201. (@ixti) ## 0.8.0 (2015-04-01) * Properly handle WaitWritable for SSL. See #199. (@zanker) * Add support for non-ASCII URis. See #197. (@ixti) * Add configurable connection timeouts. See #187, #194, #195. (@zanker) * Refactor requests redirect following logic. See #179. (@ixti) * Support for persistent HTTP connections (@zanker) * Add caching support. See #77 and #177. (@Asmod4n, @pezra) * Improve servers used in specs boot up. Issue was initially raised up by @olegkovalenko. See #176. (@ixti) * Reflect FormData rename changes (FormData -> HTTP::FormData). (@ixti) * `HTTP::Headers` now raises `HTTP::InvalidHeaderNameError` in case of (surprise) invalid HTTP header field name (e.g.`"Foo:Bar"`). See #173. (@ixti)
this seems like an accidental closure... edit: Does someone want to re-open it? (I can't...) |
* Disable debug library Changelog: Release 1.6.1 (2015-08-03) ========================== - added project and solution files for Visual Studio 2015 - upgraded bundled SQLite to 3.8.11.1 - fixed GH #782: Poco::JSON::PrintHandler not working for nested arrays - fixed GH #819: JSON Stringifier fails with preserve insert order - fixed GH #878: UUID tryParse - fixed GH #869: FIFOBuffer::read(T*, std::size_t) documentation inaccurate - fixed GH #861: Var BadCastException - fixed GH #779: BUG in 1.6.0 Zip code - fixed GH #769: Poco::Var operator== throws exception - fixed GH #766: Poco::JSON::PrintHandler not working for objects in array - fixed GH #763: Unable to build static with NetSSL_OpenSSL for OS X - fixed GH #750: BsonWriter::write<Binary::Ptr> missing size ? - fixed GH #741: Timestamp anomaly in Poco::Logger on WindowsCE - fixed GH #735: WEC2013 build fails due to missing Poco::Path methods. - fixed GH #722: poco-1.6.0: Unicode Converter Test confuses string and char types - fixed GH #719: StreamSocket::receiveBytes and FIFOBuffer issue in 1.6 - fixed GH #706: POCO1.6 Sample EchoServer BUG - fixed GH #646: Prevent possible data race in access to Timer::_periodicInerval - DeflatingStream: do not flush underlying stream on sync() as these can cause corrupted files in Zip archives Release 1.6.0 (2014-12-22) ========================== - fixed GH #625: MongoDB ensureIndex double insert? - fixed GH #622: Crypto: RSATest::testSign() should verify with public key only - fixed GH #620: Data documentation sample code outdated - fixed GH #618: OS X 10.10 defines PAGE_SIZE macro, conflicts with PAGE_SIZE in Thread_POSIX.cpp - fixed GH #616: Visual Studio warning C4244 - fixed GH #612: OpenSSLInitializer calls OPENSSL_config but not CONF_modules_free - fixed GH #608: (Parallel)SocketAcceptor ctor/dtor call virtual functions - fixed GH #607: Idle Reactor high CPU usage - fixed GH #606: HTMLForm constructor read application/x-www-form-urlencoded UTF-8 request body first parameter with BOM in name - fixed GH #596: For OpenSSL 1.0.1, include openssl/crypto.h not openssl/fips.h - fixed GH #592: Incorrect format string in Poco::Dynamic::Struct - fixed GH #590: Poco::Data::SQlite doesn't support URI filenames - fixed GH #564: URI::encode - fixed GH #560: DateTime class calculates a wrong day - fixed GH #549: Memory allocation is not safe between fork() and execve() - fixed GH #500: SSLManager causes a crash - fixed GH #490: 2 byte frame with payload length of 0 throws "Incomplete Frame Received" exception - fixed GH #483: multiple cases for sqlite_busy - fixed GH #482: Poco::JSON::Stringifier::stringify bad behaviour - fixed GH #478: HTTPCredentials not according to HTTP spec - fixed GH #471: vs2010 release builds have optimization disabled ? - fixed GH #468: HTTPClientSession/HTTPResponse not forwarding exceptions - fixed GH #438: Poco::File::setLastModified() doesn't work - fixed GH #402: StreamSocket::receiveBytes(FIFOBuffer&) and sendBytes(FIFOBuffer&) are not thread safe - fixed GH #345: Linker warning LNK4221 in Foundation for SignalHandler.obj, String.obj and ByteOrder.obj - fixed GH #331: Poco::Zip does not support files with ".." in the name. - fixed GH #318: Logger local time doesn't automatically account for DST - fixed GH #294: Poco::Net::TCPServerParams::setMaxThreads(int count) will not accept count == 0. - fixed GH #215: develop WinCE build broken - fixed GH #63: Net::NameValueCollection::size() returns int - Poco::Logger: formatting methods now support up to 10 arguments. - added Poco::Timestamp::raw() - Poco::DeflatingOutputStream and Poco::InflatingOutputStreams also flush underlying stream on flush()/sync(). - Poco::Util::Timer: prevent re-schedule of cancelled TimerTask - enabled WinRegistryKey and WinRegistryConfiguration for WinCE - Poco::BasicEvent improvements and preparations for future support of lambdas/std::function - upgraded bundled sqlite to 3.8.7.2 - Poco::Thread: added support for starting functors/lambdas - Poco::Net::HTTPClientSession: added support for global proxy configuration - added support for OAuth 1.0/2.0 via Poco::Net::OAuth10Credentials and Poco::Net::OAuth20Credentials classes. - Poco::Net::IPAddress: fixed IPv6 prefix handling issue on Windows - added Poco::Timestamp::TIMEVAL_MIN and Poco::Timestamp::TIMEVAL_MAX - added Poco::Clock::CLOCKVAL_MIN and Poco::Clock::CLOCKVAL_MAX - added poco_assert_msg() and poco_assert_msg_dbg() macros - Poco::Net::Context: fixed a memory leak if the CA file was not found while creating the Context object (the underlying OpenSSL context would leak) - Poco::URI: added new constructor to create URI from Path - Various documentation and style fixes - Removed support (project/solution files) for Visual Studio.NET 2003 and Visual Studio 2005. - Improved CMake support Release 1.5.4 (2014-10-14) ========================== - fixed GH #326: compile Net lib 1.5.2 without UTF8 support enabled - fixed GH #518: NetworkInterface.cpp compile error w/ POCO_NO_WSTRING (1.5.3) - Fixed MSVC 2010 warnings on large alignment - make HTTPAuthenticationParams::parse() add value on end of string - fixed GH #482: Poco::JSON::Stringifier::stringify bad behaviour - fixed GH #508: Can't compile for arm64 architecture - fixed GH #510: Incorrect RSAKey construction from istream - fix SharedMemory for WinCE/WEC2013 - Add NIOS2 double conversion detection, fixes compile errors - added VS2013 project/solution files for Windows Embedded Compact 2013 - added Process::isRunning() - NetSSL: Fix typo in documentation - NetSSL_OpenSSL: support for TLS 1.1 and 1.2 - Zip: Added CM_AUTO, which automatically selects CM_STORE or CM_DEFLATE based on file extension. Used to avoid double-compression of already compressed file formats such as images. - added %L modifier to PatternFormatter to switch to local time - removed unnecessary explicit in some multi-arg constructors - Allow SecureStreamSocket::attach() to be used in server connections - added Var::isBoolean() and fixed JSON stringifier - added poco_unexpected() macro invoking Bugcheck::unexpected() to deal with unexpected exceptions in destructors - fixed GH #538 prevent destructors from throwing exceptions - improved HTTP server handling of errors while reading header - fixed GH #545: use short for sign - upgraded SQLite to 3.8.6 - fixed GH #550 WebSocket fragmented message problem - improved HTTPClientSession handling of network errors while sending the request - updated bundled PCRE to 8.35.0 - fixed GH #552: FIFOBuffer drain() problem - fixed GH #402: StreamSocket::receiveBytes(FIFOBuffer&) and sendBytes(FIFOBuffer&) are not thread safe - HTTPCookie: fix documentation for max age - added Timestamp::raw() and Clock::raw() - Poco::Buffer properly handles zero-sized buffers - GH #512: Poco:Data:ODBC:Binder.h causes a crash - Added Crypto_Win and NetSSL_Win libraries which are re-implementations of existing Crypto and NetSSL_OpenSSL libraries based on WinCrypt/Schannel. The new libraries can be used as an almost drop-in replacement for the OpenSSL based libraries on Windows and Windows Embedded Compact platforms. Only available from GitHub for now. Release 1.5.3 (2014-06-30) ========================== - fixed GH# 316: Poco::DateTimeFormatter::append() gives wrong result for Poco::LocalDateTime - Poco::Data::MySQL: added SQLite thread cleanup handler - Poco::Net::X509Certificate: improved and fixed domain name verification for wildcard domains - added Poco::Clock class, which uses a system-provided monotonic clock (if available) and is thus not affected by system realtime clock changes. Monotonic Clock is available on Windows, Linux, OS X and on POSIX platforms supporting clock_gettime() and CLOCK_MONOTONIC. - Poco::Timer, Poco::Stopwatch, Poco::TimedNotificationQueue and Poco::Util::Timer have been changed to use Poco::Clock instead of Poco::Timestamp and are now unaffected by system realtime clock changes. - fixed GH# 350: Memory leak in Data/ODBC with BLOB - Correctly set MySQL time_type for Poco::Data::Date. - fixed GH #352: Removed redundant #includes and fixed spelling mistakes. - fixed setting of MYSQL_BIND is_unsigned value. - fixed GH #360: CMakeLists foundation: add Clock.cpp in the list of source files - Add extern "C" around <net/if.h> on HPUX platform. - added runtests.sh - fixed CPPUNIT_IGNORE parsing - fixed Glob from start path, for platforms not alowing transverse from root (Android) - added NTPClient (Rangel Reale) - added PowerShell build script - added SmartOS build support - fix warnings in headers - XMLWriter: removed unnecessary apostrophe escaping (&apos) - MongoDB: use Int32 for messageLength - fixed GH #380: SecureSocket+DialogSocket crashes with SIGSEGV when timeout occours - Improve RSADigestEngine, using Poco::Crypto::DigestEngine to calculate hash before signing - added Poco::PBKDF2Engine - Fixed GH #380: SecureSocket+DialogSocket crashes with SIGSEGV when timeout occours - added support for a 'Priority' attribute on cookies. - GH #386: fixed bug in MailMessage without content-transfer-encoding header - GH #384: ew hash algorithms support for RSADigestEngine - fixed Clock overflow bug on Windows - Poco::ByteOrder now uses intrinsics, if available - CMake: added /bigobj option for msvc - Fix typo to restore Net/TestSuite_x64_vs120 build - correct path for CONFIGURE_FILE in CMakeLists.txt - Building Poco 1.5.2 for Synology RS812+ (Intel Atom) (honor POCO_NO_INOTIFY) - added WEC2013 support to buildwin.cmd and buildwin.ps1 - HTMLForm: in URL encoding, percent-encode more characters - Fixed #include <linux/if.h> conflict with other libraries - Poco::Net::X509Certificate::verify() no longer uses DNS reverse lookups to validate host names - cert hostname validation is case insensitive and stricter for wildcard certificates - TCPServer: do not reduce the capacity of the default ThreadPool - added POCO_LOG_DEBUG flag - Zip: fixed a crash caused by an I/O error - added runtest script for windows - added SQlite Full Text Search support - added Thread::trySleep() and Thread::wakeUp() - fixed GH #410: Bug in JSON::Object.stringify() in 1.5.2 - fixed GH #362: Defect in Var::parseString when there is no space between value and newline - fixed GH #314: JSON parsing bug - added GH #313: MetaColumn additions for Data::ODBC and Data::SQLite - fixed GH #346: Make Poco::Data::Date and Poco::Data::Time compare functions const. - fixed GH #341: Compiling poco-1.5.2 for Cygwin - fixed GH #305: There are bugs in Buffer.h - fixed GH #321: trivial build fixes (BB QNX build) - fixed GH #440: MongoDB ObjectId string formatting - added SevenZip library (Guenter Obiltschnig) - fixed GH #442: Use correct prefix length field of Windows IP_ADAPTER_PREFIX structure - improved GH #328: NetworkInterface on Windows XP - fixed GH #154 Add support for MYSQL_TYPE_NEWDECIMAL to Poco::Data::MySQL - fixed GH #290: Unicode support - fixed GH #318: Logger local time doesn't automatically account for DST - fixed GH #363: DateTimeParser tryParse/parse - added HTMLForm Content-Length calculation (Rangel Reale) - Make TemporaryFile append a slash to tempDir - fixed GH #319 android build with cmake - added hasDelegates() method to AbstractEvent - fixed GH #230: Poco::Timer problem - fixed GH #317: Poco::Zip does not support newer Zip file versions. - fixed GH #176: Poco::JSON::Stringifier UTF encoding - fixed GH #458: Broadcast address and subnet mask for IEEE802.11 network interface - fixed GH #456: poco: library install dirs per RUNTIME/LIBRARY/ARCHIVE Release 1.5.2 (2013-09-16) ========================== - added MongoDB library - fixed GH #57: poco-1.5.1: Doesn't compile for Android - added VoidEvent (Arturo Castro) - fixed GH #80: NumberFormatter::append broken - fixed GH #93: ParallelSocketAcceptor virtual functions - optional small object optimization for IPAddress, SocketAddress, Any and Dynamic::Var - SQLite events (insert, update, delete, commit, rollback) handlers - merged GH #91: Improve SQLite multi-threaded use (Rangel Reale) - merged GH #86: Invalid pointers to vector internals (Adrian Imboden) - automatic library initialization macros - fixed GH #110: WebSocket accept() fails when Connection header contains multiple tokens - fixed GH #71: WebSocket and broken Timeouts (POCO_BROKEN_TIMEOUTS) - fixed a warning in Poco/Crypto/OpenSSLInitializer.h - fixed GH #109: Bug in Poco::Net::SMTPClientSession::loginUsingPlain - added clang libc++ build configurations for Darwin and iPhone (Andrea Bigagli) - fixed GH #116: Wrong timezone parsing in DateTimeParse (Matej Knopp) - fixed GH #118: JSON::Object::stringify endless loop - added Recursive and SortedDirectoryIterator (Marian Krivos) - added ListMap (map-like container with preserving insertion order) - MailMessage: attachments saving support and consistent read/write - fixed GH #124: Possible buffer overrun in Foundation/EventLogChannel - fixed GH #119: JSON::Object holds values in ordered map - added JSON::PrintHandler - renamed JSON::DefaultHandler to ParseHandler (breaking change!) - fixed GH #127: Eliminate -Wshadow warnings - fixed GH #79: Poco::Thread leak on Linux - fixed GH #61: static_md build configs for Crypto and NetSSL - fixed GH #130: prefer sysconf over sysctlbyname - fixed GH #131: no timezone global var on OpenBSD - fixed GH #102: Some subprojects don't have x64 solutions for VS 2010 - added GH #75: Poco::Uri addQueryParameter method - Poco::Environment::osDisplayName() now recognizes Windows 8/Server 2012 - fixed GH #140: Poco::Runnable threading cleanup issue - simplified default TCP/HTTPServer construction - fixed GH #141: Application::run() documentation/implementation discrepancy - changed RowFormatter to SharedPtr<RowFormatter> in Data::RecordSet interface (breaking change!) - fixed GH #144: Poco::Dynamic emits invalid JSON - removed naked pointers from Data interfaces - fixed GH #82: name conflict in Data::Keywords::bind - fixed GH #157: MySQL: cannot bind to 'long' data type on Windows/Visual C++ - fixed GH #158: MySQL: MYSQL_BIND 'is_unsigned' member is not set - fixed GH #160: MultipartReader ignores first part, if preamble is missing - fixed GH #156: Possible buffer overrun in Foundation/EventLogChannel - XML: fixed an issue with parsing a memory buffer > 2 GB - upgraded to expat 2.1.0 - Data/ODBC: added support for setting query timeout (via setProperty of "queryTimeout"). Timeout is int, given in seconds. - fixed a potential endless loop in SecureStreamSocketImpl::sendBytes() and also removed unnecessary code. - fixed GH #159: Crash in openssl CRYPTO_thread_id() after library libPocoCrypto.so has been unloaded. - fixed GH #155: MailOutputStream mangles consecutive newline sequences - fixed GH #139: FileChannel::PROP_FLUSH is invalid (contains a tab character) - fixed GH #173: HTTPClientSession::proxyConnect forces DNS lookup of host names - fixed GH #194: MessageNotification constructor is inefficient. - fixed GH #189: Poco::NumberParser::tryParse() documentation bug - fixed GH #172: IPv6 Host field is stripped of Brackets in HTTPClientSession - fixed GH #188: Net: SocketAddress operator < unusable for std::map key - fixed GH #128: DOMWriter incorrectly adds SYSTEM keyword to DTD if PUBLIC is already specified - fixed GH #65: Poco::format() misorders sign and padding specifiers - upgraded bundled SQLite to 3.7.17 - replaced JSON parser with Poco::Web::JSON parser (from sandbox) - added JSON conversion to Dynamic Struct and Array - added VarIterator - modified behavior of empty Var (empty == empty) - added Alignment.h header for C++03 alignment needs - added Data/WebNotifier (DB, WebSocket) example - fixed GH #209: Poco::NumberFormatter double length - fixed GH #204: Upgrade zlib to 1.2.8 - fixed GH #198: The "application.configDir" property is not always created. - fixed GH #185: Poco::NumberFormatter::format(double value, int precision) ignore precision == 0 - fixed GH #138: FreeBSD JSON tests fail - fixed GH #99: JSON::Query an JSON::Object - limited allowed types for JSON::Query to Object, Array, Object::Ptr, Array::Ptr and empty - fixed GH #175: HTMLForm does not read URL parameters on POST or PUT - added GH #187: MySQL: allow access to the underlying connection handle - added GH #186: MySQL: support for MYSQL_SECURE_AUTH - fixed GH #174: MySQL: 4GB allocated when reading any largetext or largeblob field - fixed a potential memory leak in Poco::Net::HTTPClientSession if it is misused (e.g., sendRequest() is sent two times in a row without an intermediate call to receiveResponse(), or by calling receiveResponse() two times in a row without an intermediate call to sendRequest()) - GH #217 - removed a few unnecessary protected accessor methods from Poco::Net::HTTPClientSession that would provide inappropriate access to internal state - merged GH #210: Don't call CloseHandle() twice on Windows; Ability to select the threadpool that will be used to start an Activity(Patrice Tarabbia) - fixed GH #212: JSONConfiguration was missing from the vs90 project(Patrice Tarabbia) - fixed GH #220: add qualifiers for FPEnvironment in C99 (Lucas Clemente) - fixed GH #222: HTTPCookie doesn't support expiry times in the past (Karl Reid) - fixed GH #224: building 1.5.1 on Windows for x64 - fixed GH# 233: ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only) does not work - fixed GH# 231: Compatibility issue with Poco::Net::NetworkInterface - fixed GH# 236: Bug in RecursiveDirectoryIterator - added ColorConsoleChannel and WindowsColorConsoleChannel classes supporting colorizing log messages - fixed GH# 259: Poco::EventLogChannel fails to find 64bit Poco Foundation dll - fixed GH# 254: UTF8::icompare unexpected behavior - Poco::UUID::tryParse() also accepts UUIDs without hyphens. Also updated documentation (links to specifications). - added GH# 268: Method to get JSON object value using Poco::Nullable - fixed GH# 267: JSON 'find' not returning empty result if object is expected but another value is found - Added support for ARM64 architecture and iPhone 5s 64-bit builds (POCO_TARGET_OSARCH=arm64). Release 1.5.1 (2013-01-11) ========================== - using double-conversion library for floating-point numeric/string conversions - added Poco::istring (case-insensitive string) and Poco::isubstr - added SQLite sys.dual (in-memory system table) - applied SF Patch #120: The ExpireLRUCache does not compile with a tuple as key on Visual Studio 2010 - fixed SF Bug #599: JSON::Array and JSON::Object size() member can implicitly lose precision - fixed SF Bug #602: iterating database table rows not correct if no data in table - fixed SF Bug #603: count() is missing in HashMap - fixed GH #23: JSON::Object::stringify throw BadCastException - fixed GH #16: NetworkInterface::firstAddress() should not throw on unconfigured interfaces - Android compile/build support (by Rangel Reale) - TypeHandler::prepare() now takes const-reference - fixed GH #27: Poco::URI::decode() doesn't properly handle '+' - fixed GH #31: JSON implementation bug - fixed SF #597: Configure script ignores cflags - fixed SF #593: Poco 1.5.0 on FreeBSD: cannot find -ldl - added SF #542: SocketAddress() needs port-only constructor - fixed SF #215: Wrong return type in SocketConnector.h - applied SF Patch #97: fix c++0x / clang++ bugs - fixed GH32/SF596: Poco::JSON: Parsing long integer (int64) value fails. - added Net ifconfig sample (contributed by Philip Prindeville) - merged GH #34: add algorithm header (Roger Meier/Philip Prindeville) - fixed GH #26: Cannot compile on gcc - merged SF #111: FTP Client logging (Marian Krivos) - fixed GH #30: Poco::Path::home() throws when called from Windows Service - fixed GH #22: MySQL connection string lowercased - added MySQL support for Date/Time - upgraded SQLite to version 3.7.15.1 (2012-12-19) - improved SQLite execute() return (affected rows) value and added tests - added SQLite::Utility::isThreadSafe() function - added SQLite::Utility::setThreadMode(int mode) function - fixed GH #36: 'distclean' requires 3 traversals of project tree - fixed GH #41: Buffer::resize crash - fixed GH #42: Linux unbundled builds don't link - fixed GH #44: Problems with win x64 build - fixed GH #46: 1.5.1 build fails on OS X when using libc++ - fixed GH #48: Need getArgs() accessor to Util::Application to retrieve start-up arguments - fixed GH #49: NetworkInterface::list doesn't return MAC addresses - fixed GH #51: Android should use isfinite, isinf, isnan and signbit from the std namespace - fixed GH #53: JSON unicode fixes and running tests on invalid unicode JSON - added ParallelAcceptor and ParallelReactor classes - added EOF and error to FIFOBuffer Release 1.5.0 (2012-10-14) ========================== - added JSON library - added Util::JSONConfiguration - added FIFOBuffer and FIFOBufferStream - fixed SF# 3522906: Unregistering handlers from SocketReactor - fixed SF# 3522084: AbstractConfiguration does not support 64-bit integers - HTTPServer::stopAll(): close the socket instead of just shutting it down, as the latter won't wake up a select() on Windows - added SMTPLogger - added cmake support - fixed SF#3538778: NetworkInterface enumeration uses deprecated API - fixed SF#3538779: IPAddress lacks useful constructors: from prefix mask, native SOCKADDR - fixed SF#3538780: SocketAddress needs operator < function - fixed SF#3538775: Issues building on Fedora/Centos, etc. for AMD64 - fixed SF#3538786: Use size_t for describing data-blocks in DigestEngine - added IPAddress bitwise operators (&,|,^,~) - added IPAddress BinaryReader/Writer << and >> operators - modified IPAddress to force IPv6 to lowercase (RFC 5952) - fixed SF#3538785: SMTPClientSession::sendMessage() should take recipient list - added IPAddress::prefixLength() - UTF portability improvements - fixed SF#3556186: Linux shouldn't use <net/if.h> in Net/SocketDefs.h - added IPAddress RFC 4291 compatible site-local prefix support - fixed SF#3012166: IPv6 patch - added SF#3558085: Add formatter to MACAddress object - fixed SF#3552774: Don't hide default target in subordinate makefile - fixed SF#3534307: Building IPv6 for Linux by default - fixed SF#3516844: poco missing symbols with external >=lipcre-8.13 - added SF#3544720: AbstractConfigurator to support 64bit values - fixed SF#3522081: WinRegistryConfiguration unable to read REG_QWORD values - fixed SF#3563626: For Win32 set Up/Running flags on NetworkInterface - fixed SF#3560807: Deprecate setPeerAddress() as this is now done in getifaddrs - fixed SF#3560776: Fix byte-ordering issues with INADDR_* literals - fixed SF#3563627: Set IP address on multicast socket from socket family - fixed SF#3563999: Size BinaryWriter based on buffer's capacity(), not size() - fixed SF#102 Fix building Poco on Debian GNU/kFreeBSD - fixed SF#321 Binding DatTime or Timestamp - fixed SF#307 Detect the SQL driver type at run time - added VS 2012 Projects/Solutions - enhanced and accelerated numeric parsing for integers and floats - fixed SF#590 Segfault on FreeBSD when stack size not rounded - added warn function and warnmsg macro in CppUnit - fixed SF# 3558012 Compilation fails when building with -ansi or -std=c++0x - fixed SF# 3563517 Get rid of loss-of-precision warnings on x64 MacOS - fixed SF#3562244: Portability fix for AF_LINK - fixed SF #3562400: DatagramSocketImpl comment is incorrect Release 1.4.7p1 (2014-11-25) ============================ - Fixed Visual C++ 2010-2013 project files. Release builds now have optimization enabled. - Poco::URI: added constructor to create URI from Path. - fixed GH #618: OS X 10.10 defines PAGE_SIZE macro, conflicts with PAGE_SIZE in Thread_POSIX.cpp - Poco::Net::HTTPClientSession: added support for global proxy configuration - fixed GH #331: Poco::Zip does not support files with .. in the name. - fixed a memory leak in Poco::Net::Context constructor when it fails to load the certificate or private key files. - upgraded bundled SQLite to 3.8.7.2 - fixed GH #229: added missing value() function - fixed GH #69: MySQL empty text/blob Release 1.4.7 (2014-10-06) ========================== - fixed GH #398: PropertyFileConfiguration: input != output - fixed GH #368: Build failure of Poco 1.4.6p2 on FreeBSD 9.2 - fixed GH #318: Logger local time doesn't automatically account for DST - fixed GH #317: Poco::Zip does not support newer Zip file versions. - fixed GH #454: Fix: handle unhandled exceptions - fixed GH #463: XML does not compile with XML_UNICODE_WCHAR_T - fixed GH #282: Using Thread in a global can cause crash on Windows - fixed GH #424: Poco::Timer deadlock - fixed GH #465: Fix result enum type XML_Error -> XML_Status - fixed GH #510: Incorrect RSAKey construction from istream - fixed GH #332: POCO::ConsoleChannnel::initColors() assigns no color to PRIO_TRACE and wrong color to PRIO_FATAL - fixed GH #550: WebSocket fragmented message problem - Poco::Data::MySQL: added SQLite thread cleanup handler - Poco::Net::X509Certificate: improved and fixed domain name verification for wildcard domains - fixed a crash in Foundation testsuite with Visual C++ 2012 - improved and fixed domain name verification for wildcard domains in Poco::Net::X509Certificate - updated TwitterClient sample to use new 1.1 API and OAuth - added Poco::Clock class, which uses a system-provided monotonic clock (if available) and is thus not affected by system realtime clock changes. Monotonic Clock is available on Windows, Linux, OS X and on POSIX platforms supporting clock_gettime() and CLOCK_MONOTONIC. - Poco::Timer, Poco::Stopwatch, Poco::TimedNotificationQueue and Poco::Util::Timer have been changed to use Poco::Clock instead of Poco::Timestamp and are now unaffected by system realtime clock changes. - added Poco::PBKDF2Engine class template - Poco::Net::HTTPCookie: added support for Priority attribute (backport from develop) - fixed makedepend.* scripts to work in paths containing '.o*' (contributed by Per-Erik Bjorkstad, Hakan Bengtsen) - Upgraded bundled SQLite to 3.8.6 - Support for Windows Embedded Compact 2013 (Visual Studio 2012) - Project and solution files for Visual Studio 2013 - Changes for C++11 compatibility. - fixed an issue with receiving empty web socket frames (such as ping) - improved error handling in secure socket classes - Poco::ByteOrder now uses intrinsics if available - added new text encoding classes: Latin2Encoding, Windows1250Encoding, Windows1251Encoding - Zip: Added CM_AUTO, which automatically selects CM_STORE or CM_DEFLATE based on file extension. Used to avoid double-compression of already compressed file formats such as images. Release 1.4.6p4 (2014-04-18) ============================ - no longer use reverse DNS lookups for cert hostname validation - cert hostname validation is case insensitive and more strict - HTMLForm: in URL encoding, percent-encode more special characters - fixed thread priority issues on POSIX platforms with non-standard scheduling policy - XMLWriter no longer escapes apostrophe character - fixed GH #316: Poco::DateTimeFormatter::append() gives wrong result for Poco::LocalDateTime - fixed GH #305 (memcpy in Poco::Buffer uses wrong size if type != char) - Zip: fixed a crash caused by an I/O error (e.g., full disk) while creating a Zip archive Release 1.4.6p3 (2014-04-02) ============================ - Fixed a potential security vulnerability in client-side X509 certificate verification. Release 1.4.6p2 (2013-09-16) ============================ - fixed GH #156: Possible buffer overrun in Foundation/EventLogChannel - XML: fixed an issue with parsing a memory buffer > 2 GB - upgraded to expat 2.1.0 - Data/ODBC: added support for setting query timeout (via setProperty of "queryTimeout"). Timeout is int, given in seconds. - fixed a potential endless loop in SecureStreamSocketImpl::sendBytes() and also removed unnecessary code. - fixed GH #159: Crash in openssl CRYPTO_thread_id() after library libPocoCrypto.so has been unloaded. - fixed GH #155: MailOutputStream mangles consecutive newline sequences - fixed GH# 139: FileChannel::PROP_FLUSH is invalid (contains a tab character) - fixed GH# 173: HTTPClientSession::proxyConnect forces DNS lookup of host names - fixed GH# 194: MessageNotification constructor is inefficient. - fixed GH# 189: Poco::NumberParser::tryParse() documentation bug - fixed GH# 172: IPv6 Host field is stripped of Brackets in HTTPClientSession - fixed GH# 188: Net: SocketAddress operator < unusable for std::map key - fixed GH# 128: DOMWriter incorrectly adds SYSTEM keyword to DTD if PUBLIC is already specified - fixed GH# 65: Poco::format() misorders sign and padding specifiers - upgraded bundled SQLite to 3.7.17 - upgraded bundled zlib to 1.2.8 - fixed a potential memory leak in Poco::Net::HTTPClientSession if it is misused (e.g., sendRequest() is sent two times in a row without an intermediate call to receiveResponse(), or by calling receiveResponse() two times in a row without an intermediate call to sendRequest()) - GH #217 - removed a few unnecessary protected accessor methods from Poco::Net::HTTPClientSession that would provide inappropriate access to internal state - fixed GH# 223 (Poco::Net::HTTPCookie does not support expiry times in the past) - fixed GH# 233: ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only) does not work - added ColorConsoleChannel and WindowsColorConsoleChannel classes supporting colorizing log messages - fixed GH# 259: Poco::EventLogChannel fails to find 64bit Poco Foundation dll - fixed GH# 254: UTF8::icompare unexpected behavior - Poco::UUID::tryParse() also accepts UUIDs without hyphens. Also updated documentation (links to specifications). - Added support for ARM64 architecture and iPhone 5s 64-bit builds (POCO_TARGET_OSARCH=arm64). Release 1.4.6p1 (2013-03-06) ============================ - fixed GH# 71: WebSocket and broken Timeouts (POCO_BROKEN_TIMEOUTS) - fixed an ambiguity error with VC++ 2010 in Data/MySQL testsuite - Poco::Net::NetworkInterface now provides the interface index even for IPv4 - added DNS::reload() as a wrapper for res_init(). - On Linux, Poco::Environment::nodeId() first always tries to obtain the MAC address of eth0, before looking for other interfaces. - Poco::Net::HTTPSession now always resets the buffer in connect() to clear any leftover data from a (failed) previous session - fixed copysign namespace issue in FPEnvironment_DUMMY.h - fixed a warning in Poco/Crypto/OpenSSLInitializer.h - added a build configuration for BeagleBoard/Angstrom - fixed GH# 109: Bug in Poco::Net::SMTPClientSession::loginUsingPlain) - fixed compile errors with clang -std=c++11 - fixed GH# 116: Wrong timezone parsing in DateTimeParse (fix by Matej Knopp) - updated bundled SQLite to 3.7.15.2 Release 1.4.6 (2013-01-10) ========================== - changed FPEnvironment_DUMMY.h to include <cmath> instead of <math.h> - updated bundled SQLite to 3.7.15.1 - fixed GH# 30: Poco::Path::home() throws - fixed SF Patch# 120 The ExpireLRUCache does not compile with a tuple as key on VS2010 - fixed SF# 603 count() is missing in HashMap - Crypto and NetSSL_OpenSSL project files now use OpenSSL *MD.lib library files for static_md builds. Previously, the DLL import libs were used. - Poco::Environment::osDisplayName() now recognizes Windows 8/Server 2012 Release 1.4.5 (2012-11-19) ========================== - added Visual Studio 2012 project files - buildwin.cmd now support building with msbuild for VS2010 and 2012. - added Poco::Optional class - fixed SF# 3558012 Compilation fails when building with -ansi or -std=c++0x - fixed SF# 3563517 Get rid of loss-of-precision warnings on x64 MacOS - fixed SF# 3562244: Portability fix for AF_LINK - fixed SF# 3562400: DatagramSocketImpl comment - fixed SF# 594: Websocket fails with small masked payloads - fixed SF# 588: Missing POCO_ARCH and POCO_ARCH_LITTLE_ENDIAN define for WinCE on SH4 - fixed SF# 581: Out-of-bound array access in Unicode::properties() function. - fixed SF# 590: Segfault on FreeBSD when stack size not rounded - fixed SF# 586: Poco::DateTimeParser and ISO8601 issues when seconds fraction has more than 6 digits - Poco::Net::HTTPSSessionInstantiator::registerInstantiator() now optionally accepts a Poco::Net::Context object. - added Poco::XML::XMLWriter::depth() member function. - added Poco::XML::XMLWriter::uniquePrefix() and Poco::XML::XMLWriter::isNamespaceMapped(). - Poco::FileChannel now supports a new rotateOnOpen property (true/false) which can be used to force rotation of the log file when it's opened. - fixed a bug in Poco::XML::XMLWriter::emptyElement(): need to pop namespace context - OS X builds now use Clang as default compiler - Updated SQLite to 3.7.14.1 - POCO_SERVER_MAIN macro now has a try ... catch block for Poco::Exception and writes the displayText to stderr. - Poco/Platform.h now defines POCO_LOCAL_STATIC_INIT_IS_THREADSAFE macro if the compiler generates thread-safe static local initialization code. Release 1.4.4 (2012-09-03) ========================== - ZipStream now builds correctly in unbundled build. - added proxy digest authentication support to Net library - integrated MySQL BLOB fixes from Franky Braem. - use standard OpenSSL import libraries (libeay32.lib, ssleay32.lib) for Crypto and NetSSL_OpenSSL Visual Studio project files. - fixed a potential buffer corruption issue in Poco::Net::SecureStreamSocket if lazy handshake is enabled and the first attempt to complete the handshake fails - Poco::DateTimeParser::tryParse() without format specifier now correctly parses ISO8601 date/times with fractional seconds. - Poco::Process::launch() now has additional overloads allowing to specify an initial directory and/or environment. - Poco::Net::FTPClientSession: timeout was not applied to data connection, only to control connection. - Fixed potential IPv6 issue with socket constructors if IPv6 SocketAddress is given (contributed by ??????? ????????? <[email protected]>). - Added an additional (optional) parameter to Poco::Thread::setOSPriority() allowing to specify a scheduling policy. Currently this is only used on POSIX platforms and allows specifying SCHED_OTHER (default), SCHED_FIFO or SCHED_RR, as well as other platform-specific policy values. - Added Poco::Crypto::DigestEngine class providing a Poco::DigestEngine interface to the digest algorithms provided by OpenSSL. - Fixed some potential compiler warnings in Crypto library - In some cases, when an SSL exception was unexpectedly closed, a generic Poco::IOException was thrown. This was fixed to throw a SSLConnectionUnexpectedlyClosedException instead. - Added Poco::ObjectPool class template. - Poco::Net::HTTPServer has a new stopAll() method allowing stopping/aborting of all currently active client connections. - The HTTP server framework now actively prevents sending a message body in the response to a HEAD request, or in case of a 204 No Content or 304 Not Modified response status. - fixed a DOM parser performance bug (patch by Peter Klotz) - fixed SF# 3559325: Util Windows broken in non-Unicode - updated iOS build configuration to use xcode-select for finding toolchain - Poco::Net::SecureSocketImpl::shutdown() now also shuts down the underlying socket. - fixed SF# 3552597: Crypto des-ecb error - fixed SF# 3550553: SecureSocketImpl::connect hangs - fixed SF# 3543047: Poco::Timer bug for long startInterval/periodic interval - fixed SF# 3539695: Thread attributes should be destroyed using the pthread_attr_destroy() - fixed SF# 3532311: Not able to set socket option on ServerSocket before bind Added Poco::Net::Socket::init(int af) which can be used to explicitely initialize the underlying socket before calling bind(), connect(), etc. - fixed SF# 3521347: Typo in UnWindows.h undef - fixed SF# 3519474: WinRegistryConfiguration bug Also added tests and fixed another potential issue with an empty root path passed to the constructor. - fixed SF# 3516827: wrong return value of WinRegistryKey::exists() - fixed SF# 3515284: RSA publickey format(X.509 SubjectPublicKeyInfo) - fixed SF# 3503267: VxWorks OS prio is not set in standard constructor - fixed SF# 3500438: HTTPResponse failure when reason is empty - fixed SF# 3495656: numberformater, numberparser error in mingw - fixed SF# 3496493: Reference counting broken in TaskManager postNotification - fixed SF# 3483174: LogFile flushing behavior on Windows Flushing is now configurable for FileChannel and SimpleFileChannel using the "flush" property (true or false). - fixed SF# 3479561: Subsequent IPs on a NIC is not enumerated - fixed SF# 3478665: Permission checks in Poco::File not correct for root - fixed SF# 3475050: Threading bug in initializeNetwork() on Windows - fixed SF# 3552680: websocket small frames bug and proposed fix - fixed a WebSocket interop issue with Firefox - added Poco::Net::MessageHeader::hasToken() - Poco::AtomicCounter now uses GCC 4.3 builtin atomics on more platforms - fixed SF# 3555938: NetSSL: socket closed twice - socket exceptions now include OS error code - fixed SF# 3556975: Need to fix Shared Memory for memory map - Poco::Net::SecureSocketImpl::close() now catches exceptions thrown by its call to shutdown(). - fixed SF# 3535990: POCO_HAVE_IPv6 without POCO_WIN32_UTF8 conflict - fixed SF# 3559665: Poco::InflatingInputStream may not always inflate completely - added Poco::DirectoryWatcher class - fixed SF# 3561464: Poco::File::isDevice() can throw due to sharing violation - Poco::Zip::Compress::addRecursive() has a second variant that allows to specify the compression method. - Upgraded internal SQLite to 3.7.14 Release 1.4.3p1 (2012-01-23) ============================ - fixed SF# 3476926: RegDeleteKeyEx not available on Windows XP 32-bit Release 1.4.3 (2012-01-16) ========================== - fixed a compilation error with Data/MySQL on QNX. - fixed Util project files for WinCE (removed sources not compileable on CE) - removed MD2 license text from Ackowledgements document - fixed iPhone build config for Xcode 4.2 (compiler name changed to llvm-g++) - Poco::Util::XMLConfiguration: delimiter char (default '.') is now configurable. This allows for working with XML documents having element names with '.' in them. - Poco::Util::OptionProcessor: Required option arguments can now be specified as separate command line arguments, as in "--option value" in addition to the "--option=value" format. - Poco::Util::HelpFormatter: improved option help formatting if indentation has been set explicitely. - added Mail sample to NetSSL_OpenSSL, showing use of Poco::Net::SecureSMTPClientSession. - added additional read() overloads to Poco::Net::HTMLForm. - fixed SF# 3440769: Poco::Net::HTTPResponse doesn't like Amazon EC2 cookies. - added support for requiring TLSv1 to Poco::Net::Context. - added an additional constructor to Poco::Net::HTTPBasicCredentials, allowing the object to be created from a string containing a base64-encoded, colon-separated username and password. - Poco::Zip::ZipStreamBuf: fixed a crash if CM_STORE was used. - Added setContentLength64() and getContentLength64() to Poco::Net::HTTPMessage. - added Poco::Environment::osDisplayName(). - fixed SF# 3463096: WinService leaves dangling handles (open() now does not reopen the service handle if it's already open) - fixed SF# 3426537: WinRegistryConfiguration can't read virtualized keys - added Poco::Buffer::resize() - fixed SF# 3441822: thread safety issue in HTTPClientSession: always use getaddrinfo() instead of gethostbyname() on all platforms supporting it - added version resource to POCO DLLs - fixed SF# 3440599: Dir Path in Quotes in PATH cause PathTest::testFind to fail. - fixed SF# 3406030: Glob::collect problem - added Poco::Util::AbstractConfiguration::enableEvents() - Poco::AtomicCounter now uses GCC builtins with GCC 4.1 or newer (contributed by Alexey Milovidov) - made Poco::Logger::formatDump() public as it may be useful for others as well (SF# 3453446) - Poco::Net::DialogSocket now has a proper copy constructor (SF# 3414602) - Poco::Net::MessageHeader and Poco::Net::HTMLForm now limit the maximum number of fields parsed from a message to prevent certain kinds of denial-of-service attacks. The field limit can be changed with the new method setFieldLimit(). The default limit is 100. - Poco::NumberFormatter, Poco::NumberParser and Poco::format() now always use the classic ("C") locale to format and parse floating-point numbers. - added Poco::StreamCopier::copyStream64(), Poco::StreamCopier::copyStreamUnbuffered64() and Poco::StreamCopier::copyToString64(). These functions use a 64-bit integer to count the number of bytes copied. - upgraded internal zlib to 1.2.5 - upgraded internal sqlite to 3.7.9 - XML: integrated bugfix for Expat bug# 2958794 (memory leak in poolGrow) - Added support for HTTP Digest authentication (based on a contribution by Anton V. Yabchinskiy (arn at bestmx dot ru)). For information on how to use this, see the Poco::Net::HTTPCredentials, Poco::Net::HTTPDigestCredentials and Poco::Net::HTTPAuthenticationParams classes. - Poco::Net::HTTPStreamFactory and Poco::Net::HTTPSStreamFactory now support Basic and Digest authentication. Username and password must be provided in the URI. - added Poco::Net::WebSocket, supporting the WebSocket protocol as described in RFC 6455 - NetSSL_OpenSSL: added client-side support for Server Name Indication. Poco::Net::SecureSocketImpl::connectSSL() now calls SSL_set_tlsext_host_name() if its available (OpenSSL 9.8.6f and later). - added Poco::Net::HTTPClientSession::proxyConnect() (factored out from Poco::Net::HTTPSClientSession::connect()) - added Poco::Process::kill(const Poco::ProcessHandle&) which is preferable to kill(pid) on Windows, as process IDs on Windows may be reused. - fixed SF# 3471463: Compiler warnings with -Wformat - Poco::Util::Application::run() now catches and logs exceptions thrown in initialize() - Fixed a WinCE-specific bug in Poco::Util::ServerApplication where uninitialize() would be called twice. - fixed SF# 3471957: WinRegistryKey::deleteKey() unable to delete alt views - Added additional constructor to Poco::ScopedLock and Poco::ScopedLockWithUnlock accepting a timeout as second argument. - Added Poco::Logger::parseLevel() - Poco::format(): an argument that does not match the format specifier no longer results in a BadCastException. The string [ERRFMT] is written to the result string instead. - PageCompiler: added createSession page attribute.
pkgsrc changes: o Update MASTER_SITES and HOMEPAGE (libproxy migrated to GitHub) o Delete patches/patch-libproxy_modules_config__macosx.cpp, now present in the stable release. Changes: New in version 0.4.12 ============================== * Move development to github.com/libproxy/libproxy * Fix fd leak in get_pac (Bug #185) * Detect running MATE session (Bug #186, Part1). * Fix linking of perl bindings to pthread (Bug #182) * Correctly detect spidermonky (mozjs185) (Bug #188) * Stop pxgsettings from segfaulting on exit (Bug #192) * Fix test #10 (Bug #189) * Fix build on Mac OS X (Bug #183) * Add a generic KDE Config module (fix crashes of Qt5 based apps) (issue#4)
Fix CPU detection patch while here. Changes from 2.5.2 to 2.6.0 =========================== - Introduced a new re_evaluate() function for re-evaluating the previous executed array expression without any check. This is meant for accelerating loops that are re-evaluating the same expression repeatedly without changing anything else than the operands. If unsure, use evaluate() which is safer. - The BLOCK_SIZE1 and BLOCK_SIZE2 constants have been re-checked in order to find a value maximizing most of the benchmarks in bench/ directory. The new values (8192 and 16 respectively) give somewhat better results (~5%) overall. The CPU used for fine tuning is a relatively new Haswell processor (E3-1240 v3). - The '--name' flag for `setup.py` returning the name of the package is honored now (issue #215). Changes from 2.5.1 to 2.5.2 =========================== - conj() and abs() actually added as VML-powered functions, preventing the same problems than log10() before (PR #212). Thanks to Tom Kooij for the fix! Changes from 2.5 to 2.5.1 ========================= - Fix for log10() and conj() functions. These produced wrong results when numexpr was compiled with Intel's MKL (which is a popular build since Anaconda ships it by default) and non-contiguous data (issue #210). Thanks to Arne de Laat and Tom Kooij for reporting and providing a nice test unit. - Fix that allows numexpr-powered apps to be profiled with pympler. Thanks to @nbecker. Changes from 2.4.6 to 2.5 ========================= - Added locking for allowing the use of numexpr in multi-threaded callers (this does not prevent numexpr to use multiple cores simultaneously). (PR #199, Antoine Pitrou, PR #200, Jenn Olsen). - Added new min() and max() functions (PR #195, CJ Carey). Changes from 2.4.5 to 2.4.6 =========================== - Fixed some UserWarnings in Solaris (PR #189, Graham Jones). - Better handling of MSVC defines. (#168, Francesc Alted). Changes from 2.4.4 to 2.4.5 =========================== - Undone a 'fix' for a harmless data race. (#185 Benedikt Reinartz, Francesc Alted). - Ignore NumPy warnings (overflow/underflow, divide by zero and others) that only show up in Python3. Masking these warnings in tests is fine because all the results are checked to be valid. (#183, Francesc Alted). Changes from 2.4.3 to 2.4.4 =========================== - Fix bad #ifdef for including stdint on Windows (PR #186, Mike Sarahan). Changes from 2.4.3 to 2.4.4 =========================== * Honor OMP_NUM_THREADS as a fallback in case NUMEXPR_NUM_THREADS is not set. Fixes #161. (PR #175, Stefan Erb). * Added support for AppVeyor (PR #178 Andrea Bedini) * Fix to allow numexpr to be imported after eventlet.monkey_patch(), as suggested in #118 (PR #180 Ben Moran). * Fix harmless data race that triggers false positives in ThreadSanitizer. (PR #179, Clement Courbet). * Fixed some string tests on Python 3 (PR #182, Antonio Valentino). Changes from 2.4.2 to 2.4.3 =========================== * Comparisons with empty strings work correctly now. Fixes #121 and PyTables #184. Changes from 2.4.1 to 2.4.2 =========================== * Improved setup.py so that pip can query the name and version without actually doing the installation. Thanks to Joris Borgdorff. Changes from 2.4 to 2.4.1 ========================= * Added more configuration examples for compiling with MKL/VML support. Thanks to Davide Del Vento. * Symbol MKL_VML changed into MKL_DOMAIN_VML because the former is deprecated in newer MKL. Thanks to Nick Papior Andersen. * Better determination of methods in `cpuinfo` module. Thanks to Marc Jofre. * Improved NumPy version determination (handy for 1.10.0). Thanks to Åsmund Hjulstad. * Benchmarks run now with both Python 2 and Python 3. Thanks to Zoran Plesivčak. Changes from 2.3.1 to 2.4 ========================= * A new `contains()` function has been added for detecting substrings in strings. Only plain strings (bytes) are supported for now. See PR #135 and ticket #142. Thanks to Marcin Krol. * New version of setup.py that allows better management of NumPy dependency. See PR #133. Thanks to Aleks Bunin. Changes from 2.3 to 2.3.1 ========================= * Added support for shift-left (<<) and shift-right (>>) binary operators. See PR #131. Thanks to fish2000! * Removed the rpath flag for the GCC linker, because it is probably not necessary and it chokes to clang.
pkgsrc changes: - set license - revamp build definitions - revamp blk3.mk and bump API_DEPENDS to 0.13 (recent software depends on new ode-config) - drop all local patches as not needed upstream changes: Changes for 0.13 New features: Stable, implicit gyroscopic forces (patch #185 by Joseph Cooper). Bodies with gyroscopic forces won't gain energy anymore. New joint: transmission joint (patch #182 by Dimitris Papavasiliou). Contacts now have rolling friction (patch #184 by Joseph Cooper). Removed the need for defining dSINGLE/dDOUBLE; this is stored now in the generated ode/precision.h header. New joint: Double Ball (AKA "distance joint"). New joint: Double Hinge. Threaded execution support interface added. Optional built-in threading implementation added. Internal threading implementation is excluded by default and to be used, it must be enabled with configure/premake: --disable-threading-intf (--no-threading-intf for Windows/Premake). This allows disabling threading interface support. Bug fixes Joint feedback forces application fixed in QuickStep implementation Bug #89 by Luc: (dJointAddSliderForce() adds a zero force when the parent body is NULL) Bug #88 by Luc: heightfield data assigned to a wrong field in dGeomHeightfieldSetHeightfieldData Fixed cylinder AABB computation. Removed ALLOCA calls from dHashSpace; it should not depend on stack size limits anymore. Bugs in AMotor joint (patch #181) Bugs in PU joint (patch #186) Fixed issue with friction and non-friction constraints being intermixed during constraints random reordering in QuickStep. Fixed matrix inversion bug (patch #183). Fixed issue with some kinds of joints (Ball, DBall, DHinge, Fixed) might overwrite world ERP value with their custom ERP during getInfo2() call and that inappropriate value would then be passed to subsequent joints in solver instead of world ERP. Fixed issues reported in patches #151 and #22 (collisions with SAPSpace and QuadTreeSpace might not work because geometries list was misused in them). Fixed IsPointInPolygon in convex.cpp (patch #160 by Janis Rucis) Fixed zero comparisons in OPCODE to use relative error instead of absolute epsilon value (found by Bill Sellers) Fixed dhinge's last constraint to properly handle rotations. Fixed plane2d joint: uninitialized variables (reported by Dimitris Papavasiliou) Bug #80 by Georg Martius: better handling of capsule-box with deep penetrations. Fixed zero-mu issues: now either mu or mu2 can be set to zero. Other changes Public headers cleaned to cause less pollution of typedefs and macros. Changes for 0.12 Added python bindings, contributed by Gideon Klompje. Integrated libccd from Daniel Fiser, provides new colliders based on GJK, EPA and MPR. Now cylinders can collide with cylinders! New functions have been added: dWorldUseSharedWorkingMemory() dWorldCleanupWorkingMemory() dWorldSetStepMemoryReservationPolicy() dWorldSetStepMemoryManager() dGeomLowLevelControl(): change/query OPCODE trimesh-sphere contact merging behavior at runtime. dGeomGetRelPointPos() (patch #2991622) dGeomGetPosRelPoint() (patch #2991622) dGeomVectorToWorld() (patch #2991622) dGeomVectorFromWorld() (patch #2991622) dWorldStepFast1 API removed along with dWorld[Get/Set]AutoEnableDepthSF1 dWorldStep() and dWorldQuickStep() have been changed to return boolean success status, and avoid allocation on stack. dInitODE2() changed to automatically call AllocateODEDataForThread(dAllocateFlagBasicData) after library initialization. Made sure neither dSINGLE or dDOUBLE is defined by default; the user should always explicitly specify the precision. Fixed a bug in dGeomCopyOffsetRotation(). Macros changed to static inline functions in odemath.h and related files. Improvement for trimesh-plane collision. odecpp classes changed to be inheritable and easily expandable QuadTreeSpace implementation corrected to avoid object-block relation ambiguity due to numeric errors. Fixed bug affecting disabled joints and dWorldStep. Added extern "C" wrapper to dWorldExportDIF(). Fixed bug #2937076: don't try to build demos if drawstuff is disabled. Applied patch #2931174 to make demos work for recent MacOS. Applied patch #2931177 to fix the demos' framerate on X11. Applied patch #2995450 to generate up to four contacts for box-plane collision test and fix contact depths. Applied patch #3030783 to fix drawstuff dimensions being ignored in OSX GLUT port. Applied patch #3429454: fix compilation on some platforms. Heightfield zone boundaries calculation code fixed to also consider whole next cell after the AABB if the AABB ends exactly at the cell boundary. New demo: demo_tracks. Fixed a box-capsule bug: more reasonable normal for deep penetrations. Many internal fixes to world stepping and collision detection code. Changes for 0.11.1 Made the new trimesh collider the default. Added a "-texturepath" option to drawstuff. Heightfield rotation fixed to avoid NaNs while rotating infinite MIN/MAX heights. Incorrect parameter order fixed on contact merging in Sphere-Trimesh collisions. Fixed bug #2685170: use the C99 __func__ instead of __FUNCTION__ when a C99 implementation is available. Remove unused code in demo_joints.cpp. Fix bug in collision categories in demo_jointPU. Added a possibility to initialize/close ODE multiple times recursively has been added. Also, now a call to dSpaceSetManualCleanup() is required for each space right after creation if ODE has been initialized in thread data manual cleanup mode. Thread local data has been cleaned up from OPCODE and OdeTls. New house of cards demo, which stresses the friction handling stability. Changes for 0.11 This release contains many joint-related bug fixes, and some new features like kinematic bodies, better convex-convex collision detection and some extra functions. Fix bug: Fix problem when attaching no body to a joint. Fix problem with dJointGetUniversalAngle2 when the joint is attached to only a body 2. The sign was inverted. Fix bug reported by Tilman: dxJointPU::getInfo1 was setting twice the limit of limot1 to zero and not limot2. Fixed a bug in dSpaceCollide2: if both geoms are not in spaces they would not have valid AABBs. Swapped geometries returned in contacts for OPCODE Trimesh-Plane collisions as they were returned in unnatural order being different from that in GIMPACT Fixed an inverted sign problem on positions of joints PU and PR. Fix bug: when a slider, piston, pu or pr joint had only one body attached to position 2, dJointAttach(jId, 0, bId). The body was not push in the right direction to move back between the limits. Fix bug in dJointGetPUAxis2: the axis was not multiplied with the the rotation matrix of the good body. Fix bug if there is only one body on the PU joint the axis returned was not the right one. New functions: dJointSetUniversalAxis1Offset and dJointSetUniversalAxis2Offset. New functions: dJointEnable, dJointDisable, dJointIsEnabled (patch #2454764). New functions: dGeomTriMeshSetTriMergeCallback/dGeomTriMeshGetTriMergeCallback. New function: void dJointSetPUAnchorOffset (deprecating dJointSetPUAnchorDelta). New functions: dJointGetPRAngle and dJointGetPRAngleRate. New functions: dBodyGetGyroscopicMode and dBodySetGyroscopicMode (patch #2019242). Applied patch #2538046: Heightfield AABB bounds patch. Applied patch #2381592, which adds support for Kinematic Bodies. Applied a patch to make GIMPACT trimesh-ray collisions to be consistent with those in OPCODE (bug #2214623). Applied a patch to make side1, side2 fields of contact structure be always initialized. Applied patch #2158425: This patch enable GIMPACT to work on 64-bit machine. Applied patch #2080674: Improved dBodySetRotation; now exact rotation matrices are preserved until the next simulation step. Enable the motor on the rotoide part of the PR joint. Added Blender script to create ODE convex geoms under tools. Convex-Convex collision detection code is finally (nearly) stable. Changes for 0.10.1 This is a bugfix release, so you shouldn't expect anything to stop working from 0.10. New function: dJointSetPistonAnchorOffset Add new function dJointSetHingeAxisDelta Fix problem with dJointGetPistonPosition and dJointGetPistonPositionRate when the joint is attached to only a body 2. The sign was inversed. Update the slider joint to have the same behavior as the other joint when there is only a body2 attached to it. Rename the new function dJointSetHingeAxisDelta to dJointSetHingeAxisOffset. This will remove confusion with the old function dJointSetHingeAnchorDelta. Bug fix: Max Correcting Vel behavior is now the same as before 0.10. Changes for 0.10 New functions: dInitODE2(), dAllocateODEDataForThread(), dCleanupODEAllDataForThread(). This adds support for ability to run collision detection from multiple threads for separate spaces. New functions: dCheckConfiguration(), dGetConfiguration(), to test how ODE was compiled. New function: dJointGetNumBodies (patch #1901550). New function: dSpaceGetClass (patch #1901637). New function: dSetColliderOverride(), to register custom collision handling functions. Added damping and MaxAngularVel() functions. Applied patch #1335202: Contact Joint Motion (see demo_motion.cpp). Applied patch #1851394: support for GIMPACT with double precision, dCollide fix. Applied patch #1813079 (moved callback). Added possibility to collide a space of lower sublevel as a geometry against another space of a higher level with dSpaceCollide2. dSpaceSetSublevel/dSpaceGetSublevel are used for sublevel assignment/retrieval. Fixed a bug in dJointXXXGetInfo. The value in limot.limit was not always updated. (Ex: If hi and lo limit were changed). New Joint: Prismatic Universal (patch #1828454). New Joint: Piston, with demo. Disabled building shared library by default with autotools. ODE shouldn't be installed as a system library. Fixed drawstuff build issues on OSX. Removed release and debug flags for configure.in: CPPFLAGS, CFLAGS, CXXFLAGS should be set by the user to their liking, respecting autotools policies. Added 'Sweep and Prune' collision space. Optimizations, many bug fixes, and code cleanup. Changes from 0.8 to 0.9 New Feature: CONTACTS_UNIMPORTANT flag added for dCollide() to allow canceling any contact improvements and return any contacts found as soon as possible New feature: Add erp/cfm parameters to fixed and ball joint. SF PATCH 1478244 Assert on zero normalizations, add dSafeNormalize. Added boolean result for dNormalize3() and dNormalize4() so that normalization success could be checked SF Patch 1808007: fix gimpact compiler warning Apply SF patch 1800579: dGeomTriMeshSetData does not work with GIMPACT Fix: heightfield collision could return less contacts than was possible Fix: the deepest contact might be not selected if there was a lack of contact slots in trimesh-trimesh and trimesh-box cases (function exited immediately and did not check for possible contact coincidences). Improvement: optimizations for GIMPACT versions of trimesh-capsule, trimesh-trimesh, trimesh-plane, trimesh-sphere Improvement: dCollideConvexPlane optimized Fix: cylinder-box collision did not respect requested contact count limit Fix SF issue 1729096 by adding dMassSetTrimeshTotal Apply SF patch 1685107: Enforce 1 contact request Apply SF Patch 1697014: Update JointPR code Catch SF BUG 1621938: gimpact only does stride 12. patch 1769851 by Jon Watte: recalc aabb when new setting new data Added Richard Barrington's model loader for XNA (to be used with ODE.NET) 1586733 collision_trimesh_trimesh.cpp OPCODE fix Added Francisco Leon's alternate trimesh-trimesh collider. 1691402 Heighfield performance patch patch 1696933 Fix bug in dWorldExportDIF when joint in "limbo" Renamed "tests" to "demos" and split out unit test project. Updated premake scripts and Visual Studio files; automake files still need to be updated. Make building demos optional. SF patch 1650563 lib64 fixes, SF patch 1646598 Warn against using double precision with gimpact Many more bug fixes and optimizations. Changes from 0.7 to 0.8 New Rotoide - Prismatic Joint Optimisation when dGYROSCOPIC is disabled (default) dJointGetUniversalAngles to efficiently get both angles at once. Changes from 0.6 to 0.7 New heightfield primitive for terrains. Trimesh-Plane collision. Ray-Cylinder collision. Integration of the plane-2d joint. Improved support for convex hulls. Fix for joint limit handling. Half-space optimisation for axis aligned planes. Changes from 0.5 to 0.6 Added flat-capped cylinders. CCylinder has been renamed as Capsule. Added support for geom offsets. Improved stepping function (dWorldQuickStep) Much improved support for trimesh collision shapes Added support for 64-bit systems Started support for convex hulls New and improved build system Lots of bug fixes, stability, and performance improvements Geom Offset Overview Geom offsets allow geom objects to be offset from a body's position. This is useful for cases where an object has an offset centre of mass, or is made up out of several geoms each with their own local position. Native support for geom offsets means that the geomTransform container is now obselete. The real advantage over geomTransform is that there is a much easier interface for setting, getting, and modifying a geom's offset from its body. The elimination of geomTransform simplifies callbacks which no longer have to special case that geom class type. In terms of performance, the new code has a negligible performance difference and a memory improvement compared to using a geomTransform. Geom Offset and Bodies An offset only makes sense for geoms which are connected to bodies. It is an error to attempt to set an offset for a geom which is not connected to a body. When a geom is disconnected from a body, any offset will be automatically eliminated. Thus, the possible states a geom can be in are: Geom Geom on body Geom on body, with an offset To create an offset, just call on of the geomSetOffset functions. The offset will be automatically created if it does not yet exist. Geom offsets are normally set by specifying the offset in local coordinates. An extra set of functions are provided to allow an offset to be determined by providing world coordinates and subtracting them from the current body position. These second set of functions, geomSetOffsetWorldPosition(),etc, allow the user to essentially say "keep the body where it is, and move its geom to this position in the world". Geom Offset API This is defined in the doxygen documentation. Geom Offset affect on existing API The following functions have been updated such that they transparently work with offsets. void dGeomSetPosition (dGeomID, dReal x, dReal y, dReal z) void dGeomSetRotation (dGeomID, const dMatrix3 R) void dGeomSetQuaternion (dGeomID, const dQuaternion) const dReal * dGeomGetPosition (dGeomID) const dReal * dGeomGetRotation (dGeomID) void dGeomGetQuaternion (dGeomID, dQuaternion result) void dGeomGetAABB (dGeomID, dReal aabb[6]) The functions that get a geom's position will return its final position in world coordinates. If a geom is offset, it is no longer true that dGeomGetPosition()==dBodyGetPosition(). Instead, each will return its own world position, with the geom being offset from the body. The functions that set a geom's position will move the body to the position such that the geom will have the position passed in. So if the geom has a positional offset of (0,0,1), and we call dGeomSetPosition(g,10,10,10), the end result will be the body's position being set to (10,10,9). As such, either dGeomSetPosition or dBodySetPosition can be used, depending on which is more convenient. The other position is automatically updated. Geom Offset and geomTransform GeomTransforms are still supported, and all existing code transparently works. When writing new code, however, it is far easier to work with geoms and offsets. The change eliminates a large amount of special casing needed to do when working with geomTransforms. Setting an offset is trivial, and does not require inserting or removing new GeomTransforms from spaces. There is no need to special case getting an offset geom's world position, or setting an offset geom's world position. It is especially useful in the collide callback. The old way required getting the object as the real geom (but without being able to easily grab its Transform, or even its body!), or as its Transform (forcing special casing code to extract the real geom in that case).
NEWS: Version 2.5.3 ------------- - Updated zoneinfo to 2016d - Fixed parser bug where unambiguous datetimes fail to parse when dayfirst is set to true. (gh issue #233, pr #234) - Bug in zoneinfo file on platforms such as Google App Engine which do not do not allow importing of subprocess.check_call was reported and fixed by @savraj (gh issue #239, gh pr #240) - Fixed incorrect version in documentation (gh issue #235, pr #243) Version 2.5.2 ------------- - Updated zoneinfo to 2016c - Fixed parser bug where yearfirst and dayfirst parameters were not being respected when no separator was present. (gh issue #81 and #217, pr #229) Version 2.5.1 ------------- - Updated zoneinfo to 2016b - Changed MANIFEST.in to explicitly include test suite in source distributions, with help from @koobs (gh issue #193, pr #194, #201, #221) - Explicitly set all line-endings to LF, except for the NEWS file, on a per-repository basis (gh pr #218) - Fixed an issue with improper caching behavior in rruleset objects (gh issue #104, pr #207) - Changed to an explicit error when rrulestr strings contain a missing BYDAY (gh issue #162, pr #211) - tzfile now correctly handles files containing leapcnt (although the leapcnt information is not actually used). Contributed by @hjoukl (gh issue #146, pr #147) - Fixed recursive import issue with tz module (gh pr #204) - Added compatibility between tzwin objects and datetime.time objects (gh issue #216, gh pr #219) - Refactored monolithic test suite by module (gh issue #61, pr #200 and #206) - Improved test coverage in the relativedelta module (gh pr #215) - Adjusted documentation to reflect possibly counter-intuitive properties of RFC-5545-compliant rrules, and other documentation improvements in the rrule module (gh issue #105, gh issue #149 - pointer to the solution by @phep, pr #213). Version 2.5.0 ------------- - Updated zoneinfo to 2016a - zoneinfo_metadata file version increased to 2.0 - the updated updatezinfo.py script will work with older zoneinfo_metadata.json files, but new metadata files will not work with older updatezinfo.py versions. Additionally, we have started hosting our own mirror of the Olson databases on a github pages site (https://dateutil.github.io/tzdata/) (gh pr #183) - dateutil zoneinfo tarballs now contain the full zoneinfo_metadata file used to generate them. (gh issue #27, gh pr #85) - relativedelta can now be safely subclassed without derived objects reverting to base relativedelta objects as a result of arithmetic operations. (lp:1010199, gh issue #44, pr #49) - relativedelta 'weeks' parameter can now be set and retrieved as a property of relativedelta instances. (lp: 727525, gh issue #45, pr #49) - relativedelta now explicitly supports fractional relative weeks, days, hours, minutes and seconds. Fractional values in absolute parameters (year, day, etc) are now deprecated. (gh issue #40, pr #190) - relativedelta objects previously did not use microseconds to determine of two relativedelta objects were equal. This oversight has been corrected. Contributed by @elprans (gh pr #113) - rrule now has an xafter() method for retrieving multiple recurrences after a specified date. (gh pr #38) - str(rrule) now returns an RFC2445-compliant rrule string, contributed by @schinckel and @armicron (lp:1406305, gh issue #47, prs #50, #62 and #160) - rrule performance under certain conditions has been significantly improved thanks to a patch contributed by @dekoza, based on an article by Brian Beck (@exogen) (gh pr #136) - The use of both the 'until' and 'count' parameters is now deprecated as inconsistent with RFC2445 (gh pr #62, #185) - Parsing an empty string will now raise a ValueError, rather than returning the datetime passed to the 'default' parameter. (gh issue #78, pr #187) - tzwinlocal objects now have a meaningful repr() and str() implementation (gh issue #148, prs #184 and #186) - Added equality logic for tzwin and tzwinlocal objects. (gh issue #151, pr #180, #184) - Added some flexibility in subclassing timelex, and switched the default behavior over to using string methods rather than comparing against a fixed list. (gh pr #122, #139) - An issue causing tzstr() to crash on Python 2.x was fixed. (lp: 1331576, gh issue #51, pr #55) - An issue with string encoding causing exceptions under certain circumstances when tzname() is called was fixed. (gh issue #60, #74, pr #75) - Parser issue where calling parse() on dates with no day specified when the day of the month in the default datetime (which is "today" if unspecified) is greater than the number of days in the parsed month was fixed (this issue tended to crop up between the 29th and 31st of the month, for obvious reasons) (canonical gh issue #25, pr #30, #191) - Fixed parser issue causing fuzzy_with_tokens to raise an unexpected exception in certain circumstances. Contributed by @MichaelAquilina (gh pr #91) - Fixed parser issue where years > 100 AD were incorrectly parsed. Contributed by @Bachmann1234 (gh pr #130) - Fixed parser issue where commas were not a valid separator between seconds and microseconds, preventing parsing of ISO 8601 dates. Contributed by @RyansS (gh issue #28, pr #106) - Fixed issue with tzwin encoding in locales with non-Latin alphabets (gh issue #92, pr #98) - Fixed an issue where tzwin was not being properly imported on Windows. Contributed by @labrys. (gh pr #134) - Fixed a problem causing issues importing zoneinfo in certain circumstances. Issue and solution contributed by @alexxv (gh issue #97, pr #99) - Fixed an issue where dateutil timezones were not compatible with basic time objects. One of many, many timezone related issues contributed and tested by @labrys. (gh issue #132, pr #181) - Fixed issue where tzwinlocal had an invalid utcoffset. (gh issue #135, pr #141, #142) - Fixed issue with tzwin and tzwinlocal where DST transitions were incorrectly parsed from the registry. (gh issue #143, pr #178) - updatezinfo.py no longer suppresses certain OSErrors. Contributed by @bjamesv (gh pr #164) - An issue that arose when timezone locale changes during runtime has been fixed by @carlosxl and @mjschultz (gh issue #100, prs #107, #109) - Python 3.5 was added to the supported platforms in the metadata (@tacaswell gh pr #159) and the test suites (@moreati gh pr #117). - An issue with tox failing without unittest2 installed in Python 2.6 was fixed by @moreati (gh pr #115) - Several deprecated functions were replaced in the tests by @moreati (gh pr #116) - Improved the logic in Travis and Appveyor to alleviate issues where builds were failing due to connection issues when downloading the IANA timezone files. In addition to adding our own mirror for the files (gh pr #183), the download is now retried a number of times (with a delay) (gh pr #177) - Many failing doctests were fixed by @moreati. (gh pr #120) - Many fixes to the documentation (gh pr #103, gh pr #87 from @radarhere, gh pr #154 from @gpoesia, gh pr #156 from @awsum, gh pr #168 from @ja8zyjits) - Added a code coverage tool to the CI to help improve the library. (gh pr #182) - We now have a mailing list - [email protected], graciously hosted by Python.org. Version 2.4.2 ------------- - Updated zoneinfo to 2015b. - Fixed issue with parsing of tzstr on Python 2.7.x; tzstr will now be decoded if not a unicode type. gh #51 (lp:1331576), gh pr #55. - Fix a parser issue where AM and PM tokens were showing up in fuzzy date stamps, triggering inappropriate errors. gh #56 (lp: 1428895), gh pr #63. - Missing function "setcachesize" removed from zoneinfo __all__ list by @RyansS, fixing an issue with wildcard imports of dateutil.zoneinfo. (gh pr #66). - (PyPi only) Fix an issue with source distributions not including the test suite. Version 2.4.1 ------------- - Added explicit check for valid hours if AM/PM is specified in parser. (gh pr #22, issue #21) - Fix bug in rrule introduced in 2.4.0 where byweekday parameter was not handled properly. (gh pr #35, issue #34) - Fix error where parser allowed some invalid dates, overwriting existing hours with the last 2-digit number in the string. (gh pr #32, issue #31) - Fix and add test for Python 2.x compatibility with boolean checking of relativedelta objects. Implemented by @nimasmi (gh pr #43) and Cédric Krier (lp: 1035038) - Replaced parse() calls with explicit datetime objects in unit tests unrelated to parser. (gh pr #36) - Changed private _byxxx from sets to sorted tuples and fixed one currently unreachable bug in _construct_byset. (gh pr #54) - Additional documentation for parser (gh pr #29, #33, #41) and rrule. - Formatting fixes to documentation of rrule and README.rst. - Updated zoneinfo to 2015a.
API: * Constructing a Query for a non-reference counted PostingSource object will now try to clone the PostingSource object (as happened in 1.3.4 and earlier). This clone code was removed as part of the changes in 1.3.5 to support optional reference counting of PostingSource objects, but that breaks the case when the PostingSource object is on the stack and goes out of scope before the Query object is used. Issue reported by Till Schäfer and analysed by Daniel Vrátil in a bug report against Akonadi: https://bugs.kde.org/show_bug.cgi?id=363741 * Add BM25PlusWeight class implementing the BM25+ weighting scheme, implemented by Vivek Pal (xapian/xapian#104). * Add PL2PlusWeight class implementing the PL2+ weighting scheme, implemented by Vivek Pal (xapian/xapian#108). * LMWeight: Implement Dir+ weighting scheme as DIRICHLET_PLUS_SMOOTHING. Patch from Vivek Pal. * Add CoordWeight class implementing coordinate matching. This can be useful for specialised uses - e.g. to implement sorting by the number of matching filters. * DLHWeight,DPHWeight,PL2Weight: With these weighting schemes, the formulae can give a negative weight contribution for a term in extreme cases. We used to try to handle this by calculating a per-term lower bound on the contribution and subtracting this from the contribution, but this idea is fundamentally flawed as the total offset it adds to a document depends on what combination of terms that document matches, meaning in general the offset isn't the same for every matching document. So instead we now clamp each term's weight contribution to be >= 0. * TfIdfWeight: Always scale term weight by wqf - this seems the logical approach as it matches the weighting we'd get if we weighted every non-unique term in the query, as well as being explicit in the Piv+ formula. * Fix OP_SCALE_WEIGHT to work with all weighting schemes - previously it was ignored when using PL2Weight and LMWeight. * PL2Weight: Greatly improve upper bound on weight: + Split the weight equation into two parts and maximise each separately as that gives an easily solvable problem, and in common cases the maximum is at the same value of wdfn for both parts. In a simple test, the upper bounds are now just over double the highest weight actually achieved - previously they were several hundred times. This approach was suggested by Aarsh Shah in: xapian/xapian#48 + Improve upper bound on normalised wdf (wdfn) - when wdf_upper_bound > doclength_lower_bound, we get a tighter bound by evaluating at wdf=wdf_upper_bound. In a simple test, this reduces the upper bound on wdfn by 36-64%, and the upper bound on the weight by 9-33%. * PL2Weight: Fix calculation of upper_bound when P2>0. P2 is typically negative, but for a very common term it can be positive and then we should use wdfn_lower not wdfn_upper to adjust P_max. * Weight::unserialise(): Check serialised form is empty when unserialising parameter-free schemes BoolWeight, DLHWeight and DPHWeight. * TermGenerator::set_stopper_strategy(): New method to control how the Stopper object is used. Patch from Arnav Jain. * QueryParser: Fix handling of CJK query over multiple prefixes. Previously all the n-gram terms were AND-ed together - now we AND together for each prefix, then OR the results. Fixes #719, reported by Aaron Li. * Add Database::get_revision() method which provides access to the database revision number for chert and glass, intended for use by xapiand. Marked as experimental, so we don't have to go through the usual deprecation cycle if this proves not to be the approach we want to take. Fixes #709, reported by German M. Bravo. * Mark RangeProcessor constructor as `explicit`. * Update to Unicode 9.0.0. * Reimplement ESet and ESetIterator as we did for MSet and MSetIterator in 1.3.5. ESetIterator internally now counts down to the end of the ESet, so the end test is now against 0, rather than against eset.size(). And more of the trivial methods are now inlined, which reduces the number of relocations needed to load the library, and should give faster code which is a very similar size to before. * MSetIterator and ESetIterator are now STL-compatible random_access_iterators (previously they were only bidirectional_iterators). * TfIdfWeight: Support freq and squared IDF normalisations. Patch from Vivek Pal. * New Xapian::Query::OP_INVALID to provide an "invalid" query object. * Reject OP_NEAR/OP_PHRASE with non-leaf subqueries early to avoid a potential segmentation fault if the non-leaf subquery decayed at just the wrong moment. See TritonDataCenter#508. * Reduce positional queries with a MatchAll or PostingSource subquery to MatchNothing (since these subqueries have no positional information, so the query can't match). * Deprecate ValueRangeProcessor and introduce new RangeProcessor class as a replacement. RangeProcessor()::operator()() method returns Xapian::Query, so a range can expand to any query. OP_INVALID is used to signal that a range is not recognised. Fixes #663. * Combining of ranges over the same quantity with OP_OR is now handled by an explicit "grouping" parameter, with a sensible default which works for value range queries. Boolean term prefixes and FieldProcessor now support "grouping" too, so ranges and other filters can now be grouped together. * Formally deprecate WritableDatabase::flush(). The replacement commit() method was added in 1.1.0, so code can be switched to use this and still work with 1.2.x. * Fix handling of a self-initialised PIMPL object (e.g. Xapian::Query q(q);). Previously the uninitialised pointer was copied to itself, resulting in undefined behaviour when the object was used to destroyed. This isn't something you'd see in normal code, but it's a cheap check which can probably be optimised away by the compiler (GCC 6 does). * The Snipper class has been replaced with a new MSet::snippet() method. The implementation has also been redone - the existing implementation was slower than ideal, and didn't directly consider the query so would sometimes selects a snippet which doesn't contain any of the query terms (which users quite reasonably found surprising). The new implementation is faster, will always prefer snippets containing query terms, and also understands exact phrases and wildcards. Fixes TritonDataCenter#211. * Add optional reference counting support for ErrorHandler, ExpandDecider, KeyMaker, PostingSource, Stopper and TermGenerator. Fixes TritonDataCenter#186, reported by Richard Boulton. (ErrorHandler's reference counting isn't actually used anywhere in xapian-core currently, but means we can hook it up in 1.4.x if ticket TritonDataCenter#3 gets addressed). * Deprecate public member variables of PostingSource. The new getters and/or setters added in 1.2.23 and 1.3.5 are preferred. Fixes TritonDataCenter#499, reported by Joost Cassee. * Reimplement MSet and MSetIterator. MSetIterator internally now counts down to the end of the MSet, so the end test is now against 0, rather than against mset.size(). And more of the trivial methods are now inlined, which reduces the number of relocations needed to load the library, and should give faster code which is a very similar size to before. * Only issue prefetch hints for documents if MSet::fetch() is called. It's not useful to send the prefetch hint right before the actual read, which was happening since the implementation of prefetch hints in 1.3.4. Fixes #671, reported by Will Greenberg. * Fix OP_ELITE_SET selection in multi-database case - we were selecting different sets for each subdatabase, but removing the special case check for termfreq_max == 0 solves that. * Remove "experimental" marker from FieldProcessor, since we're happy with the API as-is. Reported by David Bremner on xapian-discuss. * Remove "experimental" marker from Database::check(). We've not had any negative feedback on the current API. * Databse::check() now checks that doccount <= last_docid. * Database::compact() on a WritableDatabase with uncommitted changes could produce a corrupted output. We now throw Xapian::InvalidOperationError in this case, with a message suggesting you either commit() or open the database from disk to compact from. Reported by Will Greenberg on #xapian-discuss * Add Arabic stemmer. Patch from Assem Chelli in xapian/xapian#45 * Improve the Arabic stopword list. Patch from Assem Chelli. * Make functions defined in xapian/iterator.h 'inline'. * Don't force the user to specify the metric in the geospatial API - GreatCircleMetric is probably what most users will want, so a sensible default. * Xapian::DBCHECK_SHOW_BITMAP: This was added in 1.3.0 (so has never been in a stable release) and was superseded by Xapian::DBCHECK_SHOW_FREELIST in 1.3.2, so just remove it. * Make setting an ErrorHandler a no-op - this feature is deprecated and we're not aware of anyone using it. We're hoping to rework ErrorHandler in 1.4.x, which will be simpler without having to support the current behaviour as well as the new. See TritonDataCenter#3. * Update to Unicode 8.0.0. Fixes #680. * Overhaul database compaction API. Add a Xapian::Database::compact() method, with the Database object specifying the source database(s). Xapian::Compactor is now just a functor to use if you want to control progress reporting and/or the merging of user metadata. The existing API has been reimplemented using the new one, but is marked as deprecated. * Add support for a default value when sorting. Fixes TritonDataCenter#452, patch from Richard Boulton. * Make all functor objects non-copyable. Previously some were, some weren't, but it's hard to correctly make use of this ability. Fixes #681. * Fix use after free with WILDCARD_LIMIT_MOST_FREQUENT. If we tried to open a postlist after processing such a wildcard, the postlist hint could be pointing to a PostList object which had been deleted. Fixes #696, reported by coventry. * Add support for optional reference counting of MatchSpy objects. * Improve Document::get_description() - the output is now always valid UTF-8, doesn't contain implementation details like "Document::Internal", and more clearly reports if the document is linked to a database. * Remove XAPIAN_CONST_FUNCTION marker from sortable_serialise_() helper, as it writes to the passed in buffer, so it isn't const or pure. Fixes decvalwtsource2 testcase failure when compiled with clang. * Make PostingSource::set_maxweight() public - it's hard to wrap for the bindings as a protected method. Fixes TritonDataCenter#498, reported by Richard Boulton. * Database: + Add new flag Xapian::DB_RETRY_LOCK which allows opening a database for writing to wait until it can get a write lock. (Fixes TritonDataCenter#275, reported by Richard Boulton). + Fix Database::get_doclength_lower_bound() over multiple databases when some are empty or consist only of zero-length documents. Previously this would report a lower bound of zero, now it reports the same lowest bound as a single database containing all the same documents. + Database::check(): When checking a single table, handle the ".glass" extension on glass database tables, and use the extension to guide the decision of which backend the table is from. * Query: + Add new OP_WILDCARD query operator, which expands wildcards lazily, so now we create the PostList tree for a wildcard directly, rather than creating an intermediate Query tree. OP_WILDCARD offers a choice of ways to limit wildcard expansion (no limit, throw an exception, use the first N by term name, or use the most frequent N). (See tickets TritonDataCenter#48 and #608). * QueryParser: + Add new set_max_expansion() method which provides access to OP_WILDCARD's choice of ways to limit expansion and can set limits for partial terms as well as for wildcards. Partial terms now default to the 100 most frequent matching terms. (Completes #608, reported by boomboo). + Deprecate set_max_wildcard_expansion() in favour of set_max_expansion(). * Add support for optional reference counting of FieldProcessor and ValueRangeProcessor objects. * Update Unicode character database to Unicode 7.0.0. * New Xapian::Snipper class from Mihai Bivol's GSOC 2012 project. (mostly fixes TritonDataCenter#211) * Fix all get_description() methods to always return UTF-8 text. (fixes #620) * Database::check(): + Alter to take its "out" parameter as a pointer to std::ostream instead of a reference, and make passing NULL mean "do not produce output", and make the second and third parameters optional, defaulting to a quiet check. + Escape invalid UTF-8 data in keys and tags reported by xapian-check, using the same code we use to clean up strings returned by get_description() methods. + Correct failure message which talks above the root block when it's actually testing a leaf key. + Rename DBCHECK_SHOW_BITMAP to DBCHECK_SHOW_FREELIST (old name still provided for now, but flagged as deprecated - DBCHECK_SHOW_BITMAP was new in 1.3.0, so will likely be removed before 1.4.0). * Methods and functions which take a string to unserialise now consistently call that parameter "serialised". * Weight: Make number of distinct terms indexing each document and the collection frequency of the term available to subclasses. Patch from Gaurav Arora's Language Modelling branch. * WritableDatabase: Add support for multiple subdatabases, and support opening a stub database containing multiple subdatabases as a WritableDatabase. * WritableDatabase can now be constructed from just a pathname (defaulting to opening the database with DB_CREATE_OR_OPEN). * WritableDatabase: Add flags which can be bitwise OR-ed into the second argument when constructing: + Xapian::DB_NO_SYNC: to disable use of fsync, etc + Xapian::DB_DANGEROUS: to enable in-place updates + Xapian::DB_BACKEND_CHERT: if creating, create a chert database + Xapian::DB_BACKEND_GLASS: if creating, create a glass database + Xapian::DB_NO_TERMLIST: create a database without a termlist (see TritonDataCenter#181) + Xapian::DB_FULL_SYNC flag - if this is set for a database, we use the Mac OS X F_FULL_SYNC instead of fdatasync()/fsync()/etc on the version file when committing. * Database: Add optional flags argument to constructor - the following can be bitwise OR-ed into it: + Xapian::DB_BACKEND_CHERT (only open a chert database) + Xapian::DB_BACKEND_GLASS (only open a glass database) + Xapian::DB_BACKEND_STUB (only open a stub database) * Xapian::Auto::open_stub() and Xapian::Chert::open() are now deprecated in favour of these new flags. * Add LMWeight class, which implements the Unigram Language Modelling weighting scheme. Patch from Gaurav Arora. * Add implementations of a number of DfR weighting schemes (BB2, DLH, DPH, IfB2, IneB2, InL2, PL2). Patches from Aarsh Shah. * Add support for the Bo1 query expansion scheme. Patch from Aarsh Shah. * Add Enquire::set_time_limit() method which sets a timelimit after which check_at_least will be disabled. * Database: Trying to perform operations on a database with no subdatabases now throws InvalidOperationError not DocNotFoundError. * Query: Implement new OP_MAX query operator, which returns the maximum weight of any of its subqueries. (see TritonDataCenter#360) * Query: Add methods to allow introspection on Query objects - currently you can read the leaf type/operator, how many subqueries there are, and get a particular subquery. For a query which is a term, Query::get_terms_begin() allows you to get the term. (see TritonDataCenter#159) * Query: Only simplify OP_SYNONYM with a single subquery if that subquery is a term or MatchAll. * Avoid two vector copies when storing term positions in most common cases. * Reimplement version functions to use a single function in libxapian which returns a pointer to a static const struct containing the version information, with inline wrappers in the API header which call this. This means we only need one relocation instead of 4, reducing library load time a little. * Make TermGenerator flags an anonymous enum, and typedef TermGenerator::flags to int for backward compatibility with existing user code which uses it. * Stem: Fix incorrect Unicode codepoints for o-double-acute and u-double-acute in the Hungarian Snowball stemmer. Reported by Tom Lane to snowball-discuss. * Stem: Add an early english stemmer. * Provide the stopword lists from Snowball plus an Arabic one, installed in ${prefix}/share/xapian-core/stopwords/. Patch from Assem Chelli, fixes TritonDataCenter#269. * Improve check for direct inclusion of Xapian subheaders in user code to catch more cases. * Add simple API to help with creating language-idiomatic iterator wrappers in <xapian/iterator.h>. * Give an compilation error if user code tries to include API headers other than xapian.h directly - these other headers are an internal implementation detail, but experience has shown that some people try to include them directly. Please just use '#include <xapian.h>' instead. * Update Unicode character database to Unicode 6.2.0. * Add FieldProcessor class (ticket#128) - currently marked as an experimental API while we sort out how best to sort out exactly how it interacts with other QueryParser features. * Add implementation of several TF-IDF weighting schemes via a new TfIdfWeight class. * Add ExpandDeciderFilterPrefix class which only return terms with a particular prefix. (fixes TritonDataCenter#467) * QueryParser: Adjust handling of Unicode opening/closing double quotes - if a quoted boolean term was started with ASCII double quote, then only ASCII double quote can end it, as otherwise it's impossible to quote a term containing Unicode double quotes. * Database::check(): If the database can't be opened, don't emit a bogus warning about there being too many documents to cross-check doclens. * TradWeight,BM25Weight: Throw SerialisationError instead of NetworkError if unserialise() fails. * QueryParser: Change the default stemming strategy to STEM_SOME, to eliminate the API gotcha that setting a stemmer is ignored until you also set a strategy. * Deprecate Xapian::ErrorHandler. (ticket#3) * Stem: Generate a compact and efficient table to decode language names. This is both faster and smaller than the approach we were using, with the added benefit that the table is auto-generated. * xapian.h: + Add check for Qt headers being included before us and defining 'slots' as a macro - if they are, give a clear error advising how to work around this (previously compilation would fail with a confusing error). + Add a similar check for Wt headers which also define 'slots' as a macro by default. * Update Unicode character database to Unicode 6.1.0. (ticket#497) * TermIterator returned by Enquire::get_matching_terms_begin(), Query::get_terms_begin(), Database::synonyms_begin(), QueryParser::stoplist_begin(), and QueryParser::unstem_begin() now stores the list of terms to iterate much more compactly. * QueryParser: + Allow Unicode curly double quote characters to start and/or end phrases. + The set_default_op() method will now reject operators which don't make sense to set. The operators which are allowed are now explicitly documented in the API docs. * Query: The internals have been completely reimplemented (ticket#280). The notable changes are: + Query objects are smaller and should be faster. + More readable format for Query::get_description(). + More compact serialisation format for Query objects. + Query operators are no longer flattened as you build up a tree (but the query optimiser still combines groups of the same operator). This means that Query objects are truly immutable, and so we don't need to copy Query objects when composing them. This should also fix a few O(n*n) cases when building up an n-way query pair-wise. (ticket#273) + The Query optimiser can do a few extra optimisations. * There's now explicit support for geospatial search (this API is currently marked as experimental). (ticket#481) * There's now an API (currently experimental) for checking the integrity of databases (partly addresses ticket#238). * Database::reopen() now returns true if the database may have been reopened (previously it returned void). (ticket#548) * Deprecate Xapian::timeout in favour of POSIX type useconds_t. * Deprecate Xapian::percent and use int instead in the API and our own code. * Deprecate Xapian::weight typedef in favour of just using double and change all uses in the API and our own code. (ticket#560) * Rearrange members of Xapian::Error to reduce its size (from 48 to 40 bytes on x86-64 Linux). * Assignment operators for PositionIterator and TermIterator now return *this rather than void. * PositionIterator, PostingIterator, TermIterator and ValueIterator now handle their reference counts in hand-crafted code rather than using intrusive_ptr/RefCntPtr, which means the compiler can inline the destructor and default constructor, so a comparison to an end iterator should now optimise to a simple NULL pointer check, but without the issues which the ValueIteratorEnd_ proxy class approach had (such as not working in templates or some cases of overload resolution). * Enquire: + Previously, Enquire::get_matching_terms_begin() threw InvalidArgumentError if the query was empty. Now we just return an end iterator, which is more consistent with how empty queries behave elsewhere. + Remove the deprecated old-style match spy approach of using a MatchDecider. * Remove deprecated Sorter class and MultiValueSorter subclass. * Xapian::Stem: + Add stemmers for Armenian (hy), Basque (eu), and Catalan (ca). + Stem::operator= now returns a reference to the assigned-to object. testsuite: * OP_SCALE_WEIGHT: Check top weight is non-zero - if it is zero, tests which try to check that OP_SCALE_WEIGHT works will always pass. * testsuite: Check SerialisationError descriptions from Xapian::Weight subclasses mention the weighting scheme name. * Merge queryparsertest and termgentest into apitest. Their testcases now use the backend manager machinery in the testharness, so we don't have to hard-code use of inmemory and chert backends, but instead run them under all backends which support the required features. This fixes some test failures when both chert and glass are disabled due to trying to run spelling tests with the inmemory backend. * Avoid overflowing collection frequency in totaldoclen1. We're trying to test total document length doesn't wrap, so avoid collection freq overflowing in the process, as that triggers errors when running the testsuite under ubsan. We should handle collection frequency overflow better, but that's a separate issue. * Add some test coverage for ESet::get_ebound(). * Fix testcase notermlist1 to check correct table extension - ".glass" not ".DB" (chert doesn't support DB_NO_TERMLIST). * unittest: We can't use Assert() to unit test noexcept code as it throws an exception if it fails. Instead set up macros to set a variable and return if an assertion fails in a unittest testcase, and check that variable in the harness. * Add unit test for internal C_isupper(), etc functions. * If command line option --verbose/-v isn't specified, set the verbosity level from environmental variable VERBOSE. * Re-enable replicate3 for glass, as it no longer fails. * Add more test coverage for get_unique_terms(). * Don't leave an extra fd open when starting xapian-tcpsrv for remotetcp tests. * Extend checkstatsweight1 to check that Weight::get_collection_freq() returns the same number as Database::get_collection_freq(). * queryparsertest: Add testcase for FieldProcessor on boolean prefix with quoted contents. * queryparsertest: Enable some disabled cases which actually work (in some cases with slightly tweaked expected answers which are equivalent to those that were shown). * Make use of the new writable multidatabase feature to simplify the multi-database handling in the test harness. * Change querypairwise1_helper to repeat the query build 100 times, as with a fast modern machine we were sometimes trying with so many subqueries that we would run out of stack. * apitest: Use Xapian::Database::check() in cursordelbug1. (partly addresses TritonDataCenter#238) * apitest: Test Query ops with a single MatchAll subquery. * apitest: New testcase readonlyparentdir1 to ensure that commit works with a read-only parent directory. * tests/generate-api_generated: Test that the string returned by a get_description() method isn't empty. * Use git commit hash in title of test coverage reports generated from a git tree. * Make unittest use the test harness, so it gets all the valgrind and fd leak checks, and other handy features all the other tests have. * Improve test coverage in several places. * Compress generated HTML files in coverage report. matcher: * Fix stats passed to Weight with OP_SYNONYM. Previously the number of unique terms was never calculated, and a term which matched all documents would be optimised to an all-docs postlist, which fails to supply the correct wdf info. * Use floating point calculation for OR synonym freq estimates. The division was being done as an integer division, which means the result was always getting rounded down rather than rounded to the nearest integer. * Fix upper bound on matches for OP_XOR. Due to a reversed conditional, the estimate could be one too low in some cases where the XOR matched all the documents in the database. * Improve lower bound on matches for OP_XOR. Previously the lower bound was always set to 0, which is valid, but we can often do better. * Optimise value range which is a superset of the bounds. If the value frequency is equal to the doccount, such a range is equivalent to MatchAll, and we now avoid having to read the valuestream at all. * Optimise OP_VALUE_RANGE when the upper bound can't be exceeded. In this case, we now use ValueGePostList instead of ValueRangePostList. * Streamline collation of statistics for use by weighting schemes - tests show a 2% or so increase in speed in some cases. * If a term matches all documents and its weight doesn't depend on its wdf, we can optimise it to MatchAll (the previous requirement that maxpart == 0 was unnecessarily strict). * Fix the check for a term which matches all documents to use the sub-db termfreq, not the combined db termfreq. * When we optimise a postlist for a term which matches all documents to use MatchAll, we still need to set a weight object on it to get percentages calculated correctly. * Drop MatchNothing subqueries in OR-like situations in add_subquery() rather than adding them and then handling it later. * Handle the left side of AND_NOT and AND_MAYBE being MatchNothing in add_subquery() rather than in done(). * Handle QueryAndLike with a MatchNothing subquery in add_subquery() rather than done(). * Query: Multi-way operators now store their subquery pointers in a custom class rather than std::vector<Xapian::Query>. The custom class take the same amount of space, or often less. It's particularly efficient when there are two subqueries, which is very desirable as we no longer flatten a subtree of the same operator as we build the query. * Optimise an unweighted query term which matches all the documents in a subdatabase to use the "MatchAll" postlist. (ticket#387) glass backend: * Fix allterms with prefix on glass with uncommitted changes. Glass aims to flush just the relevant postlist changes in this case but the end of the range to flush was wrong, so we'd only actually flush changes for a term exactly matching the prefix. Fixes #721. * Fix Database::check() parsing of glass changes file header. In practice this was unlikely to actually cause problems. * Make glass the default backend. The format should now be stable, except perhaps in the unlikely event that a bug emerges which requires a format change to address. * Don't explicitly store the 2 byte "component_of" counter for the first component of every Btree entry in leaf blocks - instead use one of the upper bits of the length to store a "first component" flag. This directly saves 2 bytes per entry in the Btree, plus additional space due to fewer blocks and fewer levels being needed as a result. This particularly helps the position table, which has a lot of entries, many of them very small. The saving would be expected to be a little less than the saving from the change which shaved 2 bytes of every Btree item in 1.3.4 (since that saved 2 bytes multiple times for large entries which get split into multiple items). A simple test suggests a saving of several percent in total DB size, which fits that. This change reduces the maximum component size to 8194, which affects tables with a 64KB blocksize in normal use and tables with >= 16KB blocksize with full compaction. * Refactor glass backend key comparison - == and < operations are replaced by a compare() function returns negative, 0 or positive (like strcmp(), memcmp() and std::string::compare()). This allows us to avoid a final compare to check for equality when binary chopping, and to terminate early if the binary chop hits the exact entry. * If a cursor is moved to an entry which doesn't exist, we need to step back to the first component of previous entry before we can read its tag. However we often don't actually read its tag (e.g. if we only wanted the key), so make this stepping back lazy so we can avoid doing it when we don't want to read the tag. * Avoid creating std::string objects to hold data when compressing and decompressing tags with zlib. * Store minimum compression length per table in the version file, with 0 meaning "don't compress". Currently you can only change this setting with a hex editor on the file, but now it is there we can later make use of it without needing a database format change. * Database::check() now performs additional consistency checks for glass. Reported by Jean-Francois Dockes and Bob Cargill via xapian-discuss. * Database::check(): check docids don't exceed db_last_docid when checking a single glass table. * We now throw DatabaseCorruptError in a few cases where it's appropriate but we didn't previously, in particular in the case where all the files in a DB have been truncated to zero size (which makes handling of this case consistent with chert). * Fix compaction to a single file which already exists. This was hanging. Noted by Will Greenberg on #xapian. * Shave 2 bytes of every Btree item (which will probably typically reduce database size by several percent). * More compact item format for branch blocks - 2 bytes per item smaller. This means each branch block can branch more ways, reducing the number of Btree levels needed, which is especially helpful for cold-cache search times. * Track an upper bound on spelling word frequency. This isn't currently used, but will be useful for improving the spelling algorithm, and we want to stabilise the glass backend format. See TritonDataCenter#225, reported by Philip Neustrom. * Support 64-bit docids in the glass backend on-disk format. This changes the encoding used by pack_uint_preserving_sort() to one which supports 64 bit values, and is a byte smaller for values 16384-32767, and the same size for all other 32 bit values. Fixes #686, from original report by James Aylett. * Use memcpy() not memmove() when no risk of overlap. * Store length of just the key data itself, allowing keys to be up to 255 bytes long - the previous limit was 252. * Change glass to store DB stats in the version file. Previously we stored them in a special item in the postlist table, but putting them in the version file reduces the number of block reads required to open the database, is simpler to deal with, and means we can potentially recalculate tight upper and lower bounds for an existing database without having to commit a new revision. * Add support for a single-file variant for glass. Currently such databases can only be opened for reading - to create one you need to use xapian-compact (or its API equivalent). You can embed such databases within another file, and open them by passing in a file descriptor open on that file and positioned at the offset the database starts at). Database::check() also supports them. Fixes #666, reported by Will Greenberg (and previously suggested on xapian-discuss by Emmanuel Engelhart). * Avoid potential DB corruption with full-compaction when using 64K blocks. * Where posix_fadvise() is available, use it to prefetch postlist Btree blocks from the level below the root block which will be needed for postlists of terms in the query, and similarly for the docdata table when MSet::fetch() is called. Based on patch by Will Greenberg in #671. * When reporting freelist errors during a database check, distinguish between a block in use and in the freelist, and a block in the freelist more than once. * Fix compaction and database checking for the change to the format of keys in the positionlist table which happened in 1.3.2. * After splitting a block, we always insert the new block in the parent right after the block it was split from - there's no need to binary chop. * Avoid infinite recursion when we hit the end of the freelist block we're reading and the end of the block we're writing at the same time. * Fix freelist handling to allow for the newly loaded first block of the freelist being already used up. * 'brass' backend renamed to 'glass' - we decided to use names in ascending alphabetical order to make it easier to understand which backend is newest, and since 'flint' was used recently, we skipped over 'd', 'e' and 'f'. * Change positionlist keys to be ordered by term first rather than docid first, which helps phrase searching significantly. For more efficient indexing, positionlist changes are now batched up in memory and written out in key order. * Use a separate cursor for each position list - now we're ordering the position B-tree by term first, phrase matching would cause a single cursor to cycle between disparate areas of the B-tree and reread the same blocks repeatedly. * Reference count blocks in the btree cursor, so cursors can cheaply share blocks. This can significantly reduce the amount of memory used by cursors for queries which contain a lot of terms (e.g. wildcards which expand to a lot of terms). * Under glass, optimise the turning of a query into a postlist to reuse the cursor blocks which are the same as the previous term's postlist. This is particularly effective for a wildcard query which expands to a lot of terms. * Keep track of unused blocks in the Btrees using freelists rather than bitmaps. (fixes TritonDataCenter#40) * Eliminate the base files, and instead store the root block and freelist pointers in the "iamglass" file. * When compacting, sync all the tables together at the end. * In DB_DANGEROUS mode, update the version file in-place. * Only actually store the document data if it is non-empty. The table which holds the document data is now lazily created, so won't exist if you never set the document data. * Iterating positional data now decodes it lazily, which should speed up phrases which include common words. * Compress changesets in brass replication. Increments the changeset version. Ticket TritonDataCenter#348 * Restore two missing lines in database checking where we report a block with the wrong level. * When checking if a block was newly allocated in this revision, just look at its revision number rather than consulting the base file's bitmap. remote backend: * Improve handling of invalid remote stub entries: Entries without a colon now give an error rather than being quietly skipped; IPv6 isn't yet supported, but entries with IPv6 addresses now result in saner errors (previously the colons confused the code which looks for a port number). * Fix hook for remote support of user weighting schemes. The commented-out code used entirely the wrong class - now we use the server object we have access to, and forward the method to the class which needs it. * Avoid dividing zero by zero when calculating the average length for an empty database. * Bump remote protocol version to 38.0, due to extra statistics being tracked for weighting. * Make Weight::Internal track if any max_part values are set, so we don't need to serialise them when they've not been set. * Prefix compress list of terms and metadata keys in the remote protocol. This requires a remote protocol major version bump. * When propagating exceptions from a remote backend server, the protocol now sends a numeric code to represent which exception is being propagated, rather than the name of the type, as a number can be turned back into an exception with a simple switch statement and is also less data to transfer. (ticket#471) * Remote protocol (these changes require a protocol major version bump): + Unify REPLY_GREETING and REPLY_UPDATE. + Send (last_docid - doccount) instead of last_docid and (doclen_ubound - doclen_lbound) instead of doclen_ubound. * Remove special check which gives a more helpful error message when a modern client is used against a remote server running Xapian <= 0.9.6. chert backend: * When using 64-bit Xapian::docid, consistently use the actual maximum valid docid value rather instead of the maximum value the type can hold. * Where posix_fadvise() is available, use it to prefetch postlist Btree blocks from the level below the root block which will be needed for postlists of terms in the query, and similarly for the record table when MSet::fetch() is called. Based on patch by Will Greenberg in #671. * Fix problems with get_unique_terms() on a modified chert database. * Fix xapian-check on a single chert table, which seg faulted in 1.3.2. * Improve DBCHECK_FIX: + if fixing a whole database, we now take the revision from the first table we successfully look at, which should be correct in most cases, and is definitely better than trying to determine the revision of each broken table independently. + handle a zero-sized .DB file. + After we successfully regenerate baseA, remove any empty baseB file to prevent it causing problems. Tracked down with help from Phil Hands. * Iterating positional data now decodes it lazily, which should speed up phrases which include common words. flint backend: * Remove flint backend.
- Simplify nospace handling in global completion (#195) - Specially handle all characters in COMP_WORDBREAKS (#187) - Use setuptools tests-require directive, fixes #186 - Complete files using the specified interpreter (#192) - Fix completion for scripts run via python (#191) - Clarify argument to register-python-argcomplete (#190) - Fix handling of commas and other special chars (#172); handle more special characters (#189) - Fix handling of special characters in tcsh (#188) - Update my_shlex to Python 3.6 version (#184) - Fix additional trailing space in exact matches (#183) - Adjust tests to handle development environments (#180) - Fix tcsh tests on OSX (#177); Update bash on OSX (#176); Check output of test setup command (#179) - Optionally disable duplicated flags (#143) - Add default_completer option to CompletionFinder.call (#167) - Let bash add or suppress trailing space (#159)
The mpich package uses mpicc to compile C programs.
mpicc is a bash script located at /opt/local/bin/mpicc.
Currently mpicc fails with the following error when trying to compile any program:
The problem is that the script has a "bad" LDFLAGS variable. It reads like so:
LDFLAGS="-L/opt/local/lib -Wl,-R/opt/local/lib -L/opt/local/lib
-L/opt/local/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.3
-Wl,-R/opt/local/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.3
-L/opt/local/gcc47/lib -Wl,-R/opt/local/gcc47/lib -L/usr/lib/amd64
-Wl,-R/usr/lib/amd64 -L/opt/local/lib -Wl,-R/opt/local/lib "
The LDFLAGS variable should not have any /usr/lib/amd64 paths. So they should be replaced with /opt/local/lib/amd64. Modifying LDFLAGS to read as follows fixed the problem, and mpicc works fine now:
LDFLAGS="-L/opt/local/lib -Wl,-R/opt/local/lib -L/opt/local/lib -L/opt/local/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.3 -Wl,-R/opt/local/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.3 -L/opt/local/gcc47/lib -Wl,-R/opt/local/gcc47/lib -L/opt/local/lib/amd64 -Wl, -R/opt/local/lib/amd64 -L/opt/local/lib -Wl,-R/opt/local/lib "
The text was updated successfully, but these errors were encountered: