code logs -> 2007 -> Tue, 06 Feb 2007< code.20070205.log - code.20070207.log >
--- Log opened Tue Feb 06 00:00:07 2007
00:08 MyCatVerbs [~mycatownz@Nightstar-379.dsl.in-addr.zen.co.uk] has joined #code
00:22 Vornicus-Latens is now known as Vornicus
00:58 MyCatVerbs is now known as MyCatSleeps
01:16 Chalcedon is now known as ChalcyOut
01:16 gnolam [Lenin@Nightstar-13557.8.5.253.se.wasadata.net] has quit [Quit: Sleep]
01:26 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
01:26 mode/#code [+o Chalcy] by ChanServ
01:27 ChalcyOut [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
02:22 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has joined #Code
03:02 Chalcy is now known as Chalcedon
03:03 MyCatSleeps [~mycatownz@Nightstar-379.dsl.in-addr.zen.co.uk] has quit [Connection reset by peer]
03:03 MyCatSleeps [~mycatownz@Nightstar-379.dsl.in-addr.zen.co.uk] has joined #code
03:05 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
03:05 mode/#code [+o Chalcy] by ChanServ
03:05 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has quit [Quit: .]
03:06 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Killed (NickServ (GHOST command used by Chalcy))]
03:06 Chalcy is now known as Chalcedon
03:11 * McMartin does some serious damage to the cthonic horror that is the pitiful excuse for an abstraction layer in UQM's graphics code.
03:14
<@ToxicFrog>
Wewt.
03:15 * ToxicFrog rewrites his prototype-based OO framework in C, For Great Operator Overloads.
03:15
<@McMartin>
After confirming that VC6 lets you combine typedef with forward declarations.
03:15
<@McMartin>
(It does)
03:19 * McMartin eyes gfxintern.h, weeps tears of bubbling pitch.
03:23 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
03:23 mode/#code [+o Chalcy] by ChanServ
03:23 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Killed (NickServ (GHOST command used by Chalcy))]
03:23 Chalcy is now known as Chalcedon
03:25
<@ToxicFrog>
ben@orias ~/Source/svn/lua/oo
03:25
<@ToxicFrog>
$ lua
03:25
<@ToxicFrog>
Lua 5.1.1 Copyright (C) 1994-2006 Lua.org, PUC-Rio
03:25
<@ToxicFrog>
> Prototype = require "Prototype"
03:25
<@ToxicFrog>
function: 0x9973760
03:25
<@ToxicFrog>
> print(Prototype)
03:25
<@ToxicFrog>
userdata: 0x9972134
03:25
<@ToxicFrog>
> function Prototype:__tostring() return "Prototype: "..string.sub(tostring(getmetatable(self)), 8, -1) end
03:25
<@ToxicFrog>
> print(Prototype)
03:25
<@ToxicFrog>
Prototype: 0x9972140
03:25
<@ToxicFrog>
>
03:25
<@ToxicFrog>
It works great, the one cardinal rule is that thou shalt not overload __index or __newindex
03:26
<@ToxicFrog>
Unless you really know what you're doing and have a reference to the metatable of the thing you're overloading them on handy.
03:32
<@ToxicFrog>
Hmm. I suppose "InstanceOf" isn't really the right word.
03:38
<@ToxicFrog>
McMartin: semantics question.
03:38
<@McMartin>
Fire away
03:38
<@ToxicFrog>
Should Object:CopyOf(Object) be true?
03:38
<@ToxicFrog>
I am leaning no.
03:40
<@McMartin>
Um.
03:40
<@McMartin>
CopyOf being like "InstanceOf"?
03:41
<@ToxicFrog>
Yes. Except since the line between classes and instances is so fuzzy as to be effectively nonexistent...
03:41
<@McMartin>
Yeah
03:41
<@McMartin>
I'd lean towards "yes", though.
03:41
<@McMartin>
An object is an instance of its own type, after all.
03:42
<@ToxicFrog>
I am leaning towards "false" or possibly "undefined", since (1) by strict reading of the question it's false and (2) it's nonsensical question anyways.
03:42
<@ToxicFrog>
Hmm.
03:42
<@McMartin>
Or is this Object specifically?
03:42
<@ToxicFrog>
This one specifically.
03:42
<@McMartin>
Hrm.
03:42
<@ToxicFrog>
That is to say, is Object a copy of Object.
03:43
<@McMartin>
All other objects in the universe are copies of Object, right?
03:43
<@ToxicFrog>
Not is [some random Object] a copy of Object.
03:43
<@ToxicFrog>
The latter is clearly true.
03:43
<@McMartin>
I meant more "are objects copies of themselves".
03:43
<@McMartin>
Because generally you want that to be true.
03:43
<@ToxicFrog>
Ok, why?
03:43
<@McMartin>
Because you're using this to determine assignment compatibility, right?
03:43
<@McMartin>
That is, I've got an object Sprite
03:44
<@ToxicFrog>
(hmm. It occurs to me that if the user overloads ==, my current implementation of CopyOf breaks. I must fix this.)
03:44
<@McMartin>
And I copy it and modify it to make MipMappedSprite.
03:44
<@McMartin>
I can use MMSs wherever I could use Sprites, yes?
03:44
<@ToxicFrog>
Unless you did something very drastic, yes.
03:44
<@McMartin>
So the test I'd be doing here to see if I can do drawing is to see if I'm a copy of Sprite.
03:44
<@ToxicFrog>
Right.
03:45
<@ToxicFrog>
But the thing is -
03:45
<@McMartin>
So Sprite had better pass that test.
03:45
<@ToxicFrog>
aSpecificSprite = Sprite:New("filename.png")
03:45
<@ToxicFrog>
aSpecificSprite:CopyOf(Sprite) -> true
03:45
<@ToxicFrog>
Sprite:CopyOf(Sprite) -> ???
03:45
<@McMartin>
Um.
03:45
<@McMartin>
Right, level confusion.
03:45
<@McMartin>
No, Sprite:CopyOf(Class) -> true.
03:46
<@McMartin>
Classes aren't the objects they embody.
03:46
<@ToxicFrog>
Right.
03:46
<@ToxicFrog>
Which is what I was thinking when saying that foo:CopyOf(foo) -> false is what I was leaning towards.
03:46
<@McMartin>
However, if Classes are Objects, then "Object" is of type Class
03:47
<@ToxicFrog>
Yes.
03:47
<@McMartin>
And Classes are Objects, so Object:copyOf(Object) is true because AnyClass:copyOf(Object) is true.
03:47
<@ToxicFrog>
(actually Object is a CopyOf Prototype, which is an original type)
03:47
<@McMartin>
Hum. You're using a different ontology than Java, then~
03:47
<@ToxicFrog>
The other thing is that CopyOf and New are actually extensions introduced in Object.
03:47
<@McMartin>
I'd have to actually pick your implementation apart to answer firmly.
03:47
<@ToxicFrog>
Prototype contains exactly one member, the Copy() method.
03:48
<@McMartin>
... I have a better idea.
03:48
<@ToxicFrog>
Object extends it to support constructors, superclass tracking, etc.
03:48
<@ToxicFrog>
Oh?
03:48
<@McMartin>
When doing type testing, have a member in Object, "class"
03:48
<@McMartin>
Or "type" or whatever
03:48
<@McMartin>
Then have that be an Object.
03:49
<@ToxicFrog>
I already have that, and it's how CopyOf operates.
03:49
<@ToxicFrog>
The thing is -
03:49
<@ToxicFrog>
Sprite = Object:Copy()
03:49
<@ToxicFrog>
MMSprite = Sprite:Copy()
03:49
<@ToxicFrog>
MMSprite:CopyOf(Object) -> true
03:49
<@ToxicFrog>
MMSprite.type == Object -> false
03:49
<@McMartin>
Mmmr.
03:49
<@ToxicFrog>
because MMSprite.type is Sprite, not Object.
03:49
<@ToxicFrog>
CopyOf just follows that reference up the class chain until it either finds a match or hits the root.
03:49
<@McMartin>
You don't actually have assignment compatibility here.
03:50
<@ToxicFrog>
?
03:50
<@McMartin>
MMS can remove things Sprite has, right?
03:50
<@ToxicFrog>
Yes.
03:50
<@McMartin>
In that case, I can think of no reason to actually ever use CopyOf.
03:50
<@ToxicFrog>
I could in fact change that, but then things start getting ugly.
03:51
<@McMartin>
Quite so.
03:51
<@McMartin>
I don't think CopyOf is even a particularly well-defined operation.
03:51
<@ToxicFrog>
Because then :Copy() has to create superclass information, and __index has to follow it up the chain to resolve functions.
03:52
<@ToxicFrog>
Which is, in fact, what my other, more traditional OO framework does.
03:52
<@ToxicFrog>
(which is 400 lines long, still unfinished, and contains several bugs. This one is 100 lines counting both Lua and C and has no bugs that I'm aware of.)
03:53
<@McMartin>
(Yeah. I'd have to study JavaScript Core some more, but I don't think instanceof-like operators make sense in a prototype system.)
03:54
<@ToxicFrog>
Hmm. I wonder if it would be possible to add this in a Lua-only extension, though.
03:55
<@ToxicFrog>
Let's see. Wrap Copy() to create superclass information. setmetatable(getmetatable(self), { __index = self.super })
03:55
<@ToxicFrog>
And then delete all functions from self.
03:55
<@ToxicFrog>
Doable.
03:55
<@ToxicFrog>
Means mucking around in the table behind the object, but doable.
03:56
<@ToxicFrog>
This does not, of course, guarantee data member compatibility.
03:57
<@ToxicFrog>
Nor does it prevent someone from, say, shadowing the functions with a non-function type.
03:58
<@ToxicFrog>
Unless I overload __newindex as well...
03:58
<@ToxicFrog>
I think I will do this just for practice.
03:59
<@ToxicFrog>
Although I have no idea if I'll ever use it.
03:59
<@ToxicFrog>
It does seem kind of like mangling the prototype-based system to behave more like a traditional system (what's the proper term? class-instance system?)
04:02
<@McMartin>
(Not sure. I think of them as "C++", "Python", and "JavaScript", or, if I'm being academic, "Simula", "Smalltalk", and "Self".)
04:03
<@ToxicFrog>
(how do C++'s and Python's differ?)
04:04
<@McMartin>
(Python "method invocations" are dynamically resolved, so you can assign extra methods to instances and the like.)
04:04
<@ToxicFrog>
(aah)
04:05
<@McMartin>
(However, it's also got a concept of "type", unlike Self/JavaScript)
04:06
<@ToxicFrog>
And of course, the entire purpose of this exercise in porting PBOO to C...
04:06
<@ToxicFrog>
> function Object:__len() return 3 end
04:07
<@ToxicFrog>
> print(#Object)
04:07
<@ToxicFrog>
3
04:07
<@ToxicFrog>
...was so that I could overload #, the lengthof operator.
04:17
< Vornicus>
...wicked
04:20
<@ToxicFrog>
?
04:24 * McMartin puts a stake through gfxintrn.h's heart, buries it at a crossroads
04:25
<@McMartin>
http://sc2.svn.sourceforge.net/viewvc/sc2?view=rev&revision=2698
04:54
<@McMartin>
Hee
04:54
<@McMartin>
20:53 <@McMartin> ... yeah, so there's 102 types of the typedef FOO *PFOO variety.
04:54
<@McMartin>
20:54 <@McMartin> I would not be overwhelmed with sorrow if they were all to suffer unfortunate "accidents", but that's a pretty severe change so I'd want all of coredev onboard such a change.
04:54
<@Reiver>
...
04:58
<@McMartin>
A decent argument has be raised to not do so, however, so we shall see.
04:58
<@Reiver>
What would the arguement against slaughter be?
04:58
<@McMartin>
Oh. Ports to architectures that need to decorate pointer types.
04:59
<@McMartin>
Specifically, ones that distinguish "near" and "far" pointers.
04:59
<@Reiver>
...Hm
04:59
<@Reiver>
The above makes this better how?
04:59
<@McMartin>
You change a couple header files instead of Every Single Source File.
05:00
< Vornicus>
What modern architectures do this?
05:00
<@McMartin>
None that we're aware of.
05:00
< Vornicus>
uh
05:00
< Vornicus>
okay.
05:00
<@McMartin>
But removing this would involve doing a major change to every source file to make the code compile on fewer platform styles.
05:00
<@McMartin>
That's a harder sell.
05:01
<@McMartin>
The 102 typedefs have been there for forever because the original code was for 286es, which did need far pointer markers.
05:01
<@McMartin>
And unlike the Deliberate Buffer Overruns, don't do harm on Real Architectures.
05:02
< Vornicus>
Deliberate Buffer Overruns?
05:02
<@McMartin>
This requires explanation, and I'll have to save it for a moment.
05:02
<@McMartin>
brb.
05:07
<@ToxicFrog>
Vornicus: rewriting my OO framework in another language so that I can overload __len is 'wicked'?
05:07
<@McMartin>
OK, so
05:07
<@McMartin>
There were several linked-list types in Star Control 2.
05:08
<@McMartin>
Instead of directly having a "next" pointer, they instead stored a byte offset that you added to the structure's pointer value to get the next element.
05:09
<@McMartin>
We eventually determined that the reason for this is because it's much faster to mix accesses between members of one element and its successors that way.
05:09
<@McMartin>
Because all pointer comparisons on a 286 have their address computed as BX + constant + small-power-of-two*IX/IY.
05:09
<@McMartin>
So using next pointers would keep trashing BX.
05:11
< Vornicus>
idunno
05:12
<@McMartin>
s/comparisons/specifications/
05:13
<@McMartin>
There was also one place where it would read values out of a struct that ended with an array by indexing into that array with a negative value.
05:13
<@McMartin>
We saw no excuse for thus other than sheer wtfery.
05:13
<@Reiver>
...
05:14
<@ToxicFrog>
...
05:14
<@McMartin>
... actually, I'm only fairly sure we killed that. That bit wasn't my department, and I only remember hearing a not-quite-coredev shrieking about it.
05:14
<@McMartin>
That guy eventually became coredev, though.
05:15
<@McMartin>
But yeah, regarding the 102 pointer-based typedefs, there's no reason not to leave them in.
05:15
<@Reiver>
But... why?
05:15
<@McMartin>
I mean, people have gone and compiled it on Amigas already.
05:15
<@McMartin>
There's no reason to believe someone might not try their luck on Actually Primitive systems too.
05:16
<@McMartin>
Reiver: I think it was because the Star wasn't part of the Planet array, so planets[-1] let you do things with the star.
05:17
<@Reiver>
...Right.
05:17
<@Reiver>
That's... still messed up, though.
05:17
<@Reiver>
Like wow.
05:17
<@Reiver>
>.>
05:17
<@McMartin>
The original code was two guys under unbelievable time pressure, so yes~
05:17
<@Reiver>
...Ah.
05:17
<@Reiver>
A code full of hackjobs?
05:18
<@McMartin>
SC2 was shipped six months late because the devs weren't happy with it and went six months without pay to get the thing in the shape they wanted.
05:19
<@McMartin>
Also, the code we inherited had a Messy, Complicated Engine under the hood that's being statically linked in.
05:19
<@McMartin>
The major refactoring I just committed removed a few unnecessary layers of abstraction.
05:21
<@Reiver>
Wow.
05:21
<@Reiver>
six months with no pay? That's dedication~
05:21
<@McMartin>
This involved adding things like the Planet Landing sequences and basically all the dialogue.
05:22
<@Reiver>
...In other words making it actually interesting.
05:22
<@Reiver>
Hm.
06:29 gnolam [Lenin@Nightstar-13557.8.5.253.se.wasadata.net] has joined #Code
06:56 Mahal [~Mahal@Nightstar-4998.worldnet.co.nz] has quit [Ping Timeout]
06:59 Mahal [~Mahal@Nightstar-4998.worldnet.co.nz] has joined #Code
06:59 mode/#code [+o Mahal] by ChanServ
08:43 AnnoDomini is now known as UndeadAnno
09:01 Reiver is now known as ReivZzz
09:03 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Quit: DOOM!!!!]
09:21 Mahal is now known as MahalBEDD
10:20 You're now known as TheWatcher[wr0k]
11:12 MyCatVerbs [~rb6822@Nightstar-14909.cs.bris.ac.uk] has joined #code
11:55 ReivZzz is now known as ReivSLEP
15:28 You're now known as TheWatcher
16:00 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has joined #Code
16:05 * ToxicFrog ponders how best to handle nested chunks
16:06
<@ToxicFrog>
I think a nested chunk is a chunk which, itself, contains chunks of the appropriate type.
16:07
< Vornicus>
in what, IFF? XML?
16:07
<@ToxicFrog>
What's IFF, XML can die in a fire, and the answer is "in memory"
16:09
<@ToxicFrog>
I think the solution is: NestedChunk is a subtype of Chunk; you can ask a NestedChunk for one of its subchunks and it will return a complete Chunk object (as opposed to, say, a raw data buffer) of the appropriate type.
16:09
< MyCatVerbs>
Just use S-expressions. Pretend it's LISP.
16:11
< Vornicus>
IFF is a hierarchical binary file metaformat.
16:12
< Vornicus>
Originally designed for compatibility with both Mac and PC.
16:13
< Vornicus>
RIFF is the same thing except little-endian.
16:13
<@ToxicFrog>
Aah.
16:13
< Vornicus>
AVI and WAV are RIFF formats; TIFF is an IFF format.
16:13
<@ToxicFrog>
See, file formats are completely irrelevant here, because the file format is already written.
16:13
<@ToxicFrog>
It's the in-memory representation that's at question.
16:14
< MyCatVerbs>
ToxicFrog: treeeeeeesssss! =D
16:16
< Vornicus>
(Blorb (an Interactive Fiction story file) and old-school Word and Excel files are also IFF; PNG, MIDI, and MOV are IFF-like)
16:17
<@ToxicFrog>
MCV, please to be reading the Unofficial System Shock Specifications, then come back when you have done so.
16:18
< Vornicus>
And I was asking more along the lines of, what are the constraints on chunks?
16:19
< Vornicus>
Is it XML like, where you can have blobs and more structure-chunks glommed together in a single chunk? Or does a nested chunk only contain chunks?
16:23
< MyCatVerbs>
ToxicFrog: I'm just winding you up. Ignore me for the moment.
16:29
<@ToxicFrog>
Vornicus: a nested chunk only contains chunks.
16:29
<@ToxicFrog>
A chunk contains either:
16:29
<@ToxicFrog>
- one data buffer
16:30
<@ToxicFrog>
- several data buffers of varying lengths, but the same type
16:30
<@ToxicFrog>
The latter is a nested chunk
16:30
< Vornicus>
Then your mentioned design is the correct one.
16:30
< Vornicus>
Nested chunks, they're all the same kind of chunk?
16:32
<@ToxicFrog>
Yes. The type information is stored in the TOC entry, and a nested chunk only has a single entry regardless of how many subchunks it has.
16:32
<@ToxicFrog>
Typically these are used for textures and log entries.
16:32
< Vornicus>
ok
16:37
< MyCatVerbs>
GNU CLISP's build process is kinda involved.
16:38
< MyCatVerbs>
Fascinating to watch, though. Gentoo users, eat your hearts out. Scrolling S-expressions are much prettier than scrolling gcc output. :)
16:47
< MyCatVerbs>
...worth it. ^^
16:53 Vornicus is now known as Vornicus-Latens
17:20 You're now known as TheWatcher[afk
17:20 You're now known as TheWatcher[afk]
17:32 UndeadAnno [~farkoff@Nightstar-29191.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
17:37 AnnoDomini [~farkoff@Nightstar-29113.neoplus.adsl.tpnet.pl] has joined #Code
17:40 Vornicus-Latens [~vorn@ServicesOp.Nightstar.Net] has quit [Operation timed out]
17:41 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
17:41 mode/#code [+o Chalcedon] by ChanServ
17:41 Vornicus-Latens [~vorn@67.50.40.ns-3674] has joined #code
17:44 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
17:44 mode/#code [+o Chalcy] by ChanServ
17:45 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
18:05 MahalBEDD is now known as Mahal
18:06 Chalcy is now known as Chalcedon
18:22 MyCatVerbs [~rb6822@Nightstar-14909.cs.bris.ac.uk] has quit [Quit: Swim, swim, hungry!]
18:27 You're now known as TheWatcher
18:42 Mahal is now known as MahalWORK
19:19 EvilDarkLord [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has quit [Ping Timeout]
19:30 EvilDarkLord [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has joined #code
19:32 MyCatSleeps is now known as MyCatVerbs
19:43 ReivSLEP is now known as ReivOut
19:44 rock_boy [rock_boy@89.137.48.ns-12119] has joined #Code
19:44 * rock_boy yelo please watch this:)..its coool : http://www.metacafe.com/watch/413213/incredible_people_magic_or_strenght/ bye bye.
19:45 rock_boy [rock_boy@89.137.48.ns-12119] has quit [Client exited]
20:23
< Janus>
(In retrospect, modeling a character without a reference image wasn't a swell idea.)
20:25
< MyCatVerbs>
Janus: bwuh?
20:28
< Janus>
First I put the feet on the opposite legs, then the rear looks as though someone had sat on a basketball for a month, and now, the arms look as though donated by a sickly boy with leukemia.
20:28
<@ToxicFrog>
...
20:28
< Janus>
It's not a pretty sight.
20:30
< MyCatVerbs>
Suggest you make it deliberately ugly in an arty fashion, then take photographs? =D
20:32 Thaqui [~Thaqui@Nightstar-26359.jetstream.xtra.co.nz] has joined #code
20:35
< Janus>
I don't see why not~
20:35
<@ToxicFrog>
Hmm. I hope putting the TOC at the start of the file doesn't break anything.
20:35
<@ToxicFrog>
Shouldn't do, but I don't have the source.
20:36 Chalcedon is now known as ChalcyOut
20:37
< Janus>
http://img.photobucket.com/albums/v492/tai_ragnarok/Yikes.jpg [/eww]
20:40
< Janus>
Hopefully, the finished product would be heavily covered enough that it wouldn't make a difference.
20:42
< MyCatVerbs>
Janus: can't really see that. It's very dark grey on black.
20:43 * Janus is was too lazy to add lights.
20:43
< Janus>
*will be
20:43
< MyCatVerbs>
...
20:43
< MyCatVerbs>
Well no wonder you can't get the model to look right if you can't even feckin' *see* it =)
20:47 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
20:47 mode/#code [+o Chalcy] by ChanServ
20:48 AnnoDomini is now known as UndeadAnno
20:48 ChalcyOut [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
21:02 Janus is now known as Jan[epiphany]
21:10 EvilDarkLord [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has quit [Ping Timeout]
21:16 You're now known as TheWatcher[T-2]
21:20 EvilDarkLord [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has joined #code
21:23 You're now known as TheWatcher[afk]
21:33 ReivOut is now known as Reiver
22:17 ChalcyGone [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
22:17 ChalcyGone is now known as Chalcedon
22:18 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
22:42
< MyCatVerbs>
Oooohyeah. On the list of stuff that totally has got to be done: cheesy anim? battle between programming languages. Crazy moves and everything.
22:42
<@Reiver>
...
22:43
<@Reiver>
So what, Java floods people with documentation, C++ is really fast and chaotic, and Lisp's special attack is to trap people inside a swarm of brackets?
22:43
<@McMartin>
C++ keeps shooting itself in the foot.
22:43
<@Reiver>
Pythons secret weakness is having it's formatting messed up.
22:43
<@McMartin>
Nobody can understand Lua, it being a "crazy moon language"
22:43
<@Reiver>
With zomg special moves?
22:43
<@Reiver>
That no-one notices anyway?
23:29 * Jan[epiphany] eats it up~
23:45 gnolam [Lenin@Nightstar-13557.8.5.253.se.wasadata.net] has quit [Quit: Sleep]
23:55
< MyCatVerbs>
Reiver: that kind of stuff, yes.
23:55
< MyCatVerbs>
Reiver: think of the C avatar teleporting away from the scene of battle by screaming "longjmp()!"
23:56
<@McMartin>
Inferior to the deadly Stack Cutting Technique.
23:56
<@Reiver>
Tsk.
23:57
< MyCatVerbs>
Right, which is then countered by a running propolice implementation.
--- Log closed Wed Feb 07 00:00:07 2007
code logs -> 2007 -> Tue, 06 Feb 2007< code.20070205.log - code.20070207.log >