]>
git.bitcoin.ninja Git - ldk-c-bindings/log
Matt Corallo [Thu, 23 Jun 2022 16:03:06 +0000 (16:03 +0000)]
Handle trait methods with a default implementation
This does not currently expose the default implementation to users
who wish to avoid manually implementing the method.
Matt Corallo [Mon, 30 May 2022 23:51:54 +0000 (23:51 +0000)]
Include the `where` clause from a "real" type when mapping type aliases
ie if we have a
```
struct A<T: Deref> where T::Target: Trait {}
pub type B<T> = A<T>;
```
this includes the `where` clause so that we end up calling
`writeln_opaque` for `struct B<T: Deref> where T::Target: Trait {}`
instead of `struct B<T: Deref> {}`.
Matt Corallo [Wed, 22 Jun 2022 19:30:05 +0000 (19:30 +0000)]
Add where-clause generic params to `default_generics` map
This moves yet more generic resolution to being able to rely on the
`default_generics` map for full-`Type` resolution rather than
string-based name resolution.
Matt Corallo [Wed, 22 Jun 2022 19:19:54 +0000 (19:19 +0000)]
Make panics in macros more debug-able by giving them a unique print
Matt Corallo [Sat, 28 May 2022 01:06:56 +0000 (01:06 +0000)]
Support `use ...::self` imports
Previously we'd supported `use self:...` but this adds support for
using some path that ends with `self`.
Jeffrey Czyz [Thu, 19 May 2022 15:26:35 +0000 (10:26 -0500)]
Support arrays inside Option types
Previously we'd supported arrays in options only if the real type
was something which we'd aliased to an array, so its not a big
stretch to support Options containing arrays explicitly.
Matt Corallo [Fri, 17 Jun 2022 21:01:46 +0000 (21:01 +0000)]
Add more manually-generated types to the on-startup clonable list
Matt Corallo [Tue, 28 Jun 2022 15:51:47 +0000 (15:51 +0000)]
Update c_types `IOError` type to support `no-std` via `core2`
Jeffrey Czyz [Thu, 19 May 2022 15:22:56 +0000 (10:22 -0500)]
Add C type for bitcoin::util::address::WitnessVersion
Matt Corallo [Mon, 30 May 2022 03:14:43 +0000 (03:14 +0000)]
Update `lightning-c-bindings` to new `bitcoin`/`secp256k1`
including new error types for `secp256k1::Error`
Jeffrey Czyz [Thu, 19 May 2022 14:12:52 +0000 (09:12 -0500)]
Update type mappings for bitcoin 0.28.1
Matt Corallo [Thu, 19 May 2022 16:42:14 +0000 (16:42 +0000)]
Merge pull request #77 from jurvis/main
Use GNU sed if available on macOS
Jurvis Tan [Thu, 19 May 2022 02:48:19 +0000 (19:48 -0700)]
Check if GNU sed is available on macOS
Check if is_gnu_sed is true
Matt Corallo [Mon, 16 May 2022 19:01:51 +0000 (19:01 +0000)]
Merge pull request #75 from TheBlueMatt/main
Fix M1 build
Matt Corallo [Mon, 16 May 2022 18:51:35 +0000 (18:51 +0000)]
Add a warning before we run a ton of sed's
Matt Corallo [Thu, 12 May 2022 20:55:17 +0000 (20:55 +0000)]
Skip building x86_64 release binaries on M1 Macs
Matt Corallo [Thu, 12 May 2022 20:45:48 +0000 (20:45 +0000)]
Explicitly specify a target when calling local clang
This should fix using upstream x86_64 clang on an M1 Mac via Rosetta
Matt Corallo [Thu, 12 May 2022 20:42:23 +0000 (20:42 +0000)]
Don't use -mcpu=native on aarch64-macos
Matt Corallo [Fri, 29 Apr 2022 20:48:24 +0000 (20:48 +0000)]
Merge pull request #74 from TheBlueMatt/main
[ldk-net] Correct pollfds array offset after reads
Matt Corallo [Fri, 29 Apr 2022 19:30:05 +0000 (19:30 +0000)]
[ldk-net] Correct pollfds array offset after reads
Previously, we were copying the pollfds array at an offset of one
into the handler thread's stack. However, when it was changed to
copying at a 0 offset (adding the pipe read fd at the end instead
of beginning), the disable-read handling code was not updated.
This leads to an assertion failure at runtime if LDK decides we
need to stop reading due to the outbound buffer of a peer being
full.
Matt Corallo [Tue, 19 Apr 2022 23:19:47 +0000 (23:19 +0000)]
Merge pull request #73 from TheBlueMatt/main
Handle impl blocks outside of the mod of the being-implemented object
Matt Corallo [Tue, 19 Apr 2022 20:32:07 +0000 (20:32 +0000)]
Drop now-unused code from c-bindings-gen
Matt Corallo [Tue, 19 Apr 2022 20:00:30 +0000 (20:00 +0000)]
Update auto-generated bindings
Matt Corallo [Tue, 19 Apr 2022 19:39:29 +0000 (19:39 +0000)]
Handle impl blocks exist outside of the mod of the being-implemented object
This allows us to implement the feature bit accessor functions.
Matt Corallo [Tue, 19 Apr 2022 19:24:50 +0000 (19:24 +0000)]
Use full paths in impl block handling instead of assuming in-file idents
In the next commit we'll want to handle impl blocks in one module
for an object that is defined in a different model. This violates
several existing assumptions in the impl block handling code,
namely that we're implementing for an object declared in the
current module. This relaxes that assumption in a few places.
Matt Corallo [Mon, 18 Apr 2022 12:53:05 +0000 (12:53 +0000)]
Merge pull request #71 from TheBlueMatt/main
Make `Str`'s `clone` always clone the underlying bytes
Matt Corallo [Mon, 18 Apr 2022 02:56:05 +0000 (02:56 +0000)]
Make `Str`'s `clone` always clone the underlying bytes
Its incredibly unexpected that you can clone a higher-level object
(eg an Event with a ClosureReason that contains an `Str`) and have
a pointer back to the original object. To avoid this, `clone` needs
to actually `clone`.
Matt Corallo [Wed, 13 Apr 2022 20:51:24 +0000 (20:51 +0000)]
Merge pull request #70 from TheBlueMatt/main
Expose consistent free+clone methods for `Bech32Error`
Matt Corallo [Wed, 13 Apr 2022 17:33:38 +0000 (17:33 +0000)]
Update auto-generated bindings
Matt Corallo [Wed, 13 Apr 2022 17:30:40 +0000 (17:30 +0000)]
Expose consistent free+clone methods for `Bech32Error`
Matt Corallo [Mon, 4 Apr 2022 21:33:49 +0000 (21:33 +0000)]
Merge pull request #69 from TheBlueMatt/main
Matt Corallo [Mon, 4 Apr 2022 18:07:45 +0000 (18:07 +0000)]
Update auto-generated bindings with FromStr errors
Matt Corallo [Mon, 4 Apr 2022 18:04:40 +0000 (18:04 +0000)]
Send peers the remote address we have for them in ldk-net
The majority of this commit was authored by
Jeffrey Czyz <jkczyz@gmail.com>
Matt Corallo [Mon, 4 Apr 2022 16:25:33 +0000 (16:25 +0000)]
Use `_none()` constructor instead of setting tag in C++ demo
Matt Corallo [Mon, 4 Apr 2022 01:54:46 +0000 (01:54 +0000)]
Expose error types when implementing FromStr
Fixes #64.
Matt Corallo [Mon, 4 Apr 2022 01:53:24 +0000 (01:53 +0000)]
Add additional error type conversion logic
Matt Corallo [Mon, 4 Apr 2022 16:20:18 +0000 (16:20 +0000)]
Merge pull request #68 from jkczyz/2022-03-ldk-0-0-106
Update to 0.0.106
Jeffrey Czyz [Sun, 3 Apr 2022 23:41:01 +0000 (18:41 -0500)]
Update bindings workflow in CI to 0.0.106
Jeffrey Czyz [Sun, 3 Apr 2022 23:38:22 +0000 (18:38 -0500)]
Update auto-generated bindings to 0.0.106
Jeffrey Czyz [Sun, 3 Apr 2022 23:27:00 +0000 (18:27 -0500)]
Add a .gitignore for output of genbindings.sh
Jeffrey Czyz [Fri, 1 Apr 2022 23:22:31 +0000 (18:22 -0500)]
Update ldk_net.c for 0.0.106
Jeffrey Czyz [Fri, 1 Apr 2022 22:40:06 +0000 (17:40 -0500)]
Update demo.cpp for 0.0.106
Matt Corallo [Wed, 30 Mar 2022 17:16:02 +0000 (17:16 +0000)]
Merge pull request #67 from TheBlueMatt/main
Redo tuple-reference mapping and prep for 106
Matt Corallo [Tue, 29 Mar 2022 22:37:38 +0000 (22:37 +0000)]
Update auto-generated bindings
Matt Corallo [Tue, 29 Mar 2022 22:33:27 +0000 (22:33 +0000)]
Crack `ReadableArgs` params when they're tuples
This replaces the special handling we'd had in 0.0.105.2 for
tuples-containing-references by instead just cracking open the
tuples and converting each field individually when calling
`ReadableArgs` where the argument is a tuple.
Matt Corallo [Tue, 29 Mar 2022 21:02:05 +0000 (21:02 +0000)]
Revert "Consider all reference types clonable (because they are)"
This reverts commit
291aea2200e01843623a67d42112500b1810d276 .
Matt Corallo [Tue, 29 Mar 2022 21:01:57 +0000 (21:01 +0000)]
Revert "Manually handle generated types containing references to opaques"
This reverts commit
3798e35c9b8f23fa1500b8bc9867fef319287133 .
Matt Corallo [Tue, 29 Mar 2022 21:00:46 +0000 (21:00 +0000)]
Separate out CFLAGS for host builds and separate targets
This should at least fix one bug someone ran into trying to build
for Android from OSX.
Matt Corallo [Tue, 29 Mar 2022 20:47:09 +0000 (20:47 +0000)]
Clone for `&Option<Enum>`
Matt Corallo [Tue, 29 Mar 2022 19:23:05 +0000 (19:23 +0000)]
Push down type conversion logic around contained-has-inner some
Matt Corallo [Tue, 29 Mar 2022 22:43:31 +0000 (22:43 +0000)]
Pin cbindgen as 0.21 broke the MSRV
Matt Corallo [Tue, 29 Mar 2022 18:35:33 +0000 (18:35 +0000)]
Dont try to run valgrind on ppcel64 (it barfs on secp256k1)
Matt Corallo [Wed, 23 Mar 2022 20:23:23 +0000 (20:23 +0000)]
Merge pull request #63 from TheBlueMatt/main
Consider all reference types clonable + handle refs-in-tuples
Matt Corallo [Wed, 23 Mar 2022 03:37:53 +0000 (03:37 +0000)]
Update auto-generated bindings
Matt Corallo [Wed, 23 Mar 2022 16:29:40 +0000 (16:29 +0000)]
Manually handle generated types containing references to opaques
This is really disgusting, we really shouldn't have references in
generated types at all, its just a mess. Instead, we should break
apart arguments when its a tuple, which would solve this more
cleanly.
Matt Corallo [Wed, 23 Mar 2022 03:38:15 +0000 (03:38 +0000)]
Consider all reference types clonable (because they are)
Matt Corallo [Wed, 23 Mar 2022 03:14:55 +0000 (03:14 +0000)]
Merge pull request #62 from TheBlueMatt/main
Expose ProbabilisticScorer in Bindings
Matt Corallo [Wed, 23 Mar 2022 00:55:40 +0000 (00:55 +0000)]
Update auto-generated bindings with the ProbabilisticScorer
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.