react-native-quick-crypto 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +5 -1
- package/cpp/argon2/HybridArgon2.cpp +10 -3
- package/cpp/blake3/HybridBlake3.cpp +5 -3
- package/cpp/cipher/CCMCipher.cpp +29 -16
- package/cpp/cipher/CCMCipher.hpp +2 -4
- package/cpp/cipher/ChaCha20Cipher.cpp +14 -18
- package/cpp/cipher/ChaCha20Cipher.hpp +2 -4
- package/cpp/cipher/ChaCha20Poly1305Cipher.cpp +34 -23
- package/cpp/cipher/ChaCha20Poly1305Cipher.hpp +2 -4
- package/cpp/cipher/GCMCipher.cpp +14 -15
- package/cpp/cipher/HybridCipher.cpp +39 -36
- package/cpp/cipher/HybridCipher.hpp +17 -1
- package/cpp/cipher/HybridRsaCipher.cpp +74 -29
- package/cpp/cipher/OCBCipher.cpp +4 -3
- package/cpp/cipher/XChaCha20Poly1305Cipher.cpp +14 -13
- package/cpp/cipher/XSalsa20Cipher.cpp +72 -6
- package/cpp/cipher/XSalsa20Cipher.hpp +25 -3
- package/cpp/cipher/XSalsa20Poly1305Cipher.cpp +21 -25
- package/cpp/dh/HybridDiffieHellman.cpp +29 -0
- package/cpp/ec/HybridEcKeyPair.cpp +35 -33
- package/cpp/ec/HybridEcKeyPair.hpp +3 -7
- package/cpp/ecdh/HybridECDH.cpp +23 -0
- package/cpp/ed25519/HybridEdKeyPair.cpp +73 -117
- package/cpp/ed25519/HybridEdKeyPair.hpp +5 -9
- package/cpp/hash/HybridHash.cpp +5 -7
- package/cpp/hkdf/HybridHkdf.cpp +6 -4
- package/cpp/hmac/HybridHmac.cpp +4 -6
- package/cpp/kmac/HybridKmac.cpp +4 -4
- package/cpp/mldsa/HybridMlDsaKeyPair.cpp +37 -49
- package/cpp/mlkem/HybridMlKemKeyPair.cpp +39 -43
- package/cpp/pbkdf2/HybridPbkdf2.cpp +7 -8
- package/cpp/rsa/HybridRsaKeyPair.cpp +5 -8
- package/cpp/rsa/HybridRsaKeyPair.hpp +4 -7
- package/cpp/scrypt/HybridScrypt.cpp +6 -4
- package/cpp/sign/HybridSignHandle.cpp +25 -68
- package/cpp/sign/HybridVerifyHandle.cpp +23 -60
- package/cpp/utils/HybridUtils.cpp +183 -43
- package/cpp/utils/HybridUtils.hpp +9 -2
- package/cpp/utils/QuickCryptoUtils.hpp +72 -0
- package/lib/commonjs/argon2.js +51 -2
- package/lib/commonjs/argon2.js.map +1 -1
- package/lib/commonjs/cipher.js +109 -11
- package/lib/commonjs/cipher.js.map +1 -1
- package/lib/commonjs/dsa.js +8 -2
- package/lib/commonjs/dsa.js.map +1 -1
- package/lib/commonjs/hash.js +15 -5
- package/lib/commonjs/hash.js.map +1 -1
- package/lib/commonjs/hkdf.js +33 -6
- package/lib/commonjs/hkdf.js.map +1 -1
- package/lib/commonjs/hmac.js +15 -5
- package/lib/commonjs/hmac.js.map +1 -1
- package/lib/commonjs/keys/publicCipher.js +10 -4
- package/lib/commonjs/keys/publicCipher.js.map +1 -1
- package/lib/commonjs/random.js +11 -2
- package/lib/commonjs/random.js.map +1 -1
- package/lib/commonjs/rsa.js +12 -5
- package/lib/commonjs/rsa.js.map +1 -1
- package/lib/commonjs/scrypt.js +47 -6
- package/lib/commonjs/scrypt.js.map +1 -1
- package/lib/commonjs/subtle.js +76 -5
- package/lib/commonjs/subtle.js.map +1 -1
- package/lib/commonjs/utils/cipher.js +18 -7
- package/lib/commonjs/utils/cipher.js.map +1 -1
- package/lib/commonjs/utils/conversion.js +33 -9
- package/lib/commonjs/utils/conversion.js.map +1 -1
- package/lib/commonjs/utils/timingSafeEqual.js +7 -2
- package/lib/commonjs/utils/timingSafeEqual.js.map +1 -1
- package/lib/commonjs/x509certificate.js +6 -6
- package/lib/commonjs/x509certificate.js.map +1 -1
- package/lib/module/argon2.js +51 -2
- package/lib/module/argon2.js.map +1 -1
- package/lib/module/cipher.js +109 -11
- package/lib/module/cipher.js.map +1 -1
- package/lib/module/dsa.js +8 -2
- package/lib/module/dsa.js.map +1 -1
- package/lib/module/hash.js +15 -5
- package/lib/module/hash.js.map +1 -1
- package/lib/module/hkdf.js +33 -6
- package/lib/module/hkdf.js.map +1 -1
- package/lib/module/hmac.js +15 -5
- package/lib/module/hmac.js.map +1 -1
- package/lib/module/keys/publicCipher.js +10 -4
- package/lib/module/keys/publicCipher.js.map +1 -1
- package/lib/module/random.js +11 -2
- package/lib/module/random.js.map +1 -1
- package/lib/module/rsa.js +11 -4
- package/lib/module/rsa.js.map +1 -1
- package/lib/module/scrypt.js +47 -6
- package/lib/module/scrypt.js.map +1 -1
- package/lib/module/subtle.js +76 -5
- package/lib/module/subtle.js.map +1 -1
- package/lib/module/utils/cipher.js +18 -7
- package/lib/module/utils/cipher.js.map +1 -1
- package/lib/module/utils/conversion.js +33 -9
- package/lib/module/utils/conversion.js.map +1 -1
- package/lib/module/utils/timingSafeEqual.js +8 -3
- package/lib/module/utils/timingSafeEqual.js.map +1 -1
- package/lib/module/x509certificate.js +6 -6
- package/lib/module/x509certificate.js.map +1 -1
- package/lib/typescript/argon2.d.ts.map +1 -1
- package/lib/typescript/cipher.d.ts +2 -2
- package/lib/typescript/cipher.d.ts.map +1 -1
- package/lib/typescript/dsa.d.ts.map +1 -1
- package/lib/typescript/hash.d.ts +2 -2
- package/lib/typescript/hash.d.ts.map +1 -1
- package/lib/typescript/hkdf.d.ts.map +1 -1
- package/lib/typescript/hmac.d.ts +2 -2
- package/lib/typescript/hmac.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/keys/publicCipher.d.ts.map +1 -1
- package/lib/typescript/random.d.ts.map +1 -1
- package/lib/typescript/rsa.d.ts.map +1 -1
- package/lib/typescript/scrypt.d.ts.map +1 -1
- package/lib/typescript/specs/utils.nitro.d.ts +0 -2
- package/lib/typescript/specs/utils.nitro.d.ts.map +1 -1
- package/lib/typescript/subtle.d.ts.map +1 -1
- package/lib/typescript/utils/cipher.d.ts +13 -1
- package/lib/typescript/utils/cipher.d.ts.map +1 -1
- package/lib/typescript/utils/conversion.d.ts +9 -6
- package/lib/typescript/utils/conversion.d.ts.map +1 -1
- package/lib/typescript/utils/timingSafeEqual.d.ts.map +1 -1
- package/lib/typescript/x509certificate.d.ts.map +1 -1
- package/nitrogen/generated/shared/c++/HybridUtilsSpec.cpp +0 -2
- package/nitrogen/generated/shared/c++/HybridUtilsSpec.hpp +0 -3
- package/package.json +37 -5
- package/src/argon2.ts +80 -2
- package/src/cipher.ts +139 -15
- package/src/dsa.ts +11 -2
- package/src/hash.ts +17 -7
- package/src/hkdf.ts +44 -6
- package/src/hmac.ts +17 -7
- package/src/keys/publicCipher.ts +10 -4
- package/src/random.ts +11 -2
- package/src/rsa.ts +18 -4
- package/src/scrypt.ts +73 -6
- package/src/specs/utils.nitro.ts +0 -2
- package/src/subtle.ts +90 -8
- package/src/utils/cipher.ts +30 -8
- package/src/utils/conversion.ts +58 -20
- package/src/utils/timingSafeEqual.ts +8 -3
- package/src/x509certificate.ts +5 -6
- package/deps/blake3/.cargo/config.toml +0 -2
- package/deps/blake3/.git-blame-ignore-revs +0 -2
- package/deps/blake3/.github/workflows/build_b3sum.py +0 -38
- package/deps/blake3/.github/workflows/ci.yml +0 -491
- package/deps/blake3/.github/workflows/tag.yml +0 -43
- package/deps/blake3/.github/workflows/upload_github_release_asset.py +0 -73
- package/deps/blake3/CONTRIBUTING.md +0 -31
- package/deps/blake3/Cargo.toml +0 -135
- package/deps/blake3/b3sum/Cargo.lock +0 -513
- package/deps/blake3/b3sum/Cargo.toml +0 -26
- package/deps/blake3/b3sum/README.md +0 -72
- package/deps/blake3/b3sum/src/main.rs +0 -564
- package/deps/blake3/b3sum/src/unit_tests.rs +0 -235
- package/deps/blake3/b3sum/tests/cli_tests.rs +0 -680
- package/deps/blake3/b3sum/what_does_check_do.md +0 -176
- package/deps/blake3/benches/bench.rs +0 -623
- package/deps/blake3/build.rs +0 -389
- package/deps/blake3/c/CMakeLists.txt +0 -383
- package/deps/blake3/c/CMakePresets.json +0 -73
- package/deps/blake3/c/Makefile.testing +0 -82
- package/deps/blake3/c/blake3-config.cmake.in +0 -14
- package/deps/blake3/c/blake3_avx2.c +0 -326
- package/deps/blake3/c/blake3_avx2_x86-64_unix.S +0 -1815
- package/deps/blake3/c/blake3_avx2_x86-64_windows_gnu.S +0 -1817
- package/deps/blake3/c/blake3_avx2_x86-64_windows_msvc.asm +0 -1828
- package/deps/blake3/c/blake3_avx512.c +0 -1388
- package/deps/blake3/c/blake3_avx512_x86-64_unix.S +0 -4824
- package/deps/blake3/c/blake3_avx512_x86-64_windows_gnu.S +0 -2615
- package/deps/blake3/c/blake3_avx512_x86-64_windows_msvc.asm +0 -2634
- package/deps/blake3/c/blake3_c_rust_bindings/Cargo.toml +0 -32
- package/deps/blake3/c/blake3_c_rust_bindings/README.md +0 -4
- package/deps/blake3/c/blake3_c_rust_bindings/benches/bench.rs +0 -477
- package/deps/blake3/c/blake3_c_rust_bindings/build.rs +0 -253
- package/deps/blake3/c/blake3_c_rust_bindings/cross_test.sh +0 -31
- package/deps/blake3/c/blake3_c_rust_bindings/src/lib.rs +0 -333
- package/deps/blake3/c/blake3_c_rust_bindings/src/test.rs +0 -696
- package/deps/blake3/c/blake3_sse2.c +0 -566
- package/deps/blake3/c/blake3_sse2_x86-64_unix.S +0 -2291
- package/deps/blake3/c/blake3_sse2_x86-64_windows_gnu.S +0 -2332
- package/deps/blake3/c/blake3_sse2_x86-64_windows_msvc.asm +0 -2350
- package/deps/blake3/c/blake3_sse41.c +0 -560
- package/deps/blake3/c/blake3_sse41_x86-64_unix.S +0 -2028
- package/deps/blake3/c/blake3_sse41_x86-64_windows_gnu.S +0 -2069
- package/deps/blake3/c/blake3_sse41_x86-64_windows_msvc.asm +0 -2089
- package/deps/blake3/c/blake3_tbb.cpp +0 -37
- package/deps/blake3/c/dependencies/CMakeLists.txt +0 -3
- package/deps/blake3/c/dependencies/tbb/CMakeLists.txt +0 -28
- package/deps/blake3/c/example.c +0 -36
- package/deps/blake3/c/example_tbb.c +0 -57
- package/deps/blake3/c/libblake3.pc.in +0 -12
- package/deps/blake3/c/main.c +0 -166
- package/deps/blake3/c/test.py +0 -97
- package/deps/blake3/media/B3.svg +0 -70
- package/deps/blake3/media/BLAKE3.svg +0 -85
- package/deps/blake3/media/speed.svg +0 -1474
- package/deps/blake3/reference_impl/Cargo.toml +0 -8
- package/deps/blake3/reference_impl/README.md +0 -14
- package/deps/blake3/reference_impl/reference_impl.rs +0 -374
- package/deps/blake3/src/ffi_avx2.rs +0 -65
- package/deps/blake3/src/ffi_avx512.rs +0 -169
- package/deps/blake3/src/ffi_neon.rs +0 -82
- package/deps/blake3/src/ffi_sse2.rs +0 -126
- package/deps/blake3/src/ffi_sse41.rs +0 -126
- package/deps/blake3/src/guts.rs +0 -60
- package/deps/blake3/src/hazmat.rs +0 -704
- package/deps/blake3/src/io.rs +0 -64
- package/deps/blake3/src/join.rs +0 -92
- package/deps/blake3/src/lib.rs +0 -1835
- package/deps/blake3/src/platform.rs +0 -587
- package/deps/blake3/src/portable.rs +0 -198
- package/deps/blake3/src/rust_avx2.rs +0 -474
- package/deps/blake3/src/rust_sse2.rs +0 -775
- package/deps/blake3/src/rust_sse41.rs +0 -766
- package/deps/blake3/src/test.rs +0 -1049
- package/deps/blake3/src/traits.rs +0 -227
- package/deps/blake3/src/wasm32_simd.rs +0 -794
- package/deps/blake3/test_vectors/Cargo.toml +0 -19
- package/deps/blake3/test_vectors/cross_test.sh +0 -25
- package/deps/blake3/test_vectors/src/bin/generate.rs +0 -4
- package/deps/blake3/test_vectors/src/lib.rs +0 -350
- package/deps/blake3/test_vectors/test_vectors.json +0 -217
- package/deps/blake3/tools/compiler_version/Cargo.toml +0 -7
- package/deps/blake3/tools/compiler_version/build.rs +0 -6
- package/deps/blake3/tools/compiler_version/src/main.rs +0 -27
- package/deps/blake3/tools/instruction_set_support/Cargo.toml +0 -6
- package/deps/blake3/tools/instruction_set_support/src/main.rs +0 -10
- package/deps/blake3/tools/release.md +0 -16
- package/deps/ncrypto/.bazelignore +0 -4
- package/deps/ncrypto/.bazelrc +0 -1
- package/deps/ncrypto/.bazelversion +0 -1
- package/deps/ncrypto/.clang-format +0 -111
- package/deps/ncrypto/.github/workflows/bazel.yml +0 -58
- package/deps/ncrypto/.github/workflows/commitlint.yml +0 -16
- package/deps/ncrypto/.github/workflows/linter.yml +0 -38
- package/deps/ncrypto/.github/workflows/macos.yml +0 -43
- package/deps/ncrypto/.github/workflows/release-please.yml +0 -16
- package/deps/ncrypto/.github/workflows/ubuntu.yml +0 -128
- package/deps/ncrypto/.github/workflows/visual-studio.yml +0 -49
- package/deps/ncrypto/.python-version +0 -1
- package/deps/ncrypto/.release-please-manifest.json +0 -3
- package/deps/ncrypto/BUILD.bazel +0 -44
- package/deps/ncrypto/CHANGELOG.md +0 -37
- package/deps/ncrypto/CMakeLists.txt +0 -79
- package/deps/ncrypto/MODULE.bazel +0 -16
- package/deps/ncrypto/MODULE.bazel.lock +0 -461
- package/deps/ncrypto/cmake/CPM.cmake +0 -1225
- package/deps/ncrypto/cmake/ncrypto-flags.cmake +0 -17
- package/deps/ncrypto/ncrypto.pc.in +0 -10
- package/deps/ncrypto/patches/0001-Expose-libdecrepit-so-NodeJS-can-use-it-for-ncrypto.patch +0 -28
- package/deps/ncrypto/pyproject.toml +0 -38
- package/deps/ncrypto/release-please-config.json +0 -11
- package/deps/ncrypto/src/CMakeLists.txt +0 -40
- package/deps/ncrypto/tests/BUILD.bazel +0 -11
- package/deps/ncrypto/tests/CMakeLists.txt +0 -7
- package/deps/ncrypto/tests/basic.cpp +0 -856
- package/deps/ncrypto/tools/run-clang-format.sh +0 -42
- package/deps/simdutf/.clang-format +0 -4
- package/deps/simdutf/.github/ISSUE_TEMPLATE/bug_report.md +0 -62
- package/deps/simdutf/.github/ISSUE_TEMPLATE/config.yml +0 -1
- package/deps/simdutf/.github/ISSUE_TEMPLATE/feature_request.md +0 -35
- package/deps/simdutf/.github/ISSUE_TEMPLATE/standard-issue-template.md +0 -29
- package/deps/simdutf/.github/pull_request_template.md +0 -51
- package/deps/simdutf/.github/workflows/aarch64.yml +0 -39
- package/deps/simdutf/.github/workflows/alpine.yml +0 -27
- package/deps/simdutf/.github/workflows/amalgamation_demos.yml +0 -34
- package/deps/simdutf/.github/workflows/armv7.yml +0 -32
- package/deps/simdutf/.github/workflows/atomic_fuzz.yml +0 -25
- package/deps/simdutf/.github/workflows/cifuzz.yml +0 -37
- package/deps/simdutf/.github/workflows/clangformat.yml +0 -36
- package/deps/simdutf/.github/workflows/debian-latestcxxstandards.yml +0 -40
- package/deps/simdutf/.github/workflows/debian.yml +0 -33
- package/deps/simdutf/.github/workflows/documentation.yml +0 -36
- package/deps/simdutf/.github/workflows/emscripten.yml +0 -19
- package/deps/simdutf/.github/workflows/loongarch64-gcc-14.2.yml +0 -39
- package/deps/simdutf/.github/workflows/macos-latest.yml +0 -29
- package/deps/simdutf/.github/workflows/msys2-clang.yml +0 -48
- package/deps/simdutf/.github/workflows/msys2.yml +0 -50
- package/deps/simdutf/.github/workflows/ppc64le.yml +0 -29
- package/deps/simdutf/.github/workflows/rvv-1024-clang-18.yml +0 -35
- package/deps/simdutf/.github/workflows/rvv-128-clang-17.yml +0 -35
- package/deps/simdutf/.github/workflows/rvv-256-gcc-14.yml +0 -31
- package/deps/simdutf/.github/workflows/s390x.yml +0 -29
- package/deps/simdutf/.github/workflows/selective-amalgamation.yml +0 -29
- package/deps/simdutf/.github/workflows/typos.yml +0 -19
- package/deps/simdutf/.github/workflows/ubuntu22-cxx20.yml +0 -30
- package/deps/simdutf/.github/workflows/ubuntu22.yml +0 -32
- package/deps/simdutf/.github/workflows/ubuntu22_gcc12.yml +0 -27
- package/deps/simdutf/.github/workflows/ubuntu22sani.yml +0 -29
- package/deps/simdutf/.github/workflows/ubuntu24-cxxstandards.yml +0 -34
- package/deps/simdutf/.github/workflows/ubuntu24-unsignedchar.yml +0 -34
- package/deps/simdutf/.github/workflows/ubuntu24.yml +0 -32
- package/deps/simdutf/.github/workflows/ubuntu24sani.yml +0 -36
- package/deps/simdutf/.github/workflows/ubuntu24sani_clang.yml +0 -29
- package/deps/simdutf/.github/workflows/vs17-arm-ci.yml +0 -21
- package/deps/simdutf/.github/workflows/vs17-ci-cxx20.yml +0 -41
- package/deps/simdutf/.github/workflows/vs17-ci.yml +0 -41
- package/deps/simdutf/.github/workflows/vs17-clang-ci.yml +0 -41
- package/deps/simdutf/.github/workflows/vs17-cxxstandards.yml +0 -36
- package/deps/simdutf/AI_USAGE_POLICY.md +0 -56
- package/deps/simdutf/AUTHORS +0 -6
- package/deps/simdutf/CMakeLists.txt +0 -231
- package/deps/simdutf/CONTRIBUTING.md +0 -214
- package/deps/simdutf/CONTRIBUTORS +0 -1
- package/deps/simdutf/Doxyfile +0 -2584
- package/deps/simdutf/Makefile.crosscompile +0 -54
- package/deps/simdutf/README-RVV.md +0 -16
- package/deps/simdutf/SECURITY.md +0 -8
- package/deps/simdutf/benchmarks/CMakeLists.txt +0 -101
- package/deps/simdutf/benchmarks/alignment.cpp +0 -150
- package/deps/simdutf/benchmarks/base64/CMakeLists.txt +0 -30
- package/deps/simdutf/benchmarks/base64/benchmark_base64.cpp +0 -875
- package/deps/simdutf/benchmarks/base64/libbase64_spaces.h +0 -49
- package/deps/simdutf/benchmarks/base64/node_base64.h +0 -227
- package/deps/simdutf/benchmarks/base64/openssl3_base64.h +0 -334
- package/deps/simdutf/benchmarks/benchmark.cpp +0 -65
- package/deps/simdutf/benchmarks/benchmark_to_well_formed_utf16.cpp +0 -347
- package/deps/simdutf/benchmarks/competition/.clang-format-ignore +0 -5
- package/deps/simdutf/benchmarks/competition/CppCon2018/utf_utils.cpp +0 -1276
- package/deps/simdutf/benchmarks/competition/CppCon2018/utf_utils.h +0 -595
- package/deps/simdutf/benchmarks/competition/README.md +0 -7
- package/deps/simdutf/benchmarks/competition/hoehrmann/hoehrmann.h +0 -91
- package/deps/simdutf/benchmarks/competition/inoue2008/inoue_utf8_to_utf16.h +0 -444
- package/deps/simdutf/benchmarks/competition/inoue2008/inoue_utf8_to_utf16_tables.h +0 -13183
- package/deps/simdutf/benchmarks/competition/inoue2008/script.py +0 -73
- package/deps/simdutf/benchmarks/competition/llvm/ConvertUTF.cpp +0 -738
- package/deps/simdutf/benchmarks/competition/llvm/ConvertUTF.h +0 -293
- package/deps/simdutf/benchmarks/competition/u8u16/COPYRIGHT +0 -8
- package/deps/simdutf/benchmarks/competition/u8u16/Makefile +0 -44
- package/deps/simdutf/benchmarks/competition/u8u16/OSL3.0.txt +0 -169
- package/deps/simdutf/benchmarks/competition/u8u16/Profiling/BOM_Profiler.h +0 -148
- package/deps/simdutf/benchmarks/competition/u8u16/Profiling/i386_timer.h +0 -45
- package/deps/simdutf/benchmarks/competition/u8u16/Profiling/ppc_timer.c +0 -34
- package/deps/simdutf/benchmarks/competition/u8u16/README +0 -56
- package/deps/simdutf/benchmarks/competition/u8u16/config/config_defs.h +0 -43
- package/deps/simdutf/benchmarks/competition/u8u16/config/g4_config.h +0 -27
- package/deps/simdutf/benchmarks/competition/u8u16/config/mmx_config.h +0 -16
- package/deps/simdutf/benchmarks/competition/u8u16/config/p4_config.h +0 -18
- package/deps/simdutf/benchmarks/competition/u8u16/config/p4_ideal_config.h +0 -16
- package/deps/simdutf/benchmarks/competition/u8u16/config/spu_config.h +0 -28
- package/deps/simdutf/benchmarks/competition/u8u16/config/ssse3_config.h +0 -20
- package/deps/simdutf/benchmarks/competition/u8u16/iconv_u8u16.c +0 -2
- package/deps/simdutf/benchmarks/competition/u8u16/lib/altivec_simd.h +0 -440
- package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_basic_ops.py +0 -121
- package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_half_operand_versions.py +0 -158
- package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_test.py +0 -270
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd.h +0 -141
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_basic.h +0 -216
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_built_in.h +0 -119
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_modified.h +0 -2430
- package/deps/simdutf/benchmarks/competition/u8u16/lib/outline.txt +0 -39
- package/deps/simdutf/benchmarks/competition/u8u16/lib/spu_simd.h +0 -421
- package/deps/simdutf/benchmarks/competition/u8u16/lib/sse_simd.h +0 -836
- package/deps/simdutf/benchmarks/competition/u8u16/lib/stdint.h +0 -222
- package/deps/simdutf/benchmarks/competition/u8u16/libu8u16_BE.c +0 -4
- package/deps/simdutf/benchmarks/competition/u8u16/libu8u16_LE.c +0 -5
- package/deps/simdutf/benchmarks/competition/u8u16/proto/u8u16.py +0 -390
- package/deps/simdutf/benchmarks/competition/u8u16/src/Makefile +0 -18
- package/deps/simdutf/benchmarks/competition/u8u16/src/bytelex.h +0 -448
- package/deps/simdutf/benchmarks/competition/u8u16/src/charsets/ASCII_EBCDIC.h +0 -284
- package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.c +0 -1975
- package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.pdf +0 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.w +0 -2263
- package/deps/simdutf/benchmarks/competition/u8u16/src/multiliteral.h +0 -239
- package/deps/simdutf/benchmarks/competition/u8u16/src/u8u16.c +0 -232
- package/deps/simdutf/benchmarks/competition/u8u16/src/x8x16.c +0 -194
- package/deps/simdutf/benchmarks/competition/u8u16/src/xml_error.c +0 -193
- package/deps/simdutf/benchmarks/competition/u8u16/src/xml_error.h +0 -167
- package/deps/simdutf/benchmarks/competition/u8u16/src/xmldecl.c +0 -288
- package/deps/simdutf/benchmarks/competition/u8u16/src/xmldecl.h +0 -117
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_g4.c +0 -2
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_mmx.c +0 -2
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_p4.c +0 -3
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_p4_ideal.c +0 -2
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_spu.c +0 -2
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_ssse3.c +0 -3
- package/deps/simdutf/benchmarks/competition/u8u16/x8x16_p4.c +0 -2
- package/deps/simdutf/benchmarks/competition/utf8lut/LICENSE +0 -23
- package/deps/simdutf/benchmarks/competition/utf8lut/data/test_minimal.txt +0 -44
- package/deps/simdutf/benchmarks/competition/utf8lut/readme.md +0 -106
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_clang_corr_tests.cmd +0 -11
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_clang_corr_tests.sh +0 -13
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_corr_tests.sh +0 -13
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_example.sh +0 -13
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_file_conv.sh +0 -14
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_iconv_lib.sh +0 -11
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_iconv_sample.sh +0 -8
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_corr_tests.cmd +0 -12
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_example.cmd +0 -13
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_file_conv.cmd +0 -14
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_iconv_lib.cmd +0 -11
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_iconv_sample.cmd +0 -8
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_corr_tests.cmd +0 -11
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_example.cmd +0 -12
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_file_conv.cmd +0 -13
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_iconv_lib.cmd +0 -10
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_iconv_sample.cmd +0 -9
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/html_table.py +0 -25
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/measure.py +0 -94
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/resize.py +0 -20
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/wipe_all.cmd +0 -2
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/wipe_interm.cmd +0 -1
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/CustomMemcpy.h +0 -75
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/PerfDefs.h +0 -47
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/Timing.cpp +0 -17
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/Timing.h +0 -76
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/AllProcessors.cpp +0 -35
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BaseBufferProcessor.cpp +0 -117
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BaseBufferProcessor.h +0 -210
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BufferDecoder.h +0 -158
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BufferEncoder.h +0 -104
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/ProcessorPlugins.h +0 -334
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/ProcessorSelector.h +0 -186
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderLut.cpp +0 -140
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderLut.h +0 -42
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderProcess.h +0 -100
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/Dfa.h +0 -57
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderLut.cpp +0 -85
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderLut.h +0 -27
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderProcess.h +0 -126
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/ProcessTrivial.h +0 -108
- package/deps/simdutf/benchmarks/competition/utf8lut/src/iconv/iconv.cpp +0 -139
- package/deps/simdutf/benchmarks/competition/utf8lut/src/iconv/iconv.h +0 -74
- package/deps/simdutf/benchmarks/competition/utf8lut/src/message/MessageConverter.cpp +0 -65
- package/deps/simdutf/benchmarks/competition/utf8lut/src/message/MessageConverter.h +0 -91
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/CorrectnessTests.cpp +0 -772
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/Example.cpp +0 -12
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/FileConverter.cpp +0 -486
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/iconv_sample.c +0 -162
- package/deps/simdutf/benchmarks/competition/utf8lut/src/utf8lut.h +0 -15
- package/deps/simdutf/benchmarks/competition/utf8sse4/fromutf8-sse.cpp +0 -292
- package/deps/simdutf/benchmarks/competition/utfcpp/LICENSE +0 -23
- package/deps/simdutf/benchmarks/competition/utfcpp/README.md +0 -1503
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/checked.h +0 -335
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/core.h +0 -338
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/cpp11.h +0 -103
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/cpp17.h +0 -103
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/unchecked.h +0 -274
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8.h +0 -34
- package/deps/simdutf/benchmarks/dataset/README.md +0 -155
- package/deps/simdutf/benchmarks/dataset/emoji.txt +0 -204
- package/deps/simdutf/benchmarks/dataset/scripts/utf8type.py +0 -40
- package/deps/simdutf/benchmarks/dataset/wikipedia_mars/Makefile +0 -80
- package/deps/simdutf/benchmarks/dataset/wikipedia_mars/convert_to_utf6.py +0 -20
- package/deps/simdutf/benchmarks/find/CMakeLists.txt +0 -6
- package/deps/simdutf/benchmarks/find/findbenchmark.cpp +0 -63
- package/deps/simdutf/benchmarks/find/findbenchmarker.h +0 -46
- package/deps/simdutf/benchmarks/shortbench.cpp +0 -555
- package/deps/simdutf/benchmarks/src/CMakeLists.txt +0 -52
- package/deps/simdutf/benchmarks/src/apple_arm_events.h +0 -1104
- package/deps/simdutf/benchmarks/src/benchmark.cpp +0 -3899
- package/deps/simdutf/benchmarks/src/benchmark.h +0 -317
- package/deps/simdutf/benchmarks/src/benchmark_base.cpp +0 -144
- package/deps/simdutf/benchmarks/src/benchmark_base.h +0 -98
- package/deps/simdutf/benchmarks/src/cmdline.cpp +0 -176
- package/deps/simdutf/benchmarks/src/cmdline.h +0 -35
- package/deps/simdutf/benchmarks/src/event_counter.h +0 -162
- package/deps/simdutf/benchmarks/src/linux-perf-events.h +0 -104
- package/deps/simdutf/benchmarks/stream.cpp +0 -209
- package/deps/simdutf/benchmarks/threaded.cpp +0 -123
- package/deps/simdutf/cmake/CPM.cmake +0 -1363
- package/deps/simdutf/cmake/JoinPaths.cmake +0 -23
- package/deps/simdutf/cmake/add_cpp_test.cmake +0 -68
- package/deps/simdutf/cmake/simdutf-config.cmake.in +0 -2
- package/deps/simdutf/cmake/simdutf-flags.cmake +0 -26
- package/deps/simdutf/cmake/toolchains-ci/riscv64-linux-gnu.cmake +0 -4
- package/deps/simdutf/cmake/toolchains-dev/README.md +0 -32
- package/deps/simdutf/cmake/toolchains-dev/aarch64.cmake +0 -14
- package/deps/simdutf/cmake/toolchains-dev/loongarch64.cmake +0 -22
- package/deps/simdutf/cmake/toolchains-dev/powerpc64.cmake +0 -16
- package/deps/simdutf/cmake/toolchains-dev/powerpc64le.cmake +0 -16
- package/deps/simdutf/cmake/toolchains-dev/riscv64.cmake +0 -16
- package/deps/simdutf/cmake/toolchains-dev/rvv-spike.cmake +0 -38
- package/deps/simdutf/doc/avx512.png +0 -0
- package/deps/simdutf/doc/logo.png +0 -0
- package/deps/simdutf/doc/logo.svg +0 -165
- package/deps/simdutf/doc/node2023.png +0 -0
- package/deps/simdutf/doc/shortinput.md +0 -78
- package/deps/simdutf/doc/utf16utf8.png +0 -0
- package/deps/simdutf/doc/utf8utf16.png +0 -0
- package/deps/simdutf/doc/widelogo.png +0 -0
- package/deps/simdutf/doxygen.py +0 -50
- package/deps/simdutf/fuzz/.clang-format +0 -9
- package/deps/simdutf/fuzz/CMakeLists.txt +0 -45
- package/deps/simdutf/fuzz/README.md +0 -168
- package/deps/simdutf/fuzz/atomic_base64.cpp +0 -448
- package/deps/simdutf/fuzz/base64.cpp +0 -278
- package/deps/simdutf/fuzz/build.sh +0 -83
- package/deps/simdutf/fuzz/conversion.cpp +0 -669
- package/deps/simdutf/fuzz/helpers/.clang-format-ignore +0 -1
- package/deps/simdutf/fuzz/helpers/common.h +0 -135
- package/deps/simdutf/fuzz/helpers/nameof.hpp +0 -1258
- package/deps/simdutf/fuzz/main.cpp +0 -72
- package/deps/simdutf/fuzz/minimize_and_cleanse.sh +0 -87
- package/deps/simdutf/fuzz/misc.cpp +0 -216
- package/deps/simdutf/fuzz/random_fuzz.sh +0 -154
- package/deps/simdutf/fuzz/roundtrip.cpp +0 -588
- package/deps/simdutf/fuzz/safe_conversion.cpp +0 -104
- package/deps/simdutf/riscv/Dockerfile +0 -16
- package/deps/simdutf/riscv/README.md +0 -24
- package/deps/simdutf/riscv/remove-docker-station +0 -8
- package/deps/simdutf/riscv/run-docker-station +0 -31
- package/deps/simdutf/scripts/.flake8 +0 -2
- package/deps/simdutf/scripts/Makefile +0 -2
- package/deps/simdutf/scripts/README_ADD_FUNCTION.md +0 -49
- package/deps/simdutf/scripts/add_function.py +0 -330
- package/deps/simdutf/scripts/amalgamation_tests.py +0 -156
- package/deps/simdutf/scripts/base64/Makefile +0 -2
- package/deps/simdutf/scripts/base64/README.md +0 -2
- package/deps/simdutf/scripts/base64/avx512.py +0 -76
- package/deps/simdutf/scripts/base64/neon_decode.py +0 -143
- package/deps/simdutf/scripts/base64/neon_generate_lut.py +0 -101
- package/deps/simdutf/scripts/base64/sse.py +0 -252
- package/deps/simdutf/scripts/base64/sseregular.py +0 -160
- package/deps/simdutf/scripts/base64/sseurl.py +0 -283
- package/deps/simdutf/scripts/base64/table.py +0 -59
- package/deps/simdutf/scripts/base64bench_print.py +0 -145
- package/deps/simdutf/scripts/benchmark-all.py +0 -119
- package/deps/simdutf/scripts/benchmark_print.py +0 -324
- package/deps/simdutf/scripts/check_feature_macros.py +0 -156
- package/deps/simdutf/scripts/check_typos.sh +0 -13
- package/deps/simdutf/scripts/clang_format.sh +0 -35
- package/deps/simdutf/scripts/clang_format_docker.sh +0 -38
- package/deps/simdutf/scripts/common.py +0 -24
- package/deps/simdutf/scripts/compilation_benchmark.py +0 -55
- package/deps/simdutf/scripts/compile_many_variations.sh +0 -64
- package/deps/simdutf/scripts/create_latex_table.py +0 -62
- package/deps/simdutf/scripts/docker/Dockerfile +0 -14
- package/deps/simdutf/scripts/docker/Makefile +0 -9
- package/deps/simdutf/scripts/docker/README.md +0 -30
- package/deps/simdutf/scripts/docker/llvm.gpg +0 -0
- package/deps/simdutf/scripts/ppc64_convert_utf16_to_utf8.py +0 -155
- package/deps/simdutf/scripts/prepare_doxygen.sh +0 -21
- package/deps/simdutf/scripts/release.py +0 -197
- package/deps/simdutf/scripts/shortinputplots.py +0 -97
- package/deps/simdutf/scripts/sse_convert_utf16_to_utf8.py +0 -422
- package/deps/simdutf/scripts/sse_convert_utf32_to_utf16.py +0 -105
- package/deps/simdutf/scripts/sse_utf8_utf16_decode.py +0 -186
- package/deps/simdutf/scripts/sse_validate_utf16le_proof.py +0 -137
- package/deps/simdutf/scripts/sse_validate_utf16le_testcases.py +0 -129
- package/deps/simdutf/scripts/table.py +0 -207
- package/deps/simdutf/scripts/tests/new.txt +0 -33
- package/deps/simdutf/scripts/tests/old.txt +0 -33
- package/deps/simdutf/scripts/tests/results.txt +0 -272
- package/deps/simdutf/simdutf.pc.in +0 -11
- package/deps/simdutf/singleheader/.flake8 +0 -2
- package/deps/simdutf/singleheader/CMakeLists.txt +0 -64
- package/deps/simdutf/singleheader/README-dev.md +0 -81
- package/deps/simdutf/singleheader/README.md +0 -19
- package/deps/simdutf/singleheader/amalgamate.py +0 -513
- package/deps/simdutf/singleheader/amalgamation_demo.c +0 -59
- package/deps/simdutf/singleheader/amalgamation_demo.cpp +0 -54
- package/deps/simdutf/singleheader/test-features.py +0 -262
- package/deps/simdutf/src/CMakeLists.txt +0 -78
- package/deps/simdutf/tests/CMakeLists.txt +0 -483
- package/deps/simdutf/tests/atomic_base64_tests.cpp +0 -2845
- package/deps/simdutf/tests/base64_tests.cpp +0 -3617
- package/deps/simdutf/tests/basic_fuzzer.cpp +0 -805
- package/deps/simdutf/tests/bele_tests.cpp +0 -182
- package/deps/simdutf/tests/constexpr_base64_tests.cpp +0 -387
- package/deps/simdutf/tests/convert_latin1_to_utf16be_tests.cpp +0 -52
- package/deps/simdutf/tests/convert_latin1_to_utf16le_tests.cpp +0 -80
- package/deps/simdutf/tests/convert_latin1_to_utf32_tests.cpp +0 -66
- package/deps/simdutf/tests/convert_latin1_to_utf8_tests.cpp +0 -120
- package/deps/simdutf/tests/convert_utf16_to_utf8_safe_tests.cpp +0 -203
- package/deps/simdutf/tests/convert_utf16_to_utf8_with_replacement_tests.cpp +0 -276
- package/deps/simdutf/tests/convert_utf16be_to_latin1_tests.cpp +0 -109
- package/deps/simdutf/tests/convert_utf16be_to_latin1_tests_with_errors.cpp +0 -136
- package/deps/simdutf/tests/convert_utf16be_to_utf32_tests.cpp +0 -193
- package/deps/simdutf/tests/convert_utf16be_to_utf32_with_errors_tests.cpp +0 -381
- package/deps/simdutf/tests/convert_utf16be_to_utf8_tests.cpp +0 -259
- package/deps/simdutf/tests/convert_utf16be_to_utf8_with_errors_tests.cpp +0 -266
- package/deps/simdutf/tests/convert_utf16le_to_latin1_tests.cpp +0 -148
- package/deps/simdutf/tests/convert_utf16le_to_latin1_tests_with_errors.cpp +0 -176
- package/deps/simdutf/tests/convert_utf16le_to_utf32_tests.cpp +0 -213
- package/deps/simdutf/tests/convert_utf16le_to_utf32_with_errors_tests.cpp +0 -318
- package/deps/simdutf/tests/convert_utf16le_to_utf8_tests.cpp +0 -343
- package/deps/simdutf/tests/convert_utf16le_to_utf8_with_errors_tests.cpp +0 -271
- package/deps/simdutf/tests/convert_utf32_to_latin1_tests.cpp +0 -111
- package/deps/simdutf/tests/convert_utf32_to_latin1_with_errors_tests.cpp +0 -96
- package/deps/simdutf/tests/convert_utf32_to_utf16be_tests.cpp +0 -148
- package/deps/simdutf/tests/convert_utf32_to_utf16be_with_errors_tests.cpp +0 -192
- package/deps/simdutf/tests/convert_utf32_to_utf16le_tests.cpp +0 -166
- package/deps/simdutf/tests/convert_utf32_to_utf16le_with_errors_tests.cpp +0 -215
- package/deps/simdutf/tests/convert_utf32_to_utf8_tests.cpp +0 -181
- package/deps/simdutf/tests/convert_utf32_to_utf8_with_errors_tests.cpp +0 -261
- package/deps/simdutf/tests/convert_utf8_to_latin1_tests.cpp +0 -516
- package/deps/simdutf/tests/convert_utf8_to_latin1_with_errors_tests.cpp +0 -579
- package/deps/simdutf/tests/convert_utf8_to_utf16be_tests.cpp +0 -412
- package/deps/simdutf/tests/convert_utf8_to_utf16be_with_errors_tests.cpp +0 -480
- package/deps/simdutf/tests/convert_utf8_to_utf16le_tests.cpp +0 -671
- package/deps/simdutf/tests/convert_utf8_to_utf16le_with_errors_tests.cpp +0 -455
- package/deps/simdutf/tests/convert_utf8_to_utf32_tests.cpp +0 -1204
- package/deps/simdutf/tests/convert_utf8_to_utf32_with_errors_tests.cpp +0 -337
- package/deps/simdutf/tests/convert_valid_utf16be_to_latin1_tests.cpp +0 -37
- package/deps/simdutf/tests/convert_valid_utf16be_to_utf32_tests.cpp +0 -97
- package/deps/simdutf/tests/convert_valid_utf16be_to_utf8_tests.cpp +0 -126
- package/deps/simdutf/tests/convert_valid_utf16le_to_latin1_tests.cpp +0 -71
- package/deps/simdutf/tests/convert_valid_utf16le_to_utf32_tests.cpp +0 -122
- package/deps/simdutf/tests/convert_valid_utf16le_to_utf8_tests.cpp +0 -244
- package/deps/simdutf/tests/convert_valid_utf32_to_latin1_tests.cpp +0 -49
- package/deps/simdutf/tests/convert_valid_utf32_to_utf16be_tests.cpp +0 -92
- package/deps/simdutf/tests/convert_valid_utf32_to_utf16le_tests.cpp +0 -114
- package/deps/simdutf/tests/convert_valid_utf32_to_utf8_tests.cpp +0 -109
- package/deps/simdutf/tests/convert_valid_utf8_to_latin1_tests.cpp +0 -84
- package/deps/simdutf/tests/convert_valid_utf8_to_utf16be_tests.cpp +0 -124
- package/deps/simdutf/tests/convert_valid_utf8_to_utf16le_tests.cpp +0 -221
- package/deps/simdutf/tests/convert_valid_utf8_to_utf32_tests.cpp +0 -155
- package/deps/simdutf/tests/count_utf16be.cpp +0 -64
- package/deps/simdutf/tests/count_utf16le.cpp +0 -61
- package/deps/simdutf/tests/count_utf8.cpp +0 -87
- package/deps/simdutf/tests/detect_encodings_tests.cpp +0 -312
- package/deps/simdutf/tests/embed/valid_utf8.txt +0 -1
- package/deps/simdutf/tests/embed_tests.cpp +0 -22
- package/deps/simdutf/tests/find_tests.cpp +0 -77
- package/deps/simdutf/tests/fixed_string_tests.cpp +0 -153
- package/deps/simdutf/tests/helpers/CMakeLists.txt +0 -25
- package/deps/simdutf/tests/helpers/compiletime_conversions.h +0 -222
- package/deps/simdutf/tests/helpers/fixed_string.h +0 -267
- package/deps/simdutf/tests/helpers/random_int.cpp +0 -30
- package/deps/simdutf/tests/helpers/random_int.h +0 -39
- package/deps/simdutf/tests/helpers/random_utf16.cpp +0 -123
- package/deps/simdutf/tests/helpers/random_utf16.h +0 -52
- package/deps/simdutf/tests/helpers/random_utf32.cpp +0 -41
- package/deps/simdutf/tests/helpers/random_utf32.h +0 -40
- package/deps/simdutf/tests/helpers/random_utf8.cpp +0 -93
- package/deps/simdutf/tests/helpers/random_utf8.h +0 -36
- package/deps/simdutf/tests/helpers/test.cpp +0 -231
- package/deps/simdutf/tests/helpers/test.h +0 -193
- package/deps/simdutf/tests/helpers/transcode_test_base.cpp +0 -1257
- package/deps/simdutf/tests/helpers/transcode_test_base.h +0 -683
- package/deps/simdutf/tests/helpers/utf16.h +0 -27
- package/deps/simdutf/tests/installation_tests/find/CMakeLists.txt +0 -43
- package/deps/simdutf/tests/installation_tests/from_fetch/CMakeLists.txt +0 -47
- package/deps/simdutf/tests/internal_tests.cpp +0 -27
- package/deps/simdutf/tests/null_safety_tests.cpp +0 -94
- package/deps/simdutf/tests/random_fuzzer.cpp +0 -779
- package/deps/simdutf/tests/readme_tests.cpp +0 -274
- package/deps/simdutf/tests/reference/CMakeLists.txt +0 -23
- package/deps/simdutf/tests/reference/decode_utf16.h +0 -81
- package/deps/simdutf/tests/reference/decode_utf32.h +0 -47
- package/deps/simdutf/tests/reference/encode_latin1.cpp +0 -1
- package/deps/simdutf/tests/reference/encode_latin1.h +0 -32
- package/deps/simdutf/tests/reference/encode_utf16.cpp +0 -49
- package/deps/simdutf/tests/reference/encode_utf16.h +0 -20
- package/deps/simdutf/tests/reference/encode_utf32.cpp +0 -1
- package/deps/simdutf/tests/reference/encode_utf32.h +0 -36
- package/deps/simdutf/tests/reference/encode_utf8.cpp +0 -1
- package/deps/simdutf/tests/reference/encode_utf8.h +0 -40
- package/deps/simdutf/tests/reference/validate_utf16.cpp +0 -60
- package/deps/simdutf/tests/reference/validate_utf16.h +0 -14
- package/deps/simdutf/tests/reference/validate_utf16_to_latin1.cpp +0 -35
- package/deps/simdutf/tests/reference/validate_utf16_to_latin1.h +0 -13
- package/deps/simdutf/tests/reference/validate_utf32.cpp +0 -27
- package/deps/simdutf/tests/reference/validate_utf32.h +0 -12
- package/deps/simdutf/tests/reference/validate_utf32_to_latin1.cpp +0 -27
- package/deps/simdutf/tests/reference/validate_utf32_to_latin1.h +0 -12
- package/deps/simdutf/tests/reference/validate_utf8.cpp +0 -82
- package/deps/simdutf/tests/reference/validate_utf8.h +0 -11
- package/deps/simdutf/tests/reference/validate_utf8_to_latin1.cpp +0 -43
- package/deps/simdutf/tests/reference/validate_utf8_to_latin1.h +0 -12
- package/deps/simdutf/tests/select_implementation.cpp +0 -43
- package/deps/simdutf/tests/simdutf_c_tests.cpp +0 -244
- package/deps/simdutf/tests/span_tests.cpp +0 -401
- package/deps/simdutf/tests/special_tests.cpp +0 -559
- package/deps/simdutf/tests/straight_c_test.c +0 -187
- package/deps/simdutf/tests/text_encoding_tests.cpp +0 -77
- package/deps/simdutf/tests/to_well_formed_utf16_tests.cpp +0 -377
- package/deps/simdutf/tests/utf8_length_from_utf16_tests.cpp +0 -202
- package/deps/simdutf/tests/validate_ascii_basic_tests.cpp +0 -165
- package/deps/simdutf/tests/validate_ascii_with_errors_tests.cpp +0 -77
- package/deps/simdutf/tests/validate_utf16be_basic_tests.cpp +0 -175
- package/deps/simdutf/tests/validate_utf16be_with_errors_tests.cpp +0 -188
- package/deps/simdutf/tests/validate_utf16le_basic_tests.cpp +0 -268
- package/deps/simdutf/tests/validate_utf16le_with_errors_tests.cpp +0 -274
- package/deps/simdutf/tests/validate_utf32_basic_tests.cpp +0 -92
- package/deps/simdutf/tests/validate_utf32_with_errors_tests.cpp +0 -114
- package/deps/simdutf/tests/validate_utf8_basic_tests.cpp +0 -178
- package/deps/simdutf/tests/validate_utf8_brute_force_tests.cpp +0 -88
- package/deps/simdutf/tests/validate_utf8_puzzler_tests.cpp +0 -33
- package/deps/simdutf/tests/validate_utf8_with_errors_tests.cpp +0 -228
- package/deps/simdutf/tools/CMakeLists.txt +0 -85
- package/deps/simdutf/tools/fastbase64.cpp +0 -250
- package/deps/simdutf/tools/sutf.cpp +0 -556
- package/deps/simdutf/tools/sutf.h +0 -40
- package/lib/tsconfig.tsbuildinfo +0 -1
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
FROM ubuntu:24.04
|
|
2
|
-
ARG USER_NAME
|
|
3
|
-
ARG USER_ID
|
|
4
|
-
ARG GROUP_ID
|
|
5
|
-
# We install some useful packages
|
|
6
|
-
RUN apt-get update -qq
|
|
7
|
-
RUN apt-get install -y vim git g++-riscv64-linux-gnu qemu-user-static ninja-build valgrind curl clang++-18 gdb clang-format sudo wget cmake g++
|
|
8
|
-
RUN addgroup --gid $GROUP_ID user; exit 0
|
|
9
|
-
RUN adduser --disabled-password --gecos '' --uid $USER_ID --gid $GROUP_ID $USER_NAME; exit 0
|
|
10
|
-
RUN echo "$USER_NAME:$USER_NAME" | chpasswd && adduser $USER_NAME sudo
|
|
11
|
-
RUN echo '----->'
|
|
12
|
-
RUN echo 'root:Docker!' | chpasswd
|
|
13
|
-
ENV TERM xterm-256color
|
|
14
|
-
USER $USER_NAME
|
|
15
|
-
RUN gcc --version
|
|
16
|
-
RUN cmake --version
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# RISC-V
|
|
2
|
-
|
|
3
|
-
We assume that you have a docker or docker-like system.
|
|
4
|
-
|
|
5
|
-
First initialize the required docker image. Stay in the root directory of the simdutf project and type:
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
./riscv/run-docker-station bash
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
You will now be inside the container.
|
|
12
|
-
|
|
13
|
-
You can now build and run the RISC-V code as needed:
|
|
14
|
-
|
|
15
|
-
```
|
|
16
|
-
CXX=clang++-18 CXXFLAGS="--target=riscv64-linux-gnu -march=rv64gcv" cmake -DCMAKE_CROSSCOMPILING_EMULATOR=qemu-riscv64-static -DCMAKE_SYSTEM_PROCESSOR=riscv64 -DCMAKE_BUILD_TYPE=Release -B buildriscv
|
|
17
|
-
cmake --build buildriscv
|
|
18
|
-
export QEMU_LD_PREFIX="/usr/riscv64-linux-gnu"
|
|
19
|
-
export QEMU_CPU="rv64,v=on,vlen=128,rvv_ta_all_1s=on,rvv_ma_all_1s=on"
|
|
20
|
-
ctest --output-on-failure --test-dir buildriscv
|
|
21
|
-
/usr/bin/qemu-riscv64-static buildriscv/tools/sutf
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
Quitting the shell will exit from the container.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
tuser=$(echo $USER | tr -dc 'a-z')
|
|
3
|
-
container_name=${CONTAINER_NAME:-"risc-programming_station-for-$tuser"}
|
|
4
|
-
echo $container_name
|
|
5
|
-
echo " Removing the container "
|
|
6
|
-
docker ps -a | awk '{ print $1,$2 }' | grep $container_name| awk '{print $1 }' | xargs -I {} docker stop -t 1 {} | xargs docker rm
|
|
7
|
-
# removing image
|
|
8
|
-
docker image rm $container_name
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
|
|
3
|
-
if [ -z "$1" ]
|
|
4
|
-
then
|
|
5
|
-
echo "The run-docker-station script takes a command as a argument. E.g., try ./run-docker-station 'ls' "
|
|
6
|
-
exit 1
|
|
7
|
-
fi
|
|
8
|
-
|
|
9
|
-
set -o noglob
|
|
10
|
-
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
|
11
|
-
|
|
12
|
-
COMMAND=$@
|
|
13
|
-
|
|
14
|
-
tuser=$(echo $USER | tr -dc 'a-z')
|
|
15
|
-
|
|
16
|
-
container_name=${CONTAINER_NAME:-"risc-programming_station-for-$tuser"}
|
|
17
|
-
|
|
18
|
-
command -v docker >/dev/null 2>&1 || { echo >&2 "Please install docker. E.g., go to https://www.docker.com/products/docker-desktop Type 'docker' to diagnose the problem."; exit 1; }
|
|
19
|
-
|
|
20
|
-
docker info >/dev/null 2>&1 || { echo >&2 "Docker server is not running? type 'docker info'."; exit 1; }
|
|
21
|
-
|
|
22
|
-
SSHPARAM=""
|
|
23
|
-
[ -e "${SSH_AUTH_SOCK}" ] && SSHPARAM="--volume /run/host-services/ssh-auth.sock:/run/host-services/ssh-auth.sock --env SSH_AUTH_SOCK=/run/host-services/ssh-auth.sock"
|
|
24
|
-
[ -e "${HOME}/.ssh" ] && SSHPARAM="--volume ${HOME}/.ssh:/home/$tuser/.ssh:ro"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
docker image inspect $container_name >/dev/null 2>&1 || ( echo "instantiating the container" ; docker build --no-cache -t $container_name -f $SCRIPTPATH/Dockerfile --build-arg USER_NAME="$tuser" --build-arg USER_ID=$(id -u) --build-arg GROUP_ID=$(id -g) . )
|
|
28
|
-
|
|
29
|
-
if [ -t 0 ]; then DOCKER_ARGS=-it; fi
|
|
30
|
-
docker run --rm $DOCKER_ARGS -h $container_name $SSHPARAM -v $(pwd):$(pwd):Z --privileged -w $(pwd) $container_name sh -c "$COMMAND"
|
|
31
|
-
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
# Adding a New Function to simdutf
|
|
2
|
-
|
|
3
|
-
This guide explains how to use the `add_function.py` script to automate adding a new function to the simdutf library.
|
|
4
|
-
|
|
5
|
-
## Prerequisites
|
|
6
|
-
- Python 3 installed.
|
|
7
|
-
- The script assumes the repository structure is intact (e.g., `include/simdutf/implementation.h`, `src/implementation.cpp`, etc.).
|
|
8
|
-
|
|
9
|
-
## Steps
|
|
10
|
-
1. **Create a Signature File**: Create a text file (e.g., `new_function.sig`) containing the function signatures, wrapped in the appropriate feature macro block. You can include multiple functions in one block. Most functions in simdutf are marked `noexcept` and you should mark them `noexcept`. If they return a value, we typically marked the return value `simdutf_warn_unused`. Example:
|
|
11
|
-
```C++
|
|
12
|
-
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
13
|
-
/**
|
|
14
|
-
* Documentation for first function.
|
|
15
|
-
*/
|
|
16
|
-
simdutf_warn_unused size_t utf8_length_from_utf16le(
|
|
17
|
-
const char16_t *buf, size_t len) noexcept;
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Documentation for second function.
|
|
21
|
-
*/
|
|
22
|
-
simdutf_warn_unused size_t utf8_length_from_utf16be(
|
|
23
|
-
const char16_t *buf, size_t len) noexcept;
|
|
24
|
-
#endif
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
2. **Run the Script**: Execute the script with the signature file as argument:
|
|
28
|
-
```shell
|
|
29
|
-
python scripts/add_function.py new_function.sig
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
3. **What the Script Does**:
|
|
33
|
-
- Parses the signature file to extract the feature macro and all function signatures with their documentation.
|
|
34
|
-
- Adds each function as a standalone function in the `simdutf` namespace in `include/simdutf/implementation.h`.
|
|
35
|
-
- Adds each as a virtual function in the `implementation` class.
|
|
36
|
-
- Adds implementations in `src/implementation.cpp` (detect, unsupported, and standalone).
|
|
37
|
-
- Adds stub implementations (`// TODO: implement`) in all `src/*/implementation.cpp` files.
|
|
38
|
-
|
|
39
|
-
4. **Post-Script Steps**:
|
|
40
|
-
- Implement the actual function logic in each `src/*/implementation.cpp` file.
|
|
41
|
-
- Update any tests or documentation as needed.
|
|
42
|
-
- Rebuild and test the library.
|
|
43
|
-
|
|
44
|
-
## Warnings
|
|
45
|
-
- This script modifies source files directly. Back up your repository before running it.
|
|
46
|
-
- The script uses simple text manipulation; complex signatures may require manual adjustments.
|
|
47
|
-
- Ensure the feature macro is correctly defined in the build system.
|
|
48
|
-
|
|
49
|
-
If you encounter issues, check the script's output and verify the file paths.
|
|
@@ -1,330 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
"""
|
|
3
|
-
Script to automate adding a new function to the simdutf library.
|
|
4
|
-
This script reads a file containing the function signatures and documentation,
|
|
5
|
-
then adds the functions to the appropriate files in the codebase.
|
|
6
|
-
|
|
7
|
-
Usage:
|
|
8
|
-
python add_function.py <signature_file>
|
|
9
|
-
|
|
10
|
-
Where <signature_file> is a file containing the function signatures, wrapped in a feature macro block, e.g.:
|
|
11
|
-
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
12
|
-
/**
|
|
13
|
-
* Documentation for first function.
|
|
14
|
-
*/
|
|
15
|
-
simdutf_warn_unused size_t utf8_length_from_utf16le(
|
|
16
|
-
const char16_t *buf, size_t len) noexcept;
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Documentation for second function.
|
|
20
|
-
*/
|
|
21
|
-
simdutf_warn_unused size_t utf8_length_from_utf16be(
|
|
22
|
-
const char16_t *buf, size_t len) noexcept;
|
|
23
|
-
#endif
|
|
24
|
-
"""
|
|
25
|
-
|
|
26
|
-
import sys
|
|
27
|
-
import os
|
|
28
|
-
import re
|
|
29
|
-
import glob
|
|
30
|
-
|
|
31
|
-
def read_signature_file(file_path):
|
|
32
|
-
"""Read and parse the signature file."""
|
|
33
|
-
with open(file_path, 'r') as f:
|
|
34
|
-
content = f.read()
|
|
35
|
-
|
|
36
|
-
# Extract the feature macro (e.g., SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16)
|
|
37
|
-
feature_match = re.search(r'#if\s+(.+)', content)
|
|
38
|
-
feature_macro = feature_match.group(1).strip() if feature_match else None
|
|
39
|
-
|
|
40
|
-
# Extract the content between #if and #endif
|
|
41
|
-
if_match = re.search(r'#if\s+.+?(#endif)', content, re.DOTALL)
|
|
42
|
-
if not if_match:
|
|
43
|
-
raise ValueError("Could not find #if/#endif block.")
|
|
44
|
-
|
|
45
|
-
block_content = if_match.group(0)
|
|
46
|
-
|
|
47
|
-
# Extract all function signatures (documentation + signature)
|
|
48
|
-
sig_matches = re.findall(r'(/\*\*.*?\*/)\s*(.*?);', block_content, re.DOTALL)
|
|
49
|
-
if not sig_matches:
|
|
50
|
-
raise ValueError("Could not parse function signatures from file.")
|
|
51
|
-
|
|
52
|
-
functions = []
|
|
53
|
-
for doc, sig in sig_matches:
|
|
54
|
-
doc = doc.strip()
|
|
55
|
-
signature = sig.strip() + ';'
|
|
56
|
-
# Extract function name
|
|
57
|
-
name_match = re.search(r'\s+(\w+)\s*\(', signature)
|
|
58
|
-
func_name = name_match.group(1) if name_match else None
|
|
59
|
-
functions.append((doc, signature, func_name))
|
|
60
|
-
|
|
61
|
-
return feature_macro, functions
|
|
62
|
-
|
|
63
|
-
def add_to_implementation_h(repo_root, feature_macro, functions):
|
|
64
|
-
"""Add to include/simdutf/implementation.h"""
|
|
65
|
-
file_path = os.path.join(repo_root, 'include/simdutf/implementation.h')
|
|
66
|
-
|
|
67
|
-
with open(file_path, 'r') as f:
|
|
68
|
-
content = f.read()
|
|
69
|
-
|
|
70
|
-
# Check for existing #if block for standalone functions (after namespace)
|
|
71
|
-
ns_start = content.find('namespace simdutf {')
|
|
72
|
-
if ns_start == -1:
|
|
73
|
-
raise ValueError("Could not find namespace in implementation.h")
|
|
74
|
-
|
|
75
|
-
existing_if = content.find(f'#if {feature_macro}', ns_start)
|
|
76
|
-
if existing_if != -1:
|
|
77
|
-
# Find the corresponding #endif
|
|
78
|
-
endif_pos = content.find('#endif', existing_if)
|
|
79
|
-
if endif_pos != -1:
|
|
80
|
-
insert_pos = endif_pos
|
|
81
|
-
else:
|
|
82
|
-
insert_pos = len(content)
|
|
83
|
-
else:
|
|
84
|
-
insert_pos = ns_start + len('namespace simdutf {')
|
|
85
|
-
|
|
86
|
-
# Insert standalone functions
|
|
87
|
-
standalone = ""
|
|
88
|
-
for doc, signature, func_name in functions:
|
|
89
|
-
standalone_sig = signature.replace(' const ', ' ')
|
|
90
|
-
standalone += f"""{doc}
|
|
91
|
-
|
|
92
|
-
{standalone_sig}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
"""
|
|
96
|
-
content = content[:insert_pos] + standalone + content[insert_pos:]
|
|
97
|
-
|
|
98
|
-
# Now for virtual functions in class
|
|
99
|
-
class_start = content.find('class implementation {')
|
|
100
|
-
public_start = content.find('public:', class_start)
|
|
101
|
-
if public_start == -1:
|
|
102
|
-
raise ValueError("Could not find public section in implementation class")
|
|
103
|
-
|
|
104
|
-
existing_if_class = content.find(f'#if {feature_macro}', public_start)
|
|
105
|
-
if existing_if_class != -1:
|
|
106
|
-
endif_pos_class = content.find('#endif', existing_if_class)
|
|
107
|
-
if endif_pos_class != -1:
|
|
108
|
-
insert_pos_class = endif_pos_class
|
|
109
|
-
else:
|
|
110
|
-
insert_pos_class = len(content)
|
|
111
|
-
else:
|
|
112
|
-
insert_pos_class = public_start + len('public:')
|
|
113
|
-
|
|
114
|
-
# Insert virtual functions
|
|
115
|
-
virtual = ""
|
|
116
|
-
for doc, signature, func_name in functions:
|
|
117
|
-
# Normalize signature for virtual
|
|
118
|
-
clean_sig = re.sub(r'\s*;?\s*$', '', signature).strip()
|
|
119
|
-
virtual += f"""{doc}
|
|
120
|
-
virtual {clean_sig} = 0;
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
"""
|
|
124
|
-
content = content[:insert_pos_class] + virtual + content[insert_pos_class:]
|
|
125
|
-
|
|
126
|
-
with open(file_path, 'w') as f:
|
|
127
|
-
f.write(content)
|
|
128
|
-
|
|
129
|
-
def add_to_src_implementation_cpp(repo_root, feature_macro, functions):
|
|
130
|
-
"""Add to src/implementation.cpp"""
|
|
131
|
-
file_path = os.path.join(repo_root, 'src/implementation.cpp')
|
|
132
|
-
|
|
133
|
-
with open(file_path, 'r') as f:
|
|
134
|
-
content = f.read()
|
|
135
|
-
|
|
136
|
-
# For detect class
|
|
137
|
-
detect_start = content.find('class detect_best_supported_implementation_on_first_use')
|
|
138
|
-
if detect_start != -1:
|
|
139
|
-
existing_if = content.find(f'#if {feature_macro}', detect_start)
|
|
140
|
-
if existing_if != -1:
|
|
141
|
-
endif_pos = content.find('#endif', existing_if)
|
|
142
|
-
insert_pos = endif_pos if endif_pos != -1 else len(content)
|
|
143
|
-
else:
|
|
144
|
-
brace_pos = content.find('{', detect_start)
|
|
145
|
-
insert_pos = brace_pos + 1 if brace_pos != -1 else len(content)
|
|
146
|
-
else:
|
|
147
|
-
insert_pos = len(content)
|
|
148
|
-
|
|
149
|
-
detect_impl = ""
|
|
150
|
-
for doc, signature, func_name in functions:
|
|
151
|
-
params = [p.strip().split()[-1].lstrip('*') for p in signature.split('(')[1].split(')')[0].split(',') if p.strip()]
|
|
152
|
-
param_list = ', '.join(params)
|
|
153
|
-
detect_impl += f"""{re.sub(r';$', ' {', signature.replace(' const noexcept', ' const noexcept final override'))}
|
|
154
|
-
return set_best()->{func_name}({param_list});
|
|
155
|
-
}}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
"""
|
|
159
|
-
content = content[:insert_pos] + detect_impl + content[insert_pos:]
|
|
160
|
-
|
|
161
|
-
# For unsupported class
|
|
162
|
-
unsupported_start = content.find('class unsupported_implementation final : public implementation {')
|
|
163
|
-
if unsupported_start != -1:
|
|
164
|
-
existing_if = content.find(f'#if {feature_macro}', unsupported_start)
|
|
165
|
-
if existing_if != -1:
|
|
166
|
-
endif_pos = content.find('#endif', existing_if)
|
|
167
|
-
insert_pos_unsup = endif_pos if endif_pos != -1 else len(content)
|
|
168
|
-
else:
|
|
169
|
-
insert_pos_unsup = unsupported_start + len('class unsupported_implementation final : public implementation {')
|
|
170
|
-
else:
|
|
171
|
-
insert_pos_unsup = len(content)
|
|
172
|
-
|
|
173
|
-
unsupported_impl = ""
|
|
174
|
-
for doc, signature, func_name in functions:
|
|
175
|
-
return_stmt = "return nullptr;" if "const char" in signature.split('(')[0] or "char16_t" in signature.split('(')[0] else "return 0;"
|
|
176
|
-
unsupported_impl += f"""{re.sub(r';$', ' {', signature.replace(' const noexcept', ' const noexcept final override'))}
|
|
177
|
-
{return_stmt} // Not supported
|
|
178
|
-
}}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
"""
|
|
182
|
-
content = content[:insert_pos_unsup] + unsupported_impl + content[insert_pos_unsup:]
|
|
183
|
-
|
|
184
|
-
# For standalone functions at end
|
|
185
|
-
existing_if_end = content.rfind(f'#if {feature_macro}')
|
|
186
|
-
if existing_if_end != -1:
|
|
187
|
-
endif_pos = content.find('#endif', existing_if_end)
|
|
188
|
-
insert_pos_end = endif_pos if endif_pos != -1 else len(content)
|
|
189
|
-
else:
|
|
190
|
-
insert_pos_end = len(content)
|
|
191
|
-
|
|
192
|
-
standalone = ""
|
|
193
|
-
for doc, signature, func_name in functions:
|
|
194
|
-
params = [p.strip().split()[-1].lstrip('*') for p in signature.split('(')[1].split(')')[0].split(',') if p.strip()]
|
|
195
|
-
param_list = ', '.join(params)
|
|
196
|
-
# Remove const for standalone functions
|
|
197
|
-
standalone_sig = signature.replace(' const noexcept', ' noexcept')
|
|
198
|
-
standalone += f"""{re.sub(r';$', ' {', standalone_sig)}
|
|
199
|
-
return get_default_implementation()->{func_name}({param_list});
|
|
200
|
-
}}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
"""
|
|
204
|
-
content = content[:insert_pos_end] + standalone + content[insert_pos_end:]
|
|
205
|
-
|
|
206
|
-
with open(file_path, 'w') as f:
|
|
207
|
-
f.write(content)
|
|
208
|
-
|
|
209
|
-
def add_to_impl_files(file_path, functions, feature_macro):
|
|
210
|
-
with open(file_path, 'r') as f:
|
|
211
|
-
content = f.read()
|
|
212
|
-
|
|
213
|
-
impl = ""
|
|
214
|
-
for doc, signature, func_name in functions:
|
|
215
|
-
modified_signature = re.sub(re.escape(func_name), f'implementation::{func_name}', signature)
|
|
216
|
-
if ' const ' not in modified_signature:
|
|
217
|
-
modified_signature = modified_signature.replace(' noexcept', ' const noexcept')
|
|
218
|
-
modified_signature = modified_signature.replace(' const noexcept', ' const noexcept final override')
|
|
219
|
-
impl += f"""{re.sub(r';$', ' {', modified_signature)}
|
|
220
|
-
// TODO: implement
|
|
221
|
-
}}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
"""
|
|
225
|
-
|
|
226
|
-
existing_if = content.rfind(f'#if {feature_macro}')
|
|
227
|
-
if existing_if != -1:
|
|
228
|
-
endif_pos = content.find('#endif', existing_if)
|
|
229
|
-
insert_pos = endif_pos if endif_pos != -1 else len(content)
|
|
230
|
-
content = content[:insert_pos] + impl + content[insert_pos:]
|
|
231
|
-
else:
|
|
232
|
-
impl = f"#if {feature_macro}\n{impl}#endif // {feature_macro}\n"
|
|
233
|
-
content += impl
|
|
234
|
-
|
|
235
|
-
with open(file_path, 'w') as f:
|
|
236
|
-
f.write(content)
|
|
237
|
-
|
|
238
|
-
def add_declarations_to_impl_h(file_path, functions, feature_macro):
|
|
239
|
-
print(f"Adding declarations to {file_path}...")
|
|
240
|
-
# Now add declarations to the corresponding .h file
|
|
241
|
-
arch = os.path.basename(os.path.dirname(file_path))
|
|
242
|
-
h_file = file_path
|
|
243
|
-
with open(h_file, 'r') as f:
|
|
244
|
-
h_content = f.read()
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
insert_pos = h_content.rfind('};')
|
|
248
|
-
if insert_pos == -1:
|
|
249
|
-
print(f"}}; in {h_file}")
|
|
250
|
-
if insert_pos != -1:
|
|
251
|
-
print(f"Inserting declarations at position {insert_pos}...")
|
|
252
|
-
decl = ""
|
|
253
|
-
for doc, signature, func_name in functions:
|
|
254
|
-
modified_signature = signature
|
|
255
|
-
if ' const ' not in modified_signature:
|
|
256
|
-
modified_signature = modified_signature.replace(' noexcept', ' const noexcept')
|
|
257
|
-
decl += f"{modified_signature};\n"
|
|
258
|
-
|
|
259
|
-
# Wrap with #if
|
|
260
|
-
existing_if_h = h_content.rfind(f'#if {feature_macro}')
|
|
261
|
-
if existing_if_h != -1:
|
|
262
|
-
endif_pos_h = h_content.find('#endif', existing_if_h)
|
|
263
|
-
insert_pos_h = endif_pos_h if endif_pos_h != -1 else insert_pos
|
|
264
|
-
h_content = h_content[:insert_pos_h] + decl + h_content[insert_pos_h:]
|
|
265
|
-
else:
|
|
266
|
-
decl = f"#if {feature_macro}\n{decl}#endif // {feature_macro}\n"
|
|
267
|
-
h_content = h_content[:insert_pos] + decl + h_content[insert_pos:]
|
|
268
|
-
print(f"Updating {h_file}...")
|
|
269
|
-
with open(h_file, 'w') as f:
|
|
270
|
-
f.write(h_content)
|
|
271
|
-
|
|
272
|
-
def add_to_all_impl_files(repo_root, feature_macro, functions):
|
|
273
|
-
"""Add to all src/**/implementation.cpp files"""
|
|
274
|
-
impl_files = glob.glob(os.path.join(repo_root, 'src', '**', 'implementation.cpp'), recursive=True)
|
|
275
|
-
# Exclude src/implementation.cpp as it's handled separately
|
|
276
|
-
impl_files = [f for f in impl_files if os.path.dirname(f) != os.path.join(repo_root, 'src')]
|
|
277
|
-
print(f"Found {len(impl_files)} implementation.cpp files to update.")
|
|
278
|
-
|
|
279
|
-
for file_path in impl_files:
|
|
280
|
-
print(f"Updating {file_path}...")
|
|
281
|
-
add_to_impl_files(file_path, functions, feature_macro)
|
|
282
|
-
|
|
283
|
-
def add_declaration_to_all_impl_files(repo_root, feature_macro, functions):
|
|
284
|
-
"""Add declarations to all src/simdutf/**/implementation.h files"""
|
|
285
|
-
impl_files = glob.glob(os.path.join(repo_root, 'src/simdutf', '**', 'implementation.h'), recursive=True)
|
|
286
|
-
# Exclude src/implementation.cpp as it's handled separately
|
|
287
|
-
impl_files = [f for f in impl_files if os.path.dirname(f) != os.path.join(repo_root, 'src')]
|
|
288
|
-
print(f"Found {len(impl_files)} implementation.h files to update.")
|
|
289
|
-
|
|
290
|
-
for file_path in impl_files:
|
|
291
|
-
print(f"Updating declarations for {file_path}...")
|
|
292
|
-
add_declarations_to_impl_h(file_path, functions, feature_macro)
|
|
293
|
-
|
|
294
|
-
def main():
|
|
295
|
-
if len(sys.argv) != 2:
|
|
296
|
-
print("Usage: python add_function.py <signature_file>")
|
|
297
|
-
sys.exit(1)
|
|
298
|
-
|
|
299
|
-
script_dir = os.path.dirname(os.path.abspath(__file__))
|
|
300
|
-
repo_root = os.path.abspath(os.path.join(script_dir, '..'))
|
|
301
|
-
|
|
302
|
-
sig_file = sys.argv[1]
|
|
303
|
-
feature_macro, functions = read_signature_file(sig_file)
|
|
304
|
-
|
|
305
|
-
# Ensure all signatures have const
|
|
306
|
-
updated_functions = []
|
|
307
|
-
for doc, sig, name in functions:
|
|
308
|
-
if ' const ' not in sig:
|
|
309
|
-
sig = sig.replace(' noexcept', ' const noexcept')
|
|
310
|
-
updated_functions.append((doc, sig, name))
|
|
311
|
-
functions = updated_functions
|
|
312
|
-
|
|
313
|
-
if not feature_macro or not functions:
|
|
314
|
-
print("Error: Could not extract feature macro or functions.")
|
|
315
|
-
sys.exit(1)
|
|
316
|
-
|
|
317
|
-
#add_to_implementation_h(repo_root, feature_macro, functions)
|
|
318
|
-
#add_to_src_implementation_cpp(repo_root, feature_macro, functions)
|
|
319
|
-
#add_to_all_impl_files(repo_root, feature_macro, functions)
|
|
320
|
-
add_declaration_to_all_impl_files(repo_root, feature_macro, functions)
|
|
321
|
-
|
|
322
|
-
func_names = [name for _, _, name in functions]
|
|
323
|
-
print(f"Functions '{', '.join(func_names)}' added successfully.")
|
|
324
|
-
print("Please remember to implement the functions in the respective implementation.cpp files.")
|
|
325
|
-
print("Also, consider adding tests for the new functions.")
|
|
326
|
-
print("Run formatting tools to ensure code style consistency: ./scripts/clang_format_docker.sh ")
|
|
327
|
-
print("Done.")
|
|
328
|
-
|
|
329
|
-
if __name__ == '__main__':
|
|
330
|
-
main()
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
#
|
|
3
|
-
# runs a test to ensure amalagamation works
|
|
4
|
-
|
|
5
|
-
import subprocess
|
|
6
|
-
import tempfile
|
|
7
|
-
import argparse
|
|
8
|
-
import datetime
|
|
9
|
-
import itertools
|
|
10
|
-
import math
|
|
11
|
-
import random
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def test_one(args, features):
|
|
15
|
-
print(f"testing with these features enabled: {', '.join(features)}")
|
|
16
|
-
builddir = tempfile.TemporaryDirectory(delete=not args.keep_tmpdirs)
|
|
17
|
-
t0 = datetime.datetime.now()
|
|
18
|
-
subprocess.run(
|
|
19
|
-
[
|
|
20
|
-
"python3",
|
|
21
|
-
"singleheader/amalgamate.py",
|
|
22
|
-
"--source-dir",
|
|
23
|
-
"src",
|
|
24
|
-
"--include-dir",
|
|
25
|
-
"include",
|
|
26
|
-
"--output-dir",
|
|
27
|
-
builddir.name,
|
|
28
|
-
"--no-zip",
|
|
29
|
-
"--no-readme",
|
|
30
|
-
]
|
|
31
|
-
+ [f"--with-{feature}" for feature in features],
|
|
32
|
-
stdout=subprocess.DEVNULL,
|
|
33
|
-
check=True,
|
|
34
|
-
)
|
|
35
|
-
print(f"amalgamated in {builddir.name}")
|
|
36
|
-
if args.warnings:
|
|
37
|
-
warnings = [
|
|
38
|
-
"-Wall",
|
|
39
|
-
"-Wextra",
|
|
40
|
-
"-Werror",
|
|
41
|
-
"-Wno-error=unused-function",
|
|
42
|
-
"-Wno-error=unused-const-variable",
|
|
43
|
-
]
|
|
44
|
-
else:
|
|
45
|
-
warnings = []
|
|
46
|
-
subprocess.run(
|
|
47
|
-
[args.compiler, "-c", "simdutf.cpp", "-I", ".", f"-std=c++{args.standard}"]
|
|
48
|
-
+ warnings,
|
|
49
|
-
check=True,
|
|
50
|
-
cwd=builddir.name,
|
|
51
|
-
)
|
|
52
|
-
print(f"compiled in {builddir.name}")
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
allfeatures = ["utf8", "utf16", "utf32", "base64", "detect-enc", "ascii", "latin1"]
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
def test_combinations(args, include_count):
|
|
59
|
-
total = math.comb(len(allfeatures), include_count)
|
|
60
|
-
print(f"testing all {total} possible selections of {include_count} features")
|
|
61
|
-
for i, combo in enumerate(itertools.combinations(allfeatures, include_count)):
|
|
62
|
-
test_one(args, combo)
|
|
63
|
-
print(f"tested {i + 1} of {total}")
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
def generate_subset():
|
|
67
|
-
s = allfeatures
|
|
68
|
-
for subset in itertools.chain.from_iterable(
|
|
69
|
-
itertools.combinations(s, r) for r in range(len(s) + 1)
|
|
70
|
-
):
|
|
71
|
-
yield subset
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
def test_random(args, N):
|
|
75
|
-
subsets = [s for s in generate_subset()]
|
|
76
|
-
random.shuffle(subsets)
|
|
77
|
-
if N > 0 and N < len(subsets):
|
|
78
|
-
subsets = subsets[0:N]
|
|
79
|
-
total = len(subsets)
|
|
80
|
-
for i, subset in enumerate(subsets):
|
|
81
|
-
print(f"testing {i + 1} of {total} subsets: {subset}")
|
|
82
|
-
test_one(args, subset)
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
def main():
|
|
86
|
-
parser = argparse.ArgumentParser(
|
|
87
|
-
prog="amalgamation test", description="ensures that amalgamation works"
|
|
88
|
-
)
|
|
89
|
-
parser.add_argument("--standard", type=int, default=23)
|
|
90
|
-
parser.add_argument("--keep-tmpdirs", action="store_true")
|
|
91
|
-
parser.add_argument("--compiler", type=str, default="c++")
|
|
92
|
-
parser.add_argument("--warnings", action="store_true")
|
|
93
|
-
parser.add_argument(
|
|
94
|
-
"--test-implicit-all",
|
|
95
|
-
action="store_true",
|
|
96
|
-
help="test giving no features, meaning all features are implicitly on",
|
|
97
|
-
)
|
|
98
|
-
parser.add_argument(
|
|
99
|
-
"--test-explicit-all", action="store_true", help="test giving all features"
|
|
100
|
-
)
|
|
101
|
-
parser.add_argument(
|
|
102
|
-
"--test-singles", action="store_true", help="test one feature at a time"
|
|
103
|
-
)
|
|
104
|
-
parser.add_argument(
|
|
105
|
-
"--test-random",
|
|
106
|
-
type=int,
|
|
107
|
-
default=-1,
|
|
108
|
-
help="tests up to the given amount of random subsets. 0 means all. negative means don't do this.",
|
|
109
|
-
)
|
|
110
|
-
parser.add_argument(
|
|
111
|
-
"--test-pairs", action="store_true", help="tests all pairs of features"
|
|
112
|
-
)
|
|
113
|
-
parser.add_argument(
|
|
114
|
-
"--test-triplets", action="store_true", help="tests all triplets of features"
|
|
115
|
-
)
|
|
116
|
-
parser.add_argument(
|
|
117
|
-
"--test-all-but-one",
|
|
118
|
-
action="store_true",
|
|
119
|
-
help="tests all possible feature sets with one disabled",
|
|
120
|
-
)
|
|
121
|
-
|
|
122
|
-
args = parser.parse_args()
|
|
123
|
-
|
|
124
|
-
if args.test_implicit_all:
|
|
125
|
-
print("test all enabled, implicitly")
|
|
126
|
-
test_one(args, [])
|
|
127
|
-
|
|
128
|
-
if args.test_explicit_all:
|
|
129
|
-
print("test all enabled, explicitly")
|
|
130
|
-
test_one(args, allfeatures)
|
|
131
|
-
|
|
132
|
-
if args.test_singles:
|
|
133
|
-
print("test one single feature at a time")
|
|
134
|
-
test_combinations(args, 1)
|
|
135
|
-
|
|
136
|
-
if args.test_random >= 0:
|
|
137
|
-
print("test random")
|
|
138
|
-
test_random(args, args.test_random)
|
|
139
|
-
|
|
140
|
-
if args.test_pairs:
|
|
141
|
-
print("test all pairs")
|
|
142
|
-
test_combinations(args, 2)
|
|
143
|
-
|
|
144
|
-
if args.test_triplets:
|
|
145
|
-
print("test all triplets")
|
|
146
|
-
test_combinations(args, 3)
|
|
147
|
-
|
|
148
|
-
if args.test_all_but_one:
|
|
149
|
-
print("test all but one single feature at a time")
|
|
150
|
-
test_combinations(args, len(allfeatures) - 1)
|
|
151
|
-
|
|
152
|
-
print("all seems to have gone well. bye bye!")
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
if __name__ == "__main__":
|
|
156
|
-
main()
|