#jython IRC Log (v0.9)


IRC Log for 2013-09-06

Timestamps are in GMT/BST.

[0:08] * robbyoconnor (~wakawaka@guifications/user/r0bby) Quit (Excess Flood)
[0:15] * robbyoconnor (~wakawaka@guifications/user/r0bby) has joined #jython
[1:10] * enebo (~enebo@c-75-73-8-169.hsd1.mn.comcast.net) has joined #jython
[1:43] * enebo (~enebo@c-75-73-8-169.hsd1.mn.comcast.net) Quit (Quit: enebo)
[5:20] * lheuer (~Adium@g228227060.adsl.alicedsl.de) has joined #jython
[5:20] * lheuer (~Adium@g228227060.adsl.alicedsl.de) Quit (Changing host)
[5:20] * lheuer (~Adium@unaffiliated/lheuer) has joined #jython
[5:37] * robbyoconnor (~wakawaka@guifications/user/r0bby) Quit (Ping timeout: 248 seconds)
[5:38] * robbyoconnor (~wakawaka@guifications/user/r0bby) has joined #jython
[5:42] * robbyoconnor (~wakawaka@guifications/user/r0bby) Quit (Ping timeout: 246 seconds)
[5:44] * robbyoconnor (~wakawaka@guifications/user/r0bby) has joined #jython
[5:52] * robbyoconnor (~wakawaka@guifications/user/r0bby) Quit (Ping timeout: 264 seconds)
[6:08] * robbyoconnor (~wakawaka@guifications/user/r0bby) has joined #jython
[7:18] <topi`> jimbaker: now that the custom proxymaker is there in the trunk, what can one do with it? :)
[7:20] * supersven__ (~sven@port-54601.pppoe.wtnet.de) has joined #jython
[7:24] * supersven_ (~sven@port-15869.pppoe.wtnet.de) Quit (Ping timeout: 264 seconds)
[8:20] * supersven__ (~sven@port-54601.pppoe.wtnet.de) Quit (Ping timeout: 246 seconds)
[8:38] * supersven__ (~sven@ has joined #jython
[12:52] * enebo (~enebo@c-75-73-8-169.hsd1.mn.comcast.net) has joined #jython
[12:57] * enebo (~enebo@c-75-73-8-169.hsd1.mn.comcast.net) Quit (Quit: enebo)
[13:25] * zz_whg is now known as whg
[13:27] * enebo (~enebo@ has joined #jython
[14:02] * whg is now known as zz_whg
[14:21] * purplefox (~purplefox@host-80-43-245-210.as13285.net) has joined #jython
[14:27] * zz_whg is now known as whg
[15:21] <jimbaker> topi`, create *exact* java classes to proxy for python classes. and write that in python itself. so a proxy is the piece that provides the java <=> python integration, and it's what's part of the MRO for a type that derives from a java class and/or interfaces
[15:22] <jimbaker> proxies from the java side know how to "find" python - that is get a jython runtime, and initialize all corresponding python pieces. this has been in jython for a long time. all this work does is make the control precise
[15:55] * lheuer (~Adium@unaffiliated/lheuer) Quit (Quit: Leaving.)
[15:59] * purplefox_ (~purplefox@host-80-43-245-210.as13285.net) has joined #jython
[16:16] <topi`> jimbaker: is that somehow similar to that jythonc compiling mechanism in jython 2.0?
[16:22] * purplefox (~purplefox@host-80-43-245-210.as13285.net) Quit (Quit: Leaving)
[16:32] <jimbaker> topi`, not really. jythonc was separate backend that produced java code, vs java bytecode
[16:32] <jimbaker> it still depended on the jython runtime
[16:32] <jimbaker> essentially this was a pointless bit of work
[16:34] <jimbaker> the only thing that jythonc added to the mix was doing ahead of time compilation. but that's easy enough to do in regular jython, through the compileall module and tools that rely on it
[16:34] <jimbaker> such as setuptools
[16:34] <jimbaker> which has the advantage that is standard python
[16:38] * lheuer (~Adium@g228227060.adsl.alicedsl.de) has joined #jython
[16:38] * lheuer (~Adium@g228227060.adsl.alicedsl.de) Quit (Changing host)
[16:38] * lheuer (~Adium@unaffiliated/lheuer) has joined #jython
[17:02] <jimbaker> topi`, i put up a gist of a decompiled proxy class, just to make it very obvious what's going on here:
[17:02] <jimbaker> https://gist.github.com/jimbaker/6466609
[17:03] <jimbaker> so basically a mix of a class that's being extended (from storm, BaseRichBolt) and two key interfaces, PyProxy, ClassDictInit, which make it possible for jython runtime to work against
[17:06] <jimbaker> so a couple of things here: 1) there's a standard dynamic lookup, albeit via findPython, of methods on the python side from java; 2) this obviously could eventually be a target of invokedynamic - findPython is generally a fairly cheap threadlocal lookup
[17:07] <jimbaker> (the only part that cannot be completely inlined away)
[19:36] * Arfrever (~Arfrever@apache/committer/Arfrever) Quit (Ping timeout: 245 seconds)
[20:38] <jimbaker> topi`, i forgot to mention - so one thing i could readily do when emitting this proxy - since we now have complete control - is add appropriate constructors, instead of just a no-arg constructor, then pass through to __init__ via __initProxy__. This method can take an array of args that are then converted as usual into python space.
[20:43] * whg is now known as zz_whg
[20:55] * thereisnospoon_ (~thereisno@27-33-1-87.tpgi.com.au) Quit (Ping timeout: 276 seconds)
[21:06] * thereisnospoon_ (~thereisno@27-33-1-87.tpgi.com.au) has joined #jython
[21:15] * enebo (~enebo@ Quit (Ping timeout: 246 seconds)
[23:38] * agronholm (~agronholm@2001:1bc8:102:6f29:4857:c82f:cbbe:d7d7) Quit (Ping timeout: 264 seconds)


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