simdjson / simdjson/simdjson

The simdjson fallback DOM kernel should skip stage 1 and be single-pass

Open
#1,413 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

performance
Dominant language
C++
Stars
24.3k
Forks
1.3k
Avg merge
1d 3h
Merged PRs (30d)
16

Description

Current simdjson has a fallback kernel which emulates a high speed wide SIMD stage 1. This is almost certainly wasteful and we should instead move to single-stage model where we only have a stage 2. Possibly after parsing a element, we could conditionally skip allowable white space.

This would be only for the DOM API presumably. It would force us to add UTF-8 validation to the string processing.

Tentatively marked as 1.0.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Locate the fallback DOM kernel and its stage 1 and stage 2 entry points, then inspect the DOM string-processing path and existing UTF-8 validation. Done would mean the DOM fallback uses a single stage, skips the current stage 1 work, conditionally handles allowable whitespace, and preserves required UTF-8 validation.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
performance
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.