These are chat archives for dropbox/pyston

Nov 2015
Kevin Modzelewski
Nov 29 2015 07:17
well, we apply some custom patches on top of the libunwind branch
(we haven't figured out a great workflow for this)
in that one we patch the x86_64 version of the file that wasn't compiling for you
I just filed #1018 since this isn't the first time this has come up
Greg Price
Nov 29 2015 21:12
cool, seems like the right error
now building on my work desktop rather than my personal laptop, and it's well past that point and still going
err, s/error/way to fix that problem/
Greg Price
Nov 29 2015 21:27
I'm reading the tests and a little puzzled at how some of them work. It looks like test/tests/ is a bunch of Python scripts we run... but the repo doesn't contain expected output?
but then when we run the tests, we stash pickle files foo.expected_cache next to the test
What's the semantics of how we detect changes in the output?
And another, perhaps more immediately practical testing question: how do we test optimizations?
That is, when writing an optimization, how do we write a test that ensures the optimization is really happening, and prevents us accidentally breaking it in the future?
(so, a very different question from testing how valuable the optimization is -- which is what benchmarks and other performance testing are good at)
Greg Price
Nov 29 2015 21:43
Ah, I guess the answer to my first question is probably "we expect the same output as CPython"
so the cache just saves us repeatedly running under CPython
Greg Price
Nov 29 2015 21:58
Question #3: what exactly is a CompilerVariable? I'm reading parts of src/codegen/compvars.cpp. I see it's a thing with a getType method that's useful for optimizations.
I suppose this is... in the middle of compiling a trace? And this is a variable from the trace? So I guess we have a type from the trace.
Greg Price
Nov 29 2015 22:06
Hmm, do we ever instantiate CompilerVariable itself? Or is it always its subclass ValuedCompilerVariable (or another subclass I'm missing)?
I see us invoking getType directly on values of type CompilerVariable, but that's a pure virtual function.
Greg Price
Nov 29 2015 22:25
(BTW, the build did in fact work on my desktop and make check passed)
(modulo the integration tests, which I didn't git submodule update in)