| Nick change: facetone -> headtone | 00:10 | |
| Alex_Gaynor (~alex@nidoran-37.dynamic.rpi.edu) joined #pypy. | 00:14 | |
| engla (~ulrik@wikipedia/Sverdrup) left irc: Ping timeout: 245 seconds | 00:17 | |
| engla (~ulrik@90-229-231-23-no153.tbcn.telia.com) joined #pypy. | 00:25 | |
| engla (~ulrik@90-229-231-23-no153.tbcn.telia.com) left irc: Changing host | 00:25 | |
| engla (~ulrik@wikipedia/Sverdrup) joined #pypy. | 00:25 | |
| fijal (~fijal@12.131.247.122) joined #pypy. | 00:26 | |
| fijal | hi | 00:26 |
|---|---|---|
| Alex_Gaynor | hello | 00:26 |
| pekuja (~pekuja@blues.fixme.fi) left irc: Ping timeout: 276 seconds | 00:31 | |
| pekuja (~pekuja@blues.fixme.fi) joined #pypy. | 00:31 | |
| fijal (~fijal@12.131.247.122) left irc: Ping timeout: 240 seconds | 00:35 | |
| kenaan (~kenaan@ampere.divmod.com) joined #pypy. | 00:42 | |
| kenaan | 03pedronis 10r7110114 07M(pypy/build/bot2/pypybuildbot/master.py): per cfbolz suggestion, try enabling threads and see what happens ... | 00:42 |
| ebo^ (~ebolad@233.195.116.85.dsl.manitu.net) left irc: Quit: Verlassend | 00:43 | |
| amaury_ | pedronis: I still wonder whether asmgcroot can work with threads | 00:49 |
| pedronis | Armin wrote code for that | 00:49 |
| pedronis | as long as there's a GIL | 00:49 |
| amaury_ | of course, the GIL | 00:51 |
| nettok (~netto@proxy.galileo.edu) joined #pypy. | 00:52 | |
| amaury_ | but what if a thread releases the GIL before a long system call | 00:54 |
| amaury_ | and gc.collect() is called in another thread | 00:54 |
| amaury_ | it's not always easy to walk the stack | 00:55 |
| pedronis | well such externals are marked with _gctransformer_hint_close_stack_ | 00:56 |
| Gromit (~Gromit_@g226029115.adsl.alicedsl.de) left irc: Quit: Verlassend | 00:56 | |
| Action: amaury_ understood one more thing today | 00:57 | |
| amaury_ | and the stack can be reopened at another location, in case of callbacks | 00:58 |
| pedronis | yes, there's llop.gc_stack_bottom(lltype.Void) | 01:00 |
| pedronis | in rffi.py | 01:00 |
| pedronis | for callbacks | 01:00 |
| amaury_ | so each thread can have several chains of frames | 01:03 |
| amaury_ | btw, is asmgcroot a known technique, | 01:05 |
| amaury_ | or is it an original idea? | 01:06 |
| stakkars (~tismer@i577B78D2.versanet.de) left irc: Quit: stakkars | 01:06 | |
| stakkars (~tismer@i577B78D2.versanet.de) joined #pypy. | 01:07 | |
| cwillu (~cwillu@cwillu.com) left irc: Ping timeout: 240 seconds | 01:26 | |
| amaury_ (~4dc55519@gateway/web/freenode/x-pgfooxagxvwzquwd) left irc: Quit: Page closed | 01:33 | |
| Trundle (~andy@p5B132FD8.dip.t-dialin.net) left irc: Quit: ... | 01:38 | |
| cwillu (~cwillu@cwillu.com) joined #pypy. | 01:39 | |
| nshepperd (~nshepperd@2001:44b8:61::23) joined #pypy. | 01:44 | |
| Spaghettini (~Spaghetti@vaxjo7.128.cust.blixtvik.net) left irc: Ping timeout: 264 seconds | 01:44 | |
| nshepperd (~nshepperd@2001:44b8:61::23) left irc: Client Quit | 01:44 | |
| pedronis (~user@c-d149e353.022-54-67626719.cust.bredbandsbolaget.se) left irc: Remote host closed the connection | 01:46 | |
| nshepperd (~nshepperd@2001:44b8:61::23) joined #pypy. | 01:48 | |
| tav (~tav@89.241.155.169) left irc: Ping timeout: 272 seconds | 01:53 | |
| hpk (~hpk@HSI-KBW-095-208-109-209.hsi5.kabel-badenwuerttemberg.de) left irc: Read error: Operation timed out | 01:55 | |
| panni__ (hannes@ip-95-222-52-93.unitymediagroup.de) joined #pypy. | 01:56 | |
| panni__ (hannes@ip-95-222-52-93.unitymediagroup.de) left irc: Read error: Connection reset by peer | 01:56 | |
| panni_ (hannes@ip-95-222-52-93.unitymediagroup.de) left irc: Read error: Connection reset by peer | 01:56 | |
| panni_ (hannes@ip-95-222-52-93.unitymediagroup.de) joined #pypy. | 01:56 | |
| tav (~tav@89.241.155.169) joined #pypy. | 01:58 | |
| hikoz (~hikoz@27.183.244.43.ap.yournet.ne.jp) joined #pypy. | 02:06 | |
| nettok (~netto@proxy.galileo.edu) left irc: Quit: Ex-Chat | 02:13 | |
| engla (~ulrik@wikipedia/Sverdrup) left irc: Ping timeout: 276 seconds | 02:22 | |
| gonsor (~quassel@kel30.kel.stud.uni-goettingen.de) left irc: Ping timeout: 246 seconds | 02:38 | |
| pemryan (~pem@2001:cc0:201e:107:221:86ff:fe1a:e5aa) joined #pypy. | 02:40 | |
| ousado_ (~ousado@port-92-206-117-14.dynamic.qsc.de) joined #pypy. | 03:20 | |
| ousado (~ousado@port-92-206-218-239.dynamic.qsc.de) left irc: Ping timeout: 256 seconds | 03:23 | |
| nettok (~netto@200.119.155.6) joined #pypy. | 03:48 | |
| fijal (~fijal@adsl-070-154-231-130.sip.bgk.bellsouth.net) joined #pypy. | 04:55 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 240 seconds | 05:03 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 05:04 | |
| victorpoluceno (~victorpol@189-31-74-179.bnut3700.dsl.brasiltelecom.net.br) left irc: Quit: Ex-Chat | 05:16 | |
| voidspace (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 05:31 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 246 seconds | 05:32 | |
| Nick change: voidspace -> fuzzyman | 05:32 | |
| voidspace (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 05:52 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 265 seconds | 05:54 | |
| Nick change: voidspace -> fuzzyman | 05:54 | |
| panni_ (hannes@ip-95-222-52-93.unitymediagroup.de) left irc: Quit: ( www.nnscript.de :: NoNameScript 3.81 :: www.XLhost.de ) | 06:11 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 246 seconds | 06:22 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 06:23 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 256 seconds | 06:55 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 06:56 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 256 seconds | 07:03 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 07:04 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 256 seconds | 07:33 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 07:34 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 240 seconds | 07:56 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 07:58 | |
| Ademan (~dan@adsl-75-36-243-252.dsl.pltn13.sbcglobal.net) left irc: Quit: exit(0) | 08:07 | |
| Alex_Gaynor (~alex@nidoran-37.dynamic.rpi.edu) left irc: Quit: Ex-Chat | 08:15 | |
| Ademan (~dan@adsl-75-36-243-252.dsl.pltn13.sbcglobal.net) joined #pypy. | 08:29 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 252 seconds | 08:31 | |
| nshepperd (nshepperd@2001:44b8:61::23) left #pypy. | 08:32 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 08:33 | |
| voidspace (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 09:02 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 240 seconds | 09:03 | |
| Nick change: voidspace -> fuzzyman | 09:03 | |
| zejn (~Gasper@89-212-104-197.dynamic.dsl.t-2.net) joined #pypy. | 09:07 | |
| Ademan | ergh annotator! | 09:17 |
| voidspace (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 09:20 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 256 seconds | 09:20 | |
| Nick change: voidspace -> fuzzyman | 09:20 | |
| amaury_ (~5bc34844@gateway/web/freenode/x-smtevfaqftngunuu) joined #pypy. | 09:31 | |
| Ademan (~dan@adsl-75-36-243-252.dsl.pltn13.sbcglobal.net) left irc: Quit: leaving | 09:32 | |
| Ademan (~dan@adsl-75-36-243-252.dsl.pltn13.sbcglobal.net) joined #pypy. | 09:32 | |
| hpk (~hpk@HSI-KBW-095-208-109-209.hsi5.kabel-badenwuerttemberg.de) joined #pypy. | 09:46 | |
| kenaan | 03afa 10r7110214 pypy/trunk/pypy/lib 07M(function.py test_funcptr.py): ctypes: implement FuncPtr.from_address() ... | 09:49 |
| nettok (~netto@200.119.155.6) left irc: Quit: Ex-Chat | 09:55 | |
| MostAwesomeDude | Hm, who's afa? | 09:59 |
| MostAwesomeDude | Thanks for the commit, at any rate. Now just gotta figure out why pyglet likes dying. | 09:59 |
| engla (~ulrik@90-229-231-23-no153.tbcn.telia.com) joined #pypy. | 10:01 | |
| engla (~ulrik@90-229-231-23-no153.tbcn.telia.com) left irc: Changing host | 10:01 | |
| engla (~ulrik@wikipedia/Sverdrup) joined #pypy. | 10:01 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Read error: Operation timed out | 10:01 | |
| voidspace (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 10:01 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 10:04 | |
| amaury_ | MostAwesomeDude: afa are my initials | 10:06 |
| voidspace (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 256 seconds | 10:06 | |
| MostAwesomeDude | amaury_: Ah. Thanks. :3 | 10:06 |
| amaury_ | MostAwesomeDude: and you don't even have to recompile pypy. just svn up and use your previous translated pypy-c | 10:10 |
| MostAwesomeDude | amaury_: Yup. | 10:14 |
| voidspace (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 10:21 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 260 seconds | 10:22 | |
| Nick change: voidspace -> fuzzyman | 10:22 | |
| amaury_ | MostAwesomeDude: I think I found a bug in pyglet | 10:22 |
| amaury_ | with pypy, I get TypeError: Cannot instantiate structure, has no _fields_ | 10:23 |
| amaury_ | when pyglet calls "GdiplusStartupOutput()" | 10:23 |
| amaury_ | looks like a typo in this class, there is a member named _fields | 10:24 |
| amaury_ | trailing underscore missing | 10:24 |
| amaury_ | it's probably windows-specific code | 10:25 |
| antocuni (~antocuni@host239-125-dynamic.24-79-r.retail.telecomitalia.it) joined #pypy. | 10:26 | |
| MostAwesomeDude | amaury_: You're on Windows. With X11, I get a failed drawable creation (bad GLX juju) followed by segfault. | 10:27 |
| MostAwesomeDude | It's bugs either in pyglet or pypy. | 10:28 |
| MostAwesomeDude | Er, pypy ctypes. | 10:28 |
| MostAwesomeDude | Since pyglet uses a generator for their bindings, I'd wager it's a pypy bug, but I need to dig into it more. | 10:28 |
| stakkars (~tismer@i577B78D2.versanet.de) left irc: Ping timeout: 264 seconds | 10:31 | |
| stakkars (~tismer@i59F7CCED.versanet.de) joined #pypy. | 10:37 | |
| amaury__ (~5bc34844@gateway/web/freenode/x-ajxnilshxbqnnmnj) joined #pypy. | 10:42 | |
| amaury_ (~5bc34844@gateway/web/freenode/x-smtevfaqftngunuu) left irc: Ping timeout: 248 seconds | 10:44 | |
| Nick change: amaury__ -> amaury_ | 10:53 | |
| voidspace (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 11:02 | |
| pedronis (~user@c-d149e353.022-54-67626719.cust.bredbandsbolaget.se) joined #pypy. | 11:03 | |
| cfbolz (~cfbolz@fwstups.cs.uni-duesseldorf.de) joined #pypy. | 11:03 | |
| cfbolz | hello | 11:03 |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 256 seconds | 11:04 | |
| Nick change: voidspace -> fuzzyman | 11:04 | |
| pedronis | cfbolz: hi | 11:04 |
| cfbolz | hi samuele | 11:04 |
| pedronis | codespeak was migrated yesterday | 11:05 |
| pedronis | seems turning on threads didn't break anything | 11:05 |
| cfbolz | good! | 11:05 |
| amaury_ (~5bc34844@gateway/web/freenode/x-ajxnilshxbqnnmnj) left irc: Ping timeout: 248 seconds | 11:06 | |
| pedronis | we have a test based on the ip of codespeak | 11:06 |
| cfbolz | impressive | 11:07 |
| pedronis | and one translation timed out :( | 11:07 |
| cfbolz | ah, spambayes really got a bit faster | 11:09 |
| cfbolz | and we are about to break even on html5lib | 11:10 |
| pedronis | what is the status of the oprofile stuff? | 11:13 |
| amaury_ (~5bc34844@gateway/web/freenode/x-xctdbmwvybrsollv) joined #pypy. | 11:13 | |
| cfbolz | pedronis: sort of done | 11:15 |
| pedronis | mergeable? | 11:15 |
| cfbolz | one thing I was unsure about is whether the string of the first debug_merge_point is a good function name to give to the profiler | 11:15 |
| pedronis | well it makes a bit of sense | 11:16 |
| cfbolz | yes, it's kind of sensible in most situations | 11:16 |
| cfbolz | except when it's not | 11:17 |
| pedronis | like? | 11:17 |
| kenaan | 03pedronis 10r7110414 07M(pypy/trunk/pypy/rlib/test/test_rsocket.py): codespeak.net ip changed ... | 11:17 |
| cfbolz | if you have a bridge that starts in the middle of an inlined function | 11:17 |
| voidspace (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 11:17 | |
| cfbolz | then the bridge will get the inner functions name | 11:17 |
| cfbolz | even though it probably also contains code of the outer function | 11:18 |
| pedronis | well you can go back to the traces to see that | 11:18 |
| pedronis | no? | 11:18 |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 256 seconds | 11:18 | |
| Nick change: voidspace -> fuzzyman | 11:18 | |
| cfbolz | yes | 11:19 |
| cfbolz | it's a bit of a power-user feature anyway | 11:19 |
| pedronis | I fixed the ip issue | 11:19 |
| cfbolz | good | 11:20 |
| pedronis | I think we should try to merge that and then look into ai or rietveld | 11:20 |
| cfbolz | guess so, yes | 11:21 |
| cfbolz | I can do the merge | 11:21 |
| pedronis | ok | 11:24 |
| kenaan | 03cfbolz 10r7110514 pypy/trunk/pypy 05A(oprofile.py profagent.py) 07M(translationoption.py model.py assembler.py runner.py test_assembler.py test_runner.py warmspot.py): merge oprofile-support branch: ... | 11:30 |
| kenaan | 03cfbolz 10r7110614 06D(pypy/branch/oprofile-support/): remove merged branch ... | 11:30 |
| Action: cfbolz translates | 11:31 | |
| voidspace (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 11:32 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 246 seconds | 11:33 | |
| Nick change: voidspace -> fuzzyman | 11:33 | |
| pedronis | didn't see the checkins mail yet (?) | 11:33 |
| cfbolz | me neither | 11:34 |
| cfbolz | maybe a migration thing? | 11:34 |
| hpk | there was/is a problem - investigating - it should work now | 11:34 |
| hpk | it seems that somehow the /cell/svn-mailer.conf was corrupted, lots of null bytes in there | 11:34 |
| cfbolz | oops | 11:34 |
| pedronis | oopsy indeed | 11:35 |
| hpk | now it's unclear if that was after rsyncing or during operations | 11:36 |
| hpk | otherwise things seem to work - it's still a bit worrysome | 11:36 |
| hpk | in any case, svn is hot-synced to wyvern (/home/hpk/svn-codespeak-mirror) and that is probably the most critical bit | 11:37 |
| ebo^ (~ebolad@233.195.116.85.dsl.manitu.net) joined #pypy. | 11:38 | |
| hikoz (~hikoz@27.183.244.43.ap.yournet.ne.jp) left irc: Quit: Leaving... | 11:45 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 246 seconds | 11:48 | |
| cfbolz | at some point we really have to do something about the speed of the C backend | 11:54 |
| pedronis | just another item (1.333...) on our real-numbered todo list | 11:55 |
| #pypy: mode change '+o cfbolz' by ChanServ!ChanServ@services. | 11:56 | |
| Topic changed on #pypy by cfbolz!cfbolz@fwstups.cs.uni-duesseldorf.de: PyPy the flexible snake (irc-logs: http://wyvern.cs.uni-duesseldorf.de/irc-logs/pypy/ ) | just another item (1.333...) on our real-numbered todo list | 11:56 | |
| antocuni | what's the item numbered pi? | 11:58 |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 12:02 | |
| cfbolz | world domination | 12:02 |
| pedronis | or it that item 42? | 12:03 |
| cfbolz | indeed | 12:03 |
| amaury_ | Item pi is about circularity | 12:03 |
| cfbolz | :-) | 12:03 |
| amaury_ | translates pypy-c with itself | 12:03 |
| cfbolz | and speed that up with the jit | 12:03 |
| amaury_ | (a real goal btw) | 12:03 |
| amaury_ | I remember it was one of the first goals in early pypy | 12:04 |
| pedronis | cfbolz: is this the magic incantation: ./translate.py -Ojit --translation-jit_profiler=oprofile | 12:04 |
| cfbolz | yes | 12:05 |
| cfbolz | pedronis: but you really need to compile oprofile yourself | 12:05 |
| cfbolz | amaury_: we could do that in the past | 12:05 |
| pedronis | cfbolz: ? | 12:05 |
| pedronis | because it's buggy | 12:05 |
| cfbolz | the one shipped with ubuntu/debian is buggy | 12:05 |
| pedronis | :( | 12:06 |
| amaury_ | how can I disable jit in a compiled pypy-c? | 12:10 |
| amaury_ | set some threshold to a big value? | 12:10 |
| cfbolz | yes | 12:11 |
| pedronis | yes, I think is the only way currently | 12:11 |
| amaury_ | how? | 12:11 |
| pedronis | --jit threshold=1000000000 | 12:12 |
| voidspace (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 12:12 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 256 seconds | 12:13 | |
| Nick change: voidspace -> fuzzyman | 12:13 | |
| pedronis | or import pypyjit; pypyjit.set_param("threshold=...") | 12:13 |
| cfbolz | do you need a string? | 12:14 |
| cfbolz | or a keyword arg? | 12:14 |
| pedronis | a string | 12:16 |
| Action: hpk sent a mail to codespeak-ann - we are going to reboot with a new kernel, so codespeka may not be reachable from time to time while we try to remedy the situation | 12:16 | |
| pedronis | cfbolz: confused | 12:17 |
| pedronis | ah, both ways work | 12:18 |
| cfbolz | ok | 12:20 |
| voidspace (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 12:30 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 256 seconds | 12:30 | |
| Nick change: voidspace -> fuzzyman | 12:30 | |
| gonsor (~quassel@kel30.kel.stud.uni-goettingen.de) joined #pypy. | 12:33 | |
| gonsor (~quassel@kel30.kel.stud.uni-goettingen.de) left irc: Ping timeout: 252 seconds | 12:46 | |
| zejn (~Gasper@89-212-104-197.dynamic.dsl.t-2.net) left irc: Quit: Leaving | 12:49 | |
| Action: Ademan ponders the test coverage of micronumpy... | 12:52 | |
| Ademan | so i take it not all string formatting operators are supported in rpython? | 13:15 |
| amaury_ | yes | 13:19 |
| hpk | pedronis: i sent you a mail regarding a buildbot related cron-error mail | 13:19 |
| hpk | a new one arrives every hour or so | 13:20 |
| Ademan | amaury_: :-/ | 13:20 |
| amaury_ | which one do you miss? | 13:20 |
| pedronis | hpk: it's the crontab of the buildmaster user | 13:20 |
| pedronis | it has the line | 13:21 |
| pedronis | MAILTO=pypy-dev@codespeak.net | 13:21 |
| Action: pedronis really away | 13:22 | |
| Ademan | amaury_: - left justification, I can emulate it if i must | 13:23 |
| Ademan | i've seen enough mandelbrots for the rest of my life now... | 13:23 |
| gonsor (~quassel@kel30.kel.stud.uni-goettingen.de) joined #pypy. | 13:29 | |
| Ademan | max isn't rpython is it? | 13:30 |
| cfbolz | Ademan: I think it is, at least with two params | 13:35 |
| Ademan | cfbolz: oh? | 13:35 |
| Ademan | two params meaning an iterable of length > 2 ? or what? | 13:36 |
| cfbolz | no | 13:36 |
| cfbolz | max(5, 7( | 13:36 |
| cfbolz | ) | 13:37 |
| cfbolz | max(5, 8) | 13:37 |
| Ademan | oh right, forgot it's varargs too, so if i have a list i won't be able to use max ? since i couldn't use parameter expansion with a variable number of parameters... | 13:38 |
| cfbolz | indeed | 13:38 |
| Action: Ademan grumbles | 13:38 | |
| Ademan | i feel like the iterable version is more useful | 13:39 |
| cfbolz | Ademan: implement it then :-) | 13:39 |
| Ademan | cfbolz: :-p It seems i'd need to dive far deeper than I am currently... maybe someday... haha | 13:39 |
| Ademan | gah, it's nearly 5am! | 13:51 |
| joe_mp (~joe@e179163184.adsl.alicedsl.de) joined #pypy. | 14:00 | |
| gutworth | yea! eurostars! | 14:03 |
| hpk | gutworth: :) | 14:11 |
| cfbolz (~cfbolz@fwstups.cs.uni-duesseldorf.de) left irc: Quit: Leaving | 14:29 | |
| Alex_Gaynor (~alex@nidoran-37.dynamic.rpi.edu) joined #pypy. | 14:29 | |
| Action: Ademan is absolutely shocked! | 14:35 | |
| Ademan | it just translated! | 14:35 |
| antocuni | Ademan: congrats! :-) | 14:36 |
| antocuni | Ademan: you are working on numpy, right? | 14:36 |
| fijal | hello | 14:37 |
| Alex_Gaynor | morning fijal | 14:37 |
| antocuni | hi maciek | 14:39 |
| antocuni | at pycon? | 14:39 |
| Ademan | antocuni: yep, and thanks! | 14:39 |
| Alex_Gaynor | pycon's not for another 2 weeks | 14:39 |
| Ademan | i've been fixing annotator errors for the past few days though, i feel i deserve it :-p | 14:40 |
| fijal | Ademan: well, you should instead improve test coverage I guess :-P | 14:42 |
| antocuni | Ademan: maybe I should have told you before :-), but you should look at bin/checkmodule.py: it tries to translate a given mixed-module with a "fake" object space, so that it is much faster than a full translation | 14:42 |
| fijal | antocuni: not directly "at" | 14:42 |
| Ademan | antocuni: haha, well better late than never, thanks | 14:42 |
| antocuni | Ademan: the resulting executable is useless, but checkmodule is still useful to catch rpython errors | 14:42 |
| antocuni | Ademan: be aware that the default backend is cli, so you have to invoke it with "checkmodule.py -b c module_name" | 14:43 |
| Ademan | fijal: i don't disagree but I thought coverage was pretty good until HEAD-1 and I don't know what it's like on HEAD | 14:43 |
| fijal | run py.test -p figleaf | 14:43 |
| fijal | and look | 14:43 |
| fijal | I guess you still don't cover places | 14:43 |
| antocuni | Ademan: and also the fake objspace is not 100% complete, so it could happen that checkmodule fails when the translation works | 14:43 |
| Ademan | antocuni: haha also a good piece of information, thanks | 14:44 |
| Ademan | fijal: figleaf blows up here :-/ | 14:44 |
| fijal | how? | 14:44 |
| Ademan | one sec | 14:45 |
| Ademan | fijal: 'ImportError: No module named impl.test.outcome | 14:46 |
| fijal | upgrade your py.test maybe? | 14:46 |
| Ademan | alright, if you don't mind though i'm going to go to sleep for the time being, it's almost 6am now | 14:47 |
| fijal | heh, sure :) | 14:47 |
| fijal | I just woke up | 14:47 |
| Ademan | haha fijal get a better time zone :-p | 14:47 |
| Ademan | but yeah, time for sleep.... | 14:48 |
| fijal | I'm in EST | 14:48 |
| Ademan | night everyone | 14:48 |
| Ademan | oh? well stop waking up at reasonable hours and going to sleep early then :-p | 14:49 |
| kenaan | 03afa 10r7110714 pypy/trunk/pypy/lib 07M(structure.py union.py test_structures.py): Another fix in ctypes when a Structure also defines __slots__: ... | 14:57 |
| amaury_ | MostAwesomeDude: You should try with pyglet again | 15:01 |
| nshepperd (~nshepperd@2001:44b8:61::23) joined #pypy. | 15:12 | |
| cfbolz (~cfbolz@fwstups.cs.uni-duesseldorf.de) joined #pypy. | 15:15 | |
| cfbolz | back | 15:16 |
| pedronis | good | 15:18 |
| pedronis | I had a lunch break myself | 15:18 |
| pedronis | cfbolz: what should we try to do? | 15:20 |
| pedronis | did your translation work? | 15:20 |
| jell (jellonek@knip.pol.lublin.pl) left irc: Ping timeout: 264 seconds | 15:38 | |
| pedronis | cfbolz: ping | 15:46 |
| cfbolz | pong | 15:48 |
| pedronis | did you see my questions? | 15:49 |
| cfbolz | yes | 15:49 |
| cfbolz | my translation worked | 15:49 |
| cfbolz | looked a bit at the profile of ai | 15:49 |
| pedronis | and? | 15:50 |
| cfbolz | http://paste.pocoo.org/show/174201/ | 15:50 |
| cfbolz | doesn't tell me that much | 15:50 |
| cfbolz | will need to stare at the trace | 15:50 |
| Spaghettini (~Spaghetti@vaxjo7.181.cust.blixtvik.net) joined #pypy. | 15:50 | |
| fijal | you don't merge bridges do you? | 15:50 |
| cfbolz | no | 15:50 |
| cfbolz | it's all tweakable, I just wanted to get things started | 15:51 |
| pedronis | well we spend the most time in permutations | 15:54 |
| cfbolz | yes | 15:56 |
| cfbolz | but why needs trace-staring | 15:57 |
| pedronis | yes | 15:58 |
| Alex_Gaynor (~alex@nidoran-37.dynamic.rpi.edu) left irc: Quit: Ex-Chat | 15:59 | |
| kenaan | 03fijal 10r7110814 pypy/extradoc/talk/pycon2010/pypyspeed 05A(/ talk.txt): Start writing slides, not really having enough vision so far ... | 16:03 |
| pedronis | fijal: confused, what is that talk, is yet another talk? | 16:05 |
| fijal | yes | 16:05 |
| pedronis | you forgot about it? | 16:05 |
| fijal | no | 16:05 |
| kenaan | 03fijal 10r7110914 07M(pypy/extradoc/talk/pycon2010/keynote/outline.txt): rephrase ... | 16:05 |
| fijal | it's "speed of pypy" one | 16:05 |
| pedronis | we didn't talk of that one at the whiteboard | 16:06 |
| fijal | we did | 16:06 |
| fijal | the one you said "I have a bit no clue what you want to talk about" | 16:06 |
| pedronis | ah, the one about how to write code that is jit-friendly | 16:06 |
| pedronis | ??? | 16:06 |
| fijal | yes | 16:06 |
| fijal | and more what JIT is about | 16:07 |
| pedronis | cfbolz: I'm confused the bytecode numbers in the profile and what I get with pypy-c-jit dis.dis don't match very much | 16:08 |
| cfbolz | ? | 16:09 |
| pedronis | I'm doing pypy-c-jit | 16:10 |
| pedronis | import bm_ai | 16:10 |
| pedronis | import dis | 16:10 |
| pedronis | dis.dis(bm_ai.permutations) | 16:11 |
| pedronis | and looking at the bytcodes around #xxx numbers | 16:11 |
| pedronis | in the profile | 16:11 |
| Action: cfbolz tries | 16:12 | |
| reynaudd (~dan@2001:660:4501:1:21d:9ff:fe0a:369b) joined #pypy. | 16:12 | |
| reynaudd | hi folks | 16:12 |
| kenaan | 03fijal 10r7111014 07M(pypy/extradoc/talk/pycon2010/keynote/outline.txt): Add a slide I think makes sense, but wording is not too good ... | 16:13 |
| kenaan | 03fijal 10r7111114 07M(pypy/extradoc/talk/pycon2010/keynote/outline.txt): Strike the last slide - predictions of future is hard ... | 16:13 |
| cfbolz | pedronis: so you are saying at position 338 you don't have a POP_TOP? | 16:13 |
| cfbolz | reynaudd: hi | 16:13 |
| pedronis | or the position before for that matter | 16:13 |
| Alex_Gaynor (~alex@rpi-wl-595.dynamic.rpi.edu) joined #pypy. | 16:14 | |
| reynaudd | I don't know if this is interesting, but I tried to compile targetnopstandalone and got a compilation error (on a fresh svn checkout) | 16:14 |
| cfbolz | pedronis: for me this matches | 16:14 |
| pedronis | confused | 16:14 |
| cfbolz | http://paste.pocoo.org/show/174215/ | 16:14 |
| fijal | reynaudd: can you paste it? | 16:14 |
| fijal | reynaudd: it does compile for me | 16:15 |
| pedronis | cfbolz: I'm getting something very different | 16:15 |
| reynaudd | fijal: it is quite long, shall I paste it here? | 16:15 |
| fijal | nope | 16:15 |
| fijal | paste.pocoo.org | 16:15 |
| cfbolz | pedronis: straaange | 16:15 |
| pedronis | yes | 16:16 |
| cfbolz | pycs? | 16:16 |
| cfbolz | I did a cleanup, still looks the same | 16:17 |
| reynaudd | ok, here it is: http://paste.pocoo.org/show/174216/ (I'm running Ubuntu 9.10 x86-64) | 16:17 |
| pedronis | cfbolz: I don't understand, your bm_ai bytecode doesn't have genexps | 16:17 |
| cfbolz | waaaait | 16:17 |
| cfbolz | do I have a local change? | 16:17 |
| kenaan | 03antocuni 10r7111214 07M(pypy/extradoc/talk/pycon2010/keynote/outline.txt): mention pypy-cli-jit ... | 16:18 |
| pedronis | cfbolz: I have stuff like | 16:18 |
| pedronis | 299 LOAD_CONST 6 (<code object <genexp>, file '/u/pedronis/PyPy/benchmarks/unladen_swallow/performance/bm_ai.py', line 46>) | 16:18 |
| pedronis | 302 MAKE_CLOSURE 0 | 16:18 |
| pedronis | 16:18 | |
| pedronis | in mine | 16:18 |
| cfbolz | pedronis: aaaargh, I made a local modification at some point that replaces genexps by list comps :-(((( | 16:18 |
| pedronis | well, at least I don't fell like I'm on drugs or something | 16:18 |
| cfbolz | sorry, sorry | 16:18 |
| Action: cfbolz tries again | 16:19 | |
| cfbolz | reynaudd: you need to install the "python-dev" package | 16:19 |
| fijal | reynaudd: install python-dev package | 16:19 |
| reynaudd | solved, indeed | 16:21 |
| reynaudd | thanks guys :) | 16:21 |
| cfbolz | pedronis: ok, now things are considerably slower :-) | 16:22 |
| pedronis | progress | 16:22 |
| fijal | cfbolz: the main problem with C backend speed is inlining helpers | 16:23 |
| fijal | (reading backlog) | 16:23 |
| fijal | which can be somehow sped up I guess | 16:23 |
| fijal | but not sure precisely how | 16:23 |
| cfbolz | pedronis: now it looks like this: http://paste.pocoo.org/show/174220/ | 16:25 |
| fijal | cfbolz: generators can be sped up by a bit (20%, maybe), by having a bit smarter assembler | 16:26 |
| cfbolz | ? | 16:26 |
| fijal | basically if you produce CALL_ASSEMBLER | 16:26 |
| pedronis | well, we often don't | 16:26 |
| pedronis | for them | 16:26 |
| pedronis | so that's the first thing to fix | 16:27 |
| cfbolz | yes | 16:27 |
| fijal | if we don't, you can try giving up tracing | 16:27 |
| fijal | that's easy, but I got mixed results | 16:27 |
| cfbolz | fijal: didn't you implement that somewhere? | 16:27 |
| fijal | yes, I did | 16:27 |
| cfbolz | could you check it in to a branch? | 16:27 |
| fijal | however, the thing that would not get mixed results and still work out in most cases is if you check for token after the residual call | 16:27 |
| fijal | cfbolz: can we discuss options first? | 16:27 |
| cfbolz | we can do that too | 16:28 |
| cfbolz | but checking in what you did costs nothing | 16:28 |
| fijal | ok | 16:28 |
| cfbolz | and we don't need to redo things | 16:28 |
| cfbolz | pedronis: one problem of ai is that it does tuple(<genexp>) | 16:29 |
| kenaan | 03fijal 10r7111314 05A(pypy/branch/abort-no-asm/): A tentative branch to checkin my changes ... | 16:30 |
| fijal | that won't be helped by this change since it's not a loop | 16:30 |
| cfbolz | which means there will be no assembler->assembler call anyway | 16:30 |
| cfbolz | yes | 16:30 |
| pedronis | true | 16:30 |
| pedronis | like map | 16:30 |
| cfbolz | yes | 16:30 |
| kenaan | 03fijal 10r7111414 07M(pypy/branch/abort-no-asm/pypy/jit/metainterp/pyjitpl.py): abort tracing if no asm present ... | 16:30 |
| cfbolz | anyway, I really don't see the point of having a genexp there | 16:31 |
| pedronis | that's is own big hairy issue | 16:31 |
| fijal | cfbolz: basically reading the token after instead of before residual_call would already help in some cases and there is no good reason why we don't do it | 16:31 |
| pedronis | well I think if we start no liking the benchmark | 16:31 |
| fijal | (except lack of test) | 16:31 |
| pedronis | what do you mean by token? | 16:31 |
| cfbolz | pedronis: no, there is the usual problem that not liking a benchmark is not a real solution | 16:31 |
| fijal | in pyjitpl.py | 16:31 |
| fijal | in line 681 | 16:32 |
| fijal | we should do token = warmrunnerstate.get_assembler_token(greenkey) | 16:32 |
| fijal | possibly after the residual_call | 16:32 |
| cfbolz | fijal: you need to check in the jitprof changes too | 16:33 |
| kenaan | 03fijal 10r7111514 07M(pypy/branch/abort-no-asm/pypy/jit/metainterp/jitprof.py): oops, belonging to previous commit ... | 16:33 |
| pedronis | fijal: I see, it may help in some cases | 16:34 |
| cfbolz | yes, but only in some | 16:34 |
| fijal | yes | 16:34 |
| fijal | I think it's quite common and there is no reason why we don't do that | 16:34 |
| pedronis | cfbolz: well, my point was more than we should look at rietveld then instead | 16:34 |
| cfbolz | simply because it too is slow | 16:35 |
| pedronis | something like that yes | 16:35 |
| fijal | pedronis: I'll work on spitfire benchmarkisation/blog post/slides in the evening | 16:35 |
| fijal | my evening | 16:35 |
| pedronis | ok | 16:35 |
| pedronis | I will do nothing during the weekend | 16:36 |
| fijal | do you have any plans when/if you're going to work other presentations? | 16:36 |
| pedronis | next week | 16:36 |
| fijal | ok | 16:36 |
| kenaan | 03cfbolz 10r7111614 07M(pypy/extradoc/planning/jit.txt): a note on stupidity ... | 16:36 |
| Action: cfbolz tries rietveld | 16:36 | |
| cfbolz | rietveld looks... | 16:40 |
| cfbolz | funny | 16:40 |
| cfbolz | http://paste.pocoo.org/show/174228/ | 16:40 |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 256 seconds | 16:41 | |
| pedronis | seems gc kind of issues like spitfire really | 16:41 |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 16:41 | |
| fijal | hm | 16:42 |
| cfbolz | a bit | 16:42 |
| fijal | doesn't it look more like a lot of tracing? | 16:42 |
| Action: cfbolz grumbles at oprofile | 16:43 | |
| fijal | pypy_g___mm_uint_w_W_IntObject | 16:43 |
| fijal | uh? | 16:43 |
| fijal | cfbolz: can you valgrind that? | 16:43 |
| fijal | seems like there are no asm loops anyway | 16:43 |
| fijal | and you'll see also the hierarchy | 16:44 |
| cfbolz | sorry, I am not really trusting oprofile much right now | 16:44 |
| pedronis | ok | 16:44 |
| cfbolz | the oprofile daemon is crashing again | 16:44 |
| Alex_Gaynor | fijal: I can't seem to find the template source for rietveld, do you know where it is? | 16:44 |
| Action: cfbolz unhappy | 16:44 | |
| fijal | Alex_Gaynor: nope | 16:44 |
| Alex_Gaynor | bah, it looks like from the pickle it is user.html, but I cna' t find it | 16:45 |
| fijal | cfbolz: the other option would be to post-process valgrind data | 16:45 |
| fijal | so you map back asm address -> function name | 16:45 |
| cfbolz | I guess | 16:45 |
| cfbolz | but I am a bit fed up with such stuff right now | 16:45 |
| fijal | ok | 16:45 |
| fijal | if it continues to rain that much I'll try :-/ | 16:46 |
| pedronis | rain -> software conversion | 16:46 |
| cfbolz | eh | 16:46 |
| cfbolz | doesn't valgrind have a way to integrate with jits? | 16:47 |
| pedronis | we looked | 16:47 |
| pedronis | and the answer is no | 16:47 |
| cfbolz | :-( | 16:48 |
| Action: fijal off | 16:48 | |
| fijal (~fijal@adsl-070-154-231-130.sip.bgk.bellsouth.net) left irc: Quit: Leaving | 16:48 | |
| pedronis | it seems there are no so called client-requests to | 16:50 |
| cfbolz | ok, in the oprofile logs there is stuff like this: "warning: [heap] (tgid:10614 range:0x9669000-0xac21000) could not be found." | 16:50 |
| pedronis | name unamed code or to inject call/return events | 16:50 |
| pedronis | cfbolz: not too nice | 16:50 |
| cfbolz | no | 16:50 |
| cfbolz | I never saw this before, apart from rietveld | 16:51 |
| nshepperd (nshepperd@2001:44b8:61::23) left #pypy. | 16:52 | |
| nsf (~nsf@jiss.convex.ru) left irc: Quit: WeeChat 0.3.1.1 | 16:56 | |
| reynaudd | new question: I'm trying to translate the small VM described in the "Tracing the Meta-Level..." paper. The interpreted VM is ok, and the translated VM in C is ok too, but I fail to add the JIT | 17:27 |
| cfbolz | the paper is a bit of a simplification | 17:28 |
| reynaudd | the translator complains that I don't have a JitPolicy, any pointer on how to do that? | 17:28 |
| cfbolz | look at jit/tl/tla/targettla.py | 17:30 |
| reynaudd | ok | 17:31 |
| reynaudd | dammit, "unsupported cpu 'x86_64'" ^^ | 17:34 |
| Alex_Gaynor (~alex@rpi-wl-595.dynamic.rpi.edu) left irc: Quit: Ex-Chat | 17:41 | |
| reynaudd | thanks for your help, good evening | 17:44 |
| cfbolz | reynaudd: sorry for that | 17:44 |
| cfbolz | might come in the future | 17:44 |
| jacob22 | New unit for productivity: loc/mm rain. | 17:45 |
| reynaudd | cfbolz: no problem, I'll play around with a 32 bit machine for the moment | 17:45 |
| cfbolz | ok | 17:47 |
| cfbolz (~cfbolz@fwstups.cs.uni-duesseldorf.de) left irc: Quit: Leaving | 17:48 | |
| reynaudd (~dan@2001:660:4501:1:21d:9ff:fe0a:369b) left irc: Quit: Leaving | 17:49 | |
| panni_ (hannes@ip-95-222-52-93.unitymediagroup.de) joined #pypy. | 17:57 | |
| kenaan | 03afa 10r7111814 07M(pypy/trunk/pypy/lib/_ctypes/array.py): Considerable speed-up of the c_char_Array.raw getter ... | 18:09 |
| kenaan | 03afa 10r7111914 07M(pypy/trunk/pypy/lib/_ctypes/array.py): oops ... | 18:10 |
| bja (~bja@m890736d0.tmodns.net) joined #pypy. | 18:21 | |
| nsf (~nsf@jiss.convex.ru) joined #pypy. | 18:28 | |
| bja (~bja@m890736d0.tmodns.net) left irc: Ping timeout: 272 seconds | 19:16 | |
| victorpoluceno (~victorgp@201-67-131-83.bnut3700.dsl.brasiltelecom.net.br) joined #pypy. | 19:24 | |
| devinus (~devinus@65.107.181.222.ptr.us.xo.net) joined #pypy. | 19:27 | |
| devinus | why the hell did google decide to ram LLVM into Python instead of funding development on pypy.....? | 19:27 |
| xorAxAx | devinus: they are sponsoring pypy | 19:28 |
| idnar | if you're talking about unladen-swallow, that's aimed at a much more aggressive time period | 19:29 |
| antocuni | and full compatibility with cpython | 19:30 |
| ebo^ | devinus: becouse they use a lot of extensions | 19:30 |
| lsoto (~lsoto@pc-29-187-104-200.cm.vtr.net) joined #pypy. | 19:31 | |
| amaury_ | btw, is there somewhere a list of arguments why pypy could not support C extensions? | 19:32 |
| ebo^ | pypy could sure support c extensions ... just not extension using the cpython headers | 19:33 |
| antocuni | ebo^: not really, there is no C API for pypy at the moment | 19:33 |
| amaury_ | I just meant extensions using cpython headers | 19:33 |
| ebo^ | antocuni: maybe not yet, but a c api could surely be added | 19:34 |
| antocuni | ebo^: sure | 19:34 |
| ebo^ | without too big changes | 19:34 |
| amaury_ | Many aspects of a CPython extension can be emulated on top of a pypy interpreter | 19:36 |
| lsoto (~lsoto@pc-29-187-104-200.cm.vtr.net) left irc: Ping timeout: 256 seconds | 19:36 | |
| stakkars_ (~tismer@i59F7C15A.versanet.de) joined #pypy. | 19:39 | |
| bja (~bja@c-98-222-1-220.hsd1.il.comcast.net) joined #pypy. | 19:39 | |
| stakkars (~tismer@i59F7CCED.versanet.de) left irc: Ping timeout: 276 seconds | 19:41 | |
| Nick change: stakkars_ -> stakkars | 19:41 | |
| engla | there is no good "analogy" to C extensions for pypy right? | 19:41 |
| amaury_ | not yet | 19:43 |
| amaury_ | you can write modules for pypy | 19:43 |
| amaury_ | but they must be statically linked in the main interpreter | 19:43 |
| engla | from pypy's perspective perhaps it doesn't make so much sense anyway. pure python modules should be the fastest | 19:46 |
| amaury_ | sometimes you need to link with another library | 19:47 |
| amaury_ | ctypes is not always a good solution | 19:47 |
| [mathias] (~mathias@0x573e8631.esnqu2.dynamic.dsl.tele.dk) joined #pypy. | 19:48 | |
| amaury_ (~5bc34844@gateway/web/freenode/x-xctdbmwvybrsollv) left irc: Quit: Page closed | 19:59 | |
| Alex_Gaynor (~alex@nidoran-37.dynamic.rpi.edu) joined #pypy. | 20:14 | |
| gutworth (~benjamin@64-131-1-181.usfamily.net) left irc: Ping timeout: 252 seconds | 20:21 | |
| gutworth (~benjamin@64-131-1-181.usfamily.net) joined #pypy. | 20:22 | |
| Action: pedronis off | 20:27 | |
| pedronis (~user@c-d149e353.022-54-67626719.cust.bredbandsbolaget.se) left irc: Quit: ERC Version 5.2 (IRC client for Emacs) | 20:27 | |
| magcius (~jstpierre@c-24-61-243-212.hsd1.ma.comcast.net) left irc: Read error: Connection reset by peer | 20:42 | |
| magcius_ (~jstpierre@c-24-61-243-212.hsd1.ma.comcast.net) joined #pypy. | 20:42 | |
| nettok (~netto@proxy.galileo.edu) joined #pypy. | 20:43 | |
| amaury_ (~4dc55519@gateway/web/freenode/x-rieodjbqlfnihivn) joined #pypy. | 20:46 | |
| ElectronicRU | Are here any matematicians? | 21:01 |
| amaury_ | you mean, in the pypy development team? | 21:15 |
| nettok (~netto@proxy.galileo.edu) left irc: Quit: Ex-Chat | 21:16 | |
| ElectronicRU | Online right now. | 21:17 |
| ElectronicRU | Mathematicians. | 21:18 |
| MostAwesomeDude | Yes, but we probably can't help with math homework. | 21:18 |
| amaury_ | haha | 21:21 |
| sameh (~jamais@nacov.anthologeek.net) left irc: Read error: Connection reset by peer | 21:34 | |
| sameh (~jamais@nacov.anthologeek.net) joined #pypy. | 21:34 | |
| hpk | amaury_: hi amaury - how are your separation compilation experiments? | 21:35 |
| Trundle (~andy@p5B132E8A.dip.t-dialin.net) joined #pypy. | 21:38 | |
| ElectronicRU | MostAwesomeDude: I can do my math homework myself. I want anyone to check my generalized dot algorithm. | 21:44 |
| amaury_ | hpk: hello | 21:48 |
| amaury_ | for now I manage to export annotated functions and call them from another compilation unit | 21:48 |
| amaury_ | as long as arguments/return are basic types, or opaque pointers | 21:49 |
| amaury_ | tested on Windows only, but unix should work as well | 21:50 |
| amaury_ | (no dlopen(), just C compiler/linker) | 21:50 |
| amaury_ | now the blocker is how to export annotated RPython classes | 21:51 |
| [mathias] (~mathias@0x573e8631.esnqu2.dynamic.dsl.tele.dk) left irc: | 21:52 | |
| amaury_ | attribute access seems to work, but I fear the current approach is a dead-end | 21:53 |
| amaury_ | (for classes) | 21:54 |
| victorpoluceno (~victorgp@201-67-131-83.bnut3700.dsl.brasiltelecom.net.br) left irc: Ping timeout: 256 seconds | 21:55 | |
| victorpoluceno (~victorgp@189.31.103.200) joined #pypy. | 21:56 | |
| hpk | hum, if basic types work (cool already) - could we maybe define some kind of plugin api that only works with basic types? | 21:58 |
| zejn (~Gasper@internet-213-229-208-113.narocnik.mobitel.si) joined #pypy. | 21:58 | |
| hpk | amaury_: not sure i am making sense yet - but i basically think one can define virtually arbitrary APIs on top of basic types relatively conveniently | 21:59 |
| amaury_ | every function of a pypy API would need a "objspace" as its first argument | 22:02 |
| hpk | not neccessarily | 22:02 |
| hpk | i am more thinking of an artifical plugin api | 22:03 |
| hpk | not of accessing arbitrary methods and bits from pypy | 22:03 |
| amaury_ | based on ctypes callbacks? | 22:03 |
| hpk | to try to be more concrete: there could be some kind of extension protocol that is implemented on the pypy interpreter side and on the extension side - on the extension side it would be a small lib that "decodes" certain operations into the protocol - if i am not missing something this could be a very controled | 22:03 |
| amaury_ | err, rffi callbacks | 22:03 |
| hpk | not sure it would touch this level, but some kind of callback would be needed | 22:05 |
| amaury_ | actually I tried something like this a long time ago | 22:05 |
| hpk | what were your experiences? | 22:06 |
| amaury_ | in branch/build-external | 22:06 |
| amaury_ | see r55613 (the comment at least) | 22:06 |
| hpk | i see (i think) | 22:08 |
| hpk | having a way to "share" pointers to basic objects on the rpython level introduces a new dimension if i am not mistaken | 22:09 |
| amaury_ | not sure to understand | 22:10 |
| hpk | and i am not 100% sure yet it makes sense, but let me try to explain the thought | 22:10 |
| hpk | suppose the extension wants to implement an app-level function but on rpython level | 22:11 |
| hpk | and for simplicity let's assume all arguments are basic types | 22:11 |
| hpk | so there could be a pypy-rpython function "trampolin" like thing that accepts a "callback", and some description of argument types | 22:12 |
| hpk | i.e. this trampolin is provided by pypy proper | 22:12 |
| hpk | and the extension can compile against this, i.e. call it | 22:12 |
| antocuni (~antocuni@host239-125-dynamic.24-79-r.retail.telecomitalia.it) left irc: Quit: Leaving | 22:12 | |
| ElectronicRU | what will 'trampolin' return? A function? | 22:12 |
| hpk | a handle i guess but what is more interesting is how pypy can call the "callback" | 22:13 |
| hpk | amaury_: do you begin to see what i mean? | 22:14 |
| hpk | i am speaking of a very basic extension mechanism, and one that is rather explicitely defined | 22:14 |
| hpk | a bit like cpython-clevel api | 22:14 |
| ElectronicRU | Callback is an extension function? | 22:14 |
| hpk | where you also register things to be available on app level | 22:14 |
| Action: amaury_ reads again | 22:14 | |
| hpk | ElectronicRU: yes | 22:14 |
| ElectronicRU | What can be object of extension function? | 22:15 |
| ElectronicRU | *can be like | 22:15 |
| hpk | ElectronicRU: sorry, i don'T get the question | 22:15 |
| ElectronicRU | Because of my bad English. How will you pass a callback in 'trampolin' from rpy? | 22:16 |
| hpk | amaury_: basically pypy would interpret registration requests which would provide enough info to be able to call a callback - and the extension would have some kind of "init" called so that it can register a module namespace and a function in it | 22:17 |
| amaury_ | this is the easy part | 22:17 |
| amaury_ | "import someExtensionModule" | 22:17 |
| amaury_ | finds a .so with this name | 22:18 |
| amaury_ | and calls init() function, without argument | 22:18 |
| hpk | and with a handle that represents a pypy entrypoint | 22:18 |
| hpk | or | 22:18 |
| amaury_ | objspace pointer? | 22:18 |
| amaury_ | i.e many methods that the extension can call | 22:19 |
| hpk | hum, maybe - but what i am trying to say is that we could very explicitely define what is exposed and make use of the fact that lists, dicts, ints, strings, etc. can be directly shared if needed | 22:19 |
| amaury_ | python lists or rlists? | 22:19 |
| hpk | rlists | 22:20 |
| hpk | otoh maybe it's not neccessary - at least the "API" between the extension and pypy could use it | 22:20 |
| ElectronicRU | How can C extension work with translated (!) object? It will be a pain. | 22:20 |
| hpk | maybe a use case is numpy - how could one develop it (i.e. providing an Array type and what not) without having to re-compile pypy | 22:20 |
| ElectronicRU | Writing Python unit-tests. | 22:21 |
| ElectronicRU | How we do it. | 22:21 |
| hpk | pypy would need an entry point and a mechanism for loading it, callings its init, and allowing it to build up app-visible types - eventually calling methods on the rpython level that were registered earlier | 22:22 |
| hpk | ElectronicRU: not sure i understand - given this extension compilation works, running unit-tests could be done against the linked-in-with-pypy-extension - there could additionally be rpython-level unit-tests | 22:23 |
| Alex_Gaynor | I'm not super familiar with the issue, but ISTM that the issue is not having pypy load a compiled rpython source, that is just a dlsym call after all, the issue is having the rpython compiler know the API of pypy internals without compiling all of pypy whenever you comiple numpy | 22:24 |
| hpk | amaury_: i guess one basic operation that is needed is space.wrap(rpythonobj) | 22:24 |
| amaury_ | hpk: https://codespeak.net/viewvc/pypy/branch/build-external/pypy/module/__builtin__/test/test_extension.py?r1=55616&r2=55615&pathrev=55616 | 22:24 |
| amaury_ | see the test function at the end | 22:24 |
| amaury_ | it's supposed to be the "extension module" | 22:24 |
| nsf (~nsf@jiss.convex.ru) left irc: Quit: WeeChat 0.3.1.1 | 22:24 | |
| amaury_ | it's really compiled to C | 22:25 |
| ElectronicRU | Hmm... If we can teach RPython translator to parse translated binaries/libs and link against them - it would be great. | 22:25 |
| amaury_ | ElectronicRU: this is the other approach, completely different IMO | 22:26 |
| ElectronicRU | It was a dream... | 22:27 |
| ElectronicRU | Looked at your module. It looks like C. | 22:27 |
| hpk | amaury_: yip - what i am trying to say: the "space.len" and "space.wrap" etc. methods could be implemented in terms of a protocol that avoids having to make rpython-classes available between pypy-c and the extension | 22:28 |
| amaury_ | exactly, they are already | 22:28 |
| hpk | great - some day i just try to read the code instead of bothering you :) | 22:29 |
| amaury_ | you don't bother me | 22:29 |
| amaury_ | This is too difficult for me alone | 22:29 |
| amaury_ | and difficult to explain clearly | 22:30 |
| hpk | i think even just having it work for basic cases would be a big win and a good starting point | 22:30 |
| amaury_ | but it's not possible to define new types | 22:30 |
| hpk | why not? | 22:31 |
| hpk | and types on which level? | 22:31 |
| hpk | app or rpython? | 22:31 |
| amaury_ | at interp_level, a type must inherit from W_Root | 22:31 |
| hpk | ah, but i think inheriting from an rpython class is not neccessary, is it? | 22:32 |
| hpk | i'D guess it's virtually impossible with the pypy translation tool chain to get this to work | 22:32 |
| hpk | (rpython-level subclassing) | 22:32 |
| hpk | well, maybe not impossible but hard | 22:32 |
| amaury_ | that is xorAxAx work | 22:32 |
| hpk | but why is it useful? | 22:33 |
| hpk | i think being able to advertise an app-level reachable class would be enough | 22:33 |
| ElectronicRU | I think that rpython-reachable class would be enough for start. | 22:34 |
| ElectronicRU | We can always do a wrapper. | 22:34 |
| hpk | ElectronicRU: but that is harder than the app-level case i think :) | 22:34 |
| amaury_ | yes, that's the swig approach | 22:35 |
| ElectronicRU | And with code of test_extension.py we may pass many of functions... | 22:35 |
| hpk | for the app-level case, we only need to provide a method space.register_type (or whatever) that has a signature that is compatible with what the extension-compilation/linking can support | 22:35 |
| ElectronicRU | hpk, anything reachable at applevel is reachable at interplevel, no? | 22:35 |
| hpk | ElectronicRU: yes, that's true | 22:36 |
| amaury_ | storing attributes in a dict is not the most efficient | 22:36 |
| ElectronicRU | How can I imagine: | 22:37 |
| ElectronicRU | Calling a C function from PyPy. | 22:37 |
| Action: hpk wonders for a second how this all would interact with the JIT ... but forgets it for now :) | 22:37 | |
| ElectronicRU | 1) Wrapping arguments and entrypoint/objspace, | 22:37 |
| ElectronicRU | putting it into stack. | 22:38 |
| ElectronicRU | Writing some code to get it out from stack, like in test_extension.py | 22:38 |
| ElectronicRU | At translation time, translate this code with some C code | 22:39 |
| Misto (~Misto@ppp-229-88.32-151.iol.it) joined #pypy. | 22:39 | |
| amaury_ | hpk: the jit is probably not a problem, most functions are not visited anyway | 22:40 |
| ElectronicRU | Viola! We got a C procedure. | 22:40 |
| amaury_ | but the gc must cooperate | 22:40 |
| ElectronicRU | But no dynamic linking. | 22:40 |
| hpk | hum, there are really a number of issues involved, i realize | 22:40 |
| hpk | (not really a new realization, but still) | 22:41 |
| amaury_ | ElectronicRU: I'm not sure to understand. what is different from a normal C call from pypy? | 22:41 |
| ElectronicRU | thru ctypes? | 22:41 |
| hpk | amaury_: ok, for now i'd like to get back to some other bits (doing a new py.test release over the weekend and preparing pycon talk bits) but i am definitely interested in this and appreciate your work there - at least i want to note this :) | 22:42 |
| ElectronicRU | amaury_, I'm not so nvolved in pypy architecture, I'm only a month here. | 22:43 |
| amaury_ | ElectronicRU: to call fopen() for example, pypy generates C code | 22:43 |
| ElectronicRU | Grepped, realized. Ok. | 22:45 |
| amaury_ | what we mean by "separate compilation" is that the whole translation process is called twice | 22:45 |
| ElectronicRU | Is it possible to generate some C code at compilation-time, compile it to .so, and link against it in extensions? | 22:45 |
| amaury_ | once for the main python interpreter, the other for the module | 22:45 |
| ElectronicRU | Yes. | 22:46 |
| amaury_ | pypy is written in Python | 22:46 |
| amaury_ | so is the extension module | 22:46 |
| ElectronicRU | Ah, sorry. I thought about C because there was a C dicussion before it. | 22:47 |
| amaury_ | but shared libraries need to agree at the C level | 22:47 |
| amaury_ | (or the ABI level, inferred from the C level) | 22:47 |
| ElectronicRU | Or, Java, or CLI. | 22:48 |
| amaury_ | yes, the link methods may be different | 22:48 |
| ElectronicRU | When we compiling whole PyPy, we're getting a file. | 22:51 |
| ElectronicRU | When we compile a module, what did we get? | 22:51 |
| amaury_ | another file :-) | 22:51 |
| ElectronicRU | If we will get .so, problem is write wrapper about ctypes or something like it. | 22:51 |
| amaury_ | it's not necessary | 22:52 |
| amaury_ | if you can call a C function | 22:52 |
| ElectronicRU | amaury_, is there a way _not_ to get another file? To get a new module compiled into whole PyPy? | 22:52 |
| amaury_ | and PyPy grows every time you get a new module? | 22:53 |
| ElectronicRU | Bad way, yes. | 22:53 |
| amaury_ | calling functions between a .so and the main program is not difficult | 22:54 |
| amaury_ | all programs do this very well | 22:54 |
| ElectronicRU | Why can't we teach translator to read old results and to get .so from .py? We don't need init() really; there are no one in existing modules. | 22:54 |
| amaury_ | yes there is one | 22:54 |
| ElectronicRU | __init__.py ? | 22:55 |
| amaury_ | yes | 22:55 |
| amaury_ | there is a Module class | 22:56 |
| amaury_ | with interpleveldefs and appleveldefs | 22:56 |
| ElectronicRU | I know architecture of module. | 22:56 |
| ElectronicRU | I'm editing numpy. | 22:56 |
| amaury_ | this is the init() part | 22:56 |
| ElectronicRU | Yes, ok. Good. | 22:56 |
| gonsor (~quassel@kel30.kel.stud.uni-goettingen.de) left irc: Quit: No Ping reply in 180 seconds. | 22:56 | |
| amaury_ | CPython modules have a init() function too | 22:57 |
| ElectronicRU | Any way, we must to teach translator understands old PyPy to translate new module into something... loadable into PyPy. | 22:58 |
| ElectronicRU | Then PyPy loads the compiled module, creates instance of __init__.Module, and calls its init() | 22:58 |
| ElectronicRU | instance is our module now. | 22:58 |
| amaury_ | yes | 23:00 |
| ElectronicRU | So most difficult thing is to teach translator understand old translation results and construct new. | 23:00 |
| amaury_ | this is easy | 23:00 |
| ElectronicRU | this ^ or this ^^ ? | 23:00 |
| amaury_ | calling the init() function is easy | 23:01 |
| ElectronicRU | It will be like doing it in compiled-in mixedmodule. | 23:01 |
| amaury_ | but you must correctly annotate the content of the init() function | 23:02 |
| amaury_ | and recursively any code exposed by this init() | 23:03 |
| ElectronicRU | So we must provide way for translator to tell him what will be passed to us. | 23:03 |
| ElectronicRU | Because it will take a part of pypy code. | 23:03 |
| amaury_ | and of course, the init() function is about a python module | 23:03 |
| ElectronicRU | It didn't know what 'objspace' is. | 23:03 |
| amaury_ | yes, there will be objects/methods from the main interpreter | 23:04 |
| amaury_ | ElectronicRU: http://codespeak.net/pypy/dist/pypy/doc/objspace.html#introduction | 23:05 |
| ElectronicRU | Have read. | 23:05 |
| ElectronicRU | So we tell translator that this will be ObjSpace, this will be W_Root, etc. It reads definitions of these strange objects from self-created (when compiling pypy) file. | 23:06 |
| ElectronicRU | Not defs, but anns. | 23:06 |
| ElectronicRU | And translating our code. | 23:07 |
| amaury_ | this is what xorAxAx started to do, and what I'am also trying in a branch | 23:08 |
| ElectronicRU | What could I say... Good luck! You'll need it! | 23:10 |
| ElectronicRU | And good night too. | 23:10 |
| Nick change: ElectronicRU -> Electronic[sleep | 23:10 | |
| froosch_ (~froschi@147.172.224.61) joined #pypy. | 23:27 | |
| lmoura (~lauromour@200.184.118.130) left irc: Quit: Leaving | 23:29 | |
| froosch (~froschi@147.172.224.61) left irc: Ping timeout: 240 seconds | 23:30 | |
| gonsor (~quassel@kel30.kel.stud.uni-goettingen.de) joined #pypy. | 23:30 | |
| voidspace (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 23:32 | |
| fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 245 seconds | 23:33 | |
| Nick change: voidspace -> fuzzyman | 23:33 | |
| nsf (~nsf@jiss.convex.ru) joined #pypy. | 23:56 | |
| --- Sat Feb 6 2010 | 00:00 | |
Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!