code logs -> 2009 -> Wed, 01 Apr 2009< code.20090331.log - code.20090402.log >
--- 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
code logs -> 2009 -> Wed, 01 Apr 2009< code.20090331.log - code.20090402.log >