libv8-node 18.16.0.0 → 23.6.1.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 58ade5c78bafd88500d858453de1dab5eb2bef6c609b05feef5789b728537baf
4
- data.tar.gz: 5e12dc0d3195ccaf2a67942b7c91026fe11ec6fca97b6b3bfe2890c7533dfee1
3
+ metadata.gz: 38468603a3a54757810d8053aa25d2467736691a7def9a983d279100e678c071
4
+ data.tar.gz: 4d1dad42c57ec900d65944a923fca313ca6f032992a86d7a2b4e07210d690f9c
5
5
  SHA512:
6
- metadata.gz: 7523c349c1c7b63ff43c0f6e2da30fd225a74e42c5445418b283309e8544c1fdd11ee84bddf2bba59dcda43e121a5858047160edf25b7859cd50eb08d443c64b
7
- data.tar.gz: 8f2328edd6496a19a571bc84ea785af383caf2688a1193d56b36622e0991ced74763f5ddd4f57c3c6dfc04e9034fb0bc7174b8da2efde0b7a2525497d6b48ba1
6
+ metadata.gz: eb945de4fde1b0ddbe3ac3bfe982859eae46882ec00c253c41ef9c353b150e42ce3551d40707993d93025ce0d5b945533214a7a5ece820c9f8f652403e0c1a82
7
+ data.tar.gz: 632d3d6e061ae78d10dafa995ff0f149a8bee3e720c53949d565f1cd80a430666bf8f601935276a9e4cfdffb4de511f5e22d50dadce087eed035beff8575592a
@@ -1,7 +1,10 @@
1
- module Libv8; end
1
+ # frozen_string_literal: true
2
+
3
+ module Libv8
4
+ end
2
5
 
3
6
  module Libv8::Node
4
- VERSION = '18.16.0.0'.freeze
5
- NODE_VERSION = '18.16.0'.freeze
6
- LIBV8_VERSION = '10.2.154.26'.freeze # from v8/include/v8-version.h
7
+ VERSION = '23.6.1.0'
8
+ NODE_VERSION = '23.6.1'
9
+ LIBV8_VERSION = '12.9.202.28' # from src/node-.../deps/v8/include/v8-version.h
7
10
  end
data/libexec/build-libv8 CHANGED
@@ -17,6 +17,8 @@ BUILDTYPE="${BUILDTYPE:-Release}"
17
17
 
18
18
  cd "${src}/node-v${version}"
19
19
 
20
+ # Maglev is disabled because of a suspected x64 snapshot regression in
21
+ # DoComputeOutputFrames
20
22
  configure_flags='--openssl-no-asm --without-npm --shared --with-intl=full-icu'
21
23
  eval "$("${libexec}/platform")"
22
24
 
@@ -41,4 +43,4 @@ if [ "$host_platform" != "$target_platform" ] && [ "${target_platform%%-*}" = "a
41
43
  fi
42
44
 
43
45
  export PATH="${PWD}/out/tools/bin:${PATH}"
44
- make -j"${NJOBS}" -C out BUILDTYPE="${BUILDTYPE}" V=0
46
+ make -j"${NJOBS}" -C out BUILDTYPE="${BUILDTYPE}" V=0 CC=clang CC.host=clang CXX=clang++ CXX.host=clang++
data/libexec/extract-node CHANGED
@@ -29,17 +29,6 @@ extract "${src}" "${src}/node-v${version}.tar.gz"
29
29
 
30
30
  cd "${src}/node-v${version}"
31
31
 
32
- #patch -p1 < "${top}"/patch/gyp-libv8_monolith.patch
33
- #patch -p1 < "${top}"/patch/py2-icutrim.patch
34
- patch -p1 < "${top}"/patch/py2-genv8constants.patch
35
-
36
- # TODO: the following still fails on py3 so the above one forcing py2 is needed
37
- # patch -p1 < ../../py3-genv8constants.patch
38
- #
39
- # This is the error:
40
- #
41
- # Traceback (most recent call last):
42
- # File "tools/genv8constants.py", line 99, in <module>
43
- # curr_val += int('0x%s' % octetstr, 16) << (curr_octet * 8)
44
- # ValueError: invalid literal for int() with base 16: "0xb'04 '"
45
- # node_dtrace_ustack.target.mk:13: recipe for target '/usbkey/user_home/vagrant/ruby-libv8-node/src/node-14.14.0/out/Release/obj/gen/v8constants.h' failed
32
+ patch -p1 < "${top}"/patch/v8-std-is-trivially-destructible.patch
33
+ patch -p1 < "${top}"/patch/v8-disable-madv-dontfork.patch
34
+ patch -p1 < "${top}"/patch/v8-disable-pkey.patch
data/libexec/inject-libv8 CHANGED
@@ -56,7 +56,9 @@ for lib in libv8_monolith.a; do
56
56
  "$AR" "$AREXTRACTFLAGS" "$BASEDIR/out/${BUILDTYPE}/$lib"
57
57
 
58
58
  # strip all objects
59
- "$FIND" -type f -exec "$STRIP" -Sx {} +
59
+ if [ "$BUILDTYPE" = "Release" ]; then
60
+ "$FIND" -type f -exec "$STRIP" -Sx {} +
61
+ fi
60
62
 
61
63
  # rebuild the archive
62
64
  "$FIND" -type f -exec "$AR" "$ARCOLLECTFLAGS" "../$lib" {} +
data/libexec/platform CHANGED
@@ -98,10 +98,10 @@ if [ "${host_platform}" != "${target_platform}" ]; then
98
98
  configure_flags='--dest-cpu=arm --cross-compiling --dest-os=linux --with-arm-float-abi=hard --with-arm-fpu=neon'
99
99
  ;;
100
100
  x86_64-*linux*)
101
- CC='x86_64-linux-gnu-gcc'
102
- CXX='x86_64-linux-gnu-g++'
103
- CC_host='gcc'
104
- CXX_host='g++'
101
+ CC='clang -arch x86_64'
102
+ CXX='clang++ -arch x86_64'
103
+ CC_host='clang'
104
+ CXX_host='clang++'
105
105
  STRIP='x86_64-linux-gnu-strip'
106
106
  configure_flags='--dest-cpu=x86_64 --cross-compiling --dest-os=linux'
107
107
  ;;
@@ -0,0 +1,16 @@
1
+ diff --git a/tools/v8_gypfiles/features.gypi b/tools/v8_gypfiles/features.gypi
2
+ index 6e21dac6d7..bcf022fb28 100644
3
+ --- a/tools/v8_gypfiles/features.gypi
4
+ +++ b/tools/v8_gypfiles/features.gypi
5
+ @@ -73,7 +73,10 @@
6
+ }, {
7
+ 'v8_enable_etw_stack_walking': 0,
8
+ }],
9
+ - ['OS=="linux"', {
10
+ + # Disable madvise(MADV_DONTFORK), it's a great optimization for programs
11
+ + # that fork & exec but not for programs that fork and keep running.
12
+ + # It makes mini_racer's test/test_forking.rb test segfault.
13
+ + ['False and OS=="linux"', {
14
+ # Sets -dV8_ENABLE_PRIVATE_MAPPING_FORK_OPTIMIZATION.
15
+ #
16
+ # This flag speeds up the performance of fork/execve on Linux systems for
@@ -0,0 +1,17 @@
1
+ diff --git a/deps/v8/src/base/build_config.h b/deps/v8/src/base/build_config.h
2
+ index 9ed4c8f102..dfca698506 100644
3
+ --- a/deps/v8/src/base/build_config.h
4
+ +++ b/deps/v8/src/base/build_config.h
5
+ @@ -35,11 +35,8 @@
6
+ #define V8_HAS_PTHREAD_JIT_WRITE_PROTECT 0
7
+ #endif
8
+
9
+ -#if defined(V8_OS_LINUX) && defined(V8_HOST_ARCH_X64)
10
+ -#define V8_HAS_PKU_JIT_WRITE_PROTECT 1
11
+ -#else
12
+ +// disabled, see https://issues.chromium.org/issues/360909072
13
+ #define V8_HAS_PKU_JIT_WRITE_PROTECT 0
14
+ -#endif
15
+
16
+ #if defined(V8_TARGET_ARCH_IA32) || defined(V8_TARGET_ARCH_X64)
17
+ #define V8_TARGET_ARCH_STORES_RETURN_ADDRESS_ON_STACK true
@@ -0,0 +1,22 @@
1
+ diff --git a/deps/v8/src/base/macros.h b/deps/v8/src/base/macros.h
2
+ index d404b6120a..053ac0e5ba 100644
3
+ --- a/deps/v8/src/base/macros.h
4
+ +++ b/deps/v8/src/base/macros.h
5
+ @@ -173,7 +173,7 @@ namespace base {
6
+ // base::is_trivially_copyable will differ for these cases.
7
+ template <typename T>
8
+ struct is_trivially_copyable {
9
+ -#if V8_CC_MSVC || (__GNUC__ == 12 && __GNUC_MINOR__ <= 2)
10
+ +#if V8_CC_MSVC || (__GNUC__ == 12 && __GNUC_MINOR__ <= 2) || defined(__clang__)
11
+ // Unfortunately, MSVC 2015 is broken in that std::is_trivially_copyable can
12
+ // be false even though it should be true according to the standard.
13
+ // (status at 2018-02-26, observed on the msvc waterfall bot).
14
+ @@ -186,6 +186,8 @@ struct is_trivially_copyable {
15
+ // distributions, so the same polyfill is also used.
16
+ // See
17
+ // https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=aeba3e009b0abfccaf01797556445dbf891cc8dc
18
+ + //
19
+ + // The same is observed with at least clang 14 and 15.
20
+ static constexpr bool value =
21
+ // Copy constructor is trivial or deleted.
22
+ (std::is_trivially_copy_constructible<T>::value ||
data/sums/v19.9.0.sum ADDED
@@ -0,0 +1 @@
1
+ c9293eb40dff8e5f55ef8da7cf1b9fd71b4a6a513620d02bbd158936e85216f2
data/sums/v20.12.1.sum ADDED
@@ -0,0 +1 @@
1
+ b9bef0314e12773ef004368ee56a2db509a948d4170b9efb07441bac1f1407a0
data/sums/v20.2.0.sum ADDED
@@ -0,0 +1 @@
1
+ cd1b0eb67fffe83112034fbdc64b363287e017f835251702f041982633e4b6aa
data/sums/v21.7.2.sum ADDED
@@ -0,0 +1 @@
1
+ dc1b18771e7ed3da051fc2242806bfde5ae02b63fe7205e80156e92de8f8fa3d
data/sums/v22.13.1.sum ADDED
@@ -0,0 +1 @@
1
+ e7d5b1e84e7f3c3cebda81e2b138469eef41ba4ecf16a87fd15fc3f7afa3f701
data/sums/v22.5.1.sum ADDED
@@ -0,0 +1 @@
1
+ 4a1b383f6036def4bb183f18e71a10b58784db269f9953618418bbaf47692972
data/sums/v22.6.0.sum ADDED
@@ -0,0 +1 @@
1
+ af4a8747651385515163db5da0d2e217da15cf7c832672b234128ed5118f086d
data/sums/v22.7.0.sum ADDED
@@ -0,0 +1 @@
1
+ 7a7c99282d59866d971b2da12c99596cb15782b9c3efe2e2146390c14f4d490e
data/sums/v22.9.0.sum ADDED
@@ -0,0 +1 @@
1
+ 296854aa1dca140b0462c2415637d0419e42af91114538a7e6fdf623971a6833
data/sums/v23.6.1.sum ADDED
@@ -0,0 +1 @@
1
+ 35c0f7957085083071fcf01c7eaea953fba98f17afc4d7c189e3ef56925b453c
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libv8-node
3
3
  version: !ruby/object:Gem::Version
4
- version: 18.16.0.0
4
+ version: 23.6.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-26 00:00:00.000000000 Z
11
+ date: 2025-02-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -63,10 +63,9 @@ files:
63
63
  - libexec/inject-libv8
64
64
  - libexec/metadata
65
65
  - libexec/platform
66
- - patch/gyp-libv8_monolith.patch
67
- - patch/py2-genv8constants.patch
68
- - patch/py2-icutrim.patch
69
- - patch/py3-genv8constants.patch
66
+ - patch/v8-disable-madv-dontfork.patch
67
+ - patch/v8-disable-pkey.patch
68
+ - patch/v8-std-is-trivially-destructible.patch
70
69
  - sums/v16.10.0.sum
71
70
  - sums/v16.11.1.sum
72
71
  - sums/v16.3.0.sum
@@ -79,8 +78,17 @@ files:
79
78
  - sums/v17.3.1.sum
80
79
  - sums/v17.9.1.sum
81
80
  - sums/v18.13.0.sum
82
- - sums/v18.16.0.sum
83
81
  - sums/v18.8.0.sum
82
+ - sums/v19.9.0.sum
83
+ - sums/v20.12.1.sum
84
+ - sums/v20.2.0.sum
85
+ - sums/v21.7.2.sum
86
+ - sums/v22.13.1.sum
87
+ - sums/v22.5.1.sum
88
+ - sums/v22.6.0.sum
89
+ - sums/v22.7.0.sum
90
+ - sums/v22.9.0.sum
91
+ - sums/v23.6.1.sum
84
92
  homepage: https://github.com/rubyjs/libv8-node
85
93
  licenses:
86
94
  - MIT
@@ -101,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
101
109
  - !ruby/object:Gem::Version
102
110
  version: '0'
103
111
  requirements: []
104
- rubygems_version: 3.3.20
112
+ rubygems_version: 3.3.26
105
113
  signing_key:
106
114
  specification_version: 4
107
115
  summary: Node.JS's V8 JavaScript engine
@@ -1,44 +0,0 @@
1
- --- a/node.gyp 2020-11-04 15:55:48.000000000 +0100
2
- +++ b/node.gyp 2020-11-04 15:55:51.000000000 +0100
3
- @@ -1467,6 +1467,16 @@
4
- }],
5
- ],
6
- }, # node_mksnapshot
7
- + {
8
- + 'target_name': 'libv8_monolith',
9
- + 'type': 'none',
10
- + 'includes': [
11
- + 'node.gypi'
12
- + ],
13
- + #'dependencies': [
14
- + # 'tools/v8_gypfiles/v8.gyp:v8_monolith',
15
- + #],
16
- + },
17
- ], # end targets
18
-
19
- 'conditions': [
20
- --- a/tools/v8_gypfiles/v8.gyp 2020-11-04 16:34:06.000000000 +0100
21
- +++ b/tools/v8_gypfiles/v8.gyp 2020-11-04 16:34:10.000000000 +0100
22
- @@ -1726,5 +1726,21 @@
23
- '<(V8_ROOT)/third_party/zlib/google/compression_utils_portable.h',
24
- ],
25
- }, # v8_zlib
26
- + {
27
- + 'target_name': 'v8_monolith',
28
- + 'type': 'static_library',
29
- + 'sources': [
30
- + '<!@pymod_do_main(GN-scraper "<(V8_ROOT)/BUILD.gn" "\\"v8.*?sources = ")',
31
- + '<!@pymod_do_main(GN-scraper "<(V8_ROOT)/BUILD.gn" "\\"v8_libbase.*?sources = ")',
32
- + '<!@pymod_do_main(GN-scraper "<(V8_ROOT)/BUILD.gn" "\\"v8_libplatform.*?sources = ")',
33
- + '<!@pymod_do_main(GN-scraper "<(V8_ROOT)/BUILD.gn" "\\"v8_libsampler.*?sources = ")',
34
- + ],
35
- + 'dependencies': [
36
- + 'v8',
37
- + 'v8_libbase',
38
- + 'v8_libplatform',
39
- + 'v8_libsampler',
40
- + ],
41
- + }
42
- ],
43
- }
44
-
@@ -1,10 +0,0 @@
1
- --- a/tools/genv8constants.py 2020-11-04 09:49:14.000000000 +0100
2
- +++ b/tools/genv8constants.py 2020-11-04 12:40:46.000000000 +0100
3
- @@ -1,4 +1,4 @@
4
- -#!/usr/bin/env python
5
- +#!/usr/bin/env python2
6
-
7
- #
8
- # genv8constants.py output_file libv8_base.a
9
-
10
-
@@ -1,14 +0,0 @@
1
- --- a/tools/icu/icutrim.py 2020-11-03 16:54:23.000000000 +0100
2
- +++ b/tools/icu/icutrim.py 2020-11-03 16:54:27.000000000 +0100
3
- @@ -316,7 +316,10 @@
4
- erritems = fi.readlines()
5
- fi.close()
6
- #Item zone/zh_Hant_TW.res depends on missing item zone/zh_Hant.res
7
- - pat = re.compile(bytes(r"^Item ([^ ]+) depends on missing item ([^ ]+).*", 'utf-8'))
8
- + if str == bytes:
9
- + pat = re.compile(bytes(r"^Item ([^ ]+) depends on missing item ([^ ]+).*"))
10
- + else:
11
- + pat = re.compile(bytes(r"^Item ([^ ]+) depends on missing item ([^ ]+).*", 'utf-8'))
12
- for i in range(len(erritems)):
13
- line = erritems[i].strip()
14
- m = pat.match(line)
@@ -1,20 +0,0 @@
1
- --- a/tools/genv8constants.py 2020-11-04 09:49:14.000000000 +0100
2
- +++ b/tools/genv8constants.py 2020-11-04 09:49:25.000000000 +0100
3
- @@ -33,9 +33,14 @@
4
-
5
- sys.exit()
6
-
7
- -pattern = re.compile(bytes('([0-9a-fA-F]{8}|[0-9a-fA-F]{16}) <(.*)>:'))
8
- -v8dbg = re.compile(bytes('^v8dbg.*$'))
9
- -numpattern = re.compile(bytes('^[0-9a-fA-F]{2} $'))
10
- +if str == bytes:
11
- + pattern = re.compile(bytes('([0-9a-fA-F]{8}|[0-9a-fA-F]{16}) <(.*)>:'))
12
- + v8dbg = re.compile(bytes('^v8dbg.*$'))
13
- + numpattern = re.compile(bytes('^[0-9a-fA-F]{2} $'))
14
- +else:
15
- + pattern = re.compile(bytes('([0-9a-fA-F]{8}|[0-9a-fA-F]{16}) <(.*)>:', 'utf-8'))
16
- + v8dbg = re.compile(bytes('^v8dbg.*$', 'utf-8'))
17
- + numpattern = re.compile(bytes('^[0-9a-fA-F]{2} $', 'utf-8'))
18
- octets = 4
19
-
20
- outfile.write("""
data/sums/v18.16.0.sum DELETED
@@ -1 +0,0 @@
1
- 6a4f5c5d76e5c50cef673099e56f19bc3266ae363f56ca0ab77dd2f3c5088c6d