| davisagli (~davisagli@davisagli.com) left irc: Excess Flood | 00:03 | |
| davisagli (~davisagli@davisagli.com) joined #pypy. | 00:04 | |
| sunoano (~sa@unaffiliated/sunoano) left irc: Quit: Leaving. | 00:09 | |
| nedbat (~nedbat@python/psf/nedbat) left irc: Ping timeout: 240 seconds | 00:10 | |
| justinpeel (~justinpee@c-76-23-44-72.hsd1.ut.comcast.net) joined #pypy. | 00:14 | |
| mat^2 (mathias@87.55.0.198) left irc: Ping timeout: 272 seconds | 00:15 | |
| DasIch (~DasIch@p3E99155C.dip.t-dialin.net) left irc: Quit: DasIch | 00:20 | |
| voidspace (~voidspace@python/psf/voidspace) left irc: Quit: Goodbye... | 00:27 | |
| amaury_ (~amaury_@46-127-23-192.dynamic.hispeed.ch) left irc: Ping timeout: 240 seconds | 00:31 | |
| dmalcolm (~david@c-24-128-191-171.hsd1.ma.comcast.net) joined #pypy. | 00:31 | |
| squiddy (~squiddy@f053087042.adsl.alicedsl.de) left irc: Quit: Leaving | 00:45 | |
| mjacob (~foobar@p57A8C0C6.dip.t-dialin.net) left irc: Quit: leaving | 00:47 | |
| nedbat (~nedbat@python/psf/nedbat) joined #pypy. | 00:51 | |
| justinpeel (~justinpee@c-76-23-44-72.hsd1.ut.comcast.net) left irc: Ping timeout: 260 seconds | 00:51 | |
| fijal (~fijal@c-76-120-66-180.hsd1.co.comcast.net) joined #pypy. | 00:53 | |
| rhn_mk1 (~rhn@5acba580.bb.sky.com) left irc: Remote host closed the connection | 00:55 | |
| fijal | Alex_Gaynor: sad | 00:55 |
|---|---|---|
| fijal | Alex_Gaynor: what? | 00:55 |
| fijal | Alex_Gaynor: native fmttable is ok no? | 00:55 |
| fijal | it's just that we don't unroll loops | 00:56 |
| lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) left irc: Ping timeout: 240 seconds | 00:56 | |
| fijal | too many copies as well | 00:56 |
| Alex_Gaynor | fijal: it copies bytes into a static buffer | 00:56 |
| fijal | instead it should cast the original buffer and read it from there | 00:57 |
| fijal | I think I know where it comes from | 00:57 |
| Alex_Gaynor | yes, except you have a string | 00:57 |
| Alex_Gaynor | so you can't cast the buffer | 00:57 |
| fijal | I'm afraid I wrote it even ;-) | 00:57 |
| fijal | why not? | 00:57 |
| Alex_Gaynor | I mean you can | 00:58 |
| Alex_Gaynor | I guess rffi has a thing fo rit? | 00:58 |
| Alex_Gaynor | except it'll still copy sometimes | 00:58 |
| fijal | meh | 01:00 |
| fijal | so much stuff to speed up so little time | 01:00 |
| fijal | no wonder this stuff is slow | 01:00 |
| Alex_Gaynor | Yes, this is a place of RPython that isn't so nice, IMO | 01:00 |
| fijal | we're kind of paying the price for "implement a python interpreter as fast as possible" | 01:00 |
| fijal | as in fast in human time | 01:00 |
| Alex_Gaynor | works ok | 01:01 |
| thurloat (thurloat@blk-222-81-113.eastlink.ca) left #pypy ("not irc, I am in you."). | 01:01 | |
| Alex_Gaynor | fijal: too bad there's no way to get a char* without it being nonmoving already | 01:03 |
| fijal | Alex_Gaynor: you can cast it | 01:04 |
| Alex_Gaynor | fijal: I mean yes you can do cast_ptr_to_adr(llstrtype(data)) + \ | 01:05 |
| Alex_Gaynor | offsetof(STRTYPE, 'chars') + itemoffsetof(STRTYPE.chars, 0) | 01:05 |
| Alex_Gaynor | but then if it moves you have a problem | 01:05 |
| fijal | but it does not move | 01:05 |
| Alex_Gaynor | (like if we get a parallel GC or so) | 01:05 |
| fijal | you cannot do anything GC related for a bit and you're good | 01:05 |
| fijal | well | 01:05 |
| fijal | we have more than one spot where this happens | 01:05 |
| Alex_Gaynor | I don't want to debug that if we get one. | 01:05 |
| Alex_Gaynor | Do we? | 01:05 |
| Alex_Gaynor | Where? | 01:05 |
| fijal | leave a comment "carefully not move it" | 01:05 |
| fijal | yes | 01:05 |
| fijal | like arraycopy | 01:06 |
| Alex_Gaynor | I guess I'll add get_nonmovingbuffer_unsafe or so to rffi.py? | 01:06 |
| fijal | no | 01:07 |
| fijal | please leave it inline or something | 01:07 |
| fijal | with "# <start GC unsafe zone> | 01:08 |
| Alex_Gaynor | k | 01:08 |
| Alex_Gaynor | what about doing the reverse, pack? | 01:08 |
| Alex_Gaynor | you need basically stringbuilder.append_length(&float, 8) or so | 01:09 |
| fijal | yes, something like that | 01:11 |
| fijal | except you cannot do that at all :) | 01:11 |
| fijal | I think the reverse has to stay | 01:12 |
| Alex_Gaynor | Too bad. | 01:12 |
| fijal | hm | 01:12 |
| Alex_Gaynor | We should make that doable in RPython, somehow | 01:12 |
| fijal | I fear so | 01:12 |
| fijal | maaybe | 01:12 |
| fijal | ah | 01:12 |
| fijal | Alex_Gaynor: can't you do something like a with statement or so? | 01:12 |
| Alex_Gaynor | RPython is kind of not a phenomenal language for this stuff? | 01:12 |
| fijal | no | 01:12 |
| Alex_Gaynor | "Something like a with statement" | 01:12 |
| Alex_Gaynor | can you be a little more vague ;) | 01:13 |
| fijal | a little less I guess | 01:13 |
| Alex_Gaynor | syntax isn't a substitute for semantics | 01:13 |
| fijal | I'm thinking loud | 01:13 |
| fijal | I guess leave it as it is for now | 01:13 |
| fijal | at some point we have to revamp files and stuff | 01:13 |
| Alex_Gaynor | Well I'm not doing anything ATM | 01:13 |
| fijal | like structs, IO, sockets etc. | 01:13 |
| fijal | ok | 01:13 |
| fijal | and make it fast | 01:14 |
| fijal | Alex_Gaynor: ah | 01:14 |
| Alex_Gaynor | Yes, I think we need pinning and zero padded strings | 01:14 |
| fijal | Alex_Gaynor: if you get bored one day, can you come up with a web app? | 01:14 |
| fijal | yes | 01:14 |
| Alex_Gaynor | That will make everything 100% easier | 01:14 |
| fijal | if we have pinning, we're good | 01:14 |
| fijal | it's on my todo list, after pycon though | 01:14 |
| Alex_Gaynor | What do you want my web app to do? | 01:14 |
| fijal | I want to measure memory | 01:14 |
| fijal | so run something on pypy is good | 01:14 |
| fijal | I suspect ctypes to hog a lot | 01:15 |
| fijal | so something with a db | 01:15 |
| fijal | django admin? | 01:15 |
| Alex_Gaynor | I don't have time for extra projects, why not just pick an open source web app? | 01:15 |
| fijal | yeah | 01:15 |
| fijal | :] | 01:15 |
| Alex_Gaynor | BTW we need to work on tutorial more | 01:15 |
| kenaan_ | 12fijal default 11b6874c42c2ff 15/pypy/tool/jitlogparser/parser.py: fix the assembler names | 01:16 |
| kenaan_ | 12fijal default 118c669112ced4 15/: merge | 01:16 |
| fijal | yes | 01:16 |
| fijal | after my tomorrow's talk though | 01:16 |
| Alex_Gaynor | sure | 01:16 |
| fijal | I mean I won't do stuff before my tomorrow's talk | 01:16 |
| fijal | feel free to do it yourself ;-) | 01:16 |
| fijal | but I'm sure you don't need my permission | 01:16 |
| fijal | Alex_Gaynor: if you want to help, you can prepare a mail to participants | 01:16 |
| fijal | asking for OS project preferences | 01:16 |
| fijal | maybe as a list? | 01:17 |
| Alex_Gaynor | And about numpy | 01:17 |
| fijal | yes | 01:17 |
| Alex_Gaynor | Do we have a list to choose from? | 01:17 |
| fijal | no | 01:21 |
| fijal | maybe write down something like | 01:21 |
| fijal | "please list 5 open source project you want pypy to speed up in order of preference"? | 01:21 |
| Alex_Gaynor | Ok | 01:21 |
| fijal | we need to write artificial examples as well | 01:21 |
| fijal | what's bad what's better | 01:21 |
| fijal | E (application-level) TypeError: unsupported operand types for format: 'float64', 'str' | 01:22 |
| fijal | are we supposed to have a failing test on trunk? | 01:22 |
| Alex_Gaynor | fijal: yes, I pushed it this morning | 01:22 |
| Alex_Gaynor | because I couldn't figur eout wtf is going on | 01:22 |
| Alex_Gaynor | the class has __str__ and __repr__ | 01:22 |
| nettok (~quassel@190.148.234.217) joined #pypy. | 01:25 | |
| kenaan_ | 12pjenvey extradoc 1112a4ad40ab30 15/talk/sea2012/talk.rst: legal counseling | 01:25 |
| harrison | http://2.bp.blogspot.com/-ezWSh-RMbtA/T0Q8ohltnRI/AAAAAAAAlYU/IumUR2RVR-Y/s400/%2521Rahm-Emanuel-children.jpg | 01:25 |
| harrison | rahm emanuel as hitler | 01:25 |
| harrison | how h8ful | 01:25 |
| Alex_Gaynor | This really isn't an appropriate place for that. | 01:26 |
| kenaan_ | 12alex_gaynor extradoc 113dca0a7b9146 15/talk/pycon2012/tutorial/emails/01_numpy.rst: more text | 01:26 |
| kenaan_ | 12alex_gaynor extradoc 11ba04f56772e5 15/: merged upstream | 01:26 |
| harrison | oh sorry wrong channel i profusely apologize | 01:26 |
| davisagli (~davisagli@davisagli.com) left irc: Excess Flood | 01:26 | |
| Alex_Gaynor | fijal: does the email text look ok? | 01:26 |
| davisagli (~davisagli@davisagli.com) joined #pypy. | 01:27 | |
| fijal | Alex_Gaynor: looking | 01:29 |
| fijal | Alex_Gaynor: WTF? | 01:30 |
| Alex_Gaynor | ? | 01:30 |
| fijal | with the format | 01:30 |
| Alex_Gaynor | it's an email. what's the issue? | 01:31 |
| fijal | no, with the numpy format | 01:31 |
| Alex_Gaynor | Oh, yeah I couldn't figure it out | 01:31 |
| fijal | Alex_Gaynor: so with the email it does not contain information how to get back to us | 01:31 |
| Alex_Gaynor | I assume Stuart provides that? | 01:31 |
| fijal | no | 01:32 |
| fijal | I don't know | 01:32 |
| fijal | he protects privacy | 01:32 |
| fijal | and privacy is most protected if you have your computer turned off | 01:32 |
| fijal | or something | 01:32 |
| Alex_Gaynor | Ah, does it need __format__ I think | 01:32 |
| fijal | uh | 01:33 |
| fijal | Alex_Gaynor: it does call float.__format__ | 01:33 |
| fijal | but with the wrong kind of self | 01:33 |
| Alex_Gaynor | ah, ok | 01:33 |
| Alex_Gaynor | makes sense I guess | 01:33 |
| Alex_Gaynor | I'll add __format__ then, in a few minutes | 01:34 |
| fijal | cool | 01:34 |
| Alex_Gaynor | fijal: what email should I put for you int his? | 01:35 |
| fijal | ours? | 01:35 |
| kenaan_ | 12fijal extradoc 118c327578c393 15/talk/: missing letter and some more slides | 01:35 |
| fijal | like me you & armin? | 01:35 |
| Alex_Gaynor | Yes, what email is yours? | 01:35 |
| Alex_Gaynor | fijall@gmail? | 01:35 |
| kenaan_ | 12fijal default 11126806ef2466 15/pypy/module/micronumpy/interp_support.py: add a jitdriver here | 01:36 |
| bbot2 | 3Success: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64-2/builds/74 | 01:36 |
| Alex_Gaynor | fijal: can't we make that somehow use frame or make it pure python | 01:37 |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/cpython-2-benchmark-x86-64/builds/22 | 01:37 |
| fijal | yeah | 01:37 |
| fijal | Alex_Gaynor: yeah, we can make it use a frame | 01:38 |
| fijal | but this would require an extra array and an extra signature | 01:38 |
| fijal | is it worth it? | 01:38 |
| Alex_Gaynor | why would it require an extra array? | 01:38 |
| fijal | and there is no expression tree anyway | 01:38 |
| fijal | yeah | 01:38 |
| fijal | we have to somehow reduce the boilerplate | 01:38 |
| fijal | I'll remove all those jitdrivers eventually | 01:38 |
| fijal | I promise :) | 01:38 |
| Alex_Gaynor | ok good | 01:38 |
| Alex_Gaynor | is fijall@gmail your email? | 01:39 |
| fijal | yeah | 01:39 |
| Alex_Gaynor | k | 01:39 |
| kenaan_ | 12fijal backend-vector-ops 1176bf35c876fa 15/: merge default | 01:39 |
| bbot2 | 3Success: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-32/builds/1066 | 01:39 |
| fijal | oops, I broke one benchmark | 01:40 |
| Alex_Gaynor | fix it? ;) | 01:40 |
| fijal | yeah did it | 01:40 |
| fijal | I started a translation | 01:41 |
| fijal | forgetting I'm in states | 01:41 |
| kenaan_ | 12alex_gaynor extradoc 113f98dbfa8ce3 15/talk/pycon2012/tutorial/emails/01_numpy.rst: return address | 01:41 |
| kenaan_ | 12alex_gaynor extradoc 1181cb6c1cc6b2 15/talk/: merged upstream | 01:41 |
| Alex_Gaynor | fijal: yay, finally a pypy developer on my half of the world | 01:41 |
| fijal | http://plope.com/pyroptimization | 01:42 |
| fijal | so | 01:42 |
| fijal | people are measuring stuff by number of profiler output | 01:42 |
| fijal | line | 01:42 |
| fijal | s | 01:42 |
| Alex_Gaynor | lulz | 01:43 |
| fijal | that's a measure | 01:43 |
| timotimo | oh, that's a thing? | 01:45 |
| timotimo | a shame, though, that pypy does "agressive inlining" | 01:45 |
| timotimo | that should make the difference shrink by quite a bit, right? | 01:46 |
| fijal | timotimo: no | 01:46 |
| fijal | the profiler output is the same | 01:46 |
| fijal | anyway | 01:46 |
| timotimo | i thought the argument went "there are more profiler lines, that means there are deeper nested function calls or more different functions, thus there is more function calling overhead"? | 01:47 |
| fijal | one day I'll write a really fast web framework/http server | 01:47 |
| fijal | it'll violate every abstraction and have horrible API | 01:48 |
| timotimo | and if i understand the tracing compiler right, each function call gets turned into one or two guards | 01:48 |
| fijal | timotimo: I have no idea what it means | 01:48 |
| fijal | timotimo: it vastly depends what you actually do | 01:48 |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/own-macosx-x86-32/builds/814 | 01:48 |
| fijal | timotimo: if you have a loop in each it'll be pretty annoying | 01:48 |
| fijal | timotimo: if you pass a very general **args, same thing | 01:48 |
| Alex_Gaynor | fijal: def f(**kwargs): return kwargs["item"] f(item=3) doesn't allocate a dict :] | 01:49 |
| fijal | Alex_Gaynor: right but if you do | 01:49 |
| fijal | d = {} | 01:49 |
| Alex_Gaynor | yes, of course | 01:49 |
| fijal | d[some_strange_thing]... | 01:49 |
| kenaan_ | 12alex_gaynor default 11dde74845c41f 15/pypy/module/micronumpy/: make numpy boxes work with str.format | 01:49 |
| fijal | etc.. | 01:49 |
| kenaan_ | 12alex_gaynor default 116dd80b3ec992 15/pypy/: merged upstream | 01:49 |
| fijal | thanks | 01:49 |
| CIA-80 | 03agaynor 07roundup * 10#1066/numpypy can't print float64's: [resolved] Fixed in dde74845c41f * 14https://bugs.pypy.org/issue1066 | 01:50 |
| fantasticsid (~user@178.18.16.11) joined #pypy. | 01:50 | |
| fijal | Alex_Gaynor: btw, ipython notebook is pretty slick | 01:51 |
| Alex_Gaynor | cool | 01:51 |
| timotimo | it really is! | 01:52 |
| fijal | timotimo: have you tried using sympy with it? | 01:52 |
| timotimo | no, i thought sympy brings its own notebook-like thingie? | 01:52 |
| fijal | does it? | 01:52 |
| fijal | you do | 01:53 |
| fijal | %load_ext sympy_printing | 01:53 |
| timotimo | oh | 01:53 |
| fijal | or sympyprinting I think | 01:53 |
| timotimo | i think i saw that in the examples | 01:53 |
| timotimo | especially for quantum mechanics it looked sweet | 01:53 |
| fijal | and it tex-renders your expressions | 01:53 |
| timotimo | yup | 01:53 |
| fijal | timotimo: feel like finding me some examples by tomorrow? | 01:54 |
| fijal | I want to show scientists | 01:54 |
| timotimo | ah, the Sage Notebook is what i was thinking of | 01:54 |
| timotimo | there are example notebooks in the source distribution of ipython | 01:54 |
| timotimo | those are the only ones i saw until now | 01:54 |
| fijal | sage was ugly | 01:54 |
| fijal | last time I looked | 01:54 |
| timotimo | i never looked ;) | 01:54 |
| jyp (~interrupt@175.197.245.105) joined #pypy. | 01:54 | |
| timotimo | P.<x>=PolynomialRing(GF(4,"a"),"x") <- that is python code? | 01:55 |
| fijal | does not look like it | 01:56 |
| timotimo | is sage based on the python interpreter at all? | 01:56 |
| fijal | I have no idea | 01:56 |
| timotimo | apparently it is. i'm confused | 01:57 |
| jyp (~interrupt@175.197.245.105) left irc: Remote host closed the connection | 01:57 | |
| tilgovi (~randall@couchdb/developer/tilgovi) left irc: Remote host closed the connection | 01:58 | |
| timotimo | but anyway. look at the example notebooks in the source distribution. they are in docs/examples/notebooks/ | 01:58 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-macosx-x86-64/builds/374 | 02:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/2011 | 02:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/731 | 02:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-win-x86-32/builds/403 | 02:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-64/builds/715 | 02:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/1254 | 02:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-Ojit-no-jit-linux-x86-32/builds/899 | 02:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-32/builds/1558 | 02:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/own-linux-x86-64/builds/837 | 02:00 |
| azanella (~azanella@187.21.5.187) left irc: Ping timeout: 265 seconds | 02:00 | |
| Alex_Gaynor | fijal: if the email looks good, I'm going to send it to stuart | 02:03 |
| berdario (~Tiibiidii@host243-85-dynamic.0-87-r.retail.telecomitalia.it) left irc: Read error: Connection reset by peer | 02:03 | |
| berdario (~Tiibiidii@host243-85-dynamic.0-87-r.retail.telecomitalia.it) joined #pypy. | 02:03 | |
| fijal | Alex_Gaynor: cool | 02:05 |
| Alex_Gaynor | fijal: sent | 02:05 |
| justinpeel (~justinpee@c-76-23-44-72.hsd1.ut.comcast.net) joined #pypy. | 02:11 | |
| fijal | cool | 02:17 |
| Action: fijal uses speed.python instead | 02:18 | |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-win-x86-32/builds/403 | 02:19 |
| Alex_Gaynor | Rhyolite: ping | 02:19 |
| fijal | Alex_Gaynor: the annoying part is that this is *actually* a useful way to use this server | 02:19 |
| Alex_Gaynor | fijal: what is? | 02:19 |
| fijal | doing translations | 02:19 |
| Rhyolite | Alex_Gaynor: pong | 02:19 |
| fijal | testing STM etc. | 02:19 |
| Alex_Gaynor | Rhyolite: can you explain to me what I need to do to get a working mpfr compile? | 02:20 |
| Alex_Gaynor | So far I've compiled gmp with ./configure && make | 02:20 |
| Rhyolite | do you want to give me access to tannit and try to help? | 02:20 |
| fijal | Rhyolite: you can have access to tannit either way | 02:20 |
| Alex_Gaynor | I'd be happy to, I don't know how, fijal can you give Rhyolite access to tannit? | 02:21 |
| Rhyolite | you basically need to build gmp and install it | 02:21 |
| weirdo | what's with that build failure? | 02:21 |
| Rhyolite | then configure mpfr pointing at the install and gmp build directory (I think) | 02:21 |
| Rhyolite | build mpfr and install it | 02:21 |
| Rhyolite | in the same location as gmp | 02:21 |
| weirdo | is it my fault or is the nightly broken? | 02:21 |
| Alex_Gaynor | agaynor@tannit:~/src/mpfr-3.1.0$ ./configure --with-gmp=../gmp-5.0.4/ | 02:21 |
| Alex_Gaynor | configure: error: gmp.h can't be found, or is unusable. | 02:21 |
| Rhyolite | I think configure defaults to /usr/local | 02:21 |
| Alex_Gaynor | Is what I get | 02:21 |
| Alex_Gaynor | gmp-5.04 is where I did ./configure && make | 02:22 |
| weirdo | guys? | 02:22 |
| fijal | Alex_Gaynor: can you not compile gcc when benchmarks are running? | 02:22 |
| fijal | weirdo: no idea | 02:22 |
| Alex_Gaynor | fijal: ah yes, absolutely (this is why we should move all benchmarks to speed.python) | 02:22 |
| fijal | we cannot move benchmarks to speed python | 02:23 |
| fijal | without doing some work for cpython | 02:23 |
| fijal | I think | 02:23 |
| fijal | Rhyolite: see pm | 02:23 |
| Alex_Gaynor | So let's do work or something | 02:23 |
| fijal | yeah, you do it ;-) | 02:23 |
| Rhyolite | Alex_Gaynor: did you install GMP? | 02:23 |
| Rhyolite | "make install" ? | 02:24 |
| Alex_Gaynor | Rhyolite: no, I didn't, should I? | 02:24 |
| Rhyolite | yes | 02:24 |
| Rhyolite | Then you do | 02:24 |
| Rhyolite | in MPFR | 02:24 |
| berdario (~Tiibiidii@host243-85-dynamic.0-87-r.retail.telecomitalia.it) left irc: Remote host closed the connection | 02:24 | |
| Alex_Gaynor | ok, will do, after benchmarks finihs | 02:24 |
| unbit (~unbit@93-58-162-185.ip159.fastwebnet.it) left irc: Ping timeout: 245 seconds | 02:24 | |
| Rhyolite | ./configure --with-gmp=<installdir> --with-gmp-build=<gmpbuilddir> | 02:24 |
| Rhyolite | in other words | 02:24 |
| Rhyolite | cd mpfr-3.1.0 | 02:24 |
| Rhyolite | ./configure --with-gmp=/usr/local --with-gmp-build=../gmp-5.0.4 | 02:25 |
| Rhyolite | make | 02:25 |
| Rhyolite | make install | 02:25 |
| Alex_Gaynor | err, so I'll need to sudo make install? | 02:25 |
| Action: Alex_Gaynor was trying to avoid a global installation | 02:25 | |
| fijal | install it globally | 02:26 |
| fijal | it's "fine" | 02:26 |
| Alex_Gaynor | ok | 02:26 |
| Rhyolite | or you can build it yourself | 02:26 |
| Rhyolite | go back to gmp | 02:26 |
| Rhyolite | cd gmp-5.0.4 | 02:26 |
| Rhyolite | ./configure --prefix=$HOME/install | 02:26 |
| Rhyolite | or --prefix=$HOME | 02:27 |
| Alex_Gaynor | I'll probably do that, I don't trust myself not to break stuff | 02:27 |
| Rhyolite | or wherever you want things installed in your home directory | 02:27 |
| weirdo | or $(pwd) | 02:27 |
| Alex_Gaynor | God, this makes me wish for a pip + virtualenv style setup for C | 02:28 |
| Rhyolite | yes | 02:28 |
| Rhyolite | that essentially is what you are creating | 02:28 |
| Alex_Gaynor | Yeah, I want a system for it :) | 02:28 |
| Rhyolite | but gmp and mpfr don't make much of a mess | 02:28 |
| Rhyolite | so installing globally is not that dangerous | 02:29 |
| fijal | it's not KDE | 02:29 |
| fijal | installing gcc globally can make a mess though | 02:29 |
| Rhyolite | fijal: yes, if you override the system version | 02:30 |
| Rhyolite | again, configure defaults to /usr/local | 02:30 |
| Rhyolite | so unless that is in your default path, it doesn't conflict | 02:30 |
| Rhyolite | Ah, BSD directory structure history ... | 02:30 |
| Alex_Gaynor | Soo, who's going to make virtualenv+pip for C? | 02:31 |
| unbit (~unbit@93-58-162-185.ip159.fastwebnet.it) joined #pypy. | 02:33 | |
| justinpeel (~justinpee@c-76-23-44-72.hsd1.ut.comcast.net) left irc: Ping timeout: 252 seconds | 02:46 | |
| fijal | Alex_Gaynor: any idea why does test_copy segfault these days? | 02:47 |
| Alex_Gaynor | fijal: uh, test_copy where? | 02:47 |
| Alex_Gaynor | from lib-python? | 02:47 |
| fijal | only on vector branch apparently | 02:47 |
| fijal | Alex_Gaynor: numpy one | 02:48 |
| Alex_Gaynor | no, because you broke something in vectorization, I guess | 02:48 |
| Alex_Gaynor | (can we vectorize a copy? | 02:48 |
| fijal | no no no | 02:48 |
| fijal | not uncompiled at least :) | 02:49 |
| cdidd (~cdidd@93-80-122-87.broadband.corbina.ru) left irc: Remote host closed the connection | 02:51 | |
| fijal | E (application-level) AssertionError: assert <bound method ndarray.all of array([True, True, True, True, True, True, True, True, True, True, True, True, True, True, True])>() | 02:53 |
| dracman (~draco@212.255.27.23) left irc: Ping timeout: 265 seconds | 02:53 | |
| Alex_Gaynor | bug! | 02:54 |
| fijal | oh | 02:54 |
| fijal | I'm a moron | 02:54 |
| Alex_Gaynor | benchmarks take forever :/ | 02:55 |
| fijal | we don't correctly overallocate | 02:56 |
| Alex_Gaynor | for what? | 02:57 |
| fijal | for arrays | 02:57 |
| fijal | we've unrolled the loop | 02:57 |
| fijal | but that's wrong in general | 02:58 |
| Alex_Gaynor | oh, you broke stuff on vectorize you mean :) | 02:58 |
| fijal | there might be an extra element at the end | 02:58 |
| fijal | yeah | 02:58 |
| fijal | pom pom pom | 02:58 |
| fijal | we need to do something | 02:58 |
| fijal | the error I posted is obvious :) | 02:59 |
| fijal | you have Flase beyond the actual array size | 02:59 |
| dracman (~draco@212.255.30.147) joined #pypy. | 02:59 | |
| Shanita (~John@osbk-4db16810.pool.mediaWays.net) left irc: Ping timeout: 240 seconds | 03:03 | |
| Moku (~John@osbk-4db153d3.pool.mediaWays.net) joined #pypy. | 03:03 | |
| Nick change: Moku -> Guest63054 | 03:04 | |
| gogi_ (~gogi@p5B106ADC.dip.t-dialin.net) joined #pypy. | 03:08 | |
| Arach (~arach@FTTB-212.119.233.149.ranetka.ru) left irc: Ping timeout: 240 seconds | 03:10 | |
| gogi__ (~gogi@p5B1070D2.dip.t-dialin.net) left irc: Ping timeout: 252 seconds | 03:11 | |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-macosx-x86-64/builds/374 | 03:13 |
| nedbat (~nedbat@python/psf/nedbat) left irc: Ping timeout: 276 seconds | 03:14 | |
| Alex_Gaynor | fijal: we should probably make array() not terrible at some point, maybe make it pure python | 03:16 |
| justinpeel (~justinpee@c-76-23-44-72.hsd1.ut.comcast.net) joined #pypy. | 03:22 | |
| fijal | Alex_Gaynor: yeah | 03:26 |
| tos9 (~tos9@unaffiliated/tos9) left irc: Ping timeout: 276 seconds | 03:26 | |
| kenaan_ | 12fijal backend-vector-ops 11939a94b35997 15/pypy/module/micronumpy/interp_support.py: ugh, fix the merge | 03:27 |
| bbot2 | 3Success: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64/builds/247 | 03:27 |
| fijal | Alex_Gaynor: anyway, so we need a bit more sophisticated unrolling | 03:27 |
| fijal | Alex_Gaynor: I thought just counting one element too many is not too bad | 03:27 |
| fijal | but there is also a reduce problem | 03:27 |
| fijal | pffff | 03:29 |
| nedbat (~nedbat@python/psf/nedbat) joined #pypy. | 03:36 | |
| Tobu (~Tobu@unaffiliated/tobu) left irc: Ping timeout: 260 seconds | 03:40 | |
| gtaylor_ (~gtaylor@108-196-160-156.lightspeed.tukrga.sbcglobal.net) left irc: Quit: Konversation terminated! | 03:44 | |
| Alex_Gaynor | fijal: ? | 03:44 |
| Tobu (~Tobu@unaffiliated/tobu) joined #pypy. | 03:47 | |
| Alex_Gaynor | Rhyolite: doing make in mpfr and ./configure --with-gmp=../../install --prefix=$HOME/install results in http://paste.pocoo.org/show/554821/ | 03:49 |
| Alex_Gaynor | I see it's not finding gmp.h, but why? configure found it ok | 03:50 |
| fijal | Alex_Gaynor: for all other operations you can just live with an extra array element | 03:51 |
| fijal | but not for reduce | 03:51 |
| fijal | say all() would not work if you have an extra element | 03:51 |
| Alex_Gaynor | fijal: sorry I'm pretty lost, what are we talking about? | 03:51 |
| tos9 (~tos9@unaffiliated/tos9) joined #pypy. | 03:52 | |
| nedbat (~nedbat@python/psf/nedbat) left irc: Read error: Operation timed out | 03:55 | |
| fijal | Alex_Gaynor: have you seen how the unrolled loop look like? | 03:56 |
| Alex_Gaynor | no | 03:56 |
| fijal | it's two iterations one after another | 03:56 |
| fijal | that obviously does not work since you might have odd number of elements right? | 03:56 |
| Alex_Gaynor | yes, so just do a third iteration | 03:56 |
| kenaan_ | 12fijal backend-vector-ops 11c72d8c439aff 15/pypy/module/micronumpy/interp_support.py: oops | 03:57 |
| fijal | but then we need an elaborate stopping mechanism | 03:57 |
| fijal | somehow | 03:57 |
| fijal | frame.done-1 or so | 03:58 |
| fijal | note that we check the frame for "done" only every 2 iterations | 03:58 |
| Alex_Gaynor | it's what C compilers do | 03:58 |
| fijal | yes | 03:58 |
| fijal | but they have simpler situation | 03:58 |
| fijal | they don't deal with multiple dimensions | 03:58 |
| Alex_Gaynor | Well, why not just do frame.advance_n(2) | 03:59 |
| Alex_Gaynor | catch iteration error | 03:59 |
| Alex_Gaynor | then fall back to single advances | 03:59 |
| Alex_Gaynor | or so | 03:59 |
| fijal | yeah maybe | 04:00 |
| Alex_Gaynor | sounds easyish | 04:01 |
| anish_ (anish@nat/redhat/x-kyzwahoijktrpcpn) joined #pypy. | 04:19 | |
| nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) joined #pypy. | 04:20 | |
| nettok (~quassel@190.148.234.217) left irc: Remote host closed the connection | 04:21 | |
| Arach (~arach@FTTB-Beeline-195.68.161.234.ranetka.ru) joined #pypy. | 04:27 | |
| bbot2 | 3Success: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/2011 | 04:30 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/2012 [py3k] | 04:30 |
| kvda (~kvda@124-171-36-73.dyn.iinet.net.au) left irc: Quit: -___- | 04:52 | |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/1254 | 04:52 |
| CIA-80 | 03justinpeel 07roundup * 10#1067/Performance on Stack-Based VM machine: | 04:54 |
| CIA-80 | [chatting] I've attached a simpler code (simpletest.py) that gets down to the problem here | 04:54 |
| CIA-80 | in my opinion. From what I have seen it is a problem ... * 14https://bugs.pypy.org/issue1067 | 04:54 |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/731 | 05:00 |
| jamesaxl (~jamesaxl@41.248.199.40) left irc: Read error: Connection reset by peer | 05:00 | |
| jamesaxl (~jamesaxl@41.248.199.40) joined #pypy. | 05:00 | |
| justinpeel (~justinpee@c-76-23-44-72.hsd1.ut.comcast.net) left irc: Ping timeout: 276 seconds | 05:11 | |
| WinstonEwert_ (813ec8ab@gateway/web/freenode/ip.129.62.200.171) left irc: Ping timeout: 245 seconds | 05:13 | |
| asmeurer (~asmeurer@dhcp-altamirano-166.resnet.nmt.edu) joined #pypy. | 05:20 | |
| bethebunny (~bunny@x-160-94-179-189.acm.umn.edu) joined #pypy. | 05:23 | |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-64/builds/715 | 05:28 |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-Ojit-no-jit-linux-x86-32/builds/899 | 05:29 |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-32/builds/1558 | 05:30 |
| cdidd (~cdidd@95-26-138-2.broadband.corbina.ru) joined #pypy. | 05:31 | |
| anish_ (anish@nat/redhat/x-kyzwahoijktrpcpn) left irc: Remote host closed the connection | 05:31 | |
| anish_ (anish@nat/redhat/x-pnuvhgvucnsvgrks) joined #pypy. | 05:50 | |
| rekamso (~textual@63-228-127-70.dia.static.qwest.net) joined #pypy. | 05:57 | |
| Da_Blitz (~Da_Blitz@203.56.250.63) left irc: Ping timeout: 255 seconds | 06:16 | |
| rekamso (~textual@63-228-127-70.dia.static.qwest.net) left irc: Quit: zzz | 06:24 | |
| Da_Blitz (~Da_Blitz@203.56.250.63) joined #pypy. | 06:30 | |
| bbot2 | 3Success: 15http://buildbot.pypy.org/builders/own-linux-x86-64/builds/837 | 06:31 |
| AlekSi (~AlekSi@85.235.191.82) joined #pypy. | 06:55 | |
| Da_Blitz_ (~Da_Blitz@203.56.250.63) joined #pypy. | 07:05 | |
| Da_Blitz (~Da_Blitz@203.56.250.63) left irc: Ping timeout: 240 seconds | 07:07 | |
| asmeurer (~asmeurer@dhcp-altamirano-166.resnet.nmt.edu) left irc: Quit: asmeurer | 07:10 | |
| nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) left irc: Quit: Leaving | 07:11 | |
| asmeurer (~asmeurer@dhcp-altamirano-166.resnet.nmt.edu) joined #pypy. | 07:15 | |
| Nick change: Da_Blitz_ -> Da_Blitz | 07:20 | |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/2012 [py3k] | 07:35 |
| AlekSi (~AlekSi@85.235.191.82) left irc: Remote host closed the connection | 07:42 | |
| AlekSi (~AlekSi@85.235.191.82) joined #pypy. | 07:45 | |
| mikefc_ (9665bcc5@gateway/web/freenode/ip.150.101.188.197) left irc: Quit: Page closed | 07:53 | |
| mat^2 (mathias@87.55.0.198) joined #pypy. | 07:55 | |
| DasIch (~DasIch@p3E99155C.dip.t-dialin.net) joined #pypy. | 07:56 | |
| hruske (~Gasper@188-230-156-183.dynamic.t-2.net) joined #pypy. | 07:58 | |
| PiotrSikora (~none@nginx/adept/piotrsikora) left irc: Excess Flood | 08:09 | |
| PiotrSikora (~none@nginx/adept/piotrsikora) joined #pypy. | 08:12 | |
| vad (~vad@77.72.196.122) joined #pypy. | 08:22 | |
| DasIch (~DasIch@p3E99155C.dip.t-dialin.net) left irc: Quit: DasIch | 08:22 | |
| lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) joined #pypy. | 08:26 | |
| stefanop (~stefanop@77.72.196.122) joined #pypy. | 08:34 | |
| lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) left irc: Ping timeout: 240 seconds | 08:52 | |
| AlekSi_ (~AlekSi@85.235.191.82) joined #pypy. | 08:59 | |
| AlekSi (~AlekSi@85.235.191.82) left irc: Ping timeout: 252 seconds | 09:01 | |
| serge_sans_paill (~serge@2001:660:7302:e771:21a:4bff:feb7:5b4) joined #pypy. | 09:23 | |
| rhn (~rhn@5acba580.bb.sky.com) joined #pypy. | 09:31 | |
| lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) joined #pypy. | 09:31 | |
| squiddy (~squiddy@f053080067.adsl.alicedsl.de) joined #pypy. | 09:36 | |
| sunoano (~sa@mail.heartinternet.co.uk) joined #pypy. | 09:39 | |
| sunoano (~sa@mail.heartinternet.co.uk) left irc: Changing host | 09:39 | |
| sunoano (~sa@unaffiliated/sunoano) joined #pypy. | 09:39 | |
| hruske (~Gasper@188-230-156-183.dynamic.t-2.net) left irc: Remote host closed the connection | 09:40 | |
| dracman (~draco@212.255.30.147) left irc: Remote host closed the connection | 09:41 | |
| bivab (~bivab@fwstups.cs.uni-duesseldorf.de) joined #pypy. | 09:45 | |
| vad_ (~vad@77.72.196.122) joined #pypy. | 09:46 | |
| vad (~vad@77.72.196.122) left irc: Ping timeout: 240 seconds | 09:49 | |
| AlekSi_ (~AlekSi@85.235.191.82) left irc: Remote host closed the connection | 09:49 | |
| G2P (~G2P@fw-asn1.ornis.com) joined #pypy. | 09:50 | |
| hruske (~Gasper@188-230-156-183.dynamic.t-2.net) joined #pypy. | 09:57 | |
| berdario (~Tiibiidii@host243-85-dynamic.0-87-r.retail.telecomitalia.it) joined #pypy. | 10:00 | |
| kushal (~kdas@117.201.107.68) joined #pypy. | 10:00 | |
| kushal (~kdas@117.201.107.68) left irc: Changing host | 10:00 | |
| kushal (~kdas@fedora/kushal) joined #pypy. | 10:00 | |
| fantasticsid (~user@178.18.16.11) left irc: Remote host closed the connection | 10:00 | |
| voidspace (~voidspace@python/psf/voidspace) joined #pypy. | 10:03 | |
| ebo^ (~ebo@icg1104.icg.kfa-juelich.de) joined #pypy. | 10:07 | |
| asmeurer (~asmeurer@dhcp-altamirano-166.resnet.nmt.edu) left irc: Quit: asmeurer | 10:33 | |
| AlekSi (~AlekSi@85.235.191.82) joined #pypy. | 10:34 | |
| Tobu (~Tobu@unaffiliated/tobu) left irc: Ping timeout: 272 seconds | 10:40 | |
| witulski (~stupsi@fwstups.cs.uni-duesseldorf.de) joined #pypy. | 10:41 | |
| witulski (stupsi@fwstups.cs.uni-duesseldorf.de) left #pypy. | 10:44 | |
| Eventh (~even@dhcp-020049.wlan.ntnu.no) joined #pypy. | 10:52 | |
| CIA-80 | 03Daid 07roundup * 10#1068/PyPy crashes without SSE2, an error message would be better.: | 10:56 |
| CIA-80 | [new] Currently, PyPy crashes without a proper error if you try to use it on an older | 10:56 |
| CIA-80 | machine without SSE2 instructions. You can translate PyPy w ... * 14https://bugs.pypy.org/issue1068 | 10:56 |
| CIA-80 | 03Daid 07roundup * 10#1068/PyPy crashes without SSE2, an error message would be better.: [chatting] Oops, that should have been "if ((features & (1 << 26)) == 0)" * 14https://bugs.pypy.org/issue1068 | 10:57 |
| zain (~textual@46.120.28.30) left irc: Quit: Computer has gone to sleep. | 10:59 | |
| tumbleweed | damn, that reminds me. I should be building the i386 package on Debian without SSE2 | 11:04 |
| Tobu (~Tobu@unaffiliated/tobu) joined #pypy. | 11:07 | |
| Nick change: vad_ -> vad | 11:07 | |
| stefanop (~stefanop@77.72.196.122) left irc: Remote host closed the connection | 11:18 | |
| zain (~textual@bzq-79-182-136-52.red.bezeqint.net) joined #pypy. | 11:32 | |
| JaRoel|4d (~jaroel|4d@109.32.59.179) joined #pypy. | 11:47 | |
| nedbat (~nedbat@python/psf/nedbat) joined #pypy. | 11:49 | |
| Tobu (~Tobu@unaffiliated/tobu) left irc: Read error: Operation timed out | 12:00 | |
| azanella (~azanella@187.21.5.187) joined #pypy. | 12:03 | |
| rhn (~rhn@5acba580.bb.sky.com) left irc: Read error: Operation timed out | 12:05 | |
| Tobu (~Tobu@unaffiliated/tobu) joined #pypy. | 12:08 | |
| amaury_ (~amaury_@74.125.57.34) joined #pypy. | 12:09 | |
| khs (~khs@2001:700:300:2120:725a:b6ff:fee5:a44) joined #pypy. | 12:14 | |
| pjdelport (~pjdelport@c-69-251-199-136.hsd1.md.comcast.net) left irc: Ping timeout: 240 seconds | 12:17 | |
| pjdelport (~pjdelport@c-69-251-199-136.hsd1.md.comcast.net) joined #pypy. | 12:18 | |
| zain (~textual@bzq-79-182-136-52.red.bezeqint.net) left irc: Quit: Computer has gone to sleep. | 12:22 | |
| vad (~vad@77.72.196.122) left irc: Remote host closed the connection | 12:30 | |
| rndbit (~rndbit@vexar.de) left irc: Remote host closed the connection | 12:36 | |
| rndbit (~rndbit@vexar.de) joined #pypy. | 12:36 | |
| nedbat (~nedbat@python/psf/nedbat) left irc: Ping timeout: 245 seconds | 12:45 | |
| otakutomo (~otakutomo@KD027083117212.ppp-bb.dion.ne.jp) joined #pypy. | 12:49 | |
| aboudreault (~alanb@osgeo/member/aboudreault) left irc: Ping timeout: 240 seconds | 12:55 | |
| Tobu (~Tobu@unaffiliated/tobu) left irc: Ping timeout: 260 seconds | 12:56 | |
| arigato (~arigo@adsl-84-227-45-39.adslplus.ch) joined #pypy. | 12:58 | |
| thurloat (~thurloat@blk-11-127-105.eastlink.ca) joined #pypy. | 12:59 | |
| anish_ (anish@nat/redhat/x-pnuvhgvucnsvgrks) left irc: Quit: Leaving | 12:59 | |
| linq (~ident@24-246-25-39.cable.teksavvy.com) left irc: Ping timeout: 240 seconds | 13:00 | |
| zain (~textual@bzq-79-182-136-52.red.bezeqint.net) joined #pypy. | 13:01 | |
| bethebunny (~bunny@x-160-94-179-189.acm.umn.edu) left irc: Read error: Operation timed out | 13:04 | |
| rhn (~rhn@5acba580.bb.sky.com) joined #pypy. | 13:06 | |
| JaRoel|4d (~jaroel|4d@109.32.59.179) left irc: Read error: Connection reset by peer | 13:06 | |
| JaRoel|4d (~jaroel|4d@195-3-178-28.netaffairsdsl.nl) joined #pypy. | 13:06 | |
| justinpeel (~justinpee@c-76-23-44-72.hsd1.ut.comcast.net) joined #pypy. | 13:12 | |
| Rhy0lite (dje@nat/ibm/x-uhizrumasentjrga) joined #pypy. | 13:17 | |
| Tobu (~Tobu@unaffiliated/tobu) joined #pypy. | 13:22 | |
| bethebunny (~bunny@216-45-228-37-minneapolis-mn.hfc.comcastbusiness.net) joined #pypy. | 13:31 | |
| zain (~textual@bzq-79-182-136-52.red.bezeqint.net) left irc: Quit: Computer has gone to sleep. | 13:32 | |
| Razz | I just read the paper: Tracing the Meta-Level: PyPy's Tracing JIT Compiler and it says there that the JIT generates machine code that is immediately executable, I was wondering how this is technically implemented, do you generate assembler or a shared object that is dynamically linked? | 13:33 |
| arigato | Razz: we generate machine code in memory directly | 13:34 |
| arigato | (not "assembler", which properly means text source of machine code) | 13:34 |
| Razz | arigato: Ok, but how does the running program know where to look and execute that machine code? | 13:35 |
| Razz | is there a paper or document describing this implementation? | 13:36 |
| arigato | you use mmap to allocate memory that has the "executable" permission, fill it with bytes, and then jump to it | 13:36 |
| Razz | arigato: ah, cool | 13:36 |
| arigato | e.g. from C code you jump to it by taking the address, casting it to a "function pointer" type, and calling it | 13:36 |
| timotimo | razz, the most important realisation here is this: | 13:37 |
| bethebunny (~bunny@216-45-228-37-minneapolis-mn.hfc.comcastbusiness.net) left irc: Quit: leaving | 13:37 | |
| timotimo | machine code is not special, at all | 13:37 |
| timotimo | everything is just bytes. the only important bit is that you somehow jump there with the instruction pointer | 13:38 |
| Razz | right | 13:38 |
| timotimo | it really boggles the mind :) | 13:38 |
| vad (~vad@77.72.196.122) joined #pypy. | 13:38 | |
| arigato | yes, although OSes tend to hide that by having memory that is either executable-but-read-only, or read-write but not executable | 13:38 |
| Razz | I did something similar to JIT compilation for the language SaC but I used shared objects | 13:38 |
| serge_sans_paill | Razz, SaC ? | 13:39 |
| serge_sans_paill | any ref ? | 13:39 |
| Razz | Single Assignment C, sac-home.org | 13:39 |
| Razz | functional array programming language, research project | 13:39 |
| Razz | That was for my BSc thesis, now I'm looking for a cool project for my MSc thesis | 13:40 |
| arigato | I guess you used some external compiler? | 13:40 |
| Razz | Kind of leaning towards partial evaluation and compiler / specializer generation | 13:40 |
| Razz | arigato: I use the sac2c compiler at runtime (it's implemented as a shared library) | 13:40 |
| arigato | ok, so you generate some source code, pass it to a compiler, get a shared library, and load it | 13:41 |
| Razz | yup | 13:41 |
| Razz | got speed ups near 20x original code for highly generic convolution | 13:41 |
| arigato | :-) | 13:41 |
| serge_sans_paill | Razz, looks like copperhead to me, any opinion ? | 13:41 |
| Razz | copperhead? | 13:41 |
| arigato | it's probably not suited to use that for pypy because we need to generate a lot of small bits of code, and without taking forever | 13:42 |
| arigato | but we are vaguely considering using it as a 2nd-stage recompiler | 13:42 |
| Razz | ok, cool | 13:42 |
| leo2007 (~leo@222.130.136.192) joined #pypy. | 13:42 | |
| serge_sans_paill | Razz, a data-// language embeded in python | 13:42 |
| arigato | e.g. find out places of already-generated code that are stable and used a lot, and send them to a good slowish external compiler | 13:43 |
| Razz | serge_sans_paill: haven't heard of it tbh | 13:43 |
| fijal | hi | 13:43 |
| arigato | hi fijal | 13:43 |
| Razz | SaC provides Matlab like functionality | 13:43 |
| Razz | serge_sans_paill: I would say that looks quite similar at a glance, SaC also supports a CUDA backend but the main backend is ISO C | 13:45 |
| serge_sans_paill | right | 13:45 |
| serge_sans_paill | Razz, I'm planning to work on a C+OpenMP backend | 13:45 |
| serge_sans_paill | depending on my free time :-) | 13:45 |
| Razz | cool | 13:46 |
| Razz | for pypy? | 13:46 |
| arigato | fijal, Alex_Gaynor: fix translation please :-) something broken in micronumpy | 13:46 |
| arigato | on default | 13:46 |
| fijal | pfff | 13:46 |
| arigato | http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/1254 | 13:47 |
| Action: fijal fixes | 13:47 | |
| arigato | hum, this doesn't seem to be in micronumpy after all | 13:47 |
| arigato | ah | 13:47 |
| fijal | arigato: ah sorry I think I fixed it | 13:47 |
| arigato | ok | 13:47 |
| arigato | the current failure is just some misordering of reds or greens in a jitdriver | 13:48 |
| fijal | yes | 13:48 |
| ebo^ | arigato: did you have any luck with perfsuite? | 13:48 |
| serge_sans_paill | timotimo, pypy relies on a library for the `executable bytes' generation | 13:49 |
| arigato | ebo^: not so far, but I gave up when I realized that the same inconsistent results occur even in 1 thread | 13:49 |
| arigato | ebo^: then I used valgrind and found it | 13:49 |
| ebo^ | did you see the picture i posted? | 13:49 |
| arigato | no? | 13:49 |
| ebo^ | https://imgur.com/oVhWR | 13:50 |
| ebo^ | this is from one of our sparse matrix multiply benchmarks | 13:50 |
| arigato | serge_sans_paill: unsure what you mean, but I would say "no you're wrong" | 13:50 |
| ebo^ | 1 thead on a free machine, with process binding | 13:50 |
| serge_sans_paill | arigato, something like http://homepage1.nifty.com/herumi/soft/xbyak_e.html or you designed your own ? | 13:51 |
| fijal | ebo^: I see the great feature of matplotlib to happily eat your graph with the legend | 13:51 |
| arigato | serge_sans_paill: we have our own | 13:51 |
| serge_sans_paill | right | 13:52 |
| serge_sans_paill | a doc somewhere ? | 13:52 |
| serge_sans_paill | (out of curiosity) | 13:52 |
| ebo^ | i know ;-p | 13:53 |
| arigato | serge_sans_paill: no :-( | 13:53 |
| arigato | sorry | 13:53 |
| serge_sans_paill | no problem | 13:53 |
| serge_sans_paill | seems an interesting piece of software on its own | 13:53 |
| arigato | it's in pypy/jit/backend/x86 if you want to look at the source | 13:53 |
| arigato | it's not really designed as a general just-in-time assembler | 13:54 |
| arigato | it's meant to assemble the kind of code produced by our jit front-end | 13:54 |
| serge_sans_paill | ok | 13:54 |
| ebo^ | i'd still like to know where the 3 steps in that graph come from | 13:54 |
| serge_sans_paill | I will not look at it, `time is fleeting', you knwo | 13:54 |
| Tobu (~Tobu@unaffiliated/tobu) left irc: Ping timeout: 240 seconds | 13:55 | |
| zain (~textual@46.120.28.30) joined #pypy. | 13:56 | |
| ebo^ | modern processors are strange | 13:56 |
| aboudreault (~alanb@osgeo/member/aboudreault) joined #pypy. | 13:57 | |
| ebo^ | arigato: what was the problem with your code? | 13:59 |
| arigato | there is a cache somewhere to speed up method dispatch | 14:02 |
| arigato | I already made it thread-local | 14:02 |
| arigato | but that's not enough | 14:02 |
| ebo^ | ic | 14:02 |
| arigato | as soon as a transaction wants to update the cache, it needs to be copied around | 14:02 |
| fijal | arigato: those are problems that go away with jitting right? | 14:04 |
| ronny | arigato: would it be reasonable to have implementation details like method cache be tracked outside of transactions? | 14:05 |
| fijal | ronny: that would be a) very unpypy b) harder to get right | 14:06 |
| fijal | because it would mean you need to write it with locks and stuff | 14:06 |
| xcombelle (~chatzilla@AToulouse-551-1-71-6.w92-146.abo.wanadoo.fr) joined #pypy. | 14:06 | |
| nettok (~quassel@190.148.234.217) joined #pypy. | 14:07 | |
| ronny | i wonder if a lockfree hashtable woul fit for those - after all there houldnt be a real in doing long lookup more than once | 14:07 |
| ronny | *cost | 14:08 |
| Tobu (~Tobu@unaffiliated/tobu) joined #pypy. | 14:10 | |
| nettok (~quassel@190.148.234.217) left irc: Remote host closed the connection | 14:12 | |
| lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) left irc: Quit: Leaving | 14:13 | |
| lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) joined #pypy. | 14:13 | |
| amaury_ (~amaury_@74.125.57.34) left irc: Ping timeout: 240 seconds | 14:17 | |
| arigato | ronny: just have one table per thread, that's fine, you don't need lockfreeness | 14:22 |
| ronny | arigato: true | 14:23 |
| justinpeel (~justinpee@c-76-23-44-72.hsd1.ut.comcast.net) left irc: Ping timeout: 252 seconds | 14:23 | |
| arigato | that's what I did and cancelled for performance reasons that you can read about in the logs | 14:24 |
| dmalcolm (~david@c-24-128-191-171.hsd1.ma.comcast.net) left irc: Ping timeout: 240 seconds | 14:27 | |
| fijal | arigato: haha | 14:32 |
| pjenvey (~pjenvey@underboss.org) left irc: Ping timeout: 248 seconds | 14:32 | |
| fijal | arigato: we have a bug report about SSE | 14:32 |
| fijal | have you seen it? | 14:32 |
| whitelynx (~whitelynx@63.241.75.144) joined #pypy. | 14:36 | |
| ericholscher (~eric@173.203.223.63) left irc: Ping timeout: 252 seconds | 14:38 | |
| serge_sans_paill | fijal, pypy can generate sse code ?!? | 14:41 |
| fijal | serge_sans_paill: it uses sse for normal floating operations | 14:43 |
| fijal | it does not use automatic vectorization | 14:43 |
| fijal | GCC also uses SSE by default these days | 14:43 |
| Tobu (~Tobu@unaffiliated/tobu) left irc: Ping timeout: 260 seconds | 14:44 | |
| Action: arigato fixes | 14:44 | |
| arigato | anyone has a clue how to test it? | 14:45 |
| serge_sans_paill | fijal, ok | 14:45 |
| tumbleweed | arigato: I tried to test this in a qemu without HVM that was supposed to not support SSE | 14:46 |
| tumbleweed | but it didn't crash, so clearly it did support SSE | 14:46 |
| arigato | :-/ | 14:46 |
| Action: tumbleweed looks around for a machine olde enough to not have SSE | 14:47 | |
| xcombelle (~chatzilla@AToulouse-551-1-71-6.w92-146.abo.wanadoo.fr) left irc: Read error: Connection reset by peer | 14:47 | |
| Rhy0lite | how about a machine old enough to not have MMX? | 14:47 |
| xcombelle (~chatzilla@AToulouse-551-1-71-6.w92-146.abo.wanadoo.fr) joined #pypy. | 14:48 | |
| pjenvey (~pjenvey@underboss.org) joined #pypy. | 14:48 | |
| ericholscher (~eric@173.203.223.63) joined #pypy. | 14:48 | |
| fprimex (~fprimex@fl-67-233-144-239.dhcp.embarqhsd.net) joined #pypy. | 14:53 | |
| tumbleweed | unfortunatly debian still supports down to 486-class PCs :/ http://lists.debian.org/debian-devel/2011/11/msg00565.html | 14:53 |
| tumbleweed | so I should be building without any SSE on i386. Thankfully all amd64 machines support SSE2 | 14:54 |
| gtaylor (~gtaylor@108-196-160-156.lightspeed.tukrga.sbcglobal.net) joined #pypy. | 14:57 | |
| timotimo | fijal: have the example notebooks in ipythons source been helpful? | 14:58 |
| Eventh (~even@dhcp-020049.wlan.ntnu.no) left irc: Quit: Leaving. | 15:03 | |
| Rhy0lite | bivab: ping | 15:06 |
| nedbat (~nedbat@python/psf/nedbat) joined #pypy. | 15:06 | |
| bivab | Rhy0lite: pong | 15:06 |
| Rhy0lite | bivab: do you have time to look at PPC backend now? | 15:06 |
| Action: tumbleweed found a Celeron rotting in the corner, which supports SSE but not SSE2 | 15:06 | |
| bivab | Rhy0lite: some, I have to leave in about an hour | 15:07 |
| Tobu (~Tobu@unaffiliated/tobu) joined #pypy. | 15:07 | |
| Alex_Gaynor | Rhy0lite: ping | 15:08 |
| Rhy0lite | Alex_Gaynor: pong | 15:08 |
| Rhy0lite | any progress with GCC? | 15:09 |
| fijal | arigato: there is a post on the ML | 15:09 |
| fijal | arigato: or on the bug tracker | 15:09 |
| Alex_Gaynor | Rhy0lite: I compiled gmp using --prefix=$HOME/install and make install, and now ./configure --with-gmp=$HOME/install finds it, however make in mpfr blows up not being able to find gmp.h (even though configure found it ok) | 15:09 |
| Rhy0lite | yes | 15:10 |
| Rhy0lite | please use | 15:10 |
| Rhy0lite | ./configure --with-gmp=$HOME/install --with-gmp-build=../gmp-5.0.4 --prefix=$HOME/install | 15:10 |
| Alex_Gaynor | Rhy0lite: configure: error: Do not use --with-gmp-build and other --with-gmp options simultaneously. | 15:11 |
| Rhy0lite | okay... | 15:11 |
| Rhy0lite | try | 15:11 |
| Rhy0lite | ./configure --with-gmp-build=../gmp-5.0.4 --prefix=$HOME/install | 15:11 |
| thurloat (thurloat@blk-11-127-105.eastlink.ca) left #pypy ("not irc, I am in you."). | 15:12 | |
| Alex_Gaynor | Rhy0lite: mpfr-impl.h:68:19: error: gmp.h: No such file or directory | 15:13 |
| Alex_Gaynor | mpfr-impl.h:71:24: error: gmp-impl.h: No such file or directory | 15:13 |
| Alex_Gaynor | :/ | 15:13 |
| Rhy0lite | I wonder if MPFR knows how to deal with GMP-5 | 15:13 |
| DasIch (~DasIch@p3E99155C.dip.t-dialin.net) joined #pypy. | 15:13 | |
| fijal (~fijal@c-76-120-66-180.hsd1.co.comcast.net) left irc: Ping timeout: 240 seconds | 15:13 | |
| Alex_Gaynor | this is mpfr 3.1.0 | 15:14 |
| Alex_Gaynor | should I drop back to gmp 4.x? | 15:14 |
| Rhy0lite | yes, I think that's the next option | 15:14 |
| Rhy0lite | use the latest GMP 4.3.x | 15:15 |
| Alex_Gaynor | ok | 15:15 |
| Alex_Gaynor | Rhy0lite: err, is there a link to it somewhere? | 15:16 |
| shiftingcontrol (~kracekuma@115.184.117.112) joined #pypy. | 15:17 | |
| Rhy0lite | ftp://ftp.gmplib.org/pub/gmp-4.3.2/gmp-4.3.2.tar.bz2 | 15:17 |
| Alex_Gaynor | thanks | 15:18 |
| dcolish (dcolish@2610:10:20:208:5652:ff:fe2b:1165) left irc: Ping timeout: 260 seconds | 15:20 | |
| otakutomo (~otakutomo@KD027083117212.ppp-bb.dion.ne.jp) left irc: Ping timeout: 260 seconds | 15:21 | |
| dcolish (dcolish@2610:10:20:208:5652:ff:fe2b:1165) joined #pypy. | 15:23 | |
| Alex_Gaynor | Rhy0lite: ok, gcc is compiling now! thanks | 15:25 |
| shiftingcontrol (~kracekuma@115.184.117.112) left irc: Ping timeout: 240 seconds | 15:26 | |
| Rhy0lite | great! | 15:26 |
| otakutomo (~otakutomo@KD027083117212.ppp-bb.dion.ne.jp) joined #pypy. | 15:26 | |
| Rhy0lite | I assume that you configured GCC with --prefix=$HOME/install as well? | 15:26 |
| shiftingcontrol (~kracekuma@115.184.117.112) joined #pypy. | 15:26 | |
| Alex_Gaynor | Yes :) | 15:27 |
| Alex_Gaynor | Not often I can have every single CPU in this machine maxed | 15:27 |
| durin42 | Alex_Gaynor: what's the machine like? | 15:28 |
| Alex_Gaynor | Rhy0lite: doh, just hit a compilation error http://paste.pocoo.org/show/555067/ | 15:28 |
| Alex_Gaynor | durin42: 4cores (with hyperthreading) | 15:28 |
| Alex_Gaynor | 12GB of RAM | 15:29 |
| DasIch_ (~DasIch@p3E991C47.dip.t-dialin.net) joined #pypy. | 15:29 | |
| Rhy0lite | that normally means the compiler does not run correctly | 15:29 |
| Rhy0lite | let me log in to tannit | 15:30 |
| Rhy0lite | probably a broken LIBPATH | 15:30 |
| Rhy0lite | like you need export LIBPATH=$HOME/install/lib | 15:30 |
| kenaan_ | 12arigo default 11e0b455a97502 15/pypy/: Kill this specialization. It's mostly pointless and it gives occasionally headaches because fatalerror() is called ... | 15:30 |
| kenaan_ | 12arigo default 114320ef8d1ab2 15/pypy/jit/backend/x86/: Issue1068: in a pypy translated for x86-32 with SSE2, detect at run-time if we really have SSE2, and if not, abort ... | 15:30 |
| Alex_Gaynor | k, this is in alex/src/gcc-trunk | 15:30 |
| Alex_Gaynor | Rhy0lite: is there anyway to verify that's the case? | 15:30 |
| CIA-80 | 03arigo 07roundup * 10#1068/PyPy crashes without SSE2, an error message would be better.: | 15:30 |
| CIA-80 | [resolved] Fixed in 4320ef8d1ab2. It should fail at run-time with a nice error message | 15:30 |
| CIA-80 | now. Thank you! * 14https://bugs.pypy.org/issue1068 | 15:30 |
| Rhy0lite | one looks at the actual log file | 15:30 |
| tumbleweed | arigato: I'll try and test that | 15:31 |
| arigato | tumbleweed: thank you a lot | 15:31 |
| Rhy0lite | oh, you're building in the sources again | 15:31 |
| DasIch (~DasIch@p3E99155C.dip.t-dialin.net) left irc: Ping timeout: 276 seconds | 15:32 | |
| Nick change: DasIch_ -> DasIch | 15:32 | |
| Alex_Gaynor | err, I guess | 15:32 |
| Rhy0lite | this basically is the first time that the new compiler from stage 1 bootstrap is invoked | 15:33 |
| Rhy0lite | if it does not run | 15:33 |
| Rhy0lite | it produces this obscure error | 15:33 |
| Rhy0lite | yep libpath | 15:33 |
| Alex_Gaynor | ah, I missed that this was now the stage1 | 15:33 |
| Rhy0lite | look at /home/agaynor/src/gcc-trunk/x86_64-unknown-linux-gnu/libgcc/config.log | 15:33 |
| Rhy0lite | oh, you need libmpc as well | 15:34 |
| Alex_Gaynor | oh, whoops, I forgot to point configure at it | 15:34 |
| Rhy0lite | error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory | 15:34 |
| Rhy0lite | libmpc is not in the same location as gmp and mpfr? | 15:34 |
| Alex_Gaynor | It is, but I didn't provide --with-mpc | 15:35 |
| Alex_Gaynor | could that cuase the issue? | 15:35 |
| Rhy0lite | no | 15:35 |
| Alex_Gaynor | oh :/ | 15:35 |
| Rhy0lite | normally specifying --with-gmp is enough | 15:35 |
| Alex_Gaynor | I seem to recall I need --with-mpfr as well | 15:35 |
| Rhy0lite | top-level config.log says that all were specified | 15:36 |
| Rhy0lite | or it inferred the others | 15:36 |
| Alex_Gaynor | Yeah, I just tried reconfiguring and remaking, no difference | 15:37 |
| Rhy0lite | did you use export LIBPATH=$HOME/install/lib ? | 15:37 |
| kushal (~kdas@fedora/kushal) left irc: Quit: This computer has gone to sleep | 15:38 | |
| fijal (~fijal@128.117.228.167) joined #pypy. | 15:38 | |
| Alex_Gaynor | ah, no, that's on the make? | 15:38 |
| Rhy0lite | go to /home/agaynor/src/gcc-trunk/host-x86_64-unknown-linux-gnu/gcc | 15:39 |
| Rhy0lite | ldd cc1 | 15:39 |
| Rhy0lite | the problem is that it's finding /usr/lib/libgmp.so.3 | 15:39 |
| Rhy0lite | so it thinks everything is okay | 15:39 |
| Rhy0lite | not your version of GMP | 15:39 |
| Rhy0lite | but, yes, set export LIBPATH=$HOME/install/lib before invoking make | 15:40 |
| Alex_Gaynor | ok, thanks | 15:40 |
| Alex_Gaynor | same error, do I need to make clean first? | 15:40 |
| Rhy0lite | yes | 15:40 |
| Rhy0lite | and even better to use a separate build directory | 15:41 |
| Alex_Gaynor | ok, glad this isn't a local machine, or I could turn off the heating | 15:41 |
| Rhy0lite | when it builds the DFA for the scheduler, it slows down | 15:41 |
| Alex_Gaynor | no luck, same error | 15:43 |
| Alex_Gaynor | ldd cc1 shows the same gmp, and lack of mpc | 15:45 |
| Rhy0lite | yes | 15:45 |
| Rhy0lite | Honestly, I suggest that you delete gcc-trunk | 15:46 |
| Rhy0lite | download it again | 15:46 |
| Rhy0lite | and don't configure in the source tree | 15:46 |
| Rhy0lite | configure leaves bits around | 15:46 |
| Rhy0lite | I cannot tell what is new and what is old | 15:46 |
| Alex_Gaynor | Ok, how do I configure elsewhere? | 15:46 |
| dmalcolm (david@nat/redhat/x-iviwvuncdvkemzel) joined #pypy. | 15:46 | |
| ebo^ | change into the dir, "/path/to/configure" | 15:47 |
| Rhy0lite | exactly | 15:47 |
| Rhy0lite | use the full path to configure | 15:47 |
| Alex_Gaynor | Well. That's sort of obvious. | 15:47 |
| Rhy0lite | we can make the instructions more complicated if you prefer | 15:47 |
| ebo^ | :-] | 15:47 |
| Alex_Gaynor | Rhy0lite: no, I assume you I'm well beyond my usual confusion threshold as it is :) | 15:48 |
| Alex_Gaynor | And I was writing javascript yesterday. | 15:48 |
| ebo^ | oh ... ok | 15:48 |
| kushal (~kdas@117.201.107.68) joined #pypy. | 15:49 | |
| kushal (~kdas@117.201.107.68) left irc: Changing host | 15:49 | |
| kushal (~kdas@fedora/kushal) joined #pypy. | 15:49 | |
| kushal (~kdas@fedora/kushal) left irc: Client Quit | 15:50 | |
| jyp (~interrupt@175.197.245.105) joined #pypy. | 15:52 | |
| Action: fijal happily tries to run an x-based installer on tannit | 15:52 | |
| fijal | with ssh -X | 15:52 |
| fijal | technology is crazy | 15:53 |
| ronny | lol | 15:53 |
| ronny | fijal: didnt you have a bad connection? | 15:53 |
| Alex_Gaynor | fijal: I'm doing svn co on gcc ATM, that might make tannit slow | 15:54 |
| fijal | Alex_Gaynor: I doubt that's even comparable | 15:54 |
| fijal | ronny: I have 4M at home | 15:54 |
| fijal | which not too bad | 15:54 |
| fijal | but I'm far away from home | 15:54 |
| Alex_Gaynor | fijal: gcc svn is huge, I think I now have all of fortran and java | 15:54 |
| fijal | how do I write a loop in bash? | 15:55 |
| fijal | for i in [1, 2, 3] to be precise | 15:55 |
| Rhy0lite | for i in `seq 1 2 3`; do | 15:56 |
| fijal | cool | 15:57 |
| ronny | Alex_Gaynor: why a svn co on gcc? | 15:58 |
| arigato | Alex_Gaynor: wait, I already have an "svn co" of gcc on tannit | 15:58 |
| arigato | ~arigo/svn/gcc | 15:58 |
| ebo^ | for i in 1 2 3; do echo $i; done | 15:59 |
| ronny | fijal: for i in 1..3;do ? | 15:59 |
| Alex_Gaynor | ronny: because my laptop me try toc ompil it | 15:59 |
| arigato | Alex_Gaynor: I can even "svn up" it first, if you want | 15:59 |
| ronny | whops | 15:59 |
| Alex_Gaynor | melts* | 15:59 |
| thurloat (~thurloat@blk-11-127-105.eastlink.ca) joined #pypy. | 15:59 | |
| ronny | confusing something | 15:59 |
| ronny | ah, its {1..3} | 15:59 |
| Alex_Gaynor | arigato: whoops, my co is just about done anyways | 15:59 |
| arigato | :-) | 15:59 |
| arigato | ok | 15:59 |
| tumbleweed | arigato: meh, doesn't translate: http://paste.pocoo.org/show/555083/ | 16:00 |
| arigato | ah yes | 16:00 |
| arigato | that's an unrelated issue that should be fixed soon | 16:00 |
| ronny | fijal: {start..end} is a inclusive range in bash | 16:00 |
| arigato | :-/ | 16:00 |
| Alex_Gaynor | fijal: you fixed that red/greens issue, transplant to defaut? | 16:00 |
| tumbleweed | phew, I couldn't see the relationship | 16:00 |
| arigato | tumbleweed: for now, run "translate.py targetpypystandalone --withoutmod-micronumpy" | 16:00 |
| tumbleweed | ah | 16:01 |
| arigato | "translate.py -Ojit targetpypystandalone --withoutmod-micronumpy" | 16:01 |
| fijal | Alex_Gaynor: I'm not sure | 16:01 |
| fijal | Alex_Gaynor: can you doubtly check | 16:01 |
| fijal | uh | 16:01 |
| fijal | maybe indeed I fixed it on a branch | 16:01 |
| fijal | sorry sorry | 16:01 |
| arigato | :-) | 16:01 |
| fijal | arigato: fixed | 16:03 |
| fijal | arigato: I'm trying hard to not break the translation on default :/ | 16:03 |
| kenaan_ | 12fijal default 114c6c003b391e 15/pypy/module/micronumpy/interp_support.py: sorry sorry fix the translation | 16:03 |
| tumbleweed | :) | 16:03 |
| Alex_Gaynor | fijal: just think, maybe some day amaury will finish sepcomp, and then we can move micronumpy outside pypy tree! | 16:03 |
| nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) joined #pypy. | 16:04 | |
| fijal | Alex_Gaynor: maybe | 16:04 |
| arigato | fijal: it will crash again | 16:04 |
| fijal | arigato: because | 16:04 |
| arigato | the variable 'i' is not listed | 16:04 |
| fijal | ? | 16:04 |
| kenaan_ | 12fijal default 110e27c93ef49e 15/pypy/module/micronumpy/interp_support.py: pff sorry | 16:05 |
| arigato | why doesn't micronumpy/test/test_ztranslation crash? | 16:06 |
| Alex_Gaynor | Does it ztranslate invoke JIT? | 16:06 |
| arigato | ah | 16:06 |
| arigato | no | 16:06 |
| arigato | it's test_zjit | 16:06 |
| Alex_Gaynor | test_zjit doesn't touch that part of the code, I guess | 16:07 |
| arigato | missing test! :-) | 16:08 |
| arigato | how about having one test for every jitdriver? | 16:08 |
| arigato | (ideally?) | 16:08 |
| Alex_Gaynor | Well, ideally fijal will remove all but one jitdriver ;) | 16:08 |
| jyp (~interrupt@175.197.245.105) left irc: Remote host closed the connection | 16:09 | |
| Alex_Gaynor | Rhy0lite: so does agaynor@tannit:~/src/gcc-build$ ~/src/gcc-trunk/configure --prefix=$HOME/install --with-gmp=$HOME/install --with-mpfr=$HOME/install --with-mpc=$HOME/install | 16:09 |
| Alex_Gaynor | look correct? | 16:09 |
| AlekSi (~AlekSi@85.235.191.82) left irc: Remote host closed the connection | 16:10 | |
| Rhy0lite | yes. I would suggest setting export LIBPATH before you configure | 16:10 |
| Alex_Gaynor | export LIBPATH=$HOME/install/lib | 16:10 |
| Alex_Gaynor | ? | 16:10 |
| Rhy0lite | yes | 16:11 |
| Alex_Gaynor | ok, let's build ourelves a gcc! | 16:11 |
| Rhy0lite | 29th time is the charm! | 16:12 |
| xcombelle (~chatzilla@AToulouse-551-1-71-6.w92-146.abo.wanadoo.fr) left irc: Read error: Connection reset by peer | 16:12 | |
| fijal | arigato: that's impressive | 16:12 |
| fijal | arigato: ideally we'll have only one jitdriver | 16:12 |
| fijal | arigato: I'm a bit sorry it was written in a bit of haste I must admin | 16:12 |
| xcombelle (~chatzilla@AToulouse-551-1-71-6.w92-146.abo.wanadoo.fr) joined #pypy. | 16:12 | |
| fijal | admit | 16:12 |
| arigato | no problem | 16:12 |
| arigato | what is impressive? | 16:13 |
| fijal | your STM data | 16:13 |
| arigato | :-) | 16:13 |
| fijal | I'm trying to get SSE benchmarks in some way before a talk in few hours | 16:13 |
| arigato | just-in-time benchmarking :-) | 16:13 |
| fijal | yes | 16:13 |
| Alex_Gaynor | Rhy0lite: apparently it's going to be the 30th :( for all that, no love | 16:14 |
| fijal | http://paste.pocoo.org/show/555091/ | 16:14 |
| Rhy0lite | hmm | 16:14 |
| Alex_Gaynor | fijal: you can always benchmark for the first time on stage, there's no way that could go wrong | 16:14 |
| Rhy0lite | let's see what's going on | 16:14 |
| fijal | arigato: C has two versions | 16:14 |
| fijal | one calls add and stuff | 16:14 |
| fijal | the other collapses stuff in the loop | 16:14 |
| Alex_Gaynor | fijal: in the C version are you allocating temporaries? | 16:14 |
| fijal | Alex_Gaynor: in the first version | 16:15 |
| Alex_Gaynor | fijal: I'd have 2 GCC results, no one writes C code like that | 16:15 |
| Alex_Gaynor | there's only one gcc column here | 16:15 |
| fijal | Alex_Gaynor: that's not true | 16:15 |
| Alex_Gaynor | fijal: double `s` in the PyPy SSE column | 16:15 |
| fijal | Alex_Gaynor: if you have a C library that operates on arrays | 16:15 |
| fijal | chances are you would end up with code like that | 16:15 |
| fijal | unless it's a c++ template lib | 16:15 |
| fijal | noone adds stuff like this | 16:15 |
| fijal | but something more complex might be better | 16:16 |
| fijal | er | 16:16 |
| fijal | more common | 16:16 |
| Alex_Gaynor | Just do boht | 16:16 |
| Alex_Gaynor | IMO | 16:16 |
| fijal | I don't understand why numpy is so dog slow | 16:16 |
| fijal | "both" what do you mean? | 16:16 |
| fijal | I have two results no? | 16:16 |
| Alex_Gaynor | you have two tables | 16:16 |
| Alex_Gaynor | I don't know what the difference is though | 16:16 |
| Alex_Gaynor | GCC numbers are the same in both, anways | 16:17 |
| fijal | Alex_Gaynor: the second one has SSE | 16:17 |
| fijal | the first one does not | 16:17 |
| Alex_Gaynor | Yes, but that changes the pypy numbers | 16:17 |
| Alex_Gaynor | I'm saying you should have one C with temporaries, and other with a single loop like we generate | 16:17 |
| fijal | I do | 16:18 |
| fijal | that's in () for C | 16:18 |
| Alex_Gaynor | uhh, that's definitely not obvious | 16:18 |
| Alex_Gaynor | make it a seperate column place | 16:18 |
| Alex_Gaynor | please8 | 16:18 |
| Alex_Gaynor | * | 16:18 |
| shiftingcontrol | hi guys, if socket module is available in python is it possible bring down the server ? | 16:19 |
| arigato | obscure, why is numpy twice as slow as gcc-first-column? | 16:19 |
| Alex_Gaynor | arigato: I've never seen any evidence that numpy is actually fast :/ | 16:19 |
| arigato | :-( | 16:19 |
| bivab (bivab@fwstups.cs.uni-duesseldorf.de) left #pypy. | 16:20 | |
| ebo^ | no standard deviations? ;-p | 16:20 |
| fijal | arigato: numpy has one operation that's blazing because it calls BLAS | 16:20 |
| arigato | shiftingcontrol: maybe it's a question for #python | 16:20 |
| shiftingcontrol | arigato, uh, yes :) | 16:20 |
| fijal | I wonder if BLAS is fast, I would think so | 16:20 |
| arigato | me too | 16:20 |
| fijal | arigato: but indeed numpy is slower than advertised | 16:20 |
| arigato | ":-(" again | 16:20 |
| fijal | arigato: or maybe - slower than you would think given how much they care | 16:20 |
| fijal | arigato: also IMO it got slower | 16:21 |
| Alex_Gaynor | Rhy0lite: compiling gcc is confusing :/ | 16:21 |
| Rhy0lite | it normally should not be this confusing | 16:21 |
| fijal | as in the old benchmark from some old machine is more favorable than new ones | 16:21 |
| fijal | maybe introduction of SSE moves results? | 16:21 |
| arigato | fijal: or maybe gcc got better | 16:21 |
| fijal | yes | 16:21 |
| fijal | well | 16:21 |
| Alex_Gaynor | Rhy0lite: that's what I tell people who have trouble translating pypy :D | 16:21 |
| fijal | that should really be reflected in numpy | 16:21 |
| arigato | yes, but isn't | 16:22 |
| fijal | right | 16:22 |
| fijal | no idea why | 16:22 |
| fijal | arigato: anyway, it seems next to impossible to improve | 16:22 |
| arigato | it looks like a top-priority project for numpy people | 16:22 |
| Alex_Gaynor | fijal: maybe numpy has loops with weird labels and gotos | 16:22 |
| fijal | given the code size | 16:22 |
| Alex_Gaynor | ;) | 16:22 |
| arigato | :-/ | 16:22 |
| fijal | arigato: I'll send them a mail maybe | 16:22 |
| arigato | be sure to double-check your benchmarks | 16:22 |
| Alex_Gaynor | fijal: they'll probably tell you to use cython and fortran | 16:23 |
| fijal | ebo^: they're negligable ;-) | 16:23 |
| Alex_Gaynor | Is Pytran a thing you? | 16:23 |
| ebo^ | thought so, too ... once | 16:23 |
| fijal | Alex_Gaynor: yeah there is a thing where you type fortran | 16:23 |
| fijal | weave inline? | 16:23 |
| fijal | ebo^: not true actually | 16:23 |
| ebo^ | btw: micronumpy does not provide a c interface? (similiar to pypy c-extension headers) | 16:25 |
| fijal | ebo^: no | 16:25 |
| Snyg (~snyg@p4FF1C653.dip0.t-ipconnect.de) joined #pypy. | 16:25 | |
| ebo^ | :-( | 16:25 |
| fijal | ebo^: why would you need one? | 16:25 |
| ebo^ | https://code.google.com/p/netcdf4-python/ | 16:26 |
| sunoano (~sa@unaffiliated/sunoano) left irc: Quit: Leaving. | 16:26 | |
| ebo^ | a library for reading netcdf binary files ... stores stuff in numpy arrays | 16:26 |
| fijal | ebo^: yeah, I'm sitting next to the author :-P | 16:27 |
| fijal | I'm afraid our answer for now is "should be written in python" | 16:27 |
| fijal | but on the flipside you can access pypy numpy arrays in C | 16:27 |
| fijal | they're just bunch of data | 16:27 |
| fijal | not the metadata though | 16:27 |
| Rhy0lite | Alex_Gaynor: okay, I'm an idiot. I told you the wrong environment variable | 16:28 |
| Rhy0lite | export LD_LIBRARY_PATH=$HOME/install/lib | 16:28 |
| fijal | Rhy0lite: maybe you're not an idiot and this is just very hard? | 16:28 |
| Rhy0lite | fijal: that's the kinder way to describe it :-) | 16:29 |
| Alex_Gaynor | GO GO MAGIC STAGE 1 COMPILER! | 16:29 |
| Alex_Gaynor | it seems to be doing stuff, cool | 16:29 |
| Alex_Gaynor | Rhy0lite: the default bootstrap goes up to stage3 right? | 16:30 |
| Alex_Gaynor | default gcc compiled, bootstrap compiled, and then bootstrap-bootstrap compiled | 16:30 |
| Rhy0lite | yes | 16:30 |
| Rhy0lite | it definitely seems much happier | 16:32 |
| Alex_Gaynor | yup, everything appears to be working now | 16:32 |
| Alex_Gaynor | how do I know what stage of bootstrap it's in? | 16:33 |
| Alex_Gaynor | (make should totally have progress bars, or at least a mandlebrot) | 16:33 |
| Rhy0lite | well, it created prev-XXX in the top-level | 16:33 |
| Rhy0lite | so it's at least at stage2 | 16:33 |
| Rhy0lite | you can look at gcc-build/stage_current | 16:33 |
| shiftingcontrol (~kracekuma@115.184.117.112) left irc: Ping timeout: 260 seconds | 16:34 | |
| Tobu (~Tobu@unaffiliated/tobu) left irc: Ping timeout: 260 seconds | 16:34 | |
| arigato | fijal: pypy translation is not fixed | 16:37 |
| Rhy0lite | Alex_Gaynor: I need to commit my Makefile for translating PyPy | 16:37 |
| fijal | arigato: what is it now? | 16:37 |
| arigato | http://paste.pocoo.org/show/555099/ | 16:37 |
| Alex_Gaynor | Rhy0lite: cat "all:\n\t./pypy/translator/goal/translate.py -Ojit" > Makefile | 16:38 |
| xcombelle (~chatzilla@AToulouse-551-1-71-6.w92-146.abo.wanadoo.fr) left irc: Ping timeout: 265 seconds | 16:38 | |
| fijal | bah | 16:38 |
| fijal | arigato: can't we fix this somehow :/ | 16:38 |
| fijal | arigato: I'm running into those order issues all the time | 16:38 |
| ebo^ | to the author of micronumpy or python-netcdf4? | 16:39 |
| fijal | ebo^: sorry? | 16:39 |
| kenaan_ | 12fijal default 11732abe5a499d 15/pypy/module/micronumpy/interp_support.py: of course a is a pointer | 16:39 |
| ebo^ | <fijal> ebo^: yeah, I'm sitting next to the author :-P | 16:39 |
| fijal | ebo^: well, python-netcdf4 | 16:40 |
| fijal | and micronumpy | 16:40 |
| Rhy0lite | Alex_Gaynor: more like http://paste.pocoo.org/show/555101/ | 16:40 |
| arigato | fijal: we could, but it's a bit of a mess at various places | 16:40 |
| fijal | for some definition of "next to" | 16:40 |
| fijal | arigato: I was more thinking about some heuristic that looks at it while running tests | 16:40 |
| fijal | arigato: like check types of your locals or so | 16:40 |
| arigato | ah, right | 16:40 |
| arigato | makes sense | 16:40 |
| Alex_Gaynor | Rhy0lite: ah, so like a real makefile | 16:41 |
| fijal | I remember you and I deciding to not do reordering | 16:41 |
| fijal | ebo^: I wrote a lot of micronumpy | 16:41 |
| Rhy0lite | Alex_Gaynor: yes. and then at the top-level I have: http://paste.pocoo.org/show/555102/ | 16:42 |
| Rhy0lite | you guys may have all of those options burned into your brains, but not everyone does | 16:43 |
| fijal | arigato, Alex_Gaynor: I'm afraid in order for numpy to be faster, it would need something like copy-paste code specialization | 16:43 |
| ronny | hmm, is anyone here involved wih Rpythonic? | 16:43 |
| fijal | for say 1D arrays etc. | 16:43 |
| fijal | stuff we get for free due to the jit | 16:43 |
| Alex_Gaynor | fijal: eh, why? | 16:43 |
| Action: arigato adds: basically int->int, float->float, list/dict/str/unicode->ref; and things that look like instances ->ref; and everything else, ->no clue | 16:43 | |
| fijal | well, not 100%, but almost for free | 16:43 |
| Alex_Gaynor | fijal: oh, upstream numpy | 16:43 |
| Alex_Gaynor | fijal: I thought you were saying *we* needed copy-paste | 16:44 |
| fijal | Alex_Gaynor: no | 16:44 |
| fijal | Alex_Gaynor: we have robots to do that | 16:44 |
| Alex_Gaynor | fijal: yes, we have quite good robots | 16:44 |
| Alex_Gaynor | fijal, Rhy0lite: Up to stage 3 of gcc compilation | 16:45 |
| Rhy0lite | yea! | 16:45 |
| Rhy0lite | Alex_Gaynor: This will be okay to play with. | 16:45 |
| Rhy0lite | Most people doing development with GCC use static versions of the libraries | 16:45 |
| Rhy0lite | to avoid exactly these shared library and versioning issues | 16:45 |
| fijal | Alex_Gaynor: the thing is as the things gets more complex is harder and harder for C code to keep up | 16:45 |
| fijal | because 2D is annoying | 16:46 |
| fijal | you need to delegate stuff to functions and it becomes harder | 16:46 |
| Alex_Gaynor | fijal: Yes, I know why I program Python and why we have a JIT ;) | 16:46 |
| shiftingcontrol (~kracekuma@115.241.59.83) joined #pypy. | 16:46 | |
| Rhy0lite | fijal: it's a balance | 16:46 |
| Rhy0lite | A JIT knows more about the dynamic behavior of the application | 16:46 |
| fijal | Rhy0lite: I mean less JIT and more C vs python | 16:46 |
| Rhy0lite | but it generally is not considered to have enough time for really expensive optimizations | 16:46 |
| fijal | or more | 16:47 |
| xcombelle (~chatzilla@AToulouse-551-1-71-6.w92-146.abo.wanadoo.fr) joined #pypy. | 16:47 | |
| harrison (~quassel@li89-226.members.linode.com) left irc: Quit: http://quassel-irc.org - Chat comfortably. Anywhere. | 16:47 | |
| fijal | hand writing code vs expressing high level concepts | 16:47 |
| Alex_Gaynor | Rhy0lite: well, someday we'll be able to just stick the expensive ones in a background thread I guess | 16:47 |
| harrison (~quassel@li89-226.members.linode.com) joined #pypy. | 16:47 | |
| fijal | simple stuff is easier to get fast in C than complex stuff | 16:47 |
| Rhy0lite | for instance, the numpy code doesn't change | 16:47 |
| Rhy0lite | by that I mean the low-level kernel | 16:47 |
| fijal | because you either sacrifice performance or leak abstractions all over the place | 16:47 |
| Alex_Gaynor | fijal: BTW, are you seeing Jeremy Siek while you're in colorado? | 16:47 |
| Rhy0lite | one can compile BLAS with ATLAS once | 16:47 |
| fijal | Alex_Gaynor: yes | 16:47 |
| fijal | Alex_Gaynor: want something from him? | 16:47 |
| Alex_Gaynor | fijal: I guess he's coming to PyCon anyways? | 16:48 |
| Rhy0lite | and if it takes 6 hours to figure out the optimal cache blocking, that's fine | 16:48 |
| fijal | Alex_Gaynor: is he? | 16:48 |
| Alex_Gaynor | fijal: dunno, he has the last few years. I just found out a few years ago he was almost hired at my university | 16:48 |
| Alex_Gaynor | Rhy0lite: if it takes 6 hours my compiler better include a latte machine | 16:48 |
| Rhy0lite | Alex_Gaynor: stage3 generally is fast because it's compiling the compiler with an optimized compiler | 16:48 |
| Rhy0lite | stage1 is compiled by the native "untrusted optimization" compiler | 16:49 |
| Rhy0lite | so stage2 compiler is slow | 16:49 |
| Rhy0lite | Alex_Gaynor: it's 6 hours, but then an installed library on your system for the next 2-5 years | 16:50 |
| Rhy0lite | did your CS professors talk about the cost-benefit of optimization? | 16:50 |
| Alex_Gaynor | No, but I can do the math with the most average of 'em. | 16:50 |
| Rhy0lite | the longer an application runs, the more benefit one gains from increased optimization and compilation time | 16:51 |
| Alex_Gaynor | Yup, but despite our long compilation cycles, I don't think PyPy is cut out for such static things, we change teh world every other day | 16:51 |
| Rhy0lite | fijal: yes, one can use a separate thread | 16:51 |
| fijal (~fijal@128.117.228.167) left irc: Read error: Connection reset by peer | 16:51 | |
| Rhy0lite | oh, well | 16:51 |
| fijal_ (~fijal@helmut.wlclient.ucar.edu) joined #pypy. | 16:52 | |
| Rhy0lite | but PyPy also needs the concept of increasingly aggressive optimization | 16:52 |
| Rhy0lite | for example, IBM JIT has cold, warm, hot, scorching levels | 16:52 |
| Alex_Gaynor | Yes, we're just single tiered ATM. | 16:52 |
| Rhy0lite | not just 994 iterations, let's JIT it | 16:52 |
| fijal_ | we need to do something with our slow interpreter | 16:53 |
| mat^2 (mathias@87.55.0.198) left irc: Ping timeout: 245 seconds | 16:53 | |
| Alex_Gaynor | fijal_: and tracing, has anyone ever investigated having the metatracer be a compiler instead of a VM? | 16:53 |
| Rhy0lite | at ~1000, JIT it warm. at ~10000 JIT is hot. at ~100000 JIT it scorching | 16:53 |
| fijal_ | Alex_Gaynor: well, yes, timeshifter was a compiler | 16:53 |
| fijal_ | Alex_Gaynor: ask armin how manageable it was | 16:53 |
| Alex_Gaynor | fijal_: what the heck was timeshifter? | 16:53 |
| Nick change: fijal_ -> fijal | 16:54 | |
| fijal | arigato: care explaining? | 16:54 |
| Rhy0lite | JITting in an alternative universe / timeline? | 16:54 |
| exarkun | Huh, is the time shifter gone? | 16:54 |
| fijal | exarkun: for years | 16:54 |
| exarkun | shows what I know | 16:54 |
| Rhy0lite | Alex_Gaynor: I think the GCC build is done | 16:55 |
| fijal | that wasn't 6h | 16:55 |
| Alex_Gaynor | Rhy0lite: yeah, it's doing all of java or fortran, I can't tell which | 16:55 |
| Rhy0lite | I didn't think you configured for Java | 16:55 |
| Rhy0lite | Java is painful | 16:55 |
| Alex_Gaynor | And yet I definitely see the words gcj | 16:55 |
| Rhy0lite | ugh | 16:55 |
| Rhy0lite | I thought that was disabled by default | 16:56 |
| ebo^ | ATLAS compile time depends on CPU ... if your CPU is known it's reasonably fast | 16:56 |
| fijal | Alex_Gaynor: did you figure out why you've seen NonVirtual string being copied? | 16:56 |
| Rhy0lite | oh, I see | 16:56 |
| Alex_Gaynor | fijal: I assume it's from JIT logging that isn't even written anywhere, but I didn't look too much | 16:56 |
| Rhy0lite | oops | 16:56 |
| fijal | ebo^: right, it's possible to precache stuff | 16:56 |
| Rhy0lite | I thought that Java was not part of the default languages any more | 16:56 |
| fijal | does anyone actually use gcj? | 16:57 |
| Rhy0lite | yes | 16:57 |
| Rhy0lite | I think there is one user | 16:57 |
| fijal | who? | 16:57 |
| Alex_Gaynor | Haha, that sounds like how we used to talk about pypy. | 16:57 |
| fijal | I suppose it can compete with hotspot with startup times | 16:57 |
| Alex_Gaynor | Now we have at least 3 or 4 users. | 16:57 |
| fijal | Alex_Gaynor: is quora still using pypy? | 16:58 |
| Alex_Gaynor | AFAIK | 16:58 |
| Rhy0lite | I think there was some, important Red Hat package that uses it | 16:59 |
| Rhy0lite | maybe parts of Eclipse? | 16:59 |
| Rhy0lite | or Tomcat and Jakarta libraries? | 16:59 |
| Rhy0lite | there was something | 16:59 |
| Rhy0lite | but extremely small niche | 17:00 |
| dmalcolm | we built eclipse with gcj for a while | 17:00 |
| Rhy0lite | dmalcolm: do you remember who needs gcj? | 17:00 |
| dmalcolm | (due to $HOW_IS_ORACLE_TRYING_TO_SCREW_WITH_US_TODAY ) | 17:01 |
| Rhy0lite | oh | 17:01 |
| dmalcolm | Rhy0lite: not sure | 17:01 |
| Rhy0lite | so purely for entertainment | 17:01 |
| fijal | I hope we'll never get to the point "pypy is used because of politics" | 17:01 |
| Action: Rhy0lite -> lunch | 17:01 | |
| dmalcolm | well, licensing, iirc | 17:01 |
| Rhy0lite | yes | 17:01 |
| Rhy0lite | watching the dance of Oracle, Google, IBM about Java is entertaining | 17:02 |
| dmalcolm | s/entertaining/depressing/ | 17:02 |
| Action: dmalcolm is wondering why folks here are building gcc | 17:03 | |
| Alex_Gaynor | Rhy0lite: err, so it finished, now I `make check && make install` and then it's $HOME/install/bin/gcc? | 17:03 |
| fijal | dmalcolm: I think they're trying to check if gcc got any better with vectorizing our code | 17:05 |
| dmalcolm | ah | 17:05 |
| fijal | dmalcolm: we suffer quite a bit from that | 17:05 |
| dmalcolm | thankss | 17:05 |
| Alex_Gaynor | dmalcolm: you've read our C you know what it looks like :) | 17:05 |
| dmalcolm | yup | 17:05 |
| dmalcolm | I hope to sprint at PyCon at improving it, fwiw | 17:05 |
| Alex_Gaynor | dmalcolm: In what sense? | 17:05 |
| dmalcolm | the old readability patch: embed the RPython source inline as comments, sorting of basic blocks, etc | 17:06 |
| Alex_Gaynor | dmalcolm: So GCC's vectorizer (and problably other optimizations) don't like our C (or at least they used to not like it), GCC trunk in theory fixes this, and I want to check it out | 17:06 |
| dmalcolm | oh, nice | 17:06 |
| dmalcolm | is this in 4.7? | 17:06 |
| dmalcolm | gcc 4.7 that is | 17:06 |
| JaRoel|4d (~jaroel|4d@195-3-178-28.netaffairsdsl.nl) left irc: Read error: Connection reset by peer | 17:06 | |
| Alex_Gaynor | dmalcolm: It was committed on November 5th, I have no idea | 17:07 |
| Alex_Gaynor | the 4.7 release notes don't say when it was released | 17:07 |
| dmalcolm | [my pypy rpm for f17 was built with that, fwiw, but the build flags might not have been right in any case] | 17:07 |
| revolve (~3@cpc11-bagu10-2-0-cust741.1-3.cable.virginmedia.com) left irc: Quit: leaving | 17:08 | |
| G2P (~G2P@fw-asn1.ornis.com) left irc: Quit: Leaving. | 17:09 | |
| Alex_Gaynor | dmalcolm: oh, has gcc 4.7 been released? | 17:09 |
| dmalcolm | no, we're using a prerelease | 17:09 |
| Alex_Gaynor | so you can probably test this, do you have a way to compare against a 1.8 release or something? | 17:10 |
| Alex_Gaynor | a decent test program would be `for i in xrange(1000000): "a" * i` | 17:10 |
| vad (~vad@77.72.196.122) left irc: Remote host closed the connection | 17:11 | |
| cdash004 (~sdf@host-173-230-2-219.vanodod.clients.pavlovmedia.com) joined #pypy. | 17:11 | |
| ebo^ (~ebo@icg1104.icg.kfa-juelich.de) left irc: Quit: Verlassend | 17:12 | |
| dmalcolm | (taking its time) | 17:12 |
| Action: fijal can't stand americans pronouncing spanish names | 17:13 | |
| sunoano (~sa@cpc3-nott15-2-0-cust249.12-2.cable.virginmedia.com) joined #pypy. | 17:13 | |
| sunoano (~sa@cpc3-nott15-2-0-cust249.12-2.cable.virginmedia.com) left irc: Changing host | 17:13 | |
| sunoano (~sa@unaffiliated/sunoano) joined #pypy. | 17:13 | |
| Alex_Gaynor | dmalcolm: you can use a lower iteration count if that's really slow | 17:13 |
| lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) left irc: Ping timeout: 240 seconds | 17:14 | |
| dmalcolm | (I killed it after 2 minutes) | 17:14 |
| dmalcolm | $ time pypy -c 'for i in xrange(100000): "a" * i' | 17:14 |
| dmalcolm | real0m5.529s | 17:14 |
| dmalcolm | user0m5.245s | 17:14 |
| dmalcolm | sys0m0.082s | 17:14 |
| fijal | dmalcolm: cpython or 1.8? | 17:15 |
| dmalcolm | oh bother, old build of pypy; 1.6 sorry | 17:15 |
| Action: dmalcolm upgrades | 17:15 | |
| Alex_Gaynor | dmalcolm: well, it gives us a comparison point | 17:16 |
| dmalcolm | yeah | 17:16 |
| fijal | dmalcolm: I don't think this code changed since pypy 1.6 | 17:16 |
| fijal | actually | 17:16 |
| Alex_Gaynor | fijal: http://paste.pocoo.org/show/555109/ which is based on char_mul is like 12x faster under gcc trunk than tannit's GCC | 17:16 |
| Alex_Gaynor | fijal: the question is if the gcc compilation chnaged | 17:16 |
| Tobu (~Tobu@unaffiliated/tobu) joined #pypy. | 17:17 | |
| mat^2 (mathias@87.55.0.198) joined #pypy. | 17:17 | |
| fijal | Alex_Gaynor: hm | 17:18 |
| dmalcolm | $ time pypy -c 'for i in xrange(100000): "a" * i' | 17:18 |
| dmalcolm | real0m7.017s | 17:18 |
| dmalcolm | user0m6.572s | 17:18 |
| dmalcolm | sys0m0.147s | 17:18 |
| dmalcolm | bother | 17:18 |
| JaRoel|4d (~jaroel|4d@195-3-178-28.netaffairsdsl.nl) joined #pypy. | 17:18 | |
| Alex_Gaynor | it regressed? | 17:18 |
| dmalcolm | looks like it | 17:18 |
| fijal | Alex_Gaynor: dmalcolm uses shadowstack | 17:18 |
| fijal | so it might be it | 17:18 |
| dmalcolm | could be my change of the flags | 17:18 |
| dmalcolm | what fijal said ^^^ | 17:18 |
| Alex_Gaynor | Yes, but if we did this correctly GCC-trunk should be a huge speedup | 17:19 |
| fijal | Alex_Gaynor: do you want my C source files for pypy compilation? | 17:19 |
| fijal | Alex_Gaynor: or I can just compile it using your gcc | 17:19 |
| dmalcolm | it was also with '-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wno-unused' | 17:19 |
| kenaan_ | 12fijal extradoc 11b5d022ba4121 15/talk/sea2012/: hopefully the final version | 17:20 |
| Alex_Gaynor | fijal: feel free to compile using my GCC, you need to do `LD_LIBRARY_PATH=/home/alex/install/lib /home/alex/install/bin/gcc` | 17:20 |
| kenaan_ | 12fijal extradoc 11603e6334bd6c 15/talk/pycon2012/tutorial/emails/01_numpy.rst: merge | 17:20 |
| fijal | dmalcolm: can you please remove the stack protector | 17:20 |
| fijal | it's nonsense | 17:20 |
| fijal | how do I specif CC? | 17:21 |
| fijal | via CC= | 17:21 |
| Alex_Gaynor | to our make file? | 17:22 |
| Alex_Gaynor | no idea | 17:22 |
| fijal | make: /home/alex/install/bin/gcc: Command not found | 17:22 |
| fijal | can you make it readable for me? | 17:22 |
| Alex_Gaynor | how do I make ~/install readable? | 17:22 |
| Action: Alex_Gaynor is a unix moron | 17:23 | |
| fijal | it's of course | 17:23 |
| fijal | ~agaynor | 17:23 |
| fijal | not alex | 17:23 |
| Alex_Gaynor | uh, yeah, that too | 17:23 |
| durin42 | Alex_Gaynor: chmod | 17:23 |
| fijal | works | 17:23 |
| fijal | compiling | 17:24 |
| Alex_Gaynor | cool | 17:25 |
| fijal | dmalcolm: ? | 17:25 |
| fijal | Rhy0lite: how many people work on gcc core? | 17:25 |
| dmalcolm | fijal: probably, but I worry about the flags leaking through to extension modules | 17:26 |
| Alex_Gaynor | fijal: you have a reference pypy rom the same source for comparison? | 17:26 |
| fijal | dmalcolm: I think we don't preserve those anyway | 17:27 |
| fijal | dmalcolm: so why would you bother? | 17:27 |
| fijal | Alex_Gaynor: yeah | 17:27 |
| fijal | dmalcolm: unless I don't know about something | 17:27 |
| fijal | dmalcolm: the fortify as well | 17:29 |
| fijal | man pypy is big | 17:30 |
| serge_sans_paill (~serge@2001:660:7302:e771:21a:4bff:feb7:5b4) left irc: Remote host closed the connection | 17:30 | |
| fijal | yeah... | 17:32 |
| arigato | fijal: fixed, hopefully | 17:32 |
| kenaan_ | 12arigo default 111c381a211cb1 15/pypy/rlib/: Try heuristically to check when running on top of CPython that the arguments of jitdriver.jit_merge_point() have be... | 17:32 |
| fijal | arigato: thank you | 17:32 |
| fijal | arigato: and sorry :) | 17:32 |
| fijal | Alex_Gaynor: of course GCC happily emits new instructions | 17:32 |
| arigato | well it was bound to occur :-) | 17:32 |
| Alex_Gaynor | fijal: ok, better to fix it now then when GCC is release | 17:33 |
| Alex_Gaynor | fijal: what instruction? | 17:33 |
| fijal | arigato: can we just ignore all things that start with 'P'? | 17:33 |
| fijal | majority of those (except push and pop) are packed intrustions | 17:33 |
| Alex_Gaynor | fijal: let's add them one by one, I don't want GC roots can't be found because intel isn't consistant with their prefix | 17:34 |
| fijal | Alex_Gaynor: no, it's just about reading the list | 17:34 |
| arigato | I agree with alex | 17:34 |
| fijal | ok | 17:35 |
| khs (~khs@2001:700:300:2120:725a:b6ff:fee5:a44) left irc: Quit: Leaving | 17:35 | |
| fijal | arigato: there is pusha that we don't consider | 17:35 |
| fijal | at the very least | 17:35 |
| Alex_Gaynor | fijal: I guess it's good that we're getting packed instructions now | 17:35 |
| fijal | :] | 17:35 |
| fijal | Alex_Gaynor: not the kind we want I fear | 17:35 |
| kenaan_ | 12fijal default 115dc82977af96 15/pypy/translator/c/gcc/trackgcroot.py: one more to ignore | 17:36 |
| kenaan_ | 12fijal default 11bd01f89519db 15/pypy/rlib/: merge | 17:36 |
| Alex_Gaynor | fijal: what are we getting? | 17:36 |
| arigato | fijal: "pusha": true, but it's unlikely to be emitted on 32-bit and invalid on 64-bit | 17:37 |
| shiftingcontrol | fijal, have a min ? | 17:37 |
| fijal | shiftingcontrol: ? | 17:37 |
| shiftingcontrol | fijal, regarding Warning: cannot find your CPU L2 cache size in /proc/cpuinfo in sandbox, just doing some analysis I feel sandbox env doesn't have any way to access /proc/cpuinfo | 17:38 |
| fijal | shiftingcontrol: how old is your pypy? | 17:39 |
| shiftingcontrol | fijal, 1,8 | 17:39 |
| fijal | shiftingcontrol: ah we did not update for generation | 17:39 |
| fijal | shiftingcontrol: it does not matter, it's just a warning | 17:39 |
| shiftingcontrol | as well as 1.7 | 17:39 |
| fijal | defaults should be good enough | 17:39 |
| shiftingcontrol | yes It doesn't effect the o/p in anyway | 17:39 |
| shiftingcontrol | *affect | 17:39 |
| fijal | Alex_Gaynor: 3.5x faster | 17:40 |
| Action: arigato changes the default to 4MB too | 17:40 | |
| Alex_Gaynor | fijal: for which? | 17:40 |
| fijal | newly compiled vs old | 17:40 |
| Alex_Gaynor | fijal: no, on what code? | 17:40 |
| fijal | whatever dmalcolm posted | 17:40 |
| kenaan_ | 12fijal default 116fbb1c3a6c85 15/pypy/translator/c/gcc/trackgcroot.py: few more | 17:41 |
| Alex_Gaynor | fijal: ah, `for i in xrange(100000): "a" * 10000` | 17:41 |
| Alex_Gaynor | ? | 17:42 |
| Eventh (~Even@219.162.202.84.customer.cdi.no) joined #pypy. | 17:42 | |
| fijal | Alex_Gaynor: yes | 17:42 |
| fijal | I want some long operation | 17:42 |
| fijal | s | 17:42 |
| Alex_Gaynor | fijal: can you test some program using longs? | 17:42 |
| Alex_Gaynor | fijal: ah, I know a good one, let me find it | 17:43 |
| fijal | whatever I try so far is faster on pypy | 17:43 |
| fijal | but maybe my longs are too small | 17:43 |
| Alex_Gaynor | fijal: pidigits should be good | 17:43 |
| Alex_Gaynor | let me find a pure python version | 17:43 |
| fijal | well good | 17:44 |
| fijal | what do we do | 17:44 |
| fijal | ? | 17:44 |
| fijal | do we advertise using newer GCC? | 17:44 |
| fijal | or do we install GCC on tannit globally? | 17:44 |
| fijal | that would cause even more confusion | 17:44 |
| fijal | "nightly is much faster than a hand-compiled one" | 17:44 |
| arigato | fijal: just use a factorial | 17:44 |
| fijal | it's worth a brief blog post | 17:44 |
| arigato | this creates large longs quickly enough | 17:44 |
| Alex_Gaynor | fijal: let's get a few more examples | 17:44 |
| arigato | fijal: fwiw: translation *still* crashes | 17:45 |
| fijal | arigato: what this time? | 17:46 |
| fijal | arigato: can you please fix it then? | 17:46 |
| fijal | it seems my simple fixes are too hasty | 17:46 |
| arigato | ok | 17:46 |
| fijal | sorry :/ | 17:46 |
| fijal | arigato: is it still some sort of ordering? | 17:47 |
| kenaan_ | 12arigo default 110d3e428250f8 15/pypy/rpython/memory/gc/generation.py: Fix the old 'generation' GC to not use env.estimate_best_nursery_size() any more. | 17:47 |
| otakutomo (~otakutomo@KD027083117212.ppp-bb.dion.ne.jp) left irc: Read error: Connection reset by peer | 17:47 | |
| arigato | no | 17:47 |
| arigato | it's a variable that you forgot to list | 17:47 |
| antocuni (~antocuni@host120-22-dynamic.183-80-r.retail.telecomitalia.it) joined #pypy. | 17:47 | |
| fijal | :/ | 17:47 |
| otakutomo (~otakutomo@27.83.117.212) joined #pypy. | 17:47 | |
| arigato | a bit hard to know which one | 17:48 |
| arigato | maybe you should not use a "for" loop? | 17:48 |
| arigato | it creates hidden variables to keep the state of the iterator | 17:49 |
| fijal | ah | 17:49 |
| fijal | yes | 17:49 |
| fijal | probably | 17:49 |
| fijal | it also has been fixed on a branch | 17:49 |
| fijal | but code is different enough not to be mergeable easily | 17:49 |
| Action: arigato fixes anyway | 17:49 | |
| Alex_Gaynor | fijal: can you test http://paste.pocoo.org/show/555119/ | 17:49 |
| Alex_Gaynor | fijal: ATM it's 6 seconds for CPython vs. 21 for us | 17:50 |
| fijal | what's the argument? | 17:50 |
| fijal | arigato: thank you | 17:50 |
| Alex_Gaynor | fijal: 7500 is what I used | 17:50 |
| fijal | oh | 17:51 |
| fijal | python 2.7 is much faster than 2.6 | 17:51 |
| fijal | cpython | 17:51 |
| fijal | on longs in general | 17:51 |
| Alex_Gaynor | fijal: Yes, I used 2.7 | 17:51 |
| fijal | maybe we should have a look | 17:51 |
| Alex_Gaynor | fijal: yes, but is trunk GCC pypy better on this? | 17:51 |
| fijal | no | 17:52 |
| fijal | not significantly anyway | 17:52 |
| Alex_Gaynor | oh, too bad, I guess our long issue is somethign else | 17:52 |
| arigato | how about clang? | 17:52 |
| arigato | ( :-) ) | 17:52 |
| Alex_Gaynor | FWIW CPython 2.6 is 24 seconds, so maybe we just need 2.7s algorithms | 17:53 |
| mat^2 (mathias@87.55.0.198) left irc: | 17:53 | |
| shiftingcontrol (~kracekuma@115.241.59.83) left irc: Quit: Ex-Chat | 17:54 | |
| fijal | yes | 17:54 |
| fijal | our longs are significantly older than 2.7 | 17:54 |
| Alex_Gaynor | I guess there's no easy fix for us there then. Glad to hear char_mul is faster | 17:55 |
| lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) joined #pypy. | 17:55 | |
| fijal | Alex_Gaynor: well | 17:58 |
| fijal | Alex_Gaynor: "take new better algos" | 17:58 |
| fijal | is a much better fix than "make RPython magically faster" | 17:58 |
| Alex_Gaynor | fijal: more work thoug | 17:58 |
| Alex_Gaynor | Ideally we do both :) | 17:59 |
| arigato | note that there a few minor speedups in our longs, by putting a bit everywhere "assert i >= 0" | 17:59 |
| Rhy0lite | fijal: core GCC is about 5 developers | 18:00 |
| fijal | Rhy0lite: so it's roughly in-line with our manpower? | 18:00 |
| Rhy0lite | by that I mean the main optimizers | 18:00 |
| Rhy0lite | but there are people working on front-ends and libraries | 18:00 |
| fijal | "Experience Applying Fortran GPU Compilers to Numerical Weather Prediction" | 18:01 |
| fijal | sounds like a fun talk | 18:01 |
| fijal | ok | 18:01 |
| fijal | arigato: well that gives us a point of reference | 18:01 |
| fijal | arigato: have you looked what changed between 2.6 and 2.7? | 18:01 |
| Rhy0lite | First, change your makefile replacing xlc with gfortran | 18:01 |
| Rhy0lite | xlf | 18:01 |
| Rhy0lite | fijal: pypy relies on CPython for the common part of the Python library | 18:02 |
| fijal | Rhy0lite: yes, sort of | 18:02 |
| fijal | Rhy0lite: in most part yes, but we took and modified pieces | 18:02 |
| fijal | not very many though\ | 18:02 |
| fijal | why? | 18:02 |
| Rhy0lite | I'm thinking about your question comparing developer manpower | 18:03 |
| Rhy0lite | I would guess it is about the same | 18:03 |
| Alex_Gaynor | I'm amazed GCC is so few people. | 18:03 |
| Rhy0lite | although GCC is more in maintenance mode | 18:03 |
| fijal | we don't maintain the library | 18:03 |
| fijal | we take effort every now and then to optimize it | 18:03 |
| jamesaxl (~jamesaxl@41.248.199.40) left irc: Read error: Connection reset by peer | 18:03 | |
| fijal | but it can be compared to random volunteer effort | 18:03 |
| fijal | rather than long-term maintenance | 18:03 |
| Rhy0lite | Alex_Gaynor: there are some big re-writes that would be nice | 18:04 |
| fijal | Rhy0lite: and how many people work on C/C++ frontend? | 18:04 |
| Rhy0lite | but it generally is good | 18:04 |
| fijal | Rhy0lite: always :) | 18:04 |
| tumbleweed | arigato: Still get "Illegal instruction" | 18:04 |
| jamesaxl (~jamesaxl@41.248.137.155) joined #pypy. | 18:04 | |
| Rhy0lite | in other words, the register allocator, scheduler, auto-vectorizer, high-level loop optimizer already have been contributed | 18:04 |
| fijal | tumbleweed: on what? | 18:04 |
| Rhy0lite | we already have whole-program optimization implemented | 18:04 |
| tumbleweed | fijal: Celeron Coppermine (SSE, no SSE2) | 18:05 |
| Rhy0lite | Alex_Gaynor: the main issues now are things like C11/C++11 support | 18:05 |
| Action: tumbleweed fires up a debugger | 18:05 | |
| Rhy0lite | fijal: C++ changes more than C | 18:05 |
| Rhy0lite | I'm not sure what the plan is for supporting the new C11 lambda expressions | 18:06 |
| Rhy0lite | but there is one person who is the C language lawyer | 18:06 |
| arigato | fijal: I get about 15% speed-up running http://paste.pocoo.org/show/555119/, but I don't know if it's the longs | 18:06 |
| Rhy0lite | 1-2 people who maintain the C++ front-end | 18:06 |
| Eftarjin (~simon@2a01:e35:2e8d:b5f0:ea9d:87ff:fe22:e221) left irc: Ping timeout: 240 seconds | 18:06 | |
| Rhy0lite | probably 2-3 on libstdc++ | 18:06 |
| arigato | fijal: do you have more data showing it's really the longs? | 18:06 |
| fijal | arigato: speedup between what and what? | 18:06 |
| arigato | python2.6 and 2.7 | 18:06 |
| fijal | arigato: yes | 18:07 |
| fijal | arigato: factorial, long addition, long multiplication | 18:07 |
| Rhy0lite | fijal: but there are a number of additional people who help with libstdc++ | 18:07 |
| fijal | it's all cpyhthon 2.7 < pypy 1.8 < cpython 2.6 | 18:07 |
| arigato | fijal: I tried factorial, I didn't get any difference between python2.6 and 2.7 | 18:07 |
| Alex_Gaynor | arigato: did you do it large enough? | 18:07 |
| fijal | arigato: let me get a program | 18:07 |
| arigato | factorial of 40000 | 18:07 |
| Alex_Gaynor | Rhy0lite: in case you didn't see, we've confirmed that `for i in xrange(100000): "a" * i` is 3.5x faster with the new GCC | 18:07 |
| fijal | arigato: try /tmp/xx.py | 18:08 |
| fijal | 12 | 18:08 |
| fijal | is an argument | 18:08 |
| fijal | I get 2x | 18:08 |
| tumbleweed | fijal: => 0x9951bf9 <pypy_g_MiniMarkGC_allocate_nursery+105>: cvtsi2sd %eax,%xmm0 | 18:08 |
| Rhy0lite | fijal: the biggest problem is that Google has hired the majority of GCC developers and develops a lot of patches internally, but does not really take ownership in the GCC community | 18:08 |
| fijal | arigato: on tannit | 18:08 |
| arigato | that's using pow | 18:08 |
| arigato | very different from a factorial | 18:08 |
| fijal | arigato: yes, but I have more than one example :) | 18:08 |
| arigato | fijal: ok, but I'm asking: you said factorial is faster, and I don't see it | 18:09 |
| arigato | so who's wrong? :-) | 18:09 |
| Rhy0lite | Alex_Gaynor: GCC compiling what? I was a little confused by PyPy version numbers and CPython version numbers | 18:09 |
| fijal | arigato: /tmp/yy.py is addition | 18:09 |
| fijal | arigato: the same thing with multiplication | 18:10 |
| Alex_Gaynor | Rhy0lite: sorry, that's compiling pypy-trunk with the GCC trunk vs. gcc 4.4.3 | 18:10 |
| fijal | arigato: maybe not factorial ;-) | 18:10 |
| fijal | arigato: I have a 10h jetlag, I have a good excuse to not make much sense today | 18:10 |
| Alex_Gaynor | Rhy0lite: the resulting pypy binary executes that code 3.5x faster | 18:10 |
| Rhy0lite | cool | 18:10 |
| fijal | arigato: is there enough evidence? ;-) | 18:10 |
| arigato | fijal: on my laptop yy.py runs at exactly the same speed with python 2.6 or 2.7 | 18:11 |
| Rhy0lite | but that's surprising if PyPy should be spending most of its time in JITted code | 18:11 |
| fijal | Alex_Gaynor: you should clarify in the tweet | 18:11 |
| fijal | arigato: but not on tannit | 18:11 |
| fijal | Alex_Gaynor: it's pypy build on gcc | 18:11 |
| fijal | Rhy0lite: not if it spends time in runtime | 18:11 |
| fijal | arigato: I see 2x on tannit | 18:11 |
| arigato | fijal: then I guess it's the difference between a distribution-built and a custom-built cpython? | 18:11 |
| fijal | or almost 2x | 18:11 |
| fijal | arigato: uh | 18:11 |
| Alex_Gaynor | fijal: Can you est to see if https://bugs.pypy.org/issue905 is fixed? | 18:12 |
| fijal | both are built using gcc 4.4.3? | 18:12 |
| Rhy0lite | fijal: my custom builds of CPython are faster. | 18:12 |
| arigato | ah, wait | 18:12 |
| fijal | arigato: I think both are stock | 18:12 |
| Alex_Gaynor | Rhy0lite: str/char mul is part of the runtime | 18:12 |
| Rhy0lite | fijal: I'm surprised that code spends so much time in the runtime | 18:12 |
| Rhy0lite | ah | 18:12 |
| Rhy0lite | okay | 18:12 |
| Rhy0lite | I missed exactly what you were multiplying | 18:12 |
| Alex_Gaynor | Rhy0lite: there's no reason to JIT it, it's the same for every execution :) | 18:12 |
| fijal | Rhy0lite: hard to do better | 18:12 |
| arigato | pffff? | 18:12 |
| fijal | arigato: pffff? | 18:13 |
| WinstonEwert (813ec8ab@gateway/web/freenode/ip.129.62.200.171) joined #pypy. | 18:13 | |
| arigato | fijal: sorry, I messed up. running /tmp/yy.py on my laptop is 2x faster on cpython 2.6 than 2.7 (!!?) | 18:13 |
| fijal | arigato: are you sure? | 18:13 |
| arigato | yes | 18:14 |
| fijal | arigato: I'm sure you have some custom build cpython | 18:14 |
| fijal | say debug mode | 18:14 |
| fijal | or so | 18:14 |
| fijal | Alex_Gaynor: where do I get a zip from? | 18:14 |
| arigato | not installed in /usr/local/bin | 18:14 |
| Alex_Gaynor | fijal: pfff, I don't remember, maybe ake the pypy zip? | 18:14 |
| fijal | I wonder if someone can take over our computers by submitting a python-based virus to the bugtracker with "look this is slow!" | 18:14 |
| CIA-80 | 03stefanor 07roundup * 10#1068/PyPy crashes without SSE2, an error message would be better.: | 18:15 |
| CIA-80 | [chatting] It hits a SSE2 instruction before the check: | 18:15 |
| CIA-80 | => 0x9951bf9 <pypy_g_MiniMarkGC_allocate_nursery+105>: cvtsi2sd %eax,%xmm0 * 14https://bugs.pypy.org/issue1068 | 18:15 |
| Alex_Gaynor | fijal: probably | 18:15 |
| arigato | fijal: on tannit32, python2.7 is a bit slower than 2.6 too | 18:16 |
| Rhy0lite | fijal, Alex_Gaynor: Do you expect the GCC trunk build to have an effect on speed center benchmark results? | 18:16 |
| arigato | on my laptop 32, python2.7 is 2x slower than 2.6 | 18:16 |
| fijal | arigato: 32 vs 64? | 18:16 |
| arigato | now on 64 on my laptop I get speedups | 18:16 |
| fijal | tumbleweed: this is a gcc fault maybe? | 18:16 |
| arigato | doesn't make much sense..? | 18:16 |
| Alex_Gaynor | Rhy0lite: not sure yet, I'm a bit doubtful, but I'd like to see if https://bugs.pypy.org/issue905 is affected first | 18:16 |
| kenaan_ | 12arigo default 1175870d03aa4f 15/pypy/module/micronumpy/interp_support.py: Can't use a "for" loop around a jit_merge_point. | 18:18 |
| fijal | Alex_Gaynor: it's ~15% faster | 18:18 |
| Alex_Gaynor | fijal: statistically significant? | 18:19 |
| fijal | but cpython is 2x | 18:19 |
| fijal | tumbleweed: you can't help it, you need to feed gcc with options | 18:19 |
| WinstonEwert (813ec8ab@gateway/web/freenode/ip.129.62.200.171) left irc: Ping timeout: 245 seconds | 18:19 | |
| tumbleweed | fijal: I'm thinking that, yes | 18:19 |
| fijal | Alex_Gaynor: can we close the gcc bug? | 18:20 |
| fijal | and our bug as well | 18:20 |
| tumbleweed | fijal: but if the check could be done in really early startup, then we're ok | 18:20 |
| Alex_Gaynor | fijal: the GCC bug was marked as fixed, we don't have any other bugs in our tracker | 18:20 |
| Alex_Gaynor | fijal: and 15% isnt' enough to close the zip one, IMO | 18:20 |
| fijal | tumbleweed: you don't knwo | 18:20 |
| fijal | Alex_Gaynor: no | 18:20 |
| Alex_Gaynor | fijal: leave a comment there though | 18:20 |
| Alex_Gaynor | ? | 18:21 |
| fijal | tumbleweed: we'll be better than any other C program | 18:21 |
| CIA-80 | 03fijal 07roundup * 10#905/ZipFile.extractall is very slow compared to CPython 2.6: | 18:21 |
| CIA-80 | That's not the mentioned GCC bug. It might still be some problem with | 18:21 |
| CIA-80 | vectorization on the GCC side, but we don't know yet :) * 14https://bugs.pypy.org/issue905 | 18:21 |
| tumbleweed | fijal: telling the compiler not to use SSE2 instructions just so we can print a warning and abort seems crazy :) | 18:22 |
| fijal | tumbleweed: but you have to do it for every C program anyway | 18:23 |
| fijal | tumbleweed: pypy is not special | 18:23 |
| CIA-80 | 03arigo 07roundup * 10#1068/PyPy crashes without SSE2, an error message would be better.: | 18:23 |
| CIA-80 | Pff. I forgot that it's also compiled with the gcc option "use SSE2". I just | 18:23 |
| CIA-80 | put the check in the startup of the JIT. * 14https://bugs.pypy.org/issue1068 | 18:23 |
| fijal | ok | 18:23 |
| fijal | "haha" | 18:23 |
| fijal | I guess | 18:23 |
| Rhy0lite | I think the x86_64 ABI requires SSE | 18:24 |
| tumbleweed | all known amd64 processors have SSE2 | 18:24 |
| Rhy0lite | IA-32, okay | 18:24 |
| Rhy0lite | but this is why Intel is developing its new x64 ABI | 18:24 |
| tumbleweed | IA-32, you're lucky to have cmov... | 18:24 |
| fijal | tumbleweed: well, you can run IA-32 programs on 64bit just fine | 18:25 |
| fijal | and you save money on RAM | 18:25 |
| Rhy0lite | 8080A, one was lucky to have AH | 18:25 |
| tumbleweed | fijal: are you arguing that pypy should distribute 32 bit builds using SSE2? I'm fine with that | 18:26 |
| tumbleweed | although I should be supporting whatever minimum Debian supports, which is atm i486. Tough for me. | 18:27 |
| fijal | tumbleweed: I mean that if you build pypy without SSE it's unusable for everything that has floats | 18:27 |
| fijal | tumbleweed: it would be a serious hit for people | 18:28 |
| fijal | you can do something like pypy-no-sse or so | 18:28 |
| tumbleweed | sure, but the alternative is to completely fail on supported hardware | 18:28 |
| fijal | "fail" as in report the error and exit? | 18:28 |
| fijal | or fail as in crash with illegal instruction? | 18:28 |
| tumbleweed | the latter, it appears | 18:28 |
| fijal | ok | 18:29 |
| fijal | so we'll upgrade to the former | 18:29 |
| fijal | armin is doing that | 18:29 |
| fijal | is it any good? | 18:29 |
| tumbleweed | I'm still obliged by policy to build for the lowest common denominator | 18:29 |
| fijal | tumbleweed: then you might as well not build pypy at all | 18:29 |
| tumbleweed | lots of multimedia packages have run-time SSE2 checks | 18:29 |
| fijal | tumbleweed: seriously, it'll lead to confusion | 18:29 |
| tumbleweed | but they probably have the SSE2 bits in hand-assembler to one corner of the app | 18:30 |
| tumbleweed | so it's more straight-forward to enable it on the fly... | 18:30 |
| fijal | yes, definitely | 18:30 |
| tumbleweed | ok, you are arguing strongly enough that I'm happy to leave SSE2 enabled and wait for someone to file a rude bug | 18:31 |
| fijal | tumbleweed: seriously, I think having a clear warning and exit is good | 18:32 |
| fijal | but also consider just having pypy-no-sse package | 18:32 |
| tumbleweed | yes, that'd be lovely | 18:32 |
| LarstiQ | tumbleweed: I think the warning will be fine enough | 18:32 |
| fijal | LarstiQ: it's warning & abort() | 18:33 |
| LarstiQ | fijal: sorry, that's what I meant | 18:34 |
| LarstiQ | fijal: as long as it doesn't crash mysteriously | 18:34 |
| tumbleweed | fijal: I don't think pypy-no-sse is a real option, I'd probably be better off including both builds and picking the right one at startup with a shell script. But that'll increase build time by *another* 30%, so I can wait for a rude bug | 18:35 |
| lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) left irc: Quit: Leaving | 18:39 | |
| lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) joined #pypy. | 18:39 | |
| stakkars (~tismer@p5DDB6A94.dip.t-dialin.net) joined #pypy. | 18:42 | |
| dmalcolm (david@nat/redhat/x-iviwvuncdvkemzel) left irc: Ping timeout: 252 seconds | 18:52 | |
| pybot joined #pypy. | 19:00 | |
| -ChanServ (ChanServ@services.)- [#pypy] Welcome! | 19:00 | |
| bivab (~bivab@ip-62-143-59-5.unitymediagroup.de) joined #pypy. | 19:00 | |
| -ChanServ (ChanServ@services.)- [#stackless] Welcome to #stackless. This channel is for the discussion of matters relating to Stackless Python. Remember that others in this channel may not be in the same timezone as you, so stick around for an answer (even if only in your channel history) if you ask a question. The mailing list is also recommended as being a faster place to get help (http://www.stackless.com/mailman/listinfo/stackless). | 19:01 | |
| tito (~tito@pdpc/supporter/active/tito) left irc: Ping timeout: 260 seconds | 19:03 | |
| kenaan_ | 12alex_gaynor default 1137fb24cc3dde 15/pypy/module/micronumpy/: Fix indexing with numpy boxes. Also remove a long dead test. | 19:05 |
| nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) left irc: Ping timeout: 240 seconds | 19:07 | |
| xcombelle (~chatzilla@AToulouse-551-1-71-6.w92-146.abo.wanadoo.fr) left irc: Ping timeout: 240 seconds | 19:08 | |
| dracman (~draco@212.255.30.147) joined #pypy. | 19:08 | |
| nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) joined #pypy. | 19:09 | |
| lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) left irc: Ping timeout: 245 seconds | 19:11 | |
| fijal (~fijal@helmut.wlclient.ucar.edu) left irc: Read error: Operation timed out | 19:17 | |
| arigato | fijal (when you're back): | 19:17 |
| arigato | "looped" and "5+" are quite unclear imo in your slides | 19:17 |
| arigato | and also, ``a+b*c`` is as fast as a loop => ``a+b*c`` is done with only one loop | 19:18 |
| voidspac_ (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 19:20 | |
| xcombelle (~chatzilla@AToulouse-551-1-71-6.w92-146.abo.wanadoo.fr) joined #pypy. | 19:28 | |
| dmalcolm (david@nat/redhat/x-kckxdjztdstaojdy) joined #pypy. | 19:29 | |
| leo2007 (~leo@222.130.136.192) left irc: Quit: rcirc on GNU Emacs 23.4.1 | 19:38 | |
| bivab (~bivab@ip-62-143-59-5.unitymediagroup.de) left irc: Remote host closed the connection | 19:41 | |
| Eventh (Even@219.162.202.84.customer.cdi.no) left #pypy. | 19:41 | |
| ihnorton (aadfcf19@gateway/web/freenode/ip.170.223.207.25) joined #pypy. | 19:46 | |
| voidspac_ (~voidspace@87-194-212-65.bethere.co.uk) left irc: Quit: Goodbye... | 19:47 | |
| asmeurer (~asmeurer@dhcp-altamirano-166.resnet.nmt.edu) joined #pypy. | 20:04 | |
| stakkars_ (~tismer@p5DDB6A94.dip.t-dialin.net) joined #pypy. | 20:05 | |
| stakkars (~tismer@p5DDB6A94.dip.t-dialin.net) left irc: Read error: Connection reset by peer | 20:05 | |
| Nick change: stakkars_ -> stakkars | 20:05 | |
| ssutch (~textual@173.228.114.189) joined #pypy. | 20:05 | |
| berdario (~Tiibiidii@host243-85-dynamic.0-87-r.retail.telecomitalia.it) left irc: Quit: Ex-Chat | 20:09 | |
| amaury_ (~amaury_@46-127-23-192.dynamic.hispeed.ch) joined #pypy. | 20:11 | |
| PiotrSikora (~none@nginx/adept/piotrsikora) left irc: Excess Flood | 20:14 | |
| fijal (~fijal@helmut.wlclient.ucar.edu) joined #pypy. | 20:14 | |
| weirdo | tumbleweed, i don't care about build speed on win32-jit, you can run it for sure if you want :) | 20:15 |
| PiotrSikora (~none@nginx/adept/piotrsikora) joined #pypy. | 20:15 | |
| weirdo | unless other builders care... | 20:15 |
| tumbleweed | weirdo: hrm? I was talking about Debian, not the builds pypy distributes | 20:17 |
| xcombelle (~chatzilla@AToulouse-551-1-71-6.w92-146.abo.wanadoo.fr) left irc: Quit: ChatZilla 0.9.88 [Firefox 10.0.2/20120215223356] | 20:18 | |
| weirdo | ok | 20:19 |
| kenaan_ | 12amauryfa sepcomp2 11410f58726ea8 15/pypy/translator/c/exportinfo.py: Extract information from the first rtyper, but don't use it to build the import module. | 20:19 |
| kenaan_ | 12amauryfa sepcomp2 11d772c8bbd652 15/pypy/translator/c/: Make better use of controller: no need to access the class through the 'Module', the one accessible through RPy... | 20:19 |
| kenaan_ | 12amauryfa sepcomp2 111516c6c5964a 15/pypy/translator/c/: Refactor and create a FunctionExportInfo similar to the ClassExportInfo. These classes have methods for the dif... | 20:19 |
| kenaan_ | 12amauryfa sepcomp2 118c0e4f28c231 15/pypy/translator/c/: No need to call functions and classes through the "import module", the original RPython objects are correctly a... | 20:19 |
| JaRoel (~jaroel|4d@109.37.210.3) joined #pypy. | 20:27 | |
| tito (~tito@178.73.217.233) joined #pypy. | 20:30 | |
| tito (~tito@178.73.217.233) left irc: Changing host | 20:30 | |
| tito (~tito@pdpc/supporter/active/tito) joined #pypy. | 20:30 | |
| JaRoel|4d (~jaroel|4d@195-3-178-28.netaffairsdsl.nl) left irc: Ping timeout: 240 seconds | 20:30 | |
| pjdelport (~pjdelport@c-69-251-199-136.hsd1.md.comcast.net) left irc: Remote host closed the connection | 20:34 | |
| hruske (~Gasper@188-230-156-183.dynamic.t-2.net) left irc: Quit: Leaving | 20:35 | |
| leo2007 (~leo@222.130.135.22) joined #pypy. | 20:42 | |
| fijal | done with talking | 20:52 |
| antocuni (~antocuni@host120-22-dynamic.183-80-r.retail.telecomitalia.it) left irc: Ping timeout: 265 seconds | 20:53 | |
| Rhy0lite (dje@nat/ibm/x-uhizrumasentjrga) left irc: Quit: Leaving | 20:54 | |
| ronny | amaury_: what exactly is seccomp supposed to do? | 20:55 |
| ronny | eh sepcomp | 20:55 |
| amaury_ | separate, not secure :-) | 20:55 |
| fijal | ronny: separate compilation | 20:55 |
| ronny | i guess what i meant so say waht will be the mechanism for it | 20:56 |
| fijal | ronny: magic goo | 20:56 |
| amaury_ | the translation of RPython functions generate C functions | 20:57 |
| fijal | ronny: there is a plan in extradoc | 20:57 |
| amaury_ | we record this info | 20:57 |
| amaury_ | and call these C functions from another translation | 20:57 |
| ronny | i see | 20:58 |
| ronny | so its kind of a api bondary with metadata? | 20:58 |
| fijal | amaury_: it's great you're working on it btw | 20:58 |
| amaury_ | actually what I submitted so far | 20:59 |
| amaury_ | was written one year ago | 20:59 |
| ronny | amaury_: how are those boundaries declared? | 20:59 |
| amaury_ | for the moment, I mark those functions with @export | 21:00 |
| fijal | amaury_: btw | 21:00 |
| fijal | amaury_: I wonder if I can use your work to do something | 21:00 |
| amaury_ | a signature is not necessary, if the function is used somewhere else in the interpreter | 21:00 |
| ronny | i see, seems sensible | 21:00 |
| fijal | amaury_: wouldn't it be cool to be able to specify types? | 21:00 |
| amaury_ | it is possible to specify types | 21:01 |
| fijal | well, no | 21:01 |
| amaury_ | see the tests :-) | 21:01 |
| fijal | it's possible to specify "some" types | 21:01 |
| amaury_ | actually, the annotator does everything | 21:01 |
| fijal | yes | 21:01 |
| amaury_ | when you specify types, I just annotate the function once mre | 21:01 |
| fijal | I want a more careful specification | 21:02 |
| fijal | like | 21:02 |
| fijal | "type of this class with those attributes" | 21:02 |
| amaury_ | I don't understand | 21:02 |
| amaury_ | are you describing a function signature? | 21:02 |
| amaury_ | or one argument? | 21:02 |
| amaury_ | or is it the list of functions to export? | 21:02 |
| fijal | one argument | 21:02 |
| amaury_ | why "with those attributes?" | 21:03 |
| amaury_ | the function is certainly already annotated with W_Root or similar | 21:03 |
| fijal | I mean I want a general way in pypy to give types to stuff | 21:04 |
| amaury_ | you can do that for function arguments | 21:04 |
| amaury_ | with _ensure_args_ or something like that | 21:05 |
| ronny | fijal: so you bascially want detailed declarations for specifications of certain instances of a rtpytohn class? | 21:05 |
| amaury_ | _annenforceargs_ | 21:05 |
| fijal | amaury_: yes | 21:05 |
| fijal | amaury_: but you can only do simple args | 21:05 |
| fijal | amaury_: like "everything that does not require bookkeeper" | 21:05 |
| fijal | I cannot specify a non-resizable list for example | 21:06 |
| fijal | or a function signature | 21:06 |
| amaury_ | I'd put an assert at the beginning of the function | 21:06 |
| fijal | that's usually not good enough | 21:07 |
| fijal | we have make_sure_not_resized and stuff | 21:07 |
| fijal | but it's very annoying to use | 21:07 |
| amaury_ | what I do here is a bit different | 21:08 |
| amaury_ | I let the first translation work normally | 21:08 |
| fijal | well ok | 21:08 |
| fijal | I'm trying to sneak stuff in :) | 21:09 |
| fijal | maybe you actually want to solve an easier problem | 21:09 |
| fijal | which would be of *defined* types | 21:09 |
| leo2007 (~leo@222.130.135.22) left irc: Quit: rcirc on GNU Emacs 23.4.1 | 21:09 | |
| fijal | I'm fine with providing types for the entire stdobjspace | 21:09 |
| amaury_ | then, for the second translation, I install controllers and ExtFuncEntry | 21:09 |
| amaury_ | fijal: I hope it won't be necessary | 21:09 |
| pjdelport (~pjdelport@c-69-251-199-136.hsd1.md.comcast.net) joined #pypy. | 21:09 | |
| fijal | amaury_: maybe it's actually a good idea :) | 21:10 |
| gehho2 (~gehho2@ZO060191.ppp.dion.ne.jp) left irc: Ping timeout: 276 seconds | 21:10 | |
| amaury_ | to add types to *every* rpython function? | 21:10 |
| fijal | no | 21:10 |
| fijal | to every function on stdobjspace | 21:10 |
| fijal | official "API" | 21:10 |
| amaury_ | but even this is not strictly necessary | 21:11 |
| fijal | maybe we should make it strictly necessary | 21:11 |
| amaury_ | or we could have heuristics for "sane" signatures of exported functions | 21:16 |
| Razz | Is there a paper that really explains the automatic generation of a JIT compiler in PyPy? It's mentioned several times but I've yet to find the details. | 21:16 |
| fijal | Razz: yes | 21:16 |
| fijal | Razz: have you read the metainterpreter paper? | 21:17 |
| fijal | http://dl.acm.org/citation.cfm?id=1565827 | 21:17 |
| fijal | you can find pdf online | 21:17 |
| fijal | http://codespeak.net/svn/pypy/extradoc/talk/icooolps2009/bolz-tracing-jit-final.pdf | 21:17 |
| fijal | one of them | 21:17 |
| dmalcolm (david@nat/redhat/x-kckxdjztdstaojdy) left irc: Quit: Leaving | 21:20 | |
| Razz | fijal: thx | 21:24 |
| fijal | http://ctuning.org/wiki/index.php?title=CTools:CTuningCC | 21:26 |
| Razz | actually, I've read that paper and as far as I've understood it, it does not actually explain the *generation* of a JIT just the hints used in PyPy and it mentions partial evaluation several times without going into detail ... | 21:26 |
| fijal | Razz: ok | 21:27 |
| fijal | Razz: feel free to ask questions here :) | 21:27 |
| Razz | fijal: ok, thx | 21:27 |
| fijal | http://doc.pypy.org/en/latest/jit/index.html | 21:27 |
| fijal | this might be some help? | 21:27 |
| Razz | I guess what I'm most curious about is how does PyPy actually generate the JIT? | 21:27 |
| fijal | but it's definitely incomplete | 21:27 |
| fijal | code is in jit/codewriter | 21:27 |
| fijal | that generates some sort of IR | 21:28 |
| fijal | that gets later interpreted by jit/metainterp | 21:28 |
| fijal | Razz: I don't think there is a precise paper you're looking for | 21:28 |
| Razz | ok, cool I'll have a browse through the code then, thx | 21:28 |
| fijal | Razz: but do you know how pypy compiles RPython? | 21:28 |
| fijal | there should be a paper about it | 21:28 |
| Razz | I think I just started reading that one or at least about RPython | 21:29 |
| fijal | Razz: ok | 21:29 |
| JaRoel|4d (~jaroel|4d@109.37.210.3) joined #pypy. | 21:29 | |
| fijal | Razz: so essentially in 5s RPython is: Python source code -> Python objects after importing -> flow graphs -> low level flow graphs -> C | 21:29 |
| fijal | JIT generator takes low level flow graphs and converts them to some other representation (a pretty braid-dead transformation) | 21:30 |
| fijal | then there is a piece that interprets this IR | 21:30 |
| Razz | So it would seem the interpreter is altered to not evaluate but to generate code I guesS? | 21:30 |
| fijal | Razz: at the very-high-level, it's just taking flow graphs of interpreter transformed to low level and interprets them | 21:30 |
| Razz | right | 21:31 |
| fijal | I can answer yes or no depending on what you exactly mean :) | 21:31 |
| Razz | Well, it says the interpreter is converted into a JIT, that would mean that instead of evaluating it's program it has to generate code either in RPython again or as PyPy seems to do to assembly and then it is passed to an assembler for executable code generation | 21:32 |
| fijal | right | 21:32 |
| fijal | but it's done automatically | 21:32 |
| JaRoel (~jaroel|4d@109.37.210.3) left irc: Ping timeout: 244 seconds | 21:32 | |
| Razz | So, if I write a simple interpreter it is both translated to C and into a low-level IR the latter of which is altered to become the JIT, is that about right? | 21:33 |
| fijal | yes, that's 100% correct | 21:33 |
| fijal | it's not altered to become the JIT though | 21:33 |
| fijal | it's just meta-interpreted by another layer | 21:33 |
| Razz | Ok, so the interpreter code is interpreted by an RPython or Low-level-representation interpreter | 21:34 |
| fijal | interpreter code is either compiled to C | 21:34 |
| fijal | or compiled to the IR that's later interpeted by another interpreter | 21:34 |
| Razz | And that low-level-representation interpreter then does the actual JIT-ing | 21:34 |
| fijal | only one branch is interpreted the other is compiled | 21:35 |
| Razz | right | 21:35 |
| fijal | right | 21:35 |
| fijal | I can point you to places in code | 21:35 |
| Razz | So, the actual JIT code is static and is in fact what you mean by 'tracing the Meta-Level' I guess? | 21:35 |
| Razz | fijal: that would be appreciated :-) | 21:35 |
| fijal | Razz: right | 21:36 |
| fijal | Razz: so the thing you win is essentially that you have to write a JIT for a much simpler language than Python | 21:36 |
| fijal | Razz: it's pypy/jit/metainterp/pyjitpl.py where the actual interpreter is used | 21:37 |
| fijal | Alex_Gaynor: I have a crazy idea | 21:37 |
| Razz | So, you wrote a tracing JIT for that low-level representation which makes it applicable to any interpreter you write in RPython, cool | 21:37 |
| fijal | precisely :) | 21:38 |
| fijal | you can also look at it like that | 21:38 |
| fijal | you write an interpreter in RPython which is then translated to a simpler language | 21:38 |
| fijal | and that simpler language has a tracing JIT | 21:38 |
| fijal | now we took a lot of effort to remove a lot of abstraction layers | 21:39 |
| Razz | although that does make the term 'generate' a bit more complex, it is a JIT that is static which operates on a low-level description of the interpreter right? | 21:39 |
| fijal | right | 21:39 |
| Razz | I.e. the JIT code does not change from interpreter to interpreter | 21:40 |
| fijal | if we change the interpreter to a compiler it would be more true | 21:40 |
| fijal | yes, right | 21:40 |
| fijal | Razz: the really cool thing would be to not bother and apply the JIT back to itself | 21:40 |
| Razz | That's pretty much everything I was unsure about, nice, thx | 21:40 |
| Razz | I thought it might actually be interesting to really generate a JIT following the 'specializer projections' i.e. a generalization of the futamura projections in partial evaluation | 21:41 |
| fijal | that's probably doable | 21:41 |
| fijal | and not that hard | 21:42 |
| fijal | it's just a bit more effort | 21:42 |
| Razz | Then you would get a JIT for your program or you could follow along the same lines and generate a JIT for the interpreter | 21:42 |
| Razz | how is it more effort? | 21:42 |
| fijal | if you just do JITting not more effort | 21:42 |
| Razz | I'm trying to find a MSc project, hence the questions btw :-) | 21:43 |
| Razz | MSc thesis* project | 21:43 |
| fijal | ok | 21:43 |
| Razz | And I think the actual generation of a JIT might be an interesting approach and also make it comparable to what the PyPy project does | 21:44 |
| Razz | i.e. generation by partial evaluation | 21:44 |
| JaRoel|4d (~jaroel|4d@109.37.210.3) left irc: Remote host closed the connection | 21:45 | |
| JaRoel|4d (~jaroel|4d@195-3-178-28.netaffairsdsl.nl) joined #pypy. | 21:46 | |
| fijal | Razz: yes, although it's work | 21:49 |
| Razz | Indeed, but I do have a partial evaluator at hand that works as far as I can tell ;-) although it's a partial evaluator for C, so the implementation effor would be high | 21:50 |
| fijal | Razz: I don't think you can compare anything unless you implement stuff directly in pypy | 21:51 |
| fijal | becasue it'll be apples to oranges | 21:51 |
| fijal | arigato: ping? | 21:52 |
| arigato | pong? | 21:52 |
| Razz | ofc, that would indeed be useless unless I follow the same path as pypy, which would be rather redundant | 21:52 |
| fijal | arigato: how hard would it be to have jit-in-jit? | 21:53 |
| fijal | to jit the pyjitpl loop to be precise | 21:53 |
| fijal | I see it would require some reshuffling | 21:53 |
| arigato | I think it doesn't work, but you can think about statically compiling something | 21:53 |
| fijal | arigato: why it does not work? | 21:53 |
| fijal | Razz: well, I guess I'm suggesting doing something like this in pypy | 21:54 |
| fijal | Razz: using current stuff | 21:54 |
| arigato | using a tracing jit to speed up a tracing jit itself does not work, AFAICT | 21:54 |
| fijal | why? | 21:54 |
| arigato | the tracing jit is an interpreter itself, ok, but it's only doing one iteration | 21:54 |
| fijal | I guess something more boring like statically compiling in codewriter would be better indeed | 21:55 |
| arigato | yes | 21:55 |
| fijal | I'll give it a go | 21:56 |
| arigato | I can think that the best approach would be to statically compile a small fraction of all jitcodes | 21:56 |
| fijal | I guess the simplest thing is to do something stupid | 21:56 |
| fijal | yes | 21:56 |
| arigato | not all of them | 21:56 |
| fijal | because all of them would make our executable size ~100M | 21:56 |
| fijal | probably | 21:56 |
| Action: fijal -> break | 21:57 | |
| arigato | also, don't be too enthusiastic --- it's not easy :-) | 21:57 |
| ronny | do they have to be shipped in the same file? | 21:57 |
| fijal | the simple thing is relatively easy | 21:57 |
| fijal | but also quite a bit boring | 21:57 |
| arigato | no | 21:57 |
| fijal | that is to emit RPython code | 21:57 |
| fijal | no? | 21:57 |
| arigato | it's a mess | 21:58 |
| fijal | why? | 21:58 |
| arigato | guards need to enumerate live variables for example | 21:58 |
| arigato | also you'd need a version for blackholing | 21:58 |
| arigato | you need to force some inlining carefully, too | 21:59 |
| arigato | to statically malloc-remove some of the ConstXxx | 22:00 |
| arigato | for the manipulations that start with green variables | 22:00 |
| fijal (~fijal@helmut.wlclient.ucar.edu) left irc: Ping timeout: 248 seconds | 22:03 | |
| ihnorton (aadfcf19@gateway/web/freenode/ip.170.223.207.25) left #pypy. | 22:03 | |
| nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) left irc: Ping timeout: 240 seconds | 22:03 | |
| aboudreault (~alanb@osgeo/member/aboudreault) left irc: Ping timeout: 260 seconds | 22:05 | |
| bugsbunnyak (aadfcf19@gateway/web/freenode/ip.170.223.207.25) joined #pypy. | 22:10 | |
| arigato (~arigo@adsl-84-227-45-39.adslplus.ch) left irc: Quit: See you | 22:10 | |
| lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) joined #pypy. | 22:10 | |
| kenaan_ | 12amauryfa sepcomp2 11094c275fd0b4 15/pypy/translator/c/: Implement attribute access | 22:24 |
| thurloat_ (~thurloat@blk-11-127-105.eastlink.ca) joined #pypy. | 22:24 | |
| kenaan_ | 12amauryfa sepcomp2 11cdad5637ce91 15/pypy/translator/c/: Implement method calls across dll boundaries | 22:24 |
| kenaan_ | 12amauryfa sepcomp2 118f7ccec230cd 15/pypy/translator/c/: clean whitespace | 22:24 |
| kenaan_ | 12amauryfa sepcomp2 113ac122eefc54 15/: hg merge default | 22:24 |
| thurloat (~thurloat@blk-11-127-105.eastlink.ca) left irc: Ping timeout: 244 seconds | 22:25 | |
| Nick change: thurloat_ -> thurloat | 22:25 | |
| kenaan_ | 12alex_gaynor extradoc 11ed3ea5c4cb3f 15/planning/: Rename this to .rst | 22:26 |
| fprimex (~fprimex@fl-67-233-144-239.dhcp.embarqhsd.net) left irc: Quit: later | 22:26 | |
| fijal (~fijal@helmut.wlclient.ucar.edu) joined #pypy. | 22:30 | |
| fijal (~fijal@helmut.wlclient.ucar.edu) left irc: Read error: Connection reset by peer | 22:31 | |
| fijal (~fijal@helmut.wlclient.ucar.edu) joined #pypy. | 22:31 | |
| Alex_Gaynor | fijal: pong | 22:32 |
| amaury_ | Looks like cpyext is not far from passing most Cython tests | 22:37 |
| Alex_Gaynor | Cool | 22:37 |
| amaury_ | If someone wants to implement the remaining functions, be my guest | 22:38 |
| fijal | Alex_Gaynor: I was discussing jit-in-jit with armin | 22:39 |
| Alex_Gaynor | fijal: what does that mean? | 22:39 |
| fijal | Alex_Gaynor: to jit pyjitpl.py | 22:46 |
| fijal | or statically compiel it | 22:46 |
| fijal | or something | 22:46 |
| Alex_Gaynor | fijal: basically a version of functions specialized with recording each op, or something else? | 22:47 |
| fijal | Alex_Gaynor: to compile say pypy interpreter loop to an RPython function that does the jiting | 22:47 |
| fijal | to avoid overhead of interpreting in pyjitpl.py | 22:47 |
| Alex_Gaynor | Ok so for tests or something you're saying? | 22:48 |
| Alex_Gaynor | This isn't about a normal pypy binary | 22:48 |
| fijal | yes it is | 22:50 |
| fijal | to speed up jitting itself | 22:50 |
| Alex_Gaynor | JITing the JIT gives me a headache | 22:50 |
| fijal | well | 22:51 |
| fijal | maybe we can somehow change the interpreter that we have in pyjitpl.py | 22:51 |
| fijal | into a compiler | 22:51 |
| Alex_Gaynor | that makes more sense ot me, but I guess you said that's what the timeshifter did? | 22:53 |
| fijal | yes | 22:54 |
| fijal | but the timeshifter was broken for a variety of reasons | 22:54 |
| Alex_Gaynor | What was the timeshifter anyways? | 22:54 |
| Alex_Gaynor | (And why was it named that) | 22:54 |
| fijal | it shifted a bit of time ;-) | 22:54 |
| fijal | so what it did was to take rpython-level graphs | 22:54 |
| fijal | and change them into jit graphs | 22:55 |
| fijal | but it was all done as a graph transformation | 22:55 |
| Alex_Gaynor | I guess compiler for pyjitpl is a mess with blackhole | 22:55 |
| fijal | why? | 22:56 |
| Alex_Gaynor | Well, how do you jump into the middle of a C function if you fail a guard in one of them? | 22:56 |
| fijal | that's what blackhole does no? | 22:57 |
| fijal | you just raise "ContinueInBlackhole" | 22:57 |
| Alex_Gaynor | Blackhole jumps into the middle of interpreting jitcode | 22:58 |
| Alex_Gaynor | jumping into a bytecode is easy | 22:58 |
| Alex_Gaynor | how do you jump into an actual C function | 22:58 |
| Alex_Gaynor | setjmp or something | 22:58 |
| fijal | you don't have to do it | 22:59 |
| fijal | you can still have blackhole that interprets everything normally | 22:59 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/own-macosx-x86-32/builds/815 | 23:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64/builds/248 | 23:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-32/builds/1067 | 23:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/cpython-2-benchmark-x86-64/builds/23 | 23:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64-2/builds/75 | 23:00 |
| fijal | ok | 23:00 |
| fijal | WTF dbus daemon makes me unable to open files? | 23:00 |
| Alex_Gaynor | fijal: so you end up with generated function AND the jitcode? | 23:00 |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64-2/builds/75 | 23:00 |
| fijal | Alex_Gaynor: yes | 23:01 |
| Alex_Gaynor | memory use:/ | 23:01 |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64/builds/248 | 23:01 |
| amaury_ | "translation failed" | 23:01 |
| fijal | yes | 23:01 |
| fijal | indeed, armin broke stuff this time | 23:01 |
| fijal | on the other hand, where are we passing r_longlong? | 23:02 |
| Alex_Gaynor | is_being_profiled | 23:02 |
| Alex_Gaynor | apparently | 23:02 |
| Alex_Gaynor | isn't that a bool? | 23:02 |
| fijal | ? | 23:02 |
| fijal | how is is_being_profiled an r_longlong? | 23:03 |
| amaury_ | works in 32bit mode | 23:03 |
| Alex_Gaynor | how the hell should I know :/ | 23:03 |
| fijal | Alex_Gaynor: ok, so look how metainterp._compile_and_run_once works | 23:03 |
| Alex_Gaynor | fijal: yes I know how it works | 23:03 |
| fijal | you replace interpret() with a special function | 23:03 |
| fijal | memory consumption should be ok | 23:03 |
| fijal | given that we don't want to compile for all jitcodes | 23:03 |
| gtaylor (~gtaylor@108-196-160-156.lightspeed.tukrga.sbcglobal.net) left irc: Quit: Konversation terminated! | 23:03 | |
| fijal | only for some | 23:03 |
| fijal | Alex_Gaynor: and then interpret can either normally interpret or call a special function | 23:04 |
| nedbat (~nedbat@python/psf/nedbat) left irc: Ping timeout: 276 seconds | 23:05 | |
| mjacob (~foobar@p57A8B8C7.dip.t-dialin.net) joined #pypy. | 23:06 | |
| Alex_Gaynor | fijal: how do we decide which functions are compiled, and which are 100% interpreted? | 23:07 |
| Alex_Gaynor | I guess the smaller ones (like newint) are best to compile | 23:08 |
| fijal | Alex_Gaynor: by say running some statistics? | 23:08 |
| fijal | we know how often we interpret each function | 23:08 |
| Alex_Gaynor | what stats? | 23:08 |
| fijal | or we can find out | 23:08 |
| fijal | you compile pypy with special instrumentation that tracks | 23:09 |
| fijal | how often you metainterp a certain function | 23:09 |
| Alex_Gaynor | Well anyways, there's like 700 things I want to work on first. | 23:10 |
| fijal | :] | 23:11 |
| fijal | do you have some for me? ;-) | 23:11 |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/cpython-2-benchmark-x86-64/builds/23 | 23:11 |
| Alex_Gaynor | fijal: go finish vectorization or record dtypes? | 23:12 |
| fijal | yeah, record dtypes | 23:12 |
| fijal | I'll leave vectorization alone for now ;-) | 23:12 |
| fijal | I need to implement strings & unicodes for record dtypes | 23:12 |
| Alex_Gaynor | Yes, and we need detection | 23:12 |
| Alex_Gaynor | e.g. ["a", "abc", "def"] becomes str3 | 23:12 |
| stakkars_ (~tismer@p5DDB6A94.dip.t-dialin.net) joined #pypy. | 23:13 | |
| fijal | that's so ugly it leaves me speechless | 23:15 |
| stakkars (~tismer@p5DDB6A94.dip.t-dialin.net) left irc: Ping timeout: 244 seconds | 23:15 | |
| Nick change: stakkars_ -> stakkars | 23:15 | |
| mjacob | what's the purpose of 'Symbolic's in rpython? | 23:15 |
| fijal | mjacob: sometimes you don't know the value | 23:16 |
| fijal | like sizeof(stuff) | 23:16 |
| kvda (~kvda@124-171-36-73.dyn.iinet.net.au) joined #pypy. | 23:16 | |
| mjacob | fijal: and at translation time i have to call compute_fn? | 23:17 |
| fijal | mjacob: you don't call compute_fn | 23:17 |
| fijal | you render it in C | 23:17 |
| Snyg (~snyg@p4FF1C653.dip0.t-ipconnect.de) left irc: Quit: Bye | 23:17 | |
| justinpeel (~justinpee@c-76-23-44-72.hsd1.ut.comcast.net) joined #pypy. | 23:18 | |
| whitelynx (~whitelynx@63.241.75.144) left irc: Quit: Ex-Chat | 23:28 | |
| squiddy (~squiddy@f053080067.adsl.alicedsl.de) left irc: Quit: Leaving | 23:31 | |
| rhn (~rhn@5acba580.bb.sky.com) left irc: Remote host closed the connection | 23:38 | |
| lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) left irc: Ping timeout: 240 seconds | 23:39 | |
| hacman (~hacman@cpe-66-65-188-46.nyc.res.rr.com) joined #pypy. | 23:42 | |
| voidspac_ (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 23:42 | |
| Tobu (~Tobu@unaffiliated/tobu) left irc: Ping timeout: 272 seconds | 23:44 | |
| nedbat (~nedbat@python/psf/nedbat) joined #pypy. | 23:46 | |
| otakutom_ (~otakutomo@KD027083117212.ppp-bb.dion.ne.jp) joined #pypy. | 23:51 | |
| LarstiQ_ (~larstiq@menas.richtlijn.be) joined #pypy. | 23:54 | |
| otakutomo (~otakutomo@27.83.117.212) left irc: Ping timeout: 252 seconds | 23:54 | |
| djahandarie (~darius@unaffiliated/djahandarie) left irc: Ping timeout: 252 seconds | 23:54 | |
| djahandarie (~darius@137.99.25.240) joined #pypy. | 23:54 | |
| LarstiQ (~larstiq@menas.richtlijn.be) left irc: Ping timeout: 252 seconds | 23:54 | |
| djahandarie (~darius@137.99.25.240) left irc: Changing host | 23:54 | |
| djahandarie (~darius@unaffiliated/djahandarie) joined #pypy. | 23:54 | |
| zain (~textual@46.120.28.30) left irc: Quit: Textual IRC Client: http://www.textualapp.com/ | 23:54 | |
| --- Thu Feb 23 2012 | 00:00 | |
Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!