Compare commits

...

7 Commits

Author SHA1 Message Date
Jarred Sumner
48815f9a02 Update JSTranspiler.zig 2025-08-06 17:27:18 -07:00
Jarred Sumner
bd7006a977 Update runner.node.mjs 2025-08-06 06:36:48 -07:00
Jarred Sumner
a4ca847390 Update no-validate-exceptions.txt 2025-08-05 23:00:40 -07:00
Jarred Sumner
7a2656c726 Merge branch 'main' into jarred/mimalloc-simd 2025-08-05 22:27:13 -07:00
Jarred Sumner
0147cf8caf Update no-validate-exceptions.txt 2025-08-05 22:10:27 -07:00
Jarred Sumner
c082957916 Update runner.node.mjs 2025-08-05 22:06:26 -07:00
Jarred Sumner
f9d64e4432 Test if OOM happens when eager commit is disabled 2025-08-05 21:26:03 -07:00
4 changed files with 40 additions and 19 deletions

View File

@@ -64,6 +64,12 @@ if(ENABLE_VALGRIND)
list(APPEND MIMALLOC_CMAKE_ARGS -DMI_VALGRIND=ON)
endif()
# Enable SIMD optimizations when not building for baseline (older CPUs)
if(NOT ENABLE_BASELINE)
list(APPEND MIMALLOC_CMAKE_ARGS -DMI_OPT_ARCH=ON)
list(APPEND MIMALLOC_CMAKE_ARGS -DMI_OPT_SIMD=ON)
endif()
if(DEBUG)
if (ENABLE_ASAN)
set(MIMALLOC_LIBRARY mimalloc-asan-debug)

View File

@@ -82,6 +82,10 @@ function getNodeParallelTestTimeout(testPath) {
return 10_000;
}
process.on("SIGTRAP", () => {
console.warn("Test runner received SIGTRAP. Doing nothing.");
});
const { values: options, positionals: filters } = parseArgs({
allowPositionals: true,
options: {

View File

@@ -800,7 +800,7 @@ pub fn scan(this: *JSTranspiler, globalThis: *jsc.JSGlobalObject, callframe: *js
const prev_allocator = this.transpiler.allocator;
const allocator = arena.allocator();
this.transpiler.setAllocator(allocator);
var log = logger.Log.init(arena.backingAllocator());
var log = logger.Log.init(bun.default_allocator);
defer log.deinit();
this.transpiler.setLog(&log);
defer {
@@ -947,16 +947,16 @@ pub fn transformSync(
var ast_scope = ast_memory_allocator.enter(allocator);
defer ast_scope.exit();
const prev_bundler = this.transpiler;
const prev_allocator = this.transpiler.allocator;
this.transpiler.setAllocator(allocator);
defer this.transpiler.setAllocator(prev_allocator);
this.transpiler.macro_context = null;
var log = logger.Log.init(arena.backingAllocator());
var log = logger.Log.init(bun.default_allocator);
log.level = this.transpiler_options.log.level;
const old_log = this.transpiler.log;
this.transpiler.setLog(&log);
defer this.transpiler.setLog(old_log);
defer {
this.transpiler = prev_bundler;
}
const parse_result = getParseResult(
this,
allocator,
@@ -975,26 +975,21 @@ pub fn transformSync(
return globalThis.throwValue(try this.transpiler.log.toJS(globalThis, globalThis.allocator(), "Parse error"));
}
var buffer_writer = this.buffer_writer orelse brk: {
var writer = JSPrinter.BufferWriter.init(arena.backingAllocator());
writer.buffer.growIfNeeded(code.len) catch unreachable;
var buffer_writer = if (this.buffer_writer) |*w| w else brk: {
var writer = JSPrinter.BufferWriter.init(bun.default_allocator);
writer.buffer.growIfNeeded(code.len) catch return error.OutOfMemory;
writer.buffer.list.expandToCapacity();
break :brk writer;
this.buffer_writer = writer;
break :brk &this.buffer_writer.?;
};
defer {
this.buffer_writer = buffer_writer;
}
buffer_writer.reset();
var printer = JSPrinter.BufferPrinter.init(buffer_writer);
var printer = JSPrinter.BufferPrinter.init(buffer_writer.*);
defer buffer_writer.* = printer.ctx;
_ = this.transpiler.print(parse_result, @TypeOf(&printer), &printer, .esm_ascii) catch |err| {
return globalThis.throwError(err, "Failed to print code");
};
// TODO: benchmark if pooling this way is faster or moving is faster
buffer_writer = printer.ctx;
var out = jsc.ZigString.init(buffer_writer.written);
out.setOutputEncoding();
@@ -1082,7 +1077,7 @@ pub fn scanImports(this: *JSTranspiler, globalThis: *jsc.JSGlobalObject, callfra
defer ast_scope.exit();
this.transpiler.setAllocator(allocator);
var log = logger.Log.init(arena.backingAllocator());
var log = logger.Log.init(bun.default_allocator);
defer log.deinit();
this.transpiler.setLog(&log);
defer {

View File

@@ -270,22 +270,38 @@ test/napi/node-napi-tests/test/js-native-api/test_conversions/do.test.ts
test/napi/node-napi-tests/test/js-native-api/test_dataview/do.test.ts
test/napi/node-napi-tests/test/js-native-api/test_date/do.test.ts
test/napi/node-napi-tests/test/js-native-api/test_error/do.test.ts
test/napi/node-napi-tests/test/js-native-api/test_exception/do.test.ts
test/napi/node-napi-tests/test/js-native-api/test_finalizer/do.test.ts
test/napi/node-napi-tests/test/js-native-api/test_function/do.test.ts
test/napi/node-napi-tests/test/js-native-api/test_general/do.test.ts
test/napi/node-napi-tests/test/js-native-api/test_handle_scope/do.test.ts
test/napi/node-napi-tests/test/js-native-api/test_instance_data/do.test.ts
test/napi/node-napi-tests/test/js-native-api/test_new_target/do.test.ts
test/napi/node-napi-tests/test/js-native-api/test_number/do.test.ts
test/napi/node-napi-tests/test/js-native-api/test_object/do.test.ts
test/napi/node-napi-tests/test/js-native-api/test_promise/do.test.ts
test/napi/node-napi-tests/test/js-native-api/test_properties/do.test.ts
test/napi/node-napi-tests/test/js-native-api/test_reference/do.test.ts
test/napi/node-napi-tests/test/js-native-api/test_reference_double_free/do.test.ts
test/napi/node-napi-tests/test/js-native-api/test_string/do.test.ts
test/napi/node-napi-tests/test/js-native-api/test_symbol/do.test.ts
test/napi/node-napi-tests/test/js-native-api/test_typedarray/do.test.ts
test/napi/node-napi-tests/test/node-api/1_hello_world/do.test.ts
test/napi/node-napi-tests/test/node-api/test_async/do.test.ts
test/napi/node-napi-tests/test/node-api/test_buffer/do.test.ts
test/napi/node-napi-tests/test/node-api/test_callback_scope/do.test.ts
test/napi/node-napi-tests/test/node-api/test_cleanup_hook/do.test.ts
test/napi/node-napi-tests/test/node-api/test_exception/do.test.ts
test/napi/node-napi-tests/test/node-api/test_fatal/do.test.ts
test/napi/node-napi-tests/test/node-api/test_fatal_exception/do.test.ts
test/napi/node-napi-tests/test/node-api/test_general/do.test.ts
test/napi/node-napi-tests/test/node-api/test_init_order/do.test.ts
test/napi/node-napi-tests/test/node-api/test_instance_data/do.test.ts
test/napi/node-napi-tests/test/node-api/test_make_callback/do.test.ts
test/napi/node-napi-tests/test/node-api/test_make_callback_recurse/do.test.ts
test/napi/node-napi-tests/test/node-api/test_threadsafe_function/do.test.ts
test/napi/node-napi-tests/test/node-api/test_worker_terminate_finalization/do.test.ts
test/napi/node-napi-tests/test/node-api/test_reference_by_node_api_version/do.test.ts
# normalizeCryptoAlgorithmParameters
test/js/node/test/parallel/test-webcrypto-derivekey.js