From c576da70289f05c86be7c86fdc12b6dd0b82de4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Mei=C3=9Fner?= Date: Tue, 25 Apr 2023 20:01:29 +0200 Subject: [PATCH] Removes built-ins from the SDK. --- sdk/src/builtins.rs | 77 --------------------------------------------- sdk/src/lib.rs | 1 - 2 files changed, 78 deletions(-) delete mode 100644 sdk/src/builtins.rs diff --git a/sdk/src/builtins.rs b/sdk/src/builtins.rs deleted file mode 100644 index e837abcdb26e0d..00000000000000 --- a/sdk/src/builtins.rs +++ /dev/null @@ -1,77 +0,0 @@ -//! Solana helper macros for declaring built-in programs. - -#[rustversion::since(1.46.0)] -#[macro_export] -macro_rules! declare_builtin_name { - ($name:ident, $id:path, $entrypoint:expr) => { - #[macro_export] - macro_rules! $name { - () => { - // Subtle: - // The outer `declare_builtin_name!` macro may be expanded in another - // crate, causing the macro `$name!` to be defined in that - // crate. We want to emit a call to `$crate::id()`, and have - // `$crate` be resolved in the crate where `$name!` gets defined, - // *not* in this crate (where `declare_builtin_name! is defined). - // - // When a macro_rules! macro gets expanded, any $crate tokens - // in its output will be 'marked' with the crate they were expanded - // from. This includes nested macros like our macro `$name` - even - // though it looks like a separate macro, Rust considers it to be - // just another part of the output of `declare_program!`. - // - // We pass `$name` as the second argument to tell `respan!` to - // apply use the `Span` of `$name` when resolving `$crate::id`. - // This causes `$crate` to behave as though it was written - // at the same location as the `$name` value passed - // to `declare_builtin_name!` (e.g. the 'foo' in - // `declare_builtin_name(foo)` - // - // See the `respan!` macro for more details. - // This should use `crate::respan!` once - // https://github.com/rust-lang/rust/pull/72121 is merged: - // see https://github.com/solana-labs/solana/issues/10933. - // For now, we need to use `::solana_sdk` - // - // `respan!` respans the path `$crate::id`, which we then call (hence the extra - // parens) - ( - stringify!($name).to_string(), - ::solana_sdk::respan!($crate::$id, $name)(), - $entrypoint, - ) - }; - } - }; -} - -#[rustversion::not(since(1.46.0))] -#[macro_export] -macro_rules! declare_builtin_name { - ($name:ident, $id:path, $entrypoint:expr) => { - #[macro_export] - macro_rules! $name { - () => { - (stringify!($name).to_string(), $crate::$id(), $entrypoint) - }; - } - }; -} - -/// Convenience macro to declare a built-in program. -/// -/// bs58_string: bs58 string representation the program's id -/// name: Name of the program -/// entrypoint: Program's entrypoint, must be of `type Entrypoint` -/// id: Path to the program id access function, used if this macro is not -/// called in `src/lib` -#[macro_export] -macro_rules! declare_builtin { - ($bs58_string:expr, $name:ident, $entrypoint:expr) => { - $crate::declare_builtin!($bs58_string, $name, $entrypoint, id); - }; - ($bs58_string:expr, $name:ident, $entrypoint:expr, $id:path) => { - $crate::declare_id!($bs58_string); - $crate::declare_builtin_name!($name, $id, $entrypoint); - }; -} diff --git a/sdk/src/lib.rs b/sdk/src/lib.rs index a18ac583a8e3f6..acea5822b7a85b 100644 --- a/sdk/src/lib.rs +++ b/sdk/src/lib.rs @@ -57,7 +57,6 @@ pub use solana_program::{ pub mod account; pub mod account_utils; -pub mod builtins; pub mod client; pub mod commitment_config; pub mod compute_budget;