]> git.bitcoin.ninja Git - ldk-c-bindings/log
ldk-c-bindings
3 years ago[net] Ensure we don't spin loop by keeping the poll write bit set
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.

3 years agoMerge pull request #45 from TheBlueMatt/main
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`.

3 years agoUpdate auto-generated bindings to latest upstream
Matt Corallo [Tue, 28 Sep 2021 01:07:41 +0000 (01:07 +0000)]
Update auto-generated bindings to latest upstream

3 years agoUpdate git commit dependency to latest upstream
Matt Corallo [Tue, 28 Sep 2021 01:08:14 +0000 (01:08 +0000)]
Update git commit dependency to latest upstream

3 years agoCorrect clone logic for `Str`. v0.0.101.3
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.

3 years agoMerge pull request #44 from TheBlueMatt/main v0.0.101.2
Matt Corallo [Sun, 26 Sep 2021 22:54:31 +0000 (22:54 +0000)]
Merge pull request #44 from TheBlueMatt/main

3 years agoDetect a type as clonable with an explicit `impl Clone`
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`

3 years agoFix races in demo C++ bindings that can hang valgrind in CI
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

3 years agoCache multi-line sed replacements across methods to improve runtime
Matt Corallo [Sat, 25 Sep 2021 00:38:03 +0000 (00:38 +0000)]
Cache multi-line sed replacements across methods to improve runtime

3 years agoMerge pull request #43 from TheBlueMatt/main v0.0.101.1
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

3 years agoLink 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

3 years agoMerge pull request #42 from TheBlueMatt/main
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

3 years agoBump lightning dep gitish 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

3 years agoUpdate C and C++ demos to latest API and test custom messages
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

3 years agoUpdate auto-generated bindings
Matt Corallo [Mon, 6 Sep 2021 01:13:29 +0000 (01:13 +0000)]
Update auto-generated bindings

3 years agoCall clone explicitly to avoid deref recursion when cloning traits
Matt Corallo [Fri, 24 Sep 2021 18:28:18 +0000 (18:28 +0000)]
Call clone explicitly to avoid deref recursion when cloning traits

3 years agoAdd missing C++ header for LDK::Str
Matt Corallo [Thu, 23 Sep 2021 02:59:04 +0000 (02:59 +0000)]
Add missing C++ header for LDK::Str

3 years agoStop tracking unused syn::Type mappings in GenericResolver
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

3 years agoUse `GenericTypes`'s type resolver instead of re-resolving
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.

3 years agoWork around broken resolution on non-pub use aliasing in another module
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

3 years agoHandle uncallable trait methods that use Infallible in a parameter
Matt Corallo [Thu, 23 Sep 2021 04:17:21 +0000 (04:17 +0000)]
Handle uncallable trait methods that use Infallible in a parameter

3 years agoMap core::convert::Infallible to a similar manually-defined struct
Matt Corallo [Wed, 22 Sep 2021 23:13:34 +0000 (23:13 +0000)]
Map core::convert::Infallible to a similar manually-defined struct

3 years agoSupport std::io::Read natively by mapping it to and u8slice
Matt Corallo [Thu, 23 Sep 2021 17:47:51 +0000 (17:47 +0000)]
Support std::io::Read natively by mapping it to and u8slice

3 years agoSupport converting C `OutPoint`s to `bitcoin` `OutPoint`s
Matt Corallo [Thu, 23 Sep 2021 17:46:30 +0000 (17:46 +0000)]
Support converting C `OutPoint`s to `bitcoin` `OutPoint`s

3 years agoUpdate io::Read manual implementation to upstream API changes
Matt Corallo [Thu, 23 Sep 2021 17:45:51 +0000 (17:45 +0000)]
Update io::Read manual implementation to upstream API changes

3 years agoAvoid mapping optionals as owned pointers
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.

3 years agoHandle `W: X<T = Y>` generics where `Y` is used as `Z<Y>`
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.

3 years agoCall methods explicitly on traits to avoid to deref recursion
Matt Corallo [Wed, 22 Sep 2021 23:15:20 +0000 (23:15 +0000)]
Call methods explicitly on traits to avoid to deref recursion

3 years agoCorrect printing generic methods in traits
Matt Corallo [Wed, 22 Sep 2021 18:39:46 +0000 (18:39 +0000)]
Correct printing generic methods in traits

If a trait method is generic (and not the object itself), we
previously would print the concrete resolved types in the
`impl nativeTrait for TraitStruct` block instead of the generic
names, leading to compilation failures.

3 years agoLearn supertrait associated types when processing traits
Matt Corallo [Wed, 22 Sep 2021 04:13:16 +0000 (04:13 +0000)]
Learn supertrait associated types when processing traits

3 years agoDefine a macro for constructing a TypeResolver for a given module
Matt Corallo [Thu, 23 Sep 2021 04:16:48 +0000 (04:16 +0000)]
Define a macro for constructing a TypeResolver for a given module

This is used to resolve types referenced in modules other than the
current one.

3 years agoSupport mapping core::fmt::Debug as a supertrait
Matt Corallo [Wed, 22 Sep 2021 02:43:51 +0000 (02:43 +0000)]
Support mapping core::fmt::Debug as a supertrait

3 years agoTest fetching a Vec<Vec<Opaque>> via a generated getter in C++ demo
Matt Corallo [Mon, 6 Sep 2021 01:01:16 +0000 (01:01 +0000)]
Test fetching a Vec<Vec<Opaque>> via a generated getter in C++ demo

3 years agoSupport mapping slices which contain slices which contain opaques
Matt Corallo [Mon, 6 Sep 2021 01:00:23 +0000 (01:00 +0000)]
Support mapping slices which contain slices which contain opaques

Fixes https://github.com/lightningdevkit/ldk-garbagecollected/issues/43

3 years agoMap Vecs to slices when constructing a getter for a public field
Matt Corallo [Mon, 6 Sep 2021 00:53:56 +0000 (00:53 +0000)]
Map Vecs to slices when constructing a getter for a public field

This adds logic to allow constructing a getter for a public Vec
field where the inner items are opaque structs. In order to do this
we map them as slices, which will end up generating Vecs with
elements which all have their `is_owned` flags unset.

3 years agoDrop debug print that slipped in in a previous PR
Matt Corallo [Wed, 22 Sep 2021 06:04:24 +0000 (06:04 +0000)]
Drop debug print that slipped in in a previous PR

3 years agoMerge pull request #40 from TheBlueMatt/main
Matt Corallo [Thu, 19 Aug 2021 18:29:35 +0000 (18:29 +0000)]
Merge pull request #40 from TheBlueMatt/main

Differentiate inner pointers representing None and Some(ZST)

3 years agoUpdate git hash to latest upstream
Matt Corallo [Thu, 19 Aug 2021 00:01:56 +0000 (00:01 +0000)]
Update git hash to latest upstream

3 years agoUpdate auto-generated bindings to latest upstream
Matt Corallo [Thu, 19 Aug 2021 00:01:04 +0000 (00:01 +0000)]
Update auto-generated bindings to latest upstream

3 years agoUpdate auto-generated bindings
Matt Corallo [Wed, 18 Aug 2021 22:53:37 +0000 (22:53 +0000)]
Update auto-generated bindings

3 years agoBuild native debug binaries with --cfg=test_mod_pointers
Matt Corallo [Wed, 18 Aug 2021 21:13:52 +0000 (21:13 +0000)]
Build native debug binaries with --cfg=test_mod_pointers

3 years agoDifferentiate `inner` pointers representing `None` and `Some(ZST)`
Matt Corallo [Wed, 18 Aug 2021 21:51:28 +0000 (21:51 +0000)]
Differentiate `inner` pointers representing `None` and `Some(ZST)`

For zero-sized-types, rust `Box::into_inner(Box::new(ZST {}))`
returns `1usize as *mut ZST`, which confuses our Java bindings
which check for `None` by checking if `inner < 1024`. While we
could convert the Java bindings to check for `inner == 0`, the
magic value for ZST pointers is not, to my knowledge, an ABI
guarantee Rust provides.

Instead, we add an offset to the `inner` pointers to push them
past the zero page for ZSTs, taking this opportunity to clean up
some of our pointer conversion and push them through a common set
of utility functions.

We also add testing infrastructure to add similar offsets to
non-ZSTs to get good test coverage of the offset addition-removal,
though Rust should largely be ignoring pointer values for ZSTs
anyway so there should be little risk in anything going wrong here.

3 years agoMerge pull request #39 from TheBlueMatt/main v0.0.100.0
Matt Corallo [Tue, 17 Aug 2021 21:53:38 +0000 (21:53 +0000)]
Merge pull request #39 from TheBlueMatt/main

Update to 0.0.100

3 years agoUse v0.0.100 for lightning-c-bindings rust-lightning dep
Matt Corallo [Tue, 17 Aug 2021 20:39:29 +0000 (20:39 +0000)]
Use v0.0.100 for lightning-c-bindings rust-lightning dep

3 years agoCommit latest auto-generated C bindings based on 0.0.100
Matt Corallo [Tue, 17 Aug 2021 19:50:20 +0000 (19:50 +0000)]
Commit latest auto-generated C bindings based on 0.0.100

3 years agoAdd support for bitcoin::hash_types references and NonZeroU8
Matt Corallo [Tue, 17 Aug 2021 19:44:02 +0000 (19:44 +0000)]
Add support for bitcoin::hash_types references and NonZeroU8

3 years agoMerge pull request #38 from TheBlueMatt/main
Matt Corallo [Sun, 8 Aug 2021 18:16:10 +0000 (18:16 +0000)]
Merge pull request #38 from TheBlueMatt/main

Provide full (new) struct to trait clone functions

3 years agoUpdate auto-generated bindings
Matt Corallo [Sun, 18 Jul 2021 02:16:31 +0000 (02:16 +0000)]
Update auto-generated bindings

3 years agoUpdate git hash to latest upstream
Matt Corallo [Wed, 28 Jul 2021 03:09:17 +0000 (03:09 +0000)]
Update git hash to latest upstream

3 years agoBump rust-bitcoin dependency to match rust-lightning
Matt Corallo [Sat, 7 Aug 2021 00:57:18 +0000 (00:57 +0000)]
Bump rust-bitcoin dependency to match rust-lightning

3 years agoAdd utility method to construct new complex enums
Matt Corallo [Sat, 7 Aug 2021 19:03:27 +0000 (19:03 +0000)]
Add utility method to construct new complex enums

This is incredibly useful for downstream languages eg Java as it
avoids having to manually implement constructors and can just use
common function-mapping logic.

3 years agoNote which parameters or return values are (secretly) Options
Matt Corallo [Thu, 5 Aug 2021 01:53:48 +0000 (01:53 +0000)]
Note which parameters or return values are (secretly) Options

Because `Option<OpaqueType>` is mapped the same as `OpaqueType` its
not immediately clear which values in the API are actually
`Option<>`al. Thus, we should at least have documentation noting
this.

3 years agoExpose struct method calls on trait structs to C++ directly
Matt Corallo [Wed, 21 Jul 2021 18:51:54 +0000 (18:51 +0000)]
Expose struct method calls on trait structs to C++ directly

We can add method calls for non-trait structs later, but this is
particularly useful as otherwise you need to extract both the
method and the `this_arg` to make the call.

3 years agoUpdate C++ demo and ldk_net to new clone API
Matt Corallo [Sat, 7 Aug 2021 21:08:09 +0000 (21:08 +0000)]
Update C++ demo and ldk_net to new clone API

3 years agoUpdate C++ demo to new upstream changes
Matt Corallo [Sat, 7 Aug 2021 21:07:55 +0000 (21:07 +0000)]
Update C++ demo to new upstream changes

3 years agoProvide full (new) struct to trait clone functions
Matt Corallo [Sun, 18 Jul 2021 02:09:45 +0000 (02:09 +0000)]
Provide full (new) struct to trait clone functions

Previously, when we went to clone a trait-implementation struct,
we'd provide only the `this_arg` void pointer, requiring that the
`this_arg` pointer be cloned into a new object while all remaining
fields are copied over exactly.

This has a few important limitations:
 * When a struct is cloned, it is not possible to set a `free`
   function to free any new data placed in `this_arg` without it
   also being set on the original struct.
 * Supertrait fields cannot be updated in the subtrait clone
   method, including the `this_arg` and `free` methods.

The first limitation prevents us from setting `free` after a clone
when the original trait may or may not have had `free` set. For
example, if the original trait was created with a `Obj_as_Trait`
method, cloned copies would never be free'd.

The second limitation prevents us from keeping the super and
subtrait `this_arg` fields in sync, in addition to limitations
similar to the above.

This resulted in Java code double-free'ing the `this_arg` field in
`InMemorySigner` objects which were accessed as both `Sign` and
`BaseSign` traits.

3 years agoCorrect args passed to supertrait C methods in subtrait impls
Matt Corallo [Sat, 17 Jul 2021 17:39:44 +0000 (17:39 +0000)]
Correct args passed to supertrait C methods in subtrait impls

3 years agoCopy PeerManager pointer in ldk_net
Matt Corallo [Wed, 28 Jul 2021 17:04:34 +0000 (17:04 +0000)]
Copy PeerManager pointer in ldk_net

3 years agoSwap include <> for include "" to make downstream Swift projects happy
Matt Corallo [Wed, 28 Jul 2021 00:45:46 +0000 (00:45 +0000)]
Swap include <> for include "" to make downstream Swift projects happy

3 years agoIf we're leaving binaries around, use -fPIC for ldk_net.o
Matt Corallo [Wed, 28 Jul 2021 00:39:47 +0000 (00:39 +0000)]
If we're leaving binaries around, use -fPIC for ldk_net.o

This is needed if downstream projects want to just take our
ldk_net.o binary and link them in directly, eg with addrsan to
avoid figuring out exact compile flags.

3 years agoFix LLVM version-suffixed binary name checking
Matt Corallo [Tue, 27 Jul 2021 23:47:01 +0000 (23:47 +0000)]
Fix LLVM version-suffixed binary name checking

Most hosts will install clang/LLVM binaries with the -MAJOR_VER
suffix, but we were searching for -MAJOR_VER.MINOR_VER suffix.

3 years agoMerge pull request #36 from TheBlueMatt/main v0.0.99.2
Matt Corallo [Wed, 14 Jul 2021 00:07:11 +0000 (00:07 +0000)]
Merge pull request #36 from TheBlueMatt/main

Fix Determinism with Newer Rustc and support additional targets (for Android)

3 years agoEnable macos-11 in CI
Matt Corallo [Tue, 13 Jul 2021 23:39:32 +0000 (23:39 +0000)]
Enable macos-11 in CI

3 years agoApply metadata replacement to ldk library as well for new rustc
Matt Corallo [Tue, 13 Jul 2021 20:15:40 +0000 (20:15 +0000)]
Apply metadata replacement to ldk library as well for new rustc

3 years agoAdd extra targets env variable to build for extra targets (eg Android)
Matt Corallo [Mon, 12 Jul 2021 18:46:31 +0000 (18:46 +0000)]
Add extra targets env variable to build for extra targets (eg Android)

3 years agoMerge pull request #35 from TheBlueMatt/main v0.0.99.1
Matt Corallo [Fri, 9 Jul 2021 22:32:43 +0000 (22:32 +0000)]
Merge pull request #35 from TheBlueMatt/main

3 years agoUpdate build-std parameters
Matt Corallo [Fri, 9 Jul 2021 19:45:36 +0000 (19:45 +0000)]
Update build-std parameters

As suggested at https://github.com/rust-lang/wg-cargo-std-aware/issues/71#issuecomment-877403993

3 years agoSet compiler flags earlier to get -isysroot in all RL builds
Matt Corallo [Fri, 9 Jul 2021 19:33:33 +0000 (19:33 +0000)]
Set compiler flags earlier to get -isysroot in all RL builds

3 years agoMerge pull request #34 from TheBlueMatt/main v0.0.99.0
Matt Corallo [Fri, 9 Jul 2021 18:48:20 +0000 (18:48 +0000)]
Merge pull request #34 from TheBlueMatt/main

Add a POSIX C LDK networking library

3 years agoUpdate Cargo git hash to upstream v0.0.99
Matt Corallo [Fri, 2 Jul 2021 22:14:32 +0000 (22:14 +0000)]
Update Cargo git hash to upstream v0.0.99

3 years agoUpdate auto-generated bindings to latest upstream
Matt Corallo [Fri, 2 Jul 2021 22:11:23 +0000 (22:11 +0000)]
Update auto-generated bindings to latest upstream

3 years agoUpdate C++ bindings demo to latest upstream API
Matt Corallo [Wed, 7 Jul 2021 00:16:05 +0000 (00:16 +0000)]
Update C++ bindings demo to latest upstream API

3 years agoUse correct lld to match rustc LLVM version (if available)
Matt Corallo [Wed, 7 Jul 2021 19:54:25 +0000 (19:54 +0000)]
Use correct lld to match rustc LLVM version (if available)

3 years agoDrop -flto from non-cross-language-lto C++ demo builds
Matt Corallo [Tue, 6 Jul 2021 22:07:42 +0000 (22:07 +0000)]
Drop -flto from non-cross-language-lto C++ demo builds

It appears somehow the LLVM IR is slipping into the Rust library,
causing Ubunto link to fail with the following error:

/usr/bin/ld: error: LLVM gold plugin has failed to create LTO module: Invalid record
clang: error: linker command failed with exit code 1 (use -v to see invocation)

3 years agoAdd a POSIX C LDK networking library
Matt Corallo [Fri, 2 Jul 2021 20:11:20 +0000 (20:11 +0000)]
Add a POSIX C LDK networking library

3 years agoSkip trait typedef in extra header as its unnecessary
Matt Corallo [Sat, 3 Jul 2021 01:28:25 +0000 (01:28 +0000)]
Skip trait typedef in extra header as its unnecessary

... and OSX complains that "redefinition of typedef...is a C11
feature"

3 years agoDrop rust-secp256k1 patch as it has been merged into a release upstream
Matt Corallo [Wed, 23 Jun 2021 18:18:27 +0000 (18:18 +0000)]
Drop rust-secp256k1 patch as it has been merged into a release upstream

3 years agoMerge pull request #31 from TheBlueMatt/main v0.0.98.1
Matt Corallo [Tue, 15 Jun 2021 18:12:25 +0000 (18:12 +0000)]
Merge pull request #31 from TheBlueMatt/main

Fix aarch64 targeting and print an error if its disabled

3 years agoDrop clang GH actions cache as it appears broken on OSX
Matt Corallo [Tue, 15 Jun 2021 18:02:38 +0000 (18:02 +0000)]
Drop clang GH actions cache as it appears broken on OSX

3 years agoDrop MacOS 11 runner until we get access to private preview
Matt Corallo [Tue, 15 Jun 2021 17:23:29 +0000 (17:23 +0000)]
Drop MacOS 11 runner until we get access to private preview

3 years agoFix aarch64 targeting and print an error if its disabled
Matt Corallo [Tue, 15 Jun 2021 17:16:51 +0000 (17:16 +0000)]
Fix aarch64 targeting and print an error if its disabled

3 years agoMerge pull request #30 from TheBlueMatt/main
Matt Corallo [Tue, 15 Jun 2021 16:06:54 +0000 (16:06 +0000)]
Merge pull request #30 from TheBlueMatt/main

Clean up OSX support and build for aarch64-apple-darwin

3 years agoAdd OSX CI
Matt Corallo [Mon, 14 Jun 2021 22:51:57 +0000 (22:51 +0000)]
Add OSX CI

3 years agoAlso build for aarch64-apple-darwin if we're building on x86_64 OSX
Matt Corallo [Mon, 14 Jun 2021 22:42:30 +0000 (22:42 +0000)]
Also build for aarch64-apple-darwin if we're building on x86_64 OSX

3 years agoClean up OSX support and rustc path selection somewhat
Matt Corallo [Mon, 14 Jun 2021 18:24:32 +0000 (18:24 +0000)]
Clean up OSX support and rustc path selection somewhat

3 years agoMerge pull request #29 from TheBlueMatt/main v0.0.98
Matt Corallo [Fri, 11 Jun 2021 18:30:46 +0000 (18:30 +0000)]
Merge pull request #29 from TheBlueMatt/main

Update to upstream 0.0.98

3 years agoUpdate auto-generated bindings to upstream 0.0.98
Matt Corallo [Fri, 11 Jun 2021 17:43:09 +0000 (17:43 +0000)]
Update auto-generated bindings to upstream 0.0.98

3 years agoSwitch rust-lightning dep to upstream now that we're "stable"
Matt Corallo [Fri, 11 Jun 2021 17:51:02 +0000 (17:51 +0000)]
Switch rust-lightning dep to upstream now that we're "stable"

3 years agoUpdate git HEAD to upstream 0.0.98
Matt Corallo [Fri, 11 Jun 2021 17:47:09 +0000 (17:47 +0000)]
Update git HEAD to upstream 0.0.98

3 years agoUpdate bindings C++ demo to latest upstream (0.0.98) API
Matt Corallo [Fri, 11 Jun 2021 17:36:26 +0000 (17:36 +0000)]
Update bindings C++ demo to latest upstream (0.0.98) API

3 years agoOnly set -mcpu=sandybridge on x86_64
Matt Corallo [Fri, 11 Jun 2021 17:41:49 +0000 (17:41 +0000)]
Only set -mcpu=sandybridge on x86_64

3 years agoDrop spurious deref when converting Vec entries to C
Matt Corallo [Fri, 11 Jun 2021 17:35:45 +0000 (17:35 +0000)]
Drop spurious deref when converting Vec entries to C

3 years agoMerge pull request #28 from TheBlueMatt/2021-06-fix-nondeterminism
Matt Corallo [Thu, 10 Jun 2021 15:50:26 +0000 (15:50 +0000)]
Merge pull request #28 from TheBlueMatt/2021-06-fix-nondeterminism

Fix various sources of build non-determinism and default to targeting sandybridge (ie AVX)

3 years agoEnsure we sanitize rustc random values for all lightning crates 2021-06-fix-nondeterminism
Matt Corallo [Wed, 9 Jun 2021 19:41:23 +0000 (19:41 +0000)]
Ensure we sanitize rustc random values for all lightning crates

3 years agoUse 16 hexits for git describe to avoid nondeterminism
Matt Corallo [Wed, 9 Jun 2021 19:13:59 +0000 (19:13 +0000)]
Use 16 hexits for git describe to avoid nondeterminism

3 years agoSet LC_ALL and -frandom-seed to avoid common nondeterminism sources
Matt Corallo [Wed, 9 Jun 2021 19:15:16 +0000 (19:15 +0000)]
Set LC_ALL and -frandom-seed to avoid common nondeterminism sources

3 years agoSwap default-cpu for sandybridge and use it when compiling libsecp
Matt Corallo [Wed, 9 Jun 2021 19:15:11 +0000 (19:15 +0000)]
Swap default-cpu for sandybridge and use it when compiling libsecp

sandybridge is a reasonable choice because it supports AVX but is
also 10+ years old (with AMD support for AVX at similar times).

The next option would be haswell with AVX2, which doesn't add as
much and for which AMD processors only came about in mid-2015.

3 years agoMerge pull request #27 from TheBlueMatt/main
Matt Corallo [Tue, 8 Jun 2021 18:17:35 +0000 (18:17 +0000)]
Merge pull request #27 from TheBlueMatt/main

Fix race in C++ demo where num_txs_broadcasted ++s before =0s

3 years agoFix race in C++ demo where num_txs_broadcasted ++s before =0s
Matt Corallo [Tue, 8 Jun 2021 18:01:37 +0000 (18:01 +0000)]
Fix race in C++ demo where num_txs_broadcasted ++s before =0s

3 years agoMerge pull request #26 from TheBlueMatt/main
Matt Corallo [Tue, 8 Jun 2021 17:14:40 +0000 (17:14 +0000)]
Merge pull request #26 from TheBlueMatt/main

Update rust-secp patch to match latest version and bump upstream