This is an automated email from the ASF dual-hosted git repository.
nickva pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/couchdb-jiffy.git
from e0fa42e Remove macos-13 CI workers
new 3282a1a Add a missing else in utf8 validation
new 66a6d99 Fix -Wextra warnings
new 229c05b Add specific gcc and clang versions to CI
new 7fdf276 Run prop tests in CI
new 936e0f8 Fix OTP 27 prop tests
new 0435946 Add C coverage checks
new 5ba8495 Clean up unused code paths. Make OTP 20 the official minimum
version
new 0243863 Make most of decode functions static
new 8f50162 Add extra number tests
new 953a171 Add a deep pretty printing test
new 0693a9a Increase coverage for bad options
new e1fa8a4 Add yielding tests
new 7606c3f Add coverage for random unicode edge cases
new dbd7bcc Plain ASCII scan ahead optimization in string decoding
new b699032 Gate the restrict macro with a C version check
new efaaae1 Use the restrict pointer qualifier when decoding numbers
new b2c4ae2 Use assert for dec_number unreacheable state
new e48ccda Improve error handling in dec_number
new 67571e1 Use quick lookahead parsing for numbers
new f8a7c77 Plain ASCII scan ahead optimization in string encoding
new 0e5c71c Bump yielding reduction count to 4000
new 32062a2 Whitespace scan ahead optimization in decoder
new 13686ba Add bench folder to gitignore
new 7d37dd1 Ignore .cache
new 09a75e9 Optimize dedupe_keys option
new 6362a56 Replace chocolatey with erlef/setup-beam
new b42c9a4 Switch to Ryu for float point encoding
new f84f784 Faster map encoding with enif_make_map_from_arrays
new e1f4d4d Faster array creation
new 3ab87a6 No more FLTO
new 57682e4 Add extra tests and cleanup to increase coverage
new a529615 Add some NIF lifecyle coverage
new 38dffa9 Produce a unity build
new 2649ba2 Prevent forward slashes from breaking scan-ahead optimization
new 56117fa Test with the Big List of Naughty Strings (BLNS)
new a03cbf4 RFC 8259 Tests
new 5681d76 Cleanup jiffy erl module
new 34b00c1 Another l2b/b2l cleanup
new 6b04965 Header cleanups
new 34d4b1e 100% compliance with RFC 8259
new c3dce8a Skip setting buffer to 0 for strtod and strtol
new ac3c936 Fix potential segfault in termstack expansion
new 4c4cf90 Optimize termstack_restore allocation
new f6f49d1 Use ffc.h library to parse numbers
new c77f342 Use branch predictors for encoding
new 0b795ab Implement SIMD vectorization
new c93691c Improve coverage even more
new b8a2299 Reduce bytes per reduction a bit
new a81f9b7 Speed up UTF8 validation by about 25%
The 49 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.github/workflows/ci.yml | 87 +-
.gitignore | 10 +
LICENSE | 533 +++-
Makefile | 24 +-
README.ffc.md | 11 +
README.ryu.md | 28 +
c_src/decoder.c | 280 +-
c_src/double-conversion/AUTHORS | 14 -
c_src/double-conversion/COPYING | 26 -
c_src/double-conversion/LICENSE | 26 -
c_src/double-conversion/README.md | 54 -
c_src/double-conversion/VERSION | 3 -
c_src/double-conversion/bignum-dtoa.cc | 641 ----
c_src/double-conversion/bignum-dtoa.h | 84 -
c_src/double-conversion/bignum.cc | 767 -----
c_src/double-conversion/bignum.h | 144 -
c_src/double-conversion/cached-powers.cc | 175 --
c_src/double-conversion/cached-powers.h | 64 -
c_src/double-conversion/diy-fp.cc | 57 -
c_src/double-conversion/diy-fp.h | 118 -
c_src/double-conversion/double-conversion.cc | 1144 -------
c_src/double-conversion/double-conversion.h | 576 ----
c_src/double-conversion/fast-dtoa.cc | 665 ----
c_src/double-conversion/fast-dtoa.h | 88 -
c_src/double-conversion/fixed-dtoa.cc | 405 ---
c_src/double-conversion/fixed-dtoa.h | 56 -
c_src/double-conversion/ieee.h | 402 ---
c_src/double-conversion/strtod.cc | 580 ----
c_src/double-conversion/strtod.h | 45 -
c_src/double-conversion/utils.h | 367 ---
c_src/doubles.cc | 33 -
c_src/encoder.c | 237 +-
c_src/ffc.h | 3242 ++++++++++++++++++++
c_src/jiffy.c | 33 +-
c_src/jiffy.h | 62 +-
c_src/jiffy_simd.h | 64 +
c_src/{utf8.c => jiffy_utf8.h} | 178 +-
c_src/objects.c | 251 ++
c_src/objects.cc | 70 -
c_src/ryu/LICENSE-Apache2 | 201 ++
c_src/ryu/LICENSE-Boost | 23 +
c_src/ryu/common.h | 116 +
c_src/ryu/d2s.c | 391 +++
c_src/ryu/d2s_full_table.h | 367 +++
c_src/ryu/d2s_intrinsics.h | 359 +++
c_src/ryu/digit_table.h | 35 +
c_src/ryu/ryu.h | 37 +
c_src/ryu/to_chars.h | 342 +++
c_src/termstack.c | 87 -
c_src/termstack.h | 34 -
c_src/util.c | 60 +-
rebar.config | 18 +-
rebar.config.script | 39 +-
src/jiffy.erl | 19 +-
test/cases/blns.txt | 742 +++++
.../i_number_double_huge_neg_exp.json | 1 +
test/cases/json_test_suite/i_number_huge_exp.json | 1 +
.../json_test_suite/i_number_neg_int_huge_exp.json | 1 +
.../i_number_pos_double_huge_exp.json | 1 +
.../i_number_real_neg_overflow.json | 1 +
.../i_number_real_pos_overflow.json | 1 +
.../json_test_suite/i_number_real_underflow.json | 1 +
.../json_test_suite/i_number_too_big_neg_int.json | 1 +
.../json_test_suite/i_number_too_big_pos_int.json | 1 +
.../i_number_very_big_negative_int.json | 1 +
.../i_object_key_lone_2nd_surrogate.json | 1 +
.../i_string_1st_surrogate_but_2nd_missing.json | 1 +
.../i_string_1st_valid_surrogate_2nd_invalid.json | 1 +
.../i_string_UTF-16LE_with_BOM.json | Bin 0 -> 12 bytes
.../i_string_UTF-8_invalid_sequence.json | 1 +
.../i_string_UTF8_surrogate_U+D800.json | 1 +
...ring_incomplete_surrogate_and_escape_valid.json | 1 +
.../i_string_incomplete_surrogate_pair.json | 1 +
..._string_incomplete_surrogates_escape_valid.json | 1 +
.../i_string_invalid_lonely_surrogate.json | 1 +
.../i_string_invalid_surrogate.json | 1 +
.../json_test_suite/i_string_invalid_utf-8.json | 1 +
.../i_string_inverted_surrogates_U+1D11E.json | 1 +
.../json_test_suite/i_string_iso_latin_1.json | 1 +
.../i_string_lone_second_surrogate.json | 1 +
.../i_string_lone_utf8_continuation_byte.json | 1 +
.../i_string_not_in_unicode_range.json | 1 +
.../i_string_overlong_sequence_2_bytes.json | 1 +
.../i_string_overlong_sequence_6_bytes.json | 1 +
.../i_string_overlong_sequence_6_bytes_null.json | 1 +
.../json_test_suite/i_string_truncated-utf-8.json | 1 +
.../json_test_suite/i_string_utf16BE_no_BOM.json | Bin 0 -> 10 bytes
.../json_test_suite/i_string_utf16LE_no_BOM.json | Bin 0 -> 10 bytes
.../i_structure_500_nested_arrays.json | 1 +
.../i_structure_UTF-8_BOM_empty_object.json | 1 +
.../n_array_1_true_without_comma.json | 1 +
.../json_test_suite/n_array_a_invalid_utf8.json | 1 +
.../n_array_colon_instead_of_comma.json | 1 +
.../json_test_suite/n_array_comma_after_close.json | 1 +
.../json_test_suite/n_array_comma_and_number.json | 1 +
.../json_test_suite/n_array_double_comma.json | 1 +
.../n_array_double_extra_comma.json | 1 +
.../cases/json_test_suite/n_array_extra_close.json | 1 +
.../cases/json_test_suite/n_array_extra_comma.json | 1 +
test/cases/json_test_suite/n_array_incomplete.json | 1 +
.../n_array_incomplete_invalid_value.json | 1 +
.../n_array_inner_array_no_comma.json | 1 +
.../json_test_suite/n_array_invalid_utf8.json | 1 +
.../n_array_items_separated_by_semicolon.json | 1 +
test/cases/json_test_suite/n_array_just_comma.json | 1 +
test/cases/json_test_suite/n_array_just_minus.json | 1 +
.../json_test_suite/n_array_missing_value.json | 1 +
.../json_test_suite/n_array_newlines_unclosed.json | 3 +
.../json_test_suite/n_array_number_and_comma.json | 1 +
.../n_array_number_and_several_commas.json | 1 +
.../n_array_spaces_vertical_tab_formfeed.json | 1 +
.../cases/json_test_suite/n_array_star_inside.json | 1 +
test/cases/json_test_suite/n_array_unclosed.json | 1 +
.../n_array_unclosed_trailing_comma.json | 1 +
.../n_array_unclosed_with_new_lines.json | 3 +
.../n_array_unclosed_with_object_inside.json | 1 +
test/cases/json_test_suite/n_incomplete_false.json | 1 +
test/cases/json_test_suite/n_incomplete_null.json | 1 +
test/cases/json_test_suite/n_incomplete_true.json | 1 +
.../n_multidigit_number_then_00.json | Bin 0 -> 4 bytes
test/cases/json_test_suite/n_number_++.json | 1 +
test/cases/json_test_suite/n_number_+1.json | 1 +
test/cases/json_test_suite/n_number_+Inf.json | 1 +
test/cases/json_test_suite/n_number_-01.json | 1 +
test/cases/json_test_suite/n_number_-1.0..json | 1 +
test/cases/json_test_suite/n_number_-2..json | 1 +
test/cases/json_test_suite/n_number_-NaN.json | 1 +
test/cases/json_test_suite/n_number_.-1.json | 1 +
test/cases/json_test_suite/n_number_.2e-3.json | 1 +
test/cases/json_test_suite/n_number_0.1.2.json | 1 +
test/cases/json_test_suite/n_number_0.3e+.json | 1 +
test/cases/json_test_suite/n_number_0.3e.json | 1 +
test/cases/json_test_suite/n_number_0.e1.json | 1 +
.../json_test_suite/n_number_0_capital_E+.json | 1 +
.../json_test_suite/n_number_0_capital_E.json | 1 +
test/cases/json_test_suite/n_number_0e+.json | 1 +
test/cases/json_test_suite/n_number_0e.json | 1 +
test/cases/json_test_suite/n_number_1.0e+.json | 1 +
test/cases/json_test_suite/n_number_1.0e-.json | 1 +
test/cases/json_test_suite/n_number_1.0e.json | 1 +
test/cases/json_test_suite/n_number_1_000.json | 1 +
test/cases/json_test_suite/n_number_1eE2.json | 1 +
test/cases/json_test_suite/n_number_2.e+3.json | 1 +
test/cases/json_test_suite/n_number_2.e-3.json | 1 +
test/cases/json_test_suite/n_number_2.e3.json | 1 +
test/cases/json_test_suite/n_number_9.e+.json | 1 +
test/cases/json_test_suite/n_number_Inf.json | 1 +
test/cases/json_test_suite/n_number_NaN.json | 1 +
.../n_number_U+FF11_fullwidth_digit_one.json | 1 +
.../cases/json_test_suite/n_number_expression.json | 1 +
.../json_test_suite/n_number_hex_1_digit.json | 1 +
.../json_test_suite/n_number_hex_2_digits.json | 1 +
test/cases/json_test_suite/n_number_infinity.json | 1 +
test/cases/json_test_suite/n_number_invalid+-.json | 1 +
.../n_number_invalid-negative-real.json | 1 +
.../n_number_invalid-utf-8-in-bigger-int.json | 1 +
.../n_number_invalid-utf-8-in-exponent.json | 1 +
.../n_number_invalid-utf-8-in-int.json | 1 +
.../json_test_suite/n_number_minus_infinity.json | 1 +
.../n_number_minus_sign_with_trailing_garbage.json | 1 +
.../json_test_suite/n_number_minus_space_1.json | 1 +
.../n_number_neg_int_starting_with_zero.json | 1 +
.../n_number_neg_real_without_int_part.json | 1 +
.../n_number_neg_with_garbage_at_end.json | 1 +
.../n_number_real_garbage_after_e.json | 1 +
.../n_number_real_with_invalid_utf8_after_e.json | 1 +
.../n_number_real_without_fractional_part.json | 1 +
.../n_number_starting_with_dot.json | 1 +
.../cases/json_test_suite/n_number_with_alpha.json | 1 +
.../json_test_suite/n_number_with_alpha_char.json | 1 +
.../n_number_with_leading_zero.json | 1 +
test/cases/json_test_suite/n_object_bad_value.json | 1 +
.../json_test_suite/n_object_bracket_key.json | 1 +
.../n_object_comma_instead_of_colon.json | 1 +
.../json_test_suite/n_object_double_colon.json | 1 +
test/cases/json_test_suite/n_object_emoji.json | 1 +
.../json_test_suite/n_object_garbage_at_end.json | 1 +
.../n_object_key_with_single_quotes.json | 1 +
...ontinuation_byte_in_key_and_trailing_comma.json | 1 +
.../json_test_suite/n_object_missing_colon.json | 1 +
.../json_test_suite/n_object_missing_key.json | 1 +
.../n_object_missing_semicolon.json | 1 +
.../json_test_suite/n_object_missing_value.json | 1 +
test/cases/json_test_suite/n_object_no-colon.json | 1 +
.../json_test_suite/n_object_non_string_key.json | 1 +
...ect_non_string_key_but_huge_number_instead.json | 1 +
.../n_object_repeated_null_null.json | 1 +
.../n_object_several_trailing_commas.json | 1 +
.../json_test_suite/n_object_single_quote.json | 1 +
.../json_test_suite/n_object_trailing_comma.json | 1 +
.../json_test_suite/n_object_trailing_comment.json | 1 +
.../n_object_trailing_comment_open.json | 1 +
.../n_object_trailing_comment_slash_open.json | 1 +
...ect_trailing_comment_slash_open_incomplete.json | 1 +
.../n_object_two_commas_in_a_row.json | 1 +
.../json_test_suite/n_object_unquoted_key.json | 1 +
.../n_object_unterminated-value.json | 1 +
.../n_object_with_single_string.json | 1 +
.../n_object_with_trailing_garbage.json | 1 +
test/cases/json_test_suite/n_single_space.json | 1 +
.../n_string_1_surrogate_then_escape.json | 1 +
.../n_string_1_surrogate_then_escape_u.json | 1 +
.../n_string_1_surrogate_then_escape_u1.json | 1 +
.../n_string_1_surrogate_then_escape_u1x.json | 1 +
.../n_string_accentuated_char_no_quotes.json | 1 +
.../json_test_suite/n_string_backslash_00.json | Bin 0 -> 6 bytes
test/cases/json_test_suite/n_string_escape_x.json | 1 +
.../n_string_escaped_backslash_bad.json | 1 +
.../n_string_escaped_ctrl_char_tab.json | 1 +
.../json_test_suite/n_string_escaped_emoji.json | 1 +
.../n_string_incomplete_escape.json | 1 +
.../n_string_incomplete_escaped_character.json | 1 +
.../n_string_incomplete_surrogate.json | 1 +
...string_incomplete_surrogate_escape_invalid.json | 1 +
.../n_string_invalid-utf-8-in-escape.json | 1 +
.../n_string_invalid_backslash_esc.json | 1 +
.../n_string_invalid_unicode_escape.json | 1 +
.../n_string_invalid_utf8_after_escape.json | 1 +
.../n_string_leading_uescaped_thinspace.json | 1 +
.../n_string_no_quotes_with_bad_escape.json | 1 +
.../n_string_single_doublequote.json | 1 +
.../json_test_suite/n_string_single_quote.json | 1 +
.../n_string_single_string_no_double_quotes.json | 1 +
.../n_string_start_escape_unclosed.json | 1 +
.../n_string_unescaped_ctrl_char.json | Bin 0 -> 7 bytes
.../n_string_unescaped_newline.json | 2 +
.../json_test_suite/n_string_unescaped_tab.json | 1 +
.../json_test_suite/n_string_unicode_CapitalU.json | 1 +
.../n_string_with_trailing_garbage.json | 1 +
.../n_structure_100000_opening_arrays.json | 1 +
.../n_structure_U+2060_word_joined.json | 1 +
.../n_structure_UTF8_BOM_no_data.json | 1 +
.../n_structure_angle_bracket_..json | 1 +
.../n_structure_angle_bracket_null.json | 1 +
.../n_structure_array_trailing_garbage.json | 1 +
.../n_structure_array_with_extra_array_close.json | 1 +
.../n_structure_array_with_unclosed_string.json | 1 +
.../n_structure_ascii-unicode-identifier.json | 1 +
.../n_structure_capitalized_True.json | 1 +
.../n_structure_close_unopened_array.json | 1 +
...n_structure_comma_instead_of_closing_brace.json | 1 +
.../json_test_suite/n_structure_double_array.json | 1 +
.../json_test_suite/n_structure_end_array.json | 1 +
.../n_structure_incomplete_UTF8_BOM.json | 1 +
.../n_structure_lone-invalid-utf-8.json | 1 +
.../n_structure_lone-open-bracket.json | 1 +
.../cases/json_test_suite/n_structure_no_data.json | 0
.../n_structure_null-byte-outside-string.json | Bin 0 -> 3 bytes
.../n_structure_number_with_trailing_garbage.json | 1 +
...tructure_object_followed_by_closing_object.json | 1 +
.../n_structure_object_unclosed_no_value.json | 1 +
.../n_structure_object_with_comment.json | 1 +
.../n_structure_object_with_trailing_garbage.json | 1 +
.../n_structure_open_array_apostrophe.json | 1 +
.../n_structure_open_array_comma.json | 1 +
.../n_structure_open_array_object.json | 1 +
.../n_structure_open_array_open_object.json | 1 +
.../n_structure_open_array_open_string.json | 1 +
.../n_structure_open_array_string.json | 1 +
.../json_test_suite/n_structure_open_object.json | 1 +
.../n_structure_open_object_close_array.json | 1 +
.../n_structure_open_object_comma.json | 1 +
.../n_structure_open_object_open_array.json | 1 +
.../n_structure_open_object_open_string.json | 1 +
...ucture_open_object_string_with_apostrophes.json | 1 +
.../json_test_suite/n_structure_open_open.json | 1 +
.../json_test_suite/n_structure_single_eacute.json | 1 +
.../json_test_suite/n_structure_single_star.json | 1 +
.../json_test_suite/n_structure_trailing_#.json | 1 +
.../n_structure_uescaped_LF_before_string.json | 1 +
.../n_structure_unclosed_array.json | 1 +
.../n_structure_unclosed_array_partial_null.json | 1 +
..._structure_unclosed_array_unfinished_false.json | 1 +
...n_structure_unclosed_array_unfinished_true.json | 1 +
.../n_structure_unclosed_object.json | 1 +
.../n_structure_unicode-identifier.json | 1 +
.../n_structure_whitespace_U+2060_word_joiner.json | 1 +
.../n_structure_whitespace_formfeed.json | 1 +
.../json_test_suite/y_array_arraysWithSpaces.json | 1 +
.../json_test_suite/y_array_empty-string.json | 1 +
.../y_array_empty.json} | 0
.../y_array_ending_with_newline.json | 1 +
test/cases/json_test_suite/y_array_false.json | 1 +
.../json_test_suite/y_array_heterogeneous.json | 1 +
test/cases/json_test_suite/y_array_null.json | 1 +
.../y_array_with_1_and_newline.json | 2 +
.../y_array_with_leading_space.json | 1 +
.../json_test_suite/y_array_with_several_null.json | 1 +
.../y_array_with_trailing_space.json | 1 +
test/cases/json_test_suite/y_number.json | 1 +
test/cases/json_test_suite/y_number_0e+1.json | 1 +
test/cases/json_test_suite/y_number_0e1.json | 1 +
.../json_test_suite/y_number_after_space.json | 1 +
.../y_number_double_close_to_zero.json | 1 +
.../json_test_suite/y_number_int_with_exp.json | 1 +
.../cases/json_test_suite/y_number_minus_zero.json | 1 +
.../json_test_suite/y_number_negative_int.json | 1 +
.../json_test_suite/y_number_negative_one.json | 1 +
.../json_test_suite/y_number_negative_zero.json | 1 +
.../json_test_suite/y_number_real_capital_e.json | 1 +
.../y_number_real_capital_e_neg_exp.json | 1 +
.../y_number_real_capital_e_pos_exp.json | 1 +
.../json_test_suite/y_number_real_exponent.json | 1 +
.../y_number_real_fraction_exponent.json | 1 +
.../json_test_suite/y_number_real_neg_exp.json | 1 +
.../y_number_real_pos_exponent.json | 1 +
.../cases/json_test_suite/y_number_simple_int.json | 1 +
.../json_test_suite/y_number_simple_real.json | 1 +
test/cases/json_test_suite/y_object.json | 1 +
test/cases/json_test_suite/y_object_basic.json | 1 +
.../json_test_suite/y_object_duplicated_key.json | 1 +
.../y_object_duplicated_key_and_value.json | 1 +
test/cases/json_test_suite/y_object_empty.json | 1 +
test/cases/json_test_suite/y_object_empty_key.json | 1 +
.../y_object_escaped_null_in_key.json | 1 +
.../json_test_suite/y_object_extreme_numbers.json | 1 +
.../json_test_suite/y_object_long_strings.json | 1 +
test/cases/json_test_suite/y_object_simple.json | 1 +
.../json_test_suite/y_object_string_unicode.json | 1 +
.../json_test_suite/y_object_with_newlines.json | 3 +
.../y_string_1_2_3_bytes_UTF-8_sequences.json | 1 +
.../y_string_accepted_surrogate_pair.json | 1 +
.../y_string_accepted_surrogate_pairs.json | 1 +
.../json_test_suite/y_string_allowed_escapes.json | 1 +
.../y_string_backslash_and_u_escaped_zero.json | 1 +
.../y_string_backslash_doublequotes.json | 1 +
test/cases/json_test_suite/y_string_comments.json | 1 +
.../json_test_suite/y_string_double_escape_a.json | 1 +
.../json_test_suite/y_string_double_escape_n.json | 1 +
.../y_string_escaped_control_character.json | 1 +
.../y_string_escaped_noncharacter.json | 1 +
test/cases/json_test_suite/y_string_in_array.json | 1 +
.../y_string_in_array_with_leading_space.json | 1 +
.../y_string_last_surrogates_1_and_2.json | 1 +
.../json_test_suite/y_string_nbsp_uescaped.json | 1 +
.../y_string_nonCharacterInUTF-8_U+10FFFF.json | 1 +
.../y_string_nonCharacterInUTF-8_U+FFFF.json | 1 +
.../json_test_suite/y_string_null_escape.json | 1 +
.../json_test_suite/y_string_one-byte-utf-8.json | 1 +
test/cases/json_test_suite/y_string_pi.json | 1 +
.../y_string_reservedCharacterInUTF-8_U+1BFFF.json | 1 +
.../json_test_suite/y_string_simple_ascii.json | 1 +
test/cases/json_test_suite/y_string_space.json | 1 +
...g_surrogates_U+1D11E_MUSICAL_SYMBOL_G_CLEF.json | 1 +
.../json_test_suite/y_string_three-byte-utf-8.json | 1 +
.../json_test_suite/y_string_two-byte-utf-8.json | 1 +
.../json_test_suite/y_string_u+2028_line_sep.json | 1 +
.../json_test_suite/y_string_u+2029_par_sep.json | 1 +
test/cases/json_test_suite/y_string_uEscape.json | 1 +
.../json_test_suite/y_string_uescaped_newline.json | 1 +
.../y_string_unescaped_char_delete.json | 1 +
test/cases/json_test_suite/y_string_unicode.json | 1 +
.../y_string_unicodeEscapedBackslash.json | 1 +
test/cases/json_test_suite/y_string_unicode_2.json | 1 +
.../y_string_unicode_U+10FFFE_nonchar.json | 1 +
.../y_string_unicode_U+1FFFE_nonchar.json | 1 +
.../y_string_unicode_U+200B_ZERO_WIDTH_SPACE.json | 1 +
.../y_string_unicode_U+2064_invisible_plus.json | 1 +
.../y_string_unicode_U+FDD0_nonchar.json | 1 +
.../y_string_unicode_U+FFFE_nonchar.json | 1 +
.../y_string_unicode_escaped_double_quote.json | 1 +
test/cases/json_test_suite/y_string_utf8.json | 1 +
.../y_string_with_del_character.json | 1 +
.../json_test_suite/y_structure_lonely_false.json | 1 +
.../json_test_suite/y_structure_lonely_int.json | 1 +
.../y_structure_lonely_negative_real.json | 1 +
.../json_test_suite/y_structure_lonely_null.json | 1 +
.../json_test_suite/y_structure_lonely_string.json | 1 +
.../json_test_suite/y_structure_lonely_true.json | 1 +
.../json_test_suite/y_structure_string_empty.json | 1 +
.../y_structure_trailing_newline.json | 1 +
.../json_test_suite/y_structure_true_in_array.json | 1 +
.../y_structure_whitespace_array.json | 1 +
test/install_eqc_mini.sh | 40 +
test/jiffy_02_literal_tests.erl | 10 +
test/jiffy_03_number_tests.erl | 100 +-
test/jiffy_04_string_tests.erl | 39 +-
test/jiffy_05_array_tests.erl | 8 +
test/jiffy_06_object_tests.erl | 62 +
test/jiffy_11_property_tests.erl | 10 +-
test/jiffy_12_error_tests.erl | 21 +
test/jiffy_16_dedupe_keys_tests.erl | 63 +
test/jiffy_19_yielding_tests.erl | 105 +
test/jiffy_20_lifecycle_tests.erl | 29 +
test/jiffy_21_naughty_strings_tests.erl | 25 +
test/jiffy_22_json_test_suite_tests.erl | 86 +
test/jiffy_util.hrl | 13 +-
387 files changed, 8301 insertions(+), 7141 deletions(-)
create mode 100644 README.ffc.md
create mode 100644 README.ryu.md
delete mode 100644 c_src/double-conversion/AUTHORS
delete mode 100644 c_src/double-conversion/COPYING
delete mode 100644 c_src/double-conversion/LICENSE
delete mode 100644 c_src/double-conversion/README.md
delete mode 100644 c_src/double-conversion/VERSION
delete mode 100644 c_src/double-conversion/bignum-dtoa.cc
delete mode 100644 c_src/double-conversion/bignum-dtoa.h
delete mode 100644 c_src/double-conversion/bignum.cc
delete mode 100644 c_src/double-conversion/bignum.h
delete mode 100644 c_src/double-conversion/cached-powers.cc
delete mode 100644 c_src/double-conversion/cached-powers.h
delete mode 100644 c_src/double-conversion/diy-fp.cc
delete mode 100644 c_src/double-conversion/diy-fp.h
delete mode 100644 c_src/double-conversion/double-conversion.cc
delete mode 100644 c_src/double-conversion/double-conversion.h
delete mode 100644 c_src/double-conversion/fast-dtoa.cc
delete mode 100644 c_src/double-conversion/fast-dtoa.h
delete mode 100644 c_src/double-conversion/fixed-dtoa.cc
delete mode 100644 c_src/double-conversion/fixed-dtoa.h
delete mode 100644 c_src/double-conversion/ieee.h
delete mode 100644 c_src/double-conversion/strtod.cc
delete mode 100644 c_src/double-conversion/strtod.h
delete mode 100644 c_src/double-conversion/utils.h
delete mode 100644 c_src/doubles.cc
create mode 100644 c_src/ffc.h
create mode 100644 c_src/jiffy_simd.h
rename c_src/{utf8.c => jiffy_utf8.h} (60%)
create mode 100644 c_src/objects.c
delete mode 100644 c_src/objects.cc
create mode 100644 c_src/ryu/LICENSE-Apache2
create mode 100644 c_src/ryu/LICENSE-Boost
create mode 100644 c_src/ryu/common.h
create mode 100644 c_src/ryu/d2s.c
create mode 100644 c_src/ryu/d2s_full_table.h
create mode 100644 c_src/ryu/d2s_intrinsics.h
create mode 100644 c_src/ryu/digit_table.h
create mode 100644 c_src/ryu/ryu.h
create mode 100644 c_src/ryu/to_chars.h
delete mode 100644 c_src/termstack.c
delete mode 100644 c_src/termstack.h
create mode 100644 test/cases/blns.txt
create mode 100644 test/cases/json_test_suite/i_number_double_huge_neg_exp.json
create mode 100644 test/cases/json_test_suite/i_number_huge_exp.json
create mode 100644 test/cases/json_test_suite/i_number_neg_int_huge_exp.json
create mode 100644 test/cases/json_test_suite/i_number_pos_double_huge_exp.json
create mode 100644 test/cases/json_test_suite/i_number_real_neg_overflow.json
create mode 100644 test/cases/json_test_suite/i_number_real_pos_overflow.json
create mode 100644 test/cases/json_test_suite/i_number_real_underflow.json
create mode 100644 test/cases/json_test_suite/i_number_too_big_neg_int.json
create mode 100644 test/cases/json_test_suite/i_number_too_big_pos_int.json
create mode 100644
test/cases/json_test_suite/i_number_very_big_negative_int.json
create mode 100644
test/cases/json_test_suite/i_object_key_lone_2nd_surrogate.json
create mode 100644
test/cases/json_test_suite/i_string_1st_surrogate_but_2nd_missing.json
create mode 100644
test/cases/json_test_suite/i_string_1st_valid_surrogate_2nd_invalid.json
create mode 100644 test/cases/json_test_suite/i_string_UTF-16LE_with_BOM.json
create mode 100644
test/cases/json_test_suite/i_string_UTF-8_invalid_sequence.json
create mode 100644
test/cases/json_test_suite/i_string_UTF8_surrogate_U+D800.json
create mode 100644
test/cases/json_test_suite/i_string_incomplete_surrogate_and_escape_valid.json
create mode 100644
test/cases/json_test_suite/i_string_incomplete_surrogate_pair.json
create mode 100644
test/cases/json_test_suite/i_string_incomplete_surrogates_escape_valid.json
create mode 100644
test/cases/json_test_suite/i_string_invalid_lonely_surrogate.json
create mode 100644 test/cases/json_test_suite/i_string_invalid_surrogate.json
create mode 100644 test/cases/json_test_suite/i_string_invalid_utf-8.json
create mode 100644
test/cases/json_test_suite/i_string_inverted_surrogates_U+1D11E.json
create mode 100644 test/cases/json_test_suite/i_string_iso_latin_1.json
create mode 100644
test/cases/json_test_suite/i_string_lone_second_surrogate.json
create mode 100644
test/cases/json_test_suite/i_string_lone_utf8_continuation_byte.json
create mode 100644
test/cases/json_test_suite/i_string_not_in_unicode_range.json
create mode 100644
test/cases/json_test_suite/i_string_overlong_sequence_2_bytes.json
create mode 100644
test/cases/json_test_suite/i_string_overlong_sequence_6_bytes.json
create mode 100644
test/cases/json_test_suite/i_string_overlong_sequence_6_bytes_null.json
create mode 100644 test/cases/json_test_suite/i_string_truncated-utf-8.json
create mode 100644 test/cases/json_test_suite/i_string_utf16BE_no_BOM.json
create mode 100644 test/cases/json_test_suite/i_string_utf16LE_no_BOM.json
create mode 100644
test/cases/json_test_suite/i_structure_500_nested_arrays.json
create mode 100644
test/cases/json_test_suite/i_structure_UTF-8_BOM_empty_object.json
create mode 100644 test/cases/json_test_suite/n_array_1_true_without_comma.json
create mode 100644 test/cases/json_test_suite/n_array_a_invalid_utf8.json
create mode 100644
test/cases/json_test_suite/n_array_colon_instead_of_comma.json
create mode 100644 test/cases/json_test_suite/n_array_comma_after_close.json
create mode 100644 test/cases/json_test_suite/n_array_comma_and_number.json
create mode 100644 test/cases/json_test_suite/n_array_double_comma.json
create mode 100644 test/cases/json_test_suite/n_array_double_extra_comma.json
create mode 100644 test/cases/json_test_suite/n_array_extra_close.json
create mode 100644 test/cases/json_test_suite/n_array_extra_comma.json
create mode 100644 test/cases/json_test_suite/n_array_incomplete.json
create mode 100644
test/cases/json_test_suite/n_array_incomplete_invalid_value.json
create mode 100644 test/cases/json_test_suite/n_array_inner_array_no_comma.json
create mode 100644 test/cases/json_test_suite/n_array_invalid_utf8.json
create mode 100644
test/cases/json_test_suite/n_array_items_separated_by_semicolon.json
create mode 100644 test/cases/json_test_suite/n_array_just_comma.json
create mode 100644 test/cases/json_test_suite/n_array_just_minus.json
create mode 100644 test/cases/json_test_suite/n_array_missing_value.json
create mode 100644 test/cases/json_test_suite/n_array_newlines_unclosed.json
create mode 100644 test/cases/json_test_suite/n_array_number_and_comma.json
create mode 100644
test/cases/json_test_suite/n_array_number_and_several_commas.json
create mode 100644
test/cases/json_test_suite/n_array_spaces_vertical_tab_formfeed.json
create mode 100644 test/cases/json_test_suite/n_array_star_inside.json
create mode 100644 test/cases/json_test_suite/n_array_unclosed.json
create mode 100644
test/cases/json_test_suite/n_array_unclosed_trailing_comma.json
create mode 100644
test/cases/json_test_suite/n_array_unclosed_with_new_lines.json
create mode 100644
test/cases/json_test_suite/n_array_unclosed_with_object_inside.json
create mode 100644 test/cases/json_test_suite/n_incomplete_false.json
create mode 100644 test/cases/json_test_suite/n_incomplete_null.json
create mode 100644 test/cases/json_test_suite/n_incomplete_true.json
create mode 100644 test/cases/json_test_suite/n_multidigit_number_then_00.json
create mode 100644 test/cases/json_test_suite/n_number_++.json
create mode 100644 test/cases/json_test_suite/n_number_+1.json
create mode 100644 test/cases/json_test_suite/n_number_+Inf.json
create mode 100644 test/cases/json_test_suite/n_number_-01.json
create mode 100644 test/cases/json_test_suite/n_number_-1.0..json
create mode 100644 test/cases/json_test_suite/n_number_-2..json
create mode 100644 test/cases/json_test_suite/n_number_-NaN.json
create mode 100644 test/cases/json_test_suite/n_number_.-1.json
create mode 100644 test/cases/json_test_suite/n_number_.2e-3.json
create mode 100644 test/cases/json_test_suite/n_number_0.1.2.json
create mode 100644 test/cases/json_test_suite/n_number_0.3e+.json
create mode 100644 test/cases/json_test_suite/n_number_0.3e.json
create mode 100644 test/cases/json_test_suite/n_number_0.e1.json
create mode 100644 test/cases/json_test_suite/n_number_0_capital_E+.json
create mode 100644 test/cases/json_test_suite/n_number_0_capital_E.json
create mode 100644 test/cases/json_test_suite/n_number_0e+.json
create mode 100644 test/cases/json_test_suite/n_number_0e.json
create mode 100644 test/cases/json_test_suite/n_number_1.0e+.json
create mode 100644 test/cases/json_test_suite/n_number_1.0e-.json
create mode 100644 test/cases/json_test_suite/n_number_1.0e.json
create mode 100644 test/cases/json_test_suite/n_number_1_000.json
create mode 100644 test/cases/json_test_suite/n_number_1eE2.json
create mode 100644 test/cases/json_test_suite/n_number_2.e+3.json
create mode 100644 test/cases/json_test_suite/n_number_2.e-3.json
create mode 100644 test/cases/json_test_suite/n_number_2.e3.json
create mode 100644 test/cases/json_test_suite/n_number_9.e+.json
create mode 100644 test/cases/json_test_suite/n_number_Inf.json
create mode 100644 test/cases/json_test_suite/n_number_NaN.json
create mode 100644
test/cases/json_test_suite/n_number_U+FF11_fullwidth_digit_one.json
create mode 100644 test/cases/json_test_suite/n_number_expression.json
create mode 100644 test/cases/json_test_suite/n_number_hex_1_digit.json
create mode 100644 test/cases/json_test_suite/n_number_hex_2_digits.json
create mode 100644 test/cases/json_test_suite/n_number_infinity.json
create mode 100644 test/cases/json_test_suite/n_number_invalid+-.json
create mode 100644
test/cases/json_test_suite/n_number_invalid-negative-real.json
create mode 100644
test/cases/json_test_suite/n_number_invalid-utf-8-in-bigger-int.json
create mode 100644
test/cases/json_test_suite/n_number_invalid-utf-8-in-exponent.json
create mode 100644
test/cases/json_test_suite/n_number_invalid-utf-8-in-int.json
create mode 100644 test/cases/json_test_suite/n_number_minus_infinity.json
create mode 100644
test/cases/json_test_suite/n_number_minus_sign_with_trailing_garbage.json
create mode 100644 test/cases/json_test_suite/n_number_minus_space_1.json
create mode 100644
test/cases/json_test_suite/n_number_neg_int_starting_with_zero.json
create mode 100644
test/cases/json_test_suite/n_number_neg_real_without_int_part.json
create mode 100644
test/cases/json_test_suite/n_number_neg_with_garbage_at_end.json
create mode 100644
test/cases/json_test_suite/n_number_real_garbage_after_e.json
create mode 100644
test/cases/json_test_suite/n_number_real_with_invalid_utf8_after_e.json
create mode 100644
test/cases/json_test_suite/n_number_real_without_fractional_part.json
create mode 100644 test/cases/json_test_suite/n_number_starting_with_dot.json
create mode 100644 test/cases/json_test_suite/n_number_with_alpha.json
create mode 100644 test/cases/json_test_suite/n_number_with_alpha_char.json
create mode 100644 test/cases/json_test_suite/n_number_with_leading_zero.json
create mode 100644 test/cases/json_test_suite/n_object_bad_value.json
create mode 100644 test/cases/json_test_suite/n_object_bracket_key.json
create mode 100644
test/cases/json_test_suite/n_object_comma_instead_of_colon.json
create mode 100644 test/cases/json_test_suite/n_object_double_colon.json
create mode 100644 test/cases/json_test_suite/n_object_emoji.json
create mode 100644 test/cases/json_test_suite/n_object_garbage_at_end.json
create mode 100644
test/cases/json_test_suite/n_object_key_with_single_quotes.json
create mode 100644
test/cases/json_test_suite/n_object_lone_continuation_byte_in_key_and_trailing_comma.json
create mode 100644 test/cases/json_test_suite/n_object_missing_colon.json
create mode 100644 test/cases/json_test_suite/n_object_missing_key.json
create mode 100644 test/cases/json_test_suite/n_object_missing_semicolon.json
create mode 100644 test/cases/json_test_suite/n_object_missing_value.json
create mode 100644 test/cases/json_test_suite/n_object_no-colon.json
create mode 100644 test/cases/json_test_suite/n_object_non_string_key.json
create mode 100644
test/cases/json_test_suite/n_object_non_string_key_but_huge_number_instead.json
create mode 100644 test/cases/json_test_suite/n_object_repeated_null_null.json
create mode 100644
test/cases/json_test_suite/n_object_several_trailing_commas.json
create mode 100644 test/cases/json_test_suite/n_object_single_quote.json
create mode 100644 test/cases/json_test_suite/n_object_trailing_comma.json
create mode 100644 test/cases/json_test_suite/n_object_trailing_comment.json
create mode 100644
test/cases/json_test_suite/n_object_trailing_comment_open.json
create mode 100644
test/cases/json_test_suite/n_object_trailing_comment_slash_open.json
create mode 100644
test/cases/json_test_suite/n_object_trailing_comment_slash_open_incomplete.json
create mode 100644 test/cases/json_test_suite/n_object_two_commas_in_a_row.json
create mode 100644 test/cases/json_test_suite/n_object_unquoted_key.json
create mode 100644 test/cases/json_test_suite/n_object_unterminated-value.json
create mode 100644 test/cases/json_test_suite/n_object_with_single_string.json
create mode 100644
test/cases/json_test_suite/n_object_with_trailing_garbage.json
create mode 100644 test/cases/json_test_suite/n_single_space.json
create mode 100644
test/cases/json_test_suite/n_string_1_surrogate_then_escape.json
create mode 100644
test/cases/json_test_suite/n_string_1_surrogate_then_escape_u.json
create mode 100644
test/cases/json_test_suite/n_string_1_surrogate_then_escape_u1.json
create mode 100644
test/cases/json_test_suite/n_string_1_surrogate_then_escape_u1x.json
create mode 100644
test/cases/json_test_suite/n_string_accentuated_char_no_quotes.json
create mode 100644 test/cases/json_test_suite/n_string_backslash_00.json
create mode 100644 test/cases/json_test_suite/n_string_escape_x.json
create mode 100644
test/cases/json_test_suite/n_string_escaped_backslash_bad.json
create mode 100644
test/cases/json_test_suite/n_string_escaped_ctrl_char_tab.json
create mode 100644 test/cases/json_test_suite/n_string_escaped_emoji.json
create mode 100644 test/cases/json_test_suite/n_string_incomplete_escape.json
create mode 100644
test/cases/json_test_suite/n_string_incomplete_escaped_character.json
create mode 100644
test/cases/json_test_suite/n_string_incomplete_surrogate.json
create mode 100644
test/cases/json_test_suite/n_string_incomplete_surrogate_escape_invalid.json
create mode 100644
test/cases/json_test_suite/n_string_invalid-utf-8-in-escape.json
create mode 100644
test/cases/json_test_suite/n_string_invalid_backslash_esc.json
create mode 100644
test/cases/json_test_suite/n_string_invalid_unicode_escape.json
create mode 100644
test/cases/json_test_suite/n_string_invalid_utf8_after_escape.json
create mode 100644
test/cases/json_test_suite/n_string_leading_uescaped_thinspace.json
create mode 100644
test/cases/json_test_suite/n_string_no_quotes_with_bad_escape.json
create mode 100644 test/cases/json_test_suite/n_string_single_doublequote.json
create mode 100644 test/cases/json_test_suite/n_string_single_quote.json
create mode 100644
test/cases/json_test_suite/n_string_single_string_no_double_quotes.json
create mode 100644
test/cases/json_test_suite/n_string_start_escape_unclosed.json
create mode 100644 test/cases/json_test_suite/n_string_unescaped_ctrl_char.json
create mode 100644 test/cases/json_test_suite/n_string_unescaped_newline.json
create mode 100644 test/cases/json_test_suite/n_string_unescaped_tab.json
create mode 100644 test/cases/json_test_suite/n_string_unicode_CapitalU.json
create mode 100644
test/cases/json_test_suite/n_string_with_trailing_garbage.json
create mode 100644
test/cases/json_test_suite/n_structure_100000_opening_arrays.json
create mode 100644
test/cases/json_test_suite/n_structure_U+2060_word_joined.json
create mode 100644 test/cases/json_test_suite/n_structure_UTF8_BOM_no_data.json
create mode 100644 test/cases/json_test_suite/n_structure_angle_bracket_..json
create mode 100644
test/cases/json_test_suite/n_structure_angle_bracket_null.json
create mode 100644
test/cases/json_test_suite/n_structure_array_trailing_garbage.json
create mode 100644
test/cases/json_test_suite/n_structure_array_with_extra_array_close.json
create mode 100644
test/cases/json_test_suite/n_structure_array_with_unclosed_string.json
create mode 100644
test/cases/json_test_suite/n_structure_ascii-unicode-identifier.json
create mode 100644 test/cases/json_test_suite/n_structure_capitalized_True.json
create mode 100644
test/cases/json_test_suite/n_structure_close_unopened_array.json
create mode 100644
test/cases/json_test_suite/n_structure_comma_instead_of_closing_brace.json
create mode 100644 test/cases/json_test_suite/n_structure_double_array.json
create mode 100644 test/cases/json_test_suite/n_structure_end_array.json
create mode 100644
test/cases/json_test_suite/n_structure_incomplete_UTF8_BOM.json
create mode 100644
test/cases/json_test_suite/n_structure_lone-invalid-utf-8.json
create mode 100644
test/cases/json_test_suite/n_structure_lone-open-bracket.json
create mode 100644 test/cases/json_test_suite/n_structure_no_data.json
create mode 100644
test/cases/json_test_suite/n_structure_null-byte-outside-string.json
create mode 100644
test/cases/json_test_suite/n_structure_number_with_trailing_garbage.json
create mode 100644
test/cases/json_test_suite/n_structure_object_followed_by_closing_object.json
create mode 100644
test/cases/json_test_suite/n_structure_object_unclosed_no_value.json
create mode 100644
test/cases/json_test_suite/n_structure_object_with_comment.json
create mode 100644
test/cases/json_test_suite/n_structure_object_with_trailing_garbage.json
create mode 100644
test/cases/json_test_suite/n_structure_open_array_apostrophe.json
create mode 100644 test/cases/json_test_suite/n_structure_open_array_comma.json
create mode 100644
test/cases/json_test_suite/n_structure_open_array_object.json
create mode 100644
test/cases/json_test_suite/n_structure_open_array_open_object.json
create mode 100644
test/cases/json_test_suite/n_structure_open_array_open_string.json
create mode 100644
test/cases/json_test_suite/n_structure_open_array_string.json
create mode 100644 test/cases/json_test_suite/n_structure_open_object.json
create mode 100644
test/cases/json_test_suite/n_structure_open_object_close_array.json
create mode 100644
test/cases/json_test_suite/n_structure_open_object_comma.json
create mode 100644
test/cases/json_test_suite/n_structure_open_object_open_array.json
create mode 100644
test/cases/json_test_suite/n_structure_open_object_open_string.json
create mode 100644
test/cases/json_test_suite/n_structure_open_object_string_with_apostrophes.json
create mode 100644 test/cases/json_test_suite/n_structure_open_open.json
create mode 100644 test/cases/json_test_suite/n_structure_single_eacute.json
create mode 100644 test/cases/json_test_suite/n_structure_single_star.json
create mode 100644 test/cases/json_test_suite/n_structure_trailing_#.json
create mode 100644
test/cases/json_test_suite/n_structure_uescaped_LF_before_string.json
create mode 100644 test/cases/json_test_suite/n_structure_unclosed_array.json
create mode 100644
test/cases/json_test_suite/n_structure_unclosed_array_partial_null.json
create mode 100644
test/cases/json_test_suite/n_structure_unclosed_array_unfinished_false.json
create mode 100644
test/cases/json_test_suite/n_structure_unclosed_array_unfinished_true.json
create mode 100644 test/cases/json_test_suite/n_structure_unclosed_object.json
create mode 100644
test/cases/json_test_suite/n_structure_unicode-identifier.json
create mode 100644
test/cases/json_test_suite/n_structure_whitespace_U+2060_word_joiner.json
create mode 100644
test/cases/json_test_suite/n_structure_whitespace_formfeed.json
create mode 100644 test/cases/json_test_suite/y_array_arraysWithSpaces.json
create mode 100644 test/cases/json_test_suite/y_array_empty-string.json
copy test/cases/{empty_array.json => json_test_suite/y_array_empty.json} (100%)
create mode 100644 test/cases/json_test_suite/y_array_ending_with_newline.json
create mode 100644 test/cases/json_test_suite/y_array_false.json
create mode 100644 test/cases/json_test_suite/y_array_heterogeneous.json
create mode 100644 test/cases/json_test_suite/y_array_null.json
create mode 100644 test/cases/json_test_suite/y_array_with_1_and_newline.json
create mode 100644 test/cases/json_test_suite/y_array_with_leading_space.json
create mode 100644 test/cases/json_test_suite/y_array_with_several_null.json
create mode 100644 test/cases/json_test_suite/y_array_with_trailing_space.json
create mode 100644 test/cases/json_test_suite/y_number.json
create mode 100644 test/cases/json_test_suite/y_number_0e+1.json
create mode 100644 test/cases/json_test_suite/y_number_0e1.json
create mode 100644 test/cases/json_test_suite/y_number_after_space.json
create mode 100644
test/cases/json_test_suite/y_number_double_close_to_zero.json
create mode 100644 test/cases/json_test_suite/y_number_int_with_exp.json
create mode 100644 test/cases/json_test_suite/y_number_minus_zero.json
create mode 100644 test/cases/json_test_suite/y_number_negative_int.json
create mode 100644 test/cases/json_test_suite/y_number_negative_one.json
create mode 100644 test/cases/json_test_suite/y_number_negative_zero.json
create mode 100644 test/cases/json_test_suite/y_number_real_capital_e.json
create mode 100644
test/cases/json_test_suite/y_number_real_capital_e_neg_exp.json
create mode 100644
test/cases/json_test_suite/y_number_real_capital_e_pos_exp.json
create mode 100644 test/cases/json_test_suite/y_number_real_exponent.json
create mode 100644
test/cases/json_test_suite/y_number_real_fraction_exponent.json
create mode 100644 test/cases/json_test_suite/y_number_real_neg_exp.json
create mode 100644 test/cases/json_test_suite/y_number_real_pos_exponent.json
create mode 100644 test/cases/json_test_suite/y_number_simple_int.json
create mode 100644 test/cases/json_test_suite/y_number_simple_real.json
create mode 100644 test/cases/json_test_suite/y_object.json
create mode 100644 test/cases/json_test_suite/y_object_basic.json
create mode 100644 test/cases/json_test_suite/y_object_duplicated_key.json
create mode 100644
test/cases/json_test_suite/y_object_duplicated_key_and_value.json
create mode 100644 test/cases/json_test_suite/y_object_empty.json
create mode 100644 test/cases/json_test_suite/y_object_empty_key.json
create mode 100644 test/cases/json_test_suite/y_object_escaped_null_in_key.json
create mode 100644 test/cases/json_test_suite/y_object_extreme_numbers.json
create mode 100644 test/cases/json_test_suite/y_object_long_strings.json
create mode 100644 test/cases/json_test_suite/y_object_simple.json
create mode 100644 test/cases/json_test_suite/y_object_string_unicode.json
create mode 100644 test/cases/json_test_suite/y_object_with_newlines.json
create mode 100644
test/cases/json_test_suite/y_string_1_2_3_bytes_UTF-8_sequences.json
create mode 100644
test/cases/json_test_suite/y_string_accepted_surrogate_pair.json
create mode 100644
test/cases/json_test_suite/y_string_accepted_surrogate_pairs.json
create mode 100644 test/cases/json_test_suite/y_string_allowed_escapes.json
create mode 100644
test/cases/json_test_suite/y_string_backslash_and_u_escaped_zero.json
create mode 100644
test/cases/json_test_suite/y_string_backslash_doublequotes.json
create mode 100644 test/cases/json_test_suite/y_string_comments.json
create mode 100644 test/cases/json_test_suite/y_string_double_escape_a.json
create mode 100644 test/cases/json_test_suite/y_string_double_escape_n.json
create mode 100644
test/cases/json_test_suite/y_string_escaped_control_character.json
create mode 100644
test/cases/json_test_suite/y_string_escaped_noncharacter.json
create mode 100644 test/cases/json_test_suite/y_string_in_array.json
create mode 100644
test/cases/json_test_suite/y_string_in_array_with_leading_space.json
create mode 100644
test/cases/json_test_suite/y_string_last_surrogates_1_and_2.json
create mode 100644 test/cases/json_test_suite/y_string_nbsp_uescaped.json
create mode 100644
test/cases/json_test_suite/y_string_nonCharacterInUTF-8_U+10FFFF.json
create mode 100644
test/cases/json_test_suite/y_string_nonCharacterInUTF-8_U+FFFF.json
create mode 100644 test/cases/json_test_suite/y_string_null_escape.json
create mode 100644 test/cases/json_test_suite/y_string_one-byte-utf-8.json
create mode 100644 test/cases/json_test_suite/y_string_pi.json
create mode 100644
test/cases/json_test_suite/y_string_reservedCharacterInUTF-8_U+1BFFF.json
create mode 100644 test/cases/json_test_suite/y_string_simple_ascii.json
create mode 100644 test/cases/json_test_suite/y_string_space.json
create mode 100644
test/cases/json_test_suite/y_string_surrogates_U+1D11E_MUSICAL_SYMBOL_G_CLEF.json
create mode 100644 test/cases/json_test_suite/y_string_three-byte-utf-8.json
create mode 100644 test/cases/json_test_suite/y_string_two-byte-utf-8.json
create mode 100644 test/cases/json_test_suite/y_string_u+2028_line_sep.json
create mode 100644 test/cases/json_test_suite/y_string_u+2029_par_sep.json
create mode 100644 test/cases/json_test_suite/y_string_uEscape.json
create mode 100644 test/cases/json_test_suite/y_string_uescaped_newline.json
create mode 100644
test/cases/json_test_suite/y_string_unescaped_char_delete.json
create mode 100644 test/cases/json_test_suite/y_string_unicode.json
create mode 100644
test/cases/json_test_suite/y_string_unicodeEscapedBackslash.json
create mode 100644 test/cases/json_test_suite/y_string_unicode_2.json
create mode 100644
test/cases/json_test_suite/y_string_unicode_U+10FFFE_nonchar.json
create mode 100644
test/cases/json_test_suite/y_string_unicode_U+1FFFE_nonchar.json
create mode 100644
test/cases/json_test_suite/y_string_unicode_U+200B_ZERO_WIDTH_SPACE.json
create mode 100644
test/cases/json_test_suite/y_string_unicode_U+2064_invisible_plus.json
create mode 100644
test/cases/json_test_suite/y_string_unicode_U+FDD0_nonchar.json
create mode 100644
test/cases/json_test_suite/y_string_unicode_U+FFFE_nonchar.json
create mode 100644
test/cases/json_test_suite/y_string_unicode_escaped_double_quote.json
create mode 100644 test/cases/json_test_suite/y_string_utf8.json
create mode 100644 test/cases/json_test_suite/y_string_with_del_character.json
create mode 100644 test/cases/json_test_suite/y_structure_lonely_false.json
create mode 100644 test/cases/json_test_suite/y_structure_lonely_int.json
create mode 100644
test/cases/json_test_suite/y_structure_lonely_negative_real.json
create mode 100644 test/cases/json_test_suite/y_structure_lonely_null.json
create mode 100644 test/cases/json_test_suite/y_structure_lonely_string.json
create mode 100644 test/cases/json_test_suite/y_structure_lonely_true.json
create mode 100644 test/cases/json_test_suite/y_structure_string_empty.json
create mode 100644 test/cases/json_test_suite/y_structure_trailing_newline.json
create mode 100644 test/cases/json_test_suite/y_structure_true_in_array.json
create mode 100644 test/cases/json_test_suite/y_structure_whitespace_array.json
create mode 100755 test/install_eqc_mini.sh
create mode 100644 test/jiffy_19_yielding_tests.erl
create mode 100644 test/jiffy_20_lifecycle_tests.erl
create mode 100644 test/jiffy_21_naughty_strings_tests.erl
create mode 100644 test/jiffy_22_json_test_suite_tests.erl