#jython IRC Log (v0.9)

Index

IRC Log for 2011-04-11

Timestamps are in GMT/BST.

[0:48] * lopex (lopex@84-10-213-252.dynamic.chello.pl) Quit (Ping timeout: 260 seconds)
[0:49] * lopex (lopex@84-10-213-252.dynamic.chello.pl) has joined #jython
[1:20] * shashank (~shashank@c-98-245-87-8.hsd1.co.comcast.net) has joined #jython
[1:32] * lopex (lopex@84-10-213-252.dynamic.chello.pl) Quit ()
[1:37] * lopex (lopex@84-10-213-252.dynamic.chello.pl) has joined #jython
[1:56] * lopex (lopex@84-10-213-252.dynamic.chello.pl) Quit ()
[2:01] * shashank (~shashank@c-98-245-87-8.hsd1.co.comcast.net) Quit (Quit: Leaving.)
[2:02] * shashank (~shashank@c-98-245-87-8.hsd1.co.comcast.net) has joined #jython
[2:36] * shashank (~shashank@c-98-245-87-8.hsd1.co.comcast.net) Quit (Ping timeout: 258 seconds)
[3:22] * shashank (~shashank@c-98-245-87-8.hsd1.co.comcast.net) has joined #jython
[3:25] * shashank (~shashank@c-98-245-87-8.hsd1.co.comcast.net) Quit (Client Quit)
[3:56] * juneau001 (~juneau@50.44.42.77) Quit (Quit: juneau001)
[6:29] * thobe (~Adium@c83-249-235-76.bredband.comhem.se) Quit (Quit: Leaving.)
[6:52] * thobe (~Adium@212-162-171-110.skbbip.com) has joined #jython
[6:54] * jabley (~jabley@cpc1-farn4-0-0-cust318.6-2.cable.virginmedia.com) has joined #jython
[7:21] * jabley (~jabley@cpc1-farn4-0-0-cust318.6-2.cable.virginmedia.com) Quit (Quit: jabley)
[7:43] * thobe1 (~Adium@212-162-171-110.skbbip.com) has joined #jython
[7:46] * thobe (~Adium@212-162-171-110.skbbip.com) Quit (Ping timeout: 246 seconds)
[7:55] * JamesJRH (~james@vennington.plus.com) Quit (Remote host closed the connection)
[7:55] * JamesJRH (~james@vennington.plus.com) has joined #jython
[8:09] * jabley (~jabley@78-105-125-211.zone3.bethere.co.uk) has joined #jython
[8:24] * thobe1 (~Adium@212-162-171-110.skbbip.com) Quit (Ping timeout: 248 seconds)
[8:30] * thobe (~Adium@212-162-171-110.skbbip.com) has joined #jython
[9:33] * JamesJRH_ (~james@vennington.plus.com) has joined #jython
[9:35] * JamesJRH (~james@vennington.plus.com) Quit (Remote host closed the connection)
[9:41] * acegiak (~acegiak@ppp59-167-95-26.static.internode.on.net) has left #jython
[10:01] * kilon (~kilon@adsl-245.109.242.183.tellas.gr) has joined #jython
[10:14] * lopex (531346b2@gateway/web/freenode/ip.83.19.70.178) has joined #jython
[10:24] * stakkars (~tismer@89.204.153.72) Quit (Ping timeout: 246 seconds)
[10:43] * kilon (~kilon@adsl-245.109.242.183.tellas.gr) Quit (Quit: Leaving)
[11:14] * juneau001 (~juneau@131.225.24.52) has joined #jython
[11:15] * kilon (~kilon@adsl-28.79.107.62.tellas.gr) has joined #jython
[12:16] * lopex (531346b2@gateway/web/freenode/ip.83.19.70.178) Quit (Ping timeout: 252 seconds)
[12:20] * lopex (531346b2@gateway/web/freenode/ip.83.19.70.178) has joined #jython
[12:25] * kilon is now known as Kilon_Work
[12:30] * JamesJRH_ is now known as JamesJRH
[12:31] * kilon (~kilon@79.107.165.234) has joined #jython
[12:32] * kilon (~kilon@79.107.165.234) Quit (Read error: Connection reset by peer)
[12:34] * kilon (~kilon@79.107.167.112) has joined #jython
[12:34] * Kilon_Work (~kilon@adsl-28.79.107.62.tellas.gr) Quit (Ping timeout: 246 seconds)
[12:34] * kilon is now known as Kilon_Work
[12:43] * Kilon_Work is now known as Kilon_is_Fired
[12:44] * Kilon_is_Fired is now known as Kilon_Work
[14:17] * thekilon (~kilon@91.140.110.70) has joined #jython
[14:18] * thekilon (~kilon@91.140.110.70) Quit (Client Quit)
[14:19] * thekilon (~kilon@91.140.110.70) has joined #jython
[14:19] * Kilon_Work (~kilon@79.107.167.112) Quit (Ping timeout: 276 seconds)
[14:20] * thekilon is now known as kilon
[15:13] * jimbaker (~jbaker@c-24-8-39-78.hsd1.co.comcast.net) has joined #jython
[15:32] <JamesJRH> Hello. Python is my language of choice. I would like to make some simple apps for mobile phones, especially Android. How do I do this in Python using Jython? Where can I find out about this?
[15:37] * lopex (531346b2@gateway/web/freenode/ip.83.19.70.178) Quit ()
[15:46] * shashank (~shashank@c-98-245-87-8.hsd1.co.comcast.net) has joined #jython
[15:55] * kilon (~kilon@91.140.110.70) Quit (Quit: Leaving)
[16:21] * lopex (lopex@84-10-213-252.dynamic.chello.pl) has joined #jython
[16:52] * thobe (~Adium@212-162-171-110.skbbip.com) Quit (Quit: Leaving.)
[17:03] * jabley (~jabley@78-105-125-211.zone3.bethere.co.uk) Quit (Quit: jabley)
[17:08] <agronholm> JamesJRH: currently you can't
[17:11] <jimbaker> JamesJRH, it's unlikely to see support until it supports invokedynamic - not certain if that's doable with the java 6 backport either
[17:12] <jimbaker> now that new dev is targeting java 6 generally and the compiler/proxy work (which is necessary for android) that would be necessary is only targeting indy
[17:24] <agronholm> does dalvik support invokedynamic?
[17:29] <jimbaker> agronholm, not yet to my knowledge
[17:30] <jimbaker> it's ironic that a key piece i built for dalvik support (python bytecode vm) is really going to be used first for the indy work
[17:31] <jimbaker> i would like to see dalvik, but i'd prefer to spend time working to make jython much faster
[17:33] <jimbaker> fwiw, shashank was able to get the regrtest working with indy in the use of builtin functions. we need to rethink how we optimize this, but it basically passes (* exception is uninteresting, subprocess doesn't inherit jvm flags, but indy support will be turned on by default in the next release or so)
[17:39] <jimbaker> agronholm, i suppose one possibility is to just use python bytecode vm completely. this might be a better distribution mechanism for dalvik. of course, i have already about extending it so that it caches indy CallSites for LOAD_GLOBAL/LOAD_NAME bytecodes, but that's probably some time before we would bother doing that
[17:40] <jimbaker> if we did support dynamic proxies as an alternative to java bytecode generating proxies, that would suffice for most cases in working with android i would think
[17:44] <agronholm> but wouldn't that be a lot slower?
[17:44] * sitkack (~sitkack@sea1nat.classmates.com) has joined #jython
[17:45] <jimbaker> agronholm, maybe. i think it matters for client type code however
[17:45] <jimbaker> matters *less*
[17:48] <jimbaker> remember cpython does fine with its own bytecode vm, they are not so slow. just not fast, or inlineable without doing what #pypy does
[17:50] <agronholm> cpython does not have to access java class members
[17:50] <jimbaker> agronholm, which is completely unrelated
[17:50] <jimbaker> the python bytecode vm for jython can support that just fine
[17:50] <agronholm> what do the dynamic proxies do then
[17:51] <jimbaker> we need some sort of proxy mechanism to support inheritance
[17:52] <jimbaker> dynamic proxies allow python classes to subclass java interfaces (but not obviously for arbitrary java classes, we need java bytecode gen for that)
[17:54] <jimbaker> such bytecode gen of proxies could be done ahead of time for jython. that plus dynamic proxy support should suffice for android, once we have complete support for the python bytecode vm (basically need a pyc compiler)
[18:03] <JamesJRH> agronholm: Ok, I found Jythonroid which is dead but it pointed me to SL4A. (http://code.google.com/p/android-scripting/) This looks interesting and is probably what I'm looking for.
[18:05] <JamesJRH> However, can Jython allow me to make apps for ordinary Java-compatible phones like my old Nokia 6300? (http://en.wikipedia.org/wiki/Nokia_6300)
[18:05] <agronholm> no
[18:06] <JamesJRH> :(
[18:06] <JamesJRH> Why not?
[18:06] <agronholm> those phones only support java me
[18:06] <agronholm> jython requires java se
[18:06] <JamesJRH> Oh.
[18:07] <JamesJRH> Is there a Jython port to ME?
[18:07] <agronholm> would I have said "no" if there was?
[18:08] <JamesJRH> Ok, will there ever be?
[18:08] <jimbaker> JamesJRH, i believe someone asked about this a while ago with the intent of porting jython 2.2, that's the only reasonable approach
[18:08] <agronholm> I very much doubt that
[18:08] <agronholm> java me is dying anyway
[18:08] <jimbaker> except that no one in jython dev cares
[18:09] <jimbaker> it would require a lot of work for little payoff
[18:10] * jabley (~jabley@cpc1-farn4-0-0-cust318.6-2.cable.virginmedia.com) has joined #jython
[18:12] * sitkack (~sitkack@sea1nat.classmates.com) Quit (Read error: Connection reset by peer)
[18:12] * sitkack (~sitkack@sea1nat.classmates.com) has joined #jython
[18:13] <JamesJRH> What's Jython for then? If you only use it on systems that can run Java SE, then those systems can run CPython or PyPy. Faster.
[18:14] <agronholm> neither cpython or pypy can mingle with java code
[18:22] <jimbaker> JamesJRH, although at some point, it's quite possible that jython could run faster and more scalably than pypy. it will require some work, but much less so than pypy (from our standpoint - we assume a great jvm, including this new work - http://download.java.net/jdk7/docs/api/java/lang/invoke/package-summary.html)
[18:23] <JamesJRH> Maybe add "Can I use Jython to make apps for mobile phones?" to: http://wiki.python.org/jython/JythonFaq
[18:25] <jimbaker> JamesJRH, please feel free to update the wiki, that's always appreciated
[18:27] <JamesJRH> Also, change "Jython: Python for the Java Platform" to "Jython: Python for the Java SE Platform" on: http://www.jython.org/
[18:29] <agronholm> Java SE is Java, Java ME on the other hand is a stripped down version
[18:29] <pjenvey> from a marketting perspective, that doesn't quite have the same ring to it
[18:29] <jimbaker> JamesJRH, your suggestion is noted, but i don't think ME has any appreciable market share in the java space. for almost all devs, java SE is java
[18:31] <jimbaker> we make very clear elsewhere what the minimum requirements are, the title doesn't have to be lengthy list of them
[18:34] <JamesJRH> jimbaker: As it appears that I can edit the wiki as a guest, and that you'd appreciate the update (ie. you've implied permission), I will edit the wiki. What section would you prefer?
[18:35] <JamesJRH> GeneralInfo?
[18:36] <jimbaker> JamesJRH, please feel free to edit the section(s) you think most fit. in general, we'd prefer people create a login, but it's ok to do this as a guest. we trust your judgment!
[18:41] * sitkack (~sitkack@sea1nat.classmates.com) Quit (Read error: Connection reset by peer)
[18:41] * sitkack (~sitkack@sea1nat.classmates.com) has joined #jython
[18:50] * jabley (~jabley@cpc1-farn4-0-0-cust318.6-2.cable.virginmedia.com) Quit (Quit: jabley)
[18:59] * srcerer (~chatzilla@dns2.klsairexpress.com) has joined #jython
[19:10] * sitkack (~sitkack@sea1nat.classmates.com) Quit (Read error: Connection reset by peer)
[19:10] * sitkack (~sitkack@sea1nat.classmates.com) has joined #jython
[19:15] <JamesJRH> There ,new question for you. :)
[19:15] * juneau001 (~juneau@131.225.24.52) Quit (Quit: juneau001)
[19:15] <JamesJRH> There, new question for you. :)
[19:16] * jabley (~jabley@cpc1-farn4-0-0-cust318.6-2.cable.virginmedia.com) has joined #jython
[19:39] * sitkack (~sitkack@sea1nat.classmates.com) Quit (Read error: Connection reset by peer)
[19:39] * sitkack (~sitkack@sea1nat.classmates.com) has joined #jython
[19:41] <JamesJRH> pjenvey: Good point. Agreed.
[19:46] <JamesJRH> jimbaker: I didn't really want to make an account just for a one-off edit. As I have no uses for Jython, I'm unlikely to be involved in the project, and probably won't edit the wiki again.
[19:49] <JamesJRH> jimbaker "the title doesn't have to be lengthy list of them": Fair point. :)
[19:59] <JamesJRH> jimbaker "for almost all devs, java SE is java": Surely that's a matter of context? I wouldn't be surprised if most mobile and embedded systems developers have more experience with ME than SE.
[20:08] * sitkack (~sitkack@sea1nat.classmates.com) Quit (Read error: Connection reset by peer)
[20:08] * sitkack_ (~sitkack@sea1nat.classmates.com) has joined #jython
[20:31] * thobe (~Adium@c83-249-235-76.bredband.comhem.se) has joined #jython
[20:32] <jimbaker> JamesJRH, truly it is a separate community for java me then. but it doesn't seem like mobile apps really appeared in any widespread way until android/iphone. in any event, jython 2.5 as of today has too much of a footprint for even smartphones
[20:32] <jimbaker> we are going to take some steps to slim it down, and i can see its value for android tablets
[20:37] * sitkack_ (~sitkack@sea1nat.classmates.com) Quit (Read error: Connection reset by peer)
[20:37] * sitkack (~sitkack@sea1nat.classmates.com) has joined #jython
[20:40] <JamesJRH> jimbaker: Nice. :) Yes, if you keep portability in mind it'll be easier when someone does try to port it.
[20:44] * sarjuva__ is now known as sarjuva
[20:49] * jabley (~jabley@cpc1-farn4-0-0-cust318.6-2.cable.virginmedia.com) Quit (Quit: jabley)
[21:06] * sitkack (~sitkack@sea1nat.classmates.com) Quit (Read error: Connection reset by peer)
[21:06] * sitkack_ (~sitkack@sea1nat.classmates.com) has joined #jython
[21:29] * lopex (lopex@84-10-213-252.dynamic.chello.pl) Quit (Ping timeout: 252 seconds)
[21:29] * lopexx (lopex@84-10-213-252.dynamic.chello.pl) has joined #jython
[21:35] * sitkack (~sitkack@sea1nat.classmates.com) has joined #jython
[21:38] * sitkack_ (~sitkack@sea1nat.classmates.com) Quit (Ping timeout: 246 seconds)
[21:43] * lopexx (lopex@84-10-213-252.dynamic.chello.pl) Quit ()
[21:43] * lopex (lopex@84-10-213-252.dynamic.chello.pl) has joined #jython
[22:02] <JamesJRH> Bye. :)
[22:02] * JamesJRH (~james@vennington.plus.com) has left #jython
[22:04] * sitkack (~sitkack@sea1nat.classmates.com) Quit (Read error: Connection reset by peer)
[22:04] * sitkack (~sitkack@sea1nat.classmates.com) has joined #jython
[22:33] * sitkack (~sitkack@sea1nat.classmates.com) Quit (Read error: Connection reset by peer)
[22:33] * sitkack_ (~sitkack@sea1nat.classmates.com) has joined #jython
[22:33] <jimbaker> shashank, made some good progress on mapping indy to mutable global functions over the weekend
[22:34] <jimbaker> i think i have all the issues worked out in principle :)
[22:34] <jimbaker> next, i'm going to look at this with respect to getattr
[23:01] * sitkack_ (~sitkack@sea1nat.classmates.com) Quit (Read error: Connection reset by peer)
[23:02] * sitkack (~sitkack@sea1nat.classmates.com) has joined #jython
[23:26] <shashank> jimbaker: that's cool. I myself was pretty busy this weekend.
[23:26] <shashank> I did run the perf tests on my machine
[23:27] <shashank> and the results don't differ significantly. I will now look at the assembly generated in both x86 and amd64 and see what I can extract from that
[23:30] * sitkack (~sitkack@sea1nat.classmates.com) Quit (Read error: Connection reset by peer)
[23:30] * sitkack_ (~sitkack@sea1nat.classmates.com) has joined #jython
[23:30] * sitkack_ is now known as sitkack
[23:44] <jimbaker> shashank, sounds good. i don't think we will get improved perf without redoing the callsite generation, but worth checking regardless
[23:44] <jimbaker> one interesting thing that came up as i was look at getglobal is that we also have to consider dynamic scoping issues
[23:44] <jimbaker> because of usage like the exec statement
[23:45] <jimbaker> (the dynamic scoping arises from how it interacts with threadlocal as seen in ThreadState_
[23:46] <jimbaker> fortunately for real usage, this doesn't come up - we simply need to insure that the fallback methods can access it, that's all, and provide efficient guards and invalidation
[23:47] <jimbaker> this is because most code objects are bound by a function object (PyFunction), which in turn binds the global scope in effect at the time the function is bound (func_globals) - this is the module namespace
[23:49] <jimbaker> so as long as we can guard on this setting, which can be efficiently done in fact, we are ok
[23:50] <jimbaker> shashank, i also found the new SwitchPoint support quite useful in my design work
[23:51] <shashank> jimbaker: the SwitchPoint is very similar to the guardWithTest right?
[23:51] <jimbaker> shashank, but better
[23:51] <shashank> I should look into that more
[23:51] <jimbaker> basically you can invalidate any number of method handles with it
[23:52] <jimbaker> shashank, i think SwitchPoint + VolatileCallSite are the key parts of indy for jython
[23:52] <jimbaker> it's possible we might be able to use other CallSites instead, but probably not without some form of typing
[23:53] <jimbaker> VolatileCallSite gives us proper python memory semantics, which are arguably *volatile*
[23:57] <shashank> I was just reading the SwitchPoint docs, yes, this will be ideal
[23:58] <shashank> yes, for now Volatile makes most sense too
[23:59] <jimbaker> shashank, even more likely than invalidation is probably VolatileCallSite#setTarget
[23:59] * sitkack (~sitkack@sea1nat.classmates.com) Quit (Read error: Connection reset by peer)
[23:59] <jimbaker> this will require a careful mgmt of the CallSite objs from the namespace
[23:59] * sitkack (~sitkack@sea1nat.classmates.com) has joined #jython

Index

These logs were automatically created by JythonLogBot_ on irc.freenode.net using a slightly modified version of the Java IRC LogBot (github).