IRC logs of #shogun for Friday, 2014-01-17

--- Log opened Fri Jan 17 00:00:55 2014
shogun-buildbotbuild #31 of deb4 - python3 is complete: Failure [failed test python modular]  Build details are at http://buildbot.shogun-toolbox.org/builders/deb4%20-%20python3/builds/31  blamelist: Soeren Sonnenburg <sonne@debian.org>00:05
-!- sonne|osx [~sonne@e179037181.adsl.alicedsl.de] has joined #shogun00:34
shogun-buildbotbuild #2136 of deb3 - modular_interfaces is complete: Failure [failed test python modular]  Build details are at http://buildbot.shogun-toolbox.org/builders/deb3%20-%20modular_interfaces/builds/2136  blamelist: Soeren Sonnenburg <sonne@debian.org>00:34
naywhayaresonney2k: yeah, the issue isn't with freenode, it was my box specifically00:39
-!- travis-ci [~travis-ci@ec2-50-16-71-0.compute-1.amazonaws.com] has joined #shogun00:41
travis-ci[travis-ci] it's Soeren Sonnenburg's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/1708979100:41
-!- travis-ci [~travis-ci@ec2-50-16-71-0.compute-1.amazonaws.com] has left #shogun []00:41
shogun-buildbotbuild #32 of deb4 - python3 is complete: Failure [failed test python modular]  Build details are at http://buildbot.shogun-toolbox.org/builders/deb4%20-%20python3/builds/32  blamelist: Soeren Sonnenburg <sonne@debian.org>00:54
shogun-buildbotbuild #345 of osx1 - libshogun is complete: Success [build successful]  Build details are at http://buildbot.shogun-toolbox.org/builders/osx1%20-%20libshogun/builds/34500:55
shogun-buildbotbuild #10 of osx2 - python is complete: Failure [failed python modular]  Build details are at http://buildbot.shogun-toolbox.org/builders/osx2%20-%20python/builds/10  blamelist: Soeren Sonnenburg <sonne@debian.org>01:08
-!- travis-ci [~travis-ci@ec2-50-16-71-0.compute-1.amazonaws.com] has joined #shogun01:10
travis-ci[travis-ci] it's Soeren Sonnenburg's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/1709268601:10
-!- travis-ci [~travis-ci@ec2-50-16-71-0.compute-1.amazonaws.com] has left #shogun []01:10
shogun-buildbotbuild #11 of osx2 - python is complete: Failure [failed python modular]  Build details are at http://buildbot.shogun-toolbox.org/builders/osx2%20-%20python/builds/11  blamelist: Soeren Sonnenburg <sonne@debian.org>01:12
-!- bb_ [458fc8de@gateway/web/freenode/ip.69.143.200.222] has quit [Ping timeout: 272 seconds]01:21
shogun-buildbotbuild #2137 of deb3 - modular_interfaces is complete: Failure [failed test python modular]  Build details are at http://buildbot.shogun-toolbox.org/builders/deb3%20-%20modular_interfaces/builds/2137  blamelist: Soeren Sonnenburg <sonne@debian.org>01:21
-!- travis-ci [~travis-ci@ec2-50-16-27-185.compute-1.amazonaws.com] has joined #shogun01:52
travis-ci[travis-ci] it's Soeren Sonnenburg's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/1709586101:52
-!- travis-ci [~travis-ci@ec2-50-16-27-185.compute-1.amazonaws.com] has left #shogun []01:52
-!- sonne|osx_ [~sonne@e179068004.adsl.alicedsl.de] has joined #shogun03:35
-!- sonne|osx [~sonne@e179037181.adsl.alicedsl.de] has quit [Ping timeout: 265 seconds]03:36
-!- sonne|osx_ is now known as sonne|osx03:36
shogun-buildbotbuild #683 of nightly_default is complete: Failure [failed test]  Build details are at http://buildbot.shogun-toolbox.org/builders/nightly_default/builds/68304:09
-!- zxtx [~zv@129-79-241-148.dhcp-bl.indiana.edu] has quit [Ping timeout: 272 seconds]04:43
-!- zxtx [~zv@c-98-223-196-32.hsd1.in.comcast.net] has joined #shogun05:36
-!- parijat [671b082a@gateway/web/freenode/ip.103.27.8.42] has joined #shogun06:03
-!- parijat [671b082a@gateway/web/freenode/ip.103.27.8.42] has quit [Client Quit]06:06
-!- sonne|osx [~sonne@e179068004.adsl.alicedsl.de] has quit [Quit: sonne|osx]07:29
-!- sonne|osx [~sonne@82.113.121.157] has joined #shogun08:09
-!- sonne|osx [~sonne@82.113.121.157] has quit [Ping timeout: 265 seconds]08:20
-!- sonne|osx [~sonne@89.204.137.243] has joined #shogun08:22
sonne|osxbesser82: moin - need some quick help again...08:23
-!- sonne|osx [~sonne@89.204.137.243] has quit [Quit: sonne|osx]08:28
-!- gsomix [~gsomix@185.6.239.149] has joined #shogun08:40
-!- lambday [67157c4d@gateway/web/freenode/ip.103.21.124.77] has joined #shogun08:49
shogun-buildbotbuild #33 of deb4 - python3 is complete: Failure [failed test python modular]  Build details are at http://buildbot.shogun-toolbox.org/builders/deb4%20-%20python3/builds/33  blamelist: Soeren Sonnenburg <sonne@debian.org>08:57
-!- travis-ci [~travis-ci@ec2-54-224-107-92.compute-1.amazonaws.com] has joined #shogun09:18
travis-ci[travis-ci] it's Soeren Sonnenburg's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/1711260009:18
-!- travis-ci [~travis-ci@ec2-54-224-107-92.compute-1.amazonaws.com] has left #shogun []09:18
shogun-buildbotbuild #2138 of deb3 - modular_interfaces is complete: Failure [failed test python modular]  Build details are at http://buildbot.shogun-toolbox.org/builders/deb3%20-%20modular_interfaces/builds/2138  blamelist: Soeren Sonnenburg <sonne@debian.org>09:32
-!- lisitsyn [~lisitsyn@80.252.20.67] has left #shogun []10:28
besser82sonne|work:  you need quick help? What's tha beef?11:06
sonne|workbesser82: I don't understand what you did with the osx libc++ thing11:06
sonne|workbesser82: at least the osx buildbot fails now with python11:07
sonne|workso it is not using libstdc++11:07
sonne|workbut the wrong libc++11:07
besser82sonne|work:  lemme check...11:07
besser82sonne|work:  so then the error comes from the previous design of CMakeLists...11:08
besser82sonne|work:  gimme ~ 30 mins, I'll fix that...11:08
sonne|workbesser82: no rush but I desperately want to get things back to green11:09
besser82sonne|work:  allrighty!  ;)11:09
-!- lisitsyn [~lisitsin@mxs.kg.ru] has joined #shogun11:28
-!- zxtx [~zv@c-98-223-196-32.hsd1.in.comcast.net] has quit [Ping timeout: 248 seconds]12:35
-!- zxtx [~zv@c-98-223-196-32.hsd1.in.comcast.net] has joined #shogun12:49
-!- HeikoS1 [~heiko@pat-191-250.internal.eduroam.ucl.ac.uk] has joined #shogun15:02
sonne|workHey HeikoS1!15:14
sonne|workHave a sec?15:14
-!- FSCV [~FSCV@23.228.64.94] has joined #shogun15:24
-!- lisitsyn [~lisitsin@mxs.kg.ru] has quit [Quit: Leaving.]15:25
-!- HeikoS1 [~heiko@pat-191-250.internal.eduroam.ucl.ac.uk] has left #shogun []15:54
gsomixHi. http://coub.com/view/dzwb16:01
-!- FSCV [~FSCV@23.228.64.94] has quit [Quit: Leaving]16:33
-!- sonne|osx [~sonne@89.204.138.136] has joined #shogun17:11
sonne|osxbesser82: did you have time?17:12
-!- shogun-buildbot [~shogun-bu@7nn.de] has quit [Quit: buildmaster reconfigured: bot disconnecting]17:28
-!- shogun-buildbot [~shogun-bu@7nn.de] has joined #shogun17:28
-!- sonne|osx [~sonne@89.204.138.136] has quit [Quit: sonne|osx]17:31
shogun-buildbotbuild #2610 of deb1 - libshogun is complete: Failure [failed test]  Build details are at http://buildbot.shogun-toolbox.org/builders/deb1%20-%20libshogun/builds/2610  blamelist: Soeren Sonnenburg <sonne@debian.org>17:36
-!- bb_ [d1d3a61f@gateway/web/freenode/ip.209.211.166.31] has joined #shogun17:57
besser82sonney2k:  no time, yet  :(18:29
-!- lisitsyn [~lisitsyn@80.252.20.67] has joined #shogun18:30
-!- iglesiasg [~iglesiasg@524AE0A7.cm-4-3d.dynamic.ziggo.nl] has joined #shogun19:08
-!- mode/#shogun [+o iglesiasg] by ChanServ19:08
-!- lambday [67157c4d@gateway/web/freenode/ip.103.21.124.77] has quit [Ping timeout: 272 seconds]19:10
-!- iglesiasg [~iglesiasg@524AE0A7.cm-4-3d.dynamic.ziggo.nl] has quit [Ping timeout: 246 seconds]19:31
-!- bb_ [d1d3a61f@gateway/web/freenode/ip.209.211.166.31] has quit [Ping timeout: 272 seconds]19:33
-!- iglesiasg [~iglesiasg@524AE0A7.cm-4-3d.dynamic.ziggo.nl] has joined #shogun19:44
-!- mode/#shogun [+o iglesiasg] by ChanServ19:44
-!- sonne|osx [~sonne@85.179.68.4] has joined #shogun19:48
@sonney2kshogun-buildbot, force build --branch=develop 'osx2 - python'19:48
shogun-buildbotThe build has been queued, I'll give a shout when it starts19:48
shogun-buildbotbuild #12 forced19:56
shogun-buildbotI'll give a shout when the build finishes19:56
@sonney2kshogun-buildbot, force build --branch=develop 'deb1 - libshogun'20:03
shogun-buildbotbuild forced [ETA 4m31s]20:03
shogun-buildbotI'll give a shout when the build finishes20:03
shogun-buildbotbuild #2611 of deb1 - libshogun is complete: Success [build successful]  Build details are at http://buildbot.shogun-toolbox.org/builders/deb1%20-%20libshogun/builds/261120:05
@sonney2kbesser82, seems to be ok what you did but it is just not working - no way to mix libc++ and libstdc++20:20
@sonney2kosx is just a b0rken mess20:20
@sonney2kiglesiasg, around?20:21
@iglesiasgsonney2k, yep20:25
besser82sonney2k:  so for OSX we need to the libc++-aware iSWIGZZZ  :(20:26
besser82sonney2k:  no iShogun, without that  :(20:27
@iglesiasgiShogun haha20:28
shogun-buildbotbuild #12 of osx2 - python is complete: Failure [failed test libshogun test python modular]  Build details are at http://buildbot.shogun-toolbox.org/builders/osx2%20-%20python/builds/1220:32
@sonney2kbesser82, well that or no mixture of protobuf and python_modular20:32
besser82sonney2k:  or that  :(  doesn't protobuf support libc++ss20:33
@sonney2kiglesiasg, I have a weird issue20:33
@sonney2ksonney2k, protobuf does20:33
@sonney2kbesser82, ^20:33
@iglesiasgsonney2k, what is it?20:33
@sonney2kbesser82, but not siwg20:33
@sonney2kiglesiasg, I tried generating data for the bmrm example20:33
@sonney2kiglesiasg, the problem is - something is fishy / weird20:33
besser82sonney2k:  so why protobuf XOR python_modular on OSX???20:34
@sonney2kiglesiasg, I serialize multiclass so labels once20:34
@sonney2kbesser82, protbuf requires libc++, swig doesn't work with libc++ -> kaboom20:34
@sonney2kbesser82, I checked the changelog of swig - swig 3.0 will have a fix20:34
besser82sonney2k:  iC  ok, that is a reason, then  ;)20:35
@iglesiasgsonney2k, mmm so what happened when you tried generating data? What about the serialization? Didn't work out well?20:35
@sonney2kiglesiasg, but then when I load it back - it is jsut sturcturelabels20:35
@iglesiasgaham!20:35
@sonney2kiglesiasg, so of course a couple of properties are missing -> fail20:35
@sonney2kiglesiasg, might be that gsomix' conversion hack doesn't work20:36
@iglesiasgsonney2k, so now way of going back to multiclass so labels after load?20:36
@iglesiasgnow should be no...20:36
@iglesiasgin serialization only the StructuredLabels attributes are stored, no MulticlassSOLabels, I understand20:36
@sonney2kiglesiasg, so maybe I forcefully convert it to multiclass before serializing OR I don't store multiclassl labels20:36
@sonney2kiglesiasg, apart from that we have a minor numerical issue in histogram* kernel20:37
@sonney2kiglesiasg, so a regenereate will fix this20:37
@sonney2kiglesiasg, and some deviation in kmeans20:37
@sonney2kiglesiasg, just a little sth like 0.81 vs 0.83 in cluster accuracy20:38
@sonney2kiglesiasg, and finally 4 tests of heikos code fail (KMM and MMD)20:38
@sonney2kI have no idea how to fix heikos ...20:38
@iglesiasgsonney2k, did you tell him about it?20:38
@iglesiasgsonney2k, what about the kmeans change? Did you detect in what commit it started?20:39
@iglesiasgI can open an issue to  let Heiko know otherwise20:39
@sonney2kiglesiasg, please open an issue then... but we need to *urgently* get things to green20:40
@sonney2kiglesiasg, suggestions what we could do?20:40
@sonney2kiglesiasg, btw you could check whether heikos stuff *ever* worked fine20:40
@sonney2kit might be that it never did20:40
@sonney2kmassive deviations...20:40
@iglesiasgsonney2k, I was thinking about checking kmeans, but I can switch to that20:40
@sonney2kiglesiasg, just a hint how to do that w/o compiing:20:41
@sonney2kiglesiasg, open up http://buildbot.shogun-toolbox.org/builders/deb3%20-%20modular_interfaces/builds/213820:41
@sonney2kthen search the name of some failing mmd test20:41
@iglesiasgsonney2k, but is there a way to query several builds easily?20:42
@sonney2kand then put in the url some older number20:42
@iglesiasgto find out when the fail started20:42
@sonney2ksay 2000 instead of 213820:42
@iglesiasgall right exactly that way hehe20:42
@sonney2kiglesiasg, well wget the log ...20:42
@iglesiasgsonney2k, so they worked fine in the past20:43
besser82sonney2k:  I'll do the needed changes to CMakeLists during tomorrow && PR, like making protobuf XOR py_mod if SWIG_VER < 3.020:45
@iglesiasgsonney2k, here it is: http://buildbot.shogun-toolbox.org/builders/deb3%20-%20modular_interfaces/builds/213020:46
@iglesiasgthey started to fail with this build20:46
@iglesiasgfuck.. it is just a cmake change20:47
@iglesiasgsonney2k, do you find a reason for that btw?20:47
@iglesiasgsonney2k, 2129 is build successful, 2130 breaks and the change is just in cmake20:48
@iglesiasgwhat am I missing here?20:48
besser82iglesiasg:  nothing20:48
@iglesiasgbesser82, explain me then please ;)20:48
@iglesiasgbesser82, the cmake change broke it??!20:48
besser82iglesiasg:  nope  ;)  The fails were there before, but....20:49
@iglesiasgaham20:49
@iglesiasgI am reading the cmake change actually...20:49
shogun-buildbotbuild #13 of osx2 - python is complete: Failure [failed test libshogun test python modular]  Build details are at http://buildbot.shogun-toolbox.org/builders/osx2%20-%20python/builds/13  blamelist: Soeren Sonnenburg <sonne@debian.org>20:49
@iglesiasgbesser82, but hold on20:49
@sonney2kiglesiasg, what do you mean?20:50
@sonney2kiglesiasg, the cmake change did only make it turn red20:50
@sonney2knot break it20:50
@sonney2kiglesiasg, look for the output of the mmd thing - it should complain before20:50
besser82iglesiasg:  noone noticed, because the test-exec was wrapped in a call to cmake and that simply return errorlevel 0, even if the test was exit(1)20:50
@iglesiasgI see20:51
@iglesiasgback to binary search then.... :)20:51
besser82iglesiasg:  my change just made the wrapped-cmake return errorlevel 1, too, if the test does....20:51
@iglesiasgbesser82, got it20:51
@iglesiasgI saw the cmake change makes more output being printed20:51
@iglesiasgbut I didn't see what you just explained about the errorlevel20:52
besser82iglesiasg:  allrighty, then  :D20:52
-!- zxtx [~zv@c-98-223-196-32.hsd1.in.comcast.net] has quit [Ping timeout: 245 seconds]20:52
@sonney2kiglesiasg, well just check what the mmd example said20:53
@iglesiasgsonney2k, yeah, I am actually looing for the output of the test now20:53
@iglesiasgnot just the build colour, as I did before20:53
besser82sonney2k, iglesiasg: I suppose the tests fail because of differences in Pickle and really "computed" data....20:55
besser82sonney2k, iglesiasg: How long those pickles haven't been touched?20:55
besser82sonney2k, iglesiasg: and how much changes in code have been made since then?20:55
besser82sonney2k, iglesiasg: as i can see most of those pickles are olden then 9 months!?!?20:58
@iglesiasgbesser82, yep20:58
besser82sonney2k, iglesiasg: and I bet they are failing because sth in code changed, which changes the computed output20:59
besser82sonney2k, iglesiasg: so pickled data != computed20:59
@iglesiasgbesser82, yes, that's how these integration tests word, exactly20:59
besser82sonney2k, iglesiasg: althogh the computed data is correct, but the pickle hasn't been updated...21:00
@iglesiasgbesser82, it can be that the data is correct or not21:00
@iglesiasga bug could be introduced21:00
@iglesiasghttp://buildbot.shogun-toolbox.org/builders/deb3%20-%20modular_interfaces/builds/206121:00
@iglesiasgthis one is fishy ^21:00
@iglesiasgthe integration test for statistics_linear_time_mmd is fine and the normal example breaks21:01
@iglesiasgI am guessing that when the example breaks the integration tester says it passed?21:02
@iglesiasgthis makes no sense to me...21:09
@iglesiasgthe integration tests are fine in 206921:09
@iglesiasgand they break in 2070, where the commit is just an indent fix21:09
@sonney2kiglesiasg, I have absolutely no clue wtf we have no MulticlassSOLabels when serializing21:10
@iglesiasgand I have no clue about x-files in the buildbot21:12
@sonney2ksonney2k, so which git commits are 2069 / 207021:12
@sonney2kiglesiasg, ^21:12
@sonney2kiglesiasg, do a diff!21:12
@sonney2kbesser82, usually these are real bugs21:13
@iglesiasgsonney2k, but hold on21:13
@iglesiasgsonney2k, the commit that appears in 207021:13
@iglesiasgisn't the only one between 2069 and 2070?21:13
@iglesiasgchecking that....21:13
besser82sonney2k:  allright, allright;  I just wanted to blame the pickles  :-P21:15
@sonney2kiglesiasg, could be...21:16
@sonney2kbesser82, no no21:16
besser82sonney2k:  ???21:16
@sonney2kiglesiasg, I think the structured labels stuff is sth with include order21:16
@sonney2kbesser82, not pickle21:16
besser82sonney2k:  I got it  ;)21:16
@iglesiasgsonney2k, it is possible, I never take into account include order unfortunately21:16
@iglesiasgdon't know the rules at all21:17
@iglesiasgwhether they apply etc21:17
* besser82 off for tonight ---> Zzzzzz...21:17
@iglesiasgsonney2k, when you've got a second, have a look please21:20
@iglesiasghttp://buildbot.shogun-toolbox.org/builders/deb3%20-%20modular_interfaces/builds/206921:20
@iglesiasghttp://buildbot.shogun-toolbox.org/builders/deb3%20-%20modular_interfaces/builds/207021:20
@iglesiasg69 is fine21:21
@iglesiasgin 70 the integration tests are not21:21
@iglesiasgand the revision is the same!!21:21
@sonney2kiglesiasg, ?!21:27
@sonney2kiglesiasg, so it might be that we just upgraded some numerical libs21:28
@iglesiasgto me it is suspicious21:33
@sonney2kiglesiasg, yeah doesn't really make sense21:34
@sonney2kiglesiasg, could you pplease check when kmeans broke?21:34
@sonney2kiglesiasg, actually evaluation_clustering_simple.py21:35
@sonney2kiglesiasg, actually same thing with that!21:36
@sonney2kok in 2069 - bad in 207021:36
@iglesiasgit is really weird...21:37
@sonney2kit is indeed21:44
@sonney2kiglesiasg, you could try to run that old version and check if it really fails (or even a slightly older one)21:44
@iglesiasgall right, let me do that21:46
@iglesiasgif I go to say, the revision that in the buildbot is 206021:46
@iglesiasgand it fails, then it is about a lib update or so21:46
-!- zxtx [~zv@129-79-241-148.dhcp-bl.indiana.edu] has joined #shogun21:52
@iglesiasgsonney2k, they don't fail in the commit I just went to22:14
@iglesiasgsonney2k, I guess there is sth that did change and we are just missing it looking in the buildbot?22:21
@iglesiasgin my machine the tests in 2070 work22:34
@iglesiasgwell arrrgh22:35
@iglesiasg./tester.py statistics_linear_time_mmd.py22:40
@iglesiasgstatistics_linear_time_mmd.py setting 1/1                    ERROR22:40
@iglesiasg()22:40
@iglesiasgThe following tests failed!22:40
@iglesiasg('\t', 'statistics_linear_time_mmd.py setting 1/1')22:40
@iglesiasg()22:40
@iglesiasgDetailled failures:22:40
@iglesiasg()22:40
@iglesiasg('\t', 'statistics_linear_time_mmd.py setting 1/1')22:40
@iglesiasgTraceback (most recent call last):22:40
@iglesiasg  File "./tester.py", line 197, in <module>22:40
@iglesiasg    got=get_split_string(f[1])22:40
@iglesiasg  File "./tester.py", line 121, in get_split_string22:40
@iglesiasg    strs.extend(e.replace('\\n','\n').splitlines())22:40
@iglesiasgAttributeError: 'list' object has no attribute 'replace'22:40
@iglesiasgthat is with 2070 ^22:58
@iglesiasghowever, with current tip it is23:02
@iglesiasg./tester.py statistics_linear_time_mmd.py23:02
@iglesiasgstatistics_linear_time_mmd.py setting 1/1                    ERROR23:02
@iglesiasgThe following tests failed!23:02
@iglesiasgstatistics_linear_time_mmd.py setting 1/123:02
@iglesiasgDetailed failures:23:02
@iglesiasgstatistics_linear_time_mmd.py setting 1/123:02
@iglesiasg====DIFF================23:02
@iglesiasg--- expected23:02
@iglesiasg+++ got23:02
@iglesiasg@@ -1,7 +1,7 @@23:02
@iglesiasg-0.049131968800123:02
@iglesiasg-0.0223:02
@iglesiasg-0.011627964894423:02
@iglesiasg-[-0.01154317 -0.02797724  0.01017359 -0.02528    -0.02605633 -0.005457823:02
@iglesiasg-  0.00541389  0.03153591  0.03621783 -0.04178141]23:02
@iglesiasg+0.016183096039523:02
@iglesiasg+0.223:02
@iglesiasg+0.21932715134523:02
@iglesiasg+[-0.01511574  0.00358785  0.00553089  0.0245275   0.00892464 -0.0250588423:02
@iglesiasg+  0.02483419 -0.011128   -0.00061251 -0.01212283]23:02
@iglesiasg+['False']23:02
@iglesiasg ['True']23:02
@iglesiasg-['False']23:02
@iglesiasg====EOT================23:02
@iglesiasglet's see where this one started23:03
@iglesiasgand that is the problem...23:24
@iglesiasgthe first error makes it hard to see when the second actually started to happen...23:25
@iglesiasgwe cannot compile one by one the stuff though23:25
@iglesiasgenough for me today23:33
-!- iglesiasg [~iglesiasg@524AE0A7.cm-4-3d.dynamic.ziggo.nl] has quit [Quit: Leaving]23:33
--- Log closed Sat Jan 18 00:00:57 2014

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