Skip to content

Commit

Permalink
Merge branch 'main' into jarred/upgrade-webkit
Browse files Browse the repository at this point in the history
  • Loading branch information
Jarred-Sumner authored Aug 2, 2024
2 parents 541d961 + deb6ff5 commit d429326
Show file tree
Hide file tree
Showing 7 changed files with 49 additions and 52 deletions.
22 changes: 7 additions & 15 deletions .buildkite/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -621,9 +621,7 @@ steps:
artifact_paths:
- "build\\bun-deps\\*.lib"
env:
SCCACHE_DIR: "$$HOME\\.cache\\sccache"
ZIG_LOCAL_CACHE_DIR: "$$HOME\\.cache\\zig-cache"
SCCACHE_IGNORE_SERVER_IO_ERROR: "1"
CCACHE_DISABLE: "1"
command:
- ".\\scripts\\all-dependencies.ps1"

Expand All @@ -646,6 +644,8 @@ steps:
# HACK: See scripts/build-bun-cpp.ps1
# - "build\\bun-cpp-objects.a"
- "build\\bun-cpp-objects.a.*"
env:
CCACHE_DISABLE: "1"
command:
- ".\\scripts\\build-bun-cpp.ps1"

Expand All @@ -664,9 +664,7 @@ steps:
- "bun-windows-x64-profile.zip"
- "features.json"
env:
SCCACHE_DIR: "$$HOME\\.cache\\sccache"
ZIG_LOCAL_CACHE_DIR: "$$HOME\\.cache\\zig-cache"
SCCACHE_IGNORE_SERVER_IO_ERROR: "1"
CCACHE_DISABLE: "1"
command:
- ".\\scripts\\buildkite-link-bun.ps1"

Expand Down Expand Up @@ -708,9 +706,7 @@ steps:
artifact_paths:
- "build\\bun-deps\\*.lib"
env:
SCCACHE_DIR: "$$HOME\\.cache\\sccache"
ZIG_LOCAL_CACHE_DIR: "$$HOME\\.cache\\zig-cache"
SCCACHE_IGNORE_SERVER_IO_ERROR: "1"
CCACHE_DISABLE: "1"
USE_BASELINE_BUILD: "1"
command:
- ".\\scripts\\all-dependencies.ps1"
Expand All @@ -735,9 +731,7 @@ steps:
# - "build\\bun-cpp-objects.a"
- "build\\bun-cpp-objects.a.*"
env:
SCCACHE_DIR: "$$HOME\\.cache\\sccache"
ZIG_LOCAL_CACHE_DIR: "$$HOME\\.cache\\zig-cache"
SCCACHE_IGNORE_SERVER_IO_ERROR: "1"
CCACHE_DISABLE: "1"
USE_BASELINE_BUILD: "1"
command:
- ".\\scripts\\build-bun-cpp.ps1"
Expand All @@ -757,9 +751,7 @@ steps:
- "bun-windows-x64-baseline-profile.zip"
- "features.json"
env:
SCCACHE_DIR: "$$HOME\\.cache\\sccache"
ZIG_LOCAL_CACHE_DIR: "$$HOME\\.cache\\zig-cache"
SCCACHE_IGNORE_SERVER_IO_ERROR: "1"
CCACHE_DISABLE: "1"
USE_BASELINE_BUILD: "1"
command:
- ".\\scripts\\buildkite-link-bun.ps1 -Baseline $$True"
Expand Down
13 changes: 7 additions & 6 deletions .buildkite/scripts/env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -78,19 +78,18 @@ function export_environment() {
export CCACHE_DIR="$HOME/.cache/ccache/$BUILDKITE_STEP_KEY"
export SCCACHE_DIR="$HOME/.cache/sccache/$BUILDKITE_STEP_KEY"
export ZIG_LOCAL_CACHE_DIR="$HOME/.cache/zig-cache/$BUILDKITE_STEP_KEY"
export ZIG_GLOBAL_CACHE_DIR="$HOME/.cache/zig-cache/$BUILDKITE_STEP_KEY"
export BUN_DEPS_CACHE_DIR="$HOME/.cache/bun-deps/$BUILDKITE_STEP_KEY"
if [ "$(assert_os)" == "linux" ]; then
export USE_LTO="ON"
fi
if [ "$(assert_arch)" == "aarch64" ]; then
export CPU_TARGET="native"
elif [[ "$BUILDKITE_STEP_KEY" == *"baseline"* ]]; then
export CPU_TARGET="nehalem"
else
export CPU_TARGET="haswell"
fi
if [[ "$BUILDKITE_STEP_KEY" == *"nolto"* ]]; then
export USE_LTO="OFF"
else
export USE_LTO="ON"
fi
if $(buildkite-agent meta-data exists release &> /dev/null); then
export CMAKE_BUILD_TYPE="$(buildkite-agent meta-data get release)"
else
Expand All @@ -106,11 +105,13 @@ function export_environment() {
else
export USE_DEBUG_JSC="OFF"
fi
if [ "$BUILDKITE_CLEAN_CHECKOUT" == "true" ]; then
if [ "$BUILDKITE_CLEAN_CHECKOUT" == "true" || "$BUILDKITE_BRANCH" == "main" ]; then
rm -rf "$CCACHE_DIR"
rm -rf "$SCCACHE_DIR"
rm -rf "$ZIG_LOCAL_CACHE_DIR"
rm -rf "$ZIG_GLOBAL_CACHE_DIR"
rm -rf "$BUN_DEPS_CACHE_DIR"
export CCACHE_RECACHE="1"
fi
}

Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,7 @@ option(USE_LTO "Enable Link-Time Optimization" ${DEFAULT_LTO})

if(APPLE AND USE_LTO)
set(USE_LTO OFF)
message(WARNING "Link-Time Optimization is not supported on macOS because it requires -fuse-ld=lld and lld causes many segfaults on macOS (likely related to stack size)")
message(FATAL_ERROR "Link-Time Optimization is not supported on macOS because it requires -fuse-ld=lld and lld causes many segfaults on macOS (likely related to stack size)")
endif()

if(WIN32 AND USE_LTO)
Expand Down Expand Up @@ -487,7 +487,7 @@ if(USE_UNIFIED_SOURCES)
endif()

# CCache
find_program(CCACHE_PROGRAM sccache)
# find_program(CCACHE_PROGRAM sccache)
find_program(CCACHE_PROGRAM ccache)

if(CCACHE_PROGRAM)
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ ENV CI 1
ENV CPU_TARGET=${CPU_TARGET}
ENV BUILDARCH=${BUILDARCH}
ENV BUN_DEPS_OUT_DIR=${BUN_DEPS_OUT_DIR}
ENV BUN_ENABLE_LTO 1
ENV USE_LTO 1

ENV LC_CTYPE=en_US.UTF-8
ENV LC_ALL=en_US.UTF-8
Expand Down
7 changes: 5 additions & 2 deletions scripts/env.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ $BUN_DEPS_DIR = if ($env:BUN_DEPS_DIR) { $env:BUN_DEPS_DIR } else { Join-Path $B
$BUN_DEPS_OUT_DIR = if ($env:BUN_DEPS_OUT_DIR) { $env:BUN_DEPS_OUT_DIR } else { Join-Path $BUN_BASE_DIR 'build\bun-deps' }

$CPUS = if ($env:CPUS) { $env:CPUS } else { (Get-CimInstance -Class Win32_Processor).NumberOfCores }
$Lto = if ($env:USE_LTO) { $env:USE_LTO -eq "1" } else { $True }
$Lto = if ($env:USE_LTO) { $env:USE_LTO -eq "1" } else { $False }
$Baseline = if ($env:USE_BASELINE_BUILD) {
$env:USE_BASELINE_BUILD -eq "1"
} elseif ($env:BUILDKITE_STEP_KEY -match "baseline") {
Expand Down Expand Up @@ -103,7 +103,10 @@ if ($Lto) {
$CMAKE_FLAGS += "-DUSE_LTO=ON"
}

if (Get-Command sccache -ErrorAction SilentlyContinue) {
if (Get-Command ccache -ErrorAction SilentlyContinue) {
$CMAKE_FLAGS += "-DCMAKE_C_COMPILER_LAUNCHER=ccache"
$CMAKE_FLAGS += "-DCMAKE_CXX_COMPILER_LAUNCHER=ccache"
} elseif (Get-Command sccache -ErrorAction SilentlyContinue) {
# Continue with local compiler if sccache has an error
$env:SCCACHE_IGNORE_SERVER_IO_ERROR = "1"

Expand Down
2 changes: 1 addition & 1 deletion scripts/env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ export CXXFLAGS='-O3 -fno-exceptions -fno-rtti -fvisibility=hidden -fvisibility-

# Add flags for LTO
# We cannot enable LTO on macOS for dependencies because it requires -fuse-ld=lld and lld causes many segfaults on macOS (likely related to stack size)
if [ "$BUN_ENABLE_LTO" == "1" ]; then
if [ "$USE_LTO" == "1" ] || [ "$USE_LTO" == "ON" ]; then
export CFLAGS="$CFLAGS -flto=full "
export CXXFLAGS="$CXXFLAGS -flto=full -fwhole-program-vtables -fforce-emit-vtables "
export LDFLAGS="$LDFLAGS -flto=full -fwhole-program-vtables -fforce-emit-vtables "
Expand Down
51 changes: 26 additions & 25 deletions scripts/runner.node.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -134,36 +134,37 @@ async function printInfo() {
async function runTests() {
let execPath;
if (options["step"]) {
execPath = await getExecPathFromBuildKite(options["step"]);
downloadLoop: for (let i = 0; i < 10; i++) {
execPath = await getExecPathFromBuildKite(options["step"]);
for (let j = 0; j < 10; j++) {
const { error } = spawnSync(execPath, ["--version"], {
encoding: "utf-8",
timeout: spawnTimeout,
env: {
PATH: process.env.PATH,
BUN_DEBUG_QUIET_LOGS: 1,
},
});
if (!error) {
break;
}
const { code } = error;
if (code === "EBUSY") {
console.log("Bun appears to be busy, retrying...");
continue;
}
if (code === "UNKNOWN") {
console.log("Bun appears to be corrupted, downloading again...");
rmSync(execPath, { force: true });
continue downloadLoop;
}
}
}
} else {
execPath = getExecPath(options["exec-path"]);
}
console.log("Bun:", execPath);

for (let i = 0; i < 10; i++) {
try {
const { error } = spawnSync(execPath, ["--version"], {
encoding: "utf-8",
timeout: spawnTimeout,
env: {
PATH: process.env.PATH,
BUN_DEBUG_QUIET_LOGS: 1,
},
});
if (!error) {
break;
}
throw error;
} catch (error) {
const { code } = error;
if (code === "EBUSY" || code === "UNKNOWN") {
console.log(`Bun appears to be busy, retrying... [code: ${code}]`);
await new Promise(resolve => setTimeout(resolve, 1000 * (i + 1)));
continue;
}
}
}

const revision = getRevision(execPath);
console.log("Revision:", revision);

Expand Down

0 comments on commit d429326

Please sign in to comment.