Fork me on GitHub
#other-languages
<
2017-10-18
>
tjg02:10:21

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.

tbaldridge20:10:08

@ghadi enlighten me on Graal + Python 🙂

tbaldridge20:10:15

it's been awhile since I've read up on it

ghadi20:10:52

their current approach is building LLVM IR interpreter as a language using the Truffle interpreter framework

ghadi20:10:09

they used to convert C into a Truffle interpreter

ghadi20:10:14

now it's LLVM IR

ghadi20:10:23

no java bytecode actually

ghadi20:10:41

they take the Truffle "tree" and then apply partial evaluation to it, then feed it through Graal

ghadi20:10:56

so they can inline across Python <---> C

ghadi20:10:03

or Ruby <---> c ext

tbaldridge20:10:06

but the same problem in the end. Python extensions assume a certain object layout, calling convention and memory model

ghadi20:10:22

yup, just talking mechanics

tbaldridge20:10:23

they even assume reference counting. It

ghadi20:10:44

they can catch bad accesses and through something like a SegFaultException in userspace simple_smile

tbaldridge20:10:41

or compile numpy to IR

tbaldridge20:10:53

including the Fortran if there's a LLVM backend for fortran

tbaldridge20:10:15

oh, btw, this link came up in Cognitect chat:

ghadi20:10:21

their latest party trick is demoing an SSL connection using the OpenSSL library interpreted in userspace

ghadi20:10:31

they open a socket with OpenSSL!!!!

tbaldridge20:10:40

bleh, sorry abuot the wall of text

tbaldridge20:10:57

but the optimizations there are amazing