libv8-node 15.14.0.1-aarch64-linux-musl → 16.17.0.0-aarch64-linux-musl
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 +4 -4
- data/ext/libv8-node/location.rb +1 -1
- data/ext/libv8-node/paths.rb +5 -1
- data/lib/libv8/node/version.rb +3 -3
- data/vendor/v8/{out.gn → aarch64-linux-musl}/libv8/obj/libv8_monolith.a +0 -0
- data/vendor/v8/include/cppgc/allocation.h +105 -45
- data/vendor/v8/include/cppgc/common.h +9 -6
- data/vendor/v8/include/cppgc/cross-thread-persistent.h +413 -0
- data/vendor/v8/include/cppgc/custom-space.h +37 -2
- data/vendor/v8/include/cppgc/default-platform.h +47 -48
- data/vendor/v8/include/cppgc/ephemeron-pair.h +30 -0
- data/vendor/v8/include/cppgc/explicit-management.h +82 -0
- data/vendor/v8/include/cppgc/garbage-collected.h +4 -3
- data/vendor/v8/include/cppgc/heap-consistency.h +253 -0
- data/vendor/v8/include/cppgc/heap-state.h +70 -0
- data/vendor/v8/include/cppgc/heap-statistics.h +120 -0
- data/vendor/v8/include/cppgc/heap.h +68 -6
- data/vendor/v8/include/cppgc/internal/api-constants.h +3 -3
- data/vendor/v8/include/cppgc/internal/caged-heap-local-data.h +2 -1
- data/vendor/v8/include/cppgc/internal/compiler-specific.h +2 -2
- data/vendor/v8/include/cppgc/internal/gc-info.h +44 -13
- data/vendor/v8/include/cppgc/internal/name-trait.h +111 -0
- data/vendor/v8/include/cppgc/internal/persistent-node.h +58 -2
- data/vendor/v8/include/cppgc/internal/pointer-policies.h +69 -28
- data/vendor/v8/include/cppgc/internal/prefinalizer-handler.h +1 -1
- data/vendor/v8/include/cppgc/internal/write-barrier.h +390 -35
- data/vendor/v8/include/cppgc/liveness-broker.h +11 -2
- data/vendor/v8/include/cppgc/macros.h +2 -0
- data/vendor/v8/include/cppgc/member.h +87 -25
- data/vendor/v8/include/cppgc/name-provider.h +65 -0
- data/vendor/v8/include/cppgc/object-size-trait.h +58 -0
- data/vendor/v8/include/cppgc/persistent.h +40 -10
- data/vendor/v8/include/cppgc/platform.h +49 -25
- data/vendor/v8/include/cppgc/prefinalizer.h +1 -1
- data/vendor/v8/include/cppgc/process-heap-statistics.h +36 -0
- data/vendor/v8/include/cppgc/sentinel-pointer.h +32 -0
- data/vendor/v8/include/cppgc/source-location.h +2 -1
- data/vendor/v8/include/cppgc/testing.h +99 -0
- data/vendor/v8/include/cppgc/trace-trait.h +8 -3
- data/vendor/v8/include/cppgc/type-traits.h +157 -19
- data/vendor/v8/include/cppgc/visitor.h +194 -28
- data/vendor/v8/include/libplatform/libplatform.h +11 -0
- data/vendor/v8/include/libplatform/v8-tracing.h +2 -0
- data/vendor/v8/include/v8-cppgc.h +258 -159
- data/vendor/v8/include/v8-fast-api-calls.h +603 -155
- data/vendor/v8/include/v8-inspector.h +22 -4
- data/vendor/v8/include/v8-internal.h +111 -27
- data/vendor/v8/include/v8-metrics.h +77 -8
- data/vendor/v8/include/v8-platform.h +47 -22
- data/vendor/v8/include/v8-profiler.h +75 -11
- data/vendor/v8/include/v8-unwinder-state.h +30 -0
- data/vendor/v8/include/v8-util.h +1 -1
- data/vendor/v8/include/v8-version.h +4 -4
- data/vendor/v8/include/v8.h +1196 -642
- data/vendor/v8/include/v8config.h +87 -11
- metadata +17 -5
- data/vendor/v8/include/cppgc/internal/process-heap.h +0 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3484f69fe9e2395bf9e4df8e5ecc87676730890456a6d3352c634503ce04c896
|
4
|
+
data.tar.gz: 2aa5b2efce031f587b7932028170fb52f9af3928946a0f3af6d3a0a2a4691a11
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2e91ed5afe7482ec3efc49b1f8bd61424923a6fb7081072223ac7a453225db4e99f6b3e2008aad7c2596ca05eab12eec4cc65f54f980b53769932d773e5a7b22
|
7
|
+
data.tar.gz: 7d26268bb0cc47023199a8d6b5909b641fbaa23ea698f66f9c2bab506405b912bc2a138c371a8252ef8edef1218f2eecf89d135d4e6b738920bf55455034e235
|
data/ext/libv8-node/location.rb
CHANGED
@@ -18,7 +18,7 @@ module Libv8::Node
|
|
18
18
|
|
19
19
|
def self.load!
|
20
20
|
File.open(Pathname(__FILE__).dirname.join('.location.yml')) do |f|
|
21
|
-
YAML.load(f) # rubocop:disable Security/YAMLLoad
|
21
|
+
YAML.respond_to?(:unsafe_load) ? YAML.unsafe_load(f) : YAML.load(f) # rubocop:disable Security/YAMLLoad
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
data/ext/libv8-node/paths.rb
CHANGED
@@ -13,12 +13,16 @@ module Libv8::Node
|
|
13
13
|
|
14
14
|
def object_paths
|
15
15
|
[Shellwords.escape(File.join(vendored_source_path,
|
16
|
-
|
16
|
+
platform,
|
17
17
|
'libv8',
|
18
18
|
'obj',
|
19
19
|
"libv8_monolith.#{config['LIBEXT']}"))]
|
20
20
|
end
|
21
21
|
|
22
|
+
def platform
|
23
|
+
Gem::Platform.local.tap { |p| RUBY_PLATFORM =~ /musl/ && p.version.nil? && p.instance_eval { @version = 'musl' } }.to_s.gsub(/-darwin-?\d+/, '-darwin')
|
24
|
+
end
|
25
|
+
|
22
26
|
def config
|
23
27
|
RbConfig::MAKEFILE_CONFIG
|
24
28
|
end
|
data/lib/libv8/node/version.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Libv8; end
|
2
2
|
|
3
3
|
module Libv8::Node
|
4
|
-
VERSION = '
|
5
|
-
NODE_VERSION = '
|
6
|
-
LIBV8_VERSION = '
|
4
|
+
VERSION = '16.17.0.0'.freeze
|
5
|
+
NODE_VERSION = '16.17.0'.freeze
|
6
|
+
LIBV8_VERSION = '9.4.146.26'.freeze # from v8/include/v8-version.h
|
7
7
|
end
|
Binary file
|
@@ -5,24 +5,21 @@
|
|
5
5
|
#ifndef INCLUDE_CPPGC_ALLOCATION_H_
|
6
6
|
#define INCLUDE_CPPGC_ALLOCATION_H_
|
7
7
|
|
8
|
-
#include <stdint.h>
|
9
|
-
|
10
8
|
#include <atomic>
|
9
|
+
#include <cstddef>
|
10
|
+
#include <cstdint>
|
11
|
+
#include <new>
|
12
|
+
#include <type_traits>
|
13
|
+
#include <utility>
|
11
14
|
|
12
15
|
#include "cppgc/custom-space.h"
|
13
|
-
#include "cppgc/garbage-collected.h"
|
14
16
|
#include "cppgc/internal/api-constants.h"
|
15
17
|
#include "cppgc/internal/gc-info.h"
|
18
|
+
#include "cppgc/type-traits.h"
|
19
|
+
#include "v8config.h" // NOLINT(build/include_directory)
|
16
20
|
|
17
21
|
namespace cppgc {
|
18
22
|
|
19
|
-
template <typename T>
|
20
|
-
class MakeGarbageCollectedTraitBase;
|
21
|
-
|
22
|
-
namespace internal {
|
23
|
-
class ObjectAllocator;
|
24
|
-
} // namespace internal
|
25
|
-
|
26
23
|
/**
|
27
24
|
* AllocationHandle is used to allocate garbage-collected objects.
|
28
25
|
*/
|
@@ -39,11 +36,32 @@ class V8_EXPORT MakeGarbageCollectedTraitInternal {
|
|
39
36
|
const_cast<uint16_t*>(reinterpret_cast<const uint16_t*>(
|
40
37
|
reinterpret_cast<const uint8_t*>(payload) -
|
41
38
|
api_constants::kFullyConstructedBitFieldOffsetFromPayload)));
|
42
|
-
|
43
|
-
|
44
|
-
atomic_mutable_bitfield->store(value, std::memory_order_release);
|
39
|
+
atomic_mutable_bitfield->fetch_or(api_constants::kFullyConstructedBitMask,
|
40
|
+
std::memory_order_release);
|
45
41
|
}
|
46
42
|
|
43
|
+
template <typename U, typename CustomSpace>
|
44
|
+
struct SpacePolicy {
|
45
|
+
static void* Allocate(AllocationHandle& handle, size_t size) {
|
46
|
+
// Custom space.
|
47
|
+
static_assert(std::is_base_of<CustomSpaceBase, CustomSpace>::value,
|
48
|
+
"Custom space must inherit from CustomSpaceBase.");
|
49
|
+
return MakeGarbageCollectedTraitInternal::Allocate(
|
50
|
+
handle, size, internal::GCInfoTrait<U>::Index(),
|
51
|
+
CustomSpace::kSpaceIndex);
|
52
|
+
}
|
53
|
+
};
|
54
|
+
|
55
|
+
template <typename U>
|
56
|
+
struct SpacePolicy<U, void> {
|
57
|
+
static void* Allocate(AllocationHandle& handle, size_t size) {
|
58
|
+
// Default space.
|
59
|
+
return MakeGarbageCollectedTraitInternal::Allocate(
|
60
|
+
handle, size, internal::GCInfoTrait<U>::Index());
|
61
|
+
}
|
62
|
+
};
|
63
|
+
|
64
|
+
private:
|
47
65
|
static void* Allocate(cppgc::AllocationHandle& handle, size_t size,
|
48
66
|
GCInfoIndex index);
|
49
67
|
static void* Allocate(cppgc::AllocationHandle& handle, size_t size,
|
@@ -65,26 +83,12 @@ template <typename T>
|
|
65
83
|
class MakeGarbageCollectedTraitBase
|
66
84
|
: private internal::MakeGarbageCollectedTraitInternal {
|
67
85
|
private:
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
return internal::MakeGarbageCollectedTraitInternal::Allocate(
|
75
|
-
handle, size, internal::GCInfoTrait<T>::Index(),
|
76
|
-
CustomSpace::kSpaceIndex);
|
77
|
-
}
|
78
|
-
};
|
79
|
-
|
80
|
-
template <typename U>
|
81
|
-
struct SpacePolicy<U, void> {
|
82
|
-
static void* Allocate(AllocationHandle& handle, size_t size) {
|
83
|
-
// Default space.
|
84
|
-
return internal::MakeGarbageCollectedTraitInternal::Allocate(
|
85
|
-
handle, size, internal::GCInfoTrait<T>::Index());
|
86
|
-
}
|
87
|
-
};
|
86
|
+
static_assert(internal::IsGarbageCollectedType<T>::value,
|
87
|
+
"T needs to be a garbage collected object");
|
88
|
+
static_assert(!IsGarbageCollectedWithMixinTypeV<T> ||
|
89
|
+
sizeof(T) <=
|
90
|
+
internal::api_constants::kLargeObjectSizeThreshold,
|
91
|
+
"GarbageCollectedMixin may not be a large object");
|
88
92
|
|
89
93
|
protected:
|
90
94
|
/**
|
@@ -95,9 +99,15 @@ class MakeGarbageCollectedTraitBase
|
|
95
99
|
* \param size The size that should be reserved for the object.
|
96
100
|
* \returns the memory to construct an object of type T on.
|
97
101
|
*/
|
98
|
-
static void* Allocate(AllocationHandle& handle, size_t size) {
|
99
|
-
|
100
|
-
|
102
|
+
V8_INLINE static void* Allocate(AllocationHandle& handle, size_t size) {
|
103
|
+
static_assert(
|
104
|
+
std::is_base_of<typename T::ParentMostGarbageCollectedType, T>::value,
|
105
|
+
"U of GarbageCollected<U> must be a base of T. Check "
|
106
|
+
"GarbageCollected<T> base class inheritance.");
|
107
|
+
return SpacePolicy<
|
108
|
+
typename internal::GCInfoFolding<
|
109
|
+
T, typename T::ParentMostGarbageCollectedType>::ResultType,
|
110
|
+
typename SpaceTrait<T>::Space>::Allocate(handle, size);
|
101
111
|
}
|
102
112
|
|
103
113
|
/**
|
@@ -106,39 +116,70 @@ class MakeGarbageCollectedTraitBase
|
|
106
116
|
*
|
107
117
|
* \param payload The base pointer the object is allocated at.
|
108
118
|
*/
|
109
|
-
static void MarkObjectAsFullyConstructed(const void* payload) {
|
119
|
+
V8_INLINE static void MarkObjectAsFullyConstructed(const void* payload) {
|
110
120
|
internal::MakeGarbageCollectedTraitInternal::MarkObjectAsFullyConstructed(
|
111
121
|
payload);
|
112
122
|
}
|
113
123
|
};
|
114
124
|
|
125
|
+
/**
|
126
|
+
* Passed to MakeGarbageCollected to specify how many bytes should be appended
|
127
|
+
* to the allocated object.
|
128
|
+
*
|
129
|
+
* Example:
|
130
|
+
* \code
|
131
|
+
* class InlinedArray final : public GarbageCollected<InlinedArray> {
|
132
|
+
* public:
|
133
|
+
* explicit InlinedArray(size_t bytes) : size(bytes), byte_array(this + 1) {}
|
134
|
+
* void Trace(Visitor*) const {}
|
135
|
+
|
136
|
+
* size_t size;
|
137
|
+
* char* byte_array;
|
138
|
+
* };
|
139
|
+
*
|
140
|
+
* auto* inlined_array = MakeGarbageCollected<InlinedArray(
|
141
|
+
* GetAllocationHandle(), AdditionalBytes(4), 4);
|
142
|
+
* for (size_t i = 0; i < 4; i++) {
|
143
|
+
* Process(inlined_array->byte_array[i]);
|
144
|
+
* }
|
145
|
+
* \endcode
|
146
|
+
*/
|
147
|
+
struct AdditionalBytes {
|
148
|
+
constexpr explicit AdditionalBytes(size_t bytes) : value(bytes) {}
|
149
|
+
const size_t value;
|
150
|
+
};
|
151
|
+
|
115
152
|
/**
|
116
153
|
* Default trait class that specifies how to construct an object of type T.
|
117
154
|
* Advanced users may override how an object is constructed using the utilities
|
118
155
|
* that are provided through MakeGarbageCollectedTraitBase.
|
119
156
|
*
|
120
157
|
* Any trait overriding construction must
|
121
|
-
* - allocate through MakeGarbageCollectedTraitBase<T>::Allocate
|
158
|
+
* - allocate through `MakeGarbageCollectedTraitBase<T>::Allocate`;
|
122
159
|
* - mark the object as fully constructed using
|
123
|
-
* MakeGarbageCollectedTraitBase<T>::MarkObjectAsFullyConstructed
|
160
|
+
* `MakeGarbageCollectedTraitBase<T>::MarkObjectAsFullyConstructed`;
|
124
161
|
*/
|
125
162
|
template <typename T>
|
126
163
|
class MakeGarbageCollectedTrait : public MakeGarbageCollectedTraitBase<T> {
|
127
164
|
public:
|
128
165
|
template <typename... Args>
|
129
166
|
static T* Call(AllocationHandle& handle, Args&&... args) {
|
130
|
-
static_assert(internal::IsGarbageCollectedType<T>::value,
|
131
|
-
"T needs to be a garbage collected object");
|
132
|
-
static_assert(
|
133
|
-
!internal::IsGarbageCollectedMixinType<T>::value ||
|
134
|
-
sizeof(T) <= internal::api_constants::kLargeObjectSizeThreshold,
|
135
|
-
"GarbageCollectedMixin may not be a large object");
|
136
167
|
void* memory =
|
137
168
|
MakeGarbageCollectedTraitBase<T>::Allocate(handle, sizeof(T));
|
138
169
|
T* object = ::new (memory) T(std::forward<Args>(args)...);
|
139
170
|
MakeGarbageCollectedTraitBase<T>::MarkObjectAsFullyConstructed(object);
|
140
171
|
return object;
|
141
172
|
}
|
173
|
+
|
174
|
+
template <typename... Args>
|
175
|
+
static T* Call(AllocationHandle& handle, AdditionalBytes additional_bytes,
|
176
|
+
Args&&... args) {
|
177
|
+
void* memory = MakeGarbageCollectedTraitBase<T>::Allocate(
|
178
|
+
handle, sizeof(T) + additional_bytes.value);
|
179
|
+
T* object = ::new (memory) T(std::forward<Args>(args)...);
|
180
|
+
MakeGarbageCollectedTraitBase<T>::MarkObjectAsFullyConstructed(object);
|
181
|
+
return object;
|
182
|
+
}
|
142
183
|
};
|
143
184
|
|
144
185
|
/**
|
@@ -168,6 +209,25 @@ T* MakeGarbageCollected(AllocationHandle& handle, Args&&... args) {
|
|
168
209
|
return object;
|
169
210
|
}
|
170
211
|
|
212
|
+
/**
|
213
|
+
* Constructs a managed object of type T where T transitively inherits from
|
214
|
+
* GarbageCollected. Created objects will have additional bytes appended to
|
215
|
+
* it. Allocated memory would suffice for `sizeof(T) + additional_bytes`.
|
216
|
+
*
|
217
|
+
* \param additional_bytes Denotes how many bytes to append to T.
|
218
|
+
* \param args List of arguments with which an instance of T will be
|
219
|
+
* constructed.
|
220
|
+
* \returns an instance of type T.
|
221
|
+
*/
|
222
|
+
template <typename T, typename... Args>
|
223
|
+
T* MakeGarbageCollected(AllocationHandle& handle,
|
224
|
+
AdditionalBytes additional_bytes, Args&&... args) {
|
225
|
+
T* object = MakeGarbageCollectedTrait<T>::Call(handle, additional_bytes,
|
226
|
+
std::forward<Args>(args)...);
|
227
|
+
PostConstructionCallbackTrait<T>::Call(object);
|
228
|
+
return object;
|
229
|
+
}
|
230
|
+
|
171
231
|
} // namespace cppgc
|
172
232
|
|
173
233
|
#endif // INCLUDE_CPPGC_ALLOCATION_H_
|
@@ -10,15 +10,18 @@
|
|
10
10
|
|
11
11
|
namespace cppgc {
|
12
12
|
|
13
|
-
|
13
|
+
/**
|
14
|
+
* Indicator for the stack state of the embedder.
|
15
|
+
*/
|
14
16
|
enum class EmbedderStackState {
|
17
|
+
/**
|
18
|
+
* Stack may contain interesting heap pointers.
|
19
|
+
*/
|
15
20
|
kMayContainHeapPointers,
|
21
|
+
/**
|
22
|
+
* Stack does not contain any interesting heap pointers.
|
23
|
+
*/
|
16
24
|
kNoHeapPointers,
|
17
|
-
kUnknown V8_ENUM_DEPRECATE_SOON("Use kMayContainHeapPointers") =
|
18
|
-
kMayContainHeapPointers,
|
19
|
-
kNonEmpty V8_ENUM_DEPRECATE_SOON("Use kMayContainHeapPointers") =
|
20
|
-
kMayContainHeapPointers,
|
21
|
-
kEmpty V8_ENUM_DEPRECATE_SOON("Use kNoHeapPointers") = kNoHeapPointers,
|
22
25
|
};
|
23
26
|
|
24
27
|
} // namespace cppgc
|