These are chat archives for dropbox/pyston

6th
Jan 2015
Marius Wachtler
@undingen
Jan 06 2015 00:01
I really like gitter, the formating looks good and the github activity feed with jenkins integration is really nice :-). In addition it makes it possible to notice rewritten git history :-P. Can't imagine that I was stuck on CVS not long ago...
Bob Fang
@dorafmon
Jan 06 2015 00:02
also the emoji is so nice :smile:
Kevin Modzelewski
@kmod
Jan 06 2015 00:03
Yeah agreed, I like it too :)
Bob Fang
@dorafmon
Jan 06 2015 17:40
Hi, sorry i was just wondering if it is possible for the rewritter to dump all the code generated for IC during the execution?
Bob Fang
@dorafmon
Jan 06 2015 17:59
never mind I fixed this
Kevin Modzelewski
@kmod
Jan 06 2015 21:26
FYI you can also pass the -p flag to pyston
and when it exits, it will dump out the assembly of all of the jitted functions, along with what they have in their inline caches
Bob Fang
@dorafmon
Jan 06 2015 21:33
cool thanks
I have some very simple implementation of tagged pointer
but the thing is that it is messing up the IC
So I want to look at the assembly to see what’s wrong
Bob Fang
@dorafmon
Jan 06 2015 22:38
Hi I have tried
the -p flag does not work right now
Kevin Modzelewski
@kmod
Jan 06 2015 22:38
It puts them all into the perf_map/ directory
Bob Fang
@dorafmon
Jan 06 2015 22:39
oh cool thanks :)
Kevin Modzelewski
@kmod
Jan 06 2015 22:39
They're raw memory dumps so you need to tell objdump how to disassemble them
objdump -b binary -m i386:x86-64 -D perf_map/__main___e1_0
Bob Fang
@dorafmon
Jan 06 2015 22:40
cool thanks
Bob Fang
@dorafmon
Jan 06 2015 22:51
is it possible to output symbols along with the disasseblies too?
It would be hard to read without symbols
Kevin Modzelewski
@kmod
Jan 06 2015 22:58
probably, but I'm not sure how off the top of my head
you can also look at the disassembly from inside gdb
where you'll still have access to the symbols
Bob Fang
@dorafmon
Jan 06 2015 22:59
yeah I was using gdb for disassebly for a while
it works to certain point
Bob Fang
@dorafmon
Jan 06 2015 23:19
Hi, in a jitted function F_e3_3
e3 means the effort level is 3 right?
but what does the other 3 mean?
block 3 inside the function?
coz I also saw something like F_e3_1
Kevin Modzelewski
@kmod
Jan 06 2015 23:21
it's just an auto-incrementing number
to make sure that functions always get unique names
Bob Fang
@dorafmon
Jan 06 2015 23:24
oh okay so what’s the difference between F_e3_1 and F_e3_3
Kevin Modzelewski
@kmod
Jan 06 2015 23:25
probably different type specializations
Bob Fang
@dorafmon
Jan 06 2015 23:34
Sorry to bother you again, but I want to add an logical or function to the assembler.cpp and assembler.h but I don’t really know the binary format of the por function (this file does not say about binary format) what should I do?
Kevin Modzelewski
@kmod
Jan 06 2015 23:37
I would create a test C++ function that does the operation you want
in test/test.cpp
then run make test_cpp_asm to see what the assembly looks like
Here's a good reference http://ref.x86asm.net/geek64.html
I would also check out the V8 assembler
which is pretty complete and well-organized
(we should probably move to it at some point)
Bob Fang
@dorafmon
Jan 06 2015 23:39
ccol thanks