libxml-ruby 2.9.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/HISTORY +811 -790
  3. data/LICENSE +20 -20
  4. data/MANIFEST +166 -166
  5. data/README.rdoc +188 -184
  6. data/Rakefile +1 -1
  7. data/ext/libxml/libxml.c +80 -80
  8. data/ext/libxml/ruby_libxml.h +75 -75
  9. data/ext/libxml/ruby_xml.c +0 -84
  10. data/ext/libxml/ruby_xml.h +0 -10
  11. data/ext/libxml/ruby_xml_attr.h +12 -12
  12. data/ext/libxml/ruby_xml_attr_decl.c +153 -153
  13. data/ext/libxml/ruby_xml_attr_decl.h +11 -11
  14. data/ext/libxml/ruby_xml_attributes.c +275 -275
  15. data/ext/libxml/ruby_xml_attributes.h +15 -15
  16. data/ext/libxml/ruby_xml_document.c +21 -27
  17. data/ext/libxml/ruby_xml_document.h +11 -11
  18. data/ext/libxml/ruby_xml_dtd.c +2 -13
  19. data/ext/libxml/ruby_xml_dtd.h +9 -9
  20. data/ext/libxml/ruby_xml_error.c +996 -996
  21. data/ext/libxml/ruby_xml_error.h +12 -12
  22. data/ext/libxml/ruby_xml_html_parser.c +89 -92
  23. data/ext/libxml/ruby_xml_html_parser.h +10 -10
  24. data/ext/libxml/ruby_xml_html_parser_context.h +10 -10
  25. data/ext/libxml/ruby_xml_html_parser_options.c +46 -46
  26. data/ext/libxml/ruby_xml_html_parser_options.h +10 -10
  27. data/ext/libxml/ruby_xml_input_cbg.h +20 -20
  28. data/ext/libxml/ruby_xml_io.c +0 -1
  29. data/ext/libxml/ruby_xml_io.h +10 -10
  30. data/ext/libxml/ruby_xml_namespace.c +153 -153
  31. data/ext/libxml/ruby_xml_namespace.h +10 -10
  32. data/ext/libxml/ruby_xml_namespaces.c +293 -293
  33. data/ext/libxml/ruby_xml_namespaces.h +9 -9
  34. data/ext/libxml/ruby_xml_node.c +100 -143
  35. data/ext/libxml/ruby_xml_node.h +13 -11
  36. data/ext/libxml/ruby_xml_parser.c +91 -94
  37. data/ext/libxml/ruby_xml_parser.h +12 -12
  38. data/ext/libxml/ruby_xml_parser_context.h +10 -10
  39. data/ext/libxml/ruby_xml_parser_options.c +66 -66
  40. data/ext/libxml/ruby_xml_parser_options.h +12 -12
  41. data/ext/libxml/ruby_xml_reader.c +45 -37
  42. data/ext/libxml/ruby_xml_reader.h +17 -17
  43. data/ext/libxml/ruby_xml_relaxng.h +10 -10
  44. data/ext/libxml/ruby_xml_sax2_handler.c +3 -3
  45. data/ext/libxml/ruby_xml_sax2_handler.h +10 -10
  46. data/ext/libxml/ruby_xml_sax_parser.c +116 -120
  47. data/ext/libxml/ruby_xml_sax_parser.h +10 -10
  48. data/ext/libxml/ruby_xml_schema.h +809 -809
  49. data/ext/libxml/ruby_xml_schema_attribute.c +109 -109
  50. data/ext/libxml/ruby_xml_schema_attribute.h +15 -15
  51. data/ext/libxml/ruby_xml_schema_element.c +94 -94
  52. data/ext/libxml/ruby_xml_schema_element.h +14 -14
  53. data/ext/libxml/ruby_xml_schema_facet.c +52 -52
  54. data/ext/libxml/ruby_xml_schema_facet.h +13 -13
  55. data/ext/libxml/ruby_xml_schema_type.c +259 -259
  56. data/ext/libxml/ruby_xml_schema_type.h +9 -9
  57. data/ext/libxml/ruby_xml_version.h +9 -9
  58. data/ext/libxml/ruby_xml_writer.c +1136 -1136
  59. data/ext/libxml/ruby_xml_writer.h +10 -10
  60. data/ext/libxml/ruby_xml_xinclude.c +16 -16
  61. data/ext/libxml/ruby_xml_xinclude.h +11 -11
  62. data/ext/libxml/ruby_xml_xpath.c +42 -36
  63. data/ext/libxml/ruby_xml_xpath.h +13 -13
  64. data/ext/libxml/ruby_xml_xpath_context.c +1 -1
  65. data/ext/libxml/ruby_xml_xpath_context.h +9 -9
  66. data/ext/libxml/ruby_xml_xpath_expression.c +81 -81
  67. data/ext/libxml/ruby_xml_xpath_expression.h +10 -10
  68. data/ext/libxml/ruby_xml_xpath_object.c +5 -2
  69. data/ext/libxml/ruby_xml_xpath_object.h +17 -17
  70. data/ext/libxml/ruby_xml_xpointer.c +99 -99
  71. data/ext/libxml/ruby_xml_xpointer.h +11 -11
  72. data/ext/vc/libxml_ruby.sln +17 -15
  73. data/lib/libxml.rb +1 -6
  74. data/lib/libxml/node.rb +2 -78
  75. data/lib/libxml/parser.rb +0 -266
  76. data/lib/libxml/sax_parser.rb +0 -17
  77. data/lib/libxml/schema.rb +66 -66
  78. data/lib/libxml/schema/attribute.rb +19 -19
  79. data/lib/libxml/schema/element.rb +27 -27
  80. data/lib/libxml/schema/type.rb +29 -29
  81. data/script/benchmark/depixelate +634 -634
  82. data/script/benchmark/hamlet.xml +9054 -9054
  83. data/script/benchmark/parsecount +170 -170
  84. data/script/benchmark/throughput +41 -41
  85. data/script/test +6 -6
  86. data/test/c14n/given/example-1.xml +14 -14
  87. data/test/c14n/given/example-2.xml +11 -11
  88. data/test/c14n/given/example-3.xml +18 -18
  89. data/test/c14n/given/example-4.xml +9 -9
  90. data/test/c14n/given/example-5.xml +12 -12
  91. data/test/c14n/given/example-6.xml +2 -2
  92. data/test/c14n/given/example-7.xml +11 -11
  93. data/test/c14n/given/example-8.xml +11 -11
  94. data/test/c14n/given/example-8.xpath +9 -9
  95. data/test/c14n/result/1-1-without-comments/example-1 +3 -3
  96. data/test/c14n/result/1-1-without-comments/example-2 +10 -10
  97. data/test/c14n/result/1-1-without-comments/example-3 +13 -13
  98. data/test/c14n/result/1-1-without-comments/example-4 +8 -8
  99. data/test/c14n/result/1-1-without-comments/example-5 +2 -2
  100. data/test/c14n/result/with-comments/example-1 +5 -5
  101. data/test/c14n/result/with-comments/example-2 +10 -10
  102. data/test/c14n/result/with-comments/example-3 +13 -13
  103. data/test/c14n/result/with-comments/example-4 +8 -8
  104. data/test/c14n/result/with-comments/example-5 +3 -3
  105. data/test/c14n/result/without-comments/example-1 +3 -3
  106. data/test/c14n/result/without-comments/example-2 +10 -10
  107. data/test/c14n/result/without-comments/example-3 +13 -13
  108. data/test/c14n/result/without-comments/example-4 +8 -8
  109. data/test/c14n/result/without-comments/example-5 +2 -2
  110. data/test/model/atom.xml +12 -12
  111. data/test/model/bands.iso-8859-1.xml +4 -4
  112. data/test/model/bands.utf-8.xml +4 -4
  113. data/test/model/bands.xml +4 -4
  114. data/test/model/books.xml +153 -153
  115. data/test/model/merge_bug_data.xml +58 -58
  116. data/test/model/ruby-lang.html +238 -238
  117. data/test/model/rubynet.xml +79 -79
  118. data/test/model/shiporder.rnc +28 -28
  119. data/test/model/shiporder.rng +86 -86
  120. data/test/model/shiporder.xml +22 -22
  121. data/test/model/shiporder.xsd +39 -39
  122. data/test/model/soap.xml +27 -27
  123. data/test/model/xinclude.xml +4 -4
  124. data/test/tc_attributes.rb +0 -6
  125. data/test/tc_error.rb +157 -158
  126. data/test/tc_node.rb +33 -17
  127. data/test/tc_node_edit.rb +0 -15
  128. data/test/tc_node_pi.rb +39 -39
  129. data/test/tc_parser.rb +0 -48
  130. data/test/tc_reader.rb +12 -53
  131. data/test/tc_writer.rb +447 -447
  132. data/test/tc_xpath.rb +1 -1
  133. data/test/test_helper.rb +2 -2
  134. metadata +3 -8
  135. data/ext/libxml/extconf.h +0 -4
  136. data/lib/libxml/ns.rb +0 -22
  137. data/lib/libxml/properties.rb +0 -23
  138. data/lib/libxml/reader.rb +0 -29
  139. data/lib/libxml/xpath_object.rb +0 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 19bae1f5824f98a959ddf6f19674ac0f2a750388
4
- data.tar.gz: 8a2003b0eed642100d6520306a3cf609b739b2a7
3
+ metadata.gz: 865194cd65ca9ad9a3ccc047d89b5a68186ef97f
4
+ data.tar.gz: 7d29d8cb6cd5d40cba78f171ac92d61f3b48d1d1
5
5
  SHA512:
6
- metadata.gz: 730aeb8b63e92c5b362853b34df0e0cd84b502d5425f29a55722f74ddb1e98eabdc29f53d66bf5434460d96fe415e3e03c52aa3f3a024fb358f6b9d16bc7576e
7
- data.tar.gz: a1585ebfe236cfa867b2a936836fb828783fe6d839d2ab03f45bd8ecaa77abec080a5e6480ce5357674de4803888fa0257db27b30d50fe3f9a3951f504ad14a9
6
+ metadata.gz: 0b68eca1f0ff9241250a1d9ac28f9bd34e744493e50d1728f0da43568b2a478ca75ced18899e13483076fd6da88716c62a8485acda4bb84e1f42e7b018d91433
7
+ data.tar.gz: dcc1043a0033995c6c0be3fc2cae266f9be82d436dd92ad7db76e616e5442353f7515a3bdb0e1ae84701eb3cb912950abadf339613215256ac0a339d2391b536
data/HISTORY CHANGED
@@ -1,790 +1,811 @@
1
- = Release History
2
-
3
- == 2.9.0 / 2016-06-13 Charlie Savage
4
-
5
- * Revamp libxml-ruby's memory management to not cause crashes when used with Nokogiri (James Laird-Wah)
6
- * Fix garbage collection issue that sometimes caused the library to hang (Charlie Savage)
7
- * Improved multi-threading support (Charlie Savage)
8
- * Fix crash sometimes caused by a xml node being being freed twice (Charlie Savage)
9
- * Fix memory leak when setting the text content of a node (Charlie Savage)
10
- * Set a default task in the Rakefile - use "test" (Robert Haines)
11
- * Add "hanna_gudao" gem and add "rake-compiler" to develpoment dependencies (Robert Haines)
12
- * Use Process.getrlimit instead of `ulimit` in the tests (Robert Haines)
13
- * Build on smartos (Steven Williamson)
14
- * Fix compiler warnings (Charlie Savage)
15
- * Add Xcode project for easier debugging on OSX (Charlie Savage)
16
- * Switch from unit test to minitest (Charlie Savage)
17
-
18
- == 2.8.0 / 2015-01-09 Charlie Savage
19
-
20
- * Use RbConfig instead of Config in extconf.rb (Robert Haines)
21
- * Correct xpath documentation XML (Bill Mill)
22
- * Correct from_string method documentation (Bill Mill)
23
- * Fix compile error with debug not enabled in libxml (Patrick Ziegler)
24
- * Update gemspec to include license (Charlie Savage)
25
- * In XML::Writer prevent writing to io while being GCed (Brett Gibson)
26
-
27
- == 2.7.0 / 2013-08-13 Charlie Savage
28
-
29
- * Don't call rb_warning in GC mark function (Dirkjan Bussink)
30
- * Set libxml error handler when a libxml-ruby error handler is set (Geoffrey Giesemann)
31
- * Fix tests for nil TypeErrors for ruby 2.0=< (Geoffrey Giesemann)
32
- * Fix segmentation fault for issue #62 (Charlie Savage)
33
- * Add #node_type method to dtd (Charlie Savage)
34
- * Fixing equality check of LibXML::XML::Error against other objects (Michał Szajbe)
35
- * Fix #63, XML::Writer.set_quote_char UT, wrong expected string (julp)
36
- * Fix potential segfault when GC occurs while creating ns from xpath (Timothy Elliott)
37
- * Fix for #59, segmentation fault after failure to load external schema (Clifford Heath)
38
-
39
- == 2.6.0 / 2013-02-16 Charlie Savage
40
-
41
- * Fix uninitialized constant LibXML::XML::Error::I18N (NameError) that occurred
42
- with older versions of libxml.
43
- * Various updates/fixes to new XML::Writer class and update how flushing works (julp)
44
-
45
- == 2.5.0 / 2013-01-27 Charlie Savage
46
-
47
- * Compatibility with older versions for IO::write (rb_io_bufwrite is specific to ruby >= 1.9.3?)
48
- and symbols are VALUE not ID (julp).
49
- * Fix version for xmlTextWriterSetQuoteChar, it appeared in libxml2 2.9.0, last version (julp)
50
- * Update use of LIBXML_VERSION (julp).
51
- * Fix misuse of rb_scan_args (julp).
52
- * Update documentation, including DTD docs and added XML Writer (julp).
53
- * Added a new XML::Writer class (julp).
54
- * Improved xml reader api and add namespace support. Note that passing a numeric value
55
- to XML::Reader::move_to_attribute has been deprecated. Instead you should now
56
- use #move_to_attribute_no. (julp).
57
- * Improve error handling and messages (Jarl Friis)
58
-
59
- == 2.4.0 / 2012-12-14 Charlie Savage
60
-
61
- * Support libxml 2.9.0 (Daniel Veillard)
62
-
63
- * Extensive new interfaces for xml schema functionality including suppor for
64
- schemal elements, types, facets and attributes (Anton Sozontov)
65
-
66
- * Fix Encoding#from_s bug and update docs (Nikita Afanasenko)
67
-
68
- * Node#content= encoding (Nikita Afanasenko)
69
-
70
- == 2.3.3 / 2012-07-01 Charlie Savage
71
-
72
- * Add LibXML::XML::Error.get_handler (Carsten Zimmermann)
73
- * Fix variable name in example (Marcus)
74
-
75
- == 2.3.2 / 2012-03-20 Charlie Savage
76
-
77
- * Define various canonicalize constants to support libxml2 versions
78
- older than 1.1.25 (thanks Apple!)
79
-
80
- == 2.3.1 / 2012-03-20 Charlie Savage
81
-
82
- * Yanked - didn't fix the OSX canonicalize issue
83
-
84
- == 2.3.0 / 2012-03-18 Charlie Savage
85
-
86
- * Add ability to insert new PI-nodes into the xmltree (Axel Struebing).
87
-
88
- * Added full pass-through access to libxml2 xmlC14NDocDumpMemory method via
89
- LibXML::XML::Document#canonicalize method with optional arguments.
90
-
91
- * Added full test data for C14N based off of W3C spec.
92
- (http://www.w3.org/TR/xml-c14n#Examples)
93
-
94
- * Update sax handler to support encodings on Ruby 1.9 and higher.
95
-
96
- == 2.2.2 / 2011-08-29 Charlie Savage
97
-
98
- * ++API CHANGE+++
99
-
100
- Reader#relax_ng_validate now takes a RelaxNG object. This is
101
- what the documentation has always said it takes, but it previously
102
- took a string. In addition, it now returns true or false instead of 0 or -1.
103
-
104
- Reader#schema_validate now takes a Schema object. This is
105
- what the documentation has always said it takes, but it previously
106
- took a string. In addition, it now returns true or false instead of 0 or -1.
107
-
108
- Fixes GitHub issue #30.
109
-
110
- * Added Parser::Context#close and HTMLParser::Context#close methods that
111
- allow the underlying io stream (file, string, etc) to be closed. Once a
112
- parser is done parsing its data, it now calls one of these methods.
113
- This means that if you parse thousands of files at the same time,
114
- without running Ruby's garbage colllector, you won't get a too
115
- many files open error. Fixes GitHub issue #29.
116
-
117
- * Fixed bug where Node#inner_xml caused an error when it had no child nodes.
118
- Fixes GitHub issues #31
119
-
120
- * Don't require 'rake' in the gemspec to avoid annoying Bundler bugs
121
-
122
- == 2.2.1 / 2011-08-13 Charlie Savage
123
-
124
- * Packaging fix - include the custom .def file in the gem.
125
-
126
- == 2.2.0 / 2011-08-09 Charlie Savage
127
-
128
- * Update encoding support for Ruby 1.9 so that libxml-ruby returns
129
- strings encoded in UTF-8. This change was required since libxml internally
130
- stores strings in UTF-8. The exceptions to this rule are the #to_s methods
131
- which return UTF-8 by default but can return other encodings if requested.
132
-
133
- == 2.1.2 / 2011-08-03 Charlie Savage
134
-
135
- * Fix segmentation fault that could occur when an XPathContext was marked
136
- before it was fully initialized (Charlie Savage).
137
-
138
- * Add mark method to document to mark all nodes currently being accessed
139
- by ruby. This make Ruby Enterprise Edition happy (Charlie Savage).
140
-
141
- == 2.1.1 / 2011-07-31 Charlie Savage
142
-
143
- * Switch to using def files to control library exports (Charlie Savage).
144
-
145
- == 2.1.0 / 2011-07-31 Charlie Savage
146
-
147
- * Ruby 1.9.3 compatability (Charlie Savage).
148
-
149
- * Added XPath expression <-> Ruby value conversion methods (Jens Wille).
150
-
151
- * Extracted rxml_xpath_to_value from rxml_xpath_context_find (Jens Wille).
152
-
153
- * Adapted rxml_xpath_from_value from Gregoire Lejeune's ruby-xslt
154
- library, see https://github.com/glejeune/ruby-xslt (Jens Wille).
155
-
156
- * Allow calling #find on nodes returned from Reader (Charlie Savage).
157
-
158
- * Change document handling in XPath::Context to address segmentation fault on
159
- Ruby Enterprise Edition (Charlie Savage).
160
-
161
- * Update gemspec file to work directly with bundler thereby allowing git
162
- repository to be used as gem (Charlie Savage).
163
-
164
- * Support gem buld (Charlie Savage).
165
-
166
- * Simplify memory management of attributes namespaces to fix
167
- segmentation faults that occurred when using Ruby 1.9.3 (Charlie Savage).
168
-
169
-
170
- == 2.0.8 / 2011-06-23 Charlie Savage
171
-
172
- * Add in 2 new HTML Parser constants - NODEFDTD and NOIMPLIED.
173
-
174
- * Fix compile issue on Ruby 1.9.3
175
-
176
- == 2.0.6 / 2011-05-23 Charlie Savage
177
-
178
- * Fix segfault that sometimes occurred when looking up encodings on 1.9.
179
- In some cases the Ruby encoding infrastructure was not properly
180
- initialized (nkriege).
181
-
182
- == 2.0.5 / 2011-05-05 Charlie Savage
183
-
184
- * Document#validate_dtd would sometimes cause segmentation faults due to
185
- an improperly initialized data structure (Charlie Savage)
186
-
187
- == 2.0.4 / 2011-05-02 Charlie Savage
188
-
189
- * Fix compile issues on platforms using older versions of libxml2.
190
- The problem as using a C14N constants that was added to libxml2
191
- in July 2009 (Charlie Savage).
192
-
193
- == 2.0.3 / 2011-05-01 Charlie Savage
194
-
195
- * The biggest change in this release is supporting the use of libxml-ruby in
196
- native background Ruby threads. Previously, the use of libxml-ruby in
197
- background threads in Ruby 1.9.x and higher would often cause
198
- segmentation faults. This has now been fixed (Charlie Savage).
199
-
200
- * Update Reader#expand so that returned node correctly remembers its
201
- encoding in Ruby 1.9.x (zerebubuth).
202
-
203
- * Add check to verify a node has not been deleted. This can happen when
204
- a ruby variable holds a reference to a child node that gets freed
205
- when its parent gets freed. Previously when this happened a
206
- segmentation fault would occur, now an exception is raised (Charlie Savage, fixes
207
- RubyForge #26839.
208
-
209
- * Do not unlink nodes before internal validations have run - avoids
210
- segmentation faults caused by freeing a node twice (Charlie Savage).
211
-
212
- * Add support for Document#canonicalization (Victor Lin).
213
-
214
- * Fix memory leak in Reader#lookup_namespace (Charlie Savage).
215
-
216
- * Fix memory leak in Reader#[] (Nathan Kriege).
217
-
218
- * Fix usage of @io instance variable (Jeffrey Taylor)
219
-
220
- * Removed old sax error handling code that has been fixed in newer
221
- versions of libxml (Charlie Savage).
222
-
223
- * Code cleanup - remove unused variables and commented out code (Charlie Savage)
224
-
225
- * Minor text changes and documentation fixes (Charlie Savage).
226
-
227
- * Fix documentation error (fixes RubyForge #26888).
228
-
229
- * Update documentation for Document#validation* methods (fixes RubyForge #24833).
230
-
231
- * Update documentation and test (fixes Ruby Forge Issue #28770).
232
-
233
- * Updated documentation in README (Anurag Priyam):
234
- 1. rake doc does not work; use rake rdoc.
235
- 2. gem mislav-hanna does not exist; use hanna.
236
- 3. rake rdoc 'depends' on hanna; no need of RDOCOPTS
237
- 4. Point to the github issue tracker instead of Ruby Forge
238
- 5. Point to the github (gh-pages) site for docs
239
-
240
- * Add tc_error to test suite (Charlie Savage).
241
-
242
- * Add sax test (Stanislav O.Pogrebnyak).
243
-
244
- == 2.0.2 / 2011-04-17 Charlie Savage
245
-
246
- * Added binaries for windows (Charlie Savage).
247
-
248
- * Update Ruby 1.9 encoding handling to support libxml versions older than
249
- version 2.6.26 which was released on June 6, 2006 (Charlie Savage).
250
-
251
- * Add publish_with_docs rake task - combines publishing the
252
- website and docs (Anurag Priyam).
253
-
254
- * Correctly copy the documentation directory (Anurag Priyam)
255
-
256
- * Use relative link for rdoc so the links are correct on
257
- both rubyforge and github (Anurag Priyam).
258
-
259
- * Update Rakefile to use Hanna RDco template (Charlie Savage).
260
-
261
- * Update dates on license file (Charlie Savage).
262
-
263
- * Add api to allow setting of attribute namespaces. Fixes issue #10 (Charlie Savage).
264
-
265
- * Remove old hack to call the on_error method. This hack isn't needed anymore
266
- since a better workaround was put in place in the parser context. Fixes
267
- This fixes issue #12 (Charlie Savage).
268
-
269
- * Remove references to passing blocks to validation functions. The blocks are no
270
- longer called since the bindings use libxml's structured error handling. See
271
- issue #6 (Charlie Savage).
272
-
273
- * Fix up comment in Document and Node. See issue #8 (Charlie Savage).
274
-
275
- * Update website text (Charlie Savage).
276
-
277
- == 2.0.0 / 2011-04-16 Charlie Savage
278
-
279
- * Ruby 1.9.2 support. The biggest addition is encoding support.
280
- Strings returned by the libxml bindings are now set to the encoding
281
- of the underlying xml document (Charlie Savage).
282
-
283
- * Rubinius compatability. Removed unnecessary use of RHASH_TBL (Aman Gupta)
284
-
285
- * Added .gemspec file (Dudley Flanders).
286
-
287
- * Updated Windows checks to take into account mingw32 (Yaohan Chen).
288
-
289
- * Fix memory leak in Reader#Expand (Szymon Nowak).
290
-
291
- * Fix memory leaks in Reader#read_string, Reader#read_inner_xml
292
- and Reader#read_outer_xml (Sean Geoghegan).
293
-
294
- * Node#space_preserve= was backwards (Dudley Flanders)
295
-
296
- * Fixed typo in readme, added rdoc extension (Loren Sands-Ramshaw).
297
-
298
- * Switched to Rake Compiler (Charlie Savage).
299
-
300
- * Use xmlMalloc() memory for ctxt->sax structure. Sometimes the ctxt->sax pointer
301
- may not be zeroed in rxml_sax_parser_parse(), for example when exception is raised
302
- in one of callbacks. This lets xmlFreeParserCtxt() clean this up (Alexey I. Froloff).
303
-
304
- * Added a rake task to publish the website to github. Moved the jekyll website to
305
- web directory (Anurag Priyam).
306
-
307
- * Modernize project metadata and layout (7rans)
308
-
309
-
310
- == 1.1.3 / 2009-03-18 Charlie Savage
311
-
312
- * Improve performance 10 to 20% by turning on libxml2's dictionary
313
- feature that allows parsers to reuse previously parsed strings.
314
-
315
- * Fix XML::Node#remove! to work correctly with libxml's dictionary feature.
316
-
317
- * Correctly set up parser context options.
318
-
319
- * Simplify DOM modification code (Node#next=, Node#prev=, Node#sibling=) and
320
- update documentation.
321
-
322
- * Deprecated Node#add_child and Node#child=, use Node#<< instead
323
-
324
- * Fix documentation for Node#<<
325
-
326
- * Added Document#import to enable moving nodes from one document
327
- to another document.
328
-
329
-
330
- == 1.1.2 / 2009-03-12 Charlie Savage
331
-
332
- * Added XML::Node#inner_xml helper method.
333
-
334
- * Fix segmentation that could occur when calling the mark function on a
335
- previously freed node.
336
-
337
- == 1.1.1 / 2009-03-10 Charlie Savage
338
-
339
- * Fix - Only include extra html parser context methods for versions of libxml
340
- older than 2.6.27.
341
-
342
- == 1.1.0 / 2009-03-09 Charlie Savage
343
-
344
- * Fix bug caused by the mark function being called on partially initialized
345
- attributes.
346
-
347
- * Revert back to libxml2's internal memory manager.
348
-
349
- == 1.0.0 / 2009-03-05 Charlie Savage
350
-
351
- * OS X (Charlie Savage). Update bindings to support the default installed
352
- version of libxml2 (2.6.16) on OS X 10.5 and the latest version available
353
- via MacPorts.
354
-
355
- == 0.9.9 / 2009-03-05 Charlie Savage
356
-
357
- * Ruby 1.9.1 support (Charlie Savage). libxml-ruby now compiles and runs on either
358
- 1.8.6 and 1.9.1. With 1.8.6 all tests should pass while on 1.9.1 all but
359
- for encoding tests pass. The port to Ruby 1.9.1 revealed two memory
360
- allocation bugs (one with dtds, one with nodes) which are now fixed.
361
-
362
- * Better OS X support (Joe Khoobyar). The default version of libxml2
363
- on OS X 10.5 is fairly old, resulting in this link error:
364
-
365
- NSLinkModule() error
366
- dyld: Symbol not found: _htmlNewParserCtxt
367
-
368
- This can be fixed by using MacPorts to get a newer version of libxml2.
369
- To make use of MacPorts, the build script has been updated to use xml2-config.
370
- This can be fine-tuned using the new --with-xml2-config / --without-xml2-config
371
- options to extconf.rb (default is --without-xml2-config to match existing behavior).
372
-
373
- * Greatly reduced memory usage (Joe Khoobyar).
374
- See http://rubyforge.org/pipermail/libxml-devel/2009-February/001375.html.
375
-
376
- * Add Document#xhtml? and document#node_type methods (Joe Khoobyar)
377
-
378
- * Add XPath::Object#last (Joe Khoobyar)
379
-
380
- * Provide finer control over CDATA nodes on a parser by parser basis (Joe Khoobyar).
381
-
382
- * Bug fix - Namespaces were incorrectly merged with attributes in the new sax2
383
- handler (Charlie Savage).
384
-
385
- * Bug fix - Support iterating over nodes and attributes even with blocks
386
- that call remove! (Charlie Savage)
387
-
388
- * Bug fix - If reader.node is NULL, return nil instead of crashing (Charlie Savage)
389
-
390
- * Bug fix - Dtd's owned by documents were freed twice in some circumstances (Joe Khoobyar).
391
-
392
- * Bug fix - Fix output escaping on attributes nodes (Joe Khoobyar).
393
-
394
- * Bug fix - Make sure IO objects are not garbage collected when used
395
- as parser sources (Charlie Savage).
396
-
397
- == 0.9.8 / 2009-1-24 Charlie Savage
398
-
399
- * Refactored XML::Parser, XML::HTMLParser, XML::SaxParser and
400
- XML::Reader to have consistent APIs. All the parsers
401
- now take a context object in their constructors, allowing fine
402
- grained control over the parsers for advanced use cases. These
403
- API changes are backwards compatible except
404
- for XML::Reader, which now takes an optional hash table as a
405
- second parameter in its various constructors versus an optional
406
- boolean value.
407
-
408
- * Updated all APIs to use the encoding constants defined
409
- in XML::Encoding versus string values. This API change
410
- is not backwards compatible.
411
-
412
- * Added support for attribute declarations in DTD's via the new
413
- XML::AttrDecl class (Len Lattanzi)
414
-
415
- * Support libxml's content escaping capabilities for text nodes by
416
- wrapping libxml's "xmlStringText" and "xmlStringTextNoenc"
417
- (Joe Khoobyar).
418
-
419
- * Updated XML::Reader#read API to return true if a node was read,
420
- false if node was not read and raises an exception on an error.
421
- Previously #read returned 1 if a node was read, 0 if a node was
422
- not read and -1 for an error. This change is not backwards
423
- compatible, but provides a more natural interface for Ruby by
424
- allowing code like this:
425
-
426
- while reader.read
427
- # do stuff
428
- end
429
-
430
- * Changed XML::Error exception objects to return copies of nodes that
431
- cause parse errors instead of the original node. This prevents
432
- segmentation faults when the error is reraised.
433
-
434
- * Added XML::Reader#node method.
435
-
436
- * Fixed compile errors on OS X which uses an older version of libxml.
437
-
438
- * Fixed memory leak when performing XPath searches.
439
-
440
- * Fixed rdocs.
441
-
442
- * Don't override libxml's default settings for entity substitution and
443
- loading external DTDs. This may break some code - you may need to
444
- add in a call to XML.default_substitute_entities = true or
445
- XML.default_load_external_dtd = true.
446
-
447
-
448
- == 0.9.7 / 2008-12-08 Charlie Savage
449
-
450
- * Added SAX2 support. SAX handlers now define two new callbacks,
451
- on_start_element_ns and on_end_element_ns methods. These
452
- new callbacks support namespaces, making them superior to the older
453
- callbacks on_start_element and on_end_element methods. The old callbacks
454
- are still supported, but may be deprecated in the future depending
455
- on community feedback.
456
-
457
- * Added SAX support for libxml's structured error handling.
458
- That menas sax handlers now define a new callback, on_error,
459
- which takes one parameter, an instance of XML::Error. The older
460
- on_parser_error, on_parser_warning and on_parser_fatal_error
461
- callbacks are no longer suported so you must port your code.
462
- Note that the older callbacks took one string parameter, instead of
463
- an XML::Error object.
464
-
465
- * Experimental work-around for libxml error handling bug - see
466
- http://mail.gnome.org/archives/xml/2008-December/msg00014.html
467
- for more information.
468
-
469
- * Fix compilation bugs on Solaris.
470
-
471
- * Fix Rdoc compilation bug.
472
-
473
-
474
- == 0.9.6 / 2008-12-08 Charlie Savage
475
-
476
- * Refactored namespace handling. The existing, and inconsistent,
477
- namespace methods defined on XML::Node have been deprecated.
478
- They have been replaced by a the new XML::Namespaces class.
479
- Use this class to inspect a node's namespace, its default
480
- namespace, its namespace definitions and which namespaces
481
- are in scope. It can be accessed via the the
482
- XML::Node#namespaces method.
483
-
484
- * Rationalized XML::Document#save, XML::Document#to_s and
485
- XML::Node#to_s to take an optional hash table of parameters
486
- that control how output is generated. Supported parameters
487
- include setting indentation on or off, the indentation level
488
- and the output encoding. This is an API change and may break
489
- existing calls to XML::Document#save. However, the previous
490
- API was broken - setting the encoding resulted in an error so
491
- its unlikely anyone is using it.
492
-
493
- * Rationalized XML::Document#debug, XML::Node#debug, XML::XPath::XPathObject#Debug.
494
-
495
- * Deprecated a number of duplicate dump* and debug_* methods in
496
- XML::Document and XML::Node.
497
-
498
- * Additional Ruby 1.9.1 compatability fixes.
499
-
500
- * Cleaned up header file guards.
501
-
502
- == 0.9.5 / 2008-11-29 Charlie Savage
503
-
504
- * Ruby 1.9.1 preview release compatability (Felipe Contreras)
505
-
506
- * Update Node#remove! to return the removed node and to set
507
- its document to nil. This allows the node to be either
508
- moved to another document, another part of the same document
509
- or to be freed on the next garbage collection once its
510
- references have gone out of scope.
511
-
512
- * Fix bug where XPathExpression#compile mistakenly overwrote
513
- RegExp#compile.
514
-
515
- * Update Node to use standard ruby allocators and initializers.
516
-
517
- * Update HTML parser to be more forgiving of invalid documents.
518
-
519
- * Update include paths for Darwin Ports on OS X.
520
-
521
- * Updated C code base to use BSD/Allman style
522
-
523
-
524
- == 0.9.4 / 2008-11-24 Charlie Savage
525
-
526
- * Update HTML parser so that it can read files, strings and io
527
- streams.
528
-
529
- * Update HTML parser to support user specified encodings.
530
-
531
- * Additional C code cleanup.
532
-
533
- == 0.9.3 / 2008-11-22 Charlie Savage
534
-
535
- * Fixed segmentation fault caused by documents being freed
536
- before xpath results that referenced the document (take 2).
537
-
538
- * Allowed sax parser to use io stream
539
-
540
- * Combined encoding and input classes
541
-
542
- * Cleaned up C code - removed remaining legacy structures,
543
- added static to most methods, changed C namespace from ruby_xml
544
- to rxml
545
-
546
- == 0.9.2 / 2008-11-19 Charlie Savage
547
-
548
- * Add support for compiled XPath expressions (donated by Pavel Valodzka)
549
-
550
- * Fixes for compiling on OS X 10.5.4 and 10.5.5
551
-
552
- == 0.9.1 / 2008-11-18 Charlie Savage
553
-
554
- * Expose LibXML's encoding support via a new Encoding object.
555
-
556
- * Revamp error handling to be much easier to use. Errors are now
557
- wrapped by the new XML::Error class and are thrown as exceptions
558
- when it is appropriate.
559
-
560
- * Fixed segmentation fault caused by documents being freed
561
- before xpath results that referenced the document.
562
-
563
- * Add Node#register_default_namespace to simplify default namespace handling.
564
-
565
- * Significantly improve documentation
566
-
567
- * A number of bug fixes and patches.
568
-
569
- == 0.9.0 / 2008-11-18 Charlie Savage
570
-
571
- * Version 0.9.0 was removed due to packaging errors.
572
-
573
-
574
- == 0.8.3 / 2008-07-21 Charlie Savage
575
-
576
- * Missed several files in last release
577
-
578
- == 0.8.2 / 2008-07-21 Charlie Savage
579
-
580
- * To use LibXML you can either require 'xml' or require 'libxml'.
581
- The differences is that require 'xml' mixes the LibXML module into
582
- the global namespace, thereby allowing you to write code such
583
- as document = XML::Document.new. Note that this is different
584
- from 0.8.0 and 0.8.1 and may require updating your code.
585
-
586
- * Support RelaxNG validation (thanks to Morus Walter)
587
-
588
- * Support passing IO objects to XmlReaders (thanks to Tom Hughes)
589
-
590
- * Fix segmentation fault caused by adding an attribute to a CDATA node
591
-
592
- * Moved node checking functions from C to Ruby
593
-
594
- * Improved Windows support - libxml-ruby should now work out of the box.
595
-
596
- * Improved Windows support - turned on libxml's zlib and iconv support.
597
-
598
-
599
- == 0.8.1 / 2008-07-09 Charlie Savage
600
-
601
- * Reimplmented Node#each_attr for backwards compatability
602
-
603
- * Moved node type test to Ruby.
604
-
605
-
606
- == 0.8.0 / 2008-07-09 Charlie Savage
607
-
608
- * Fixed bug in returning attributes from XPath results
609
-
610
- * Fixed DOM traversal methods
611
-
612
- * Changed Node#children to return an array of nodes
613
-
614
- * Fixed bug in returning attributes from XPath results
615
-
616
- * Refactored XPath support, providing more user hooks in the XPath::Context class
617
-
618
- * Added Node#properties for backwards compatibility
619
-
620
- * Updated setup.rb
621
-
622
- * Added more tests
623
-
624
- * Updated rdocs and README file
625
-
626
- * Moved libxml into LibXML namespace
627
-
628
-
629
- == 0.7.0 / 2008-07-09 Charlie Savage
630
-
631
- * Added new attributes class to provide a more natural way of working with attributes
632
-
633
- * Fixed XML::Attr to better support namespaces
634
-
635
- * Added documentation on how to use namespaces with XPath
636
-
637
- * Removed allocation of extraneous structures used to wrap nodes, namespaces and attributes
638
-
639
- * Cleaned up tests and added new test suite
640
-
641
- * Updated rdocs and README file
642
-
643
- * Cleaned out most of the bug list
644
-
645
-
646
- == 0.6.0 / 2008-07-01 Charlie Savage
647
-
648
- * Fixed memory allocation errors in Windows. On Windows, it is essential that the same library that allocates memory must free it. Thus ALLOC calls must be matched to ruby_xfree calls, which they were not. In addition, in one case Ruby was allocating memory to be freed by libxml. On Windows, that's a segmentation fault. On Linux it might fly, but still seems like a bad idea.
649
-
650
- * Fixed segmentation fault in xml reader expand (same xml tree freed twice)
651
-
652
- * Applied a number of patches from Tom Bagby, including fixes for xpath segmentation faults and fixes for various memory leaks
653
-
654
- * Cleaned up a number of compiler warnings
655
-
656
- * Renamed libxml_so.so to libxml_ruby.so (same for xslt). That wasn't actually my original intention, but um, it kind of sort of happened. It should not be noticeable from an end-user perspective.
657
-
658
- * Added rake files for building with MingW
659
-
660
- * Added rake files for packing gems. Note that I did this outside the existing rake tasks because I didn't see how they were actually building the gems.
661
-
662
- * Cleaned up the tests and added a few more based on bug reports from the Tracker and mailing list.
663
-
664
- * Cleaned out the patch queue and went through about 1/2 the bug list
665
-
666
-
667
- === 2007-11-16 "Dan Janowski" <danj at 3skel.com>
668
-
669
- * Merged Dan's MEM2 branch to trunk.
670
-
671
- == 0.5.3 /
672
-
673
- === 2007-11-16 "Dan Janowski" <danj at 3skel.com>
674
-
675
- * Merged Dan's MEM2 branch to trunk.
676
-
677
-
678
- == 0.5.2 / 2007-10-10
679
-
680
- === 2007-10-10 "Dan Janowski" <danj at 3skel.com>
681
-
682
- * (Dan, fill in the major points of the changes you made up to here -thanks)
683
-
684
- === 2007-01-14 "Laurent Sansonetti" <lrz at chopine.be>
685
-
686
- * Added some preliminary RDoc comments for XML::Reader.
687
-
688
- === 2006-12-05 "Laurent Sansonetti" <lrz at chopine.be>
689
-
690
- * Added XML::Reader, a set of bindings to the xmlTextReader API.
691
-
692
-
693
- == 0.3.8.4 / 2006-12-02
694
-
695
- === 2006-04-15 "Ross Bamform" <rosco at roscopeco.co.uk>
696
-
697
- * Implemented SAX parser callback handling.
698
-
699
- === 2006-04-12 "Ross Bamford" <rosco at roscopeco.co.uk>
700
-
701
- * Integrated and tested community patches.
702
- * Defined XML::Node (hash) equality in terms of XML representation.
703
-
704
- === 2006-04-12 "Tim Yamin" <plasmaroo at gentoo.org>
705
-
706
- * Fixed XML::Node#content inoperable bug (plasmaroo) [patch]
707
- * Fixed memory leak in same
708
-
709
- === 2006-04-12 "Mark Van Holstyn" <mvette13 at gmail.com>
710
-
711
- * Added XML::Node::Set#first (mvette13) [patch]
712
- * Added XML::Node::Set#empty?
713
- * Fixed XML::Node::Set#to_a
714
- * Added XML::Node#find_first
715
- * Added XML::Node#remove!
716
-
717
- === 2006-03-27 "Ross Bamford" <rosco at roscopeco.co.uk>
718
-
719
- * Integrated contributed XML::Parser.register_error_handler patch (rosco)
720
-
721
- === 2006-02-27 "Ross Bamford" <rosco at roscopeco.co.uk>
722
-
723
- * Fixed all multiple symbol definitions for -fno-common.
724
- * Removed OSX -fno-common workaround.
725
-
726
-
727
- == 0.3.6 / 2006-02-23
728
-
729
- === 2006-02-21 "Ross Bamford" <rosco at roscopeco.co.uk>
730
-
731
- * Patched extconf.rb with OSX -fno-common workaround
732
- * Added gem and packaging support to Rakefile
733
- * Moved version update to Rakefile
734
- * Removed legacy project utility scripts
735
-
736
- === 2005-02-19 "Ross Bamford" <rosco at roscopeco.co.uk>
737
-
738
- * Fixed doublefree bug in ruby_xml_attr.
739
- * Fixed small leak in parser
740
-
741
- === 2005-12-18 "Ross Bamford" <rosco at roscopeco.co.uk>
742
-
743
- * Updated for GCC 4.0 (community patches)
744
- * Fixed default validation bug
745
- * Refactored project, removed outdated files, cleaned up tests.
746
- * Added RDoc documentation across .c files.
747
- * Fixed up a few strings.
748
-
749
- === 2004-04-04 "Mangler Jurgen" <et@wkv.at>
750
-
751
- * ruby_xml_node.cz: fixed ruby_xml_node_property_set. The ill-behaviour
752
- was, that there was added a second attribute of the same
753
- name, when you were setting the value of an already existing
754
- attribute.
755
-
756
- === 2004-03-17 "Lukas Svoboda" <luks@fi.muni.cz>
757
-
758
- * ruby_xml_node.c: ruby_xml_node_to_s now returns XML subtree dump.
759
-
760
- === 2004-02-27 "Martin Povolny" <martin@solnet.cz>
761
-
762
- * ruby_xml_node.c: added XML::Node.copy, this makes possible building
763
- of xml documents from nodes taken from other xml documents
764
- without making ruby SIGSEGV (see tests/copy_bug.rb).
765
-
766
- === 2004-02-26 "Martin Povolny" <martin@solnet.cz>
767
-
768
- * ruby_xml_dtd.c, ruby_xml_dtd.h, ruby_xml_schema.c, ruby_xml_schema.h:
769
- more work on validation, now you can actually validate
770
- document using dtd or xml schema, also solved warning and
771
- error propagation (see tests/{dtd|schema}-test.rb).
772
-
773
- === 2003-12-30 "Martin Povolny" <martin@solnet.cz>
774
-
775
- * ruby_xml_dtd.c, ruby_xml_dtd.h, ruby_xml_schema.c, ruby_xml_schema.h:
776
- prelimitary support for dtd and schema validation
777
-
778
- === 2003-09-15 "Martin Povolny" <martin@solnet.cz>
779
-
780
- * ruby_xml_input_cbg.c, libxml.c: added class InputCallbacks to make
781
- possible registering custom input callbacks
782
- handlers (xmlRegisterInputCallbacks) written in ruby
783
-
784
- === 2003-08-01 "Martin Povolny" <martin@solnet.cz>
785
-
786
- * ruby_xml_document.c: corrected argument handling in ruby_xml_document_find
787
- * ruby_xml_node.c: corrected argument handling in ruby_xml_node_find
788
-
789
-
790
-
1
+ = Release History
2
+
3
+ == 3.0.0 / 2017-02-07 Charlie Savage
4
+
5
+ * Revamp how libxml-ruby manages memory. Instead of trying to return the same ruby object for each xmlnode,
6
+ the bindings now create wrapper ruby objects as needed which are then freed at the end of use.
7
+ This allows most memory management to be handled by libxml itself. Ruby only manages the lifespan of
8
+ documents and parent xml nodes. When those go out of scope, the underlying libxml objects are also freed.
9
+ This implementation requires almost no overhead, plays nicely with Nokogiri and appears to work much
10
+ better (Charlie Savage).
11
+
12
+ * Change XML::Node#eql? API. Nodes are now considered equal only if they wrap the same underlying
13
+ libxml node. Previously, they would also be considered equal if they contained the same content
14
+ (Charlie Savage)
15
+
16
+ * Change XML::Reader.expand API. Previously it would automatically instantiate a reader document so
17
+ the an xpath expression could be used to search the returned node. Now you should first call
18
+ reader.doc (Charlie Savage)
19
+
20
+ * Update Visual Studio project for Visual Studio 15 - requires ruby 2.4+ (Charlie Savage)
21
+
22
+ * Remove APIs that have been deprecated for several years (Charlie Savage)
23
+
24
+ == 2.9.0 / 2016-06-13 Charlie Savage
25
+
26
+ * Revamp libxml-ruby's memory management to not cause crashes when used with Nokogiri (James Laird-Wah)
27
+ * Fix garbage collection issue that sometimes caused the library to hang (Charlie Savage)
28
+ * Improved multi-threading support (Charlie Savage)
29
+ * Fix crash sometimes caused by a xml node being being freed twice (Charlie Savage)
30
+ * Fix memory leak when setting the text content of a node (Charlie Savage)
31
+ * Set a default task in the Rakefile - use "test" (Robert Haines)
32
+ * Add "hanna_gudao" gem and add "rake-compiler" to develpoment dependencies (Robert Haines)
33
+ * Use Process.getrlimit instead of `ulimit` in the tests (Robert Haines)
34
+ * Build on smartos (Steven Williamson)
35
+ * Fix compiler warnings (Charlie Savage)
36
+ * Add Xcode project for easier debugging on OSX (Charlie Savage)
37
+ * Switch from unit test to minitest (Charlie Savage)
38
+
39
+ == 2.8.0 / 2015-01-09 Charlie Savage
40
+
41
+ * Use RbConfig instead of Config in extconf.rb (Robert Haines)
42
+ * Correct xpath documentation XML (Bill Mill)
43
+ * Correct from_string method documentation (Bill Mill)
44
+ * Fix compile error with debug not enabled in libxml (Patrick Ziegler)
45
+ * Update gemspec to include license (Charlie Savage)
46
+ * In XML::Writer prevent writing to io while being GCed (Brett Gibson)
47
+
48
+ == 2.7.0 / 2013-08-13 Charlie Savage
49
+
50
+ * Don't call rb_warning in GC mark function (Dirkjan Bussink)
51
+ * Set libxml error handler when a libxml-ruby error handler is set (Geoffrey Giesemann)
52
+ * Fix tests for nil TypeErrors for ruby 2.0=< (Geoffrey Giesemann)
53
+ * Fix segmentation fault for issue #62 (Charlie Savage)
54
+ * Add #node_type method to dtd (Charlie Savage)
55
+ * Fixing equality check of LibXML::XML::Error against other objects (Michał Szajbe)
56
+ * Fix #63, XML::Writer.set_quote_char UT, wrong expected string (julp)
57
+ * Fix potential segfault when GC occurs while creating ns from xpath (Timothy Elliott)
58
+ * Fix for #59, segmentation fault after failure to load external schema (Clifford Heath)
59
+
60
+ == 2.6.0 / 2013-02-16 Charlie Savage
61
+
62
+ * Fix uninitialized constant LibXML::XML::Error::I18N (NameError) that occurred
63
+ with older versions of libxml.
64
+ * Various updates/fixes to new XML::Writer class and update how flushing works (julp)
65
+
66
+ == 2.5.0 / 2013-01-27 Charlie Savage
67
+
68
+ * Compatibility with older versions for IO::write (rb_io_bufwrite is specific to ruby >= 1.9.3?)
69
+ and symbols are VALUE not ID (julp).
70
+ * Fix version for xmlTextWriterSetQuoteChar, it appeared in libxml2 2.9.0, last version (julp)
71
+ * Update use of LIBXML_VERSION (julp).
72
+ * Fix misuse of rb_scan_args (julp).
73
+ * Update documentation, including DTD docs and added XML Writer (julp).
74
+ * Added a new XML::Writer class (julp).
75
+ * Improved xml reader api and add namespace support. Note that passing a numeric value
76
+ to XML::Reader::move_to_attribute has been deprecated. Instead you should now
77
+ use #move_to_attribute_no. (julp).
78
+ * Improve error handling and messages (Jarl Friis)
79
+
80
+ == 2.4.0 / 2012-12-14 Charlie Savage
81
+
82
+ * Support libxml 2.9.0 (Daniel Veillard)
83
+
84
+ * Extensive new interfaces for xml schema functionality including suppor for
85
+ schemal elements, types, facets and attributes (Anton Sozontov)
86
+
87
+ * Fix Encoding#from_s bug and update docs (Nikita Afanasenko)
88
+
89
+ * Node#content= encoding (Nikita Afanasenko)
90
+
91
+ == 2.3.3 / 2012-07-01 Charlie Savage
92
+
93
+ * Add LibXML::XML::Error.get_handler (Carsten Zimmermann)
94
+ * Fix variable name in example (Marcus)
95
+
96
+ == 2.3.2 / 2012-03-20 Charlie Savage
97
+
98
+ * Define various canonicalize constants to support libxml2 versions
99
+ older than 1.1.25 (thanks Apple!)
100
+
101
+ == 2.3.1 / 2012-03-20 Charlie Savage
102
+
103
+ * Yanked - didn't fix the OSX canonicalize issue
104
+
105
+ == 2.3.0 / 2012-03-18 Charlie Savage
106
+
107
+ * Add ability to insert new PI-nodes into the xmltree (Axel Struebing).
108
+
109
+ * Added full pass-through access to libxml2 xmlC14NDocDumpMemory method via
110
+ LibXML::XML::Document#canonicalize method with optional arguments.
111
+
112
+ * Added full test data for C14N based off of W3C spec.
113
+ (http://www.w3.org/TR/xml-c14n#Examples)
114
+
115
+ * Update sax handler to support encodings on Ruby 1.9 and higher.
116
+
117
+ == 2.2.2 / 2011-08-29 Charlie Savage
118
+
119
+ * ++API CHANGE+++
120
+
121
+ Reader#relax_ng_validate now takes a RelaxNG object. This is
122
+ what the documentation has always said it takes, but it previously
123
+ took a string. In addition, it now returns true or false instead of 0 or -1.
124
+
125
+ Reader#schema_validate now takes a Schema object. This is
126
+ what the documentation has always said it takes, but it previously
127
+ took a string. In addition, it now returns true or false instead of 0 or -1.
128
+
129
+ Fixes GitHub issue #30.
130
+
131
+ * Added Parser::Context#close and HTMLParser::Context#close methods that
132
+ allow the underlying io stream (file, string, etc) to be closed. Once a
133
+ parser is done parsing its data, it now calls one of these methods.
134
+ This means that if you parse thousands of files at the same time,
135
+ without running Ruby's garbage colllector, you won't get a too
136
+ many files open error. Fixes GitHub issue #29.
137
+
138
+ * Fixed bug where Node#inner_xml caused an error when it had no child nodes.
139
+ Fixes GitHub issues #31
140
+
141
+ * Don't require 'rake' in the gemspec to avoid annoying Bundler bugs
142
+
143
+ == 2.2.1 / 2011-08-13 Charlie Savage
144
+
145
+ * Packaging fix - include the custom .def file in the gem.
146
+
147
+ == 2.2.0 / 2011-08-09 Charlie Savage
148
+
149
+ * Update encoding support for Ruby 1.9 so that libxml-ruby returns
150
+ strings encoded in UTF-8. This change was required since libxml internally
151
+ stores strings in UTF-8. The exceptions to this rule are the #to_s methods
152
+ which return UTF-8 by default but can return other encodings if requested.
153
+
154
+ == 2.1.2 / 2011-08-03 Charlie Savage
155
+
156
+ * Fix segmentation fault that could occur when an XPathContext was marked
157
+ before it was fully initialized (Charlie Savage).
158
+
159
+ * Add mark method to document to mark all nodes currently being accessed
160
+ by ruby. This make Ruby Enterprise Edition happy (Charlie Savage).
161
+
162
+ == 2.1.1 / 2011-07-31 Charlie Savage
163
+
164
+ * Switch to using def files to control library exports (Charlie Savage).
165
+
166
+ == 2.1.0 / 2011-07-31 Charlie Savage
167
+
168
+ * Ruby 1.9.3 compatability (Charlie Savage).
169
+
170
+ * Added XPath expression <-> Ruby value conversion methods (Jens Wille).
171
+
172
+ * Extracted rxml_xpath_to_value from rxml_xpath_context_find (Jens Wille).
173
+
174
+ * Adapted rxml_xpath_from_value from Gregoire Lejeune's ruby-xslt
175
+ library, see https://github.com/glejeune/ruby-xslt (Jens Wille).
176
+
177
+ * Allow calling #find on nodes returned from Reader (Charlie Savage).
178
+
179
+ * Change document handling in XPath::Context to address segmentation fault on
180
+ Ruby Enterprise Edition (Charlie Savage).
181
+
182
+ * Update gemspec file to work directly with bundler thereby allowing git
183
+ repository to be used as gem (Charlie Savage).
184
+
185
+ * Support gem buld (Charlie Savage).
186
+
187
+ * Simplify memory management of attributes namespaces to fix
188
+ segmentation faults that occurred when using Ruby 1.9.3 (Charlie Savage).
189
+
190
+
191
+ == 2.0.8 / 2011-06-23 Charlie Savage
192
+
193
+ * Add in 2 new HTML Parser constants - NODEFDTD and NOIMPLIED.
194
+
195
+ * Fix compile issue on Ruby 1.9.3
196
+
197
+ == 2.0.6 / 2011-05-23 Charlie Savage
198
+
199
+ * Fix segfault that sometimes occurred when looking up encodings on 1.9.
200
+ In some cases the Ruby encoding infrastructure was not properly
201
+ initialized (nkriege).
202
+
203
+ == 2.0.5 / 2011-05-05 Charlie Savage
204
+
205
+ * Document#validate_dtd would sometimes cause segmentation faults due to
206
+ an improperly initialized data structure (Charlie Savage)
207
+
208
+ == 2.0.4 / 2011-05-02 Charlie Savage
209
+
210
+ * Fix compile issues on platforms using older versions of libxml2.
211
+ The problem as using a C14N constants that was added to libxml2
212
+ in July 2009 (Charlie Savage).
213
+
214
+ == 2.0.3 / 2011-05-01 Charlie Savage
215
+
216
+ * The biggest change in this release is supporting the use of libxml-ruby in
217
+ native background Ruby threads. Previously, the use of libxml-ruby in
218
+ background threads in Ruby 1.9.x and higher would often cause
219
+ segmentation faults. This has now been fixed (Charlie Savage).
220
+
221
+ * Update Reader#expand so that returned node correctly remembers its
222
+ encoding in Ruby 1.9.x (zerebubuth).
223
+
224
+ * Add check to verify a node has not been deleted. This can happen when
225
+ a ruby variable holds a reference to a child node that gets freed
226
+ when its parent gets freed. Previously when this happened a
227
+ segmentation fault would occur, now an exception is raised (Charlie Savage, fixes
228
+ RubyForge #26839.
229
+
230
+ * Do not unlink nodes before internal validations have run - avoids
231
+ segmentation faults caused by freeing a node twice (Charlie Savage).
232
+
233
+ * Add support for Document#canonicalization (Victor Lin).
234
+
235
+ * Fix memory leak in Reader#lookup_namespace (Charlie Savage).
236
+
237
+ * Fix memory leak in Reader#[] (Nathan Kriege).
238
+
239
+ * Fix usage of @io instance variable (Jeffrey Taylor)
240
+
241
+ * Removed old sax error handling code that has been fixed in newer
242
+ versions of libxml (Charlie Savage).
243
+
244
+ * Code cleanup - remove unused variables and commented out code (Charlie Savage)
245
+
246
+ * Minor text changes and documentation fixes (Charlie Savage).
247
+
248
+ * Fix documentation error (fixes RubyForge #26888).
249
+
250
+ * Update documentation for Document#validation* methods (fixes RubyForge #24833).
251
+
252
+ * Update documentation and test (fixes Ruby Forge Issue #28770).
253
+
254
+ * Updated documentation in README (Anurag Priyam):
255
+ 1. rake doc does not work; use rake rdoc.
256
+ 2. gem mislav-hanna does not exist; use hanna.
257
+ 3. rake rdoc 'depends' on hanna; no need of RDOCOPTS
258
+ 4. Point to the github issue tracker instead of Ruby Forge
259
+ 5. Point to the github (gh-pages) site for docs
260
+
261
+ * Add tc_error to test suite (Charlie Savage).
262
+
263
+ * Add sax test (Stanislav O.Pogrebnyak).
264
+
265
+ == 2.0.2 / 2011-04-17 Charlie Savage
266
+
267
+ * Added binaries for windows (Charlie Savage).
268
+
269
+ * Update Ruby 1.9 encoding handling to support libxml versions older than
270
+ version 2.6.26 which was released on June 6, 2006 (Charlie Savage).
271
+
272
+ * Add publish_with_docs rake task - combines publishing the
273
+ website and docs (Anurag Priyam).
274
+
275
+ * Correctly copy the documentation directory (Anurag Priyam)
276
+
277
+ * Use relative link for rdoc so the links are correct on
278
+ both rubyforge and github (Anurag Priyam).
279
+
280
+ * Update Rakefile to use Hanna RDco template (Charlie Savage).
281
+
282
+ * Update dates on license file (Charlie Savage).
283
+
284
+ * Add api to allow setting of attribute namespaces. Fixes issue #10 (Charlie Savage).
285
+
286
+ * Remove old hack to call the on_error method. This hack isn't needed anymore
287
+ since a better workaround was put in place in the parser context. Fixes
288
+ This fixes issue #12 (Charlie Savage).
289
+
290
+ * Remove references to passing blocks to validation functions. The blocks are no
291
+ longer called since the bindings use libxml's structured error handling. See
292
+ issue #6 (Charlie Savage).
293
+
294
+ * Fix up comment in Document and Node. See issue #8 (Charlie Savage).
295
+
296
+ * Update website text (Charlie Savage).
297
+
298
+ == 2.0.0 / 2011-04-16 Charlie Savage
299
+
300
+ * Ruby 1.9.2 support. The biggest addition is encoding support.
301
+ Strings returned by the libxml bindings are now set to the encoding
302
+ of the underlying xml document (Charlie Savage).
303
+
304
+ * Rubinius compatability. Removed unnecessary use of RHASH_TBL (Aman Gupta)
305
+
306
+ * Added .gemspec file (Dudley Flanders).
307
+
308
+ * Updated Windows checks to take into account mingw32 (Yaohan Chen).
309
+
310
+ * Fix memory leak in Reader#Expand (Szymon Nowak).
311
+
312
+ * Fix memory leaks in Reader#read_string, Reader#read_inner_xml
313
+ and Reader#read_outer_xml (Sean Geoghegan).
314
+
315
+ * Node#space_preserve= was backwards (Dudley Flanders)
316
+
317
+ * Fixed typo in readme, added rdoc extension (Loren Sands-Ramshaw).
318
+
319
+ * Switched to Rake Compiler (Charlie Savage).
320
+
321
+ * Use xmlMalloc() memory for ctxt->sax structure. Sometimes the ctxt->sax pointer
322
+ may not be zeroed in rxml_sax_parser_parse(), for example when exception is raised
323
+ in one of callbacks. This lets xmlFreeParserCtxt() clean this up (Alexey I. Froloff).
324
+
325
+ * Added a rake task to publish the website to github. Moved the jekyll website to
326
+ web directory (Anurag Priyam).
327
+
328
+ * Modernize project metadata and layout (7rans)
329
+
330
+
331
+ == 1.1.3 / 2009-03-18 Charlie Savage
332
+
333
+ * Improve performance 10 to 20% by turning on libxml2's dictionary
334
+ feature that allows parsers to reuse previously parsed strings.
335
+
336
+ * Fix XML::Node#remove! to work correctly with libxml's dictionary feature.
337
+
338
+ * Correctly set up parser context options.
339
+
340
+ * Simplify DOM modification code (Node#next=, Node#prev=, Node#sibling=) and
341
+ update documentation.
342
+
343
+ * Deprecated Node#add_child and Node#child=, use Node#<< instead
344
+
345
+ * Fix documentation for Node#<<
346
+
347
+ * Added Document#import to enable moving nodes from one document
348
+ to another document.
349
+
350
+
351
+ == 1.1.2 / 2009-03-12 Charlie Savage
352
+
353
+ * Added XML::Node#inner_xml helper method.
354
+
355
+ * Fix segmentation that could occur when calling the mark function on a
356
+ previously freed node.
357
+
358
+ == 1.1.1 / 2009-03-10 Charlie Savage
359
+
360
+ * Fix - Only include extra html parser context methods for versions of libxml
361
+ older than 2.6.27.
362
+
363
+ == 1.1.0 / 2009-03-09 Charlie Savage
364
+
365
+ * Fix bug caused by the mark function being called on partially initialized
366
+ attributes.
367
+
368
+ * Revert back to libxml2's internal memory manager.
369
+
370
+ == 1.0.0 / 2009-03-05 Charlie Savage
371
+
372
+ * OS X (Charlie Savage). Update bindings to support the default installed
373
+ version of libxml2 (2.6.16) on OS X 10.5 and the latest version available
374
+ via MacPorts.
375
+
376
+ == 0.9.9 / 2009-03-05 Charlie Savage
377
+
378
+ * Ruby 1.9.1 support (Charlie Savage). libxml-ruby now compiles and runs on either
379
+ 1.8.6 and 1.9.1. With 1.8.6 all tests should pass while on 1.9.1 all but
380
+ for encoding tests pass. The port to Ruby 1.9.1 revealed two memory
381
+ allocation bugs (one with dtds, one with nodes) which are now fixed.
382
+
383
+ * Better OS X support (Joe Khoobyar). The default version of libxml2
384
+ on OS X 10.5 is fairly old, resulting in this link error:
385
+
386
+ NSLinkModule() error
387
+ dyld: Symbol not found: _htmlNewParserCtxt
388
+
389
+ This can be fixed by using MacPorts to get a newer version of libxml2.
390
+ To make use of MacPorts, the build script has been updated to use xml2-config.
391
+ This can be fine-tuned using the new --with-xml2-config / --without-xml2-config
392
+ options to extconf.rb (default is --without-xml2-config to match existing behavior).
393
+
394
+ * Greatly reduced memory usage (Joe Khoobyar).
395
+ See http://rubyforge.org/pipermail/libxml-devel/2009-February/001375.html.
396
+
397
+ * Add Document#xhtml? and document#node_type methods (Joe Khoobyar)
398
+
399
+ * Add XPath::Object#last (Joe Khoobyar)
400
+
401
+ * Provide finer control over CDATA nodes on a parser by parser basis (Joe Khoobyar).
402
+
403
+ * Bug fix - Namespaces were incorrectly merged with attributes in the new sax2
404
+ handler (Charlie Savage).
405
+
406
+ * Bug fix - Support iterating over nodes and attributes even with blocks
407
+ that call remove! (Charlie Savage)
408
+
409
+ * Bug fix - If reader.node is NULL, return nil instead of crashing (Charlie Savage)
410
+
411
+ * Bug fix - Dtd's owned by documents were freed twice in some circumstances (Joe Khoobyar).
412
+
413
+ * Bug fix - Fix output escaping on attributes nodes (Joe Khoobyar).
414
+
415
+ * Bug fix - Make sure IO objects are not garbage collected when used
416
+ as parser sources (Charlie Savage).
417
+
418
+ == 0.9.8 / 2009-1-24 Charlie Savage
419
+
420
+ * Refactored XML::Parser, XML::HTMLParser, XML::SaxParser and
421
+ XML::Reader to have consistent APIs. All the parsers
422
+ now take a context object in their constructors, allowing fine
423
+ grained control over the parsers for advanced use cases. These
424
+ API changes are backwards compatible except
425
+ for XML::Reader, which now takes an optional hash table as a
426
+ second parameter in its various constructors versus an optional
427
+ boolean value.
428
+
429
+ * Updated all APIs to use the encoding constants defined
430
+ in XML::Encoding versus string values. This API change
431
+ is not backwards compatible.
432
+
433
+ * Added support for attribute declarations in DTD's via the new
434
+ XML::AttrDecl class (Len Lattanzi)
435
+
436
+ * Support libxml's content escaping capabilities for text nodes by
437
+ wrapping libxml's "xmlStringText" and "xmlStringTextNoenc"
438
+ (Joe Khoobyar).
439
+
440
+ * Updated XML::Reader#read API to return true if a node was read,
441
+ false if node was not read and raises an exception on an error.
442
+ Previously #read returned 1 if a node was read, 0 if a node was
443
+ not read and -1 for an error. This change is not backwards
444
+ compatible, but provides a more natural interface for Ruby by
445
+ allowing code like this:
446
+
447
+ while reader.read
448
+ # do stuff
449
+ end
450
+
451
+ * Changed XML::Error exception objects to return copies of nodes that
452
+ cause parse errors instead of the original node. This prevents
453
+ segmentation faults when the error is reraised.
454
+
455
+ * Added XML::Reader#node method.
456
+
457
+ * Fixed compile errors on OS X which uses an older version of libxml.
458
+
459
+ * Fixed memory leak when performing XPath searches.
460
+
461
+ * Fixed rdocs.
462
+
463
+ * Don't override libxml's default settings for entity substitution and
464
+ loading external DTDs. This may break some code - you may need to
465
+ add in a call to XML.default_substitute_entities = true or
466
+ XML.default_load_external_dtd = true.
467
+
468
+
469
+ == 0.9.7 / 2008-12-08 Charlie Savage
470
+
471
+ * Added SAX2 support. SAX handlers now define two new callbacks,
472
+ on_start_element_ns and on_end_element_ns methods. These
473
+ new callbacks support namespaces, making them superior to the older
474
+ callbacks on_start_element and on_end_element methods. The old callbacks
475
+ are still supported, but may be deprecated in the future depending
476
+ on community feedback.
477
+
478
+ * Added SAX support for libxml's structured error handling.
479
+ That menas sax handlers now define a new callback, on_error,
480
+ which takes one parameter, an instance of XML::Error. The older
481
+ on_parser_error, on_parser_warning and on_parser_fatal_error
482
+ callbacks are no longer suported so you must port your code.
483
+ Note that the older callbacks took one string parameter, instead of
484
+ an XML::Error object.
485
+
486
+ * Experimental work-around for libxml error handling bug - see
487
+ http://mail.gnome.org/archives/xml/2008-December/msg00014.html
488
+ for more information.
489
+
490
+ * Fix compilation bugs on Solaris.
491
+
492
+ * Fix Rdoc compilation bug.
493
+
494
+
495
+ == 0.9.6 / 2008-12-08 Charlie Savage
496
+
497
+ * Refactored namespace handling. The existing, and inconsistent,
498
+ namespace methods defined on XML::Node have been deprecated.
499
+ They have been replaced by a the new XML::Namespaces class.
500
+ Use this class to inspect a node's namespace, its default
501
+ namespace, its namespace definitions and which namespaces
502
+ are in scope. It can be accessed via the the
503
+ XML::Node#namespaces method.
504
+
505
+ * Rationalized XML::Document#save, XML::Document#to_s and
506
+ XML::Node#to_s to take an optional hash table of parameters
507
+ that control how output is generated. Supported parameters
508
+ include setting indentation on or off, the indentation level
509
+ and the output encoding. This is an API change and may break
510
+ existing calls to XML::Document#save. However, the previous
511
+ API was broken - setting the encoding resulted in an error so
512
+ its unlikely anyone is using it.
513
+
514
+ * Rationalized XML::Document#debug, XML::Node#debug, XML::XPath::XPathObject#Debug.
515
+
516
+ * Deprecated a number of duplicate dump* and debug_* methods in
517
+ XML::Document and XML::Node.
518
+
519
+ * Additional Ruby 1.9.1 compatability fixes.
520
+
521
+ * Cleaned up header file guards.
522
+
523
+ == 0.9.5 / 2008-11-29 Charlie Savage
524
+
525
+ * Ruby 1.9.1 preview release compatability (Felipe Contreras)
526
+
527
+ * Update Node#remove! to return the removed node and to set
528
+ its document to nil. This allows the node to be either
529
+ moved to another document, another part of the same document
530
+ or to be freed on the next garbage collection once its
531
+ references have gone out of scope.
532
+
533
+ * Fix bug where XPathExpression#compile mistakenly overwrote
534
+ RegExp#compile.
535
+
536
+ * Update Node to use standard ruby allocators and initializers.
537
+
538
+ * Update HTML parser to be more forgiving of invalid documents.
539
+
540
+ * Update include paths for Darwin Ports on OS X.
541
+
542
+ * Updated C code base to use BSD/Allman style
543
+
544
+
545
+ == 0.9.4 / 2008-11-24 Charlie Savage
546
+
547
+ * Update HTML parser so that it can read files, strings and io
548
+ streams.
549
+
550
+ * Update HTML parser to support user specified encodings.
551
+
552
+ * Additional C code cleanup.
553
+
554
+ == 0.9.3 / 2008-11-22 Charlie Savage
555
+
556
+ * Fixed segmentation fault caused by documents being freed
557
+ before xpath results that referenced the document (take 2).
558
+
559
+ * Allowed sax parser to use io stream
560
+
561
+ * Combined encoding and input classes
562
+
563
+ * Cleaned up C code - removed remaining legacy structures,
564
+ added static to most methods, changed C namespace from ruby_xml
565
+ to rxml
566
+
567
+ == 0.9.2 / 2008-11-19 Charlie Savage
568
+
569
+ * Add support for compiled XPath expressions (donated by Pavel Valodzka)
570
+
571
+ * Fixes for compiling on OS X 10.5.4 and 10.5.5
572
+
573
+ == 0.9.1 / 2008-11-18 Charlie Savage
574
+
575
+ * Expose LibXML's encoding support via a new Encoding object.
576
+
577
+ * Revamp error handling to be much easier to use. Errors are now
578
+ wrapped by the new XML::Error class and are thrown as exceptions
579
+ when it is appropriate.
580
+
581
+ * Fixed segmentation fault caused by documents being freed
582
+ before xpath results that referenced the document.
583
+
584
+ * Add Node#register_default_namespace to simplify default namespace handling.
585
+
586
+ * Significantly improve documentation
587
+
588
+ * A number of bug fixes and patches.
589
+
590
+ == 0.9.0 / 2008-11-18 Charlie Savage
591
+
592
+ * Version 0.9.0 was removed due to packaging errors.
593
+
594
+
595
+ == 0.8.3 / 2008-07-21 Charlie Savage
596
+
597
+ * Missed several files in last release
598
+
599
+ == 0.8.2 / 2008-07-21 Charlie Savage
600
+
601
+ * To use LibXML you can either require 'xml' or require 'libxml'.
602
+ The differences is that require 'xml' mixes the LibXML module into
603
+ the global namespace, thereby allowing you to write code such
604
+ as document = XML::Document.new. Note that this is different
605
+ from 0.8.0 and 0.8.1 and may require updating your code.
606
+
607
+ * Support RelaxNG validation (thanks to Morus Walter)
608
+
609
+ * Support passing IO objects to XmlReaders (thanks to Tom Hughes)
610
+
611
+ * Fix segmentation fault caused by adding an attribute to a CDATA node
612
+
613
+ * Moved node checking functions from C to Ruby
614
+
615
+ * Improved Windows support - libxml-ruby should now work out of the box.
616
+
617
+ * Improved Windows support - turned on libxml's zlib and iconv support.
618
+
619
+
620
+ == 0.8.1 / 2008-07-09 Charlie Savage
621
+
622
+ * Reimplmented Node#each_attr for backwards compatability
623
+
624
+ * Moved node type test to Ruby.
625
+
626
+
627
+ == 0.8.0 / 2008-07-09 Charlie Savage
628
+
629
+ * Fixed bug in returning attributes from XPath results
630
+
631
+ * Fixed DOM traversal methods
632
+
633
+ * Changed Node#children to return an array of nodes
634
+
635
+ * Fixed bug in returning attributes from XPath results
636
+
637
+ * Refactored XPath support, providing more user hooks in the XPath::Context class
638
+
639
+ * Added Node#properties for backwards compatibility
640
+
641
+ * Updated setup.rb
642
+
643
+ * Added more tests
644
+
645
+ * Updated rdocs and README file
646
+
647
+ * Moved libxml into LibXML namespace
648
+
649
+
650
+ == 0.7.0 / 2008-07-09 Charlie Savage
651
+
652
+ * Added new attributes class to provide a more natural way of working with attributes
653
+
654
+ * Fixed XML::Attr to better support namespaces
655
+
656
+ * Added documentation on how to use namespaces with XPath
657
+
658
+ * Removed allocation of extraneous structures used to wrap nodes, namespaces and attributes
659
+
660
+ * Cleaned up tests and added new test suite
661
+
662
+ * Updated rdocs and README file
663
+
664
+ * Cleaned out most of the bug list
665
+
666
+
667
+ == 0.6.0 / 2008-07-01 Charlie Savage
668
+
669
+ * Fixed memory allocation errors in Windows. On Windows, it is essential that the same library that allocates memory must free it. Thus ALLOC calls must be matched to ruby_xfree calls, which they were not. In addition, in one case Ruby was allocating memory to be freed by libxml. On Windows, that's a segmentation fault. On Linux it might fly, but still seems like a bad idea.
670
+
671
+ * Fixed segmentation fault in xml reader expand (same xml tree freed twice)
672
+
673
+ * Applied a number of patches from Tom Bagby, including fixes for xpath segmentation faults and fixes for various memory leaks
674
+
675
+ * Cleaned up a number of compiler warnings
676
+
677
+ * Renamed libxml_so.so to libxml_ruby.so (same for xslt). That wasn't actually my original intention, but um, it kind of sort of happened. It should not be noticeable from an end-user perspective.
678
+
679
+ * Added rake files for building with MingW
680
+
681
+ * Added rake files for packing gems. Note that I did this outside the existing rake tasks because I didn't see how they were actually building the gems.
682
+
683
+ * Cleaned up the tests and added a few more based on bug reports from the Tracker and mailing list.
684
+
685
+ * Cleaned out the patch queue and went through about 1/2 the bug list
686
+
687
+
688
+ === 2007-11-16 "Dan Janowski" <danj at 3skel.com>
689
+
690
+ * Merged Dan's MEM2 branch to trunk.
691
+
692
+ == 0.5.3 /
693
+
694
+ === 2007-11-16 "Dan Janowski" <danj at 3skel.com>
695
+
696
+ * Merged Dan's MEM2 branch to trunk.
697
+
698
+
699
+ == 0.5.2 / 2007-10-10
700
+
701
+ === 2007-10-10 "Dan Janowski" <danj at 3skel.com>
702
+
703
+ * (Dan, fill in the major points of the changes you made up to here -thanks)
704
+
705
+ === 2007-01-14 "Laurent Sansonetti" <lrz at chopine.be>
706
+
707
+ * Added some preliminary RDoc comments for XML::Reader.
708
+
709
+ === 2006-12-05 "Laurent Sansonetti" <lrz at chopine.be>
710
+
711
+ * Added XML::Reader, a set of bindings to the xmlTextReader API.
712
+
713
+
714
+ == 0.3.8.4 / 2006-12-02
715
+
716
+ === 2006-04-15 "Ross Bamform" <rosco at roscopeco.co.uk>
717
+
718
+ * Implemented SAX parser callback handling.
719
+
720
+ === 2006-04-12 "Ross Bamford" <rosco at roscopeco.co.uk>
721
+
722
+ * Integrated and tested community patches.
723
+ * Defined XML::Node (hash) equality in terms of XML representation.
724
+
725
+ === 2006-04-12 "Tim Yamin" <plasmaroo at gentoo.org>
726
+
727
+ * Fixed XML::Node#content inoperable bug (plasmaroo) [patch]
728
+ * Fixed memory leak in same
729
+
730
+ === 2006-04-12 "Mark Van Holstyn" <mvette13 at gmail.com>
731
+
732
+ * Added XML::Node::Set#first (mvette13) [patch]
733
+ * Added XML::Node::Set#empty?
734
+ * Fixed XML::Node::Set#to_a
735
+ * Added XML::Node#find_first
736
+ * Added XML::Node#remove!
737
+
738
+ === 2006-03-27 "Ross Bamford" <rosco at roscopeco.co.uk>
739
+
740
+ * Integrated contributed XML::Parser.register_error_handler patch (rosco)
741
+
742
+ === 2006-02-27 "Ross Bamford" <rosco at roscopeco.co.uk>
743
+
744
+ * Fixed all multiple symbol definitions for -fno-common.
745
+ * Removed OSX -fno-common workaround.
746
+
747
+
748
+ == 0.3.6 / 2006-02-23
749
+
750
+ === 2006-02-21 "Ross Bamford" <rosco at roscopeco.co.uk>
751
+
752
+ * Patched extconf.rb with OSX -fno-common workaround
753
+ * Added gem and packaging support to Rakefile
754
+ * Moved version update to Rakefile
755
+ * Removed legacy project utility scripts
756
+
757
+ === 2005-02-19 "Ross Bamford" <rosco at roscopeco.co.uk>
758
+
759
+ * Fixed doublefree bug in ruby_xml_attr.
760
+ * Fixed small leak in parser
761
+
762
+ === 2005-12-18 "Ross Bamford" <rosco at roscopeco.co.uk>
763
+
764
+ * Updated for GCC 4.0 (community patches)
765
+ * Fixed default validation bug
766
+ * Refactored project, removed outdated files, cleaned up tests.
767
+ * Added RDoc documentation across .c files.
768
+ * Fixed up a few strings.
769
+
770
+ === 2004-04-04 "Mangler Jurgen" <et@wkv.at>
771
+
772
+ * ruby_xml_node.cz: fixed ruby_xml_node_property_set. The ill-behaviour
773
+ was, that there was added a second attribute of the same
774
+ name, when you were setting the value of an already existing
775
+ attribute.
776
+
777
+ === 2004-03-17 "Lukas Svoboda" <luks@fi.muni.cz>
778
+
779
+ * ruby_xml_node.c: ruby_xml_node_to_s now returns XML subtree dump.
780
+
781
+ === 2004-02-27 "Martin Povolny" <martin@solnet.cz>
782
+
783
+ * ruby_xml_node.c: added XML::Node.copy, this makes possible building
784
+ of xml documents from nodes taken from other xml documents
785
+ without making ruby SIGSEGV (see tests/copy_bug.rb).
786
+
787
+ === 2004-02-26 "Martin Povolny" <martin@solnet.cz>
788
+
789
+ * ruby_xml_dtd.c, ruby_xml_dtd.h, ruby_xml_schema.c, ruby_xml_schema.h:
790
+ more work on validation, now you can actually validate
791
+ document using dtd or xml schema, also solved warning and
792
+ error propagation (see tests/{dtd|schema}-test.rb).
793
+
794
+ === 2003-12-30 "Martin Povolny" <martin@solnet.cz>
795
+
796
+ * ruby_xml_dtd.c, ruby_xml_dtd.h, ruby_xml_schema.c, ruby_xml_schema.h:
797
+ prelimitary support for dtd and schema validation
798
+
799
+ === 2003-09-15 "Martin Povolny" <martin@solnet.cz>
800
+
801
+ * ruby_xml_input_cbg.c, libxml.c: added class InputCallbacks to make
802
+ possible registering custom input callbacks
803
+ handlers (xmlRegisterInputCallbacks) written in ruby
804
+
805
+ === 2003-08-01 "Martin Povolny" <martin@solnet.cz>
806
+
807
+ * ruby_xml_document.c: corrected argument handling in ruby_xml_document_find
808
+ * ruby_xml_node.c: corrected argument handling in ruby_xml_node_find
809
+
810
+
811
+