Skip to content

Commit

Permalink
deps: update ada to 2.6.10
Browse files Browse the repository at this point in the history
PR-URL: nodejs/node#49984
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
  • Loading branch information
sercher committed Apr 25, 2024
1 parent f0f77c1 commit de64671
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 13 deletions.
34 changes: 27 additions & 7 deletions graal-nodejs/deps/ada/ada.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* auto-generated on 2023-09-29 13:28:16 -0400. Do not edit! */
/* auto-generated on 2023-09-30 20:34:30 -0400. Do not edit! */
/* begin file src/ada.cpp */
#include "ada.h"
/* begin file src/checkers.cpp */
Expand Down Expand Up @@ -9810,6 +9810,17 @@ constexpr bool to_lower_ascii(char* input, size_t length) noexcept {
#if ADA_NEON
ada_really_inline bool has_tabs_or_newline(
std::string_view user_input) noexcept {
// first check for short strings in which case we do it naively.
if (user_input.size() < 16) { // slow path
for (size_t i = 0; i < user_input.size(); i++) {
if (user_input[i] == '\r' || user_input[i] == '\n' ||
user_input[i] == '\t') {
return true;
}
}
return false;
}
// fast path for long strings (expected to be common)
size_t i = 0;
const uint8x16_t mask1 = vmovq_n_u8('\r');
const uint8x16_t mask2 = vmovq_n_u8('\n');
Expand All @@ -9822,9 +9833,8 @@ ada_really_inline bool has_tabs_or_newline(
vceqq_u8(word, mask3));
}
if (i < user_input.size()) {
uint8_t buffer[16]{};
memcpy(buffer, user_input.data() + i, user_input.size() - i);
uint8x16_t word = vld1q_u8((const uint8_t*)user_input.data() + i);
uint8x16_t word =
vld1q_u8((const uint8_t*)user_input.data() + user_input.length() - 16);
running = vorrq_u8(vorrq_u8(running, vorrq_u8(vceqq_u8(word, mask1),
vceqq_u8(word, mask2))),
vceqq_u8(word, mask3));
Expand All @@ -9834,6 +9844,17 @@ ada_really_inline bool has_tabs_or_newline(
#elif ADA_SSE2
ada_really_inline bool has_tabs_or_newline(
std::string_view user_input) noexcept {
// first check for short strings in which case we do it naively.
if (user_input.size() < 16) { // slow path
for (size_t i = 0; i < user_input.size(); i++) {
if (user_input[i] == '\r' || user_input[i] == '\n' ||
user_input[i] == '\t') {
return true;
}
}
return false;
}
// fast path for long strings (expected to be common)
size_t i = 0;
const __m128i mask1 = _mm_set1_epi8('\r');
const __m128i mask2 = _mm_set1_epi8('\n');
Expand All @@ -9847,9 +9868,8 @@ ada_really_inline bool has_tabs_or_newline(
_mm_cmpeq_epi8(word, mask3));
}
if (i < user_input.size()) {
alignas(16) uint8_t buffer[16]{};
memcpy(buffer, user_input.data() + i, user_input.size() - i);
__m128i word = _mm_load_si128((const __m128i*)buffer);
__m128i word = _mm_loadu_si128(
(const __m128i*)(user_input.data() + user_input.length() - 16));
running = _mm_or_si128(
_mm_or_si128(running, _mm_or_si128(_mm_cmpeq_epi8(word, mask1),
_mm_cmpeq_epi8(word, mask2))),
Expand Down
6 changes: 3 additions & 3 deletions graal-nodejs/deps/ada/ada.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* auto-generated on 2023-09-29 13:28:16 -0400. Do not edit! */
/* auto-generated on 2023-09-30 20:34:30 -0400. Do not edit! */
/* begin file include/ada.h */
/**
* @file ada.h
Expand Down Expand Up @@ -6932,14 +6932,14 @@ inline void url_search_params::sort() {
#ifndef ADA_ADA_VERSION_H
#define ADA_ADA_VERSION_H

#define ADA_VERSION "2.6.9"
#define ADA_VERSION "2.6.10"

namespace ada {

enum {
ADA_VERSION_MAJOR = 2,
ADA_VERSION_MINOR = 6,
ADA_VERSION_REVISION = 9,
ADA_VERSION_REVISION = 10,
};

} // namespace ada
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ All dependencies are located within the `deps` directory.
This a list of all the dependencies:

* [acorn][]
* [ada 2.6.9][]
* [ada 2.6.10][]
* [base64][]
* [brotli][]
* [c-ares][]
Expand Down Expand Up @@ -148,7 +148,7 @@ The [acorn](https://github.com/acornjs/acorn) dependency is a JavaScript parser.
[acorn-walk](https://github.com/acornjs/acorn/tree/master/acorn-walk) is
an abstract syntax tree walker for the ESTree format.

### ada 2.6.9
### ada 2.6.10

The [ada](https://github.com/ada-url/ada) dependency is a
fast and spec-compliant URL parser written in C++.
Expand Down Expand Up @@ -312,7 +312,7 @@ it comes from the Chromium team's zlib fork which incorporated
performance improvements not currently available in standard zlib.

[acorn]: #acorn
[ada 2.6.9]: #ada-269
[ada 2.6.10]: #ada-2610
[base64]: #base64
[brotli]: #brotli
[c-ares]: #c-ares
Expand Down

0 comments on commit de64671

Please sign in to comment.