Search
Sunday, 29th of March 2020, 3:03:38 UTC
4:25:22
beach
Good morning everyone!
14:32:23
beach
Hey frgo_. So what's new with Clasp?
14:32:53
frgo_
beach: Are you asking me?
14:35:22
Bike
drmeister's been busy with a bunch of other stuff. i've been making some debugging improvements. i mentioned naming functions in #sicl
14:35:23
frgo_
I am trying to get a grip on ARM support for Clasp. And that rwquires understanding ABIs and call conventions. And it requires finding the spots in Clasp's source code that need to be adapted - which I consider a major challenge :-)
14:35:58
beach
Lots of activity. That's good.
14:36:40
beach
Er, wait, isn't LLVM supposed to do that for you "for free"?
14:37:10
Bike
it would if we didn't do a bunch of x86 specific stuff.
14:38:07
Bike
though i'm blanking on what those things are for the moment
14:38:42
Bike
ah, well, the recent fairly-easy-to-fix-probably one is that we directly refer to RBP in the unwinding code
14:39:19
Bike
and we use the internals of how va_lists are laid out, which is ABI specific
14:39:43
Bike
possibly some stuff about the direction the control stack grows
14:39:48
beach
So it's easy to mix LLVM and processor-specific stuff?
14:40:27
Bike
mm, wel,l the RBP thing is part of the runtime, not the compiler
14:40:43
Bike
pulling apart va_lists is in the compiler, though
14:40:57
Bike
in llvm they're supposed to be opaque, and we're kind of ignoring that
14:45:28
beach
Do we know why LLVM does not have interface methods for unwinding and va_list?
15:03:12
Bike
it does have methods for unwinding - with C++ semantics, which terminate the program when there's no destination on the stack
15:03:28
Bike
and it has methods for va_list, but we're doing things you can't do with them in C
Sunday, 29th of March 2020, 15:03:38 UTC