1 2017-04-15 04:14:57 0|bitdroid|sup
2 2017-04-15 04:15:29 0|bitdroid|does bitcoin core have a android app?
3 2017-04-15 04:24:40 0|achow101|bitdroid: no
4 2017-04-15 04:40:57 0|bitcoin-git|[13bitcoin] 15NicolasDorier opened pull request #10216: [Wallet] FundRawTransaction can accept pre-set inputs whose parent is not yet broadcasted (06master...06fundrawtransaction2) 02https://github.com/bitcoin/bitcoin/pull/10216
5 2017-04-15 06:02:18 0|wumpus|"Clang doesn't complain when passing in -msse4.2 on ARM-based systems." gah, thanks clang
6 2017-04-15 06:02:45 0|gmaxwell|lol
7 2017-04-15 06:03:40 0|gmaxwell|I guess just wrap the code with the relevant ifdef __x86something__ so arm sees an empty file? :P
8 2017-04-15 06:03:44 0|wumpus|found a bug in leveldb's sse4.2 crc32c detection, let's not make the same mistake in our own build system when we port that over
9 2017-04-15 06:06:11 0|wumpus|yep, instead of just compiling a c program with -msse4.2, the detection now compiles a c program with #ifdef __SSE4_2_ #error ... #endif
10 2017-04-15 06:09:27 0|wumpus|cfields: https://github.com/NuxiNL/cloudabi-ports/commit/a1d999890c11c30c1b11d049f6eb84ce562ffe2c
11 2017-04-15 06:10:21 0|cfields|sigh
12 2017-04-15 06:10:29 0|cfields|and I thought I was ahead of that one :(
13 2017-04-15 06:11:54 0|cfields|wumpus: any chance it warns at least? based on the report I assume not.
14 2017-04-15 06:12:24 0|wumpus|thinking of it, it might be more robust to try to insert an actual sse4.2 instruction, instead of the ifdef
15 2017-04-15 06:12:38 0|wumpus|cfields: I don't think so (but can't try at the moment)
16 2017-04-15 06:14:45 0|cfields|wumpus: I'd already worked up https://github.com/theuni/bitcoin/commit/2cb7dda13884e44105f33c16e7e2c1a9aed46295
17 2017-04-15 06:15:09 0|cfields|but for clang, it sounds like anything pre-processesed could still end up with SIGILL :(
18 2017-04-15 06:18:34 0|cfields|will refresh my memory and have a look tomorrow.
19 2017-04-15 06:18:36 0|gmaxwell|hm? you cannot use -msse4.2 on a file with functions that will be called on a system without it... as the insstructions could end up anywhere.
20 2017-04-15 06:19:43 0|gmaxwell|g++ at least has the ability to push the compile flags on a function by function basis and has a linker override, so we could avoid writing the detection ourselves... I dunno if clang supports those extensions yet though.
21 2017-04-15 06:19:43 0|wumpus|gmaxwell: right
22 2017-04-15 06:19:44 0|cfields|gmaxwell: leveldb checks at runtime before calling it
23 2017-04-15 06:20:20 0|gmaxwell|cfields: 'it'? meaning any file compiled with -msse4.2 ?
24 2017-04-15 06:20:20 0|wumpus|the program needs to check yourself before calling into it, and there should be no global cons/destructors in the file
25 2017-04-15 06:21:01 0|cfields|gmaxwell: the object is segregated, yes.
26 2017-04-15 06:21:08 0|wumpus|there should be only one file compiled with msse4.2
27 2017-04-15 06:21:49 0|cfields|wumpus: https://github.com/theuni/bitcoin/commit/2cb7dda13884e44105f33c16e7e2c1a9aed46295#diff-eb4352aec1ec8d9f07658f1d2f066bbeR148
28 2017-04-15 06:21:51 0|wumpus|the only place where I could see it potentially go wrong is on whole-program-optimization
29 2017-04-15 06:22:12 0|wumpus|cfields: yep! exactly as it shoudl be
30 2017-04-15 06:22:28 0|cfields|wumpus: and the fact that the check itself is compiled with sse4.2 :(
31 2017-04-15 06:22:34 0|cfields|i wish that'd broken that out separately
32 2017-04-15 06:22:58 0|wumpus|yea, the check itself must be outside that file
33 2017-04-15 06:23:06 0|wumpus|otherwise it's kind of self-defeating
34 2017-04-15 06:23:13 0|cfields|it's not though :(
35 2017-04-15 06:23:22 0|wumpus|unless you use openssl-style detection (catch SIGILL)
36 2017-04-15 06:23:28 0|wumpus|but that's not necessary for intel
37 2017-04-15 06:23:59 0|wumpus|seems that should be an upstream patch then
38 2017-04-15 06:24:33 0|wumpus|gah,clang documentation site is offline
39 2017-04-15 06:25:21 0|cfields|wumpus: yea. I suspect it probably always works in practice because the compiler doesn't find any useful sse4.2 optilms to use for the cpuid check. But it always could, and break.
40 2017-04-15 06:26:09 0|wumpus|it could break once the compiler becomes smarter
41 2017-04-15 06:27:10 0|cfields|right. upstream patch to break it out 100% would be cleaner. Will do.
42 2017-04-15 06:27:23 0|wumpus|so the clang compiler user's manual... [https://clang.llvm.org/docs/UsersManual.html] mentions some ARM -m flags, but not the X86 ones...
43 2017-04-15 06:28:24 0|wumpus|why is it always so darn hard to find a complete list of compiler flags
44 2017-04-15 06:28:25 0|cfields|wtf would it buid with any -msse*? That's really annoying.
45 2017-04-15 06:37:42 0|cfields|challenge accepted!
46 2017-04-15 06:41:33 0|wumpus|uh oh, did you now start working on a arm microcode patch to accept sse4.2 instructions? :p
47 2017-04-15 06:47:12 0|cfields|wumpus: yep. But only in my own silicon. You can license the patent for $19.99. But wait, there's more!
48 2017-04-15 06:48:51 0|wumpus|transmeta: the sequel
49 2017-04-15 06:49:10 0|cfields|haha
50 2017-04-15 06:53:53 0|wumpus|trying to compile bitcoin core with c++17 clang runs into some curious things: https://github.com/laanwj/bitcoin/commit/7a05ed0835fa962064a9c5198ab568109ab02d85 explicit bool coercion required at some places, as well as ?: needing to be exactly the right type *and* constness
51 2017-04-15 06:55:48 0|wumpus|I don't know enough about the standard to be able to state whether that's a bug in the compiler (as this is still experimental) or makes sense because of the new spec
52 2017-04-15 06:56:13 0|wumpus|luckily we now pass std=c++11 so don't have to worry about it
53 2017-04-15 09:59:38 0|jonasschnelli|<*highlight> [22:09:48] <BlueMatt:#bitcoin-core-dev> jonasschnelli: hey
54 2017-04-15 09:59:42 0|jonasschnelli|BlueMatt: pong
55 2017-04-15 17:00:56 0|BlueMatt|jonasschnelli: hey