#pypy IRC log for Friday, 2010-02-05

Nick change: facetone -> headtone00:10
Alex_Gaynor (~alex@nidoran-37.dynamic.rpi.edu) joined #pypy.00:14
engla (~ulrik@wikipedia/Sverdrup) left irc: Ping timeout: 245 seconds00: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 host00:25
engla (~ulrik@wikipedia/Sverdrup) joined #pypy.00:25
fijal (~fijal@12.131.247.122) joined #pypy.00:26
fijalhi00:26
Alex_Gaynorhello00:26
pekuja (~pekuja@blues.fixme.fi) left irc: Ping timeout: 276 seconds00:31
pekuja (~pekuja@blues.fixme.fi) joined #pypy.00:31
fijal (~fijal@12.131.247.122) left irc: Ping timeout: 240 seconds00:35
kenaan (~kenaan@ampere.divmod.com) joined #pypy.00:42
kenaan03pedronis 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: Verlassend00:43
amaury_pedronis: I still wonder whether asmgcroot can work with threads00:49
pedronisArmin wrote code for that00:49
pedronisas long as there's a GIL00:49
amaury_of course, the GIL00:51
nettok (~netto@proxy.galileo.edu) joined #pypy.00:52
amaury_but what if a thread releases the GIL before a long system call00:54
amaury_and gc.collect() is called in another thread00:54
amaury_it's not always easy to walk the stack00:55
pedroniswell such externals are marked with _gctransformer_hint_close_stack_ 00:56
Gromit (~Gromit_@g226029115.adsl.alicedsl.de) left irc: Quit: Verlassend00:56
Action: amaury_ understood one more thing today00:57
amaury_and the stack can be reopened at another location, in case of callbacks00:58
pedronisyes, there's llop.gc_stack_bottom(lltype.Void)01:00
pedronisin rffi.py01:00
pedronisfor callbacks01:00
amaury_so each thread can have several chains of frames01: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: stakkars01:06
stakkars (~tismer@i577B78D2.versanet.de) joined #pypy.01:07
cwillu (~cwillu@cwillu.com) left irc: Ping timeout: 240 seconds01:26
amaury_ (~4dc55519@gateway/web/freenode/x-pgfooxagxvwzquwd) left irc: Quit: Page closed01: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 seconds01:44
nshepperd (~nshepperd@2001:44b8:61::23) left irc: Client Quit01:44
pedronis (~user@c-d149e353.022-54-67626719.cust.bredbandsbolaget.se) left irc: Remote host closed the connection01:46
nshepperd (~nshepperd@2001:44b8:61::23) joined #pypy.01:48
tav (~tav@89.241.155.169) left irc: Ping timeout: 272 seconds01:53
hpk (~hpk@HSI-KBW-095-208-109-209.hsi5.kabel-badenwuerttemberg.de) left irc: Read error: Operation timed out01: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 peer01:56
panni_ (hannes@ip-95-222-52-93.unitymediagroup.de) left irc: Read error: Connection reset by peer01: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-Chat02:13
engla (~ulrik@wikipedia/Sverdrup) left irc: Ping timeout: 276 seconds02:22
gonsor (~quassel@kel30.kel.stud.uni-goettingen.de) left irc: Ping timeout: 246 seconds02: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 seconds03: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 seconds05: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-Chat05: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 seconds05:32
Nick change: voidspace -> fuzzyman05: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 seconds05:54
Nick change: voidspace -> fuzzyman05: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 seconds06: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 seconds06: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 seconds07: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 seconds07: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 seconds07: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-Chat08: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 seconds08: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 seconds09:03
Nick change: voidspace -> fuzzyman09:03
zejn (~Gasper@89-212-104-197.dynamic.dsl.t-2.net) joined #pypy.09:07
Ademanergh 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 seconds09:20
Nick change: voidspace -> fuzzyman09: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: leaving09: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
kenaan03afa 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-Chat09:55
MostAwesomeDudeHm, who's afa?09:59
MostAwesomeDudeThanks 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 host10:01
engla (~ulrik@wikipedia/Sverdrup) joined #pypy.10:01
fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Read error: Operation timed out10: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 initials10:06
voidspace (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 256 seconds10:06
MostAwesomeDudeamaury_: Ah. Thanks. :310:06
amaury_MostAwesomeDude: and you don't even have to recompile pypy. just svn up and use your previous translated pypy-c10:10
MostAwesomeDudeamaury_: 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 seconds10:22
Nick change: voidspace -> fuzzyman10:22
amaury_MostAwesomeDude: I think I found a bug in pyglet10: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 _fields10:24
amaury_trailing underscore missing10:24
amaury_it's probably windows-specific code10:25
antocuni (~antocuni@host239-125-dynamic.24-79-r.retail.telecomitalia.it) joined #pypy.10:26
MostAwesomeDudeamaury_: You're on Windows. With X11, I get a failed drawable creation (bad GLX juju) followed by segfault.10:27
MostAwesomeDudeIt's bugs either in pyglet or pypy.10:28
MostAwesomeDudeEr, pypy ctypes.10:28
MostAwesomeDudeSince 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 seconds10: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 seconds10: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
cfbolzhello11:03
fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 256 seconds11:04
Nick change: voidspace -> fuzzyman11:04
pedroniscfbolz: hi11:04
cfbolzhi samuele11:04
pedroniscodespeak was migrated yesterday11:05
pedronisseems turning on threads didn't break anything11:05
cfbolzgood!11:05
amaury_ (~5bc34844@gateway/web/freenode/x-ajxnilshxbqnnmnj) left irc: Ping timeout: 248 seconds11:06
pedroniswe have a test based on the ip of codespeak11:06
cfbolzimpressive11:07
pedronisand one translation timed out :(11:07
cfbolzah, spambayes really got a bit faster11:09
cfbolzand we are about to break even on html5lib11:10
pedroniswhat is the status of the oprofile stuff?11:13
amaury_ (~5bc34844@gateway/web/freenode/x-xctdbmwvybrsollv) joined #pypy.11:13
cfbolzpedronis: sort of done11:15
pedronismergeable?11:15
cfbolzone thing I was unsure about is whether the string of the first debug_merge_point is a good function name to give to the profiler11:15
pedroniswell it makes a bit of sense11:16
cfbolzyes, it's kind of sensible in most situations11:16
cfbolzexcept when it's not11:17
pedronislike?11:17
kenaan03pedronis 10r7110414 07M(pypy/trunk/pypy/rlib/test/test_rsocket.py): codespeak.net ip changed ...11:17
cfbolzif you have a bridge that starts in the middle of an inlined function11:17
voidspace (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy.11:17
cfbolzthen the bridge will get the inner functions name11:17
cfbolzeven though it probably also contains code of the outer function11:18
pedroniswell you can go back to the traces to see that 11:18
pedronisno?11:18
fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 256 seconds11:18
Nick change: voidspace -> fuzzyman11:18
cfbolzyes11:19
cfbolzit's a bit of a power-user feature anyway11:19
pedronisI fixed the ip issue11:19
cfbolzgood11:20
pedronisI think we should try to merge that and then look into ai or rietveld11:20
cfbolzguess so, yes11:21
cfbolzI can do the merge11:21
pedronisok11:24
kenaan03cfbolz 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
kenaan03cfbolz 10r7110614 06D(pypy/branch/oprofile-support/): remove merged branch ...11:30
Action: cfbolz translates11: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 seconds11:33
Nick change: voidspace -> fuzzyman11:33
pedronisdidn't see the checkins mail yet (?)11:33
cfbolzme neither11:34
cfbolzmaybe a migration thing?11:34
hpkthere was/is a problem - investigating - it should work now 11:34
hpkit seems that somehow the /cell/svn-mailer.conf was corrupted, lots of null bytes in there11:34
cfbolzoops11:34
pedronisoopsy indeed11:35
hpknow it's unclear if that was after rsyncing or during operations 11:36
hpkotherwise things seem to work - it's still a bit worrysome 11:36
hpkin 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 seconds11:48
cfbolzat some point we really have to do something about the speed of the C backend11:54
pedronisjust another item (1.333...) on our real-numbered todo list11: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 list11:56
antocuniwhat's the item numbered pi?11:58
fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy.12:02
cfbolzworld domination12:02
pedronisor it that item 42?12:03
cfbolzindeed12:03
amaury_Item pi is about circularity12:03
cfbolz:-)12:03
amaury_translates pypy-c with itself12:03
cfbolzand speed that up with the jit12:03
amaury_(a real goal btw)12:03
amaury_I remember it was one of the first goals in early pypy12:04
pedroniscfbolz: is this the magic incantation: ./translate.py -Ojit --translation-jit_profiler=oprofile12:04
cfbolzyes12:05
cfbolzpedronis: but you really need to compile oprofile yourself12:05
cfbolzamaury_: we could do that in the past12:05
pedroniscfbolz: ?12:05
pedronisbecause it's buggy12:05
cfbolzthe one shipped with ubuntu/debian is buggy12: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
cfbolzyes12:11
pedronisyes, I think is the only way currently12:11
amaury_how?12:11
pedronis--jit threshold=100000000012: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 seconds12:13
Nick change: voidspace -> fuzzyman12:13
pedronisor import pypyjit; pypyjit.set_param("threshold=...")12:13
cfbolzdo you need a string?12:14
cfbolzor a keyword arg?12:14
pedronisa string12: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
pedroniscfbolz: confused12:17
pedronisah, both ways work12:18
cfbolzok12: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 seconds12:30
Nick change: voidspace -> fuzzyman12: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 seconds12:46
zejn (~Gasper@89-212-104-197.dynamic.dsl.t-2.net) left irc: Quit: Leaving12:49
Action: Ademan ponders the test coverage of micronumpy...12:52
Ademanso i take it not all string formatting operators are supported in rpython?13:15
amaury_yes13:19
hpkpedronis:  i sent you a mail regarding a buildbot related cron-error mail13:19
hpka new one arrives every hour or so 13:20
Ademanamaury_: :-/13:20
amaury_which one do you miss?13:20
pedronishpk: it's the crontab of the buildmaster user13:20
pedronisit has the line13:21
pedronisMAILTO=pypy-dev@codespeak.net13:21
Action: pedronis really away13:22
Ademanamaury_: - left justification, I can emulate it if i must13:23
Ademani'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
Ademanmax isn't rpython is it?13:30
cfbolzAdeman: I think it is, at least with two params13:35
Ademancfbolz: oh?13:35
Ademantwo params meaning an iterable of length > 2 ? or what?13:36
cfbolzno13:36
cfbolzmax(5, 7(13:36
cfbolz)13:37
cfbolzmax(5, 8)13:37
Ademanoh 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
cfbolzindeed13:38
Action: Ademan grumbles13:38
Ademani feel like the iterable version is more useful13:39
cfbolzAdeman: implement it then :-)13:39
Ademancfbolz: :-p It seems i'd need to dive far deeper than I am currently... maybe someday... haha13:39
Ademangah, it's nearly 5am!13:51
joe_mp (~joe@e179163184.adsl.alicedsl.de) joined #pypy.14:00
gutworthyea! eurostars!14:03
hpkgutworth:  :)14:11
cfbolz (~cfbolz@fwstups.cs.uni-duesseldorf.de) left irc: Quit: Leaving14:29
Alex_Gaynor (~alex@nidoran-37.dynamic.rpi.edu) joined #pypy.14:29
Action: Ademan is absolutely shocked!14:35
Ademanit just translated!14:35
antocuniAdeman: congrats! :-)14:36
antocuniAdeman: you are working on numpy, right?14:36
fijalhello14:37
Alex_Gaynormorning fijal 14:37
antocunihi maciek14:39
antocuniat pycon?14:39
Ademanantocuni: yep, and thanks!14:39
Alex_Gaynorpycon's not for another 2 weeks14:39
Ademani've been fixing annotator errors for the past few days though, i feel i deserve it :-p14:40
fijalAdeman: well, you should instead improve test coverage I guess :-P14:42
antocuniAdeman: 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 translation14:42
fijalantocuni: not directly "at"14:42
Ademanantocuni: haha, well better late than never, thanks14:42
antocuniAdeman: the resulting executable is useless, but checkmodule is still useful to catch rpython errors14:42
antocuniAdeman: be aware that the default backend is cli, so you have to invoke it with "checkmodule.py -b c module_name"14:43
Ademanfijal: i don't disagree but I thought coverage was pretty good until HEAD-1 and I don't know what it's like on HEAD14:43
fijalrun py.test -p figleaf14:43
fijaland look14:43
fijalI guess you still don't cover places14:43
antocuniAdeman: and also the fake objspace is not 100% complete, so it could happen that checkmodule fails when the translation works14:43
Ademanantocuni: haha also a good piece of information, thanks14:44
Ademanfijal: figleaf blows up here :-/14:44
fijalhow?14:44
Ademanone sec14:45
Ademanfijal: 'ImportError: No module named impl.test.outcome14:46
fijalupgrade your py.test maybe?14:46
Ademanalright, if you don't mind though i'm going to go to sleep for the time being, it's almost 6am now14:47
fijalheh, sure :)14:47
fijalI just woke up14:47
Ademanhaha fijal get a better time zone :-p14:47
Ademanbut yeah, time for sleep....14:48
fijalI'm in EST14:48
Ademannight everyone14:48
Ademanoh? well stop waking up at reasonable hours and going to sleep early then :-p14:49
kenaan03afa 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 again15:01
nshepperd (~nshepperd@2001:44b8:61::23) joined #pypy.15:12
cfbolz (~cfbolz@fwstups.cs.uni-duesseldorf.de) joined #pypy.15:15
cfbolzback15:16
pedronisgood15:18
pedronisI had a lunch break myself15:18
pedroniscfbolz: what should we try to do?15:20
pedronisdid your translation work?15:20
jell (jellonek@knip.pol.lublin.pl) left irc: Ping timeout: 264 seconds15:38
pedroniscfbolz: ping15:46
cfbolzpong15:48
pedronisdid you see my questions?15:49
cfbolzyes15:49
cfbolzmy translation worked15:49
cfbolzlooked a bit at the profile of ai15:49
pedronisand?15:50
cfbolzhttp://paste.pocoo.org/show/174201/15:50
cfbolzdoesn't tell me that much15:50
cfbolzwill need to stare at the trace15:50
Spaghettini (~Spaghetti@vaxjo7.181.cust.blixtvik.net) joined #pypy.15:50
fijalyou don't merge bridges do you?15:50
cfbolzno15:50
cfbolzit's all tweakable, I just wanted to get things started15:51
pedroniswell we spend the most time in permutations15:54
cfbolzyes15:56
cfbolzbut why needs trace-staring15:57
pedronisyes15:58
Alex_Gaynor (~alex@nidoran-37.dynamic.rpi.edu) left irc: Quit: Ex-Chat15:59
kenaan03fijal 10r7110814 pypy/extradoc/talk/pycon2010/pypyspeed 05A(/ talk.txt): Start writing slides, not really having enough vision so far ...16:03
pedronisfijal: confused, what is that talk, is yet another talk?16:05
fijalyes16:05
pedronisyou forgot about it?16:05
fijalno16:05
kenaan03fijal 10r7110914 07M(pypy/extradoc/talk/pycon2010/keynote/outline.txt): rephrase ...16:05
fijalit's "speed of pypy" one16:05
pedroniswe didn't talk of that one at the whiteboard16:06
fijalwe did16:06
fijalthe one you said "I have a bit no clue what you want to talk about"16:06
pedronisah, the one about how to write code that is jit-friendly16:06
pedronis???16:06
fijalyes16:06
fijaland more what JIT is about16:07
pedroniscfbolz: I'm confused the bytecode numbers in the profile and what I get with pypy-c-jit dis.dis don't match very much16:08
cfbolz?16:09
pedronisI'm doing pypy-c-jit16:10
pedronisimport bm_ai16:10
pedronisimport dis16:10
pedronisdis.dis(bm_ai.permutations)16:11
pedronisand looking at the bytcodes around #xxx numbers16:11
pedronisin the profile16:11
Action: cfbolz tries16:12
reynaudd (~dan@2001:660:4501:1:21d:9ff:fe0a:369b) joined #pypy.16:12
reynauddhi folks16:12
kenaan03fijal 10r7111014 07M(pypy/extradoc/talk/pycon2010/keynote/outline.txt): Add a slide I think makes sense, but wording is not too good ...16:13
kenaan03fijal 10r7111114 07M(pypy/extradoc/talk/pycon2010/keynote/outline.txt): Strike the last slide - predictions of future is hard ...16:13
cfbolzpedronis: so you are saying at position 338 you don't have a POP_TOP?16:13
cfbolzreynaudd: hi16:13
pedronisor the position before for that matter16:13
Alex_Gaynor (~alex@rpi-wl-595.dynamic.rpi.edu) joined #pypy.16:14
reynauddI 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
cfbolzpedronis: for me this matches16:14
pedronisconfused16:14
cfbolzhttp://paste.pocoo.org/show/174215/16:14
fijalreynaudd: can you paste it?16:14
fijalreynaudd: it does compile for me16:15
pedroniscfbolz: I'm getting something very different16:15
reynauddfijal: it is quite long, shall I paste it here?16:15
fijalnope16:15
fijalpaste.pocoo.org16:15
cfbolzpedronis: straaange16:15
pedronisyes16:16
cfbolzpycs?16:16
cfbolzI did a cleanup, still looks the same16:17
reynauddok, here it is: http://paste.pocoo.org/show/174216/ (I'm running Ubuntu 9.10 x86-64)16:17
pedroniscfbolz: I don't understand, your bm_ai bytecode doesn't have genexps16:17
cfbolzwaaaait16:17
cfbolzdo I have a local change?16:17
kenaan03antocuni 10r7111214 07M(pypy/extradoc/talk/pycon2010/keynote/outline.txt): mention pypy-cli-jit ...16:18
pedroniscfbolz: I have stuff like 16:18
pedronis299 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             016:18
pedronis 16:18
pedronisin mine16:18
cfbolzpedronis: aaaargh, I made a local modification at some point that replaces genexps by list comps :-((((16:18
pedroniswell, at least I don't fell like I'm on drugs or something16:18
cfbolzsorry, sorry16:18
Action: cfbolz tries again16:19
cfbolzreynaudd: you need to install the "python-dev" package16:19
fijalreynaudd: install python-dev package16:19
reynauddsolved, indeed16:21
reynauddthanks guys :)16:21
cfbolzpedronis: ok, now things are considerably slower :-)16:22
pedronisprogress16:22
fijalcfbolz: the main problem with C backend speed is inlining helpers16:23
fijal(reading backlog)16:23
fijalwhich can be somehow sped up I guess16:23
fijalbut not sure precisely how16:23
cfbolzpedronis: now it looks like this: http://paste.pocoo.org/show/174220/16:25
fijalcfbolz: generators can be sped up by a bit (20%, maybe), by having a bit smarter assembler16:26
cfbolz?16:26
fijalbasically if you produce CALL_ASSEMBLER16:26
pedroniswell, we often don't16:26
pedronisfor them16:26
pedronisso that's the first thing to fix16:27
cfbolzyes16:27
fijalif we don't, you can try giving up tracing16:27
fijalthat's easy, but I got mixed results16:27
cfbolzfijal: didn't you implement that somewhere?16:27
fijalyes, I did16:27
cfbolzcould you check it in to a branch?16:27
fijalhowever, the thing that would not get mixed results and still work out in most cases is if you check for token after the residual call16:27
fijalcfbolz: can we discuss options first?16:27
cfbolzwe can do that too16:28
cfbolzbut checking in what you did costs nothing16:28
fijalok16:28
cfbolzand we don't need to redo things16:28
cfbolzpedronis: one problem of ai is that it does tuple(<genexp>)16:29
kenaan03fijal 10r7111314 05A(pypy/branch/abort-no-asm/): A tentative branch to checkin my changes ...16:30
fijalthat won't be helped by this change since it's not a loop16:30
cfbolzwhich means there will be no assembler->assembler call anyway16:30
cfbolzyes16:30
pedronistrue16:30
pedronislike map16:30
cfbolzyes16:30
kenaan03fijal 10r7111414 07M(pypy/branch/abort-no-asm/pypy/jit/metainterp/pyjitpl.py): abort tracing if no asm present ...16:30
cfbolzanyway, I really don't see the point of having a genexp there16:31
pedronisthat's is own big hairy issue16:31
fijalcfbolz: 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 it16:31
pedroniswell I think if we start no liking the benchmark16:31
fijal(except lack of test)16:31
pedroniswhat do you mean by token?16:31
cfbolzpedronis: no, there is the usual problem that not liking a benchmark is not a real solution16:31
fijalin pyjitpl.py16:31
fijalin line 68116:32
fijalwe should do token = warmrunnerstate.get_assembler_token(greenkey)16:32
fijalpossibly after the residual_call16:32
cfbolzfijal: you need to check in the jitprof changes too16:33
kenaan03fijal 10r7111514 07M(pypy/branch/abort-no-asm/pypy/jit/metainterp/jitprof.py): oops, belonging to previous commit ...16:33
pedronisfijal: I see, it may help in some cases16:34
cfbolzyes, but only in some16:34
fijalyes16:34
fijalI think it's quite common and there is no reason why we don't do that16:34
pedroniscfbolz: well, my point was more than we should look at rietveld then instead16:34
cfbolzsimply because it too is slow16:35
pedronissomething like that yes16:35
fijalpedronis: I'll work on spitfire benchmarkisation/blog post/slides in the evening16:35
fijalmy evening16:35
pedronisok16:35
pedronisI will do nothing during the weekend16:36
fijaldo you have any plans when/if you're going to work other presentations?16:36
pedronisnext week16:36
fijalok16:36
kenaan03cfbolz 10r7111614 07M(pypy/extradoc/planning/jit.txt): a note on stupidity ...16:36
Action: cfbolz tries rietveld16:36
cfbolzrietveld looks...16:40
cfbolzfunny16:40
cfbolzhttp://paste.pocoo.org/show/174228/16:40
fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) left irc: Ping timeout: 256 seconds16:41
pedronisseems gc kind of issues like spitfire really16:41
fuzzyman (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy.16:41
fijalhm16:42
cfbolza bit16:42
fijaldoesn't it look more like a lot of tracing?16:42
Action: cfbolz grumbles at oprofile16:43
fijalpypy_g___mm_uint_w_W_IntObject16:43
fijaluh?16:43
fijalcfbolz: can you valgrind that?16:43
fijalseems like there are no asm loops anyway16:43
fijaland you'll see also the hierarchy16:44
cfbolzsorry, I am not really trusting oprofile much right now16:44
pedronisok16:44
cfbolzthe oprofile daemon is crashing again16:44
Alex_Gaynorfijal: I can't seem to find the template source for rietveld, do you know where it is?16:44
Action: cfbolz unhappy16:44
fijalAlex_Gaynor: nope16:44
Alex_Gaynorbah, it looks like from the pickle it is user.html, but I cna' t find it16:45
fijalcfbolz: the other option would be to post-process valgrind data16:45
fijalso you map back asm address -> function name16:45
cfbolzI guess16:45
cfbolzbut I am a bit fed up with such stuff right now16:45
fijalok16:45
fijalif it continues to rain that much I'll try :-/16:46
pedronisrain -> software conversion16:46
cfbolzeh16:46
cfbolzdoesn't valgrind have a way to integrate with jits?16:47
pedroniswe looked16:47
pedronisand the answer is no16:47
cfbolz:-(16:48
Action: fijal off16:48
fijal (~fijal@adsl-070-154-231-130.sip.bgk.bellsouth.net) left irc: Quit: Leaving16:48
pedronisit seems there are no so called client-requests to16:50
cfbolzok, in the oprofile logs there is stuff like this: "warning: [heap] (tgid:10614 range:0x9669000-0xac21000) could not be found."16:50
pedronisname unamed code or to inject call/return events16:50
pedroniscfbolz: not too nice16:50
cfbolzno16:50
cfbolzI never saw this before, apart from rietveld16:51
nshepperd (nshepperd@2001:44b8:61::23) left #pypy.16:52
nsf (~nsf@jiss.convex.ru) left irc: Quit: WeeChat 0.3.1.116:56
reynauddnew 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 JIT17:27
cfbolzthe paper is a bit of a simplification17:28
reynauddthe translator complains that I don't have a JitPolicy, any pointer on how to do that?17:28
cfbolzlook at jit/tl/tla/targettla.py17:30
reynauddok17:31
reynaudddammit, "unsupported cpu 'x86_64'" ^^17:34
Alex_Gaynor (~alex@rpi-wl-595.dynamic.rpi.edu) left irc: Quit: Ex-Chat17:41
reynauddthanks for your help, good evening17:44
cfbolzreynaudd: sorry for that17:44
cfbolzmight come in the future17:44
jacob22New unit for productivity: loc/mm rain.17:45
reynauddcfbolz: no problem, I'll play around with a 32 bit machine for the moment17:45
cfbolzok17:47
cfbolz (~cfbolz@fwstups.cs.uni-duesseldorf.de) left irc: Quit: Leaving17:48
reynaudd (~dan@2001:660:4501:1:21d:9ff:fe0a:369b) left irc: Quit: Leaving17:49
panni_ (hannes@ip-95-222-52-93.unitymediagroup.de) joined #pypy.17:57
kenaan03afa 10r7111814 07M(pypy/trunk/pypy/lib/_ctypes/array.py): Considerable speed-up of the c_char_Array.raw getter ...18:09
kenaan03afa 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 seconds19: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
devinuswhy the hell did google decide to ram LLVM into Python instead of funding development on pypy.....?19:27
xorAxAxdevinus: they are sponsoring pypy19:28
idnarif you're talking about unladen-swallow, that's aimed at a much more aggressive time period19:29
antocuniand full compatibility with cpython19:30
ebo^devinus: becouse they use a lot of extensions19: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 headers19:33
antocuniebo^: not really, there is no C API for pypy at the moment19:33
amaury_I just meant extensions using cpython headers19:33
ebo^antocuni: maybe not yet, but a c api could surely be added19:34
antocuniebo^: sure19:34
ebo^without too big changes19:34
amaury_Many aspects of a CPython extension can be emulated on top of a pypy interpreter19:36
lsoto (~lsoto@pc-29-187-104-200.cm.vtr.net) left irc: Ping timeout: 256 seconds19: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 seconds19:41
Nick change: stakkars_ -> stakkars19:41
englathere is no good "analogy" to C extensions for pypy right?19:41
amaury_not yet19:43
amaury_you can write modules for pypy19:43
amaury_but they must be statically linked in the main interpreter19:43
englafrom pypy's perspective perhaps it doesn't make so much sense anyway. pure python modules should be the fastest19:46
amaury_sometimes you need to link with another library19:47
amaury_ctypes is not always a good solution19:47
[mathias] (~mathias@0x573e8631.esnqu2.dynamic.dsl.tele.dk) joined #pypy.19:48
amaury_ (~5bc34844@gateway/web/freenode/x-xctdbmwvybrsollv) left irc: Quit: Page closed19: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 seconds20:21
gutworth (~benjamin@64-131-1-181.usfamily.net) joined #pypy.20:22
Action: pedronis off20: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 peer20: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
ElectronicRUAre here any matematicians?21:01
amaury_you mean, in the pypy development team?21:15
nettok (~netto@proxy.galileo.edu) left irc: Quit: Ex-Chat21:16
ElectronicRUOnline right now.21:17
ElectronicRUMathematicians.21:18
MostAwesomeDudeYes, but we probably can't help with math homework.21:18
amaury_haha21:21
sameh (~jamais@nacov.anthologeek.net) left irc: Read error: Connection reset by peer21:34
sameh (~jamais@nacov.anthologeek.net) joined #pypy.21:34
hpkamaury_:  hi amaury - how are your separation compilation experiments? 21:35
Trundle (~andy@p5B132E8A.dip.t-dialin.net) joined #pypy.21:38
ElectronicRUMostAwesomeDude: I can do my math homework myself. I want anyone to check my generalized dot algorithm.21:44
amaury_hpk: hello21:48
amaury_for now I manage to export annotated functions and call them from another compilation unit21:48
amaury_as long as arguments/return are basic types, or opaque pointers21:49
amaury_tested on Windows only, but unix should work as well21:50
amaury_(no dlopen(), just C compiler/linker)21:50
amaury_now the blocker is how to export annotated RPython classes21: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-end21:53
amaury_(for classes)21:54
victorpoluceno (~victorgp@201-67-131-83.bnut3700.dsl.brasiltelecom.net.br) left irc: Ping timeout: 256 seconds21:55
victorpoluceno (~victorgp@189.31.103.200) joined #pypy.21:56
hpkhum, 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
hpkamaury_:  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 argument22:02
hpknot neccessarily22:02
hpki am more thinking of an artifical plugin api 22:03
hpknot of accessing arbitrary methods and bits from pypy 22:03
amaury_based on ctypes callbacks?22:03
hpkto 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 controled22:03
amaury_err, rffi callbacks22:03
hpknot sure it would touch this level, but some kind of callback would be needed22:05
amaury_actually I tried something like this a long time ago22:05
hpkwhat were your experiences? 22:06
amaury_in branch/build-external22:06
amaury_see r55613 (the comment at least)22:06
hpki see (i think) 22:08
hpkhaving 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 understand22:10
hpkand i am not 100% sure yet it makes sense, but let me try to explain the thought22:10
hpksuppose the extension wants to implement an app-level function but on rpython level 22:11
hpkand for simplicity let's assume all arguments are basic types 22:11
hpkso there could be a pypy-rpython function "trampolin" like thing that accepts a "callback", and some description of argument types 22:12
hpki.e. this trampolin is provided by pypy proper 22:12
hpkand 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: Leaving22:12
ElectronicRUwhat will 'trampolin' return? A function?22:12
hpka handle i guess but what is more interesting is how pypy can call the "callback" 22:13
hpkamaury_:  do you begin to see what i mean? 22:14
hpki am speaking of a very basic extension mechanism, and one that is rather explicitely defined 22:14
hpka bit like cpython-clevel api22:14
ElectronicRUCallback is an extension function?22:14
hpkwhere you also register things to be available on app level 22:14
Action: amaury_ reads again22:14
hpkElectronicRU:  yes22:14
ElectronicRUWhat can be object of extension function?22:15
ElectronicRU*can be like22:15
hpkElectronicRU:  sorry, i don'T get the question22:15
ElectronicRUBecause of my bad English. How will you pass a callback in 'trampolin' from rpy?22:16
hpkamaury_:  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 part22:17
amaury_"import someExtensionModule"22:17
amaury_finds a .so with this name22:18
amaury_and calls init() function, without argument22:18
hpkand with a handle that represents a pypy entrypoint 22:18
hpkor22:18
amaury_objspace pointer?22:18
amaury_i.e many methods that the extension can call22:19
hpkhum, 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 needed22:19
amaury_python lists or rlists?22:19
hpkrlists 22:20
hpkotoh maybe it's not neccessary - at least the "API" between the extension and pypy could use it 22:20
ElectronicRUHow can C extension work with translated (!) object? It will be a pain.22:20
hpkmaybe 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
ElectronicRUWriting Python unit-tests.22:21
ElectronicRUHow we do it.22:21
hpkpypy 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 earlier22:22
hpkElectronicRU:  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-tests22:23
Alex_GaynorI'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 numpy22:24
hpkamaury_:  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=5561622:24
amaury_see the test function at the end22:24
amaury_it's supposed to be the "extension module"22:24
nsf (~nsf@jiss.convex.ru) left irc: Quit: WeeChat 0.3.1.122:24
amaury_it's really compiled to C22:25
ElectronicRUHmm... 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 IMO22:26
ElectronicRUIt was a dream...22:27
ElectronicRULooked at your module. It looks like C.22:27
hpkamaury_:  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 already22:28
hpkgreat - some day i just try to read the code instead of bothering you :)  22:29
amaury_you don't bother me22:29
amaury_This is too difficult for me alone22:29
amaury_and difficult to explain clearly22:30
hpki 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 types22:30
hpkwhy not? 22:31
hpkand types on which level? 22:31
hpkapp or rpython? 22:31
amaury_at interp_level, a type must inherit from W_Root22:31
hpkah, but i think inheriting from an rpython class is not neccessary, is it? 22:32
hpki'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
hpkwell, maybe not impossible but hard 22:32
amaury_that is xorAxAx work22:32
hpkbut why is it useful? 22:33
hpki think being able to advertise an app-level reachable class would be enough 22:33
ElectronicRUI think that rpython-reachable class would be enough for start.22:34
ElectronicRUWe can always do a wrapper.22:34
hpkElectronicRU:  but that is harder than the app-level case i think :) 22:34
amaury_yes, that's the swig approach22:35
ElectronicRUAnd with code of test_extension.py we may pass many of functions...22:35
hpkfor 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
ElectronicRUhpk, anything reachable at applevel is reachable at interplevel, no?22:35
hpkElectronicRU:  yes, that's true 22:36
amaury_storing attributes in a dict is not the most efficient22:36
ElectronicRUHow can I imagine:22:37
ElectronicRUCalling 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
ElectronicRU1) Wrapping arguments and entrypoint/objspace,22:37
ElectronicRUputting it into stack.22:38
ElectronicRUWriting some code to get it out from stack, like in test_extension.py22:38
ElectronicRUAt translation time, translate this code with some C code22: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 anyway22:40
ElectronicRUViola! We got a C procedure.22:40
amaury_but the gc must cooperate22:40
ElectronicRUBut no dynamic linking.22:40
hpkhum, there are really a number of issues involved, i realize22: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
ElectronicRUthru ctypes?22:41
hpkamaury_: 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
ElectronicRUamaury_, 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 code22:43
ElectronicRUGrepped, realized. Ok.22:45
amaury_what we mean by "separate compilation" is that the whole translation process is called twice22:45
ElectronicRUIs 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 module22:45
ElectronicRUYes.22:46
amaury_pypy is written in Python22:46
amaury_so is the extension module22:46
ElectronicRUAh, 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 level22:47
amaury_(or the ABI level, inferred from the C level)22:47
ElectronicRUOr, Java, or CLI.22:48
amaury_yes, the link methods may be different22:48
ElectronicRUWhen we compiling whole PyPy, we're getting a file.22:51
ElectronicRUWhen we compile a module, what did we get?22:51
amaury_another file :-)22:51
ElectronicRUIf we will get .so, problem is write wrapper about ctypes or something like it.22:51
amaury_it's not necessary22:52
amaury_if you can call a C function22:52
ElectronicRUamaury_, 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
ElectronicRUBad way, yes.22:53
amaury_calling functions between a .so and the main program is not difficult22:54
amaury_all programs do this very well22:54
ElectronicRUWhy 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 one22:54
ElectronicRU__init__.py ?22:55
amaury_yes22:55
amaury_there is a Module class22:56
amaury_with interpleveldefs and appleveldefs22:56
ElectronicRUI know architecture of module.22:56
ElectronicRUI'm editing numpy.22:56
amaury_this is the init() part22:56
ElectronicRUYes, 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 too22:57
ElectronicRUAny way, we must to teach translator understands old PyPy to translate new module into something... loadable into PyPy.22:58
ElectronicRUThen PyPy loads the compiled module, creates instance of __init__.Module, and calls its init()22:58
ElectronicRUinstance is our module now.22:58
amaury_yes23:00
ElectronicRUSo most difficult thing is to teach translator understand old translation results and construct new.23:00
amaury_this is easy23:00
ElectronicRUthis ^ or this ^^ ?23:00
amaury_calling the init() function is easy23:01
ElectronicRUIt will be like doing it in compiled-in mixedmodule.23:01
amaury_but you must correctly annotate the content of the init() function23:02
amaury_and recursively any code exposed by this init()23:03
ElectronicRUSo we must provide way for translator to tell him what will be passed to us.23:03
ElectronicRUBecause it will take a part of pypy code.23:03
amaury_and of course, the init() function is about a python module23:03
ElectronicRUIt didn't know what 'objspace' is.23:03
amaury_yes, there will be objects/methods from the main interpreter23:04
amaury_ElectronicRU: http://codespeak.net/pypy/dist/pypy/doc/objspace.html#introduction23:05
ElectronicRUHave read.23:05
ElectronicRUSo 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
ElectronicRUNot defs, but anns.23:06
ElectronicRUAnd translating our code.23:07
amaury_this is what xorAxAx started to do, and what I'am also trying in a branch23:08
ElectronicRUWhat could I say... Good luck! You'll need it!23:10
ElectronicRUAnd good night too.23:10
Nick change: ElectronicRU -> Electronic[sleep23:10
froosch_ (~froschi@147.172.224.61) joined #pypy.23:27
lmoura (~lauromour@200.184.118.130) left irc: Quit: Leaving23:29
froosch (~froschi@147.172.224.61) left irc: Ping timeout: 240 seconds23: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 seconds23:33
Nick change: voidspace -> fuzzyman23:33
nsf (~nsf@jiss.convex.ru) joined #pypy.23:56
--- Sat Feb 6 201000:00

Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!