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

Reply via email to