From d62c9ac309952863ecf514d72d7ef7b6aaf1fdb4 Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Fri, 1 Feb 2019 10:14:31 -0800 Subject: [PATCH] Create program/ crate avoid / crate dependency on bpfloader The bpfloader crate was triggering cargo to perform excessive rebuilds of in-workspace dependencies. Unclear why exactly, but seems related to the special dual crate-type employed by bpfloader. --- Cargo.lock | 13 ++++++++++++- Cargo.toml | 6 +++--- programs/Cargo.toml | 26 ++++++++++++++++++++++++++ {tests => programs/tests}/programs.rs | 0 4 files changed, 41 insertions(+), 4 deletions(-) create mode 100644 programs/Cargo.toml rename {tests => programs/tests}/programs.rs (100%) diff --git a/Cargo.lock b/Cargo.lock index 1e51a3c93..7a7c13d13 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1897,7 +1897,6 @@ dependencies = [ "serde 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", - "solana-bpfloader 0.12.0", "solana-drone 0.12.0", "solana-jsonrpc-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "solana-jsonrpc-http-server 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2205,6 +2204,18 @@ dependencies = [ "solana-sdk 0.12.0", ] +[[package]] +name = "solana-programs" +version = "0.12.0" +dependencies = [ + "solana 0.12.0", + "solana-bpfloader 0.12.0", + "solana-logger 0.12.0", + "solana-lualoader 0.12.0", + "solana-native-loader 0.12.0", + "solana-sdk 0.12.0", +] + [[package]] name = "solana-replicator" version = "0.12.0" diff --git a/Cargo.toml b/Cargo.toml index 2f86c0904..4bf3b0e5f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,8 +14,8 @@ edition = "2018" codecov = { repository = "solana-labs/solana", branch = "master", service = "github" } [features] -bpf_c = ["solana-bpfloader/bpf_c"] -bpf_rust = ["solana-bpfloader/bpf_rust"] +bpf_c = [] +bpf_rust = [] chacha = [] cuda = [] erasure = [] @@ -45,7 +45,6 @@ rocksdb = "0.11.0" serde = "1.0.85" serde_derive = "1.0.85" serde_json = "1.0.38" -solana-bpfloader = { path = "programs/native/bpf_loader", version = "0.12.0" } solana-drone = { path = "drone", version = "0.12.0" } solana-jsonrpc-core = "0.4.0" solana-jsonrpc-http-server = "0.4.0" @@ -103,6 +102,7 @@ members = [ "ledger-tool", "logger", "metrics", + "programs", "programs/native/bpf_loader", "programs/native/budget", "programs/native/erc20", diff --git a/programs/Cargo.toml b/programs/Cargo.toml new file mode 100644 index 000000000..16c12cf64 --- /dev/null +++ b/programs/Cargo.toml @@ -0,0 +1,26 @@ +[package] +name = "solana-programs" +description = "Blockchain, Rebuilt for Scale" +version = "0.12.0" +documentation = "https://docs.rs/solana" +homepage = "https://solana.com/" +readme = "README.md" +repository = "https://github.com/solana-labs/solana" +authors = ["Solana Maintainers "] +license = "Apache-2.0" +edition = "2018" + +[features] +bpf_c = ["solana-bpfloader/bpf_c"] +bpf_rust = ["solana-bpfloader/bpf_rust"] +chacha = ["solana/chacha"] +cuda = ["solana/cuda"] +erasure = ["solana/erasure"] + +[dependencies] +solana = { path = "..", version = "0.12.0" } +solana-bpfloader = { path = "native/bpf_loader", version = "0.12.0" } +solana-logger = { path = "../logger", version = "0.12.0" } +solana-lualoader = { path = "native/lua_loader", version = "0.12.0" } +solana-native-loader = { path = "native/native_loader", version = "0.12.0" } +solana-sdk = { path = "../sdk", version = "0.12.0" } diff --git a/tests/programs.rs b/programs/tests/programs.rs similarity index 100% rename from tests/programs.rs rename to programs/tests/programs.rs