Skip to content

Commit

Permalink
feat: omnibus release cleanup
Browse files Browse the repository at this point in the history
feat: use oxc parser from truffle typescript
feat: integrate cargo and gradle builds
feat: switch to explicit target triples for cargo
feat: early musl support for rustlibs
feat: build conventions for target info + triples
feat: use native typescript parser by default
fix: gc of sections by linker
fix: lto and cflags alignment
fix: cross-lang lto with linker plugins
fix: always produce debug symbols on linux
fix: remove vendored native tls in orogene
fix: remove vendored boringssl
fix: native access to oxc parser
fix: bloat from static rust libs
fix: make orogene and uv conditional
fix: target `x86-64-v3`
fix: better support for clang
fix: aligned cflags for hardening
fix: some issues building against musl
fix: drop sqlite math fns for libm dep
fix: build embedded + benchmarks by default
fix: consolidate `elide.target` and related props
fix: entirely eliminate the "elide natives" root
fix: drop bouncycastle (unused)
fix: drop mosaic and compose (tmp, unused)
fix: respect cflags from all native builds
fix: continued support for cfi/branch protection
fix: drop unused / irrelevant resources
fix: colors break native error printing
fix: copy method visibility for node child process records
fix: drop module preloading
chore: add support for es2024 setting
chore: add run configurations for idea
chore: update llvm/clang -> `19.x`
chore: update gradle -> `8.13`
chore: update typescript -> `5.8.2`
chore: update crates
chore: update pnpm deps
chore: update maven deps
chore: trim unused crates and deps
chore: relocate vm feature classes to `engine`
chore: update api pins
chore: update detekt baselines
chore: update pgo profiles

Signed-off-by: Sam Gammon <sam@elide.dev>
  • Loading branch information
sgammon committed Mar 2, 2025
1 parent cf62b54 commit 9021390
Show file tree
Hide file tree
Showing 155 changed files with 8,227 additions and 8,669 deletions.
32 changes: 32 additions & 0 deletions .cargo/config.clang.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#
# Copyright (c) 2024 Elide Technologies, Inc.
#
# Licensed under the MIT license (the "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://opensource.org/license/mit/
#
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under the License.
#

[build]
rustflags = [
# Enforce completely position-independent executables.
"-Crelocation-model=pic",

# Link with LLD through clang; enable linker plugin LTO.
"-Clinker=clang",
"-Clink-arg=-fuse-ld=lld",
"-Clinker-plugin-lto",

# Target CPU.
"-Ctarget-cpu=x86-64-v3",
]

[env]
ELIDE_ROOT = { value = ".", relative = true }
SQLITE3_STATIC = { value = "1" }
SQLITE3_LIB_DIR = { value = "third_party/sqlite/install/lib", relative = true }
SQLITE3_INCLUDE_DIR = { value = "third_party/sqlite/install/include", relative = true }
40 changes: 40 additions & 0 deletions .cargo/config.pgo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#
# Copyright (c) 2024 Elide Technologies, Inc.
#
# Licensed under the MIT license (the "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://opensource.org/license/mit/
#
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under the License.
#

[build]
rustflags = [
# Enforce completely position-independent executables.
"-Crelocation-model=pic",

# Link with LLD through clang; enable linker plugin LTO.
"-Clinker=clang",
"-Clink-arg=-fuse-ld=lld",
"-Clinker-plugin-lto",

# Enable PGO.
"-Cprofile-use=./tools/merged.profdata",

# Target CPU.
"-Ctarget-cpu=x86-64-v3",
]

[env]
CC = { value = "clang" }
CXX = { value = "clang++" }
LD = { value = "lld" }
AR = { value = "llvm-ar" }

ELIDE_ROOT = { value = ".", relative = true }
SQLITE3_STATIC = { value = "1" }
SQLITE3_LIB_DIR = { value = "third_party/sqlite/install/lib", relative = true }
SQLITE3_INCLUDE_DIR = { value = "third_party/sqlite/install/include", relative = true }
40 changes: 40 additions & 0 deletions .cargo/config.profiler.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#
# Copyright (c) 2024 Elide Technologies, Inc.
#
# Licensed under the MIT license (the "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://opensource.org/license/mit/
#
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under the License.
#

[build]
rustflags = [
# Enforce completely position-independent executables.
"-Crelocation-model=pic",

# Link with LLD through clang; enable linker plugin LTO.
"-Clinker=clang",
"-Clink-arg=-fuse-ld=lld",
"-Clinker-plugin-lto",

# Generate profile data.
"-Cprofile-generate=/tmp/pgo-data",

# Target CPU.
"-Ctarget-cpu=x86-64-v3",
]

[env]
CC = { value = "clang" }
CXX = { value = "clang++" }
LD = { value = "lld" }
AR = { value = "llvm-ar" }

ELIDE_ROOT = { value = ".", relative = true }
SQLITE3_STATIC = { value = "1" }
SQLITE3_LIB_DIR = { value = "third_party/sqlite/install/lib", relative = true }
SQLITE3_INCLUDE_DIR = { value = "third_party/sqlite/install/include", relative = true }
12 changes: 8 additions & 4 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,16 @@

[build]
rustflags = [
# Enable Tokio unstable.
# "--cfg",
# "tokio_unstable",

# Enforce completely position-independent executables.
"-Crelocation-model=pic",

# Link with LLD through clang; enable linker plugin LTO.
"-Clinker=clang",
"-Clink-arg=-fuse-ld=lld",
"-Clinker-plugin-lto",

# Target CPU.
"-Ctarget-cpu=x86-64-v3",
]

[env]
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/checks.apicheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ jobs:
- name: "Setup: PNPM"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
with:
version: "9.2.0"
version: "10.5.2"
run_install: |
- recursive: true
args: [--frozen-lockfile, --strict-peer-dependencies]
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/checks.formatting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ jobs:
- name: "Setup: PNPM"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
with:
version: "9.2.0"
version: "10.5.2"
run_install: |
- recursive: true
args: [--frozen-lockfile, --strict-peer-dependencies]
Expand Down
17 changes: 9 additions & 8 deletions .github/workflows/job.build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -139,11 +139,12 @@ name: Framework
description: "Gradle cache key"

env:
CC: clang
LD: lld
CXX: clang++
AR: llvm-ar
RANLIB: llvm-ranlib
BUILDLESS_APIKEY: ${{ secrets.BUILDLESS_APIKEY }}
# SCCACHE_WEBDAV_ENDPOINT: "https://sccache.less.build"
# SCCACHE_WEBDAV_USERNAME: "apikey"
# SCCACHE_WEBDAV_PASSWORD: ${{ secrets.BUILDLESS_APIKEY }}
# SCCACHE_REDIS: "rediss://apikey:${{ secrets.BUILDLESS_APIKEY }}@redis.less.build:6380"

permissions:
contents: read
Expand Down Expand Up @@ -274,16 +275,16 @@ jobs:
- name: "Setup: PNPM"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
with:
version: "9.2.0"
version: "10.5.2"
run_install: |
- recursive: true
args: [--frozen-lockfile, --strict-peer-dependencies]
- name: "Setup: LLVM 18"
- name: "Setup: LLVM 19"
run: |
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 18 all
export LLVM_PATH=/usr/lib/llvm-18
sudo ./llvm.sh 19 all
export LLVM_PATH=/usr/lib/llvm-19
export PATH="$LLVM_PATH/bin:$PATH"
export LD_LIBRARY_PATH="$LLVM_PATH/lib:$LD_LIBRARY_PATH"
export LLVM_CONFIG="$LLVM_PATH/bin/llvm-config"
Expand Down
18 changes: 13 additions & 5 deletions .github/workflows/job.cli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,14 @@ name: CLI
permissions:
contents: read

env:
CC: clang
LD: lld
CXX: clang++
AR: llvm-ar
RANLIB: llvm-ranlib
BUILDLESS_APIKEY: ${{ secrets.BUILDLESS_APIKEY }}

jobs:
##
## Job: CLI (Native Debug)
Expand Down Expand Up @@ -197,7 +205,7 @@ jobs:
- name: "Setup: PNPM"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
with:
version: "9.2.0"
version: "10.5.2"
run_install: |
- recursive: true
args: [--frozen-lockfile, --strict-peer-dependencies]
Expand Down Expand Up @@ -241,7 +249,7 @@ jobs:
if: success() && !contains(matrix.runner, 'windows')
run: |
pushd packages/cli/build/native/nativeCompile;
xz -9kv elide.debug;
xz -9kv elide;
popd;
echo "Binary compressed.";
- name: "Artifacts: Debug Binary (Unix)"
Expand All @@ -250,14 +258,14 @@ jobs:
with:
name: cli-debug-${{ matrix.tag }}
path: |
./packages/cli/build/native/nativeCompile/elide.debug.xz
./packages/cli/build/native/nativeCompile/elide.xz
- name: "Artifacts: Debug Binary (Windows)"
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
if: success() && contains(matrix.runner, 'windows')
with:
name: cli-debug-${{ matrix.tag }}
path: |
./packages/cli/build/native/nativeCompile/elide.debug
./packages/cli/build/native/nativeCompile/elide
- name: "Artifacts: Dashboard Dump"
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
if: success()
Expand Down Expand Up @@ -351,7 +359,7 @@ jobs:
- name: "Setup: PNPM"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
with:
version: "9.2.0"
version: "10.5.2"
run_install: |
- recursive: true
args: [--frozen-lockfile, --strict-peer-dependencies]
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/job.containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ jobs:
- name: "Setup: PNPM"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
with:
version: "9.2.0"
version: "10.5.2"
run_install: |
- recursive: true
args: [--frozen-lockfile, --strict-peer-dependencies]
Expand Down Expand Up @@ -321,7 +321,7 @@ jobs:
- name: "Setup: PNPM"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
with:
version: "9.2.0"
version: "10.5.2"
run_install: |
- recursive: true
args: [--frozen-lockfile, --strict-peer-dependencies]
Expand Down
21 changes: 13 additions & 8 deletions .github/workflows/job.test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,11 @@ name: Tests
description: "Sonar token"

env:
CC: clang
LD: lld
CXX: clang++
AR: llvm-ar
RANLIB: llvm-ranlib
BUILDLESS_APIKEY: ${{ secrets.BUILDLESS_APIKEY }}

permissions:
Expand Down Expand Up @@ -201,12 +206,12 @@ jobs:
storage.googleapis.com:443
- name: "Setup: Apt Dependencies"
run: sudo apt-get install -y libtool-bin build-essential libc6-dev
- name: "Setup: LLVM 18"
- name: "Setup: LLVM 19"
run: |
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 18 all
export LLVM_PATH=/usr/lib/llvm-18
sudo ./llvm.sh 19 all
export LLVM_PATH=/usr/lib/llvm-19
export PATH="$LLVM_PATH/bin:$PATH"
export LD_LIBRARY_PATH="$LLVM_PATH/lib:$LD_LIBRARY_PATH"
export LLVM_CONFIG="$LLVM_PATH/bin/llvm-config"
Expand Down Expand Up @@ -279,7 +284,7 @@ jobs:
- name: "Setup: PNPM"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
with:
version: "9.2.0"
version: "10.5.2"
run_install: |
- recursive: true
args: [--frozen-lockfile, --strict-peer-dependencies]
Expand Down Expand Up @@ -469,12 +474,12 @@ jobs:
storage.googleapis.com:443
- name: "Setup: Apt Dependencies"
run: sudo apt-get install -y libtool-bin build-essential libc6-dev
- name: "Setup: LLVM 18"
- name: "Setup: LLVM 19"
run: |
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 18 all
export LLVM_PATH=/usr/lib/llvm-18
sudo ./llvm.sh 19 all
export LLVM_PATH=/usr/lib/llvm-19
export PATH="$LLVM_PATH/bin:$PATH"
export LD_LIBRARY_PATH="$LLVM_PATH/lib:$LD_LIBRARY_PATH"
export LLVM_CONFIG="$LLVM_PATH/bin/llvm-config"
Expand Down Expand Up @@ -541,7 +546,7 @@ jobs:
- name: "Setup: PNPM"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
with:
version: "9.2.0"
version: "10.5.2"
run_install: |
- recursive: true
args: [--frozen-lockfile, --strict-peer-dependencies]
Expand Down
15 changes: 10 additions & 5 deletions .github/workflows/on.scheduled.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,14 @@ name: Checks
"on":
workflow_dispatch: {}
schedule:
- cron: "0 0-23/2 * * *"
- cron: "0 0-23/6 * * *"

env:
CC: clang
LD: lld
CXX: clang++
AR: llvm-ar
RANLIB: llvm-ranlib
BUILDLESS_APIKEY: ${{ secrets.BUILDLESS_APIKEY }}

permissions:
Expand Down Expand Up @@ -177,16 +182,16 @@ jobs:
- name: "Setup: PNPM"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
with:
version: "9.2.0"
version: "10.5.2"
run_install: |
- recursive: true
args: [--frozen-lockfile, --strict-peer-dependencies]
- name: "Setup: LLVM 18"
- name: "Setup: LLVM 19"
run: |
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 18 all
export LLVM_PATH=/usr/lib/llvm-18
sudo ./llvm.sh 19 all
export LLVM_PATH=/usr/lib/llvm-19
export PATH="$LLVM_PATH/bin:$PATH"
export LD_LIBRARY_PATH="$LLVM_PATH/lib:$LD_LIBRARY_PATH"
export LLVM_CONFIG="$LLVM_PATH/bin/llvm-config"
Expand Down
Loading

0 comments on commit 9021390

Please sign in to comment.