< MarcoFalke> FYI, I have assigned all non-mergeable open pulls to a new label "Needs rebase"
< MarcoFalke> Makes it easier to sort
< bitcoin-git> [bitcoin] lucash-dev opened pull request #13404: [tests] speed up of tx_validationcache_tests by reusing of CTransaction. (master...speedup-tx_validationcache_tests) https://github.com/bitcoin/bitcoin/pull/13404
< wumpus> MarcoFalke: I hope that happens automatically? otherwise, it sounds like a nightmare to keep it up to date
< wumpus> MarcoFalke: also, it's already possible to use bitcoinacks.com to keep track of that
< wumpus> how are things with 0.16.0rc1? do we have anything that needs to be backported for rc2? I haven't heard any reports of bugs at least.
< wumpus> if not, we should do a very fast rc2 for the translations issue and then tag final
< wumpus> eh, 0.16.1 obvs
< bitcoin-git> [bitcoin] ken2812221 opened pull request #13406: travis: Add make step so that travis can build all executables for Mac. (master...travis_make_mac) https://github.com/bitcoin/bitcoin/pull/13406
< bitcoin-git> [bitcoin] MarcoFalke pushed 2 new commits to master: https://github.com/bitcoin/bitcoin/compare/a589f536b5e1...e4082d59f53d
< bitcoin-git> bitcoin/master 9d6c9db Ben Woosley: lint: Add linter to error on #include <*.cpp>...
< bitcoin-git> bitcoin/master e4082d5 MarcoFalke: Merge #13301: lint: Add linter to error on #include <*.cpp>...
< bitcoin-git> [bitcoin] MarcoFalke closed pull request #13301: lint: Add linter to error on #include <*.cpp> (master...lint-include-cpp) https://github.com/bitcoin/bitcoin/pull/13301
< jamesob_> anyone willing to trade reviews for #13168?
< gribble> https://github.com/bitcoin/bitcoin/issues/13168 | Thread names in logs and deadlock debug tools (take 2) by jamesob · Pull Request #13168 · bitcoin/bitcoin · GitHub
< ryanzim> > The HASH160 of the pubkey in witness must match the witness program.
< ryanzim> This seems to imply that the witness program is HASH160(pubkey), when it's actually HASH160(SHA256(pubkey))
< ryanzim> Shouldn't this be clarified?
< ryanzim> Ah, sorry; doing a little more research; seems I was confusing HASH160 and ripemd160; nvm
< promag> Currently there is a DbEnv can reference multiple Db instances right?
< promag> s/there is//
< promag> Also, BerkeleyDatabase::Flush calls BerkeleyEnvironment::Flush, is there a reason to keep it like that?
< promag> so that when unloading a wallet all wallets wouldn't have to be flushed
< bitcoin-git> [bitcoin] eudisd closed pull request #13373: Qt: Update Wallet Encryption Titles To Better Describe Process (master...feature/bitcoin-#13245) https://github.com/bitcoin/bitcoin/pull/13373
< promag> jnewbery: yes there is a couple of things to fix
< promag> jnewbery: one is as follow
< promag> bitcoind -regtest -debug -wallet=w1 -wallet=w2
< promag> bitcoin-cli -regtest unloadwallet w1
< promag> bitcoin-cli -regtest -rpcwallet=w2 getwalletinfo
< promag> see above questions
< MarcoFalke> wumpus: I know it is on bitcoinacks.com, but I don't like the idea to switch back and forth between websites when you could have it all in one place
< MarcoFalke> And yes, will be automated in the future
< MarcoFalke> ACK on the quick rc2
< bitcoin-git> [bitcoin] skeees opened pull request #13407: [refactor, move-only-ish] Refactor mempool accept/reject logic (master...atmp-p2p-refactor) https://github.com/bitcoin/bitcoin/pull/13407
< cfields> sipa: did you happen to bench sha2 with sse41 + avx?
< sipa> cfields: ah, forgot about that, good idea
< sipa> cfields: feel like fixing the proliferation of various crypto libs in the makefile?
< cfields> sipa: sure thing, will PR
< sipa> cfields: sse41 2.9ms, sse41 (compiled with -mavx) 2.0ms, avx2 1.1ms
< sipa> that's a very significant improvement...
< cfields> sipa: yep, same result on the aws instance I just fired up
< cfields> sipa: the current avx2 path falls back to sse41 for single transforms, right? So presumably that benefits as well?
< sipa> yup
< sipa> cfields: ah, no
< sipa> it falls back to sse41 for 4 elements
< sipa> there is also an asm sse4 single implementation... but that's not using intrinsics, so won't benefit from -mavx
< cfields> ah yes, ok
< sipa> we should try to convert that sse4 asm code to intrinsics, though
< cfields> so, how do you want to move forward? Seems to me it makes sense to compile different bundles, where all contents are built with the flags
< sipa> i guess we can compile the same source file twice, with a different -D specific to that build, which changes the namespace name?
< cfields> so for ex, libbitcoin_crypto-avx.a is sha256.cpp, sha256_sse41.cpp, etc. Just built with the avx flags...
< cfields> right
< cfields> ok. how about: I'll do the simple build changes, we can get shani and power8 in, then we can redo the structure
< sipa> sounds good
< cfields> ok, thanks for testing
< sipa> cfields: these numbers are on an 7th gen i7 CPU
< sipa> i'll also try on ryzen
< cfields> ok. based on the other tests, I'd be perfectly happy with no-change there :)
< gmaxwell> should figure out what AVX instruction's its substituting in...
< sipa> gmaxwell: my assumption is that it's just using the higher 128 bits of the 256 registers as extra register space
< cfields> gmaxwell: I did asm dumps of Round() split out, but don't speak enough asm to know what I'm looking at
< cfields> I can paste those if you'd like
< cfields> anything less focused than Round got too messy
< sipa> cfields: on Ryzen: sse41 2.8ms, sse41 w/ -mavx 2.2ms, avx2 2.1ms
< cfields> woohoo!
< sipa> (Ryzen actually only has 4-way parallel arithmetic, so avx2 doesn't have that much of a gain)
< cfields> interesting that it's almost the same as avx2
< cfields> ah
< jarthur> Yep, it's practically just "API compatible" with AVX2.
< sipa> well it also gives you 256-bit registers
< sipa> but i guess those exist at AVX already
< jarthur> sipa: gmaxwell mentioned that zen might be able to do parallel sha-ni runs if each step is loaded up side by side. Do you know if anyone has played with that yet? I volunteered at some point but didn't get around to it.
< sipa> jarthur: yup, 2-way SHA-NI is faster than 1-way on my system
< jarthur> nice! Is that code in your branch atm?
< sipa> yup
< jarthur> rockin
< sipa> (not quite 2x - the implementation needs 10 registers-ish, so 2-way needs 20, while there are only 16 addressable ones, resulting in spills)
< sipa> IIRC it took a benchmark from 0.83ms to 0.61ms by doing the 2-way
< jarthur> that's significant in bitcoin land
< sipa> it just calls every round function twice in a row
< jarthur> Thanks. Looks nice and clean with those inlines.
< sipa> who is DrahtBot?
< wumpus> sipa: MarcoFalke's bot
< sipa> ah, nice
< MarcoFalke> [ ] I'm not a robot
< sipa> oh, i meant "who is running Drahtbot"
< sipa> i did realize it was a bot :)
< sipa> how does it figure out conflicts?
< sipa> does it try every combination of 2 PRs?
< MarcoFalke> sipa: Yes, rn. I might implement a smart solution when I have time. Though, the compute overhead is trivial compared to the latency by the github api for now...
< MarcoFalke> > i did realize it was a bot :)
< MarcoFalke> Thanks for the compliment :)
< bitcoin-git> [bitcoin] theuni opened pull request #13408: crypto: cleanup sha256 build (master...sha2-cleanup) https://github.com/bitcoin/bitcoin/pull/13408
< cfields> sipa: ^^
< sipa> cfields: i'd rather keep the explicit -D... in the makefile for the arch specific crypto libs
< sipa> rather than rely on config.h
< cfields> sipa: for what reason? We're already relying on config.h for endian/swap
< sipa> cfields: because different libs may be compiled with different flags
< sipa> (expecting the avx/sse4 split)
< cfields> sipa: hmm, I had a different approach in mind. But sure, I'll revert that and we can sha256 it out when we get there.
< jamesob> wumpus: how much more review does a bench-only change like #13219 need?
< gribble> https://github.com/bitcoin/bitcoin/issues/13219 | bench: Add block assemble benchmark by MarcoFalke · Pull Request #13219 · bitcoin/bitcoin · GitHub
< MarcoFalke> jamesob: I guess it is fine, but just covered/hidden by a ton of other open pull requests.
< sipa> cfields: if you have a different idea, sure
< cfields> that has the libs split out, rebuilt for each isn set, and adds avx
< cfields> and yea, i see your point now, we need to pass in a flag for the namespace
< jarthur> sipa cfields, are we going down the direction that optimal instruction set would be picked at runtime, and default b86_64 build would have the lot of them compiled?
< cfields> jarthur: yes. that's already the case, we're just diving deeper.
< jarthur> thanks