-
sarang
ping seddd
-
derpy_bridge
<[keybase] unseddd>: pong sarang
-
derpy_bridge
<[keybase] unseddd>: err... talking to me?
-
sarang
Yes!
-
sarang
I was testing your fuzz PR for CLSAG seddd, and having trouble compiling
-
sarang
How did you go about it?
-
derpy_bridge
<[keybase] unseddd>: pretty sure I just compiled the normal afl way. maybe you need to set the env vars: CC=afl-gcc CXX=afl-g++
-
derpy_bridge
<[keybase] unseddd>: ^ may need to set during cmake step too
-
derpy_bridge
<[keybase] unseddd>: so something like: export CC=afl-gcc CXX=afl-g++; cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_TEST=ON && make
-
derpy_bridge
<[keybase] unseddd>: s/BUILD_TEST/BUILD_TESTS/
-
derpy_bridge
<[keybase] unseddd>: side-question: is any work being done on reducing the size of translation units in monero? (compiling currently takes over 6GB of RAM at peak)
-
moneromooo
Someone's looking at thinning boost includes, which take a lot of the TU bulk.
-
derpy_bridge
<[keybase] unseddd>: awesome! thanks moneromooo
-
derpy_bridge
<[keybase] unseddd>: boost is beastly, do not envy their work
-
hyc
boost is just so fucking misguided. "zero-installation libs!"
-
hyc
because they do literally everything in their header files
-
hyc
boost, C++, whatever. it's all fucking stupid.
-
hyc
header files are for interfaces, not implementations. period.
-
derpy_bridge
<[keybase] unseddd>: header-only definitely seems to be a strong trend in the C++ world
-
derpy_bridge
<[keybase] unseddd>: makes working with templates much simpler (but if you hate C++, imagine you hate templates too :)
-
hyc
yes. because every developer has a supercomputer at their disposal for compiling, and edit/compile/test cycles are free
-
hyc
and yes to your guess.
-
derpy_bridge
<[keybase] unseddd>: lol right. trying to get better at C, but do most of my coding in rust these days. compile times there are improving nicely
-
hyc
for several months it was impossible to do a native win32 compile of the Monero source tree, with debugging enabled
-
hyc
needed more than 3GB of RAM for the compiler
-
hyc
and produced more than 65536 symbol sections in the object file
-
hyc
oh wait - the object file problem was there regardless of native or cross-compile
-
hyc
and it was 32768 sections
-
hyc
because every stupid header file needed its own symbol section
-
derpy_bridge
<[keybase] unseddd>: do you think things will improve there with C++ modules?
-
hyc
I would expect so, I mean, isolating into modules ought to relieve a lot of the burdens
-
hyc
but I haven't really looked into it that much. who supports that already?
-
hyc
reminds me now why modula-2 was such a popular language in my Atari ST days
-
derpy_bridge
<[keybase] unseddd>: think it is planned for C++20, so only the latest compilers (looks like Clang11 and maybe VS Code)
-
derpy_bridge
<[keybase] unseddd>: GCC is working on them:
gcc.gnu.org/wiki/cxx-modules
-
derpy_bridge
<[keybase] unseddd>: once modules have been supported a while, my guess would be header-only trend dies
-
hyc
will take a while for it to be usable in those compilers
-
derpy_bridge
<[keybase] unseddd>: definitely, maybe 2025 :p
-
derpy_bridge
<[keybase] unseddd>: jk, compiler work is hard though
-
hyc
lol
-
hyc
I was a gcc maintainer from 1989-1997 or so
-
hyc
something like that. m68k, MIPS, i860, sparc
-
hyc
fun times
-
derpy_bridge
<[keybase] unseddd>: oh awesome! look who i am talking to like i actually know shit, lol
-
hyc
5 years back then, heck, i860 would have been off the market before its support stabilized
-
derpy_bridge
<[keybase] unseddd>: what do you think of RISC-V ISA?
-
hyc
tbf, I never touched any of that frontend stuff. I worked on the machine-dependent stuff, going from the IR to asm.
-
hyc
I think RISC-V is a disorganized shitshow
-
hyc
too many optional instruction sets
-
hyc
it reflects timid design-by-committee, making it impossible for programmers to rely on any particular features to exist
-
derpy_bridge
<[keybase] unseddd>: lol. usually hear the modular design as a plus, you think it's borked?
-
hyc
yes. just like AVX512 is a pointless feature today, because so few x86 chips support it
-
hyc
go big or go home, all or nothing. 100% support, or better programmers will avoid it.
-
hyc
optional instruction sets suck. same situation in ARM with their crypto instruction set
-
hyc
Broadcom is a huge ARM licensee, makes all of the raspberry Pi CPUs, doesn't include crypto instructions
-
hyc
makes their entire product line a waste, for us
-
hyc
and really, a waste for everyone who wants to use a Pi on the WWW.
-
derpy_bridge
<[keybase] unseddd>: yeah, think that was the motivation for their "core ISA", with module ISAs being for stuff like crypto accelerators
-
derpy_bridge
<[keybase] unseddd>: could see the most used modules being incorporated into the main ISA (but that implies use)
-
hyc
Motorola did it right in m68k. unsupported instructions could trap and still be emulated in s/w without too bad a perf penalty
-
derpy_bridge
<[keybase] unseddd>: yeah, absolutely hate that broadcom chips are little black boxes inside so much hardware
-
hyc
yeah
-
hyc
anyway - if you can't rely on a particular instruction working on every CPU that runs your code, you generally end up not using it anywhere.
-
hyc
just saves headaches, as a programmer
-
derpy_bridge
<[keybase] unseddd>: not sure how risc-v handles unsupported instructions
-
derpy_bridge
<[keybase] unseddd>: true, just so hyped over such a big open-hardware project. even if it flops, it is influencing a lot of other projects
-
hyc
yeah, good point. maybe that's all it needs to do
-
moneromooo
That really only matters if you want to write your own asm code, though, right ? Otherwise, your compiler knows what insns to emit.