08:15:37 o/ 08:17:12 found undefined behavior in hmac+keccak, where to report better? 08:23:16 https://github.com/monero-project/monero/issues 08:23:52 sech1: ok 09:45:01 We really need a clarification from the core team about when are hard forks are going to happen. Last time i brought this up in a dev meeting, seemed like nothing changes and we are still going for hard forks every 6 months. Then i read of people mentioning that we moved to 9 months hard fork and now i'm reading the logs of yesterday's MRL meeting and people were assuming that now we have yearly hard forks. 09:45:21 So, what's the deal? Ledger/trezor devs also asked for a timeline, but i think nobody can give one. 09:46:14 I remember luigi mentioning that core were thinking about changing forks time, but rightn ow i have really no idea of what's going on. 09:46:37 Can we have a final word on this? This uncertainty isn't helping anybody 11:12:35 It's uncertain because we don't know. If we don't know, we can't tell you. 11:13:10 I'm not sure why you'd want to determine in advance when we'll fork. It'll be decided when it is. 11:13:37 There's no point in forking on a particular date just because there's a date. 11:25:27 That's a bit of a contrast with what we always said: "let's keep a scheduled hard fork time so that merchants and service are prepatred and know when to expect a network upgrade". If now we moved to "we fork when it's needed" we should make that known and clear, because now somebody think we cfork every year, somebody every 9 months and somebody every 6. 11:26:23 That was the expectation, but in practice most services weren't aware a HF would be performed 11:26:38 Also we were constantly trying to scramble to get everything out on time imo 11:27:59 Well, different people want different things. 11:28:48 The RandomX fork arguably went really smooth and it is probably because we deviated from the original schedule 11:28:53 That's what i'm saying. This uncertainty is going to be a problem, because at the end is core that decide 11:29:33 I cannot speak with certainty, but I think most of core are basically in line with what mooo stated 11:29:49 I'm only asking to clearly define a workflow here, because something this important cannot be "everyone has a different opinion", because people expecting a fork in one year will have their plans messed up if it happens after 6 months, same for all the other cases 11:30:25 dEBRUYNE: I would just like to have a clear statement. Last time luigi said that core was working on the problem of the schedule and nothing else from that moment on 11:31:21 CLSAG's really the only thing we'd want in a fork IIRC. And we don't know when it'll be mergeable due to the audit that's going nowhere in a hurry. 11:32:11 Now there's the gingeropolous method, which is to fork anyway even with no actual changes, just to keep people running recent software :) 11:34:26 moneromooo: Do you know who took it upon them to manage the audit? 11:34:27 Isn't this discussion proving my point? 🙂 We really don't know, but we need to give timeframes. Trezor (or ledger, don't remember) asked for a date of the next hard fork because they have to be prepared. If we tell them 1 year because some of us think that's the schedule and then we fork after 4 months, it's going to be a problem. 11:35:46 There is an audit workgroup afaik 11:37:12 I don't know. 11:38:38 To further clarify my point: i don't care of the timeframe for the HF (1 year, 9 months, 6 months, when it's needed). I care that there is a defined plan and that we are all aware of it. That's what i'm asking core. 11:44:39 I do agree it would be good to have a blog post or a similar document to which we can point 11:44:48 Perhaps this can be discussed in the next dev meeting? 11:44:55 I don't know. <= All right, I will ask around 11:48:30 That would be good. Last time i didn't have much success. 13:55:59 Hey guys, any tips on creating a coin of my own? I have plans to use either an EOS token, an SLP token, or a coin? 13:57:28 Sure, first tip is to ask in a channel where it's on topic. 14:17:14 alright 14:17:17 my bad 14:38:25 trying to run monerod on 64bit rasbian - getting a crash https://gist.github.com/stackdump/fe68c4bdfcc6394b5473a005bb7af5c4 14:38:42 there is a crashfile produced - not sure what else I can try to debug 14:39:00 Did you build this for hte right arch ? 14:39:07 ie, armv8/armv7 etc. 14:39:08 I downloaded the binary 14:39:22 Did you download a binary for the right arch ? 14:39:31 yes AFAIK 14:40:04 Try setting the env var: MONERO_USE_SOFTWARE_AES=1, then run again. 14:40:48 similar result 14:41:10 What does gdb say the ill insn is ? 14:44:08 sorry minimal experience w/ using gdb - what should I do? 14:44:43 gdb monerod 14:44:44 run 14:44:49 li 14:45:07 It should show the instructions around where it died. 14:45:49 awesome - it shows "1 ../sysdeps/unix/sysv/linux/aarch64/init-first.c: No such file or directory." 14:46:30 hah well maybe this is more relevant Program received signal SIGILL, Illegal instruction.0x0000aaaaab23232c in aes_expand_key ()(gdb) li 14:47:38 It's apparently trying to use aes insns which your CPU does not have. 14:48:11 If MONERO_USE_SOFTWARE_AES=1 does not help, you need to tell your compiler to not generate aes insns. 14:48:32 Or find a binary where this was done. 14:49:55 cool I can try to make a build 14:50:55 I did try to compile *on* my PI - generally should I be doing this from another X64 Linux & cross-compiling? 14:51:18 Cross compiling will be faster if you already have a setup for it. 14:52:03 thx I'll try to do this 15:04:17 Hey moneromooo, about the serialization discussion you had before... I was doing some research about what can be adapted in epee::serialization for the json structures to use rapidjson. 15:04:17 I have also seen a PR by vtnerd which replaces the rapidjson streams with a byte stream class for zmq which could be used there too. 15:04:17 The main idea is to keep the current abstraction improving the json serialization speed and code maintainability, which is quite hard to read right now, with a well known and maintained library as rapidjson. 15:04:17 There were some discussions in the past about doing this but I'd like to ask just in case before actually getting into it, could we want this? 15:04:17 BTW the main benefits of doing so are here https://github.com/bertptrs/json-speedtest 15:06:57 I'm not buying the maintenability argument. It'll just be other problems. I don't like big changes just because someone prefers another lib. IIRC the speed tests did demonstrate a good advantage to switching though. 15:10:01 (and to build time) 15:12:00 So if someome were to do this and the claimed gains were confirmed, I'd be fine with the change. Though I'd prefer if the author tried to keep the diffs contained if possible. 15:13:30 Hey, an unexpected mention. I think someone suggested a "bastard child of epee and rapidjson" to keep the diff down when I showed this? I never got around to implementing it unfortunately 15:16:28 I do recall something like this. 15:20:52 Sounds like a plan 17:41:21 hyc, vtnerd: any idea about the last comment in https://github.com/monero-project/monero/issues/6454 ? 17:41:29 I don't see what's undefined. 18:10:56 looking 18:11:41 unsigned long compared to unsigned long? wtf is wrong with that? I think the tool is broken 18:12:34 what's different in bytecoin's keccak.c ? 18:13:03 IIRC I added the aligned test at some point. 18:14:12 There's probably something clever going on I can't see. 18:14:24 Oh. 18:14:32 Wait, no. 18:15:00 I was thinking alignment, but the pointer would have the right alignment in memory would it. 18:15:19 the address of the pointer, vs what it points to? 18:15:28 Yes. 18:15:42 What it points to is not necessarily aligned (thus the test). 18:15:43 yah, compiler would ensure the pointer itself is aligned 18:15:59 and nobody is taking the address of the pointer there 18:16:07 Could there be a compiler with 32 bit pointers and 64 bit unsigned long ? 18:16:44 mm, yes possible 18:17:08 Yeah, doesn't matter, even if the pointer was aligned on 32 bit only, the compiler should memcpy properly to use as uint64_t. 18:17:10 that's the x64 model actually. 64bit registers but only 32bit address space 18:18:10 Sounds like a waste. You need large pointers before large ints usually. 18:18:25 And then you can use long long if you do. 18:18:34 I guess it's for some number crunchers, dunno who really uses it 18:19:38 https://stackoverflow.com/questions/10473573/why-is-out-of-bounds-pointer-arithmetic-undefined-behaviour 18:20:12 that's not the situation here 18:20:13 not a real problem on our platforms 18:20:21 #define IS_ALIGNED_64(p) (0 == (7 & ((const char*)(p) - (const char*)0))) 18:20:29 that's exactly the situation here 18:21:33 or no 18:21:38 IIRC, pedantically doing this subtraction is undefined to cater for segmented archs. 18:22:02 Segmented or otherwise machines with different types of memory. 18:23:00 https://news.ycombinator.com/item?id=4374598 18:23:05 why is that test not just (!(p & 7)) ? 18:23:16 so technically the current macro is UB 18:23:38 Feels more polite to cast pointer to integer first :) 18:23:44 fair enough 18:24:11 anyway, casting to uintptr_t is legal, and taking anyt int & 7 is legal 18:24:17 so I think the tool is broken 18:24:54 sech1's link says "any other arithmetic". Though that's not a standard quote. 18:25:08 bitops aren't arithmetic 18:25:12 So I guess &7 would be arithmetic. Is bit twiddling considered... ok. 18:26:40 even so, you're doing &7 of a uint, not a pointer 18:26:56 I don't see anything wrong with #define IS_ALIGNED_64(p) ((((uintptr_t)p) & 7) == 0) 18:27:06 it should be correct everywhere 18:27:41 Maybe some archs have ints so small 7 is off the range ^_^ 18:28:44 I think that tool is broken: "warning: The following sub-expression cannot be evaluated:" hence the error later 18:37:29 agreed. if it can't evaluate a subexp (unsigned long)x & (unsigned long 7) it's braindead 18:37:57 I think they should report this to the tool maker 18:38:01 not us 18:38:26 I suspect it's not that dumb, and the messages may be non obvious. 18:38:53 then report to the toolmaker that their diagnostic messages suck 18:38:55 Like, it can't because of a constraint somewhere that it's not mentioning. 18:38:59 Fair. 18:42:10 none of this source line numbers correspond to our source 18:42:15 s/this/his/ 19:11:34 of course, the other option is to make compiling the wallet optional. 19:12:11 if wallet2.h is only used when creating monero-wallet-cli . 19:12:53 just making up a random statistic, but i'd bet 80% of the time, a developer compiling monero is optimizing/hacking something in the daemon 19:13:20 but then again its me, and for all i know wallet2.h is used when compiling the daemon because logic. 19:14:32 for the record, this is regarding the compile time reduction ccs / effort 19:15:02 You can already compile just the daemon, that's what I do. 19:15:08 (and deps) 19:15:29 right, but something something defaults 19:15:37 something something 19:16:44 hell thats probably a makefile mod, right? i bet even i could figure that out 19:17:03 Yes. Two lines. Including a blank one. 19:20:38 we'll see. i surprise myself with how incompetent i am sometimes 19:23:49 Actually, I was thinking of "all:\n\n", and you'd have to do make -C build/release daemon wallet otherstuff, but that can't work since you have to run cmake anyway. 19:33:27 who needs enemies when you have your inner voice 19:47:15 I usuallu just cd src/daemon and then do a bunch of makes from there 21:03:07 Has the `test-ubuntu` CI action been disabled/removed? 21:03:28 It doesn't appear in a recent commit/push I did on a branch 21:04:51 no 21:05:10 it just starts once the build-ubuntu one is finished 21:05:22 so it will look invisible at first 21:05:30 Heh, so I've clearly missed that _the entire time_ 21:05:31 =p 21:05:45 * sarang goes away now 21:05:51 we could start it from the beginning, not sure if that would be preferred 21:06:21 Yup, just appeared now that `build-ubuntu` completed :) 21:11:14 * sarang withdraws his comment 21:38:51 https://github.com/monero-project/monero/issues/6456