* Fix benchmark script replacing internal package imports
The sed command in bench() was replacing all occurrences of the go-toml
module path, including sub-package imports like internal/assert. This
caused the BurntSushi/toml benchmark to fail because it tried to import
github.com/BurntSushi/toml/internal/assert which doesn't exist.
Fix by anchoring the sed pattern to only match the import path when
followed by a closing quote, preserving internal package imports.
Also add a guard in the benchstathtml Python script to give a clear
error instead of an IndexError when no benchmark results are available.
https://claude.ai/code/session_016JGASo49PeFSfCaDxvrGFE
* Update benchmark results in README
https://claude.ai/code/session_016JGASo49PeFSfCaDxvrGFE
---------
Co-authored-by: Claude <noreply@anthropic.com>
* Fix ci.sh for new benchmarks
Nice + taskset are more stable on my machine. We want to excude non high-level
benchmarks. BurntSushi/toml now supports canada.toml.
* Update latest benchmarks in README
* Benchmark script
* Rewrite unmarshaler using the stack
Instead of tracking the build chain using `target`s, use the stack
instead.
Working and most benchmarks look good, but regression on structs unmarshalling.
~60% slower on ReferenceFile/struct.
* Shortcut to check if last node of iterator
* Remove unecessary pointer allocation
* Skip over unused keys without marking them as seen
* Add some tests
* Fix mktemp on macos