#linuxcnc-devel | Logs for 2016-05-06

Back
[00:01:57] <jepler> same here
[00:02:07] <jepler> er hi
[00:04:20] <PCW> Hi!
[00:12:22] <PCW> http://freeby.mesanet.com/stepgen-overshoot.png
[00:12:23] <PCW> http://freeby.mesanet.com/nomajorovershoot.png
[00:14:38] <jepler> the first is a case of hitting stepgen limit I take it?
[00:14:46] <PCW> both in response to dropped (= timed-out) packets
[00:14:47] <PCW> last one has more stegen accel margin
[00:15:50] <jepler> hm
[00:16:10] <PCW> Yeah if you ever hit the accel limit in your control loop your nice first order velocity loop turns into a second order loop
[00:16:13] <jepler> MAX_ACCELERATION = 300
[00:16:15] <jepler> STEPGEN_MAX_ACC = 360
[00:16:36] <jepler> this is what I have but I haven't looked at the error lately
[00:17:08] -!- andypugh has quit [Quit: andypugh]
[00:18:17] <jepler> I mostly just was happy that when I opened up my ferror it worked at all
[00:18:40] <PCW> that works fine until until something tickles the control loop enough that the velocity command exceeds the stepgen accel
[00:19:19] <PCW> (like the huge ferror from the missing packet)
[00:20:36] <PCW> It seems its much better to bound the PID maxerror rather than the stepgen maxaccel
[00:21:27] <jepler> if we know one thing it's that the loop inside hostmot.ko's stepgen isn't making us happy
[00:21:53] <PCW> There is of course a limit to how low you can make the PID maxerror (until timebase errors cause loss of control)
[00:22:13] <jepler> and it gets a lot worse when the position is wrong
[00:23:10] <PCW> I ran into the stepgen accel instability hing with someone on the forum
[00:23:21] <PCW> s/hing/thing/
[00:23:43] <PCW> hmm isnt hing a Indian spice?
[00:23:53] <PCW> must be dinner time
[00:23:59] <jepler> mmmm
[00:24:04] <jepler> already ate but thanks
[00:26:15] <PCW> Without big errors caused by dropped packets its pretty easy to get < 20 u inch max FE at high speeds and accelerations
[00:26:57] <PCW> but the accel thing is troubling
[00:32:17] <PCW> I think if the position mode driver was revamped (so the PID is internal) I would probably bound
[00:32:19] <PCW> the stepgen maxaccel to machine accel (just wire its pins to the same ini variable)
[00:32:20] <PCW> and do any needed bounding internally
[00:34:52] <PCW> Currently the stepgen maxaccel does not work well in the control loop for PID controlled stepgens
[00:34:54] <PCW> so if you use it to limit (say by using the gantry component that has steps in its postions) you will get some ringing
[00:40:14] <PCW> Anyway, it is possible to tune the stepgen so it copes quite well with occasional dropped packets
[00:40:16] <PCW> (it would be better of course if the PID comp could freeze its outputs if theres no new FB data)
[00:43:02] <PCW> a perhaps slightly better solution than freezing the output is feeding the command to both PID inputs if no FB data is available
[00:45:00] <PCW> for example with a velocity loop, this would allow the output command to follow acceleration when FB is not present
[00:45:52] <PCW> (basically runs open-loop but with up-to-date feed forward)
[00:47:56] <PCW> bbl dinner
[00:48:14] <jepler> so this could be tested by having pid feedback come from a mux, with inputs of command and feedback, and select being hm2_7i92.0.packet-error
[00:48:28] -!- olli- has quit [Ping timeout: 264 seconds]
[00:49:04] -!- sanjayb has quit [Ping timeout: 264 seconds]
[00:49:07] <PCW> yeah great idea, I'll try it tommorow
[00:49:57] <jepler> have a good dinner
[00:50:14] <PCW> thanks, bye
[00:50:49] -!- skunkworks [skunkworks!~skunkwork@str-broadband-ccmts-ws-26.dsl.airstreamcomm.net] has joined #linuxcnc-devel
[00:55:18] -!- tobias47n9e_ has quit [Ping timeout: 276 seconds]
[00:59:12] -!- kingarmadillo has quit [Ping timeout: 276 seconds]
[01:01:20] <skunkworks> zlog
[01:01:21] <zlog_> skunkworks: Log stored at http://tom-itx.no-ip.biz:81/~tom-itx/irc/logs/%23linuxcnc-devel/2016-05-05.html
[01:05:55] <jepler> I think this config I got from skunkworks doesn't count as well tuned, even absent errors it is getting errors of about .003 during accel/decel
[01:06:36] <jepler> FF1=1 FF2=.0015 P=50, others zero
[01:07:21] <jepler> 1ms thread
[01:09:01] <skunkworks> that was probably a pretty realy pid stepper config
[01:09:10] <skunkworks> ugh
[01:09:53] <skunkworks> that was probably a pretty early pid stepper config
[01:11:52] <jepler> also not using dpll
[01:18:13] <jepler> with dpll and modified pid settings, now getting much better following .. absent packet loss
[01:19:21] <jepler> last trace I captured had .013 of imaginary error and then -.0053 of real error after it overcorrected
[01:20:58] -!- Guest58005 has quit [Remote host closed the connection]
[01:27:26] <pcw_home> P should be about 1/servo thread period
[01:28:25] <pcw_home> PID maxerror should be about .0005 or even .0001
[01:29:07] <jepler> with the mux as I suggested, I get a quickly-decaying error of the same sign as the false error
[01:29:54] <jepler> hm maybe not consistently. the next capture had opposite-sign error
[01:30:03] -!- skunksleep has quit [Ping timeout: 240 seconds]
[01:31:29] <jepler> magnitude -.00005, magnitude .00022
[01:32:26] <jepler> so yes it is better in magnitude
[01:32:42] <jepler> and if I resolve the problem that it almost always detects two errors in a row it should be better still
[01:32:56] <jepler> now I'll stop touching it and let it run overnight with .01% packet loss
[01:53:48] -!- pandeiro has quit [Ping timeout: 276 seconds]
[01:58:35] <pcw_home> One nice thing about the timeout is not blowing up with occasional net delays
[01:58:37] <pcw_home> so you can get away with a higher servo thread rate
[01:59:21] -!- skunksleep [skunksleep!~AndChat14@str-broadband-ccmts-ws-26.dsl.airstreamcomm.net] has joined #linuxcnc-devel
[02:00:07] -!- kingarmadillo has quit [Ping timeout: 260 seconds]
[02:34:07] -!- Gaston|Home has quit [Read error: Connection reset by peer]
[02:34:20] -!- teepee has quit [Ping timeout: 244 seconds]
[02:34:44] -!- ktchk [ktchk!~eddie6929@n219079181044.netvigator.com] has joined #linuxcnc-devel
[02:35:14] -!- Gaston|Home [Gaston|Home!~quassel@rosie.office.tw.ly] has joined #linuxcnc-devel
[02:35:17] -!- teepee [teepee!~teepee@unaffiliated/teepee] has joined #linuxcnc-devel
[02:45:47] <jepler> apparently if I start a high-graphics video game (talos project) I get a realtime delay. oops!
[02:46:25] <jepler> I should change the missed write detection to work like the missed read detection, reading back a just-written value instead of looking at the hostmot2's idea of packet counts
[02:47:25] <jepler> .. that's the core reason that it usually detects 2 errors at a time, it doesn't make the right packet-count prediction the next cycle after a lost packet
[02:47:46] -!- teepee has quit [Ping timeout: 244 seconds]
[02:51:13] -!- teepee [teepee!~teepee@unaffiliated/teepee] has joined #linuxcnc-devel
[02:56:34] -!- skunksleep has quit [Ping timeout: 244 seconds]
[02:57:21] -!- skunksleep [skunksleep!~AndChat14@str-broadband-ccmts-ws-26.dsl.airstreamcomm.net] has joined #linuxcnc-devel
[03:00:33] -!- kingarmadillo has quit [Ping timeout: 240 seconds]
[03:06:43] -!- skunksleep has quit [Ping timeout: 250 seconds]
[03:48:36] -!- ktchk has quit [Quit: ktchk]
[04:02:02] -!- kingarmadillo has quit [Ping timeout: 276 seconds]
[04:24:54] -!- Miner_48er has quit [Ping timeout: 246 seconds]
[04:30:10] -!- Mathnerd314 has quit [Ping timeout: 268 seconds]
[04:34:47] <KGB-linuxcnc> 03Sebastian Kuzminsky 05master c828daa 06linuxcnc 10src/emc/motion/command.c 10src/emc/motion/control.c motion: remove check_stuff(), dead code * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=c828daa
[05:00:20] -!- sel [sel!~sel@net77-43-27-64.mclink.it] has joined #linuxcnc-devel
[05:00:50] -!- sel has quit [Client Quit]
[05:03:03] -!- kingarmadillo has quit [Ping timeout: 246 seconds]
[05:11:18] -!- ve7it has quit [Remote host closed the connection]
[05:37:05] <KGB-linuxcnc> 03Sebastian Kuzminsky 05ja13-teleop-after-homing c90f617 06linuxcnc 10tests/halui/jogging/postgui.hal 10tests/halui/jogging/test-ui.py halui/jogging test: enforce free-mode joint jogging * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=c90f617
[05:37:05] <KGB-linuxcnc> 03Sebastian Kuzminsky 05ja13-teleop-after-homing e42c71b 06linuxcnc 10tests/lathe/test-ui.py lathe test: remove some broken debugging code * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=e42c71b
[05:37:05] <KGB-linuxcnc> 03Sebastian Kuzminsky 05ja13-teleop-after-homing 09f1785 06linuxcnc 10tests/lathe/test-ui.py lathe test: do the jogging tests in axis mode, not joint * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=09f1785
[05:39:37] -!- pink_vampire has quit [Quit: KVIrc 4.9.1 Aria http://www.kvirc.net/]
[06:44:32] -!- kingarmadillo has quit [Ping timeout: 276 seconds]
[07:07:47] -!- anth0ny_ has quit [Quit: anth0ny_]
[07:10:59] -!- rob_h [rob_h!~robh@94.0.120.220] has joined #linuxcnc-devel
[07:26:42] -!- skunksleep [skunksleep!~AndChat14@str-broadband-ccmts-ws-26.dsl.airstreamcomm.net] has joined #linuxcnc-devel
[07:28:22] -!- kwallace [kwallace!~kwallace@162.222.30.12] has parted #linuxcnc-devel
[07:50:21] -!- skunksleep has quit [Ping timeout: 246 seconds]
[07:56:18] -!- Komzpa has quit [Ping timeout: 246 seconds]
[08:27:30] -!- skunksleep [skunksleep!~AndChat14@str-broadband-ccmts-ws-26.dsl.airstreamcomm.net] has joined #linuxcnc-devel
[08:39:50] -!- beawesomeinstead has quit []
[08:41:18] -!- ktchk [ktchk!~eddie6929@n219079181044.netvigator.com] has joined #linuxcnc-devel
[09:56:57] -!- radish has quit [Remote host closed the connection]
[10:00:00] -!- kingarmadillo has quit [Ping timeout: 276 seconds]
[10:49:50] -!- wtsmer has quit [Ping timeout: 244 seconds]
[11:45:33] -!- skunksleep has quit [Ping timeout: 246 seconds]
[11:47:03] -!- noser has quit [Ping timeout: 240 seconds]
[12:28:20] -!- skunksleep [skunksleep!~AndChat14@str-broadband-ccmts-ws-26.dsl.airstreamcomm.net] has joined #linuxcnc-devel
[13:13:13] -!- MarkusBec has quit [Read error: Connection reset by peer]
[13:19:33] -!- MarkusBec [MarkusBec!znc@80.69.39.131] has joined #linuxcnc-devel
[13:52:11] -!- b_b has quit [Changing host]
[14:08:25] -!- awallin__ has quit [Ping timeout: 250 seconds]
[14:11:33] -!- anth0ny_ has quit [Quit: anth0ny_]
[14:11:43] -!- kwallace [kwallace!~kwallace@162.222.30.12] has joined #linuxcnc-devel
[14:12:26] <skunkworks> there probably should be a live image with rt_preempt so people can test computers at the store..
[14:18:14] <KGB-linuxcnc> 03Dewey Garrett 05dgarr/trt_doc_test_v2 bc21905 06linuxcnc 10docs/src/motion/5-axis-kinematics.txt 5-axis-kinematics.txt try {x,y,z,1}~T~ JA * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=bc21905
[14:19:18] <KGB-linuxcnc> 05dgarr/sync_home_final c3cf776 06linuxcnc 04. branch deleted * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=c3cf776
[14:21:30] <jepler> I tried to make a live image of a jessie preempt kernel but ran into trouble. it was missing a required kernel module to boot (aufs?). and then the debian live project melted down when a project called "debian live ng" was announced by somebody in a way that ended up alienating a number of main debian live contributors
[14:21:39] <jepler> so I'm not even sure of the state of things right now
[14:22:03] <cradek> argh, it just never ends, does it
[14:22:44] <cradek> every time I've made an install/live image it's been totally different. I guess it's reinvented from scratch every few years.
[14:22:51] -!- anth0ny_ has quit [Quit: anth0ny_]
[14:28:57] -!- anth0ny_ has quit [Quit: anth0ny_]
[14:33:03] <seb_kuzminsky> :-(
[14:33:38] <seb_kuzminsky> i wonder if there's ever been a cohesive, cooperative group of humans, ever, anywhere
[14:34:21] -!- awallin_ [awallin_!awallin@2001:1bc8:1004::1] has joined #linuxcnc-devel
[14:34:42] -!- ktchk [ktchk!~eddie6929@n219079181044.netvigator.com] has parted #linuxcnc-devel
[14:34:52] <archivist> what bothers me, is yes to that last question but the attention span is getting shorter and shorter
[14:41:06] -!- Mathnerd314 [Mathnerd314!~quassel@supertux/Mathnerd314] has joined #linuxcnc-devel
[14:42:34] -!- rigid has quit [Quit: NO WINE, NO WIFE, NO CARRIER]
[15:07:59] -!- ivansanchez has quit []
[15:08:06] -!- mozmck has quit [Ping timeout: 276 seconds]
[15:22:47] -!- mozmck [mozmck!~moses@67.210.159.94] has joined #linuxcnc-devel
[15:28:01] <seb_kuzminsky> "The stage is too big for the drama." -- Richard Feynman
[15:28:35] -!- ktchk [ktchk!~eddie6929@n219079181044.netvigator.com] has joined #linuxcnc-devel
[15:41:56] -!- ktchk has quit [Read error: Connection reset by peer]
[16:08:00] -!- awallin_ has quit [Read error: Connection reset by peer]
[16:09:07] -!- awallin_ [awallin_!awallin@lakka.kapsi.fi] has joined #linuxcnc-devel
[16:11:58] -!- Daerist has quit [Quit: Leaving]
[16:25:21] -!- pcw_home has quit [Ping timeout: 250 seconds]
[16:28:04] -!- rkj has quit [Ping timeout: 264 seconds]
[16:28:39] -!- seb_kuzminsky has quit [Ping timeout: 264 seconds]
[16:29:20] -!- seb_kuzminsky [seb_kuzminsky!~seb@174-29-9-189.hlrn.qwest.net] has joined #linuxcnc-devel
[16:29:20] -!- mode/#linuxcnc-devel [+v seb_kuzminsky] by ChanServ
[16:29:48] -!- liedman has quit [Remote host closed the connection]
[16:33:26] -!- Komzpa has quit [Ping timeout: 276 seconds]
[16:51:23] <KGB-linuxcnc> 03Norbert Schechner 05EU_Surplus_FastSeal 0e8e678 06linuxcnc 10src/emc/usr_intf/FastSeal/FastSeal.py EU_Surplus_FastSeal - code clearance * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=0e8e678
[16:51:23] <KGB-linuxcnc> 03Norbert Schechner 05EU_Surplus_FastSeal 9325bea 06linuxcnc 10src/emc/usr_intf/FastSeal/FastSeal.py Merge branch 'EU_Surplus_FastSeal' of ssh://norbert@git.linuxcnc.org/git/linuxcnc.git into EU_Surplus_FastSeal * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=9325bea
[16:51:23] <KGB-linuxcnc> 03Norbert Schechner 05EU_Surplus_FastSeal 937da53 06linuxcnc 10(9 files in 3 dirs) EU-Surplus_FastSeal - solved bug in Image Handling * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=937da53
[17:59:18] -!- b_b has quit [Remote host closed the connection]
[18:04:47] -!- Komzpa has quit [Ping timeout: 265 seconds]
[18:08:13] <linuxcnc-build> build #3299 of 4007.deb-precise-i386 is complete: Failure [4failed shell_3] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4007.deb-precise-i386/builds/3299 blamelist: Norbert Schechner <nieson@web.de>
[18:09:57] <linuxcnc-build> build #3299 of 4008.deb-precise-amd64 is complete: Failure [4failed shell_3] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4008.deb-precise-amd64/builds/3299 blamelist: Norbert Schechner <nieson@web.de>
[18:11:31] <linuxcnc-build> build #2127 of 4009.deb-precise-rtai-i386 is complete: Failure [4failed shell_3] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4009.deb-precise-rtai-i386/builds/2127 blamelist: Norbert Schechner <nieson@web.de>
[18:12:48] <linuxcnc-build> build #1870 of 4017.deb-wheezy-amd64 is complete: Failure [4failed shell_3] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4017.deb-wheezy-amd64/builds/1870 blamelist: Norbert Schechner <nieson@web.de>
[18:16:35] <linuxcnc-build> build #1171 of 4014.deb-wheezy-rtpreempt-i386 is complete: Failure [4failed shell_3] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4014.deb-wheezy-rtpreempt-i386/builds/1171 blamelist: Norbert Schechner <nieson@web.de>
[18:19:56] <linuxcnc-build> build #1867 of 4016.deb-wheezy-i386 is complete: Failure [4failed shell_3] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4016.deb-wheezy-i386/builds/1867 blamelist: Norbert Schechner <nieson@web.de>
[18:20:02] -!- the_wench has quit [Ping timeout: 276 seconds]
[18:21:26] <linuxcnc-build> build #1207 of 4015.deb-wheezy-rtpreempt-amd64 is complete: Failure [4failed shell_3] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4015.deb-wheezy-rtpreempt-amd64/builds/1207 blamelist: Norbert Schechner <nieson@web.de>
[18:22:59] <linuxcnc-build> build #289 of 4017.5.deb-wheezy-armhf is complete: Failure [4failed shell_3] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4017.5.deb-wheezy-armhf/builds/289 blamelist: Norbert Schechner <nieson@web.de>
[18:26:05] -!- sel [sel!~sel@net77-43-27-64.mclink.it] has joined #linuxcnc-devel
[18:26:22] -!- sel has quit [Remote host closed the connection]
[18:47:43] <linuxcnc-build> build #541 of 4022.deb-jessie-amd64 is complete: Failure [4failed shell_3] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4022.deb-jessie-amd64/builds/541 blamelist: Norbert Schechner <nieson@web.de>
[18:48:32] <linuxcnc-build> build #476 of 4019.deb-jessie-rtpreempt-i386 is complete: Failure [4failed shell_3] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4019.deb-jessie-rtpreempt-i386/builds/476 blamelist: Norbert Schechner <nieson@web.de>
[18:49:44] <seb_kuzminsky> this branch failed because lots of new files get installed by "make DESTDIR=foo install", but not added to the debian package
[18:49:45] -!- kingarmadillo has quit [Ping timeout: 276 seconds]
[18:50:43] <linuxcnc-build> build #542 of 4021.deb-jessie-i386 is complete: Failure [4failed shell_3] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4021.deb-jessie-i386/builds/542 blamelist: Norbert Schechner <nieson@web.de>
[18:54:19] <linuxcnc-build> build #1559 of 4018.deb-wheezy-rtai-i386 is complete: Failure [4failed shell_3] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4018.deb-wheezy-rtai-i386/builds/1559 blamelist: Norbert Schechner <nieson@web.de>
[18:54:24] <linuxcnc-build> build #475 of 4020.deb-jessie-rtpreempt-amd64 is complete: Failure [4failed shell_3] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4020.deb-jessie-rtpreempt-amd64/builds/475 blamelist: Norbert Schechner <nieson@web.de>
[19:08:24] -!- kalxas has quit [Quit: Goodbye]
[20:10:25] -!- noser has quit [Ping timeout: 244 seconds]
[20:56:54] -!- teepee has quit [Ping timeout: 244 seconds]
[20:58:29] -!- Connor has quit [Read error: No route to host]
[20:58:38] -!- teepee [teepee!~teepee@unaffiliated/teepee] has joined #linuxcnc-devel
[20:59:45] -!- maurris has quit [Ping timeout: 276 seconds]
[21:00:59] -!- Connor [Connor!~Connor@c-67-187-108-117.hsd1.tn.comcast.net] has joined #linuxcnc-devel
[21:31:27] -!- chillly has quit []
[21:44:33] -!- KimK has quit [Ping timeout: 240 seconds]
[22:10:33] -!- Tom_itx has quit [Ping timeout: 240 seconds]
[22:11:08] -!- zlog_ has quit [Ping timeout: 250 seconds]
[22:35:20] -!- Tom_itx [Tom_itx!~Tl@unaffiliated/toml/x-013812] has joined #linuxcnc-devel
[22:36:20] -!- zlog [zlog!~zlog@ip68-102-196-26.ks.ok.cox.net] has joined #linuxcnc-devel
[22:47:44] -!- steves_logging [steves_logging!~Steve@wsip-70-182-2-252.dc.dc.cox.net] has joined #linuxcnc-devel
[22:50:17] -!- andypugh [andypugh!~andypugh@cpc14-basl11-2-0-cust1010.20-1.cable.virginm.net] has joined #linuxcnc-devel
[23:20:33] -!- JT-Shop has quit [Ping timeout: 240 seconds]
[23:21:03] -!- jthornton has quit [Ping timeout: 240 seconds]
[23:21:19] -!- JT-JA13 has quit [Ping timeout: 252 seconds]
[23:22:11] <seb_kuzminsky> huh, we already have EMC_TASK_PLAN_SYNCH, which calls interp.synch(), which writes out the vars file
[23:22:41] <seb_kuzminsky> this might be easier than i thought
[23:47:27] <KGB-linuxcnc> 03Sebastian Kuzminsky 05seb/master/interp-var-sync 619e466 06linuxcnc 10src/emc/usr_intf/axis/extensions/emcmodule.cc emcmodule: add task_plan_synch() function * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=619e466
[23:47:27] <KGB-linuxcnc> 03Sebastian Kuzminsky 05seb/master/interp-var-sync 5fb0e81 06linuxcnc 10src/emc/usr_intf/axis/scripts/axis.py axis: call linuxcnc.task_plan_synch() to force a var file write * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=5fb0e81
[23:47:27] <KGB-linuxcnc> 03Sebastian Kuzminsky 05seb/master/interp-var-sync 699438b 06linuxcnc 10src/emc/task/emctaskmain.cc Task: allow EMC_TASK_PLAN_SYNCH in all modes and states * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=699438b
[23:47:37] <seb_kuzminsky> comments welcome