#jython IRC Log


IRC Log for 2016-09-30

Timestamps are in GMT/BST.

[0:07] * llaall (0816792d@gateway/web/freenode/ip. has joined #jython
[0:11] <llaall> I everyone! I've had my eye on jython since the big 2.7 release (a year and a half ago I think?) and wanted to explore the code base a little and maybe ramp up on being an actual contributor. My specific itch I want to scratch is to a) Expand the power of the tab completion capabilities and b) Eventually vet jython for production use at $DAY_JOB and see if I can get buy in.
[0:13] <llaall> The question that brings me here immediately is: As far as I can tell, jython only builds in java1.7 because of a bug in antlr, is that correct? and is this wiki page applicable?: https://wiki.python.org/jython/JythonDeveloperGuide/IntellijNotes
[0:13] <llaall> it seems to be an old page compared to jython.org
[0:14] <llaall> but its also on the main wiki.python.org? so that makes it seem pretty official too
[0:17] * llaall (0816792d@gateway/web/freenode/ip. Quit (Quit: Page closed)
[0:17] * llaall (0816792d@gateway/web/freenode/ip. has joined #jython
[0:19] <pdurbin> llaall: maybe agronholm or jimbaker knows
[0:24] <llaall> Hopefully they drop by!
[0:25] <llaall> pdurbin: Are you a core developer? How do you eddit jython source?
[0:25] <pdurbin> nope, just a lurker :)
[0:26] <llaall> Mind if I ask, what do you use jython for?
[0:26] <llaall> are you coming from java land or python on land?
[0:27] <llaall> I'm trying to get an idea for jython's present "intended usecase"
[0:32] <pdurbin> kind of both but my day job is Java
[0:37] <llaall> Same.
[0:39] <pdurbin> llaall: so what are you planning on using it for?
[0:40] <llaall> I think the big usecases I want to see if I can use jython for is A) boostrap code instead of spring or guice or some other java reflectiony magic. It's just too opaque. B) simple unittest writing, and C) as a debug console. SSH to a server, attach to a console. Run a health check.
[0:41] <llaall> Instead of embedding health check code into the service, just expose key objects to an interperater.
[0:41] <llaall> If my health checks need to evolve, I can change the jython code I SEND to the server, and not effect my uptime
[0:43] <llaall> way better than JMX
[0:46] <llaall> way better than JMX | less
[0:48] <llaall> but I need to make sure that the jython shell gets garbage collected cleanly and fully. I poked around the code and see a lot of stuff like:
[0:48] <llaall> private static final ReferenceQueue<PySystemState> systemStateQueue = src/org/python/core/PySystemState.java: private static final ConcurrentMap<WeakReference<PySystemState>, PySystemStateCloser> sysClosers =
[0:49] <llaall> I'd liek to keep a tidy heap
[1:12] <pdurbin> llaall: guice does dependency injection (spring too, I guess, among many other things). Is that what you mean by "bootstrap code"?
[1:12] <llaall> Yea
[1:15] <llaall> but not just dependency injection but also wiring configs, doing checks on the environment, managing lifecycles like init -> start -> running -> shutdown on a DAG of componants. It's just nicer and terser in a dynamic language.
[1:21] <llaall> It dosn't need to be fast, but python is just the right balance of explicit but terse. Because Java can be verbose, we end up writing a frameworks to hide it instead of expose the startup logic
[1:24] <pdurbin> yeah, I guess people like being able to use groovy code in gradle
[1:30] <llaall> If my team and I didn't already know python and like it Groovy was kinda built to do abut the same I think
[1:30] <pdurbin> Clojure is dynamic. :)
[1:32] <llaall> python is just so well known by people that that by itself is a huge win, haha
[1:32] <llaall> Clojure takes us farther away than even groovy does
[1:34] <pdurbin> I thought maybe I'd write API tests in Python but I'm quite happy with http://rest-assured.io so I don't have a specific reason to try Jython at the moment.
[1:36] <llaall> Yea I'm more on the distributed systems/ infra side of things
[1:36] <llaall> so more avro/protobuffs over netty
[1:38] <pdurbin> cool
[5:00] * jimklo (~jimklo@71-84-19-18.dhcp.trlk.ca.charter.com) has joined #jython
[5:55] * nickmbailey (~nickmbail@ Quit (Remote host closed the connection)
[6:19] * stewori (~stefan@ has joined #jython
[6:37] <stewori> llaall: You can build Jython using Java 8 by running the build-process twice (inofficial hack)
[6:53] * clajo04_ (~clajo04@pool-108-46-224-11.nycmny.fios.verizon.net) has joined #jython
[6:54] * clajo04 (~clajo04@pool-108-46-224-11.nycmny.fios.verizon.net) Quit (Ping timeout: 244 seconds)
[6:54] * clajo04_ is now known as clajo04
[7:03] * sohailkhandev (~sohail102@c-76-125-60-98.hsd1.ca.comcast.net) has joined #jython
[7:06] <sohailkhandev> Anyone know how to debug this `Exception in thread "main"
[7:06] <sohailkhandev> Exception: org.python.core.PyException thrown from the UncaughtExceptionHandler in thread "main"
[7:06] <sohailkhandev> `? I had to hardcode the Zlib dependency, don't now if its due to that.
[7:20] * TomA (~TomA@2601:402:500:8e98:41a1:d8fe:e99a:7bc4) Quit (Remote host closed the connection)
[7:26] <sohailkhandev> does anyone have jython3 running?
[7:42] * sohailkhandev (~sohail102@c-76-125-60-98.hsd1.ca.comcast.net) Quit (Quit: Leaving)
[8:03] * jimklo (~jimklo@71-84-19-18.dhcp.trlk.ca.charter.com) Quit (Remote host closed the connection)
[12:20] * nickmbailey (~nickmbail@cpe-70-117-83-204.austin.res.rr.com) has joined #jython
[12:26] * nickmbailey (~nickmbail@cpe-70-117-83-204.austin.res.rr.com) Quit (Ping timeout: 264 seconds)
[12:42] * nickmbailey (~nickmbail@cpe-70-117-83-204.austin.res.rr.com) has joined #jython
[12:57] * TomA (~TomA@c-107-5-124-78.hsd1.mi.comcast.net) has joined #jython
[14:17] * xemdetia (xemdetia@nat/ibm/x-iiidqzddkzrxkmwd) has joined #jython
[14:45] <jimbaker> llaall, the tab completion code is all in python, so it's pretty easy to work with
[14:46] <jimbaker> re stuff like sys closers - we have specific python semantics we need to support. it complicates things. in this particular case, that files that are opened by the user are closed at sys exit, instead of just when gc finalizes
[14:46] <jimbaker> ideally users would close their files. ideally...
[15:25] * jimklo (~jimklo@ has joined #jython
[16:40] * nickmbailey (~nickmbail@cpe-70-117-83-204.austin.res.rr.com) Quit (Remote host closed the connection)
[16:40] * nickmbailey (~nickmbail@cpe-70-117-83-204.austin.res.rr.com) has joined #jython
[16:45] * nickmbailey (~nickmbail@cpe-70-117-83-204.austin.res.rr.com) Quit (Ping timeout: 244 seconds)
[17:16] * nickmbailey (~nickmbail@cpe-70-117-83-204.austin.res.rr.com) has joined #jython
[17:18] * stewori (~stefan@ has left #jython
[17:21] * nickmbailey (~nickmbail@cpe-70-117-83-204.austin.res.rr.com) Quit (Ping timeout: 264 seconds)
[17:21] <llaall> stewori: I noticed that before I realized that java 7 vs 8 was the issue, but I was warry of what issues it might introduce.
[17:34] * sohailkhandev (~sohail102@c-76-125-60-98.hsd1.ca.comcast.net) has joined #jython
[18:17] * nickmbailey (~nickmbail@cpe-70-117-83-204.austin.res.rr.com) has joined #jython
[18:22] * nickmbailey (~nickmbail@cpe-70-117-83-204.austin.res.rr.com) Quit (Ping timeout: 272 seconds)
[19:18] * nickmbailey (~nickmbail@cpe-70-117-83-204.austin.res.rr.com) has joined #jython
[19:22] * nickmbailey (~nickmbail@cpe-70-117-83-204.austin.res.rr.com) Quit (Ping timeout: 244 seconds)
[20:19] * nickmbailey (~nickmbail@cpe-70-117-83-204.austin.res.rr.com) has joined #jython
[20:23] * nickmbailey (~nickmbail@cpe-70-117-83-204.austin.res.rr.com) Quit (Ping timeout: 244 seconds)
[21:19] * nickmbailey (~nickmbail@cpe-70-117-83-204.austin.res.rr.com) has joined #jython
[21:25] * nickmbailey (~nickmbail@cpe-70-117-83-204.austin.res.rr.com) Quit (Ping timeout: 264 seconds)
[21:35] * xemdetia (xemdetia@nat/ibm/x-iiidqzddkzrxkmwd) Quit (Ping timeout: 244 seconds)
[21:44] <llaall> jimbaker: any pointers for where the compleation code is at? I'm still trying to wrap my head around the structure of all the code.
[22:20] * sohailkhandev (~sohail102@c-76-125-60-98.hsd1.ca.comcast.net) Quit (Ping timeout: 244 seconds)
[22:22] * nickmbailey (~nickmbail@cpe-70-117-83-204.austin.res.rr.com) has joined #jython
[22:24] <jimbaker> llaall, start here: https://github.com/jythontools/jython/blob/master/Lib/readline.py#L105
[22:25] <jimbaker> the important thing to know is that we use JLine2 in jython
[22:25] <jimbaker> which is similar in many ways to gnu readline
[22:26] <jimbaker> but also not the same. so it's an interesting challenge
[22:26] <jimbaker> oth, it generally hides the windows vs linux/unix differences
[22:27] * nickmbailey (~nickmbail@cpe-70-117-83-204.austin.res.rr.com) Quit (Ping timeout: 272 seconds)
[22:27] <jimbaker> not certain what pjenvey meant here, https://github.com/jythontools/jython/blame/master/Lib/readline.py#L30
[22:28] <jimbaker> jline has been updated :) but that warning is still in use. maybe unnecessarily. don't know
[22:48] <llaall> Thanks! I'll take a peek. Also, to see the code in intellij without syntax errors, we'd need to add ant.jar to extlibs. should I consider adding it? Its the only jar directly refrenced from code in jython
[22:49] <llaall> thats no tthere
[22:49] <llaall> *not there
[22:49] <jimbaker> llaall, we don't need ant for distributions
[22:50] <jimbaker> anyway, we want to switch to gradle, using maven dependencies, for the next release
[22:50] <jimbaker> which will make the builds much better
[22:51] <jimbaker> as for the release of 2.7.1: darjus and i are currently reviewing our SNI work (as part of SSL support)
[22:53] <llaall> Ahh, interesting. Is anyone active on the gradle build? could I pick that up?
[23:03] <llaall> Intresting. In trying to get jython running in intellij I get a: init: Bootstrap types weren't encountered in bootstrapping: [class org.python.core.PyType, class org.python.core.PyBuiltinCallable, class org.python.core.PyObject, class org.python.core.PyDataDescr]
[23:07] <jimbaker> llaall, it's available
[23:08] <jimbaker> the key piece is to reuse all of the ant tasks we have written, since that's one of reasons we like gradle - we can bring that in
[23:08] <jimbaker> re intellij - i never build with it. our ant stuff is reasonably complex
[23:08] <jimbaker> but gradle wrapping ant tasks should likely work better
[23:09] <jimbaker> intellij certainly is more compatible with gradle than complex ant
[23:09] <jimbaker> all the other stuff, such as the shading we do with jarjarlinks - that can be done by gradle instead
[23:12] <jimbaker> back later
[23:23] * nickmbailey (~nickmbail@cpe-70-117-83-204.austin.res.rr.com) has joined #jython
[23:27] * nickmbailey (~nickmbail@cpe-70-117-83-204.austin.res.rr.com) Quit (Ping timeout: 244 seconds)
[23:41] * jimklo_ (~jimklo@75-128-4-186.dhcp.snlo.ca.charter.com) has joined #jython
[23:44] * jimklo (~jimklo@ Quit (Ping timeout: 244 seconds)
[23:45] * jimklo_ (~jimklo@75-128-4-186.dhcp.snlo.ca.charter.com) 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.