#pypy IRC log for Saturday, 2007-08-04

dialtone (n=dialtone@213-156-52-97.fastres.net) joined #pypy.01:12
__lucio___ (n=__lucio_@190.50.219.209) joined #pypy.05:33
__lucio__ (n=__lucio_@190.50.210.15) left irc: Read error: 110 (Connection timed out)05:51
cursor (n=peter@brln-4d05302b.pool.mediaWays.net) joined #pypy.06:53
cmusick (n=cmusick@s188.IaichiFL48.vectant.ne.jp) got netsplit.06:55
cmusick (n=cmusick@s188.IaichiFL48.vectant.ne.jp) returned to #pypy.06:55
lac_ (n=lac@c-22c5e055.1321-1-64736c11.cust.bredbandsbolaget.se) joined #pypy.06:59
lac (n=lac@pdpc/supporter/gold/lac) left irc: Read error: 110 (Connection timed out)07:07
Rhamphoryncus (n=rhamph@unaffiliated/rhamphoryncus) left irc: "Valid HTML! http://validator.w3.org/ | Support ISO 8601! http://www.cl.cam.ac.uk/~mgk25/iso-time.html"07:08
jacob22 (n=jacob@c-22c5e055.1321-1-64736c11.cust.bredbandsbolaget.se) left irc: Read error: 110 (Connection timed out)07:09
jacob22 (n=jacob@c-22c5e055.1321-1-64736c11.cust.bredbandsbolaget.se) joined #pypy.07:09
__lucio___ (n=__lucio_@190.50.219.209) left irc: 07:26
cursor (n=peter@brln-4d05302b.pool.mediaWays.net) left irc: 07:43
pedronis (n=chatzill@c-118b70d5.022-54-67626719.cust.bredbandsbolaget.se) joined #pypy.08:23
lac_ (n=lac@pdpc/supporter/gold/lac) left irc: "using sirc version 2.211+KSIRC/1.3.12"08:24
cursor (n=peter@brln-4d0543ba.pool.mediaWays.net) joined #pypy.09:21
fijal (n=fijal@245.142.broadband3.iol.cz) joined #pypy.09:49
fijalhi09:49
pedronismmh, running py.test -d rpython shows various obscure failures09:52
fijal-d you say...09:53
fijalhum09:53
fijalwhat exactly?09:53
fijalcache problems?09:53
fijalpedronis: how was dyla?09:53
pedronisextregistry problems09:53
pedronisduplicate entries or entries not found09:54
pedronisthis is using all linux machines09:54
fijalwell, the duplicate extregistry09:54
fijalis usually a problem which is reported above, but swallowed09:54
fijalno idea why09:55
pedronisrpython/test/test_extfuncregister.py fails locally too09:56
fijalit works for me09:57
fijalhum09:57
pedronisdid you update?09:57
pedronisit failed on wyvern too09:57
arigato (n=arigo@d83-180-98-57.cust.tele2.ch) joined #pypy.09:57
pedronisarigato: morning09:58
fijalyes, I've got it up to date09:58
fijalarigato: hi09:58
fijalpedronis: no, it works for me09:59
Action: fijal tries fresh checkout09:59
fijalah no, armin broke it somehow10:00
fijalof course :)10:00
fijalit's 4547310:00
fijallookup fails with KeyError10:00
pedronisarigato: test_extfuncregister.py doesn't pass anymore, together with other stuff10:00
fijallooks like armin didn't really wake up :)10:01
fijalpedronis: how was dyla?10:01
arigatohi10:02
arigatooups10:02
arigatooups oups, stupid typo, give me 2.5 seconds10:02
Action: fijal gives up asking about dyla10:03
liptonearigo - r45482 - Oups!10:04
arigatofijal: dyla went nicely10:05
pedronisarigato: you didn run the tests ;)10:05
arigatoI'd like to write a bit more about it, but with cfbolz when he's back from the rest of ECOOP10:05
fijalanything interesting different than pypy?10:05
fijalah, ok10:05
arigatopedronis: not all of them, no :-) sorry10:05
fijalso I'll read it later10:05
fijalI'm off for a while, will be back in 2h10:05
pedronisI want to do a bit more of malloc mess cleanup  today10:05
arigatofijal: see also the irc logs of two days ago10:05
Action: fijal reads10:06
fijalarigato: I think it makes sense to do pypy-1.0-sandbox release10:07
fijalcause it's something that is missing in python and also we don't need too much of external library support for that10:07
fijal(would be nice to make it more secure on rpython level - like check for NULL pointers + check for list lenghts always, etc.)10:07
fijalanyway10:07
Action: fijal off10:07
pedroniswe need to fix some other bugs before is reccomendable tough10:08
fijalyes, sure10:08
fijalI'm talking about future10:08
pedronisat least weakrefs10:08
fijal (n=fijal@245.142.broadband3.iol.cz) left irc: "Leaving"10:08
pedronisI just don't want to have to make another release when we have to say that even basic things are not that stable10:09
arigatoyes, makes sense10:09
arigatothat too10:09
arigato(note also that a weakref-less sandboxed Python would already be quite useful in many cases)10:27
cursor (n=peter@brln-4d0543ba.pool.mediaWays.net) left irc: Read error: 110 (Connection timed out)10:30
xorAxAxwhy weakrefless?10:33
arigatobecause they can crash currently10:34
xorAxAxbecause they are broken?10:35
arigatoyes10:38
pedronisI see, but I still think that giving signal of improved stability is as important as giving out experimental features10:42
Nick change: liptone -> lungtone10:54
xorAxAxlungtone: rename weakref11:01
Nick change: lungtone -> weakreftone11:01
arigato (n=arigo@d83-180-98-57.cust.tele2.ch) left irc: Read error: 110 (Connection timed out)11:12
santagada (n=santagad@201-14-124-120.bsace706.dsl.brasiltelecom.net.br) joined #pypy.12:58
cmusick (n=cmusick@s188.IaichiFL48.vectant.ne.jp) left irc: "Quick! Kill your client! Bersirc 2.2 is here! [ http://www.bersirc.org/ - Open Source IRC ]"13:17
fijal (n=fijal@245.142.broadband3.iol.cz) joined #pypy.13:21
Action: fijal back13:21
fijalpedronis: sandboxed version would be really cool. But also waiting a bit for more mature release would be useful as well13:24
santagada (n=santagad@201-14-124-120.bsace706.dsl.brasiltelecom.net.br) left irc: "good bye"13:30
cmusick (n=cmusick@s188.IaichiFL48.vectant.ne.jp) joined #pypy.14:06
doc_python (n=doc_pyth@84-73-211-45.dclient.hispeed.ch) joined #pypy.14:13
__doc__ (n=lbo@62-2-90-134.static.cablecom.ch) left irc: Nick collision from services.14:14
Nick change: doc_python -> __doc__14:14
__doc___ (n=lbo@62-2-90-134.static.cablecom.ch) joined #pypy.14:14
fijalexarkun: hey14:19
stakkars (n=tismer@i577B7405.versanet.de) joined #pypy.14:33
fijalstakkars: hi14:33
lac (n=lac@pdpc/supporter/gold/lac) joined #pypy.14:34
stakkars_ (n=tismer@i577B7766.versanet.de) left irc: Read error: 110 (Connection timed out)14:42
stakkarsfijal: hi14:54
fijalstakkars: have you seen my pypy-dev mail?14:55
stakkarsno, I was busy with my talk abstract (still not ready)14:56
fijalfor what?14:56
fijalanyway, you should like it :)14:56
fijal(regarding stackless performance vs erlang)14:57
Action: exarkun yawns15:01
fijalexarkun: I asked you a question yesterday :)15:02
exarkungood morning15:02
exarkunfijal: I probably didn't know the answer15:02
exarkunlet's see what I can make up15:02
exarkunOpenSSL is needed for a bunch of functionality, so are a couple other extensions to a lesser degree (eg, pycrypto)15:03
fijalpycrypto? what's that?15:03
fijalopenssl sounds like a plan15:03
exarkunthere might be something funny w/ the socket module, I saw a couple "bad file descriptor" errors I think15:04
exarkunpycrypto has a bunch of crypto related stuff in it :)  some of it is in python but it has extension modules too15:05
fijalwell, socket module is somehow scary15:05
exarkunfor things like aes mostly15:05
fijalI'm quite sure it segfaults together with threads15:05
exarkunoof :(15:06
fijalthere is bunch of things which are not working in pypy (like weakrefs) which really need to be fixed15:06
fijalI don't know how much this relates to threads and how much to socket to be honest15:06
fijalexarkun: openssl like ssl objects in socket or wrapper around openssl?15:07
exarkunerm, sorry, /PyOpenSSL/ - so wrapper around openssl15:07
exarkunalthough tbh, if pypy-c gets to the point of being usable, it would be worthwhile for someone (maybe me) to implement a new layer of ssl support based on a better OpenSSL wrapper than PyOpenSSL, if pypy has one15:08
fijal"if pypy-c gets to the point of being usable"15:08
fijalyou know, "in the fullness of time"...15:08
exarkun:)15:08
fijalI'm trying hard :)15:09
exarkunprogress is definitely being made15:09
stakkarsfijal: ah, thanks!15:09
fijalstill, there are some issues hard to tackle15:09
fijal(ie threads)15:09
stakkarsyes, interesting. Although it seems that in the end stackless is slower than erlang?15:09
exarkunI guess there are some gc issues outstanding too?15:09
stakkarsis Erlang a compiled language?15:10
fijalexarkun: yes15:10
fijalstakkars: I don't know15:10
fijalwell, but gc is bigger question, rffi is first step towards implementing better gc's15:10
fijal(gc is only performance question)15:10
exarkunstakkars: it has a native code compiler, yes15:10
exarkunI'm not sure if it was used in the benchmarks fijal linked to15:10
stakkarsah. So this is comparing apples to peaches15:11
fijalstakkars: but it's still not worth to invest time in erlang if it's just slightly faster15:11
fijalstakkars: not really15:11
exarkunprobably the more interesting thing about E is what one of the people pointed out in the comments on that page15:11
fijalexarkun: what was that?15:11
exarkunwhich is that you can run each of your processes (E for "thread") on a different computer without doing any extra work15:12
stakkarsactually, time is spent in the interpreter. Things can become interesting with PyPy and the example written in RPython, at some point15:12
fijalyes, but it assumes you did extra work already15:12
exarkunfijal: wrote your program in E? :)15:12
fijalyes :)15:13
exarkunhmm why do I keep saying E.15:13
stakkarsexarkun: yes, good point. This is something to try with Stackless PyPy, not in C any more15:14
exarkunstakkars: yea :)15:14
fijalexarkun: have you tried running any twisted application on top of pypy-c?15:15
fijalor too early?15:15
stakkarsso adding to my intentions why I wanted PyPy is to have an easy way to extend/improve heavily on Stackless :-)15:16
exarkunfijal: not yet15:16
fijalexarkun: +115:17
fijalexarkun: anyway, I guess that you'll need to wait a bit, there is need for huge fixes/refactorings in pypy now15:20
fijalsorry :)15:26
exarkunfijal: understandable.  are there ideas for how those things need to happen yet?15:28
fijalnot that I know of :)15:30
fijalwell, threads need to be fixed and I'll try to tackle those15:30
fijal(ie cpython regression test hang)15:31
fijalthere is a pressure on simplification of malloc engine15:31
fijalwhich will eventually lead to new gcs (well, in a long run)15:31
fijalexarkun: when py3k will be out?15:43
exarkunpretty soon I guess, a month from now or something like that?15:44
fijalexarkun: so no, pypy won't be usable before py3k is out :)15:45
exarkunwell, that's alright15:46
exarkunpy3k won't be usable before py3k is out, either15:46
fijaleven after I guess for a while15:47
exarkunyea15:47
stakkarsok I posted to this Erlang Blog. Let's see what happens.15:50
idnarexarkun: you mean Erlang just now, not E, right?15:50
exarkunyes15:51
fijalstakkars: link please?15:52
stakkarsfijal: why, it is your link you mailed me. 15:53
stakkarshttp://muharem.wordpress.com/2007/07/31/erlang-vs-stackless-python-a-first-benchmark/#comment-178015:53
fijalstakkars: laziness mostly. You've got it in your browser, sorry :)15:54
fijalstakkars: "... PyPy project, which is going to be15:55
fijalthe superior Python at some point." - bold statement15:55
stakkarsyes, this is my conviction15:56
fijalstakkars: I share your point, absolutely15:56
fijalbut it's still not-right-now15:56
fijalstakkars: If I won't I'll not invest my own time in that, believe me :)15:56
stakkars"going to be" is not right now15:56
fijalsure ;-)15:56
fijalwell, there are open questions15:57
fijallike "why stackless build is 20% slower"15:57
fijalor so15:57
fijalI still claim that pypy is superior already, no doubt, but going to broader audience is somewhat scary for me15:57
fijalstakkars: also pypy did not try any other model than gil (and even gil is broken) so this needs time15:59
fijalstill I'm not questioning superiority of pypy :)15:59
stakkarsyes. I know why, I just can't yet see how to reduce this. The stackless support is actually too fine-grained.15:59
fijalwhat do you mean?16:00
fijalI meant "why?"16:01
fijalpedronis: are you there?16:02
stakkarsyou can switch between RPython coroutines in low-level, and 50% of all fns create extra support code, which clobbers the generated code. Although Stackless only needs to jump between app-level things.16:02
pedronisfijal: what's up?16:03
fijalpedronis: I think I need help with rpython and threads :-/16:03
pedronisnot now16:03
stakkarswe are taking little advantage of this super-capability, so it's a waste. Just hard to change16:03
pedronisI'm working on cleaning up malloc16:03
pedronisa bit more16:03
weakreftonefijal - r45485 - Intermediate checkin, some support for thread.start_new_thread16:04
fijalstakkars: ah, I got it16:04
fijalpedronis: ok, I'll be off soon, you can take a look at last checkin if you have time and will16:04
stakkarsthere are some things:16:04
fijalI'm trying to have some thread.start_new_thread extregistry entry and I receive strange errors16:04
stakkarsWe would need to transform in a way that we can take advantage of tail recursion, producing less state to save16:05
stakkarsthen we would need a way to save state without much extra code in every function. But I don't16:06
stakkarssee how to do this with a C backend, since the locals must be visible.16:06
fijalwell, not that I've got a solution out-of-the-box16:06
fijalbut I see your problem16:07
stakkarsActually, it would be more efficient if the unwind handling could be outside the functions.16:07
fijalthe idea would be to have stackless transform, transform only functions which are really up to save state, right?16:07
stakkarsso the C implementation is still more efficient, while also more incomplete :)16:07
fijalnot sure if I express this in an understandable manner :-/16:08
fijalstakkars: well, the problem is that the only way to build I/O applications is to use stackless or threads16:08
stakkarsfijal: well, I think we do this already. But there are lots of state which is not really needed.16:08
fijalthreads are not there (and are sucky), so we really need stackless in some sense16:09
stakkarsthat's good for the stackless idea 16:09
fijalwhat's good?16:10
pedronisthat our thread sucks?16:10
fijalwell, that's not good in any case16:11
stakkarshehe, yes a bit. Don't worry, joking16:11
fijalI'm worrying16:11
fijalstakkars: the thing about pypy is "we support every possible paradigm you would like to have" which is simply not true16:15
stakkarsfijal: did I say that?16:16
fijalwell, not really, but we're missing a point having broken or none implementation of thread16:16
fijalIMHO16:16
stakkarswe?16:18
pedroniswell, we have various broken stuff, nothing special about any of them, apart that adding new stuff instead of fixing the old broken one is not a completely sane thing16:18
fijalpedronis: we've got mostly threads and weakrefs, anything else?16:18
pedronisthe LLVM backend is broken for example16:19
fijalwell, that's a different issue16:19
stakkarsno16:19
pedronisthe extcompiler is kind of broken too16:19
fijaljs frontend is broken as well, but we can leave without it16:19
fijalwe can still say that we've got nice and cool python interpreter without extcompiler or llvm backend16:20
fijals/leave/live/16:20
fijalbut we cannot say that without threads16:20
pedroniswell, we need to finish converging to a sane style of ext functions, to decide how to proper GIL release around them16:20
fijalthat's happening (slowly)16:21
stakkarsif you are reducing the scope of PyPy to compete with CPython, yes.16:21
fijalstakkars: well, how can we leave without a bit of reduce?16:24
fijalstuff like extcompiler needs serious work, for which I don't see volunteers16:24
stakkarsleave what?16:25
fijals/leave/live/16:25
fijalI would blame my disgraphy :)16:25
fijaldysgraphia16:26
stakkarspedronis: ext functions are the blocker to get threading correctly?16:26
fijalstakkars: no16:27
pedronisa bit16:27
fijalheh :)16:27
pedronisreleasing the GIL around a mess of different approaches to call external function is a mess16:27
fijalwe've got enough support now, we just need to move stuff, am I right?16:28
stakkarsmessines, a transitive propery :)16:28
pedroniswell, we need to think how to release the GIL properly in the rffi world16:28
fijalstill, it's easier than question "how to release GIL here, here and there"16:28
fijal (n=fijal@245.142.broadband3.iol.cz) left irc: Remote closed the connection16:43
weakreftonepedronis - r45486 - make this test really test something and skip it because right now it is broken. malloc removal doesn't know about zero malloc17:24
Rhamphoryncus (n=rhamph@unaffiliated/rhamphoryncus) joined #pypy.17:36
stakkarsweakreftone: rename GIL17:46
Nick change: weakreftone -> GILtone17:46
Rhamphoryncusmmm GIL18:32
dialtone (n=dialtone@213-156-52-97.fastres.net) left irc: Read error: 110 (Connection timed out)18:36
dialtone (n=dialtone@213-156-52-97.fastres.net) joined #pypy.18:44
Dekcarki (i=rico@port-ip-213-211-228-77.reverse.mdcc-fun.de) joined #pypy.18:53
Action: pedronis is mostly through slaying flavored_malloc_* and zero_malloc*19:09
lacpedronis is a hero.  Would you like a laurel wreath or the king's daughter?19:41
pedronis:)19:42
Dekcarki (i=rico@port-ip-213-211-228-77.reverse.mdcc-fun.de) left irc: Read error: 104 (Connection reset by peer)20:00
Dekcarki (i=rico@port-ip-213-211-228-77.reverse.mdcc-fun.de) joined #pypy.20:13
DR0ID_ (n=DR0ID_@241.156.77.83.cust.bluewin.ch) joined #pypy.20:19
DR0ID_huh, more people than i expected ;-)20:20
DR0ID_ (n=DR0ID_@241.156.77.83.cust.bluewin.ch) left #pypy.20:20
Dekcarki (i=rico@port-ip-213-211-228-77.reverse.mdcc-fun.de) left irc: "Verlassend"20:34
DR0ID_ (n=DR0ID_@241.156.77.83.cust.bluewin.ch) joined #pypy.20:37
DR0ID_so here I am (again)20:37
lacrehi DR0iD_20:37
lacso you were asking how pypy is going.20:37
DR0ID_yes20:38
DR0ID_wait20:38
lacas a scientific experiment, it is successful beyond the wildest dreams,20:38
DR0ID_let me ask fist something:20:38
lacsure20:38
DR0ID_if I understand the pypy project correctly, you try to write a "trasnformer" that transforms python code to native c code (or other languages too), right?20:38
lacyes, also we can take input from other languages than python, prolog works20:39
lacscheme is getting very close.20:39
DR0ID_ok, so I got the idea right20:39
lacas in it works for a lot of it, not all yet.20:39
lacyou have more questions, or do I try to answer your question now?20:40
DR0ID_no more question at the moment :-)20:40
lacOk, I am trained to be a university professor.20:41
DR0ID_:-)20:41
lacand when we lecture we are suppsoed to look at our students to tell if we are boring them with stuff they already know20:41
lacI cannot see you.20:41
lacIf I bore, 'type up' ok?20:41
Action: DR0ID_ ist listening20:41
DR0ID_ok20:41
lacOk, everbody on the planet says 'C++ is the language to learn because it is fast'20:42
lacand 'dynamic languages are slow'20:42
lacand you think about that for a bit, and then conclude:20:42
lacbut LISP was dynamic, and LISP was fast.20:42
lacTherefore, being dynamic is not a-priori a barrier for being slow.20:43
mmarshall (n=mmarshal@190.4.208.45) joined #pypy.20:43
lacIt merely has never been done.20:43
DR0ID_hmm20:43
lacmmarshall: you want a recap of what I already said?20:44
DR0ID_question: what is the exact difference in static and dynamic languages?20:44
lacstatically typed: i.e you declare the type of your variables ahead of time.  int x y20:44
DR0ID_ok20:44
laclike C does.  or C++20:45
DR0ID_and dynamic as in python where a= something20:45
lacso, clearly the job is harder for a language where you can reassign the types.20:45
lacand in particular, you have to look at how a thing is used before you can tell 20:45
lacwhat it has been used for.20:46
lacAnd, if you are going to have a dynamic language type inferring machine20:46
lacyou will need a lot of memory for that.  Memory we did not have 35 years ago20:47
DR0ID_just wondering, how does it the interpreter of python?20:47
DR0ID_because the interpreter is written in C++, right?20:47
lacwhen the c ommoin wisdowm 'dynamic language must be slow' was written.20:47
lacDR0ID: you are confused.  There is the python we all know and love.  2.5 is the top version.20:48
lacIt is written in C, for the most part, not C++20:48
DR0ID_well, right20:48
DR0ID_but still20:48
lacthen there is PyPy.  We made a subset of Python -- or mostly makde rules for ourselves which20:49
lacare a subset of what you can do in python.20:49
DR0ID_if I declare in python a=something20:49
lacwe call this RPython, for restricted Python.20:49
DR0ID_then the C code of python must handle this in a way20:49
lacand pypy is written in Rpython.20:49
DR0ID_how?20:49
lacand then we generate C code.20:49
DR0ID_ok20:50
lacwe handle all of the language stuff in python.20:50
lacor rather this:20:50
mmarshalllac: sure, I'll take a recap  (my internet connection is reeeaaallly slow, but I can follow along.)20:50
lachttp://codespeak.net/pypy/dist/pypy/doc/coding-guide.html20:50
lacok, mmarshall -- about to paste the bit you missed into a msg bin to you20:51
lac (n=lac@pdpc/supporter/gold/lac) left irc: Excess Flood20:52
lac (n=lac@c-22c5e055.1321-1-64736c11.cust.bredbandsbolaget.se) joined #pypy.20:52
lacow, i was disonnected20:52
lacmaybe pasting in 35 lines to mmarshal privately was a bad idea.20:53
lacmaybe was independent.20:53
DR0ID_yeah Exces flood20:53
DR0ID_[21:53] lac has disconnected: Excess Flood20:53
lacok, my fault.20:53
lacok. so, given that  we got lots of memory then how can you get speed?  why is it that statically typed ones do get speed?20:55
lacand the answer is that they pre-know that this is an int and an int, and therefore an int int add.20:55
DR0ID_yes20:55
lacnow when CPython (what we call 2.5 and predeçessors, what you are used to calling python)20:56
lacgoes to add 2 integers, it knows that it has 2 integers as well.20:56
lacBut it has to figure those things out every time afresh.20:57
Rhamphoryncusint or long ;)20:57
DR0ID_ok that extry figuring out is making it slower?20:57
DR0ID_extra*20:57
lac(just say int for now.  this is a cool question, but orthogonal to the point I want to make)20:57
lacso, if you were willing to do it, you could say -- last time I added those things together, they were int plus20:58
Rhamphoryncus(yeah.  int->long is actually a SECOND reason why python is slower than C)20:58
lacint.  So if I just kept the int-adding framework around20:58
lacthen the next time I needed to add some ints,20:59
lacI could reuse it, rather than generate it on the fly.20:59
lacThis would be faster, at the price of a lot of memory left around.20:59
lacDoes this make sense to you?21:00
DR0ID_sure21:00
DR0ID_you still need the check, but the framework is in memory21:00
lacwe do dirty tricks like this in the graphics world all the time, but pure computer languages frown on it.21:00
laccorrect.21:00
lacSo there is this person called Armin Rigo, and he thought of this.21:00
lache is usually around here as 'arigato' or 'arigo'21:01
lacbut not now.21:01
lacAnd he made psyco21:01
lachave you ever heard of that?21:01
DR0ID_ah, psyco, always wondered how it works21:01
DR0ID_yes I have21:02
lacOk, it works like that, but since its for Cpython, it has to do its work in C21:02
DR0ID_I'm just reading the link you gave21:04
DR0ID_you have some restrictions in pypy?21:04
lacok. mmarshall and anybody else who is reading this but not understanding, speak up now21:04
lacyes, that was the coding guide I gave you which listed the restrictions in RPYTHON.21:05
lacwe have written python-in-python, yes, but we have to be careful internally to not use the most21:05
DR0ID_so the restrictions are for RPYTHON and not for python itself?21:05
lacdynamic features of python.21:06
lacwe can interpret all of python, as duýnamic as you like, and Jit it and everything.21:06
mmarshallI'm following :)21:06
lacbut if you want to hack on the compiler part you need to use rpython -- python with21:06
lacrestrictions.21:06
DR0ID_ok21:07
lacone of them is 'global variables cannot be changed'21:07
DR0ID_I have seen that, like 'const' typed variable in C21:07
lacso, what we write is in python, it is just that we cannot use the language to its most flexibleness.21:07
lacIt is still pleanty more flexible than C or C++21:08
lacand that is the point.21:08
DR0ID_sure21:08
lacVery high level languages have their advantages in writing compilers too.21:08
lacSo here is Armin Rigo and he writes pysco21:08
lachttp://psyco.sourceforge.net/21:09
lacand psyco is an extension module that you can load with your regular python program and it will speed it up21:09
DR0ID_yes, doing magic ;-)21:10
lacespecially for pygame people like you two.21:10
lacbecause we do lots and lots and lots of integer ops21:10
DR0ID_that is true21:10
lacso saving that around makes a lot of sense for us to be faster21:10
lacBut then, one day, Armin thought, it is a real pain in the ass to have to recode all this C21:11
lacall the time.21:11
DR0ID_it is some sort of caching the data21:11
lacWy not have a high level language version of this.21:11
lacand since Armin knows python, this is the language he would prefer to write compilers in.21:12
lacIt is a pretty good language for this, as well.21:12
lacRuby would also be good, as would lisp or scheme.21:12
lacC++ would not.21:12
lacperl would not but for different reasons.21:12
DR0ID_so he is involveld into pypy too?21:13
lacarmin? he is one of the 2 or 3 lead people of it.21:13
DR0ID_oh, ok21:13
lacthese days he is 'mr. pypy' not just 'mr. psyco'21:13
DR0ID_:-)21:13
lacBut should samuele pedroni (pedronis here, who is awake and will correct me if I go wrong)21:14
lacwant to be called 'mr. pypy' he can take that title too.21:14
__lucio__ (n=__lucio_@190.50.219.209) joined #pypy.21:15
lacalso stakkars: christain tismer21:15
lacand cfbolz: carl fredreich bolz21:15
lacand hpk: holger Krekel21:15
lacthose people and me were at the very first pypy sprint.  actually samuele wasn't21:16
lacthese days jakub and fijal and simonpy are doing a lot of work, as is pauldeg.21:17
lacjacob22 and I work a tiny bit when we can.21:17
lacThe rest of the people here watch mostly, though some have attended sprints and made code at one time.21:17
DR0ID_ok21:18
lacI am probably deeply slighting somebody here.21:18
lacbut the rest are lurkers.21:18
lacAntonK: you are not a lurker! you are contrinbuting even if we haven't found a way to get you to a sprint21:19
lacand I am an idiot21:19
DR0ID_so what is the current status and what is your next goal to achive?21:19
lacmaciek fijialkowski is anything nut a lurker! writes tons of the hardest stuff!  ALSO  michael hudson21:19
lacso I am an idiot at people. sorry.21:19
DR0ID_nvm21:20
AntonK:)21:20
AntonKlac: right now I'm thinking about implementing tail call stuff for llvm21:20
lacok, so I had the idea that it would be nice to be paid for this.21:20
lacso we made this a 6th framework international EU ITS project.21:21
lacand we got paid.  nice to have my tax money used for something useful for a change.21:21
DR0ID_wow, so you get paid for researching pypy?21:21
lacwe did.  stopped in march.21:21
DR0ID_ok21:21
lacwas nice for 18 months, except for all the damn EU reports.21:22
lacand the paperwork of other sorts21:22
lacBut so, this is where we stand.21:22
DR0ID_but pypy will still be developed?21:22
lacoh yes.21:23
DR0ID_ok21:23
lacbut if you know somebody who wants to pay us, we like money.21:23
DR0ID_lol, I'm a student myself, so no money ;-)21:23
lacand progress is slower now that people are not being paid to do this full time.21:24
ded (n=ded@lor34-1-82-240-239-109.fbx.proxad.net) joined #pypy.21:24
laci.e. Samuele Pedroni works for the same company I do, Open End AB in Sweden.21:24
DR0ID_so, could I take a script of mine and translate it into say C code? does that work already?21:24
lacyes21:25
lacpypy works.21:25
lacthere are no restrictions on what you can translate.21:25
lacexcept that threadiung is pretty so-so21:25
lacand maybe 2 more things.21:25
lacbut yes, it works.21:26
DR0ID_even script using pygame?21:26
DR0ID_scripts*21:26
lacyes21:26
DR0ID_good work!21:26
lacwe use pygame to develop pypy.21:26
DR0ID_how?21:26
lacwe make AST trees and display them using pygame21:26
Action: Rhamphoryncus is fixing threading for cpython. It'll presumably come back to PyPy at some point21:26
DR0ID_AST? forgot what that is, sorry21:27
Rhamphoryncusabstract syntax tree21:27
lacAbstract syntax trees21:27
DR0ID_ok21:27
Action: lac thinks that doing co-operative schedulting with tasklets and greenlets is better than threads anyhow21:27
lac.... but we ought to support threading better in any case.21:27
Action: Rhamphoryncus thinks scaling up to multiple CPUs is mandatory21:28
Action: lac wants to see Rhamphoryncus get his mods that support that past python-dev first because she thinks that will be a very hard political fight21:29
Action: lac would rather not think of the politics of python now, though, unpleasant as that is.21:29
lacSo, where are we?21:30
Rhamphoryncushehe, it could be, but posting a patch rather than arguing ill-researched half-baked ideas will help ;)21:30
AntonKlac: python politics is nothing compared to gcc's one :)21:30
Rhamphoryncusyeah, I'll shut up and let you continue :)21:30
DR0ID_I hate to so say that I will have to leave in about 10 minutes so you better hurry up if you want to tell more or something important21:31
lacOne. we have the very first just in time specialiser in the world21:31
lacthis is pure joy in scientific worlds, solves a 35+ year old scs problem21:31
Rhamphoryncusscs?21:32
DR0ID_scs problem?21:32
lacTwo, we badly need a better gc.  boehm and ref counting does not do it.21:32
lacer csc -- computer science.21:32
DR0ID_gc?21:32
lacgarbage collector21:32
DR0ID_ok21:32
lacwe thinking of porting Jype21:32
lacThree: we are now in a stage where people can implement better algorithms for types21:33
lacand21:33
lacplug them in21:33
lacsayt a b-tree version of python dicts.21:33
DR0ID_jype?21:33
lacso pypy now needs people who are hot at making algorithms21:33
lacjype is IBM new virtual sytem for java21:34
lacwe can translitterate the code21:34
DR0ID_ok, never heard about it21:34
DR0ID_making algorithms21:34
DR0ID_what kind? any?21:34
lacthere is a gc in there that has lots of cool academic papers about it, saying it is hot.21:34
lacnever used it myself21:34
lacany that would be useful to speed up a python type for sure.21:35
lacothers ... depends 21:35
DR0ID_how many types exists in python?21:36
lacwe already are 6000 times faster than Cpython for integers21:36
lacbut for strings we are slower, mostly.21:36
DR0ID_O_o21:36
lacand we are not really that good at optimising code.21:36
DR0ID_strings are more complicated datastructures21:36
lacwe have the most straightforward implementation of so many things.21:37
DR0ID_me neither ;-)21:37
dedhi21:37
DR0ID_sorry to interrupt, but I have to leave now21:37
lacok, take care and thank you.21:37
DR0ID_I will read up when I get back home21:37
DR0ID_cu21:37
lacBut the man who made direty rects c9uld make pypy gfaster, I know21:37
Action: DR0ID_ bbl21:38
lacso we want to rec ruit you in some way if we can.21:38
dedis that possible to use compiz fusion effect with python?21:38
lacwhat is 'compiz fusion effect'?21:38
dedcompiz fuision is the project who unit beryl and compiz21:38
mmarshallded: I doubt it21:38
laccan you point me at a url, I can see what I think.21:39
exarkunded: all you need to do is call some functions in a C library21:39
mmarshallded: but you're probably in the wrong channel :)21:39
dedok sorry21:39
exarkunded: there's nothing particularly difficult or interesting about compiz, nor anything which particulary ties the answer to pypy (except that you probably aren't using pypy when you write python code...)21:40
lacif these are C funtion library, then, yes you probably can but pypy is not where you want to look.21:40
lacon the other hand, I might be the person you want to talk to anyhow in a different channel like pypy21:40
lacbecause I write C extensions all the time.21:41
dedlac witch one?21:41
lacSo if you point me at a url I can say 'yes' 'no' and 'looks like a lot of work' at you if you like21:41
lacme? all sorts of things for biopython21:41
dedit is not the same thing so ...21:42
lacbut a C extension is a C extension.  what counts is how they are written not what for21:42
dedcompiz fusion has'nt got official website but you got beryl and compiz website21:43
dedhttp://www.beryl-project.org/21:43
__lucio__ (n=__lucio_@190.50.219.209) left irc: 21:45
lacOk. from this very short look -- all things using OpenGL can be wrapped nicely.21:45
dedright but they are already done effect that i would like to interact whith21:46
lacto the extent that beryl wants to do  its own stuff with desktops not using OpenGL, you could have21:47
lacproblems21:47
lacok, let us move to #python to discuss this there.21:47
lacbecause this is the wrong place21:47
dedno i am not registed21:47
dedsorry21:47
lac#python is a group just like this, so its not to matter that you are not registered21:48
dedit refuse to log unregisted user21:48
lacoh21:49
dedfrom nickserv21:49
laci did not know that this was possible for groups21:49
lacexcuse me.21:49
laccan you go to pygame?21:49
dedyes i am here21:49
mmarshallOk, so I'm sitting here looking at the pypy-1.0.0 source tree... which module should I read first?21:50
mmarshall(I skimmed a few in magic a while back, but that's it.)21:50
exarkunmmarshall: what do you want to accomplish?21:55
ded (n=ded@lor34-1-82-240-239-109.fbx.proxad.net) left #pypy.22:00
mmarshallexarkun, No clue.22:06
exarkunAh22:06
mmarshallexarkun, I just want to get to know pypy.22:06
exarkunWell, you might want to check out trunk@HEAD and look at that22:06
mmarshallallright.  I get internet over a GPRS network, so the checkout might finish overnight :P22:07
exarkunpypy/translator/goal/targetpypystandalone.py is kind of the top of the python interpreter.  or maybe pypy/bin/py.py is.22:07
mmarshallSo what is the state of threading in pypy right now?22:08
exarkun"sort of" I guess.  I don't really know in any detail.22:08
mmarshallOk, that looks like a good start.22:19
lacmmarshall sorry that I was not being attentive.  was fixing ded's problem which started out as 'I need to write a22:33
lacC exgtension' and ended up as 'this is a cool object relational mapper called dbus'22:34
lacbut it took time.22:34
lacnow, your questions that 'read the code' dpoes not fix?22:34
mmarshallhehe, actually, he started out asking to make a compiz fusion effect... but whatever.22:34
lacaha.  22:35
lacI got him onto the wrong foot, but he seems ok now.22:35
lacbut back to you.22:35
lacwhat do you want to learn about pypy now?22:35
lacreading code in this case will not help nearly as much as reading the tests wíll22:36
mmarshallAh, ok.22:36
lacfor an overview.22:36
mmarshallYeah, I was starting to notice that there is A LOT of code :)22:36
lacwe have some code that is tricky for a necessary reason22:36
lacsome because it happened that way22:36
lacand some because well, nobodyu knows that any more22:37
lac'seemed like a good idea at the time'22:37
lacreading the tests is a better way to get an overview.22:37
mmarshallA while back I made a little library that I called 'Cellulose'.  It handles 'data flow' (or it seems some people call it that.)  I'm somewhat interested in implementing some of it's ideas deeper into the language.  (Similar to some of the stuff in pypy's 'magic' package.)22:38
mmarshall(There's a half-hearted website for cellulose here: http://matthewmarshall.org/projects/cellulose/)22:39
mmarshallAnd I'm interested in the state of threading in pypy...22:41
mmarshall... with the last version of cellulose I added some stuff for spreading out calculating values over multiple threads, all with shared state and automatic cache invalidation.22:42
lacI am reading this now22:56
lacon the surface, it looks like something that pypy could speed up a lot22:57
lacis it speed your problem, or concurrency, or I don't have a problem, its just my interest, or ...22:57
lacmmarshall: do you know about the 'thunk object space' in pypy?22:59
dialtone (n=dialtone@213-156-52-97.fastres.net) left irc: Read error: 104 (Connection reset by peer)22:59
lachttp://www.nikat.org/codespeak.net/pypy/dist/pypy/doc/getting-started.html#lazily-computed-objects23:01
mmarshallspeed isn't a problem.23:04
mmarshallI guess one thing that I'm interested in is being 'robust.'23:04
mmarshallI really liked the 'taintable' thing in magic.23:05
mmarshallI guess I'm really just interested in experimenting with putting this sort of thing deeper into the language to help prevent any common mistakes.23:05
mmarshallBut maybe I'm not thinking strait.23:06
mmarshallIt's actually been about two months since I have thought about it really;  I might need to spend some time collecting my thoughts again :-/23:06
mmarshallSo, I guess to answer your question, "I don't have a problem, it's just my interest"23:08
mmarshall:)23:08
niche (n=chatzill@ool-4572d84a.dyn.optonline.net) joined #pypy.23:09
Rhamphoryncusmmarshall: I'm quite interested in anything threading related, but my knowledge of pypy itself is limited23:10
Ekarderif (n=opera@adsl-76-203-7-43.dsl.emhril.sbcglobal.net) joined #pypy.23:11
mmarshallYeah, but I didn't remember what they were called :)23:11
RhamphoryncusCellulose looks interesting, but I suspect only useful for fairly specialized problems23:12
Rhamphoryncushrm.  I wonder how that compares to using memcached for website generation :D23:13
mmarshallRhamphoryncus, At it's heart, it's really just caching with automatic invalidation... so it could be used for a lot of things.23:15
mmarshallThat's something I've thought of.23:15
mmarshallThe problem is on the database layer :-/23:15
RhamphoryncusWould I be correct in assuming the Cellulose implementation isn't distributed?23:16
mmarshallRhamphoryncus, what I originally developed cellulose for was a GUI library.23:16
lacmmarx23:17
mmarshallThe idea was that it could work similar to HTML/CSS...23:17
Rhamphoryncus*nod* I've done a GUI library too :)23:17
mmarshall... instead of HTML you have your python objects using cellulose...23:17
lacmmarshall: you are outr kind of customer.  sorry I was busy in the pypthon channel23:17
mmarshall... and you have a simple way to create a layout that is automatically kept up to day with the data in your models.23:18
Rhamphoryncusyeah23:18
lacmmarshall: you are -- no pun intended- marshelling your objects (or pickelling them) and stuffing them into a database for use later23:18
lacor what?23:18
RhamphoryncusI've believed that was the correct approach for years now.  It's still not well mainstream though23:19
mmarshallNo, it's not distributed yet :)23:19
mmarshallbut it's something I've wanted to do.23:19
mmarshalllac, np23:19
stakkarssomeone mentioned me, but I don't find it23:20
lacHe stakkars. was me23:21
mmarshalllac, No I haven't done any database stuff with cellulose yet.23:21
lacwas in 'history of project; original memebers'23:21
stakkarsMy name is Eliza. Please ask me a question.23:21
lacmmarshall: your project looks like an interesting one, one that pypy might be able to do in a completely differenet way23:22
mmarshallRhamphoryncus, what gui lib have you done?23:22
lacone that we could say '' oh cool, with taint and with I am not sure what yet' we can change the way we think about23:23
lacaps.23:23
Rhamphoryncusmmarshall: nothing published.  It was an experimentation in threading, basically ended up being similar to active objects23:23
DR0ID_ (n=DR0ID_@241.156.77.83.cust.bluewin.ch) left irc: "Miranda IM! Smaller, Faster, Easier. http://miranda-im.org"23:23
stakkarslac: they want me to give a keynote in Dresden, too. Should I go for it? Fearing overloads.23:23
lacstakkars: being eliza was not listed in your credits.  you will have to take credit for that yourself-23:23
lacstakkars what days?23:23
stakkarsunfortunately on the 7th. I would give the keynote, and then go to England :-(  hate to hurry23:24
stakkarsbui I also hate to not take advantage. Oh. Should I?23:25
stakkarsthe eliza stuff is granted, btw. try it.23:25
lacstakkars: are you to give the same talk? if so do it.23:26
lacexcept that I want you on my pyweek team to make a game in one week.,23:26
lacbut curse personal pleasure and personal advantage23:27
lacprofesionally its better if you go!23:27
stakkarsI am going to give 2 talks at PyCon U>K, one for beginners and an advanced one.23:27
lacyes, but i want us to make a game in one week ending the 9th23:27
lacpyweek end is pyconul end23:27
stakkarsno idea what they expect from me in Dresden. Maybe something completely differect, like Arlo. Dunno if I'm ready for this.23:28
lacwe could sprint before on something not serious like pypy  but fun like pyweek23:28
lacstaqkkars: no aggreeing before you find out what they want.23:28
stakkarsAnd, especially different: will be in German, I guess :-]23:28
lacnot if its the same topic.23:28
lacI mean, will be hell if I had to give a talk in German23:29
lacbut for you, english is so good, the pyconuk will not stress you23:29
stakkarsI almost never gave a talk in German. Would be a bunch of wording jokes, I think23:30
nicheDoes anyone know of the JoelOnSoftware article that dealt with compilers? 23:32
stakkarslac: no, talking will be fine. And I will do a nice beginner's talk with lots of examples.23:33
ergoniche: the one who lead to the discussion about PIC's and the self project?23:34
nicheI'm not entirely sure, because I did a Google search and he had more than one article... but this specific article had 5 or so imaginary scenarios, and he went on to talk about how a compiler was the best solution.23:34
stakkarslac: but a keynote, while would love this more than anything else, what should I tell them? I would need to be up-to-date with everything, but I'm far away from this. Well, not soo far, maybe23:36
Action: stakkars right now setting up lots of servers and frameworks, going to supports sites like mine and stackless and starship, all that long-neglected stuff, again. Maybe I could use this for a talk...23:38
stakkarslac: ok I'll write to the dresden guys, asking what they would expect from me.23:40
GILtonepedronis - r45487 - kill flavor_malloc_*, zero_malloc_* now only malloc_* operations should be present in graphs until gc transform malloc and malloc_varsize now always carry a dictionary of flags as second operand, the 23:42
pedronisgood, now both gc transformation and backends need to care about less stuff23:46
GILtonepedronis - r45488 - update with next steps regarding gc/mem mgmt stuff23:55
lacstakkars: agree to do it.  beause you want to.23:56
stakkarswot?23:57
lacstakkars I am in bad shape holding irc conversations on 3 windows at once and watching my program flunbk 30 tests23:57
lacI say, well, go give the talk in german.  sounds like you want to23:57
stakkarslac: you want me to overly stress myself? Yes, I understand.23:58
lacstakkars not at all23:58
stakkarsyes I want to.23:58
lacwhat I want is for us to make this in such a way it is not overly stressful.23:58
lacit is easy to say ' cannot, overstress'23:59
lacbut you want this.23:59
lacso we make a plan that does not damage your health23:59
stakkarsI want to harden my place in the noosphere, obviously. There seems to be a lack, since some while.23:59
--- Sun Aug 5 200700:00

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