open-standards/wai/quantum-conformance/reject
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science e1f3b6faa0 wai-quantum circuit2: the number range decided on the literal's digits in both readers
A third review upheld six findings.

- std's f64 parse stops adding exponent digits once the exponent reaches
  0x10000, so a literal whose exponent offsets about 655,000 zeros was judged
  wrong both ways: exactly 1 refused, 10^309 accepted. The Rust reader now
  decides the range rule on the digits, as the referee does: the significant
  digits and the decimal exponent, with saturating exponent arithmetic, against
  the 309 digits of 2^1024 − 2^970. The limit is one constant, RANGE_LIMIT, and
  a test derives it in decimal from 2^1024 and 2^970 and checks it against
  std's parse where that parse is exact.
- The referee passed a zero-padded exponent of over 4300 digits to int(),
  which Python refuses; it now converts only the significant exponent digits.
- quantum-sim §8, the CHANGELOG and SPEC §5 now list both directions of the
  range change: numbers at or above the limit that earlier builds let through
  are refused, numbers below it that some builds refused are accepted. §2 says
  the rule is decided on the digits, at any length.
- The corpus README and the wasip2 job comment were stale.

The corpus holds both long literals and the padded exponent: an accept file
(exactly 1 and exactly 10, written long) and a reject file (10^309).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-09 18:50:35 -04:00
..
magic_wqc3.wqc
no_contract.wqc
no_oplog.wqc
reject.json wai-quantum circuit2: the number range decided on the literal's digits in both readers 2026-10-09 18:50:35 -04:00
section_past_end.wqc
short_payload.wqc
table_past_end.wqc
unknown_section_past_end.wqc
v1_contract2_in_wqc1.wqc
v1_contract_bom.wqc
v1_contract_control_character.wqc
v1_contract_duplicate_member.wqc
v1_contract_integer_rounds_to_infinity.wqc
v1_contract_lone_low_surrogate.wqc
v1_contract_lone_surrogate.wqc
v1_contract_long_literal.wqc wai-quantum circuit2: the number range decided on the literal's digits in both readers 2026-10-09 18:50:35 -04:00
v1_contract_nan.wqc
v1_contract_noncharacter.wqc
v1_contract_not_object.wqc
v1_contract_not_utf8.wqc
v1_contract_number_out_of_range.wqc
v1_contract_number_rounds_to_infinity.wqc
v1_contract_raw_noncharacter.wqc
v1_contract_too_deep.wqc
v1_contract_twice.wqc
v1_control_is_target.wqc
v1_control_out_of_range.wqc
v1_ext_other.wqc
v1_fields_missing.wqc
v1_frac_31.wqc
v1_frac_float.wqc
v1_gateset_rn.wqc
v1_measure_duplicate_member.wqc
v1_measure_not_json.wqc
v1_n_ops_u32max.wqc
v1_n_qubits_256.wqc
v1_n_qubits_258.wqc
v1_n_qubits_fraction.wqc
v1_n_qubits_minus0.wqc
v1_n_qubits_missing.wqc
v1_numeric_other.wqc
v1_offset_wrap.wqc
v1_op_truncated_controls.wqc
v1_opcode_10.wqc
v1_oplog_short.wqc
v1_oplog_twice.wqc
v1_phase_0.wqc
v1_phase_33.wqc
v1_target_out_of_range.wqc
v2_contract1_in_wqc2.wqc
v2_contract_extra_member.wqc
v2_contract_key_order.wqc
v2_contract_not_object.wqc
v2_contract_whitespace.wqc
v2_duplicate_controls.wqc
v2_measure_basis_x.wqc
v2_measure_no_shots.wqc
v2_measure_seed_signed.wqc
v2_measure_spaced.wqc
v2_measure_twice.wqc
v2_n_qubits_256.wqc
v2_n_qubits_largest_finite.wqc
v2_n_qubits_rounds_to_infinity.wqc
v2_opcode_10.wqc
v2_oplog_trailing_byte.wqc
v2_param_on_h.wqc
v2_phase_0.wqc