--- 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 |