Skip to content

Commit 43bcc9e

Browse files
authored
Merge pull request #52 from radixdlt/release/rcnet-v1
Merge Release/rcnet v1
2 parents 295c8d1 + ef27344 commit 43bcc9e

File tree

210 files changed

+46923
-21250
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

210 files changed

+46923
-21250
lines changed

.github/workflows/build.yml

Lines changed: 121 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,13 @@ name: Build
22

33
on:
44
push:
5-
5+
branches:
6+
- release/rcnet-v1
7+
- develop
8+
- main
69
pull_request:
710
branches:
11+
- release/rcnet-v1
812
- develop
913
- main
1014

@@ -21,75 +25,82 @@ jobs:
2125
custom-linker: ""
2226
custom-compiler: /usr/local/opt/llvm/bin/clang
2327
custom-archiver: /usr/local/opt/llvm/bin/llvm-ar
24-
features: "jni"
28+
features: "jni,radix-engine"
29+
- crate: native-json-interface
30+
target-triple: x86_64-apple-ios
31+
custom-linker: ""
32+
custom-compiler: /usr/local/opt/llvm/bin/clang
33+
custom-archiver: /usr/local/opt/llvm/bin/llvm-ar
34+
features: "jni,radix-engine"
2535
- crate: native-json-interface
2636
target-triple: x86_64-apple-darwin
2737
custom-linker: ""
2838
custom-compiler: /usr/local/opt/llvm/bin/clang
2939
custom-archiver: /usr/local/opt/llvm/bin/llvm-ar
30-
features: "jni"
40+
features: "jni,radix-engine"
3141
- crate: native-json-interface
3242
target-triple: aarch64-apple-ios
3343
custom-linker: ""
3444
custom-compiler: /usr/local/opt/llvm/bin/clang
3545
custom-archiver: /usr/local/opt/llvm/bin/llvm-ar
36-
features: "jni"
46+
features: "jni,radix-engine"
3747
- crate: native-json-interface
3848
target-triple: aarch64-apple-ios-sim
3949
custom-linker: ""
4050
custom-compiler: /usr/local/opt/llvm/bin/clang
4151
custom-archiver: /usr/local/opt/llvm/bin/llvm-ar
42-
features: "jni"
52+
features: "jni,radix-engine"
4353
- crate: native-json-interface
4454
target-triple: x86_64-pc-windows-gnu
4555
custom-linker: ""
4656
custom-compiler: x86_64-w64-mingw32-gcc
4757
custom-archiver: x86_64-w64-mingw32-ar
48-
features: "jni"
58+
features: "jni,radix-engine"
4959
- crate: native-json-interface
5060
target-triple: x86_64-unknown-linux-gnu
5161
custom-linker: x86_64-unknown-linux-gnu-gcc
5262
custom-compiler: /usr/local/opt/llvm/bin/clang
5363
custom-archiver: /usr/local/opt/llvm/bin/llvm-ar
54-
features: "jni"
64+
features: "jni,radix-engine"
5565
- crate: native-json-interface
5666
target-triple: aarch64-unknown-linux-gnu
5767
custom-linker: aarch64-unknown-linux-gnu-gcc
5868
custom-compiler: aarch64-unknown-linux-gnu-gcc
5969
custom-archiver: aarch64-unknown-linux-gnu-gcc-ar
60-
features: "jni"
70+
features: "jni,radix-engine"
6171
- crate: native-json-interface
6272
target-triple: i686-unknown-linux-gnu
6373
custom-linker: i686-unknown-linux-gnu-gcc
6474
custom-compiler: i686-unknown-linux-gnu-gcc
6575
custom-archiver: i686-unknown-linux-gnu-gcc-ar
66-
features: "jni"
76+
features: "jni,radix-engine"
6777
- crate: native-json-interface
6878
target-triple: wasm32-unknown-unknown
6979
custom-linker: ""
7080
custom-compiler: /usr/local/opt/llvm/bin/clang
7181
custom-archiver: /usr/local/opt/llvm/bin/llvm-ar
72-
features: "jni"
82+
features: ""
7383
- crate: native-json-interface
7484
target-triple: aarch64-linux-android
75-
custom-linker: $HOME/android-ndk/android-ndk-r22b/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang
76-
custom-compiler: $HOME/android-ndk/android-ndk-r22b/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang
77-
custom-archiver: $HOME/android-ndk/android-ndk-r22b/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android-ar
78-
features: "jni"
85+
custom-linker: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang
86+
custom-compiler: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang
87+
custom-archiver: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar
88+
features: "jni,radix-engine"
7989
- crate: native-json-interface
8090
target-triple: armv7-linux-androideabi
81-
custom-linker: $HOME/android-ndk/android-ndk-r22b/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi19-clang
82-
custom-compiler: $HOME/android-ndk/android-ndk-r22b/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi19-clang
83-
custom-archiver: $HOME/android-ndk/android-ndk-r22b/toolchains/llvm/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-ar
84-
features: "jni"
91+
custom-linker: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi19-clang
92+
custom-compiler: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi19-clang
93+
custom-archiver: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar
94+
features: "jni,radix-engine"
8595
- crate: native-json-interface
8696
target-triple: i686-linux-android
87-
custom-linker: $HOME/android-ndk/android-ndk-r22b/toolchains/llvm/prebuilt/darwin-x86_64/bin/i686-linux-android19-clang
88-
custom-compiler: $HOME/android-ndk/android-ndk-r22b/toolchains/llvm/prebuilt/darwin-x86_64/bin/i686-linux-android19-clang
89-
custom-archiver: $HOME/android-ndk/android-ndk-r22b/toolchains/llvm/prebuilt/darwin-x86_64/bin/i686-linux-android-ar
90-
features: "jni"
97+
custom-linker: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/i686-linux-android19-clang
98+
custom-compiler: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/i686-linux-android19-clang
99+
custom-archiver: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar
100+
features: "jni,radix-engine"
91101

92102
steps:
103+
- uses: FranzDiebold/github-env-vars-action@v2
93104
- name: Checkout
94105
uses: actions/checkout@v3
95106

@@ -99,13 +110,11 @@ jobs:
99110
brew install llvm
100111
brew install x86_64-unknown-linux-gnu
101112
brew install mingw-w64
113+
brew install --cask android-ndk
102114
103115
brew tap messense/macos-cross-toolchains
104116
brew install aarch64-unknown-linux-gnu
105117
brew install i686-unknown-linux-gnu
106-
107-
wget https://dl.google.com/android/repository/android-ndk-r22b-darwin-x86_64.zip
108-
unzip -q android-ndk-r22b-darwin-x86_64.zip -d $HOME/android-ndk
109118
110119
- name: Install Rust Toolchain
111120
run: |
@@ -136,12 +145,23 @@ jobs:
136145
137146
export CC=${{ matrix.build-target.custom-compiler }}
138147
export AR=${{ matrix.build-target.custom-archiver }}
139-
export features=$${{ matrix.build-target.features }}
140-
export features=${features:="default"}
148+
149+
if [ -z "${{ matrix.build-target.features }}" ];
150+
then
151+
echo "No special feature handling"
152+
export features=""
153+
else
154+
export features="--features ${{ matrix.build-target.features }}"
155+
echo "Special feature handling"
156+
echo $features
157+
fi
141158
142-
cargo build \
159+
cargo +nightly build \
160+
-Z build-std=std,panic_abort \
161+
-Z build-std-features=panic_immediate_abort \
143162
--target ${{ matrix.build-target.target-triple }} \
144-
--release
163+
--no-default-features \
164+
--release $features
145165
146166
unset $LINKER_ENVIRONMENT_VARIABLE
147167
export CC="/usr/local/opt/llvm/bin/clang"
@@ -177,6 +197,76 @@ jobs:
177197
name: "${{ matrix.build-target.crate }}-${{ matrix.build-target.target-triple }}.tar.gz"
178198
path: "./${{matrix.build-target.crate}}/target/${{ matrix.build-target.target-triple }}/release/${{ matrix.build-target.target-triple }}.tar.gz"
179199

200+
build-xc-framework:
201+
needs: [build]
202+
runs-on: macos-latest
203+
steps:
204+
- name: Checkout
205+
uses: actions/checkout@v3
206+
- uses: actions/download-artifact@v3
207+
with:
208+
path: artifacts
209+
- name: Extract Artifacts
210+
working-directory: artifacts
211+
run: |
212+
mkdir native
213+
214+
for d in native-json-interface-*.tar.gz; do
215+
mv ./$d/* ./native/
216+
done
217+
218+
cd native
219+
220+
for f in *.tar.gz; do
221+
fn=`echo "$f" | cut -d'.' -f 1`
222+
mkdir "$fn"
223+
tar -xvzf "$f" --directory="$fn";
224+
done
225+
226+
- name: Building XCFramework
227+
working-directory: artifacts
228+
run: |
229+
cd native
230+
231+
# The name of the crate that we are building
232+
CRATE_NAME="native-json-interface"
233+
234+
# Creating the two directories where the temporary FAT libraries will be stored
235+
mkdir ./macos-arm64_x86_64/
236+
mkdir ./ios-simulator-arm64_x86_64
237+
238+
# Creating the fat libraries
239+
lipo -create \
240+
"./aarch64-apple-darwin/libradix_engine_toolkit.a" \
241+
"./x86_64-apple-darwin/libradix_engine_toolkit.a" \
242+
-o "./macos-arm64_x86_64/libradix_engine_toolkit.a"
243+
lipo -create \
244+
"./aarch64-apple-ios-sim/libradix_engine_toolkit.a" \
245+
"./x86_64-apple-ios/libradix_engine_toolkit.a" \
246+
-o "./ios-simulator-arm64_x86_64/libradix_engine_toolkit.a"
247+
248+
# Copying the "include" directory from its origin into the fat library directory
249+
cp -r ./aarch64-apple-darwin/include ./macos-arm64_x86_64/
250+
cp -r ./aarch64-apple-ios-sim/include ./ios-simulator-arm64_x86_64/
251+
252+
# Creating the XC Framework
253+
xcodebuild -create-xcframework \
254+
-library "./aarch64-apple-ios/libradix_engine_toolkit.a" \
255+
-headers "./aarch64-apple-ios/include" \
256+
-library "./macos-arm64_x86_64/libradix_engine_toolkit.a" \
257+
-headers "./macos-arm64_x86_64/include" \
258+
-library "./ios-simulator-arm64_x86_64/libradix_engine_toolkit.a" \
259+
-headers "./ios-simulator-arm64_x86_64/include" \
260+
-output "./RadixEngineToolkit.xcframework"
261+
262+
tar -czf "./RadixEngineToolkit.xcframework.tar.gz" ./RadixEngineToolkit.xcframework
263+
264+
- name: Upload Build Artifacts
265+
uses: actions/upload-artifact@v3
266+
with:
267+
name: "RadixEngineToolkit.xcframework.tar.gz"
268+
path: "./artifacts/native/RadixEngineToolkit.xcframework.tar.gz"
269+
180270
publish-csharp-nuget:
181271
needs: [build]
182272
runs-on: ubuntu-latest
@@ -208,10 +298,11 @@ jobs:
208298
dotnet-version: 7.0.x
209299
- name: Configure Version
210300
run: |
301+
CI_RUN_NUMBER=${{ github.run_number }}
211302
GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD | sed 's/\//-/g')
212303
GIT_COMMIT=$(git log -1 --format=%h )
213304
CORE_VERSION=$(cat radix-engine-toolkit/Cargo.toml | grep -e '^version' | cut -d'"' -f 2)
214-
VERSION_SUFFIX=${GIT_BRANCH}-${GIT_COMMIT}
305+
VERSION_SUFFIX=build.${CI_RUN_NUMBER}
215306
VERSION=${CORE_VERSION}-${VERSION_SUFFIX}
216307
217308
if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then

.github/workflows/test.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,4 +50,5 @@ jobs:
5050
for filename in $(find ./out/schema -type f -name "*.json" -exec basename {} \;);
5151
do
5252
cmp --quiet out/schema/$filename ./old-out/schema/$filename && exit 0 || exit 1
53-
done
53+
done
54+
exit 0

.vscode/settings.json

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"rust-analyzer.linkedProjects": [
3+
"Cargo.toml",
4+
"native-json-interface/Cargo.toml",
5+
"cli-json-interface/Cargo.toml",
6+
"benches/Cargo.toml",
7+
],
8+
"cSpell.words": [
9+
"bech",
10+
"Decompilation",
11+
"decompile",
12+
"decompiled",
13+
"eddsa",
14+
"instantiatable",
15+
"Instrumenter",
16+
"persistable",
17+
"repr",
18+
"Sbor",
19+
"Scrypto",
20+
"Secp",
21+
"Substate",
22+
"substates",
23+
"Untimed",
24+
"virtualizable",
25+
"Wasmer",
26+
"Wasmi"
27+
]
28+
}

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
members = [
33
"radix-engine-toolkit",
44
"schema",
5-
"serializable",
5+
"toolkit-derive",
66
]

benches/Cargo.toml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
[package]
2+
name = "benches"
3+
version = "0.1.0"
4+
edition = "2021"
5+
build = "build.rs"
6+
7+
[workspace]
8+
members = []
9+
10+
[dependencies]
11+
serde = "1.0.159"
12+
serde_json = "1.0.95"
13+
14+
radix-engine-toolkit = { path = "../radix-engine-toolkit" }
15+
16+
[dev-dependencies]
17+
scrypto = { git = "https://github.com/radixdlt/radixdlt-scrypto", tag = "rcnet-v1-71c24148" }
18+
native_transaction = { git = "https://github.com/radixdlt/radixdlt-scrypto", tag = "rcnet-v1-71c24148", package = "transaction" }
19+
criterion = "0.4.0"
20+
hex = "0.4.3"
21+
22+
[profile.bench]
23+
debug = true
24+
# lto = true
25+
# codegen-units = 1
26+
# opt-level = 3
27+
28+
[[bench]]
29+
name = "decompilation_benchmark"
30+
harness = false

0 commit comments

Comments
 (0)