@@ -12,7 +12,7 @@ permissions: write-all
1212
1313jobs :
1414  build :
15-     name : ${{ matrix.config.variant }} ${{ matrix.config.target }} 
15+     name : ${{ matrix.config.variant }} ${{ matrix.config.target }} ${{ matrix.config.v8_enable_pointer_compression && 'ptrcomp' || '' }}  
1616    runs-on : ${{ matrix.config.os }} 
1717    timeout-minutes : 180 
1818    strategy :
@@ -30,58 +30,82 @@ jobs:
3030          - os : macos-13 
3131            target : x86_64-apple-darwin 
3232            variant : debug 
33+             v8_enable_pointer_compression : false 
3334            cargo : cargo 
3435
3536          - os : macos-13 
3637            target : x86_64-apple-darwin 
3738            variant : release 
39+             v8_enable_pointer_compression : false 
3840            cargo : cargo 
3941
4042          - os : macos-14 
4143            target : aarch64-apple-darwin 
4244            variant : asan 
45+             v8_enable_pointer_compression : false 
4346            cargo : cargo 
4447
4548          - os : macos-14 
4649            target : aarch64-apple-darwin 
4750            variant : debug 
51+             v8_enable_pointer_compression : false 
4852            cargo : cargo 
4953
5054          - os : macos-14 
5155            target : aarch64-apple-darwin 
5256            variant : release 
57+             v8_enable_pointer_compression : false 
5358            cargo : cargo 
5459
5560          - os : ${{ github.repository == 'denoland/rusty_v8' && 'ubuntu-22.04-xl' || 'ubuntu-22.04' }} 
5661            target : x86_64-unknown-linux-gnu 
5762            variant : debug 
63+             v8_enable_pointer_compression : false 
5864            cargo : cargo 
5965
6066          - os : ${{ github.repository == 'denoland/rusty_v8' && 'ubuntu-22.04-xl' || 'ubuntu-22.04' }} 
6167            target : x86_64-unknown-linux-gnu 
6268            variant : release 
69+             v8_enable_pointer_compression : false 
70+             cargo : cargo 
71+ 
72+           - os : ${{ github.repository == 'denoland/rusty_v8' && 'ubuntu-22.04-xl' || 'ubuntu-22.04' }} 
73+             target : x86_64-unknown-linux-gnu 
74+             variant : debug 
75+             v8_enable_pointer_compression : true 
76+             cargo : cargo 
77+ 
78+           - os : ${{ github.repository == 'denoland/rusty_v8' && 'ubuntu-22.04-xl' || 'ubuntu-22.04' }} 
79+             target : x86_64-unknown-linux-gnu 
80+             variant : release 
81+             v8_enable_pointer_compression : true 
6382            cargo : cargo 
6483
6584          - os : ${{ github.repository == 'denoland/rusty_v8' && 'windows-2022-xxl' || 'windows-2022' }} 
6685            target : x86_64-pc-windows-msvc 
6786            variant : release  #  Note: we do not support windows debug builds.
87+             v8_enable_pointer_compression : false 
6888            cargo : cargo 
6989
7090          - os : ${{ github.repository == 'denoland/rusty_v8' && 'ubuntu-22.04-xl' || 'ubuntu-22.04' }} 
7191            target : aarch64-unknown-linux-gnu 
7292            variant : debug 
93+             v8_enable_pointer_compression : false 
7394            cargo : cargo 
7495
7596          - os : ${{ github.repository == 'denoland/rusty_v8' && 'ubuntu-22.04-xl' || 'ubuntu-22.04' }} 
7697            target : aarch64-unknown-linux-gnu 
7798            variant : release 
99+             v8_enable_pointer_compression : false 
78100            cargo : cargo 
79101
80102    env :
81103      V8_FROM_SOURCE : true 
82104      CARGO_VARIANT_FLAG : ${{ matrix.config.variant == 'release' && '--release' || '' }} 
105+       CARGO_FEATURE_FLAGS : ${{ matrix.config.v8_enable_pointer_compression && '--features v8_enable_pointer_compression' || '' }} 
83106      LIB_NAME : ${{ contains(matrix.config.target, 'windows') && 'rusty_v8' || 'librusty_v8' }} 
84107      LIB_EXT : ${{ contains(matrix.config.target, 'windows') && 'lib' || 'a' }} 
108+       FEATURES_SUFFIX : ${{ matrix.config.v8_enable_pointer_compression && '_ptrcomp' || '' }} 
85109      RUSTFLAGS : -D warnings 
86110
87111    steps :
@@ -143,10 +167,8 @@ jobs:
143167            target/*/.* 
144168            target/*/build 
145169            target/*/deps 
146- key :
147-             cargo-${{ matrix.config.target }}-${{ matrix.config.variant }}-${{ hashFiles('Cargo.lock', 'build.rs', 'git_submodule_status.txt') }} 
148-           restore-keys :
149-             cargo-${{ matrix.config.target }}-${{ matrix.config.variant }}- 
170+ key : cargo-${{ matrix.config.target }}-${{ matrix.config.variant }}-{{ matrix.config.v8_enable_pointer_compression }}-${{ hashFiles('Cargo.lock', 'build.rs', 'git_submodule_status.txt') }} 
171+           restore-keys : cargo-${{ matrix.config.target }}-${{ matrix.config.variant }}-{{ matrix.config.v8_enable_pointer_compression }}- 
150172
151173      - name : Install and start sccache 
152174        shell : pwsh 
@@ -207,21 +229,19 @@ jobs:
207229        env :
208230          SCCACHE_IDLE_TIMEOUT : 0 
209231        if : matrix.config.variant == 'debug' || matrix.config.variant == 'release' 
210-         run :
211-           ${{ matrix.config.cargo }} nextest run -v --cargo-verbose --cargo-verbose --all-targets --locked --target ${{ matrix.config.target }} ${{ env.CARGO_VARIANT_FLAG }} 
232+         run : ${{ matrix.config.cargo }} nextest run -v --cargo-verbose --cargo-verbose --all-targets --locked --target ${{ matrix.config.target }} ${{ env.CARGO_VARIANT_FLAG }} ${{ env.CARGO_FEATURE_FLAGS }} 
212233
213234      - name : Clippy 
214-         run :
215-           ${{ matrix.config.cargo }} clippy --all-targets --locked ${{ env.CARGO_VARIANT_FLAG }} --target ${{ matrix.config.target }} -- -D clippy::all 
235+         run : ${{ matrix.config.cargo }} clippy --all-targets --locked --target ${{ matrix.config.target }} ${{ env.CARGO_VARIANT_FLAG }} ${{ env.CARGO_FEATURE_FLAGS }} -- -D clippy::all 
216236
217237      - name : Prepare binary publish 
218238        if : matrix.config.variant == 'debug' || matrix.config.variant == 'release' 
219239        run : | 
220-           gzip -9c target/${{ matrix.config.target }}/${{ matrix.config.variant }}/gn_out/obj/${{ env.LIB_NAME }}.${{ env.LIB_EXT }} > target/${{ env.LIB_NAME }}_${{ matrix.config.variant }}_${{ matrix.config.target }}.${{ env.LIB_EXT }}.gz 
221-           ls -l target/${{ env.LIB_NAME }}_${{ matrix.config.variant }}_${{ matrix.config.target }}.${{ env.LIB_EXT }}.gz 
240+           gzip -9c target/${{ matrix.config.target }}/${{ matrix.config.variant }}/gn_out/obj/${{ env.LIB_NAME }}.${{ env.LIB_EXT }} > target/${{ env.LIB_NAME }}${{ env.FEATURES_SUFFIX }} _${{ matrix.config.variant }}_${{ matrix.config.target }}.${{ env.LIB_EXT }}.gz 
241+           ls -l target/${{ env.LIB_NAME }}${{ env.FEATURES_SUFFIX }} _${{ matrix.config.variant }}_${{ matrix.config.target }}.${{ env.LIB_EXT }}.gz 
222242
223-           cp target/${{ matrix.config.target }}/${{ matrix.config.variant}}/gn_out/src_binding.rs target/src_binding_ ${{ matrix.config.variant }}_${{ matrix.config.target }}.rs 
224-           ls -l target/src_binding_ ${{ matrix.config.variant }}_${{ matrix.config.target }}.rs 
243+           cp target/${{ matrix.config.target }}/${{ matrix.config.variant}}/gn_out/src_binding.rs target/src_binding${{ env.FEATURES_SUFFIX }}_ ${{ matrix.config.variant }}_${{ matrix.config.target }}.rs 
244+           ls -l target/src_binding${{ env.FEATURES_SUFFIX }}_ ${{ matrix.config.variant }}_${{ matrix.config.target }}.rs 
225245
226246name : Binary publish 
227247@@ -233,14 +253,14 @@ jobs:
233253          GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }} 
234254        with :
235255          files : | 
236-             target/${{ env.LIB_NAME }}_${{ matrix.config.variant }}_${{ matrix.config.target }}.${{ env.LIB_EXT }}.gz 
237-             target/src_binding_ ${{ matrix.config.variant }}_${{ matrix.config.target }}.rs 
256+             target/${{ env.LIB_NAME }}${{ env.FEATURES_SUFFIX }} _${{ matrix.config.variant }}_${{ matrix.config.target }}.${{ env.LIB_EXT }}.gz 
257+             target/src_binding${{ env.FEATURES_SUFFIX }}_ ${{ matrix.config.variant }}_${{ matrix.config.target }}.rs 
238258
239259name : Upload CI artifacts 
240260        uses : actions/upload-artifact@v4 
241261        with :
242-           name : src_binding_ ${{ matrix.config.variant }}_${{ matrix.config.target }}.rs
243-           path : target/src_binding_ ${{ matrix.config.variant }}_${{ matrix.config.target }}.rs 
262+           name : src_binding${{ env.FEATURES_SUFFIX }}_ ${{ matrix.config.variant }}_${{ matrix.config.target }}.rs
263+           path : target/src_binding${{ env.FEATURES_SUFFIX }}_ ${{ matrix.config.variant }}_${{ matrix.config.target }}.rs 
244264
245265  publish :
246266    needs : build 
0 commit comments