]>
git.bitcoin.ninja Git - ldk-c-bindings/log
Matt Corallo [Wed, 23 Mar 2022 00:54:19 +0000 (00:54 +0000)]
Switch to using the Prob. Scorer in the C++ demo
Matt Corallo [Tue, 22 Mar 2022 23:47:22 +0000 (23:47 +0000)]
Allow method call args to be converted with a new_var conversion
The call was already there, not sure why we were asserting on it
not printing anything...
Matt Corallo [Mon, 21 Mar 2022 01:21:50 +0000 (01:21 +0000)]
Pass types through `resolve_type` in a few additional places
Over time I'd like to swap all of our generic resolution to pass
through `resolve_type` instead of the current path resolution, as
its strictly more flexible, but for now we just add the few we need.
Matt Corallo [Mon, 21 Mar 2022 19:13:42 +0000 (19:13 +0000)]
Separate printing references-with-lifetimes from c-vs-rust types
(and use C types with lifetimes in generic struct creation)
Matt Corallo [Fri, 18 Mar 2022 03:23:28 +0000 (03:23 +0000)]
Process all type aliases as C types, leaning on annotations to skip
Previously we'd used the presence of generics on a type alias
definition to decide when to skip creation of a corresponding C
type. However, with `ProbabilisticScorer`, we now have a type alias
which has a generic bound but which we still want to create a C
type for.
Matt Corallo [Thu, 3 Mar 2022 06:52:50 +0000 (06:52 +0000)]
Merge pull request #61 from TheBlueMatt/main
Implement `Clone` for `SecretKey`
Matt Corallo [Thu, 3 Mar 2022 03:20:07 +0000 (03:20 +0000)]
Implement `Clone` for `SecretKey`
Matt Corallo [Wed, 2 Mar 2022 18:53:49 +0000 (18:53 +0000)]
Merge pull request #60 from TheBlueMatt/main
Update to 0.0.105
Matt Corallo [Wed, 2 Mar 2022 03:24:28 +0000 (03:24 +0000)]
Update bindings workflow in CI to 0.0.105
Matt Corallo [Wed, 2 Mar 2022 03:53:18 +0000 (03:53 +0000)]
Update auto-generated bindings to 0.0.106
Matt Corallo [Wed, 9 Feb 2022 21:48:41 +0000 (21:48 +0000)]
Update demo.cpp with latest upstream API
Matt Corallo [Wed, 2 Mar 2022 05:33:31 +0000 (05:33 +0000)]
Explicitly refer to `format!()` with an `alloc` prefix for no-std
Matt Corallo [Wed, 2 Mar 2022 03:19:46 +0000 (03:19 +0000)]
Add function-call generic parameters when they're resovable
We really shouldn't ever actually need to do this - rustc should be
smart enough to figure out what we're doing given all the
parameters are concrete types, but this appears to be failing
sometimes.
Matt Corallo [Wed, 2 Mar 2022 01:23:07 +0000 (01:23 +0000)]
Handle `Option<[u8; 32]>`, mapping it same as `Option<&[u8; 32]>`
Matt Corallo [Wed, 9 Feb 2022 21:46:27 +0000 (21:46 +0000)]
Don't mark everything with a feature bound as TestOnly
Matt Corallo [Wed, 9 Feb 2022 21:16:31 +0000 (21:16 +0000)]
Convert slices containing non-primitives that are clonable
Matt Corallo [Wed, 9 Feb 2022 19:21:35 +0000 (19:21 +0000)]
Update build for lightning-invoice no-std support
Matt Corallo [Wed, 9 Feb 2022 18:11:08 +0000 (18:11 +0000)]
Recognize `bitcoin::bech32::u5` instead of only `bech32::u5`
Matt Corallo [Tue, 1 Mar 2022 04:19:24 +0000 (04:19 +0000)]
Merge pull request #59 from TheBlueMatt/main
Detect aarch64-osx for using apple sed as well
Matt Corallo [Mon, 21 Feb 2022 18:36:19 +0000 (18:36 +0000)]
Detect aarch64-osx for using apple sed as well
May fix #58, but there's probably other broken stuff around.
Matt Corallo [Mon, 17 Jan 2022 00:19:00 +0000 (00:19 +0000)]
Merge pull request #57 from TheBlueMatt/main
Optimize more aggressively for WASM builds
Matt Corallo [Sun, 16 Jan 2022 03:02:37 +0000 (03:02 +0000)]
Overwrite ldk_ver.h to avoid back-to-back builds duplicating consts
This causes back-to-back builds to have an ldk_ver.h for which the
oldest content dominates.
Matt Corallo [Sun, 16 Jan 2022 02:49:36 +0000 (02:49 +0000)]
Stop passing -mcpu=sandybridge to wasm builds on x86
Matt Corallo [Sun, 16 Jan 2022 00:06:17 +0000 (00:06 +0000)]
Use -O1 on WASM debug builds as they are otherwise too slow to run.
Matt Corallo [Sat, 15 Jan 2022 23:22:23 +0000 (23:22 +0000)]
Drop `cargo rustc` in favor of using $RUSTFLAGS
cargo rustc only passes the given arguments to the linking rustc,
not any building rustc calls, which is not generally what we want.
This further reduces `liblightningjs_release.wasm` from 2.4MB to
2.3 MB.
Matt Corallo [Sat, 15 Jan 2022 22:59:11 +0000 (22:59 +0000)]
Optimize more aggressively for WASM builds
Use `-Oz` instead of `-Os` because why not, and include LLVM
bitcode in C dependencies.
This reduces `liblightningjs_release.wasm` from 3.0MB to 2.4MB,
likely mostly from removing secp256k1 symbols that were unused.
Matt Corallo [Thu, 6 Jan 2022 19:54:22 +0000 (19:54 +0000)]
Merge pull request #54 from TheBlueMatt/main
Support `no-std`
Matt Corallo [Wed, 5 Jan 2022 06:43:58 +0000 (06:43 +0000)]
Update auto-generated bindings
Matt Corallo [Thu, 6 Jan 2022 03:48:01 +0000 (03:48 +0000)]
Update git commit hash to instead point to 0.0.104-bindings branch
Matt Corallo [Tue, 4 Jan 2022 20:30:55 +0000 (20:30 +0000)]
Support no_std on the generated crate
Matt Corallo [Tue, 4 Jan 2022 20:30:37 +0000 (20:30 +0000)]
Swap std references in generated code for core/alloc references
Matt Corallo [Tue, 4 Jan 2022 19:09:50 +0000 (19:09 +0000)]
Support building dependent crates with `no-std`
Matt Corallo [Wed, 29 Dec 2021 19:34:59 +0000 (19:34 +0000)]
Merge pull request #53 from orenfromberg/patch-1
Improving readability of genbindings.sh
Oren Fromberg [Wed, 29 Dec 2021 03:26:15 +0000 (22:26 -0500)]
Update genbindings.sh
Matt Corallo [Mon, 20 Dec 2021 09:38:14 +0000 (09:38 +0000)]
Merge pull request #52 from TheBlueMatt/main
Correct non-default lld version passing
Matt Corallo [Mon, 20 Dec 2021 06:13:55 +0000 (06:13 +0000)]
Correctly detect non-default LLD usage
Passing `-flto=ld*.lld-X` only appears to actually work on debian
testing. The correct argument for an alternative version of LLD is
`-flto=lld-X`.
Matt Corallo [Mon, 20 Dec 2021 05:24:14 +0000 (05:24 +0000)]
Revert "Correct LLD detection when a specific version is needed for X-lang LTO"
This reverts commit
b33cce1a6255564b88e0615eb5c7941bd7b15759 .
Matt Corallo [Mon, 20 Dec 2021 05:03:40 +0000 (05:03 +0000)]
Merge pull request #51 from TheBlueMatt/main
0.0.104 Bindings Updates
Matt Corallo [Mon, 20 Dec 2021 01:20:06 +0000 (01:20 +0000)]
Only test C++ demo in std mode, as it relies on threading support
Matt Corallo [Sat, 18 Dec 2021 04:08:03 +0000 (04:08 +0000)]
Update git reference in checked-in Cargo.toml and CI branch
Matt Corallo [Sat, 18 Dec 2021 03:31:43 +0000 (03:31 +0000)]
Update auto-generated bindings
Matt Corallo [Sat, 18 Dec 2021 02:45:15 +0000 (02:45 +0000)]
Correct LLD detection when a specific version is needed for X-lang LTO
Also use the full LLD specified as ld*.lld as it seems to be needed
on Linux with LLD 13 now.
Matt Corallo [Sat, 18 Dec 2021 02:38:05 +0000 (02:38 +0000)]
Update C++ bindings to latest upstream API
Matt Corallo [Sat, 18 Dec 2021 02:07:52 +0000 (02:07 +0000)]
Support Option<()> (and &Option<()>) incl conversion and printing
Matt Corallo [Sat, 18 Dec 2021 02:06:00 +0000 (02:06 +0000)]
Drop allow_wallclock_use feature and use std/no-std directly
Matt Corallo [Sat, 18 Dec 2021 02:05:49 +0000 (02:05 +0000)]
Map new lightning::chain::keysinterface::KeyMaterial type as [u8; 32]
Matt Corallo [Sat, 18 Dec 2021 02:02:10 +0000 (02:02 +0000)]
Expose a 12-byte array instead of 10-byte as OnionV2 has changed
Matt Corallo [Tue, 30 Nov 2021 21:55:52 +0000 (21:55 +0000)]
Merge pull request #49 from TheBlueMatt/main
0.0.103.1
Matt Corallo [Tue, 30 Nov 2021 16:19:08 +0000 (16:19 +0000)]
Support cross-language LTO on OSX (with upstream clang/lld)
Matt Corallo [Tue, 30 Nov 2021 15:40:46 +0000 (15:40 +0000)]
Update git commit in Cargo.toml to upstream bindings changes
Matt Corallo [Fri, 19 Nov 2021 20:12:13 +0000 (20:12 +0000)]
Update auto-generated bindings
Matt Corallo [Mon, 29 Nov 2021 01:28:30 +0000 (01:28 +0000)]
Expose a method to unmangle pointers in test builds
This is used by Java bindings to compare all pointers against those
returned by its malloc wrap, possibly catching some simple
use-after-free or invalid pointer deref bugs.
It is exposed only when built as debug and defined in C headers
with `LDK_DEBUG_BUILD` defined.
Matt Corallo [Wed, 24 Nov 2021 18:07:57 +0000 (18:07 +0000)]
Support `use self::...` statements as they are sometimes use for submodules
Matt Corallo [Mon, 22 Nov 2021 02:06:37 +0000 (02:06 +0000)]
Support new c_bindings cfg flag to enable bindings-specific logic
Matt Corallo [Sun, 21 Nov 2021 18:46:53 +0000 (18:46 +0000)]
Update C/C++ demos to support new Logger API
Matt Corallo [Sun, 21 Nov 2021 18:19:14 +0000 (18:19 +0000)]
Stop special-casing `Logger`, instead map fmt::Arguments to string
Matt Corallo [Sun, 21 Nov 2021 18:17:35 +0000 (18:17 +0000)]
Correctly print lifetime parameters when printing generic arguments
Matt Corallo [Fri, 29 Oct 2021 18:59:25 +0000 (18:59 +0000)]
Support traits and structs with lifetime bounds (which are ignored)
Matt Corallo [Fri, 19 Nov 2021 20:04:36 +0000 (20:04 +0000)]
Support mapping MaybeReadable
This fixes https://github.com/lightningdevkit/ldk-garbagecollected/issues/62
Matt Corallo [Fri, 19 Nov 2021 20:11:56 +0000 (20:11 +0000)]
Add helper method on results to return `result_ok`
This fixes https://github.com/lightningdevkit/ldk-garbagecollected/issues/59
Matt Corallo [Wed, 3 Nov 2021 21:17:11 +0000 (21:17 +0000)]
Merge pull request #48 from TheBlueMatt/main
0.0.103.0 Updates
Matt Corallo [Wed, 3 Nov 2021 03:52:52 +0000 (03:52 +0000)]
Update upstream git tag
Matt Corallo [Wed, 3 Nov 2021 03:39:09 +0000 (03:39 +0000)]
Use a branch for bindings, as rustc prevents us from using main
Matt Corallo [Mon, 1 Nov 2021 21:49:12 +0000 (21:49 +0000)]
Update auto-generated bindings
Matt Corallo [Mon, 1 Nov 2021 03:38:31 +0000 (03:38 +0000)]
Update C++ bindings to latest upstream API + test PaymentRetrier
Matt Corallo [Tue, 2 Nov 2021 05:58:14 +0000 (05:58 +0000)]
Avoid double-`ObjOps::nonnull_ptr_to_inner` on options in some cases
Matt Corallo [Mon, 1 Nov 2021 18:35:30 +0000 (18:35 +0000)]
Separate logic to print `create_ownable_reference` types
These types aren't actually mapped in the same way as all other
types, so we really shouldn't be trying to use the same conversion
logic for both.
Matt Corallo [Mon, 1 Nov 2021 18:35:43 +0000 (18:35 +0000)]
Implement additional `Into<Str>` auto-conversion
Matt Corallo [Mon, 1 Nov 2021 17:55:20 +0000 (17:55 +0000)]
Track generic param count and print types in ptr-conversion
This will allow rustc to prevent an issue where we accidentally
map `&&Object as *const _` to get a `*const Object`, instead
getting a pointer to a pointer.
Matt Corallo [Mon, 1 Nov 2021 04:33:09 +0000 (04:33 +0000)]
Add constructor for tuple types where all contained types are known
Matt Corallo [Sun, 31 Oct 2021 23:32:55 +0000 (23:32 +0000)]
Check if types are understood before we map an impl block for them
Matt Corallo [Sun, 31 Oct 2021 18:13:00 +0000 (18:13 +0000)]
Support `use crate::*` statements
Matt Corallo [Sun, 31 Oct 2021 18:11:10 +0000 (18:11 +0000)]
Map `PaymentId` to a `[u8; 32]` like other Payemt* IDs.
This should solve https://github.com/lightningdevkit/ldk-garbagecollected/issues/52
Matt Corallo [Sun, 31 Oct 2021 23:27:11 +0000 (23:27 +0000)]
Support resolving non-trivial bounds from parent generic contexts
Matt Corallo [Sun, 31 Oct 2021 23:14:41 +0000 (23:14 +0000)]
Support converting Option<&[]> to C
Matt Corallo [Sun, 31 Oct 2021 18:09:31 +0000 (18:09 +0000)]
impl-Trait on in-crate types in a diff mod from the type definition
Matt Corallo [Sun, 31 Oct 2021 18:07:47 +0000 (18:07 +0000)]
Support printing lifetime generics on an impl-Trait block
Matt Corallo [Sun, 31 Oct 2021 18:06:42 +0000 (18:06 +0000)]
Support printing impl generics without an immediate bound
(e.g. if you have `fn <A> ... where A: Trait` we'd not have printed
`<A>`)
This further supports printing impl generics with a reference to a
struct (not a trait), which we concretize with a regular reference.
Matt Corallo [Sun, 31 Oct 2021 04:42:10 +0000 (04:42 +0000)]
Swap --pretty=expanded with -Zunpretty=expanded
Apparently the `--pretty` option was dropped in newer
rustc, see https://github.com/rust-lang/rust/pull/83491
Matt Corallo [Mon, 18 Oct 2021 20:43:06 +0000 (20:43 +0000)]
Merge pull request #46 from TheBlueMatt/main
0.0.102 Bindings Updates
Matt Corallo [Sun, 17 Oct 2021 00:05:09 +0000 (00:05 +0000)]
Bump upstream git commit to latest
Matt Corallo [Sat, 16 Oct 2021 22:22:11 +0000 (22:22 +0000)]
Update auto-generated bindings
Matt Corallo [Sat, 16 Oct 2021 22:16:44 +0000 (22:16 +0000)]
Update C++ demo to latest upstream changes
Matt Corallo [Sat, 16 Oct 2021 22:16:27 +0000 (22:16 +0000)]
Handle bitcoin::Transaction aliases instead of the full path
Matt Corallo [Tue, 12 Oct 2021 02:09:03 +0000 (02:09 +0000)]
Correctly convert Option<Generic<Inner>> to C
Matt Corallo [Tue, 12 Oct 2021 02:07:34 +0000 (02:07 +0000)]
Drop stale manual path mappings for generic containers
These are all mapped as generic containers now so there's no need
for manual mapping entries.
Matt Corallo [Sun, 3 Oct 2021 21:41:18 +0000 (21:41 +0000)]
[net] Ensure we don't spin loop by keeping the poll write bit set
Previously we'd not been unsetting POLLOUT, which will result in
us spin-loop'ing with ChannelManager_write_buffer_space_avail.
Further, we'd also not been unsetting the POLLIN bit, which would
result in us never pausing read as the SocketDescriptor API
requires us to.
Matt Corallo [Tue, 28 Sep 2021 01:54:37 +0000 (01:54 +0000)]
Merge pull request #45 from TheBlueMatt/main
Correct clone logic for `Str`.
Matt Corallo [Tue, 28 Sep 2021 01:07:41 +0000 (01:07 +0000)]
Update auto-generated bindings to latest upstream
Matt Corallo [Tue, 28 Sep 2021 01:08:14 +0000 (01:08 +0000)]
Update git commit dependency to latest upstream
Matt Corallo [Mon, 27 Sep 2021 23:24:43 +0000 (23:24 +0000)]
Correct clone logic for `Str`.
Previously we'd blindly clone'd the fields, which, if
`data_is_owned` is set, will always result in a a double-free.
Instead, we always clone the underlying bytes, setting
`data_is_owned` on the returned value since its likely the caller
wants to hold onto the string outside of the current context.
Matt Corallo [Sun, 26 Sep 2021 22:54:31 +0000 (22:54 +0000)]
Merge pull request #44 from TheBlueMatt/main
Matt Corallo [Sun, 26 Sep 2021 06:19:07 +0000 (06:19 +0000)]
Detect a type as clonable with an explicit `impl Clone`
These stay `impl Clone` even after the pretty-print rustc pass so
we cannot only match `core::clone::Clone`
Matt Corallo [Sat, 25 Sep 2021 21:43:38 +0000 (21:43 +0000)]
Fix races in demo C++ bindings that can hang valgrind in CI
Matt Corallo [Sat, 25 Sep 2021 00:38:03 +0000 (00:38 +0000)]
Cache multi-line sed replacements across methods to improve runtime
Matt Corallo [Fri, 24 Sep 2021 22:56:26 +0000 (22:56 +0000)]
Merge pull request #43 from TheBlueMatt/main
Link libm for debug builds in testing due to new rust libstd dep
Matt Corallo [Fri, 24 Sep 2021 22:46:35 +0000 (22:46 +0000)]
Link libm for debug builds in testing due to new rust libstd dep
Matt Corallo [Fri, 24 Sep 2021 21:25:35 +0000 (21:25 +0000)]
Merge pull request #42 from TheBlueMatt/main
Update to v0.0.101
Matt Corallo [Thu, 23 Sep 2021 18:45:18 +0000 (18:45 +0000)]
Bump lightning dep gitish to v0.0.101
Matt Corallo [Thu, 23 Sep 2021 02:57:30 +0000 (02:57 +0000)]
Update C and C++ demos to latest API and test custom messages