difftreelog
Merge commit 'e1eaabb7a756db2b7db5ffbe5e30bb53c72168b0' into gc-v2
in: master
12 files changed
.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 }}
Cargo.lockdiffbeforeafterboth--- a/Cargo.lock
+++ b/Cargo.lock
@@ -65,8 +65,7 @@
[[package]]
name = "clap"
version = "3.0.0-beta.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bd1061998a501ee7d4b6d449020df3266ca3124b941ec56cf2005c3779ca142"
+source = "git+https://github.com/clap-rs/clap?rev=92f744cc49d12d32261010d355dc215a6d2487b9#92f744cc49d12d32261010d355dc215a6d2487b9"
dependencies = [
"atty",
"bitflags",
@@ -77,15 +76,13 @@
"strsim",
"termcolor",
"textwrap",
- "unicode-width",
"vec_map",
]
[[package]]
name = "clap_derive"
version = "3.0.0-beta.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "370f715b81112975b1b69db93e0b56ea4cd4e5002ac43b2da8474106a54096a1"
+source = "git+https://github.com/clap-rs/clap?rev=92f744cc49d12d32261010d355dc215a6d2487b9#92f744cc49d12d32261010d355dc215a6d2487b9"
dependencies = [
"heck",
"proc-macro-error",
@@ -97,8 +94,7 @@
[[package]]
name = "clap_generate"
version = "3.0.0-beta.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adf420f8b687b628d2915ccfd43a660c437a170432e3fbcb66944e8717a0d68f"
+source = "git+https://github.com/clap-rs/clap?rev=92f744cc49d12d32261010d355dc215a6d2487b9#92f744cc49d12d32261010d355dc215a6d2487b9"
dependencies = [
"clap",
]
@@ -166,7 +162,7 @@
[[package]]
name = "jrsonnet"
-version = "0.3.7"
+version = "0.3.8"
dependencies = [
"clap",
"clap_generate",
@@ -179,7 +175,7 @@
[[package]]
name = "jrsonnet-cli"
-version = "0.3.7"
+version = "0.3.8"
dependencies = [
"clap",
"jrsonnet-evaluator",
@@ -188,7 +184,7 @@
[[package]]
name = "jrsonnet-evaluator"
-version = "0.3.7"
+version = "0.3.8"
dependencies = [
"annotate-snippets",
"anyhow",
@@ -209,7 +205,7 @@
[[package]]
name = "jrsonnet-interner"
-version = "0.3.7"
+version = "0.3.8"
dependencies = [
"gc",
"rustc-hash",
@@ -218,7 +214,7 @@
[[package]]
name = "jrsonnet-parser"
-version = "0.3.7"
+version = "0.3.8"
dependencies = [
"gc",
"jrsonnet-interner",
@@ -230,11 +226,11 @@
[[package]]
name = "jrsonnet-stdlib"
-version = "0.3.7"
+version = "0.3.8"
[[package]]
name = "jrsonnet-types"
-version = "0.3.7"
+version = "0.3.8"
dependencies = [
"gc",
"peg",
@@ -242,7 +238,7 @@
[[package]]
name = "jsonnet"
-version = "0.3.7"
+version = "0.3.8"
dependencies = [
"jrsonnet-evaluator",
"jrsonnet-interner",
@@ -288,9 +284,9 @@
[[package]]
name = "os_str_bytes"
-version = "2.4.0"
+version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afb2e1c3ee07430c2cf76151675e583e0f19985fa6efae47d6848a3e2c824f85"
+checksum = "e293568965aea261bdf010db17df7030e3c9a275c415d51d6112f7cf9b7af012"
[[package]]
name = "pathdiff"
@@ -450,9 +446,9 @@
[[package]]
name = "textwrap"
-version = "0.12.1"
+version = "0.13.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "203008d98caf094106cfaba70acfed15e18ed3ddb7d94e49baec153a2b462789"
+checksum = "cd05616119e612a8041ef58f2b578906cc2531a6069047ae092cfb86a325d835"
dependencies = [
"unicode-width",
]
README.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
bindings/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"]
cmds/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"
crates/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"
crates/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"
crates/jrsonnet-interner/.gitignorediffbeforeafterbothno changes
crates/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"
crates/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" }
crates/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]
crates/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"