freenode/#clasp - IRC Chatlog
Search
15:55:22
drmeister
Hello - I wasn't able to work on compiler issues this weekend. I'm tied up in application land.
15:59:31
drmeister
What I wanted to do was either 1. set things up again so that clasp's serial and parallel compilers both dump llvm-ir and clasp can load it directly; or 2. figure out how to generate library files (dylib or faso) from llvm-ir files.
17:04:40
karlosz
Bike: you can try inserting reverse or something in the list implementation in an attempt to get a "bad order"
17:36:30
karlosz
but theres like a miniscule chance its a problem with the hash table implementaiton
18:11:08
karlosz
i solved that by fixpointing the algorithm so you'd get deterministic results from that
18:11:52
karlosz
i bet there's a similar issue lurking somewhere where the order in which we operate on functions over a module is important
18:19:50
judson_
ok dumb question - I thought any llvm IR could be turned into wasm? or are certain things not allowed
18:20:34
Bike
https://webassembly.org/roadmap/ as you can see, exception handling, simd, tail calls, and atomics/threads are all merely proposals
18:21:24
Bike
this also doesn't cover llvm intrinsics we might use. i don't know if things like llvm.frameaddress are implemented
18:22:57
Bike
also, practically speaking, even if wasm did have all the components, you'd end up with a gigabyte sized web page
18:23:50
phoe
I'll be giving a presentation of control flow in Lisp for the WASM people at the end of this month
18:25:06
Bike
i am one of the world's foremost experts in implementing lisp conditions in terms of C++ exceptions
18:25:16
Bike
the other expert is drmeister, and nobody else even knows what the hell we're on about
18:26:32
Bike
i'm not seeing The Problem with shuffled lists. it does segfault sometimes, though. that's super
18:28:52
phoe
Bike: my talk will be exactly about not needing to implement non-local jumps with throws
18:30:07
Bike
phoe: we non local jumps with C++ exceptions. maybe that's more or less what you mean by throws? anyway, it's horrible and i'm happy to rant at you
18:32:59
Bike
C++ implementations sometimes provide a setjmp/longjmp implementation of exceptions, which is more or less handler-case in terms of return-from, but nobody uses it
18:33:41
Bike
llvm doesn't provide any primitives for nonlocal exits other than the handler-case thing and setjmp/longjump :(
18:34:44
Bike
not sure what you mean by respect unwinds. it does allow nonlocal control transfers, but there's no unwind-protect
18:36:37
Bike
well, not as such, no. libunwind lets you implement setjmp/longjmp, more like. lets you do stuff like manipulate stack frames as data structures
18:37:09
Bike
learning how to implement unwind-protect has been interesting. it's rather more involved than merely exiting