These are chat archives for dropbox/pyston

8th
Jun 2015
Rudi Chen
@rudi-c
Jun 08 2015 17:32
Any idea why git submodule update might be failing in Travis? https://travis-ci.org/dropbox/pyston/jobs/65923153
I think it can't find commit c37b8892968bd1843fcdb87ac7f1c3e567c5118d but I have it in my local repo.
Rudi Chen
@rudi-c
Jun 08 2015 18:13
Nvm it's just a stray submodule commit that found its way into one of my commits during a rebase.
Chris Toshok
@toshok
Jun 08 2015 18:34
Clearly I should have a "wwdc = wfh" policy
Rudi Chen
@rudi-c
Jun 08 2015 18:34
Oh are you at WWDC?
Chris Toshok
@toshok
Jun 08 2015 18:35
Nope, trying to get to work but all transit options are snarled :)
Rudi Chen
@rudi-c
Jun 08 2015 18:35
WWDC alone causes a traffic jam? Nice.
Kevin Modzelewski
@kmod
Jun 08 2015 19:29
@rudi-c was it libunwind?
Rudi Chen
@rudi-c
Jun 08 2015 19:29
Yup
Kevin Modzelewski
@kmod
Jun 08 2015 19:30
yeah we have this not-great strategy there where we apply our patches directly to the submodule
but we hide it from git status
so it won't show up, but if you do git commit -a you will commit it :P
Chris Toshok
@toshok
Jun 08 2015 19:30
might be better to fork libunwind and apply the patches to our fork?
Kevin Modzelewski
@kmod
Jun 08 2015 19:30
yeah
that has other drawbacks though :/
Chris Toshok
@toshok
Jun 08 2015 19:31
yeah :/
Chris Toshok
@toshok
Jun 08 2015 19:39
do we want to support ENABLE_VALGRIND for both Debug and Release configs?
or should we have a pyston_valgrind?
right now I don’t think we can build a valgrind-enabled version at all (or at least I can’t :)
Daniel Agar
@dagar
Jun 08 2015 22:08
I fixed valgrind for the cmake build in an open PR
Chris Toshok
@toshok
Jun 08 2015 22:09
yeah, I just saw the PR
cool cool, will try it out
Daniel Agar
@dagar
Jun 08 2015 22:10
feel free to review it and merge. I gave up on rebasing it
Chris Toshok
@toshok
Jun 08 2015 22:52
question for everyone: is anyone using the Makefile build anymore? would anyone be sad to have it go away?
Travis Hance
@tjhance
Jun 08 2015 22:53
i’m on cmake
Marius Wachtler
@undingen
Jun 08 2015 23:02
I think nobody changed the makefile to auto patch libunwind after the custom unwinder change got merge. So I doubt the makefile build system is very useful at the moment.
Kevin Modzelewski
@kmod
Jun 08 2015 23:03
oh true
Marius Wachtler
@undingen
Jun 08 2015 23:07
:+1: from me to remove it. While it's not very hard to keep it update I don't see much value in keeping it because I think the user experience is much worse. (especially initial setup)
Daniel Agar
@dagar
Jun 08 2015 23:08
it blocks having a configure script
which keeps pyston on some narrow range of ubuntu
Travis Hance
@tjhance
Jun 08 2015 23:09
i say we go for it, then
Marius Wachtler
@undingen
Jun 08 2015 23:13
They only stuff which annoys me is that QtCreator is somehow failing to parse cmakes compile output on my machine and won't display the correct compile errors. But that's an issue in qtcreator.
oh I hope I didn't make myself look like a softy by using an IDE :-D
Chris Toshok
@toshok
Jun 08 2015 23:15
yeah I was going to say - an ide!
Travis Hance
@tjhance
Jun 08 2015 23:15
nah it’s okay, I’m sufficiently hardcore that I don’t even know what QtCreator is
Chris Toshok
@toshok
Jun 08 2015 23:15
i didn’t either - had to google :)
that said, c++ definitely benefits from an ide
Daniel Agar
@dagar
Jun 08 2015 23:16
I didn't know people used it outside of qt projects
jetbrains clion might be worth trying
Bob Fang
@dorafmon
Jun 08 2015 23:17
does anyone have a clion configuration for pyston?
Marius Wachtler
@undingen
Jun 08 2015 23:17
has quite good c++ auto completion
and it's a single search box where one can search for file, classes, function,... in it just by appending an "m <searchstring>" or "c <searchstring>"
Daniel Agar
@dagar
Jun 08 2015 23:17
doesn't it just work if you point it at the top level CMakeLists.txt?
Bob Fang
@dorafmon
Jun 08 2015 23:18
let me try
aha you cannot use it on a Mac since Pyston does not build on a Mac. Have to try it on a VM… maybe tomorrow then
Daniel Agar
@dagar
Jun 08 2015 23:21
or fix the mac build...
Marius Wachtler
@undingen
Jun 08 2015 23:21
cool swift get's open sourced. I'm interested in the IR the use internally.
Travis Hance
@tjhance
Jun 08 2015 23:23
do they not use llvm?
Bob Fang
@dorafmon
Jun 08 2015 23:23
I would image someone must have already built a Swift frontend already outside Appl?
Marius Wachtler
@undingen
Jun 08 2015 23:25
they use llvm but use a higher level IR which then get's lowered to LLVM IR. AFAIK they planned to present it as a keynote at a llvm dev congress but it got canceled.
Chris Toshok
@toshok
Jun 08 2015 23:25
they likely have some IR above llvm IR. some things are much easier to express - trying to imagine closure conversion on llvm IR and ow :)
Marius Wachtler
@undingen
Jun 08 2015 23:27
I don't have a mac so I can't try it but one can append "-emit-sil" to see the IR: https://twitter.com/clattner_llvm/status/474411823223959552
oh... didn't expect that it would be shown inline...
Travis Hance
@tjhance
Jun 08 2015 23:27
i wonder what sil stands for
Swift Internal Language XD
Marius Wachtler
@undingen
Jun 08 2015 23:29
:-D
Chris Toshok
@toshok
Jun 08 2015 23:31
Marius Wachtler
@undingen
Jun 08 2015 23:35
btw: On the weekend I tried to hack together a very primitive tracing jit addon for our interpreter
sadly isn't currently yet in a state where I can do any perf comparisons. Have to generate eh tables before...
I tried a few months ago to create a baseline jit. but it's a lot more work - it's really nice that with the tracing one one can just abort if a instr isn't yet implemented etc.
and get some prototype ready quite fast
Marius Wachtler
@undingen
Jun 08 2015 23:43
and it's not really tracing jit in the sense that it inlines instructions between different functions etc. It more like it converts hot loops into linear calls to the stuff the interpreter would normally do but without the need to dispatch on the AST_Nodes* but I expect that our ICs should fit in there quite nicely
Chris Toshok
@toshok
Jun 08 2015 23:49
does it convert a function at a time? or it loops only?
Chris Toshok
@toshok
Jun 08 2015 23:56
man, some things are just too hot to permit nice abstractions.. I tried moving the unwind state (if the previous frame was an osr, if we’re reraising) from PyThreadState (and using just loads/stores) to ThreadStateInternal (and using a function call to get/set it)
it’s .3 seconds slower on django-template using ThreadStateInternal :(
Kevin Modzelewski
@kmod
Jun 08 2015 23:57
could we make sure that it's inlinable?
Chris Toshok
@toshok
Jun 08 2015 23:57
ThreadStateInternal is defined in a c++ file. if we move it to the header that would work