Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,15 @@ All notable changes to XML.jl will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Internal

- Source layout: the `src/XML.jl` monolith (1409 lines) is split into dedicated files —
`escape.jl`, `node.jl`, `write.jl`, `parse.jl`, `dtd.jl` — alongside the existing
`XMLTokenizer.jl`/`lazynode.jl`/`cursor.jl`/`xpath.jl`. Pure moves, no behavior change;
`src/XML.jl` is now the commented include manifest.

## [0.4.1] - 2026-07-05

### Added
Expand Down
6 changes: 6 additions & 0 deletions benchmarks/profile_039_results.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
dev profile vs v0.3.9 (worktree + subprocess) ...

=== vv0.3.9 — the v0.3.9 column (DOM regimes) ===
nodes walked: 567327 (v0.4 walks 882026; v0.4 preserves whitespace Text nodes, 0.3.x dropped them)
parse → DOM: 510.28 ms / 1421.7 MiB
full extraction: 530.06 ms / 1421.7 MiB
23 changes: 23 additions & 0 deletions benchmarks/profile_results.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
file: 14.16 MB
validation — stream events: Cursor=882025 EzXML=1154783
validation — extract nodes: XML.jl=882026 EzXML=882022 LightXML(elem only)=313452
validation — lex tokens: 1850962
validation — bytes touched: XML.jl=9968541 EzXML=4173492 (sanity, should be same order)

=== (1) STREAM — file → events, no tree built ===
XML.jl Cursor 53.7 ms 17.4 MiB
EzXML StreamReader 66.93 ms 35.5 MiB

=== (2) FULL EXTRACTION — parse + pull every tag/text ===
XML.jl (String) 134.97 ms 122.3 MiB
XML.jl (SubString) 110.37 ms 120.3 MiB
EzXML 61.99 ms 53.8 MiB
LightXML (elem) 62.46 ms 57.4 MiB

=== (3) DECOMPOSE — XML.jl pipeline stages ===
read file (I/O) 0.58 ms 13.5 MiB
lex only (tokenize) 37.43 ms 0.0 MiB
parse → DOM 106.64 ms 122.3 MiB
traverse only 6.16 ms 0.0 MiB

(build ≈ parse − lex; traverse is on a pre-built tree)
Loading
Loading