]>
git.bitcoin.ninja Git - ldk-c-bindings/log
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
Matt Corallo [Mon, 6 Sep 2021 01:13:29 +0000 (01:13 +0000)]
Update auto-generated bindings
Matt Corallo [Fri, 24 Sep 2021 18:28:18 +0000 (18:28 +0000)]
Call clone explicitly to avoid deref recursion when cloning traits
Matt Corallo [Thu, 23 Sep 2021 02:59:04 +0000 (02:59 +0000)]
Add missing C++ header for LDK::Str
Matt Corallo [Thu, 23 Sep 2021 20:02:20 +0000 (20:02 +0000)]
Stop tracking unused syn::Type mappings in GenericResolver
They are now unused as of the previous commit
Matt Corallo [Wed, 22 Sep 2021 06:04:50 +0000 (06:04 +0000)]
Use `GenericTypes`'s type resolver instead of re-resolving
When we resolve a type with `GenericTypes::maybe_resolve_path` it
returns a resolved-path string as well as a syn::Path. When
resolving we'd previously then re-resolve the Path with the current
type/import information, instead of just accepting what was already
resolved. Simply accepting what was already resolved not only
simplifies a few cases, but also allows us to clean up where the
"crate::" prefix is printed, keeping "crate::" prefixes out of all
type resolution.
Matt Corallo [Wed, 22 Sep 2021 23:14:41 +0000 (23:14 +0000)]
Work around broken resolution on non-pub use aliasing in another module
Matt Corallo [Thu, 23 Sep 2021 04:17:21 +0000 (04:17 +0000)]
Handle uncallable trait methods that use Infallible in a parameter
Matt Corallo [Wed, 22 Sep 2021 23:13:34 +0000 (23:13 +0000)]
Map core::convert::Infallible to a similar manually-defined struct
Matt Corallo [Thu, 23 Sep 2021 17:47:51 +0000 (17:47 +0000)]
Support std::io::Read natively by mapping it to and u8slice
Matt Corallo [Thu, 23 Sep 2021 17:46:30 +0000 (17:46 +0000)]
Support converting C `OutPoint`s to `bitcoin` `OutPoint`s
Matt Corallo [Thu, 23 Sep 2021 17:45:51 +0000 (17:45 +0000)]
Update io::Read manual implementation to upstream API changes
Matt Corallo [Wed, 22 Sep 2021 02:46:10 +0000 (02:46 +0000)]
Avoid mapping optionals as owned pointers
Using an owned pointer to map an optional turned out to be quite
annoying to avoid downstream memory issues. Instead, we use the
much more explicit `COption_TypeZ` enums everywhere.
This also fixes Option-al mapping of enums.
Matt Corallo [Wed, 22 Sep 2021 02:45:02 +0000 (02:45 +0000)]
Handle `W: X<T = Y>` generics where `Y` is used as `Z<Y>`
This simply requires calling `resolve_type` in a few more places.
Matt Corallo [Wed, 22 Sep 2021 23:15:20 +0000 (23:15 +0000)]
Call methods explicitly on traits to avoid to deref recursion