Search
Thursday, 13th of December 2018, 16:12:31 UTC
16:50:37
Bike
maybe i should lean up our special operator handling
16:50:52
Bike
there's a few weird things in codegen-special-form
16:51:26
Bike
for example, supposedly :gc-profiling, the keyword, is a special operator
16:51:37
Bike
nothing about this seems to remain except a table entry and a comment
16:52:52
drmeister
I don't recall what that was for. Chuck it.
16:53:42
Bike
it's that plus we have like two other tables of special operators, plus it gets even weirder when cleavir is loaded
17:58:39
Bike
getting a segfault, so i guess i did vaslist-pop wrong
18:00:23
Bike
drmeister: https://pastebin.com/ZcucByZe do you see any obvious mistake?
18:03:34
Bike
or any non obvious mistake, i guess.
18:29:36
Kevslinger
Time update on my machine: 'build_cboehm' finished successfully (1h54m12.300s)
18:35:27
Bike
is that with or without cando?
18:38:45
drmeister
Bike: I don't see anything wrong with that function. Is it still segfaulting?
18:39:12
drmeister
Do you know where it's segfaulting?
18:40:08
Bike
well, it's a call to Vaslist::next_arg_raw, and it's under invalidated-entry-point, so i was guessing in a discriminating function somewhere.
18:41:22
drmeister
Can you put this at the top of that function: printf("%s:%d preVaslist -> %p\n", __FILE__, __LINE__, (void*)preVaslist);
18:41:30
drmeister
Then print what you get.
18:50:00
moony_
Well, I guess i found something more annoying to compile than LLVM :P
18:53:15
moony_
It's so difficult to compile my current PC flat out can't do it haha. Glad i'm going to be replacing it around the end of the month
18:54:58
drmeister
Are there any C++ applications of consequence that aren't hard to build?
18:57:47
moony_
drmeister: altho, depending on how you define "of consequence", The Powder Toy (Which i help on) counts. It only takes a minute and a half to build on my AMD A12-9700P (read: horrible) CPU
19:00:24
drmeister
How many lines of code?
19:00:47
drmeister
Bike: That's not a vaslist pointer - it should have #B101 in the low byte.
19:01:10
drmeister
It's probably on the stack though - based on the high address.
19:01:19
Bike
what is it? i could hook in lldb and print it.
19:01:42
drmeister
Connect lldb and use: memory read -Gx8g 0x7ffee462e048 and check if it's a va_list followed by a size_t
19:01:57
moony_
drmeister: idk never counted. Enough, in my opinion. We don't need more code like, uh i dunno, the entirety of the simulation? haha.
19:02:01
drmeister
It will be treated as a fixnum - but it has no business being treated that way.
19:02:14
moony_
https://github.com/ThePowderToy/The-Powder-Toy/blob/master/src/simulation/Simulation.cpp
19:02:21
moony_
the core loop is horrifying.
19:03:16
Bike
invalid format string 'x8g'
19:03:53
moony_
it so badly needs a refactor, yet at the same time there's so much behavior not even the guys who work on it the most know about that we can't do it without breaking things
19:03:59
drmeister
https://usercontent.irccloud-cdn.com/file/cxAxhs9H/image.png
19:04:11
drmeister
https://usercontent.irccloud-cdn.com/file/K66AfIs8/image.png
19:04:24
drmeister
https://usercontent.irccloud-cdn.com/file/yIwMrGIh/image.png
19:04:45
Bike
i can tell you the raw bytes, i guess
19:05:05
Bike
well, if it's not a vaslist, it's probablyb ecause im passing something wrong
19:05:08
drmeister
I don't get why there is no tag - so check if the memory read shows us something like the va_list structure above.
19:05:13
Bike
which is why i included the codegen code as well
19:05:21
moony_
TPT probably has a contender for the world's largest switch statement, too.
19:05:33
Bike
i cant look at it and see whether it's an integer
19:05:38
moony_
i know there's over 200 cases in the particle delete/create functions
19:05:48
Bike
dunno about pointers either
19:06:27
drmeister
We have group meeting - out in 1h
19:08:26
Bike
sorry i'm still kind of helpless with this stuff.
19:08:36
Bike
i don't see what the problem with the codegen is, though.
20:51:52
Bike
seems i was wrong, it actually was hanged
20:51:58
Bike
though it does usually pause for a while at that point
20:52:27
drmeister
That's ok - as long as we know what's going on.
20:52:34
drmeister
Connect the debugger and check it out.
21:09:15
Bike
i guessed the problem. got it working.
21:14:08
Bike
vaslist-pop inline works, based on the disassembly
21:14:22
Bike
(good thing DISASSEMBLE works correctly on generic functions)
21:14:59
Bike
there's some odd things in it, though
21:15:13
Bike
_invisible_makeTagbodyFrameSetParent and stuff. what is that?
21:16:17
Bike
hm. they're just identity functions, presumably detritus from BLOCK and TAGBODY and stuff when they dono't have to do anything nonlocal
21:16:21
Bike
but shouldn't they be inlined?
22:12:31
drmeister
I'll come by and explain.
22:12:56
drmeister
Yes - they should be inlined.
22:32:59
drmeister
I want to brag a bit. Clasps new disassemble and backtraces are beautiful.
Friday, 14th of December 2018, 4:12:31 UTC