Skip to content

adding a C++17 padded_input for convenience.#2667

Merged
lemire merged 11 commits intomasterfrom
intro_padded_input
Apr 9, 2026
Merged

adding a C++17 padded_input for convenience.#2667
lemire merged 11 commits intomasterfrom
intro_padded_input

Conversation

@lemire
Copy link
Copy Markdown
Member

@lemire lemire commented Apr 7, 2026

This is automates the rather complicated memory page hacking.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a C++17 simdjson::padded_input convenience wrapper to automate “free padding” page-boundary handling, and updates docs/tests/examples to demonstrate and validate the new input type.

Changes:

  • Introduce simdjson::padded_input (C++17) plus get_page_size() helper to decide when to copy into a padded_string vs keep a view.
  • Add a new ondemand test binary for padded_input, and wire it into the ondemand test CMake.
  • Update documentation and readme example tests (DOM + ondemand) to show padded_input usage.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
include/simdjson/padded_string_view.h Declares get_page_size() and new padded_input wrapper type.
include/simdjson/padded_string_view-inl.h Implements get_page_size() and padded_input logic (page-boundary check, view vs copy).
tests/ondemand/ondemand_padded_input.cpp New test program covering padded_input with ondemand + DOM parsers.
tests/ondemand/CMakeLists.txt Adds the new ondemand_padded_input test target.
tests/ondemand/ondemand_readme_examples.cpp Adds ondemand readme-style examples using padded_input.
tests/dom/readme_examples.cpp Adds DOM readme-style examples using padded_input.
tests/ondemand/ondemand_cacheline.cpp Clarifies need_allocation() precondition in comment.
doc/performance.md Documents padded_input as a C++17+ simplification for padding management.
doc/dom.md Adds DOM docs snippet showing padded_input usage and caveats.
doc/basics.md Updates “basics” docs to include padded_input and reorganizes input/padding guidance.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread include/simdjson/padded_string_view-inl.h
Comment thread include/simdjson/padded_string_view-inl.h Outdated
Comment thread include/simdjson/padded_string_view-inl.h
Comment thread tests/ondemand/ondemand_padded_input.cpp
Comment thread tests/ondemand/ondemand_readme_examples.cpp Outdated
Comment thread doc/performance.md Outdated
Comment thread tests/ondemand/ondemand_readme_examples.cpp
Comment thread include/simdjson/padded_string_view.h
lemire and others added 5 commits April 8, 2026 19:21
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@lemire lemire merged commit 85cadf4 into master Apr 9, 2026
158 checks passed
@lemire lemire deleted the intro_padded_input branch April 9, 2026 18:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants