Giter VIP home page Giter VIP logo

ldk-c-bindings's People

Contributors

afilini avatar arik-so avatar jkczyz avatar jurvis avatar orenfromberg avatar thebluematt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ldk-c-bindings's Issues

Map `&Option<Enum>`

We need this for 106, where we now have a public field which is an Option<Enum> and we need to be able to return it.

Try to Switch to LLD on OSX

With LLVM/clang 13 now released, we should try following Bitcoin Core and using LLVM's linker instead of OSX's linker. This may allow for deterministic Java builds.

Fails to build on macos x86

I'm trying to build this on macos x86 but fails with:

./genbindings.sh /opt/rust-lightning-matt true
...
+ '[' '-ffile-prefix-map=/Users/g/.cargo= -frandom-seed=42 -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -mmacosx-version-min=10.9 --target=aarch64-apple-darwin -mcpu=apple-a14' '!=' '' ']'
+ RUSTFLAGS='--remap-path-prefix /opt/rust-lightning-matt=rust-lightning --remap-path-prefix /opt/ldk-c-bindings=ldk-c-bindings --remap-path-prefix /Users/g/.cargo= -C target-cpu=apple-a14'
+ cargo build --target aarch64-apple-darwin
   Compiling cc v1.0.69
   Compiling autocfg v1.0.1
   Compiling bitcoin_hashes v0.9.7
   Compiling bech32 v0.7.3
error[E0463]: can't find crate for `std`
  |
  = note: the `aarch64-apple-darwin` target may not be installed
  = help: consider downloading the target with `rustup target add aarch64-apple-darwin`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0463`.
error: could not compile `bech32`

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error[E0463]: can't find crate for `std`
  |
  = note: the `aarch64-apple-darwin` target may not be installed
  = help: consider downloading the target with `rustup target add aarch64-apple-darwin`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0463`.
error: build failed

See full output

Expose `KVStorePersister`

Sadly this is currently not persisted as it requires some io stuff that wasn't in place. Still, it should very much easily be exposeable, so we really need to.

OSX fail to build

genbindings.sh fails on macos. target file doesn't create. Can anyone help with it?

Here is an example of an error I get: genbindings.sh

(base) ➜ ldk-c-bindings git:(main) ./genbindings.sh /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning false

  • '[' '!' -d /Users/brylee/Documents/Work/untitled/Gitlab/ldk/rust-lightning/lightning -o false '!=' true -a false '!=' false ']'
  • export LC_ALL=C
  • LC_ALL=C
    ++ pwd
  • ORIG_PWD=/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings
  • cd /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning
    ++ pwd
  • LIGHTNING_PATH=/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning
    ++ git describe --tag --dirty --abbrev=16
  • LIGHTNING_GIT=v0.0.108-22-gabf6564a44ad58cc
  • cd /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings
    ++ rustc --version --verbose
    ++ grep host:
    ++ awk '{ print $2 }'
  • HOST_PLATFORM=aarch64-apple-darwin
    ++ echo aarch64-apple-darwin
    ++ sed s/-/_/g
  • ENV_TARGET=aarch64_apple_darwin
    ++ which rustc
  • export LDK_RUSTC_PATH=/Users/brylee/.cargo/bin/rustc
  • LDK_RUSTC_PATH=/Users/brylee/.cargo/bin/rustc
    ++ pwd
  • export RUSTC=/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/deterministic-build-wrappers/rustc
  • RUSTC=/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/deterministic-build-wrappers/rustc
  • PATH='/Users/brylee/opt/anaconda3/bin:/Users/brylee/opt/anaconda3/condabin:/opt/homebrew/bin:/opt/homebrew/sbin:/Library/Frameworks/Python.framework/Versions/3.10/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/Library/Apple/usr/bin:/Users/brylee/.cargo/bin:~/.cargo/bin'
  • BASE_CFLAGS=
  • LOCAL_CFLAGS=
    ++ pwd
  • BASE_RUSTFLAGS='--cfg=c_bindings --remap-path-prefix /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning=rust-lightning --remap-path-prefix /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings=ldk-c-bindings --remap-path-prefix /Users/brylee/.cargo='
  • echo 'int main() {}'
  • clang -o /dev/null -ffile-prefix-map=/Users/brylee/.cargo= genbindings_path_map_test_file.c
  • export BASE_CFLAGS=-ffile-prefix-map=/Users/brylee/.cargo=
  • BASE_CFLAGS=-ffile-prefix-map=/Users/brylee/.cargo=
  • BASE_CFLAGS='-ffile-prefix-map=/Users/brylee/.cargo= -frandom-seed=42'
  • LOCAL_CFLAGS='-Wall -Wno-nullability-completeness -pthread -Iinclude/'
  • HOST_OSX=false
  • '[' aarch64-apple-darwin = x86_64-apple-darwin ']'
  • '[' aarch64-apple-darwin = aarch64-apple-darwin ']'
  • HOST_OSX=true
  • BASE_HOST_CFLAGS='-ffile-prefix-map=/Users/brylee/.cargo= -frandom-seed=42'
  • '[' true = true ']'
  • export MACOSX_DEPLOYMENT_TARGET=10.9
  • MACOSX_DEPLOYMENT_TARGET=10.9
    ++ xcrun --show-sdk-path
  • LOCAL_CFLAGS='-Wall -Wno-nullability-completeness -pthread -Iinclude/ --target=aarch64-apple-darwin -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=10.9'
    ++ xcrun --show-sdk-path
  • BASE_HOST_CFLAGS='-ffile-prefix-map=/Users/brylee/.cargo= -frandom-seed=42 --target=aarch64-apple-darwin -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=10.9'
  • clang -o /dev/null -ffile-prefix-map=/Users/brylee/.cargo= -frandom-seed=42 --target=aarch64-apple-darwin -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=10.9 --target=aarch64-apple-darwin -mcpu=apple-a14 genbindings_path_map_test_file.c
  • export 'CFLAGS_aarch64_apple_darwin=-ffile-prefix-map=/Users/brylee/.cargo= -frandom-seed=42 --target=aarch64-apple-darwin -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=10.9 --target=aarch64-apple-darwin -mcpu=apple-a14'
  • CFLAGS_aarch64_apple_darwin='-ffile-prefix-map=/Users/brylee/.cargo= -frandom-seed=42 --target=aarch64-apple-darwin -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=10.9 --target=aarch64-apple-darwin -mcpu=apple-a14'
  • rm genbindings_path_map_test_file.c
  • case "$ENV_TARGET" in
  • export 'RUSTFLAGS=--cfg=c_bindings --remap-path-prefix /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning=rust-lightning --remap-path-prefix /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings=ldk-c-bindings --remap-path-prefix /Users/brylee/.cargo= -C target-cpu=apple-a14'
  • RUSTFLAGS='--cfg=c_bindings --remap-path-prefix /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning=rust-lightning --remap-path-prefix /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings=ldk-c-bindings --remap-path-prefix /Users/brylee/.cargo= -C target-cpu=apple-a14'
  • export 'CFLAGS_aarch64_apple_darwin=-ffile-prefix-map=/Users/brylee/.cargo= -frandom-seed=42 --target=aarch64-apple-darwin -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=10.9 -mcpu=apple-a14'
  • CFLAGS_aarch64_apple_darwin='-ffile-prefix-map=/Users/brylee/.cargo= -frandom-seed=42 --target=aarch64-apple-darwin -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=10.9 -mcpu=apple-a14'
  • cd c-bindings-gen
  • cargo build --release
    Updating crates.io index
    Compiling proc-macro2 v1.0.39
    Compiling unicode-ident v1.0.1
    Compiling syn v1.0.96
    Compiling quote v1.0.18
    Compiling c-bindings-gen v0.0.1 (/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/c-bindings-gen)
    Finished release [optimized + debuginfo] target(s) in 35.28s
  • cd ..
  • mv lightning-c-bindings/src/c_types/mod.rs ./
  • mv lightning-c-bindings/src/bitcoin ./
  • git checkout lightning-c-bindings/src
    Updated 3 paths from the index
  • git checkout lightning-c-bindings/include
    Updated 0 paths from the index
    ++ git describe --tag --dirty --abbrev=16
  • BINDINGS_GIT=v0.0.106.3-7-gc014ce6a2df808ff
    ++ cat
  • echo '#ifndef _LDK_HEADER_VER
    static inline int _ldk_strncmp(const char *s1, const char *s2, uint64_t n) {
    if (n && *s1 != *s2) return 1;
    while (n && *s1 != 0 && *s2 != 0) {
    s1++; s2++; n--;
    if (n && *s1 != *s2) return 1;
    }
    return 0;
    }

#define _LDK_HEADER_VER "v0.0.108-22-gabf6564a44ad58cc"
#define _LDK_C_BINDINGS_HEADER_VER "v0.0.106.3-7-gc014ce6a2df808ff"
static inline const char* check_get_ldk_version() {
LDKStr bin_ver = _ldk_get_compiled_version();
if (_ldk_strncmp(_LDK_HEADER_VER, (const char*)bin_ver.chars, bin_ver.len) != 0) {
// Version mismatch, we don'''t know what we'''re running!
return 0;
}
return _LDK_HEADER_VER;
}
static inline const char* check_get_ldk_bindings_version() {
LDKStr bin_ver = _ldk_c_bindings_get_compiled_version();
if (_ldk_strncmp(_LDK_C_BINDINGS_HEADER_VER, (const char*)bin_ver.chars, bin_ver.len) != 0) {
// Version mismatch, we don'''t know what we'''re running!
return 0;
}
return _LDK_C_BINDINGS_HEADER_VER;
}
#endif /* _LDK_HEADER_VER */'

  • rm -rf lightning-c-bindings/src
  • mkdir -p lightning-c-bindings/src/c_types lightning-c-bindings/src/lightning
  • mv ./mod.rs lightning-c-bindings/src/c_types/
  • mv ./bitcoin lightning-c-bindings/src/
    ++ pwd
  • OUT=/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/lightning-c-bindings/src
    ++ pwd
  • OUT_TEMPL=/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/lightning-c-bindings/src/c_types/derived.rs
    ++ pwd
  • OUT_F=/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/lightning-c-bindings/include/ldk_rust_types.h
    ++ pwd
  • OUT_CPP=/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/lightning-c-bindings/include/lightningpp.hpp
    ++ pwd
  • BIN=/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/c-bindings-gen/target/release/c-bindings-gen
  • echo
  • '[' false = true ']'
  • add_crate lightning lightning --features=no-std
  • pushd /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning/lightning
    ~/Documents/Work/Blockware/Gitlab/ldk/rust-lightning/lightning ~/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings
  • RUSTC_BOOTSTRAP=1
  • cargo rustc --profile=check --no-default-features --features=no-std -- --cfg=c_bindings -Zunpretty=expanded
    Updating crates.io index
    Downloaded getrandom v0.2.7
    Downloaded 1 crate (28.9 KB) in 1.02s
    Compiling cc v1.0.73
    Compiling libc v0.2.126
    Compiling memchr v2.5.0
    Compiling version_check v0.9.4
    Compiling autocfg v1.1.0
    Checking cfg-if v1.0.0
    Checking ahash v0.3.8
    Checking once_cell v1.12.0
    Checking bech32 v0.8.1
    Compiling ahash v0.7.6
    Compiling hashbrown v0.8.2
    Compiling secp256k1-sys v0.5.2
    Compiling bitcoinconsensus v0.19.0-3
    Checking core2 v0.3.3
    Checking bitcoin_hashes v0.10.0
    Checking getrandom v0.2.7
    Checking hashbrown v0.11.2
    Checking secp256k1 v0.22.1
    Checking bitcoin v0.28.1
    Checking lightning v0.0.108 (/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning/lightning)
    Finished dev [optimized + debuginfo] target(s) in 10.17s
  • popd
    ~/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings
  • '[' true = true ']'
  • sed -i.original '1i
    pub mod lightning {
    ' /tmp/lightning-crate-source.txt
  • echo '}'
  • cat /tmp/lightning-crate-source.txt
  • rm /tmp/lightning-crate-source.txt
  • is_gnu_sed
  • sed --version
  • sed -E -i '' 's|#lightning = { .|lightning = { path = "/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning/lightning", default-features = false }|' lightning-c-bindings/Cargo.toml
  • drop_crate lightning-persister
  • is_gnu_sed
  • sed --version
  • sed -E -i '' 's|lightning-persister = { (.*)|#lightning-persister = { \1|' lightning-c-bindings/Cargo.toml
  • drop_crate lightning-background-processor
  • is_gnu_sed
  • sed --version
  • sed -E -i '' 's|lightning-background-processor = { (.*)|#lightning-background-processor = { \1|' lightning-c-bindings/Cargo.toml
  • add_crate lightning-invoice lightning_invoice --features=no-std
  • pushd /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning/lightning-invoice
    ~/Documents/Work/Blockware/Gitlab/ldk/rust-lightning/lightning-invoice ~/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings
  • RUSTC_BOOTSTRAP=1
  • cargo rustc --profile=check --no-default-features --features=no-std -- --cfg=c_bindings -Zunpretty=expanded
    Checking regex-syntax v0.6.26
    Checking hex v0.4.3
    Compiling num-traits v0.2.15
    Checking aho-corasick v0.7.18
    Checking regex v1.5.6
    Checking lightning v0.0.108 (/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning/lightning)
    warning: unused variable: l
    --> lightning/src/util/test_utils.rs:287:7
    |
    287 | let l = self.expected_recv_msgs.lock().unwrap();
    | ^ help: if this is intentional, prefix it with an underscore: _l
    |
    = note: #[warn(unused_variables)] on by default

warning: unused variable: should_request_full_sync
--> lightning/src/util/test_utils.rs:471:7
|
471 | let should_request_full_sync = self.request_full_sync.load(Ordering::Acquire);
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: _should_request_full_sync

warning: unused variable: should_request_full_sync
--> lightning/src/routing/gossip.rs:437:7
|
437 | let should_request_full_sync = self.should_request_full_sync(&their_node_id);
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: _should_request_full_sync

warning: lightning (lib) generated 3 warnings
Checking lightning-invoice v0.16.0 (/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning/lightning-invoice)
warning: unused imports: ExpandedKey, create_from_hash, create
--> lightning-invoice/src/utils.rs:16:38
|
16 | use lightning::ln::inbound_payment::{create, create_from_hash, ExpandedKey};
| ^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^
|
= note: #[warn(unused_imports)] on by default

warning: lightning-invoice (lib) generated 1 warning
Finished dev [optimized + debuginfo] target(s) in 7.55s

  • popd
    ~/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings
  • '[' true = true ']'
  • sed -i.original '1i
    pub mod lightning_invoice {
    ' /tmp/lightning-invoice-crate-source.txt
  • echo '}'
  • cat /tmp/lightning-invoice-crate-source.txt
  • rm /tmp/lightning-invoice-crate-source.txt
  • is_gnu_sed
  • sed --version
  • sed -E -i '' 's|#lightning-invoice = { .|lightning-invoice = { path = "/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning/lightning-invoice", default-features = false }|' lightning-c-bindings/Cargo.toml
  • CARGO_BUILD_ARGS=--features=no-std
  • cat /tmp/crate-source.txt
  • RUST_BACKTRACE=1
  • /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/c-bindings-gen/target/release/c-bindings-gen /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/lightning-c-bindings/src/ /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/lightning-c-bindings/src/c_types/derived.rs /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/lightning-c-bindings/include/ldk_rust_types.h /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/lightning-c-bindings/include/lightningpp.hpp
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring pub(use) tree!
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning_invoice::prelude:: - this may result in resolution failures
    Ignoring leading-colon use!
    Ignoring * use for lightning_invoice::prelude:: - this may result in resolution failures
    Ignoring * use for lightning_invoice::prelude:: - this may result in resolution failures
    Ignoring * use for lightning_invoice::prelude:: - this may result in resolution failures
    Ignoring pub(use) tree!
    Ignoring pub(use) tree!
    Ignoring pub(use) tree!
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::ln::msgs::fuzzy_internal_msgs:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning_invoice::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring leading-colon use!
    Ignoring pub(use) tree!
    Ignoring pub(use) tree!
    Ignoring pub(use) tree!
    Ignoring pub(use) tree!
    Ignoring pub(use) tree!
    Ignoring pub(use) tree!
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring pub(use) tree!
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring pub(use) tree!
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Converting lightning::ln::chan_utils entries...
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    thread 'main' panicked at 'assertion failed: self.write_c_type_intern(w, t, generics, false, false, ptr_for_ref, false,\n true)', src/types.rs:2860:9
    stack backtrace:
    0: rust_begin_unwind
    at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/panicking.rs:584:5
    1: core::panicking::panic_fmt
    at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/panicking.rs:143:14
    2: core::panicking::panic
    at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/panicking.rs:48:5
    3: c_bindings_gen::types::TypeResolver::write_c_type
    at ldk-c-bindings/c-bindings-gen/src/types.rs:2860:3
    4: c_bindings_gen::blocks::write_method_params
    at ldk-c-bindings/c-bindings-gen/src/blocks.rs:558:5
    5: c_bindings_gen::writeln_impl
    at ldk-c-bindings/c-bindings-gen/src/main.rs:1334:10
    6: c_bindings_gen::convert_file
    at ldk-c-bindings/c-bindings-gen/src/main.rs:1882:6
    7: c_bindings_gen::main
    at ldk-c-bindings/c-bindings-gen/src/main.rs:2147:2
    8: core::ops::function::FnOnce::call_once
    at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/ops/function.rs:227:5
    note: Some details are omitted, run with RUST_BACKTRACE=full for a verbose backtrace.
    (base) ➜ ldk-c-bindings git:(main) ✗
    (base) ➜ ldk-c-bindings git:(main) ✗
    (base) ➜ ldk-c-bindings git:(main) ✗ ./genbindings.sh /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning false
  • '[' '!' -d /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning/lightning -o false '!=' true -a false '!=' false ']'
  • export LC_ALL=C
  • LC_ALL=C
    ++ pwd
  • ORIG_PWD=/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings
  • cd /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning
    ++ pwd
  • LIGHTNING_PATH=/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning
    ++ git describe --tag --dirty --abbrev=16
  • LIGHTNING_GIT=v0.0.108-22-gabf6564a44ad58cc
  • cd /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings
    ++ rustc --version --verbose
    ++ grep host:
    ++ awk '{ print $2 }'
  • HOST_PLATFORM=aarch64-apple-darwin
    ++ echo aarch64-apple-darwin
    ++ sed s/-/_/g
  • ENV_TARGET=aarch64_apple_darwin
    ++ which rustc
  • export LDK_RUSTC_PATH=/Users/brylee/.cargo/bin/rustc
  • LDK_RUSTC_PATH=/Users/brylee/.cargo/bin/rustc
    ++ pwd
  • export RUSTC=/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/deterministic-build-wrappers/rustc
  • RUSTC=/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/deterministic-build-wrappers/rustc
  • PATH='/Users/brylee/opt/anaconda3/bin:/Users/brylee/opt/anaconda3/condabin:/opt/homebrew/bin:/opt/homebrew/sbin:/Library/Frameworks/Python.framework/Versions/3.10/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/Library/Apple/usr/bin:/Users/brylee/.cargo/bin:~/.cargo/bin'
  • BASE_CFLAGS=
  • LOCAL_CFLAGS=
    ++ pwd
  • BASE_RUSTFLAGS='--cfg=c_bindings --remap-path-prefix /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning=rust-lightning --remap-path-prefix /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings=ldk-c-bindings --remap-path-prefix /Users/brylee/.cargo='
  • echo 'int main() {}'
  • clang -o /dev/null -ffile-prefix-map=/Users/brylee/.cargo= genbindings_path_map_test_file.c
  • export BASE_CFLAGS=-ffile-prefix-map=/Users/brylee/.cargo=
  • BASE_CFLAGS=-ffile-prefix-map=/Users/brylee/.cargo=
  • BASE_CFLAGS='-ffile-prefix-map=/Users/brylee/.cargo= -frandom-seed=42'
  • LOCAL_CFLAGS='-Wall -Wno-nullability-completeness -pthread -Iinclude/'
  • HOST_OSX=false
  • '[' aarch64-apple-darwin = x86_64-apple-darwin ']'
  • '[' aarch64-apple-darwin = aarch64-apple-darwin ']'
  • HOST_OSX=true
  • BASE_HOST_CFLAGS='-ffile-prefix-map=/Users/brylee/.cargo= -frandom-seed=42'
  • '[' true = true ']'
  • export MACOSX_DEPLOYMENT_TARGET=10.9
  • MACOSX_DEPLOYMENT_TARGET=10.9
    ++ xcrun --show-sdk-path
  • LOCAL_CFLAGS='-Wall -Wno-nullability-completeness -pthread -Iinclude/ --target=aarch64-apple-darwin -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=10.9'
    ++ xcrun --show-sdk-path
  • BASE_HOST_CFLAGS='-ffile-prefix-map=/Users/brylee/.cargo= -frandom-seed=42 --target=aarch64-apple-darwin -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=10.9'
  • clang -o /dev/null -ffile-prefix-map=/Users/brylee/.cargo= -frandom-seed=42 --target=aarch64-apple-darwin -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=10.9 --target=aarch64-apple-darwin -mcpu=apple-a14 genbindings_path_map_test_file.c
  • export 'CFLAGS_aarch64_apple_darwin=-ffile-prefix-map=/Users/brylee/.cargo= -frandom-seed=42 --target=aarch64-apple-darwin -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=10.9 --target=aarch64-apple-darwin -mcpu=apple-a14'
  • CFLAGS_aarch64_apple_darwin='-ffile-prefix-map=/Users/brylee/.cargo= -frandom-seed=42 --target=aarch64-apple-darwin -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=10.9 --target=aarch64-apple-darwin -mcpu=apple-a14'
  • rm genbindings_path_map_test_file.c
  • case "$ENV_TARGET" in
  • export 'RUSTFLAGS=--cfg=c_bindings --remap-path-prefix /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning=rust-lightning --remap-path-prefix /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings=ldk-c-bindings --remap-path-prefix /Users/brylee/.cargo= -C target-cpu=apple-a14'
  • RUSTFLAGS='--cfg=c_bindings --remap-path-prefix /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning=rust-lightning --remap-path-prefix /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings=ldk-c-bindings --remap-path-prefix /Users/brylee/.cargo= -C target-cpu=apple-a14'
  • export 'CFLAGS_aarch64_apple_darwin=-ffile-prefix-map=/Users/brylee/.cargo= -frandom-seed=42 --target=aarch64-apple-darwin -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=10.9 -mcpu=apple-a14'
  • CFLAGS_aarch64_apple_darwin='-ffile-prefix-map=/Users/brylee/.cargo= -frandom-seed=42 --target=aarch64-apple-darwin -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=10.9 -mcpu=apple-a14'
  • cd c-bindings-gen
  • cargo build --release
    Finished release [optimized + debuginfo] target(s) in 0.05s
  • cd ..
  • mv lightning-c-bindings/src/c_types/mod.rs ./
  • mv lightning-c-bindings/src/bitcoin ./
  • git checkout lightning-c-bindings/src
    Updated 38 paths from the index
  • git checkout lightning-c-bindings/include
    Updated 2 paths from the index
    ++ git describe --tag --dirty --abbrev=16
  • BINDINGS_GIT=v0.0.106.3-7-gc014ce6a2df808ff-dirty
    ++ cat
  • echo '#ifndef _LDK_HEADER_VER
    static inline int _ldk_strncmp(const char *s1, const char *s2, uint64_t n) {
    if (n && *s1 != *s2) return 1;
    while (n && *s1 != 0 && *s2 != 0) {
    s1++; s2++; n--;
    if (n && *s1 != *s2) return 1;
    }
    return 0;
    }

#define _LDK_HEADER_VER "v0.0.108-22-gabf6564a44ad58cc"
#define _LDK_C_BINDINGS_HEADER_VER "v0.0.106.3-7-gc014ce6a2df808ff-dirty"
static inline const char* check_get_ldk_version() {
LDKStr bin_ver = _ldk_get_compiled_version();
if (_ldk_strncmp(_LDK_HEADER_VER, (const char*)bin_ver.chars, bin_ver.len) != 0) {
// Version mismatch, we don'''t know what we'''re running!
return 0;
}
return _LDK_HEADER_VER;
}
static inline const char* check_get_ldk_bindings_version() {
LDKStr bin_ver = _ldk_c_bindings_get_compiled_version();
if (_ldk_strncmp(_LDK_C_BINDINGS_HEADER_VER, (const char*)bin_ver.chars, bin_ver.len) != 0) {
// Version mismatch, we don'''t know what we'''re running!
return 0;
}
return _LDK_C_BINDINGS_HEADER_VER;
}
#endif /* _LDK_HEADER_VER */'

  • rm -rf lightning-c-bindings/src
  • mkdir -p lightning-c-bindings/src/c_types lightning-c-bindings/src/lightning
  • mv ./mod.rs lightning-c-bindings/src/c_types/
  • mv ./bitcoin lightning-c-bindings/src/
    ++ pwd
  • OUT=/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/lightning-c-bindings/src
    ++ pwd
  • OUT_TEMPL=/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/lightning-c-bindings/src/c_types/derived.rs
    ++ pwd
  • OUT_F=/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/lightning-c-bindings/include/ldk_rust_types.h
    ++ pwd
  • OUT_CPP=/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/lightning-c-bindings/include/lightningpp.hpp
    ++ pwd
  • BIN=/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/c-bindings-gen/target/release/c-bindings-gen
  • echo
  • '[' false = true ']'
  • add_crate lightning lightning --features=no-std
  • pushd /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning/lightning
    ~/Documents/Work/Blockware/Gitlab/ldk/rust-lightning/lightning ~/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings
  • RUSTC_BOOTSTRAP=1
  • cargo rustc --profile=check --no-default-features --features=no-std -- --cfg=c_bindings -Zunpretty=expanded
    Checking lightning v0.0.108 (/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning/lightning)
    Finished dev [optimized + debuginfo] target(s) in 1.49s
  • popd
    ~/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings
  • '[' true = true ']'
  • sed -i.original '1i
    pub mod lightning {
    ' /tmp/lightning-crate-source.txt
  • echo '}'
  • cat /tmp/lightning-crate-source.txt
  • rm /tmp/lightning-crate-source.txt
  • is_gnu_sed
  • sed --version
  • sed -E -i '' 's|#lightning = { .|lightning = { path = "/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning/lightning", default-features = false }|' lightning-c-bindings/Cargo.toml
  • drop_crate lightning-persister
  • is_gnu_sed
  • sed --version
  • sed -E -i '' 's|lightning-persister = { (.*)|#lightning-persister = { \1|' lightning-c-bindings/Cargo.toml
  • drop_crate lightning-background-processor
  • is_gnu_sed
  • sed --version
  • sed -E -i '' 's|lightning-background-processor = { (.*)|#lightning-background-processor = { \1|' lightning-c-bindings/Cargo.toml
  • add_crate lightning-invoice lightning_invoice --features=no-std
  • pushd /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning/lightning-invoice
    ~/Documents/Work/Blockware/Gitlab/ldk/rust-lightning/lightning-invoice ~/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings
  • RUSTC_BOOTSTRAP=1
  • cargo rustc --profile=check --no-default-features --features=no-std -- --cfg=c_bindings -Zunpretty=expanded
    warning: unused variable: l
    --> lightning/src/util/test_utils.rs:287:7
    |
    287 | let l = self.expected_recv_msgs.lock().unwrap();
    | ^ help: if this is intentional, prefix it with an underscore: _l
    |
    = note: #[warn(unused_variables)] on by default

warning: unused variable: should_request_full_sync
--> lightning/src/util/test_utils.rs:471:7
|
471 | let should_request_full_sync = self.request_full_sync.load(Ordering::Acquire);
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: _should_request_full_sync

warning: unused variable: should_request_full_sync
--> lightning/src/routing/gossip.rs:437:7
|
437 | let should_request_full_sync = self.should_request_full_sync(&their_node_id);
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: _should_request_full_sync

warning: lightning (lib) generated 3 warnings
Checking lightning-invoice v0.16.0 (/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning/lightning-invoice)
warning: unused imports: ExpandedKey, create_from_hash, create
--> lightning-invoice/src/utils.rs:16:38
|
16 | use lightning::ln::inbound_payment::{create, create_from_hash, ExpandedKey};
| ^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^
|
= note: #[warn(unused_imports)] on by default

warning: lightning-invoice (lib) generated 1 warning
Finished dev [optimized + debuginfo] target(s) in 0.23s

  • popd
    ~/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings
  • '[' true = true ']'
  • sed -i.original '1i
    pub mod lightning_invoice {
    ' /tmp/lightning-invoice-crate-source.txt
  • echo '}'
  • cat /tmp/lightning-invoice-crate-source.txt
  • rm /tmp/lightning-invoice-crate-source.txt
  • is_gnu_sed
  • sed --version
  • sed -E -i '' 's|#lightning-invoice = { .|lightning-invoice = { path = "/Users/brylee/Documents/Work/Blockware/Gitlab/ldk/rust-lightning/lightning-invoice", default-features = false }|' lightning-c-bindings/Cargo.toml
  • CARGO_BUILD_ARGS=--features=no-std
  • cat /tmp/crate-source.txt
  • RUST_BACKTRACE=1
  • /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/c-bindings-gen/target/release/c-bindings-gen /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/lightning-c-bindings/src/ /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/lightning-c-bindings/src/c_types/derived.rs /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/lightning-c-bindings/include/ldk_rust_types.h /Users/brylee/Documents/Work/Blockware/Gitlab/ldk/ldk-c-bindings/lightning-c-bindings/include/lightningpp.hpp
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring pub(use) tree!
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning_invoice::prelude:: - this may result in resolution failures
    Ignoring leading-colon use!
    Ignoring * use for lightning_invoice::prelude:: - this may result in resolution failures
    Ignoring * use for lightning_invoice::prelude:: - this may result in resolution failures
    Ignoring * use for lightning_invoice::prelude:: - this may result in resolution failures
    Ignoring pub(use) tree!
    Ignoring pub(use) tree!
    Ignoring pub(use) tree!
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::ln::msgs::fuzzy_internal_msgs:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring * use for lightning_invoice::prelude:: - this may result in resolution failures
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring leading-colon use!
    Ignoring pub(use) tree!
    Ignoring pub(use) tree!
    Ignoring pub(use) tree!
    Ignoring pub(use) tree!
    Ignoring pub(use) tree!
    Ignoring pub(use) tree!
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring pub(use) tree!
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Ignoring pub(use) tree!
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    Converting lightning::ln::chan_utils entries...
    Ignoring * use for lightning::prelude:: - this may result in resolution failures
    thread 'main' panicked at 'assertion failed: self.write_c_type_intern(w, t, generics, false, false, ptr_for_ref, false,\n true)', src/types.rs:2860:9
    stack backtrace:
    0: rust_begin_unwind
    at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/panicking.rs:584:5
    1: core::panicking::panic_fmt
    at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/panicking.rs:143:14
    2: core::panicking::panic
    at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/panicking.rs:48:5
    3: c_bindings_gen::types::TypeResolver::write_c_type
    at ldk-c-bindings/c-bindings-gen/src/types.rs:2860:3
    4: c_bindings_gen::blocks::write_method_params
    at ldk-c-bindings/c-bindings-gen/src/blocks.rs:558:5
    5: c_bindings_gen::writeln_impl
    at ldk-c-bindings/c-bindings-gen/src/main.rs:1334:10
    6: c_bindings_gen::convert_file
    at ldk-c-bindings/c-bindings-gen/src/main.rs:1882:6
    7: c_bindings_gen::main
    at ldk-c-bindings/c-bindings-gen/src/main.rs:2147:2
    8: core::ops::function::FnOnce::call_once
    at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/ops/function.rs:227:5
    note: Some details are omitted, run with RUST_BACKTRACE=full for a verbose backtrace.

thread 'main' panicked at 'assertion failed: self.write_c_type_intern

I got the following error on building. Older rustc version is better?

Environment

  • MacOS: 12.4
  • Processor: Intel Chip, not Apple M1 Chip
  • rustc: 1.61.0
  • rust-lightning: 0.0.108
  • ldk-c-lightning: 0.0.106.3
  • llvm: stable 13.0.1
$ rustup show
Default host: x86_64-apple-darwin
rustup home:  /Users/xxx/.rustup

installed toolchains
--------------------

stable-aarch64-apple-darwin
stable-x86_64-apple-darwin (default)
1.60.0-x86_64-apple-darwin
1.61.0-x86_64-apple-darwin

installed targets for active toolchain
--------------------------------------

aarch64-apple-darwin
wasm32-wasi
x86_64-apple-darwin

active toolchain
----------------

1.61.0-x86_64-apple-darwin (overridden by '/Users/xxx/tmp/ldk-c-bindings/c-bindings-gen/rust-toolchain')
rustc 1.61.0 (fe5b13d68 2022-05-18)

Error message

$ bash genbindings.sh /Users/xxx/tmp/rust-lightning true
+ '[' '!' -d /Users/xxx/tmp/rust-lightning/lightning -o true '!=' true -a true '!=' false ']'
+ export LC_ALL=C
+ LC_ALL=C
...
+ CARGO_BUILD_ARGS=--features=std
+ cat /tmp/crate-source.txt
+ RUST_BACKTRACE=1
+ /Users/xxx/tmp/ldk-c-bindings/c-bindings-gen/target/release/c-bindings-gen /Users/xxx/tmp/ldk-c-bindings/lightning-c-bindings/src/ /Users/xxx/tmp/ldk-c-bindings/lightning-c-bindings/src/c_types/derived.rs /Users/xxx/tmp/ldk-c-bindings/lightning-c-bindings/include/ldk_rust_types.h /Users/xxx/tmp/ldk-c-bindings/lightning-c-bindings/include/lightningpp.hpp
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for std::prelude::rust_2018:: - this may result in resolution failures
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring leading-colon use!
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring pub(use) tree!
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for lightning_invoice::prelude:: - this may result in resolution failures
Ignoring leading-colon use!
Ignoring * use for lightning_invoice::prelude:: - this may result in resolution failures
Ignoring * use for lightning_invoice::prelude:: - this may result in resolution failures
Ignoring * use for lightning_invoice::prelude:: - this may result in resolution failures
Ignoring pub(use) tree!
Ignoring pub(use) tree!
Ignoring pub(use) tree!
Ignoring pub(use) tree!
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for lightning::ln::msgs::fuzzy_internal_msgs:: - this may result in resolution failures
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring * use for lightning_invoice::prelude:: - this may result in resolution failures
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring leading-colon use!
Ignoring pub(use) tree!
Ignoring pub(use) tree!
Ignoring pub(use) tree!
Ignoring pub(use) tree!
Ignoring pub(use) tree!
Ignoring pub(use) tree!
Ignoring pub(use) tree!
Ignoring pub(use) tree!
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring pub(use) tree!
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Ignoring pub(use) tree!
Ignoring * use for lightning::prelude:: - this may result in resolution failures
Converting lightning::ln::chan_utils entries...
Ignoring * use for lightning::prelude:: - this may result in resolution failures
thread 'main' panicked at 'assertion failed: self.write_c_type_intern(w, t, generics, false, false, ptr_for_ref, false,\n    true)', src/types.rs:2860:9
stack backtrace:
   0: rust_begin_unwind
             at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/std/src/panicking.rs:584:5
   1: core::panicking::panic_fmt
             at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/core/src/panicking.rs:143:14
   2: core::panicking::panic
             at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/core/src/panicking.rs:48:5
   3: c_bindings_gen::types::TypeResolver::write_c_type
             at ldk-c-bindings/c-bindings-gen/src/types.rs:2860:3
   4: c_bindings_gen::blocks::write_method_params
             at ldk-c-bindings/c-bindings-gen/src/blocks.rs:558:5
   5: c_bindings_gen::writeln_impl
             at ldk-c-bindings/c-bindings-gen/src/main.rs:1334:10
   6: c_bindings_gen::convert_file
             at ldk-c-bindings/c-bindings-gen/src/main.rs:1882:6
   7: c_bindings_gen::main
             at ldk-c-bindings/c-bindings-gen/src/main.rs:2147:2
   8: core::ops::function::FnOnce::call_once
             at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/core/src/ops/function.rs:227:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

Other environment

I got the same error on Ubuntu 22.04 and 16.04.7.

Standalone C++ bindings

Moved from lightningdevkit/rust-lightning#677

Discussed offline. In this variation, the C++ class would be LDKObject. Since the copy constructor would be deleted, any object passed to rust_fn would need to be an rvalue; it would be a compilation error to pass the object as an lvalue. Instead, the user would need to explicitly std::move the lvalue in order to pass it to rust_fn as an rvalue, which would trigger the move constructor.

Agreed to open an issue and prioritize based on user need for the C++ header.

Originally posted by @jkczyz in lightningdevkit/rust-lightning#618 (comment)

Running ./genbinding.sh on macOS gets stuck for a really long time

Not a deal-breaker, but I noticed that whenever the build log reaches set +x, nothing really happens beyond that.

According to @arik-so it's usually fine past that point to just force the shell script to terminate, but I was wondering if there is a fix for this so CI over at ldk-swift doesn't take ages to run.

Fails to build on macOS: extra characters at the end of l command

Running genbindings.sh on macOS (Monterey, M1) stopped with message:

+ RUSTC_BOOTSTRAP=1
+ cargo rustc --profile=check --features=allow_wallclock_use -- --cfg=c_bindings -Zunpretty=expanded
    Updating crates.io index
    Checking lightning v0.0.103 (/Users/cuhte3/lightningDevKit/rust-lightning/lightning)
    Finished dev [optimized + debuginfo] target(s) in 2.73s
+ popd
~/lightningDevKit/ldk-c-bindings
+ '[' 'host: aarch64-apple-darwin' = 'host: x86_64-apple-darwin' ']'
+ sed -i '1ipub mod lightning {\n' /tmp/lightning-crate-source.txt
sed: 1: "/tmp/lightning-crate-so ...": extra characters at the end of l command

Expose `ToString`

This is at least required for the new NodeAlias type which is really all about having Display.

Improve Argument Naming

There was an issue raised in ldk-swift pertaining to parameter names: lightningdevkit/ldk-swift#91

For the sake of automatically being able to take argument names from the C bindings, I think it would be nice to be able to improve naming right here at the source. Specifically, here's the offending C method signature:

/**
 * Read a ProbabilisticScorer from a byte array, created by ProbabilisticScorer_write
 */
struct LDKCResult_ProbabilisticScorerDecodeErrorZ ProbabilisticScorer_read(struct LDKu8slice ser, struct LDKProbabilisticScoringParameters arg_a, const struct LDKNetworkGraph *NONNULL_PTR arg_b, struct LDKLogger arg_c);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.