ldk-c-bindings
2 years agoMerge pull request #17 from TheBlueMatt/2021-04-upstream-confirm
Matt Corallo [Mon, 26 Apr 2021 17:25:15 +0000 (17:25 +0000)]
Merge pull request #17 from TheBlueMatt/2021-04-upstream-confirm

Bump upstream to handle the Confirm trait

2 years agoEnsure array lengthgs are Int literals 2021-04-upstream-confirm
Matt Corallo [Mon, 26 Apr 2021 16:59:43 +0000 (16:59 +0000)]
Ensure array lengthgs are Int literals

This fixes a bug where an array will be converted to
[u8; StringLiteral] which results in us deciding we don't know how
to map it.

Fixes: dec732cefbdd97585b7de7fd4a9521f44f1580dd
2 years agoFix build with old/OSX clang, fixes #15
Matt Corallo [Mon, 26 Apr 2021 16:39:26 +0000 (16:39 +0000)]
Fix build with old/OSX clang, fixes #15

2 years agoUpdate git hash to latest upstream
Matt Corallo [Mon, 26 Apr 2021 15:50:46 +0000 (15:50 +0000)]
Update git hash to latest upstream

2 years agoUpdate auto-generated bindings to latest upstream
Matt Corallo [Mon, 26 Apr 2021 15:49:44 +0000 (15:49 +0000)]
Update auto-generated bindings to latest upstream

2 years agoDrop redundant deref in vec iteration
Matt Corallo [Mon, 26 Apr 2021 15:42:09 +0000 (15:42 +0000)]
Drop redundant deref in vec iteration

2 years agoHandle tuple-in-slice conversions both to *and* from C
Matt Corallo [Mon, 26 Apr 2021 15:41:48 +0000 (15:41 +0000)]
Handle tuple-in-slice conversions both to *and* from C

2 years agoHandle transaction conversion directly instead of via a new var
Matt Corallo [Sun, 25 Apr 2021 22:30:07 +0000 (22:30 +0000)]
Handle transaction conversion directly instead of via a new var

new var conversion isn't supported everywhere, and there's really
no reason transaction conversion should need it.

2 years agoSomewhat more consistently map references to C
Matt Corallo [Mon, 26 Apr 2021 15:48:06 +0000 (15:48 +0000)]
Somewhat more consistently map references to C

Instead of assuming that in some cases references are
pre-dereferenced before the to-C prefix and suffix conversions, we
no longer do that.

This matches other cases and is simply more consistent, apparently
fixing an old oversight in early generation code.

2 years agoMerge pull request #16 from afilini/cleanup
Matt Corallo [Mon, 26 Apr 2021 16:01:51 +0000 (16:01 +0000)]
Merge pull request #16 from afilini/cleanup

Minor cleanup/refactoring

2 years agoReplace more manually-built `syn::Path` with `parse_quote!()`
Alekos Filini [Mon, 26 Apr 2021 12:20:47 +0000 (14:20 +0200)]
Replace more manually-built `syn::Path` with `parse_quote!()`

2 years agoUse `quote::format_ident!()` to make new `syn::Ident`
Alekos Filini [Mon, 26 Apr 2021 11:10:49 +0000 (13:10 +0200)]
Use `quote::format_ident!()` to make new `syn::Ident`

2 years agoUse `parse_quote!()` to build complex syn::* objects
Alekos Filini [Mon, 26 Apr 2021 10:01:09 +0000 (12:01 +0200)]
Use `parse_quote!()` to build complex syn::* objects

2 years agoRemove unused import
Alekos Filini [Thu, 22 Apr 2021 10:27:52 +0000 (12:27 +0200)]
Remove unused import

2 years agoAdd .gitignore to ./c-bindings-gen
Alekos Filini [Thu, 22 Apr 2021 10:25:44 +0000 (12:25 +0200)]
Add .gitignore to ./c-bindings-gen

2 years agoMerge pull request #14 from TheBlueMatt/main
Matt Corallo [Thu, 22 Apr 2021 15:27:11 +0000 (15:27 +0000)]
Merge pull request #14 from TheBlueMatt/main

Update to latest upstream

2 years agoFix LTO with secp256k1's C code.
Matt Corallo [Thu, 22 Apr 2021 02:36:30 +0000 (02:36 +0000)]
Fix LTO with secp256k1's C code.

2 years agoOnly (attempt to) build for wasm32 when we're building nostd
Matt Corallo [Thu, 22 Apr 2021 02:33:35 +0000 (02:33 +0000)]
Only (attempt to) build for wasm32 when we're building nostd

2 years agoImprove c-bindings-gen compile time somewhat
Matt Corallo [Thu, 22 Apr 2021 02:33:31 +0000 (02:33 +0000)]
Improve c-bindings-gen compile time somewhat

2 years agoUpdate git hash for latest upstream
Matt Corallo [Wed, 21 Apr 2021 22:35:48 +0000 (22:35 +0000)]
Update git hash for latest upstream

2 years agoUpdate auto-generated bindings to latest upstream
Matt Corallo [Wed, 21 Apr 2021 22:32:11 +0000 (22:32 +0000)]
Update auto-generated bindings to latest upstream

2 years agoUpdate C++ bindings demo to new upstream API
Matt Corallo [Wed, 21 Apr 2021 22:31:54 +0000 (22:31 +0000)]
Update C++ bindings demo to new upstream API

2 years agoHandle alternate import paths for secp Public and SecretKey
Matt Corallo [Wed, 21 Apr 2021 22:31:23 +0000 (22:31 +0000)]
Handle alternate import paths for secp Public and SecretKey

2 years agoClean up cbindgen.toml to drop probably-stale-by-now info and options
Matt Corallo [Fri, 16 Apr 2021 02:29:11 +0000 (02:29 +0000)]
Clean up cbindgen.toml to drop probably-stale-by-now info and options

2 years agoMerge pull request #12 from TheBlueMatt/2021-04-incl-persister
Matt Corallo [Fri, 16 Apr 2021 01:00:23 +0000 (01:00 +0000)]
Merge pull request #12 from TheBlueMatt/2021-04-incl-persister

Include lightning-persister in generated bindings

2 years agoMerge pull request #13 from TheBlueMatt/2021-04-bump-upstream
Matt Corallo [Fri, 16 Apr 2021 00:39:14 +0000 (00:39 +0000)]
Merge pull request #13 from TheBlueMatt/2021-04-bump-upstream

Bump to latest upstream

2 years agoRegenerate auto-generated bindings with lightning-persister 2021-04-incl-persister
Matt Corallo [Tue, 13 Apr 2021 00:28:37 +0000 (20:28 -0400)]
Regenerate auto-generated bindings with lightning-persister

2 years agoHandle std::io::IOError and include lightning-persister in bindings
Matt Corallo [Sun, 11 Apr 2021 22:33:42 +0000 (18:33 -0400)]
Handle std::io::IOError and include lightning-persister in bindings

2 years agoIgnore `Sized` bounds when processing generics
Matt Corallo [Mon, 12 Apr 2021 22:26:28 +0000 (18:26 -0400)]
Ignore `Sized` bounds when processing generics

2 years agoUpdate auto-generated bindings with new module structure
Matt Corallo [Thu, 15 Apr 2021 17:20:09 +0000 (13:20 -0400)]
Update auto-generated bindings with new module structure

2 years agoUpdate manual c-bindings types for new bindings module structure
Matt Corallo [Mon, 12 Apr 2021 21:31:44 +0000 (17:31 -0400)]
Update manual c-bindings types for new bindings module structure

2 years agoDont pass original crate name in generator CLI (as there are multiple)
Matt Corallo [Mon, 12 Apr 2021 17:59:20 +0000 (13:59 -0400)]
Dont pass original crate name in generator CLI (as there are multiple)

2 years agoMove top-level crate inside a pub module in prep for multi-crate bindings
Matt Corallo [Mon, 12 Apr 2021 21:37:55 +0000 (17:37 -0400)]
Move top-level crate inside a pub module in prep for multi-crate bindings

This wraps the lightning crate inside a `pub mod lightning` wrapper
in genbindings.sh, and modifies the binding generator to handle it.

It ends up removing some code in the main TypeResolver, at the cost
of some extra handling of imports in the ImportResolver, which
focuses the amount of code that needs to be aware of the top-level
crate name down to a much smaller area. This preps us for creating
bindings for multiple crates at once.

2 years agoUpdate auto-generated bindings to latest upstream 2021-04-bump-upstream
Matt Corallo [Tue, 13 Apr 2021 18:27:07 +0000 (14:27 -0400)]
Update auto-generated bindings to latest upstream

2 years agoUpdate demo to latest upstream bindings
Matt Corallo [Thu, 15 Apr 2021 17:17:30 +0000 (13:17 -0400)]
Update demo to latest upstream bindings

2 years agoSupport concretizing generics in template parameters
Matt Corallo [Thu, 15 Apr 2021 17:11:04 +0000 (13:11 -0400)]
Support concretizing generics in template parameters

2 years agoHandle type aliases which are used in the same file as declared.
Matt Corallo [Thu, 15 Apr 2021 17:10:22 +0000 (13:10 -0400)]
Handle type aliases which are used in the same file as declared.

We previously only handled type aliases correctly when they were
declared in a different file and imported.

2 years agoBump git hash to latest upstream
Matt Corallo [Tue, 13 Apr 2021 18:27:34 +0000 (14:27 -0400)]
Bump git hash to latest upstream

2 years agoMerge pull request #11 from TheBlueMatt/2021-04-upstream-bump
Matt Corallo [Tue, 13 Apr 2021 01:54:49 +0000 (01:54 +0000)]
Merge pull request #11 from TheBlueMatt/2021-04-upstream-bump

Bump Upstream and clean up supertrait handling

2 years agoUpdate auto-generated bindings with latest upstream + generator 2021-04-upstream-bump
Matt Corallo [Mon, 12 Apr 2021 21:37:37 +0000 (17:37 -0400)]
Update auto-generated bindings with latest upstream + generator

2 years agoUpdate secp patch git hash to new PR (rebased on upstream)
Matt Corallo [Mon, 12 Apr 2021 21:47:35 +0000 (17:47 -0400)]
Update secp patch git hash to new PR (rebased on upstream)

2 years agoBump upstream git hash
Matt Corallo [Mon, 12 Apr 2021 21:41:22 +0000 (17:41 -0400)]
Bump upstream git hash

2 years agoUpdate demo for new upstream changes
Matt Corallo [Fri, 26 Mar 2021 22:20:19 +0000 (18:20 -0400)]
Update demo for new upstream changes

2 years agoCreate a scoped ImportResolver of the trait defn when impl'ing a parent trait
Matt Corallo [Mon, 12 Apr 2021 21:11:59 +0000 (17:11 -0400)]
Create a scoped ImportResolver of the trait defn when impl'ing a parent trait

Astoundingly, this was actually pretty easy.

2 years agoMake GenericTypes stack pushes RAII, giving borrowck knowledge of diff ImportResolver...
Matt Corallo [Mon, 12 Apr 2021 21:10:17 +0000 (17:10 -0400)]
Make GenericTypes stack pushes RAII, giving borrowck knowledge of diff ImportResolver lifetimes

2 years agoKeep track of the full parsed library in CrateTypes
Matt Corallo [Mon, 12 Apr 2021 18:34:58 +0000 (14:34 -0400)]
Keep track of the full parsed library in CrateTypes

This also moves CrateTypes to interrior mutable, as we pass around
references to it, which are ultimately mutable, but only to add
information about generic mapped types the first time we use them.

2 years agoRemove now-unused manual gen which our own trait resolution can handle
Matt Corallo [Mon, 12 Apr 2021 02:19:47 +0000 (22:19 -0400)]
Remove now-unused manual gen which our own trait resolution can handle

Note macros were unnecessary when we started doing rustc desugar runs.

2 years agoPrint the correct object names whem processing supertrait methods
Matt Corallo [Mon, 12 Apr 2021 02:19:21 +0000 (22:19 -0400)]
Print the correct object names whem processing supertrait methods

2 years agoHandle traits which require Clone when their supertraits do not
Matt Corallo [Mon, 12 Apr 2021 02:14:26 +0000 (22:14 -0400)]
Handle traits which require Clone when their supertraits do not

We do this by adding a SuperTrait_clone method field in the Trait's
object, which we call when cloning the Trait.

2 years agoMerge pull request #10 from TheBlueMatt/2021-03-enable-wallclock
Matt Corallo [Wed, 31 Mar 2021 19:34:13 +0000 (19:34 +0000)]
Merge pull request #10 from TheBlueMatt/2021-03-enable-wallclock

Optionally enable allow_wallclock_use

2 years agoUpdate auto-generated bindings with allow_wallclock_use 2021-03-enable-wallclock
Matt Corallo [Wed, 31 Mar 2021 04:08:34 +0000 (00:08 -0400)]
Update auto-generated bindings with allow_wallclock_use

2 years agoOptionally enable allow_wallclock_use
Matt Corallo [Wed, 31 Mar 2021 04:08:22 +0000 (00:08 -0400)]
Optionally enable allow_wallclock_use

2 years agoMerge pull request #9 from TheBlueMatt/2021-03-missing-docs
Arik Sosman [Tue, 30 Mar 2021 09:00:52 +0000 (02:00 -0700)]
Merge pull request #9 from TheBlueMatt/2021-03-missing-docs

Add Missing Docs

2 years agoUpdate auto-generated C bindings with new documentation 2021-03-missing-docs
Matt Corallo [Mon, 29 Mar 2021 19:26:25 +0000 (15:26 -0400)]
Update auto-generated C bindings with new documentation

2 years agoMake c_types module pub as its contents are exposed to C
Matt Corallo [Mon, 29 Mar 2021 17:50:42 +0000 (13:50 -0400)]
Make c_types module pub as its contents are exposed to C

This makes our `[deny(missing_docs)]` annotation effective

2 years agoAdd missing documentation to c_types module contents
Matt Corallo [Mon, 29 Mar 2021 18:40:22 +0000 (14:40 -0400)]
Add missing documentation to c_types module contents

2 years agoMerge pull request #8 from TheBlueMatt/2021-03-option-primitive
Matt Corallo [Mon, 29 Mar 2021 20:28:30 +0000 (20:28 +0000)]
Merge pull request #8 from TheBlueMatt/2021-03-option-primitive

Support Option<Primitive> and Option<Tuple>

2 years agoUpdate auto-generated bindings with Option constructor utilities 2021-03-option-primitive
Matt Corallo [Mon, 29 Mar 2021 19:23:42 +0000 (15:23 -0400)]
Update auto-generated bindings with Option constructor utilities

2 years agoAdd constructor utilities for generated Option<> types
Matt Corallo [Mon, 29 Mar 2021 19:23:21 +0000 (15:23 -0400)]
Add constructor utilities for generated Option<> types

2 years agoUpdate auto-generated bindings with new Option<primitive> support
Matt Corallo [Sun, 28 Mar 2021 20:46:10 +0000 (16:46 -0400)]
Update auto-generated bindings with new Option<primitive> support

2 years agoSupport Option<primitive>
Matt Corallo [Mon, 29 Mar 2021 17:32:18 +0000 (13:32 -0400)]
Support Option<primitive>

2 years agoUpdate current git hash for upstream head
Matt Corallo [Mon, 29 Mar 2021 17:43:09 +0000 (13:43 -0400)]
Update current git hash for upstream head

2 years agoUpdate auto-generated bindings to current upstream
Matt Corallo [Mon, 29 Mar 2021 17:38:49 +0000 (13:38 -0400)]
Update auto-generated bindings to current upstream

2 years agoHandle Option<(..)> as a non-transparent container, unlike Option<..>
Matt Corallo [Mon, 29 Mar 2021 16:43:00 +0000 (12:43 -0400)]
Handle Option<(..)> as a non-transparent container, unlike Option<..>

2 years agoPush prefix printing selectin logic into container resolution
Matt Corallo [Mon, 29 Mar 2021 15:20:42 +0000 (11:20 -0400)]
Push prefix printing selectin logic into container resolution

Instead of trying to guess the appropriate prefix printing based on
the types. This has no changes to the generated code.

2 years agoMerge pull request #6 from TheBlueMatt/2021-03-deterministic-bins
Matt Corallo [Wed, 24 Mar 2021 18:24:41 +0000 (18:24 +0000)]
Merge pull request #6 from TheBlueMatt/2021-03-deterministic-bins

Make build output deterministic by remapping paths

2 years agoUse cross-language LTO when building deps 2021-03-deterministic-bins
Matt Corallo [Wed, 24 Mar 2021 04:27:01 +0000 (00:27 -0400)]
Use cross-language LTO when building deps

2 years agoMake build output deterministic by remapping paths
Matt Corallo [Tue, 23 Mar 2021 04:46:03 +0000 (00:46 -0400)]
Make build output deterministic by remapping paths

2 years agoMerge pull request #5 from TheBlueMatt/2021-03-bump-listen
Arik Sosman [Sun, 21 Mar 2021 06:03:50 +0000 (23:03 -0700)]
Merge pull request #5 from TheBlueMatt/2021-03-bump-listen

Bump to latest upstream

2 years agoUpdate auto-generated bindings 2021-03-bump-listen
Matt Corallo [Sat, 20 Mar 2021 21:32:50 +0000 (17:32 -0400)]
Update auto-generated bindings

2 years agoUpdate Cargo pointer to latest upstream commit
Matt Corallo [Sat, 20 Mar 2021 21:33:22 +0000 (17:33 -0400)]
Update Cargo pointer to latest upstream commit

2 years agoUpdate demo to use Listen interface, fixing block connection ordering
Matt Corallo [Wed, 10 Mar 2021 04:17:35 +0000 (23:17 -0500)]
Update demo to use Listen interface, fixing block connection ordering

2 years agoMerge pull request #4 from TheBlueMatt/main
Matt Corallo [Sun, 21 Mar 2021 02:52:13 +0000 (02:52 +0000)]
Merge pull request #4 from TheBlueMatt/main

Add license info

2 years agoRegenerate auto-generated bindings with license info and new upstream
Matt Corallo [Thu, 18 Mar 2021 15:23:31 +0000 (11:23 -0400)]
Regenerate auto-generated bindings with license info and new upstream

2 years agoUpdate git hash to point to latest upstream
Matt Corallo [Fri, 19 Mar 2021 00:07:27 +0000 (20:07 -0400)]
Update git hash to point to latest upstream

2 years agoAdd MIT+Apache2 license and headers incl generated files
Matt Corallo [Thu, 18 Mar 2021 15:20:09 +0000 (11:20 -0400)]
Add MIT+Apache2 license and headers incl generated files

2 years agoMerge pull request #3 from TheBlueMatt/main
Matt Corallo [Wed, 10 Mar 2021 04:47:47 +0000 (04:47 +0000)]
Merge pull request #3 from TheBlueMatt/main

Fix indentation on trait `free` documentation

2 years agoUpdate auto-generated bindings
Matt Corallo [Wed, 10 Mar 2021 04:15:07 +0000 (23:15 -0500)]
Update auto-generated bindings

2 years agoFix indentation on trait `free` documentation
Matt Corallo [Wed, 10 Mar 2021 03:45:25 +0000 (22:45 -0500)]
Fix indentation on trait `free` documentation

2 years agoMerge pull request #2 from TheBlueMatt/main
Matt Corallo [Wed, 10 Mar 2021 03:33:43 +0000 (22:33 -0500)]
Merge pull request #2 from TheBlueMatt/main

Rebuild and add/require more docs

2 years agoUpdate C++ demo to latest upstream changes
Matt Corallo [Wed, 10 Mar 2021 02:06:04 +0000 (21:06 -0500)]
Update C++ demo to latest upstream changes

2 years agoUpdate lightning-c-bindings crate rev to current upstream
Matt Corallo [Wed, 10 Mar 2021 02:17:40 +0000 (21:17 -0500)]
Update lightning-c-bindings crate rev to current upstream

2 years agoRebuild against current RL main
Matt Corallo [Wed, 10 Mar 2021 02:04:51 +0000 (21:04 -0500)]
Rebuild against current RL main

2 years agoAdd additional documentation and #![deny(missing_docs)]
Matt Corallo [Mon, 8 Mar 2021 21:17:08 +0000 (16:17 -0500)]
Add additional documentation and #![deny(missing_docs)]

2 years agoMerge pull request #1 from TheBlueMatt/main
Matt Corallo [Mon, 8 Mar 2021 21:34:27 +0000 (13:34 -0800)]
Merge pull request #1 from TheBlueMatt/main

Update genbindings.sh and Cargo.toml for out-of-tree builds

2 years agoFix path resolution under OSX
Matt Corallo [Mon, 8 Mar 2021 21:02:49 +0000 (16:02 -0500)]
Fix path resolution under OSX

2 years agoAdd GitHub CI tests for bindings against upstream git
Matt Corallo [Mon, 8 Mar 2021 19:52:54 +0000 (14:52 -0500)]
Add GitHub CI tests for bindings against upstream git

2 years agoUpdate auto-generated bindings
Matt Corallo [Mon, 8 Mar 2021 19:30:59 +0000 (14:30 -0500)]
Update auto-generated bindings

2 years agoUpdate genbindings.sh and Cargo.toml for out-of-tree builds
Matt Corallo [Mon, 8 Mar 2021 19:15:23 +0000 (14:15 -0500)]
Update genbindings.sh and Cargo.toml for out-of-tree builds

2 years agoInitial checkin with no changes from current RL git head
Matt Corallo [Mon, 8 Mar 2021 18:47:30 +0000 (13:47 -0500)]
Initial checkin with no changes from current RL git head