git.delta.rocks / jrsonnet / refs/commits / 1bf5e01612ea

difftreelog

Merge commit 'e1eaabb7a756db2b7db5ffbe5e30bb53c72168b0' into gc-v2

Yaroslav Bolyukin2021-06-12parents: #e3dd72e #e1eaabb.patch.diff
in: master

12 files changed

modified.github/workflows/release.ymldiffbeforeafterboth
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -54,15 +54,43 @@
     strategy:
       matrix:
         target:
+          # Tier 1
+          - aarch64-unknown-linux-gnu
+          - i686-pc-windows-gnu
+          - i686-pc-windows-msvc
+          - i686-unknown-linux-gnu
           - x86_64-apple-darwin
+          - x86_64-pc-windows-gnu
           - x86_64-pc-windows-msvc
           - x86_64-unknown-linux-gnu
+
+          # Other
           - x86_64-unknown-linux-musl
         include:
+          - target: aarch64-unknown-linux-gnu
+            os: ubuntu-latest
+            bin: jrsonnet
+            name: jrsonnet-linux-gnu-aarch64
+          - target: i686-pc-windows-gnu
+            os: windows-latest
+            bin: jrsonnet.exe
+            name: jrsonnet-windows-gnu-i686.exe
+          - target: i686-pc-windows-msvc
+            os: windows-latest
+            bin: jrsonnet.exe
+            name: jrsonnet-windows-msvc-i686.exe
+          - target: i686-unknown-linux-gnu
+            os: ubuntu-latest
+            bin: jrsonnet
+            name: jrsonnet-linux-gnu-i686
           - target: x86_64-apple-darwin
             os: macOS-latest
             bin: jrsonnet
             name: jrsonnet-darwin-amd64
+          - target: x86_64-pc-windows-gnu
+            os: windows-latest
+            bin: jrsonnet.exe
+            name: jrsonnet-windows-gnu-amd64.exe
           - target: x86_64-pc-windows-msvc
             os: windows-latest
             bin: jrsonnet.exe
@@ -71,6 +99,7 @@
             os: ubuntu-latest
             bin: jrsonnet
             name: jrsonnet-linux-gnu-amd64
+
           - target: x86_64-unknown-linux-musl
             os: ubuntu-latest
             bin: jrsonnet
@@ -87,16 +116,52 @@
       - name: Checkout
         uses: actions/checkout@v2
 
+      - name: Linux x86 cross compiler
+        if: ${{ matrix.target == 'i686-unknown-linux-gnu' }}
+        run: sudo apt install gcc-multilib
+
+      - name: Windows x86 cross compiler
+        if: ${{ matrix.target == 'i686-pc-windows-gnu' }}
+        uses: egor-tensin/setup-mingw@v2
+        with:
+          platform: x86
+
+      - name: ARM cross compiler
+        if: ${{ matrix.target == 'aarch64-unknown-linux-gnu' }}
+        uses: actions-rs/cargo@v1
+        with:
+          command: install
+          args: cross
+
+      - name: ARM gcc
+        if: ${{ matrix.target == 'aarch64-unknown-linux-gnu' }}
+        run: sudo apt install gcc-aarch64-linux-gnu
+
+      - name: Run ARM build
+        if: ${{ matrix.target == 'aarch64-unknown-linux-gnu' }}
+        shell: bash
+        run: cross build --bin=jrsonnet --release --target ${{ matrix.target }}
+
+      - name: Run ARM strip
+        if: ${{ matrix.target == 'aarch64-unknown-linux-gnu' }}
+        shell: bash
+        run: aarch64-linux-gnu-strip target/${{ matrix.target }}/release/${{ matrix.bin }}
+
       - name: Run build
+        if: ${{ matrix.target != 'aarch64-unknown-linux-gnu' }}
         uses: actions-rs/cargo@v1
         with:
           command: build
           args: --bin=jrsonnet --release --target ${{ matrix.target }}
 
+      - name: Run strip
+        if: ${{ matrix.target != 'aarch64-unknown-linux-gnu' }}
+        shell: bash
+        run: strip target/${{ matrix.target }}/release/${{ matrix.bin }}
+
       - name: Package
         shell: bash
         run: |
-          strip target/${{ matrix.target }}/release/${{ matrix.bin }}
           cd target/${{ matrix.target }}/release
 
           cp ${{ matrix.bin }} ../../../${{ matrix.name }}
modifiedCargo.lockdiffbeforeafterboth
65[[package]]65[[package]]
66name = "clap"66name = "clap"
67version = "3.0.0-beta.2"67version = "3.0.0-beta.2"
68source = "registry+https://github.com/rust-lang/crates.io-index"68source = "git+https://github.com/clap-rs/clap?rev=92f744cc49d12d32261010d355dc215a6d2487b9#92f744cc49d12d32261010d355dc215a6d2487b9"
69checksum = "4bd1061998a501ee7d4b6d449020df3266ca3124b941ec56cf2005c3779ca142"
70dependencies = [69dependencies = [
71 "atty",70 "atty",
72 "bitflags",71 "bitflags",
77 "strsim",76 "strsim",
78 "termcolor",77 "termcolor",
79 "textwrap",78 "textwrap",
80 "unicode-width",
81 "vec_map",79 "vec_map",
82]80]
8381
84[[package]]82[[package]]
85name = "clap_derive"83name = "clap_derive"
86version = "3.0.0-beta.2"84version = "3.0.0-beta.2"
87source = "registry+https://github.com/rust-lang/crates.io-index"85source = "git+https://github.com/clap-rs/clap?rev=92f744cc49d12d32261010d355dc215a6d2487b9#92f744cc49d12d32261010d355dc215a6d2487b9"
88checksum = "370f715b81112975b1b69db93e0b56ea4cd4e5002ac43b2da8474106a54096a1"
89dependencies = [86dependencies = [
90 "heck",87 "heck",
91 "proc-macro-error",88 "proc-macro-error",
97[[package]]94[[package]]
98name = "clap_generate"95name = "clap_generate"
99version = "3.0.0-beta.2"96version = "3.0.0-beta.2"
100source = "registry+https://github.com/rust-lang/crates.io-index"97source = "git+https://github.com/clap-rs/clap?rev=92f744cc49d12d32261010d355dc215a6d2487b9#92f744cc49d12d32261010d355dc215a6d2487b9"
101checksum = "adf420f8b687b628d2915ccfd43a660c437a170432e3fbcb66944e8717a0d68f"
102dependencies = [98dependencies = [
103 "clap",99 "clap",
104]100]
166162
167[[package]]163[[package]]
168name = "jrsonnet"164name = "jrsonnet"
169version = "0.3.7"165version = "0.3.8"
170dependencies = [166dependencies = [
171 "clap",167 "clap",
172 "clap_generate",168 "clap_generate",
179175
180[[package]]176[[package]]
181name = "jrsonnet-cli"177name = "jrsonnet-cli"
182version = "0.3.7"178version = "0.3.8"
183dependencies = [179dependencies = [
184 "clap",180 "clap",
185 "jrsonnet-evaluator",181 "jrsonnet-evaluator",
188184
189[[package]]185[[package]]
190name = "jrsonnet-evaluator"186name = "jrsonnet-evaluator"
191version = "0.3.7"187version = "0.3.8"
192dependencies = [188dependencies = [
193 "annotate-snippets",189 "annotate-snippets",
194 "anyhow",190 "anyhow",
209205
210[[package]]206[[package]]
211name = "jrsonnet-interner"207name = "jrsonnet-interner"
212version = "0.3.7"208version = "0.3.8"
213dependencies = [209dependencies = [
214 "gc",210 "gc",
215 "rustc-hash",211 "rustc-hash",
218214
219[[package]]215[[package]]
220name = "jrsonnet-parser"216name = "jrsonnet-parser"
221version = "0.3.7"217version = "0.3.8"
222dependencies = [218dependencies = [
223 "gc",219 "gc",
224 "jrsonnet-interner",220 "jrsonnet-interner",
230226
231[[package]]227[[package]]
232name = "jrsonnet-stdlib"228name = "jrsonnet-stdlib"
233version = "0.3.7"229version = "0.3.8"
234230
235[[package]]231[[package]]
236name = "jrsonnet-types"232name = "jrsonnet-types"
237version = "0.3.7"233version = "0.3.8"
238dependencies = [234dependencies = [
239 "gc",235 "gc",
240 "peg",236 "peg",
241]237]
242238
243[[package]]239[[package]]
244name = "jsonnet"240name = "jsonnet"
245version = "0.3.7"241version = "0.3.8"
246dependencies = [242dependencies = [
247 "jrsonnet-evaluator",243 "jrsonnet-evaluator",
248 "jrsonnet-interner",244 "jrsonnet-interner",
288284
289[[package]]285[[package]]
290name = "os_str_bytes"286name = "os_str_bytes"
291version = "2.4.0"287version = "3.0.0"
292source = "registry+https://github.com/rust-lang/crates.io-index"288source = "registry+https://github.com/rust-lang/crates.io-index"
293checksum = "afb2e1c3ee07430c2cf76151675e583e0f19985fa6efae47d6848a3e2c824f85"289checksum = "e293568965aea261bdf010db17df7030e3c9a275c415d51d6112f7cf9b7af012"
294290
295[[package]]291[[package]]
296name = "pathdiff"292name = "pathdiff"
450446
451[[package]]447[[package]]
452name = "textwrap"448name = "textwrap"
453version = "0.12.1"449version = "0.13.4"
454source = "registry+https://github.com/rust-lang/crates.io-index"450source = "registry+https://github.com/rust-lang/crates.io-index"
455checksum = "203008d98caf094106cfaba70acfed15e18ed3ddb7d94e49baec153a2b462789"451checksum = "cd05616119e612a8041ef58f2b578906cc2531a6069047ae092cfb86a325d835"
456dependencies = [452dependencies = [
457 "unicode-width",453 "unicode-width",
458]454]
modifiedREADME.mddiffbeforeafterboth
--- a/README.md
+++ b/README.md
@@ -16,10 +16,6 @@
 
 In the end, it's always fun to implement something in Rust.
 
-## How to install?
-
-We build x64 binaries for Apple, Windows MSVC, and Linux GNU during the release process. If your system is one of those, you can check out the [latest release](https://github.com/CertainLach/jrsonnet/releases/latest) to get your pre-built binary. Otherwise, you'll need to have a rust toolchain and install the package through cargo with `cargo install jrsonnet`.
-
 ## Compliance with the [specification](https://jsonnet.org/ref/spec.html)
 
 - Passes all the original `examples` tests
modifiedbindings/jsonnet/Cargo.tomldiffbeforeafterboth
--- a/bindings/jsonnet/Cargo.toml
+++ b/bindings/jsonnet/Cargo.toml
@@ -1,16 +1,16 @@
 [package]
 name = "jsonnet"
 description = "Rust implementation of libjsonnet.so"
-version = "0.3.7"
+version = "0.3.8"
 authors = ["Yaroslav Bolyukin <iam@lach.pw>"]
 license = "MIT"
 edition = "2018"
 publish = false
 
 [dependencies]
-jrsonnet-interner = { path = "../../crates/jrsonnet-interner", version = "0.3.7" }
-jrsonnet-evaluator = { path = "../../crates/jrsonnet-evaluator", version = "0.3.7" }
-jrsonnet-parser = { path = "../../crates/jrsonnet-parser", version = "0.3.7" }
+jrsonnet-interner = { path = "../../crates/jrsonnet-interner", version = "0.3.8" }
+jrsonnet-evaluator = { path = "../../crates/jrsonnet-evaluator", version = "0.3.8" }
+jrsonnet-parser = { path = "../../crates/jrsonnet-parser", version = "0.3.8" }
 
 [lib]
 crate-type = ["cdylib"]
modifiedcmds/jrsonnet/Cargo.tomldiffbeforeafterboth
--- a/cmds/jrsonnet/Cargo.toml
+++ b/cmds/jrsonnet/Cargo.toml
@@ -1,10 +1,11 @@
 [package]
 name = "jrsonnet"
 description = "Rust jsonnet implementation"
-version = "0.3.7"
+version = "0.3.8"
 authors = ["Yaroslav Bolyukin <iam@lach.pw>"]
 license = "MIT"
 edition = "2018"
+publish = false
 
 [features]
 default = []
@@ -12,11 +13,17 @@
 mimalloc = []
 
 [dependencies]
-jrsonnet-evaluator = { path = "../../crates/jrsonnet-evaluator", version = "0.3.7" }
-jrsonnet-parser = { path = "../../crates/jrsonnet-parser", version = "0.3.7" }
-jrsonnet-cli = { path = "../../crates/jrsonnet-cli", version = "0.3.7" }
+jrsonnet-evaluator = { path = "../../crates/jrsonnet-evaluator", version = "0.3.8" }
+jrsonnet-parser = { path = "../../crates/jrsonnet-parser", version = "0.3.8" }
+jrsonnet-cli = { path = "../../crates/jrsonnet-cli", version = "0.3.8" }
 # TODO: Fix mimalloc compile errors, and use them
 mimallocator = { version = "0.1.3", optional = true }
 thiserror = "1.0"
-clap = "3.0.0-beta.2"
-clap_generate = "3.0.0-beta.2"
+
+[dependencies.clap]
+git = "https://github.com/clap-rs/clap"
+rev = "92f744cc49d12d32261010d355dc215a6d2487b9"
+
+[dependencies.clap_generate]
+git = "https://github.com/clap-rs/clap"
+rev = "92f744cc49d12d32261010d355dc215a6d2487b9"
modifiedcrates/jrsonnet-cli/Cargo.tomldiffbeforeafterboth
--- a/crates/jrsonnet-cli/Cargo.toml
+++ b/crates/jrsonnet-cli/Cargo.toml
@@ -1,12 +1,16 @@
 [package]
 name = "jrsonnet-cli"
 description = "Utilities for building jrsonnet CLIs"
-version = "0.3.7"
+version = "0.3.8"
 authors = ["Yaroslav Bolyukin <iam@lach.pw>"]
 license = "MIT"
 edition = "2018"
+publish = false
 
 [dependencies]
-jrsonnet-evaluator = { path = "../../crates/jrsonnet-evaluator", version = "0.3.7", features = ["explaining-traces"] }
-jrsonnet-parser = { path = "../../crates/jrsonnet-parser", version = "0.3.7" }
-clap = "3.0.0-beta.2"
+jrsonnet-evaluator = { path = "../../crates/jrsonnet-evaluator", version = "0.3.6", features = ["explaining-traces"] }
+jrsonnet-parser = { path = "../../crates/jrsonnet-parser", version = "0.3.6" }
+
+[dependencies.clap]
+git = "https://github.com/clap-rs/clap"
+rev = "92f744cc49d12d32261010d355dc215a6d2487b9"
modifiedcrates/jrsonnet-evaluator/Cargo.tomldiffbeforeafterboth
--- a/crates/jrsonnet-evaluator/Cargo.toml
+++ b/crates/jrsonnet-evaluator/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "jrsonnet-evaluator"
 description = "jsonnet interpreter"
-version = "0.3.7"
+version = "0.3.8"
 authors = ["Yaroslav Bolyukin <iam@lach.pw>"]
 license = "MIT"
 edition = "2018"
@@ -24,10 +24,10 @@
 unstable = []
 
 [dependencies]
-jrsonnet-interner = { path = "../jrsonnet-interner", version = "0.3.7" }
-jrsonnet-parser = { path = "../jrsonnet-parser", version = "0.3.7" }
-jrsonnet-stdlib = { path = "../jrsonnet-stdlib", version = "0.3.7" }
-jrsonnet-types = { path = "../jrsonnet-types", version = "0.3.7" }
+jrsonnet-interner = { path = "../jrsonnet-interner", version = "0.3.8" }
+jrsonnet-parser = { path = "../jrsonnet-parser", version = "0.3.8" }
+jrsonnet-stdlib = { path = "../jrsonnet-stdlib", version = "0.3.8" }
+jrsonnet-types = { path = "../jrsonnet-types", version = "0.3.8" }
 pathdiff = "0.2.0"
 
 md5 = "0.7.0"
@@ -61,7 +61,7 @@
 optional = true
 
 [build-dependencies]
-jrsonnet-parser = { path = "../jrsonnet-parser", features = ["serialize", "deserialize"], version = "0.3.7" }
-jrsonnet-stdlib = { path = "../jrsonnet-stdlib", version = "0.3.7" }
+jrsonnet-parser = { path = "../jrsonnet-parser", features = ["serialize", "deserialize"], version = "0.3.8" }
+jrsonnet-stdlib = { path = "../jrsonnet-stdlib", version = "0.3.8" }
 serde = "1.0"
 bincode = "1.3.1"
addedcrates/jrsonnet-interner/.gitignorediffbeforeafterboth
--- /dev/null
+++ b/crates/jrsonnet-interner/.gitignore
@@ -0,0 +1,2 @@
+/target
+Cargo.lock
modifiedcrates/jrsonnet-interner/Cargo.tomldiffbeforeafterboth
--- a/crates/jrsonnet-interner/Cargo.toml
+++ b/crates/jrsonnet-interner/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "jrsonnet-interner"
 description = "Jrsonnet string interning"
-version = "0.3.7"
+version = "0.3.8"
 authors = ["Yaroslav Bolyukin <iam@lach.pw>"]
 license = "MIT"
 edition = "2018"
modifiedcrates/jrsonnet-parser/Cargo.tomldiffbeforeafterboth
--- a/crates/jrsonnet-parser/Cargo.toml
+++ b/crates/jrsonnet-parser/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "jrsonnet-parser"
 description = "jsonnet language parser and AST"
-version = "0.3.7"
+version = "0.3.8"
 authors = ["Yaroslav Bolyukin <iam@lach.pw>"]
 license = "MIT"
 edition = "2018"
@@ -12,7 +12,7 @@
 deserialize = ["serde"]
 
 [dependencies]
-jrsonnet-interner = { path = "../jrsonnet-interner", version = "0.3.7" }
+jrsonnet-interner = { path = "../jrsonnet-interner", version = "0.3.8" }
 
 peg = "0.7.0"
 unescape = "0.1.0"
@@ -21,4 +21,4 @@
 gc = { version = "0.4.1", features = ["derive"] }
 
 [dev-dependencies]
-jrsonnet-stdlib = { path = "../jrsonnet-stdlib", version = "0.3.7" }
+jrsonnet-stdlib = { path = "../jrsonnet-stdlib", version = "0.3.8" }
modifiedcrates/jrsonnet-stdlib/Cargo.tomldiffbeforeafterboth
--- a/crates/jrsonnet-stdlib/Cargo.toml
+++ b/crates/jrsonnet-stdlib/Cargo.toml
@@ -1,7 +1,11 @@
 [package]
 name = "jrsonnet-stdlib"
 description = "jsonnet standard library packaged as crate"
-version = "0.3.7"
+version = "0.3.8"
 authors = ["Yaroslav Bolyukin <iam@lach.pw>"]
 license = "MIT"
 edition = "2018"
+
+[features]
+
+[dependencies]
modifiedcrates/jrsonnet-types/Cargo.tomldiffbeforeafterboth
--- a/crates/jrsonnet-types/Cargo.toml
+++ b/crates/jrsonnet-types/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "jrsonnet-types"
 description = "Jrsonnet type system definition"
-version = "0.3.7"
+version = "0.3.8"
 authors = ["Yaroslav Bolyukin <iam@lach.pw>"]
 license = "MIT"
 edition = "2018"