code logs -> 2013 -> Wed, 25 Dec 2013< code.20131224.log - code.20131226.log >
--- Log opened Wed Dec 25 00:00:43 2013
00:35 Stalker [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Ping timeout: 121 seconds]
00:36 celticminstrel [celticminst@Nightstar-gj43l1.dsl.bell.ca] has quit [Ping timeout: 121 seconds]
00:56 * Vornicus uses textwrangler and np++
01:02 * McMartin tests out the stuff he was doing while half-awake last night, and it checks out
01:03
<&McMartin>
I think I have kinds and event subscriptions working the way I want them to, at least in principle.
01:03
<&McMartin>
(I'm going to need to, once I hit a good "first pass of implementation" point, develop some serious testing suites)
01:04
<&McMartin>
(But that *at minimum* needs to include collisions and scene sorting)
01:04
< RichyB>
I suggest taking a brief glance at QuickCheck for inspiration on the topic of fuzz testing.
01:05
<&McMartin>
This is Monocle. Monocle cannot be meaningfully fuzz tested.
01:05
< RichyB>
Yes it can. It has an API, doesn't it?
01:05
<&McMartin>
That's not a meaningful test~
01:05
< RichyB>
Generate all legal traces of its API, see if it crashes or brings up anything in valgrind? :)
01:05
<&McMartin>
Yeeeah
01:06
<&McMartin>
No, this is testing on the level of "when you create an object mid-frame, does it get slotted into the proper location in the rendering order, or - if it was created after rendering happened - do so in the next frame"
01:06
< RichyB>
"Randomly sample from all defined-as-legal traces of the API" is AIUI used & works well for some C libraries.
01:06
<&McMartin>
Yes
01:06
<&McMartin>
OpenGL is not one of those libraries, and neither is Monocle.
01:07
<&McMartin>
glCompileShader is *particularly* insusceptible to fuzz testing
01:07
< RichyB>
Capturing your own rendered output, checking it (with a reasonable distance metric) against reference images is sometimes useful.
01:08
<&McMartin>
Yes
01:08
<&McMartin>
That's for mechanizing it
01:08
<&McMartin>
I don't *have* rendering order yet, though.
01:09
<&McMartin>
I'll be happy with a set of programs that can be run and inspected by hand and that exercise the API aspects I care about.
01:09
<&McMartin>
If someone else wants to write a fully mechanical setpiece, they're welcome to do so, but in a very real sense the entire Monocle project is yak shaving
01:10
< RichyB>
So your ideal test suite is actually a videogame that uses Monocle?
01:10
<&McMartin>
Ideal or "what I'm going to have"?
01:10
<&McMartin>
That'll be part of it - it's the only way to find holes in the design
01:11
<&McMartin>
The actual test suite will be more like animation demos that monitor their internal state and report on it.
01:11
<&McMartin>
Ideally, one has a way to mechanically inspect all invariants that the system holds internally - and know which ones are important and which ones are overly restrictive and enforce only the former - and be able to confirm all results with no intervention on every commit.
01:12
<&McMartin>
I make no pretentions of living in or even aiming for an ideal world. ;-)
01:13
<&McMartin>
Also, as far as I can tell, libX11 as used by SDL2_image is not valgrind clean, so getting useful stuff out of valgrind has been a challenge, though not impossible.
01:13
<&McMartin>
It has been complicated by the fact that a lot of allocations "leak" by having a lifetime of the entire program, because the design spec says "these data types have a lifespan of the entire program and never expire"
01:14
<&McMartin>
You can expire them anyway to shut valgrind up but that's an extremely low priority
01:14
< RichyB>
This is the argument in favour of atexit()ing them as a debugging tool, yes.
01:14
<&McMartin>
Yes
01:15
<&McMartin>
But this is bending yourself to the tool in the service of something that only the tool thinks is an error
01:15
<&McMartin>
Monocle *does* require an OS that deallocates all your resources on process exit. =P
01:16
< RichyB>
eh
01:16
<&McMartin>
(And "snapping all pointers to an allocated block without deallocating it first" gets filed differently, and is something that's worth caring about.)
01:16
< RichyB>
IMHO it's more like bending yourself to the tool in the service of this being the only way that the tool has of assisting you in finding memory leaks.
01:16
<&McMartin>
Yeah, and that isn't actually true.
01:17
< RichyB>
Anyway. I think in your shoes, I'd write some animation demos and litter all the C code with assert()s. Something like http://gifs.gifbin.com/1236241627_blueball_factory.gif
01:17
<&McMartin>
It's just that you have to hunt for it because otherwise it will be saying HOLY SHIT MAN YOUR SYMBOL TABLES ARE FULL OF SYMBOLS
01:17
<&McMartin>
Right, have you actually run the Earthball demo~
01:17
< RichyB>
No way.
01:18
<&McMartin>
"Yeah, that's what 1/3 of my test suite basically is, but without the physics because that level of physics is intentionally out of scope"
01:18
< RichyB>
Is monocle on github/whatever now?
01:18
<&McMartin>
The collision testing will involve deliberately arranging train accidents and ensuring they happen on the correct frame
01:18
<&McMartin>
Has been for months
01:19
<&McMartin>
https://github.com/michaelcmartin/monocle
01:19
<&McMartin>
(Requires SDL2, SDL2_image, and SDL2_mixer to build though)
01:19
<&McMartin>
(Also, no guarantees yet of properly building on anything other than Linux, but there are reports of successful Mac and Windows builds.)
01:22
< RichyB>
Sweet.
01:29
<&McMartin>
Now, tree.c *did* get fuzz testing, to the tune of several billion iterations, with white-box comparison against FreeBSD's macro-based result
01:30
<&McMartin>
(Which I didn't use because I wanted to be able to do inheritance more cleanly and also export operations translating to them through the FFI)
01:32
<&McMartin>
Anyway, yes; one of the other things here is that Monocle really needs to advance to the point where I can write Dapper Delver backed by it.
01:32
<&McMartin>
There's a lot of things that ends up not really needing~
03:21 Turaiel[Offline] is now known as Turaiel
03:45 thalass [thalass@Nightstar-bce70i.eastlink.ca] has joined #code
04:11
< thalass>
Damnit my desktop computer doesn't seem to be responding to wake on lan packets from my RPi.
04:17 celticminstrel [celticminst@Nightstar-qargh6.dsl.bell.ca] has joined #code
04:17 mode/#code [+o celticminstrel] by ChanServ
04:23 Kindamoody[zZz] is now known as Kindamoody
05:13 thalass [thalass@Nightstar-bce70i.eastlink.ca] has quit [[NS] Quit: hohoho merry wednesday]
05:19 RichyB [RichyB@Nightstar-c6u.vd5.170.83.IP] has quit [[NS] Quit: Gone.]
05:22 RichyB [RichyB@Nightstar-c6u.vd5.170.83.IP] has joined #code
05:24 Turaiel is now known as Turaiel[Offline]
05:33 Kindamoody is now known as Kindamoody|afk
06:15 Kindamoody|afk is now known as Kindamoody
06:40
<&jerith>
Whee! Monocle updates!
07:14 celticminstrel [celticminst@Nightstar-qargh6.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
07:49 cpux [cpux@Nightstar-uvch6j.dyn.optonline.net] has joined #code
07:49 mode/#code [+o cpux] by ChanServ
08:01 Kindamoody is now known as Kindamoody|afk
08:07 himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code
08:07 mode/#code [+o himi] by ChanServ
08:17 ErikMesoy|sleep is now known as ErikMesoy
09:23 AverageJoe [evil1@Nightstar-fb1kt4.ph.cox.net] has joined #code
09:35 Vornicus [vorn@Nightstar-sn7kve.sd.cox.net] has quit [[NS] Quit: Leaving]
09:40 Vornicus [vorn@Nightstar-sn7kve.sd.cox.net] has joined #code
09:40 mode/#code [+qo Vornicus Vornicus] by ChanServ
09:57 AverageJoe [evil1@Nightstar-fb1kt4.ph.cox.net] has quit [[NS] Quit: Leaving]
10:42 Reiv [orthianz@Nightstar-avg.1ee.224.119.IP] has quit [[NS] Quit: Going dooooown...]
10:42 Orthia [orthianz@Nightstar-avg.1ee.224.119.IP] has joined #code
10:42 mode/#code [+o Orthia] by ChanServ
11:55 You're now known as TheWatcher[afk]
12:00 Vornicus [vorn@Nightstar-sn7kve.sd.cox.net] has quit [[NS] Quit: Leaving]
12:03 Stalker [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code
14:48 * jerith pushes the relevant pymonocle updates.
15:30 AbuDhabi_ [AbuDhabi@Nightstar-1bpasd.adsl.tpnet.pl] has joined #code
15:32 AbuDhabi1 [AbuDhabi@Nightstar-1bpasd.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds]
16:20 Kindamoody|afk is now known as Kindamoody
17:52 AbuDhabi1 [AbuDhabi@Nightstar-lfrbgd.adsl.tpnet.pl] has joined #code
17:54 Kindamoody is now known as Kindamoody|afk
17:55 AbuDhabi_ [AbuDhabi@Nightstar-1bpasd.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds]
19:07
< ErikMesoy>
https://twitter.com/neave/status/415533230579019777/photo/1
19:23 thalass [thalass@Nightstar-bce70i.eastlink.ca] has joined #code
19:34 Alek [omegaboot@Nightstar-qa936g.il.comcast.net] has quit [Ping timeout: 121 seconds]
19:40 Alek [omegaboot@Nightstar-qa936g.il.comcast.net] has joined #code
19:40 mode/#code [+o Alek] by ChanServ
20:23 Kindamoody|afk is now known as Kindamoody
21:22 Vornicus [vorn@Nightstar-sn7kve.sd.cox.net] has joined #code
21:22 mode/#code [+qo Vornicus Vornicus] by ChanServ
21:23 Kindamoody is now known as Kindamoody[zZz]
21:49 Vornicus [vorn@Nightstar-sn7kve.sd.cox.net] has quit [Connection reset by peer]
21:49 Vornicus [vorn@Nightstar-sn7kve.sd.cox.net] has joined #code
21:49 mode/#code [+qo Vornicus Vornicus] by ChanServ
22:24 ErikMesoy is now known as ErikMesoy|sleep
23:57 Turaiel[Offline] is now known as Turaiel
--- Log closed Thu Dec 26 00:00:59 2013
code logs -> 2013 -> Wed, 25 Dec 2013< code.20131224.log - code.20131226.log >

[ Latest log file ]