From d862deefcff1013ced77c238b2711e8023a1cfe7 Mon Sep 17 00:00:00 2001 From: "arseny.kapoulkine" Date: Sun, 27 Jun 2010 21:31:32 +0000 Subject: docs: Moved all changelog contents to changes.txt git-svn-id: http://pugixml.googlecode.com/svn/trunk@548 99668b35-9821-0410-8761-19e4c4f06640 --- docs/changes.txt | 315 +++++++++++++++++++++++++++++-------------------------- docs/manual.qbk | 35 +------ 2 files changed, 172 insertions(+), 178 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index 5d62116..82812e9 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -1,146 +1,169 @@ -1.07.2010 - v0.9 - Major release, featuring extended and improved Unicode support, miscellaneous performance improvements, bug fixes and more. - - Major Unicode improvements: - Introduced encoding support (automatic/manual encoding detection on load, manual encoding selection on save, conversion from/to UTF8, UTF16 LE/BE, UTF32 LE/BE) - Introduced wchar_t mode (you can set PUGIXML_WCHAR_MODE define to switch pugixml internal encoding from UTF8 to wchar_t; all functions are switched to their Unicode variants) - Load/save functions now support wide streams - - Bug fixes: - Fixed document corruption on failed parsing bug - XPath string <-> number conversion improvements (increased precision, fixed crash for huge numbers) - Improved DOCTYPE parsing: now parser recognizes all well-formed DOCTYPE declarations - Fixed xml_attribute::as_uint() for large numbers (i.e. 2^32-1) - - Specification changes: - parse() API changed to load_buffer/load_buffer_inplace/load_buffer_inplace_own; load_buffer APIs do not require zero-terminated strings. - Renamed as_utf16 to as_wide - Changed xml_node::offset_debug return type and xml_parse_result::offset type to ptrdiff_t - Nodes/attributes with empty names are now printed as :anonymous - - Performance improvements: - Optimized document parsing and saving - Changed internal memory management: internal allocator is used for both metadata and name/value data; allocated pages are deleted if all allocations from them are deleted - Optimized memory consumption: sizeof(xml_node_struct) reduced from 40 bytes to 32 bytes on x86 - Optimized debug mode parsing/saving by order of magnitude - - Miscellaneous: - All STL includes except in pugixml.hpp are replaced with forward declarations - - Compatibility: - parse() and as_utf16 are left for compatibility (these functions are deprecated and will be removed in pugixml-1.0) - Wildcard functions, document_order/precompute_document_order functions, format_write_bom_utf8 and parse_wnorm_attribute flags are deprecated and will be removed in version 1.0 - xpath_type_t enumeration was renamed to xpath_value_type - -8.11.2009 - v0.5 - Major bugfix release. Changes: - - XPath bugfixes: - Fixed translate(), lang() and concat() functions (infinite loops/crashes) - Fixed compilation of queries with empty literal strings ("") - Fixed axis tests: they never add empty nodes/attributes to the resulting node set now - Fixed string-value evaluation for node-set (the result excluded some text descendants) - Fixed self:: axis (it behaved like ancestor-or-self::) - Fixed following:: and preceding:: axes (they included descendent and ancestor nodes, respectively) - Minor fix for namespace-uri() function (namespace declaration scope includes the parent element of namespace declaration attribute) - Some incorrect queries are no longer parsed now (i.e. foo: *) - Fixed text()/etc. node test parsing bug (i.e. foo[text()] failed to compile) - Fixed root step (/) - it now selects empty node set if query is evaluated on empty node - Fixed string to number conversion ("123 " converted to NaN, "123 .456" converted to 123.456 - now the results are 123 and NaN, respectively) - Node set copying now preserves sorted type; leads to better performance on some queries - - Miscellaneous bugfixes: - Fixed xml_node::offset_debug for PI nodes - Added empty attribute checks to xml_node::remove_attribute - Fixed node_pi and node_declaration copying - Const-correctness fixes - - Specification changes: - xpath_node::select_nodes() and related functions now throw exception if expression return type is not node set (instead of assertion) - xml_node::traverse() now sets depth to -1 for both begin() and end() callbacks (was 0 at begin() and -1 at end()) - In case of non-raw node printing a newline is output after PCDATA inside nodes if the PCDATA has siblings - UTF8 -> wchar_t conversion now considers 5-byte UTF8-like sequences as invalid - - New features: - Added xpath_node_set::operator[] for index-based iteration - Added xpath_query::return_type() - Added getter accessors for memory-management functions - -17.09.2009 - v0.42 - Maintenance release. Changes: - Fixed deallocation in case of custom allocation functions or if delete[] / free are incompatible - XPath parser fixed for incorrect queries (i.e. incorrect XPath queries should now always fail to compile) - Added PUGIXML_API/PUGIXML_CLASS/PUGIXML_FUNCTION configuration macros to control class/function attributes - Const-correctness fixes for find_child_by_attribute - Improved compatibility (miscellaneous warning fixes, fixed cstring include dependency for GCC) - Fixed iterator begin/end and print function to work correctly for empty nodes - Added xml_attribute::set_value overloads for different types - -8.02.2009 - v0.41 - Maintenance release. Changes: - - Fixed bug with node printing (occasionally some content was not written to output stream) - -18.01.2009 - v0.4 - Changes: - - Bugs: - Documentation fix in samples for parse() with manual lifetime control - Fixed document order sorting in XPath (it caused wrong order of nodes after xpath_node_set::sort and wrong results of some XPath queries) - - Node printing changes: - Single quotes are no longer escaped when printing nodes - Symbols in second half of ASCII table are no longer escaped when printing nodes; because of this, format_utf8 flag is deleted as it's no longer needed and format_write_bom is renamed to format_write_bom_utf8. - Reworked node printing - now it works via xml_writer interface; implementations for FILE* and std::ostream are available. As a side-effect, xml_document::save_file now works without STL. - - New features: - Added unsigned integer support for attributes (xml_attribute::as_uint, xml_attribute::operator=) - Now document declaration () is parsed as node with type node_declaration when parse_declaration flag is specified (access to encoding/version is performed as if they were attributes, i.e. doc.child("xml").attribute("version").as_float()); corresponding flags for node printing were also added - Added support for custom memory management (see set_memory_management_functions for details) - Implemented node/attribute copying (see xml_node::insert_copy_* and xml_node::append_copy for details) - Added find_child_by_attribute and find_child_by_attribute_w to simplify parsing code in some cases (i.e. COLLADA files) - Added file offset information querying for debugging purposes (now you're able to determine exact location of any xml_node in parsed file, see xml_node::offset_debug for details) - Improved error handling for parsing - now load(), load_file() and parse() return xml_parse_result, which contains error code and last parsed offset; this does not break old interface as xml_parse_result can be implicitly casted to bool. - -31.10.2007 - v0.34 - Maintenance release. Changes: - - Improved compatibility (supported Digital Mars C++, MSVC 6, CodeWarrior 8, PGI C++, Comeau, supported PS3 and XBox360) - Fixed bug with loading from text-mode iostreams - Fixed leak when transfer_ownership is true and parsing is failing - Fixed bug in saving (\r and \n are now escaped in attribute values) - PUGIXML_NO_EXCEPTION flag for platforms without exception handling - Renamed free() to destroy() - some macro conflicts were reported - -21.02.2007 - v0.3 - Refactored, reworked and improved version. Changes: - - Interface: - Added XPath - Added tree modification functions - Added no STL compilation mode - Added saving document to file - Refactored parsing flags - Removed xml_parser class in favor of xml_document - Added transfer ownership parsing mode - Modified the way xml_tree_walker works - Iterators are now non-constant - - Implementation: - Support of several compilers and platforms - Refactored and sped up parsing core - Improved standard compliancy - Added XPath implementation - Fixed several bugs - -6.11.2006 - v0.2 - First public release. Changes: - - Introduced child_value(name) and child_value_w(name) - Fixed child_value() (for empty nodes) - Fixed xml_parser_impl warning at W4 - parse_eol_pcdata and parse_eol_attribute flags + parse_minimal optimizations - Optimizations of strconv_t - -15.07.2006 - v0.1 - First private release for testing purposes +//[changes_last_version``` + +[clog 1.07.2010 - version 0.9] + +Major release, featuring extended and improved Unicode support, miscellaneous performance improvements, bug fixes and more. + +* Major Unicode improvements: + # Introduced encoding support (automatic/manual encoding detection on load, manual encoding selection on save, conversion from/to UTF8, UTF16 LE/BE, UTF32 LE/BE) + # Introduced wchar_t mode (you can set PUGIXML_WCHAR_MODE define to switch pugixml internal encoding from UTF8 to wchar_t; all functions are switched to their Unicode variants) + # Load/save functions now support wide streams + +* Bug fixes: + # Fixed document corruption on failed parsing bug + # XPath string <-> number conversion improvements (increased precision, fixed crash for huge numbers) + # Improved DOCTYPE parsing: now parser recognizes all well-formed DOCTYPE declarations + # Fixed xml_attribute::as_uint() for large numbers (i.e. 2^32-1) + +* Specification changes: + # parse() API changed to load_buffer/load_buffer_inplace/load_buffer_inplace_own; load_buffer APIs do not require zero-terminated strings. + # Renamed as_utf16 to as_wide + # Changed xml_node::offset_debug return type and xml_parse_result::offset type to ptrdiff_t + # Nodes/attributes with empty names are now printed as :anonymous + +* Performance improvements: + # Optimized document parsing and saving + # Changed internal memory management: internal allocator is used for both metadata and name/value data; allocated pages are deleted if all allocations from them are deleted + # Optimized memory consumption: sizeof(xml_node_struct) reduced from 40 bytes to 32 bytes on x86 + # Optimized debug mode parsing/saving by order of magnitude + +* Miscellaneous: + # All STL includes except in pugixml.hpp are replaced with forward declarations + +* Compatibility: + # parse() and as_utf16 are left for compatibility (these functions are deprecated and will be removed in version 1.0) + # Wildcard functions, document_order/precompute_document_order functions, format_write_bom_utf8 and parse_wnorm_attribute flags are deprecated and will be removed in version 1.0 + # xpath_type_t enumeration was renamed to xpath_value_type; xpath_type_t is deprecated and will be removed in version 1.0 + +```//] + +[clog 8.11.2009 - version 0.5] + +Major bugfix release. Changes: + +* XPath bugfixes: + # Fixed translate(), lang() and concat() functions (infinite loops/crashes) + # Fixed compilation of queries with empty literal strings ("") + # Fixed axis tests: they never add empty nodes/attributes to the resulting node set now + # Fixed string-value evaluation for node-set (the result excluded some text descendants) + # Fixed self:: axis (it behaved like ancestor-or-self::) + # Fixed following:: and preceding:: axes (they included descendent and ancestor nodes, respectively) + # Minor fix for namespace-uri() function (namespace declaration scope includes the parent element of namespace declaration attribute) + # Some incorrect queries are no longer parsed now (i.e. foo: *) + # Fixed text()/etc. node test parsing bug (i.e. foo[text()] failed to compile) + # Fixed root step (/) - it now selects empty node set if query is evaluated on empty node + # Fixed string to number conversion ("123 " converted to NaN, "123 .456" converted to 123.456 - now the results are 123 and NaN, respectively) + # Node set copying now preserves sorted type; leads to better performance on some queries + +* Miscellaneous bugfixes: + # Fixed xml_node::offset_debug for PI nodes + # Added empty attribute checks to xml_node::remove_attribute + # Fixed node_pi and node_declaration copying + # Const-correctness fixes + +* Specification changes: + # xpath_node::select_nodes() and related functions now throw exception if expression return type is not node set (instead of assertion) + # xml_node::traverse() now sets depth to -1 for both begin() and end() callbacks (was 0 at begin() and -1 at end()) + # In case of non-raw node printing a newline is output after PCDATA inside nodes if the PCDATA has siblings + # UTF8 -> wchar_t conversion now considers 5-byte UTF8-like sequences as invalid + +* New features: + # Added xpath_node_set::operator[] for index-based iteration + # Added xpath_query::return_type() + # Added getter accessors for memory-management functions + +[clog 17.09.2009 - version 0.42] + +Maintenance release. Changes: + +* Bug fixes: + # Fixed deallocation in case of custom allocation functions or if delete[] / free are incompatible + # XPath parser fixed for incorrect queries (i.e. incorrect XPath queries should now always fail to compile) + # Const-correctness fixes for find_child_by_attribute + # Improved compatibility (miscellaneous warning fixes, fixed cstring include dependency for GCC) + # Fixed iterator begin/end and print function to work correctly for empty nodes + +* New features: + # Added PUGIXML_API/PUGIXML_CLASS/PUGIXML_FUNCTION configuration macros to control class/function attributes + # Added xml_attribute::set_value overloads for different types + +8.02.2009 - v0.41 + Maintenance release. Changes: + +* Bug fixes: + # Fixed bug with node printing (occasionally some content was not written to output stream) + +[clog 18.01.2009 - version 0.4] + +Changes: + +* Bug fixes: + # Documentation fix in samples for parse() with manual lifetime control + # Fixed document order sorting in XPath (it caused wrong order of nodes after xpath_node_set::sort and wrong results of some XPath queries) + +* Node printing changes: + # Single quotes are no longer escaped when printing nodes + # Symbols in second half of ASCII table are no longer escaped when printing nodes; because of this, format_utf8 flag is deleted as it's no longer needed and format_write_bom is renamed to format_write_bom_utf8. + # Reworked node printing - now it works via xml_writer interface; implementations for FILE* and std::ostream are available. As a side-effect, xml_document::save_file now works without STL. + +* New features: + # Added unsigned integer support for attributes (xml_attribute::as_uint, xml_attribute::operator=) + # Now document declaration () is parsed as node with type node_declaration when parse_declaration flag is specified (access to encoding/version is performed as if they were attributes, i.e. doc.child("xml").attribute("version").as_float()); corresponding flags for node printing were also added + # Added support for custom memory management (see set_memory_management_functions for details) + # Implemented node/attribute copying (see xml_node::insert_copy_* and xml_node::append_copy for details) + # Added find_child_by_attribute and find_child_by_attribute_w to simplify parsing code in some cases (i.e. COLLADA files) + # Added file offset information querying for debugging purposes (now you're able to determine exact location of any xml_node in parsed file, see xml_node::offset_debug for details) + # Improved error handling for parsing - now load(), load_file() and parse() return xml_parse_result, which contains error code and last parsed offset; this does not break old interface as xml_parse_result can be implicitly casted to bool. + +[clog 31.10.2007 - version 0.34] + +Maintenance release. Changes: + +* Bug fixes: + # Fixed bug with loading from text-mode iostreams + # Fixed leak when transfer_ownership is true and parsing is failing + # Fixed bug in saving (\r and \n are now escaped in attribute values) + # Renamed free() to destroy() - some macro conflicts were reported + +* New features: + # Improved compatibility (supported Digital Mars C++, MSVC 6, CodeWarrior 8, PGI C++, Comeau, supported PS3 and XBox360) + # PUGIXML_NO_EXCEPTION flag for platforms without exception handling + +[clog 21.02.2007 - version 0.3] + +Refactored, reworked and improved version. Changes: + +* Interface: + # Added XPath + # Added tree modification functions + # Added no STL compilation mode + # Added saving document to file + # Refactored parsing flags + # Removed xml_parser class in favor of xml_document + # Added transfer ownership parsing mode + # Modified the way xml_tree_walker works + # Iterators are now non-constant + +* Implementation: + # Support of several compilers and platforms + # Refactored and sped up parsing core + # Improved standard compliancy + # Added XPath implementation + # Fixed several bugs + +[clog 6.11.2006 - version 0.2] + +First public release. Changes: + +* Bug fixes: + # Fixed child_value() (for empty nodes) + # Fixed xml_parser_impl warning at W4 + +* New features: + # Introduced child_value(name) and child_value_w(name) + # parse_eol_pcdata and parse_eol_attribute flags + parse_minimal optimizations + # Optimizations of strconv_t + +[clog 15.07.2006 - version 0.1] + +First private release for testing purposes diff --git a/docs/manual.qbk b/docs/manual.qbk index e46756e..d6ef174 100644 --- a/docs/manual.qbk +++ b/docs/manual.qbk @@ -52,38 +52,9 @@ If filing an issue is not possible due to privacy or other concerns, you can con Only changes since version 0.5 are listed here; you can [@changes.txt view the full changelog here]. -Version 0.9: - -* Major Unicode improvements: - # Introduced encoding support (automatic/manual encoding detection on load, manual encoding selection on save, conversion from/to UTF8, UTF16 LE/BE, UTF32 LE/BE) - # Introduced wchar_t mode (you can set PUGIXML_WCHAR_MODE define to switch pugixml internal encoding from UTF8 to wchar_t; all functions are switched to their Unicode variants) - # Load/save functions now support wide streams - -* Bug fixes: - # Fixed document corruption on failed parsing bug - # XPath string <-> number conversion improvements (increased precision, fixed crash for huge numbers) - # Improved DOCTYPE parsing: now parser recognizes all well-formed DOCTYPE declarations - # Fixed xml_attribute::as_uint() for large numbers (i.e. 2^32-1) - -* Specification changes: - # parse() API changed to load_buffer/load_buffer_inplace/load_buffer_inplace_own; load_buffer APIs do not require zero-terminated strings. - # Renamed as_utf16 to as_wide - # Changed xml_node::offset_debug return type and xml_parse_result::offset type to ptrdiff_t - # Nodes/attributes with empty names are now printed as :anonymous - -* Performance improvements: - # Optimized document parsing and saving - # Changed internal memory management: internal allocator is used for both metadata and name/value data; allocated pages are deleted if all allocations from them are deleted - # Optimized memory consumption: sizeof(xml_node_struct) reduced from 40 bytes to 32 bytes on x86 - # Optimized debug mode parsing/saving by order of magnitude - -* Miscellaneous: - # All STL includes except in pugixml.hpp are replaced with forward declarations - -* Compatibility: - # parse() and as_utf16 are left for compatibility (these functions are deprecated and will be removed in pugixml-1.0) - # Wildcard functions, document_order/precompute_document_order functions, format_write_bom_utf8 and parse_wnorm_attribute flags are deprecated and will be removed in version 1.0 - # xpath_type_t enumeration was renamed to xpath_value_type +[template clog[cont] ''''''[cont]''''''] +[import changes.txt] +[changes_last_version] [endsect] [/changelog] -- cgit v1.2.3