Skimmed Laucher & Snively’s talk on types again. I think a useful puzzle: come up with N tactics/techniques to improve a program’s correctness. (Or robustness, etc.) “Use static typing” is a freebie for one’s list.
@ghadi enlighten me on Graal + Python 🙂
it's been awhile since I've read up on it
their current approach is building LLVM IR interpreter as a language using the Truffle interpreter framework
they used to convert C into a Truffle interpreter
now it's LLVM IR
no java bytecode actually
ah I see
they take the Truffle "tree" and then apply partial evaluation to it, then feed it through Graal
so they can inline across Python <---> C
or Ruby <---> c ext
but the same problem in the end. Python extensions assume a certain object layout, calling convention and memory model
yup, just talking mechanics
they even assume reference counting. It
right, cool
they can catch bad accesses and through something like a SegFaultException in userspace :simple_smile:
lol yeah
or compile numpy to IR
including the Fortran if there's a LLVM backend for fortran
oh, btw, this link came up in Cognitect chat:
their latest party trick is demoing an SSL connection using the OpenSSL library interpreted in userspace
they open a socket with OpenSSL!!!!
bleh, sorry abuot the wall of text
but the optimizations there are amazing