#jython IRC Log

Index

IRC Log for 2015-12-09

Timestamps are in GMT/BST.

[5:04] -adams.freenode.net- *** Looking up your hostname...
[5:04] -adams.freenode.net- *** Checking Ident
[5:04] -adams.freenode.net- *** No Ident response
[5:04] -adams.freenode.net- *** Couldn't look up your hostname
[5:04] * JythonLogBot (~PircBot@74.50.59.201) has joined #jython
[5:04] * Topic is 'Jython 2.7 final released: http://tinyurl.com/muqfuul | This channel is logged: http://jython.extreme.st/irclogs/ | Please update the wiki: http://wiki.python.org/jython | Jython Book: http://jythonbook.com | Podcast: http://jython.org/jythonpodcast/'
[5:04] * Set by agronholm!~agronholm@nblzone-211-20.nblnetworks.fi on Sun May 03 05:10:52 UTC 2015
[5:39] * eatkin (~eatkin@166.70.212.121) Quit (Ping timeout: 272 seconds)
[5:46] * eatkin (~eatkin@166.70.212.121) has joined #jython
[5:46] * eatkin (~eatkin@166.70.212.121) Quit (Client Quit)
[5:46] * eatkin (~eatkin@166.70.212.121) has joined #jython
[8:09] * maxpowa (maxpowa@ipv6.everythingisawesome.us) Quit (Ping timeout: 264 seconds)
[9:12] * maxpowa (maxpowa@ipv6.everythingisawesome.us) has joined #jython
[9:17] * maxpowa (maxpowa@ipv6.everythingisawesome.us) Quit (Ping timeout: 250 seconds)
[9:24] * maxpowa (maxpowa@ipv6.everythingisawesome.us) has joined #jython
[11:13] * Arfrever (~Arfrever@apache/committer/Arfrever) has joined #jython
[11:13] * ChanServ sets mode +o Arfrever
[12:22] * verterok is now known as verterok-away
[12:27] * verterok-away is now known as verterok
[12:28] * verterok (~ggonzalez@156.35.213.162.lcy-02.canonistack.canonical.com) Quit (Changing host)
[12:28] * verterok (~ggonzalez@unaffiliated/verterok) has joined #jython
[13:03] <topi`> jimbaker: what's the status of py3 efforts right now? I think python 3.3 would be a valid candidate for first efforts - it doesn't have too many changes (from the point of view of 3.2) and asyncio can be implemented via a pip install
[13:03] <topi`> I have, unfortunately, shifted my corporate code efforts from py2 to py3 as of last year
[13:04] <topi`> just to synchronize with my colleagues
[13:05] <topi`> and, do you think it would be possible to do the work at such a level (like, descriptive language) that would also benefit the folks at PyPy?
[13:05] <topi`> and automatic code generation for both projects ;) or am I just dreaming too much?
[13:06] <agronholm> topi`: how is that unfortunate? :D
[13:07] <agronholm> I too am trying to get rid of my last py2 project by porting it to py3
[13:09] <topi`> agronholm: it is, in the sense that the "alternative" python implementations like Jython and PyPy are stuck in older py.versions
[13:09] <topi`> my code uses elements that require at least python 3.3
[13:09] <agronholm> we wouldn't be stuck if we could reasonably help it
[13:09] <agronholm> but alas, nobody has time for development :(
[13:09] <topi`> exactly
[13:10] <agronholm> whereas the pypy folks have publicly stated that they have no interest in py3
[13:10] <topi`> the corporate customers are served first; and then the family, and then finally some hobby projects
[13:10] <topi`> the pypy folks are enamored in their speedups, hence, no space for py3
[13:11] <topi`> twisted is great; but I have to admit py3.4's Coroutines are much nicer
[13:11] <topi`> than, say, inlineCallbacks
[13:11] <agronholm> yes
[13:11] <agronholm> native coroutines even better
[13:12] <topi`> Python just gained another level of usefulness after the coroutines and friends in 3.4, now there's nothing that e.g. node.js does better than python
[13:13] <topi`> I'm tempted to say it puts node.js to shame :)
[13:13] <topi`> (we have one semi-large corporate codebase written in node.js)
[13:13] <agronholm> I've been contemplating building a node.js bridge
[13:13] <agronholm> for, say, rendering template fragments
[13:13] <topi`> the only guy who finds it "easy to read" is the one who created it :)
[13:14] <agronholm> if you have a client side template engine but need to support SEO, you'd need something like that
[14:04] * verterok is now known as verterok-away
[14:53] * xemdetia (xemdetia@nat/ibm/x-nxjjurvqrdzhsjga) has joined #jython
[15:26] <topi`> Jython is surprisingly little known amongst my (java-speaking) colleagues, I thought people did try it out in the early 2000s
[15:26] <topi`> but maybe not. Clojure seems to be hot :)
[15:27] <topi`> but I happen to prefer python-style programming over lisp-style :)
[16:06] <xemdetia> topi`, I use both and clojure just is solving a different problem
[16:06] <xemdetia> at least when it comes to JVM langs
[16:06] <topi`> are there other reasons to use clojure than the STM (transactional memory)?
[16:07] <xemdetia> clojurescript for single code base
[16:07] <xemdetia> concurrency primitives are really good
[16:07] <topi`> I guess it's quite a bit slower than non-dynamic languages like Scala
[16:07] <topi`> or is this true at all?
[16:07] <xemdetia> scala in my opinion is slower than clojure
[16:07] <topi`> oh
[16:07] <xemdetia> clojure is a simpler language overall
[16:07] <topi`> I bet anything is simpler than Scala ;)
[16:08] <xemdetia> well it's not simplicity
[16:08] <xemdetia> just doing the type inference and other PL things is just not something clojure does
[16:08] <xemdetia> clojure is a lot more pragmatic
[16:09] <xemdetia> 'I have to glue these java libs together and make a clearer server implementation'
[16:09] <xemdetia> clojure problem
[16:13] <xemdetia> jython tries to bridge cleanly a python universe and a java universe side by side while clojure is more natively java so interop is a lot more clear; arraylist is still just arraylist in both clojure and jython
[16:14] <xemdetia> so it really depends on what you are trying to do
[16:19] <jimbaker> jython 3.4 or 3.5 or 3.x - yes, we should do that! it's certainly more interesting than the issues that we are working on to close up 2.7.1 re ssl and pip
[16:20] <jimbaker> i'm especially interested in supporting static type annotations, because we could do a lot with respect to using java types
[16:21] <jimbaker> i believe i am the person who stalled the work on jython 3.4 - it's a question of implementing yield from
[16:21] <jimbaker> i volunteered to work on it, and then got sucked into other things
[16:22] <xemdetia> jim was that to someone before I started talking
[16:22] <xemdetia> :)
[16:24] <jimbaker> xemdetia, yes, responding to topi` - yield from of course enables the coro support. we might as well implement async as well while we are at it
[16:25] <jimbaker> the other thing is we could implement a high performance event loop directly on top of netty, much as i have occasionally suggested doing for twisted
[16:25] <jimbaker> nickmbailey, ^^^, that would be for you and tom
[16:28] <jimbaker> re performance improvements - i don't think it really matters for jython. if we can remove the overhead of supporting sys._getframe (and related introspection) with a bit of cleverness, it would apply the same to 2.7 or 3.x
[16:29] <jimbaker> i think i know how to do this... and then invokedynamic could work very well
[16:36] <topi`> jimbaker: ...and type annotations in python 3.x would work some magic as well :)
[16:36] <topi`> if even for some functions...
[16:36] <topi`> I imagine we could achieve same kinds of speedups as ppl are getting with Cython when the types are properly defined
[16:37] <jimbaker> topi`, although mypy specifically is a type checker, and supports gradual typing, it is not unreasonable to use these type annotations in jython to speed things up by removing casts
[16:38] <topi`> indeed, I see a lot of possibilities there
[16:38] <jimbaker> so in jython, we see a cast when we do __tojava__ and Py.java2py
[16:38] <jimbaker> which is implicit in crossing back and forth between python and java, but still happens
[16:41] <topi`> jimbaker: if there's some syntax work, that would be easy enough for me to contribute
[16:41] <topi`> I think python 3.3 syntax parsing would be quick to implement
[16:42] <agronholm> topi`: do you know where to find the jython 3 repo?
[16:42] <topi`> was "yield from" added in 3.3 or 3.4?
[16:42] <agronholm> 3.3
[16:42] <topi`> yeah, I've contributed a small patch to jython previously
[16:42] <topi`> but that was in the import machinery
[16:42] <agronholm> 2.x or 3.x?
[16:42] <topi`> 2.7 that was
[16:42] <agronholm> so, do you know where to find the 3 repo?
[16:42] <topi`> nope :)
[16:43] <jimbaker> topi`, we actually have done this work - see https://github.com/jython/jython3
[16:43] <jimbaker> with respect to syntax
[16:44] <topi`> ok, so what's missing?
[16:44] <topi`> I guess "yield from" since it's a complex addition
[16:44] <jimbaker> yeah, it's not so complex, but unit tests depend on yield from iirc
[16:45] <jimbaker> it's just a matter of getting the java bytecode generated properly in our compiler
[16:45] <jimbaker> i should just do that
[16:46] <jimbaker> i was also reviewing my notes re making sys._getframe work better, based on a suggestion by john rose (oracle's jvm architect)
[16:49] * verterok-away is now known as verterok
[16:55] <jimbaker> topi`, so here's what we need to implement when we compile to java bytecode a yield from expression: https://www.python.org/dev/peps/pep-0380/#formal-semantics - you can see something comparable with the implementation of the with statement: https://github.com/jython/jython3/blob/master/src/org/python/compiler/CodeCompiler.java#L2762
[17:13] <jimbaker> looks like i did some decent work on implementing yield from, including a supporting trampoline to simplify, on my laptop. i will resurrect and see where this goes
[17:36] * sagittarian (~sagittari@63-157-6-18.dia.static.qwest.net) has joined #jython
[19:18] * Yue (4a8a9ade@gateway/web/cgi-irc/kiwiirc.com/ip.74.138.154.222) has joined #jython
[19:29] <Yue> Hello all. I've been trying to puzzle my way through using Jython from Java (it's been a bit since I've used Java), specifically using just the BuildingType example from the jython book at the moment. Right now, I'm getting a NotImplementedError exception when I try to call any of the functions that should be defined in the Python file, but the .py
[19:29] <Yue> file is on the system path (I've printed sys.path from the Python interpreter in the program), and a Building$py.class file was generated there too. Does anyone know what my problem might be? Thanks in advance!
[21:13] * Yue (4a8a9ade@gateway/web/cgi-irc/kiwiirc.com/ip.74.138.154.222) Quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
[22:50] * xemdetia (xemdetia@nat/ibm/x-nxjjurvqrdzhsjga) Quit (Ping timeout: 272 seconds)
[23:27] * Arfrever (~Arfrever@apache/committer/Arfrever) Quit (Ping timeout: 256 seconds)

Index

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