--- Log opened Wed Apr 01 00:00:01 2009 |
00:39 | | AnnoDomini [~farkoff@Nightstar-29105.neoplus.adsl.tpnet.pl] has quit [Quit: On your drop ship hull // I planted a melta bomb // Blood for the Blood God] |
00:49 | <@ToxicFrog> | Derakon: yeah, only more so |
00:49 | <@ToxicFrog> | Proposed solution: treat it as a stack machine, but the top four stack slots are registers |
00:50 | <@ToxicFrog> | When it runs out of registers and needs a new one, push the bottom register and rotate. |
00:52 | <@ToxicFrog> | (I considered having the code generator actually treat the whole thing as a stack machine, and only use the registers for performing actual operations) |
00:53 | <@ToxicFrog> | (but this makes adding two constants into 13 instructions, and other operations are similarly horrible) |
01:10 | | Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Ping Timeout] |
01:12 | | Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code |
01:12 | | mode/#code [+o Attilla] by ChanServ |
01:13 | <@Derakon> | One thing I do miss about compiled languages is that they'll tell you that you've made a dumbassed mistake (like forgetting that you've changed the signature on a function) before spending a minute doing work elsewhere in the program. |
01:15 | <@McMartin> | Heh |
01:16 | <@McMartin> | I'd say "Python needs a lint", but Python is so anarchic that this is wildly unfeasible |
01:16 | <@McMartin> | Thanks to our good friend, the API In Yellow |
01:16 | <@McMartin> | hasattr() hasattr() hasat |
01:16 | | * Derakon snerks. |
01:16 | <@Derakon> | You forgot the #%NT&ID*&(NO CARRIER |
01:18 | <@McMartin> | Speaking of The API In Yellow, I have returned from three hours of pair programming involving the Windows Security API |
01:18 | <@McMartin> | Which, frustratingly, is actually dangerously effective, which is why nobody uses it. |
01:22 | | * gnolam laughs out loud at McMartin's API In Yellow comments. |
01:26 | <@McMartin> | Well, it's actually a pretty good heuristic. |
01:27 | <@McMartin> | If you're calling hasattr thrice or more in a code unit, your code could probably do *anything* and you need to rethink your control flow. |
01:36 | <@Derakon> | ...okay, my debugging output is 15 million lines long. Maybe I should rethink this algorithm. |
01:37 | <@Derakon> | The problem: determine which block type to use for a block that is not claimed by any one sector. The initial approach: call a recursive function on the entire tree to find the node that terminates closest to that block, and use its type. The problem: there are hundreds of these blocks on the map and the tree is 13 levels deep. |
01:39 | <@Derakon> | I think I shall instead create some dummy tree nodes and use those to claim the unclaimed spaces. |
02:14 | | * ToxicFrog snrks at hasattr |
02:15 | <@ToxicFrog> | (rule for the Cthulhu Live game I played last weekend: if you say Hastur^3, he shows up and devours just you, then leaves) |
02:16 | <@McMartin> | (Well, that's what the chain of devourings a la Freakazoid is for) |
02:16 | <@ToxicFrog> | (?) |
02:16 | <@McMartin> | (There is a villain where when you intone his name he kidnaps you immediately) |
02:16 | <@McMartin> | (At which point there are explanations, which involve three or four additional kidnappings) |
02:16 | <@ToxicFrog> | (Oh yes, Candlejack) |
02:17 | <@ToxicFrog> | (The idea here was to prevent people from ending the game early by making Hastur^3 their final words) |
02:18 | <@ToxicFrog> | Although now that I think about it, if four or five people had done it the sanity damage would probably have finished everyone else off. |
02:26 | | Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Quit: <Insert Humorous and/or serious exit message here>] |
02:51 | | gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has quit [Quit: Z?] |
03:13 | | MyCatVerbs [~mycatverb@Nightstar-13709.lurkingfox.co.uk] has quit [Ping Timeout] |
03:13 | | KarmaBot [AnnoDomini@Nightstar-29105.neoplus.adsl.tpnet.pl] has quit [Ping Timeout] |
03:14 | | KBot [AnnoDomini@Nightstar-29105.neoplus.adsl.tpnet.pl] has joined #Code |
03:17 | | KBot is now known as KarmaBot |
03:20 | | MyCatVerbs [~mycatverb@Nightstar-13709.lurkingfox.co.uk] has joined #code |
03:20 | | mode/#code [+o MyCatVerbs] by ChanServ |
03:39 | <@ToxicFrog> | It's aliiiiive! |
03:40 | <@Derakon> | Mwa-ha-ha? |
03:41 | <@ToxicFrog> | Quite |
03:41 | <@ToxicFrog> | Although there are some nonoptimalities in the generated code, such as omitting the occasional: |
03:41 | <@ToxicFrog> | pop 2 |
03:41 | <@ToxicFrog> | push |
03:41 | <@ToxicFrog> | push 2 |
03:41 | <@ToxicFrog> | sequence |
03:44 | <@Vornicus> | emitting, you mean? |
03:46 | <@ToxicFrog> | ...tes |
03:46 | <@ToxicFrog> | *yes |
03:46 | <@ToxicFrog> | Argh |
03:46 | <@ToxicFrog> | It's been a long day |
03:46 | <@Derakon> | Hee. |
03:52 | <@Vornicus> | A Lie By Emission sounds silly, though. |
04:00 | < Alek> | ahahah |
04:01 | <@ToxicFrog> | var: done. assign (and by extension all expr, as that was the last one): done |
04:01 | <@ToxicFrog> | Todo: flow control, return, arrays |
04:01 | | Reiv [~82d94c4d@Nightstar-29731.dsl.in-addr.zen.co.uk] has joined #Code |
04:01 | <@Derakon> | Awesome. |
04:02 | <@ToxicFrog> | Oh, and local allocation |
04:02 | <@ToxicFrog> | At the moment, anything that uses locals won't have them laid out on stack and will ICE on the first reference to them~ |
04:03 | <@Derakon> | ICE? |
04:03 | <@ToxicFrog> | Internal Compiler Error. |
04:03 | <@Derakon> | Ah hah. |
04:03 | <@ToxicFrog> | Once it gets to code generation the whole thing has been validated, so anything going wrong is an ICE. |
04:17 | <@ToxicFrog> | Arrays: done |
04:17 | <@ToxicFrog> | After sorting out a stupid bug where it would fatal in register allocation, because the treewalker was seeing "array subscript" and emitting: |
04:18 | <@ToxicFrog> | ldc r,index(0) |
04:18 | <@ToxicFrog> | ld r,address(r) |
04:18 | <@ToxicFrog> | And then seeing the child "var" or "number" node of the array subscript, and going "oh, I should put this in a register for later", emitting: |
04:18 | <@ToxicFrog> | ldc r+1,index(0) |
04:18 | <@ToxicFrog> | And then trying to unlock r. |
04:19 | <@ToxicFrog> | (solution: handle array nodes after their children, reuse the register already allocated to the child node) |
04:22 | <@ToxicFrog> | I really should handle locals next, I just don't want to >.> |
04:27 | | Reiv [~82d94c4d@Nightstar-29731.dsl.in-addr.zen.co.uk] has quit [Quit: hometiem. so very very tired.] |
05:00 | | Vornotron [Vornicus@Admin.Nightstar.Net] has joined #code |
05:01 | | Vornicus [Vornicus@Admin.Nightstar.Net] has quit [Ping Timeout] |
05:01 | | Vornotron is now known as Vornicus |
05:06 | | Orthia [~Orthianz@Nightstar-23607.xdsl.xnet.co.nz] has joined #Code |
05:55 | < Vornicus> | mother of god. |
05:55 | < Vornicus> | Knowing the right algorithm makes an incredible amount of difference. |
05:55 | <@Derakon> | Heh. |
05:56 | <@ToxicFrog> | Quite. |
05:56 | | * Vornicus is Project Eulering. Discovered the Pell Equation, which is the diophantine equation used in problem 66. |
05:56 | < Vornicus> | Earlier I had tried a brute force thing and it was... oh... 10% done when I cut it off at an hour. |
05:57 | < Vornicus> | This one, I didn't even have time to react, it finished in a fraction of a second. |
05:58 | < Vornicus> | On to 67! |
05:58 | < Vornicus> | Fortunately I already wrote the code for this one. |
06:08 | | Orthia [~Orthianz@Nightstar-23607.xdsl.xnet.co.nz] has quit [Connection reset by peer] |
06:24 | | Orthia [~Orthianz@Nightstar-23607.xdsl.xnet.co.nz] has joined #Code |
06:25 | | * Vornicus now works on 68, which is a pain. |
06:50 | | Orthia [~Orthianz@Nightstar-23607.xdsl.xnet.co.nz] has quit [Ping Timeout] |
07:02 | | Orthia [~Orthianz@Nightstar-6809.xdsl.xnet.co.nz] has joined #Code |
07:31 | | * Derakon fixes the spacing of his shiny new tiles. |
07:42 | | Derakon is now known as Derakon[AFK] |
07:59 | | Vornicus [Vornicus@Admin.Nightstar.Net] has quit [Quit: ] |
09:01 | | AnnoDomini [~farkoff@Nightstar-29105.neoplus.adsl.tpnet.pl] has joined #Code |
09:01 | | mode/#code [+o AnnoDomini] by ChanServ |
09:29 | | Tarinaky [~Tarinaky@Nightstar-16638.plus.com] has joined #code |
10:39 | | Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has quit [Quit: Rhamphoryncus] |
13:52 | | gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code |
13:52 | | mode/#code [+o gnolam] by ChanServ |
13:53 | | Orthianz [~Orthianz@Nightstar-21509.xdsl.xnet.co.nz] has joined #Code |
13:54 | | Orthia [~Orthianz@Nightstar-6809.xdsl.xnet.co.nz] has quit [Ping Timeout] |
14:46 | | Orthianz [~Orthianz@Nightstar-21509.xdsl.xnet.co.nz] has quit [Ping Timeout] |
15:30 | | iBoszy [~Boszy@Nightstar-1824.45-245-81.adsl-dyn.isp.belgacom.be] has joined #Code |
15:30 | | iBoszy [~Boszy@Nightstar-1824.45-245-81.adsl-dyn.isp.belgacom.be] has left #Code [] |
16:04 | | Syloqs_AFH [Syloq@Admin.Nightstar.Net] has joined #code |
16:05 | | Syloqs_AFH is now known as Syloqs-AFH |
16:16 | | KBot [AnnoDomini@Nightstar-28858.neoplus.adsl.tpnet.pl] has joined #Code |
16:17 | | KarmaBot [AnnoDomini@Nightstar-29105.neoplus.adsl.tpnet.pl] has quit [Ping Timeout] |
16:17 | | AnnoDomini [~farkoff@Nightstar-29105.neoplus.adsl.tpnet.pl] has quit [Ping Timeout] |
16:19 | | KBot is now known as KarmaBot |
16:24 | | AnnoDomini [~farkoff@Nightstar-28858.neoplus.adsl.tpnet.pl] has joined #Code |
16:24 | | mode/#code [+o AnnoDomini] by ChanServ |
16:26 | | Derakon[AFK] is now known as Derakon |
17:44 | | Vornicus [Vornicus@Admin.Nightstar.Net] has joined #code |
17:44 | | mode/#code [+o Vornicus] by ChanServ |
17:44 | | Vornicus [Vornicus@Admin.Nightstar.Net] has quit [Connection reset by peer] |
17:44 | | Vornicus [Vornicus@Admin.Nightstar.Net] has joined #code |
17:44 | | mode/#code [+o Vornicus] by ChanServ |
18:05 | | Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has joined #code |
21:09 | | * gnolam vomits some more bile on Hungarian notation. |
21:36 | <@gnolam> | But at least there are viewmodels: http://www.cyd.liu.se/~torha229/RadiaX/rad_dorm0000.jpg |
22:55 | | Tarinaky [~Tarinaky@Nightstar-16638.plus.com] has quit [Quit: Leaving] |
23:52 | <@MyCatVerbs> | Oooh, pretty! So why're you modding HL2, gnolam? |
23:54 | <@gnolam> | For national security. ^-^ |
23:58 | <@gnolam> | (The project was commissioned by the Radiation Preparedness Laboratory) |
23:58 | <@MyCatVerbs> | That's explain why Gordon Freeman is holding something that looks like a Fluke product, I presume. |
--- Log closed Thu Apr 02 00:00:13 2009 |