code logs -> 2007 -> Wed, 21 Mar 2007< code.20070320.log - code.20070322.log >
--- Log opened Wed Mar 21 00:00:51 2007
00:02 You're now known as TheWatcher
00:08 Derakon [~Derakon@Nightstar-12737.sea2.cablespeed.com] has joined #code
00:08 mode/#code [+o Derakon] by ChanServ
00:13
<@ToxicFrog>
SQUEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
00:13
<@McMartin>
?
00:14
<@Reiver>
TF has worked out how to make a boat sink?
00:16
<@Vornicus>
I think he already did that last night.
00:17
<@ToxicFrog>
No, I did that last night.
00:17
<@ToxicFrog>
However, GPG likes my resume ^.^
00:17
<@Derakon>
Squee!
00:17
<@Vornicus>
Ah, good stuff.
00:17
<@ToxicFrog>
My god, this summer is getting impossible to plan.
00:18
<@ToxicFrog>
Two weeks ago I was thinking summer in guelph, working in Waterloo on Project Scorpius.
00:18
<@ToxicFrog>
One week ago I was thinking summer in Guelph, working on campus on SHODAN.
00:18
<@ToxicFrog>
Today I'm pondering Seattle, and working on Supreme Commander.
00:19 * ToxicFrog 's head explodes
00:19 * Vornicus hands TF's carcass a mop.
00:19
<@Serah>
Reiver, do you know c++ compilation?
00:20
<@Reiver>
um
00:20 * Derakon notes that Seattle is illustrious ground for boardies.
00:20
<@Serah>
Back when I coded c++ I had a bat file for it. And I can't remember for the life of me.
00:20
<@ToxicFrog>
I think he does, but if not, I know.
00:20
<@Serah>
Now I want http://www.anope.org/modules/ns_appendgroupownertoinfoall.c compiled as a windows binary.
00:20
<@Reiver>
...
00:20
<@ToxicFrog>
...at least, I know under Linux, and I know under Windows with mingw or Cygwin installed.
00:20
<@Reiver>
TF could get hired by GPG?
00:20
<@Serah>
So a guide for the stupid ( me ) would be helpful.
00:20
<@Reiver>
We would have an Insider? O.o
00:20
<@Serah>
GPG??
00:21
<@ToxicFrog>
Serah: that's an Anope Services module, yes?
00:21
<@Derakon>
For the summer anyway, Reiver.
00:21
<@ToxicFrog>
You want it compiled as a DLL?
00:21
<@Serah>
Yes, indeed.
00:21
<@Reiver>
Der: That would remain absurdly cool.
00:21
<@Derakon>
Indeed.
00:21
<@Serah>
If that is the proper device. That would be much appriciated.
00:21
<@Reiver>
And also tends to mean he would be something of a boot camp Expert.
00:21 * Serah is obviously a noob.
00:21
<@ToxicFrog>
What tools do you have on hand?
00:21
<@Serah>
None at all.
00:22
<@ToxicFrog>
Ok. You will need a C compiler and the Anope header files.
00:22
<@Serah>
Sounds dangerous.
00:22
<@ToxicFrog>
It is.
00:23
<@Serah>
;D
00:23 * Serah goes looking for a C compiler.
00:23
<@ToxicFrog>
www.mingw.org
00:24
<@ToxicFrog>
Getting the latest MinGW will get you C and C++ compilers.
00:24
<@ToxicFrog>
Getting the latest MSYS as well will get you a convenient shell to use them from.
00:24
<@ToxicFrog>
Alternately: http://www.bloodshed.net/devcpp.html
00:24
<@ToxicFrog>
Is a C and C++ IDE which comes with the MinGW toolset.
00:24
<@ToxicFrog>
Alternately alternately: www.cygwin.com
00:25
<@ToxicFrog>
Is a 700+MB download and a 1GB install, but comes with way more stuff than mingw.
00:26 * Serah was going for Turbo C++ due to prior experience.
00:26
<@Serah>
I have 400 megs.
00:26
<@McMartin>
Don't inflict Cygwin on a n00b.
00:26
<@Serah>
Total.
00:26
<@ToxicFrog>
Sorry ;.;
00:26
<@Serah>
:p
00:26
<@McMartin>
I'd go with DevCPP as a first IDE.
00:27
<@Serah>
I'm the one who is sorry.
00:27
<@McMartin>
Borland C++ has portability issues.
00:27
<@ToxicFrog>
The thing is, for general use, I'd recommend DevCPP.
00:27
<@Serah>
It does?
00:27
<@ToxicFrog>
However.
00:27
<@ToxicFrog>
If all you want to do is compile *this one thing*, mingw is better.
00:27
<@McMartin>
Ah, a point.
00:27
<@ToxicFrog>
Because then I can give you exactly the necessary commands, there's no messing about with setting up a project to contain it in, etc, etc.
00:27
<@Serah>
Bloodshed's DevCPP?
00:27 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has joined #Code
00:27
<@ToxicFrog>
Yes.
00:28
<@Serah>
Ok, if you like MingW mingW it is.
00:29
<@ToxicFrog>
Unless you're planning to keep doing C or C++ish stuff afterwards.
00:29
<@Serah>
I'm not.
00:29
<@Serah>
I'm planning on deleting it.
00:29
<@Serah>
And when I have the need start it up from scratch.
00:29
<@Serah>
With guides and tutorials.
00:29
<@Serah>
MSys MingW works for you?
00:30
<@ToxicFrog>
Yes. Install mingw first, then msys.
00:30
<@ToxicFrog>
Actually, you can get away with just mingw if you have to.
00:30
<@ToxicFrog>
But msys makes it easier.
00:31
<@Serah>
Msys is not mingw itself?
00:31
<@Serah>
Confusing.
00:32
< MyCatHungrs>
MSYS is a whole kit and kiboodle, shell and all, built using mingw and including a copy of mingw.
00:32
<@ToxicFrog>
No, MSYS does not include mingw.
00:32
< MyCatHungrs>
MinGW is *just* a port of GCC on its own.
00:32
<@ToxicFrog>
Nor is mingw just GCC.
00:32
< MyCatHungrs>
MinGW is GCC plus a POSIX compatibility layer?
00:33
<@ToxicFrog>
mingw is a port of gcc, g++, and other stuff such as libraries and header files necessary to compile C and C++ (and some other languages).
00:33
< MyCatHungrs>
...nowait, that's Cygwin.
00:33
<@ToxicFrog>
Some of the libraries include full ANSI and partial POSIX compatibility.
00:33
<@ToxicFrog>
MSYS is a set of additional tools that make minGW easier to use.
00:33
<@ToxicFrog>
It wraps around mingw and gives you a shell and environment in which to use make, configure, and similar.
00:33
< MyCatHungrs>
Ah. See, I'd lump all those libraries in with gcc, since the compiler doesn't actually meet the C spec if it's not bundled with them.
00:33
<@ToxicFrog>
And also gives you a better alternative to the DOS shell.
00:34 MyCatHungrs is now known as MyCatVerbs
00:34
<@ToxicFrog>
Thus, mingw is the bare minimum for compiling stuff, but is really meant to be used as the backend to an IDE or similar.
00:34
<@ToxicFrog>
MSYS is a frontend for it.
00:34
< MyCatVerbs>
He.
00:34
< MyCatVerbs>
*Hehee.
00:34
<@Serah>
Makes sense.
00:34
< MyCatVerbs>
So minGW is enough to compile programs, MSYS is enough to get work done. ^^
00:34
<@Serah>
I just wish they had written "Windows 32bit complete" somewhere.
00:35
<@Serah>
And you would prefer I had both?
00:35
<@ToxicFrog>
Well, without MSYS, you'll have to control minGW using the DOS shell.
00:35
<@ToxicFrog>
Which is a horrible pain.
00:35
<@ToxicFrog>
"windows 32bit complete"?
00:35
<@ToxicFrog>
Er?
00:35
< MyCatVerbs>
Also you can often run autoconf scripts in MSYS.
00:36
<@Serah>
Getting MingW runtime.
00:36
< MyCatVerbs>
Not always - it usually takes massive hacking on the developer's part to get things to work in the rather restricted environment available - but it's handy when it works.
00:37
<@ToxicFrog>
MyCatVerbs: err.
00:37
<@ToxicFrog>
Hacking is rarely, if ever, necessary.
00:37
<@ToxicFrog>
The entire point of MSYS is that you can run autoconf scripts in it.
00:38
< MyCatVerbs>
ToxicFrog: ? Poke around in codebases and you see masses of Cygwin-specific hacks. Or is MSYS much better at this?
00:38
<@ToxicFrog>
If things don't ./configure in MSYS, it's because libraries they need are missing, which is entirely possible since MSYS, being, as it says on the box, minimal, comes with a rather small selection.
00:38
<@Serah>
Ok, untared MingW runtime, got four folders. I need to wrap Msys around these four folders, yes
00:38
<@Serah>
?
00:38
<@ToxicFrog>
...untarred?
00:38
<@ToxicFrog>
It's an installer.
00:38 * Serah kerblinks.
00:38
<@Serah>
It's a MingW installer, that is not GCC?
00:39
<@ToxicFrog>
You want "mingw" and "msys"
00:39
<@ToxicFrog>
Not "mingw runtime"
00:39
<@ToxicFrog>
"mingw runtime" is a subcomponent that's automatically installed.
00:39
<@ToxicFrog>
It's listed seperately there in case you want to update an existing install with the latest version.
00:40
<@Serah>
Getting MingW 3.1.0-1 then.
00:41
< MyCatVerbs>
Also, get yourself a cookie while waiting for it to download.
00:41
< MyCatVerbs>
Cookies are awesome.
00:41
<@Serah>
Eh, it's done.
00:41
<@Serah>
And my left leg is currentl inoperable.
00:41
<@Serah>
Because I had a MPFL operation friday a week ago.
00:41
< MyCatVerbs>
a) yay b) boo :(
00:42
< Janus>
It's answer 'b'!
00:42
<@Serah>
I feel kinda awed that you're ell helping me.
00:42
<@Serah>
And very honored I suppose.
00:43
< MyCatVerbs>
Serah: you kidding? Geek psych 101: Taking Advantage Of Their Near-Pathological Desire To Please. Alternative title, "Feeling Useful Is The Only Thing These People Live For Anyway."
00:44
<@Serah>
:p
00:44
<@Serah>
Well, I love you all to death then.
00:45 * Serah hands out cæke.
00:45
< MyCatVerbs>
...
00:45
< MyCatVerbs>
Cake and *unicode*? I'm infatuated.
00:45
<@Serah>
Ok, MingW installed. getting source files now.
00:45
<@Serah>
I need the .c file and the anope headers, yes?
00:46
<@Serah>
Oh, shush MCV. It's a standard danish letter.
00:46
< MyCatVerbs>
Eh, still takes working UTF-8. ^^
00:47
< MyCatVerbs>
Fairly certain that's not in 7 bit ASCII and my terminal doesn't respect (*ptooie!*) ISO-8859-n.
00:48 * Janus eats the Danish Cake, which he earned by doing nothing.
00:48
<@Serah>
:p
00:48
<@Serah>
Indeed ISO-8859
00:48
< MyCatVerbs>
VILE HACKERY!
00:48 * MyCatVerbs coughs.
00:48
<@Serah>
That's what is standard for the box, and as thus must be standard for all other windooze users.
00:49
< MyCatVerbs>
Bah. Stupid, vile little hack. Good luck representing multiple scripts in a single document with that. Not to mention crazy stuff like Arabic. ¬_¬
00:50
<@Serah>
There we go.
00:50
<@Serah>
I now have headers.
00:50
< MyCatVerbs>
Download LaTeX and you can have footers, too. ^^
00:50
< Janus>
Don't worry, they wash off with soap.
00:50
<@Serah>
...
00:51 * Janus explodes from all the sarcasm.
00:51 * MyCatVerbs votes Janus' response for winner.
00:51 * Serah would've exploded, but Janus beat her to it.
00:53 * Vornicus fiddles with topological sorting - needs to figure out how to generate predecessors.
00:53
<@ToxicFrog>
...
00:53
< MyCatVerbs>
Vornicus: time machine.
00:53
<@Serah>
Uhm.
00:53
<@ToxicFrog>
Serah: anyways. You have mingw and msys and the headers and the .c. Yes?
00:53 * Serah pokes MingW.
00:53
<@Serah>
Yes.
00:53
<@Vornicus>
well, not the topological sorting bit, but the initialization step.
00:53
<@Serah>
I mean, YES!
00:54
< MyCatVerbs>
Vornicus: flux capacitor.
00:55 * Vornicus bites MCV's arm off.
00:56 * Serah pokes the MingW console and decides to go fridgeraiding.
00:56
<@Serah>
People offered her cake in lieu of RPing >_<
00:58 * Janus returns to putting pretty ASCII pictures in Softbody::render().
01:07
<@ToxicFrog>
Mingw console?
01:07
<@ToxicFrog>
You mean the msys console?
01:07
<@ToxicFrog>
Ok, you need to cd to the directory where the headers and the .c are.
01:10 * Serah returns with food, and cat to help stare at Msys console.
01:10
<@Serah>
Do I need to put the C in the directory where the headers are?
01:11
<@ToxicFrog>
No, but it'll make things easier.
01:11
<@Serah>
Done.
01:12
<@ToxicFrog>
Alright. cd'd into it?
01:12
<@Serah>
How?
01:12
<@Serah>
cd "command not found"
01:12
<@ToxicFrog>
...you're in msys, yes?
01:12
<@Serah>
Yes, and that's the wrong error message.
01:12
<@Serah>
Appearently it doesn't want to change drive.
01:13
<@ToxicFrog>
cd /c/path/to/.c/file
01:13
<@ToxicFrog>
MSYS, like all right-thinking environments, does not conflate drives with mount points.
01:13
<@ToxicFrog>
It maps each X: mountpoint to /x
01:14 * Serah is used to windooze.
01:14
<@Serah>
I'm there.
01:14
<@Serah>
Go on.
01:14
<@ToxicFrog>
Alright, let's see if I can get this right on the first try...
01:14
<@Serah>
That'd be nice.
01:14
<@ToxicFrog>
gcc -Wall -shared -I. -o ns_appendgroupownertoinfoall.dll ns_appendgroupownertoinfoall.c
01:15 * Raif pokes everyone viciously and runs away.
01:15
<@Serah>
Ick! n<o paste function.
01:15
<@ToxicFrog>
Middle-click.
01:15
<@Serah>
Touchpad.
01:15
<@ToxicFrog>
...both mouse buttons at once might work.
01:15
<@ToxicFrog>
If not, you'll have to copy by hand. Sorry.
01:16
<@Serah>
It's ok, almost done.
01:16
<@Serah>
And left mouse button doesn't work.
01:16
<@ToxicFrog>
Unless your touchpad has a scrollbar? Those often serve as middle buttons.
01:16
<@ToxicFrog>
...
01:16
<@Serah>
It does have a scrollbar, but no middle button.
01:16
<@Serah>
Loading.
01:17
<@ToxicFrog>
On mine, tapping the scrollbar will (usually) act as a middle click.
01:17
<@Serah>
Uhm...
01:17
<@Serah>
!
01:17
<@Serah>
>_<
01:17 * Serah explodes.
01:17
<@Serah>
1½ page worth of error messages.
01:18
<@Derakon>
Not bad.
01:19
<@ToxicFrog>
o.O
01:19
<@ToxicFrog>
Derakon: except that this is a module someone else wrote and released.
01:19
<@ToxicFrog>
It should build out of the box.
01:19
<@Serah>
Oh.
01:19
<@ToxicFrog>
Serah: paste the first few lines?
01:20
<@Serah>
Missed a bunch of lines.
01:20
<@Serah>
Around 5 pages worth of error messages.
01:20
<@Derakon>
Mm, point, TF.
01:20
<@ToxicFrog>
...paste the first few of them.
01:20
<@Serah>
$ gcc -Wall -shared -I. -o ns_appendgroupownertoinfoall.dll ns_appendgroupowner
01:20
<@Serah>
toinfoall.c
01:20
<@Serah>
In file included from module.h:4,
01:20
<@Serah>
from ns_appendgroupownertoinfoall.c:1:
01:20
<@Serah>
services.h:19:21: sysconf.h: No such file or directory
01:20
<@Serah>
In file included from services.h:203,
01:20
<@Serah>
from module.h:4,
01:20
<@Serah>
from ns_appendgroupownertoinfoall.c:1:
01:20
<@Serah>
slist.h:24: parse error before "int16"
01:20
<@Serah>
slist.h:24: warning: no semicolon at end of struct or union
01:20
<@Serah>
slist.h:25: warning: type defaults to `int' in declaration of `capacity'
01:20
<@Serah>
slist.h:25: warning: data definition has no type or storage class
01:20
<@Derakon>
Ahh, heh.
01:20
<@Serah>
slist.h:26: parse error before "limit"
01:20
<@Serah>
slist.h:26: warning: type defaults to `int' in declaration of `limit'
01:20
<@Serah>
slist.h:26: warning: data definition has no type or storage class
01:20
<@Serah>
slist.h:29: parse error before '}' token
01:20
<@Serah>
slist.h:32: parse error before "int32"
01:21
<@Serah>
slist.h:32: warning: no semicolon at end of struct or union
01:21
<@Serah>
slist.h:37: parse error before '}' token
01:21
<@Serah>
In file included from module.h:4,
01:21
<@Serah>
from ns_appendgroupownertoinfoall.c:1:
01:21
<@Derakon>
Missing sysconf.h is your problem.
01:21
<@Serah>
Ok.
01:21 * Serah pokes anope with a dynamite on a stick.
01:22
<@ToxicFrog>
...hmm. It's not a standard Linux header.
01:22 Thaqui [~Thaqui@Nightstar-12370.jetstream.xtra.co.nz] has left #code [Leaving]
01:22
<@ToxicFrog>
Autogenerated Anope parts, perhaps?
01:22
<@Serah>
Doh.
01:22
<@Serah>
It's called .in and .win32
01:22
<@ToxicFrog>
Aah.
01:22
<@Serah>
likely for not windows, and windows boxes.
01:22
<@ToxicFrog>
The .in one is for use by autoconf.
01:23
<@ToxicFrog>
You run ./configure and it generates a customized version for your system.
01:23
<@Serah>
Uhm, ok?
01:23
<@ToxicFrog>
The .win32 one is, as you surmise, for windows.
01:23
<@ToxicFrog>
mv sysconfig.win32 sysconfig.h
01:23
<@Serah>
Surmise, neat word.
01:23 * Serah scribbles it into her memorybanks.
01:23
<@ToxicFrog>
And then re-run the previous command - up/down arrow scroll through command history.
01:23
<@Serah>
I noticed ^_^
01:23
<@Serah>
I rename it to sysconf.h?
01:24
<@ToxicFrog>
Yep.
01:24
<@ToxicFrog>
That's what the mv does.
01:24
<@Serah>
Ok, that eliminated about one page worth of error messages.
01:24
<@Serah>
Four remains.
01:25
< MyCatVerbs>
Question, please: are theorem provers Turing-Complete? If not, what class of automata do they fit?
01:25
<@ToxicFrog>
Alright, what are the first few errors this time?
01:25
<@Serah>
$ gcc -Wall -shared -I. -o ns_appendgroupownertoinfoall.dll ns_appendgroupownertoinfoall.c
01:25
<@Serah>
In file included from services.h:19,
01:25
<@Serah>
from module.h:4,
01:25
<@Serah>
from ns_appendgroupownertoinfoall.c:1:
01:25
<@Serah>
sysconf.h:5: parse error before "int16"
01:25
<@Serah>
sysconf.h:5: warning: type defaults to `int' in declaration of `int16'
01:25
<@Serah>
sysconf.h:5: warning: data definition has no type or storage class
01:25
<@Serah>
sysconf.h:6: parse error before "int16_t"
01:25
<@Serah>
sysconf.h:6: warning: type defaults to `int' in declaration of `int16_t'
01:25
<@Serah>
sysconf.h:6: warning: data definition has no type or storage class
01:25
<@Serah>
sysconf.h:7: parse error before "uint16"
01:25
<@Serah>
sysconf.h:7: warning: type defaults to `int' in declaration of `uint16'
01:25 * Derakon points to the pastie site in the channel topic. ¬.¬
01:25 * ToxicFrog blinkblinks
01:26
<@ToxicFrog>
Paste the contents of sysconf.h to pastie.caboo.se please
01:26
<@Serah>
K
01:26 * Serah notes to just ask you guys politely next time
01:26
<@Serah>
http://pastie.caboo.se/48398
01:27
<@ToxicFrog>
Yeah, it would probably have been easier at this point to just ship one of us the files.
01:28 * Serah giggles.
01:28
<@Serah>
You want I do that now?
01:29
<@ToxicFrog>
Try replacing gcc with g++
01:29
<@ToxicFrog>
It's trying to map __intXX to stdint-style types, since MS uses __intXX
01:29
<@ToxicFrog>
But for some reason that header isn't getting included
01:29
<@ToxicFrog>
Because, well, it should be built in
01:29
<@Serah>
Either it's thinking or I exploded. Just did a >
01:29
<@ToxicFrog>
I am however seeing hints that it's a C++-specific thing.
01:29
<@ToxicFrog>
...err.
01:30
<@ToxicFrog>
That means it thinks you typed an incomplete command.
01:30
<@Serah>
Ah!
01:30
<@ToxicFrog>
Eg, unmatched quotes or braces or an unfinished loop or what have you.
01:30
<@Serah>
$ g++' -Wall -shared -I. -o ns_appendgroupownertoinfoall.dll ns_appendgroupownertoinfoall.c
01:30
<@ToxicFrog>
Yeah, the ' there is confusing it
01:30
<@Serah>
Oh.
01:30
<@Serah>
Typo >_<
01:30
<@Serah>
Only two pages now!
01:31
<@ToxicFrog>
It thinks you're trying to enter a multi-line string enclosed with 'singlequotes'
01:31
<@ToxicFrog>
Ok, what are the first few this time?
01:31
<@ToxicFrog>
Although, actually, link me to the anope headers and I'll poke it a bit
01:32
<@Serah>
Pasted it at http://pastie.caboo.se/48398
01:32
<@Serah>
http://sourceforge.net/project/showfiles.php?group_id=94081&package_id=100358&re lease_id=474910 Anope source.
01:33
<@Serah>
And if it's a simple, not brainbreaking problem I'd love for another project to be compiled too.
01:33
<@ToxicFrog>
Are you trying to build all of Anope, or do you already have a windows install for this module to link with?
01:34
<@Serah>
You tell me >_>
01:34
<@Serah>
I'm trying to build a module for anope.
01:34
<@Serah>
There is already an anope build installed.
01:34
<@Serah>
For which the module would be implemented.
01:34
<@ToxicFrog>
Alright. Then yes, you already have a windows install and just need the module.
01:34
<@Serah>
^_^
01:38
<@Serah>
Being stupid?
01:38 * ToxicFrog kills the module developer right in the face for using ".h" instead of <.h>
01:38 * Serah helps?
01:38
<@ToxicFrog>
...
01:38
<@Vornicus>
How to tell that someone is coding wrong, C edition.
01:38 * ToxicFrog kills the entire Anope team right in the face for doing the same.
01:38
<@Vornicus>
"STAT_NODE******* raggedArray;"
01:38
<@Derakon>
Yie.
01:39
<@ToxicFrog>
....
01:39
<@Vornicus>
"" is for local stuff; <> is for libpath stuff.
01:39
<@Derakon>
At least they put the asterisks on the right side of the space. ¬.¬
01:39
<@ToxicFrog>
Vornicus: "" is for stuff in the same directory.
01:39
<@ToxicFrog>
I am not building stuff in the goddamn include directory.
01:39 * Serah giggles.
01:39
<@ToxicFrog>
I am building it in the source directory with -I../include/
01:39
<@Serah>
I am.
01:39
<@ToxicFrog>
Which is how things are meant to be done, dammit.
01:40 ChalcyOut is now known as Chalcedon
01:41
<@Serah>
So it was not due to my horrible horrible inaptitude at C++?
01:41
<@Serah>
That kind of makes me feel semi-good about myself again.
01:42
<@ToxicFrog>
No, it's because Team Anope apparently doesn't want anyone to compile their stuff ever
01:43
<@ToxicFrog>
....conflicting types for int16_t motherfuck
01:43 * Serah PatPats ToxicFrog.
01:44
<@ToxicFrog>
...it's looking for language.h and version.h, which exist nowhere in the source package
01:47
<@ToxicFrog>
"undefined reference" my ass!
01:48
<@ToxicFrog>
It's a goddamn shared object! You get the references at runtime!
01:48 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
01:48 mode/#code [+o Chalcy] by ChanServ
01:48 You're now known as TheWatcher[afk]
01:49
<@Serah>
Uhm, sorry to have inflicted such pains and horror upon you.
01:50 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has quit [Quit: Jouets de Dieu, jouets de jouets, les jouets de me, na?tre Clair enfant voire.]
01:50 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
01:50
< MyCatVerbs>
You think *that*'s enough to get him properly riled up?
01:50
<@Derakon>
Heh.
01:50 Chalcy is now known as Chalcedon
01:52
<@Serah>
Uhm...
01:52
< MyCatVerbs>
Yo, ToxicFrog. http://labs.adobe.com/technologies/apollo/
01:52 * Serah offers to co.. bake cake?
01:52
<@ToxicFrog>
...
01:52
<@ToxicFrog>
I don't suppose the windows build you have comes with an import library?
01:52
<@ToxicFrog>
Because if not, this thing isn't getting built anytime soon.
01:53
<@ToxicFrog>
MyCatVerbs: that sounds like a hilariously terrible idea.
01:53
<@Serah>
Good question.
01:54
<@ToxicFrog>
Serah: look around for .dll or .a files in it.
01:58
<@Serah>
What exactly am I looking for?
01:59
<@Serah>
No *.a in the anope folder.
01:59
<@Serah>
Got lots of dlls under modules.
01:59
<@Serah>
But none anywhere else.
02:00
< MyCatVerbs>
ToxicFrog: my thoughts exactly. I actually thought that was going to send you into a blind incoherent rage, red mist and all that jazz.
02:01 * Serah thinks it's cute.
02:03 * MyCatVerbs thinks it's a comically obvious waste of effort.
02:03 * Serah agrees.
02:03 * Serah also thinks it'll be a worse invention than Vista.
02:03
< MyCatVerbs>
If you're going to throw engineers at making cross platform desktop applications viable, just throw them at the JRE or a GUI toolkit for it. I mean, Jesus, it's not like you can't get the source these days.
02:04
<@ToxicFrog>
...Vista is hard to top, as bad ideas go.
02:04
<@ToxicFrog>
It's the evil thor-borg of operating system designs.
02:04
<@Serah>
^_^
02:05
<@Serah>
They might just do it regardless.
02:08
<@McMartin>
It remains to be seen if XP->Vista is as bad a jump as 2k->XP.
02:09
<@ToxicFrog>
2k->XP isn't actually that bad provided that (1) it's XP Pro and (2) you fine-tune it before installing.
02:10
<@ToxicFrog>
However, I think a more apt comparison is 98->ME.
02:10
<@McMartin>
Well, it's more that 2k is the undisputed Best OS MS Made.
02:10
<@McMartin>
I'm pretty sure Vista is better than ME.
02:10
<@McMartin>
So ME is still the Worst OS MS Made, Including The 16-Bit Ones.
02:10
<@McMartin>
... actually, Including the Commodore 128 BASIC ROM.
02:11
<@ToxicFrog>
That I'm not entirely sure with. ME you could at least do interesting stuff with between crashes.
02:11
<@Vornicus>
And the Commodore 64 BASIC ROM, they did that one too.
02:11
<@McMartin>
Vorn: They weren't credited for it, though.
02:11
<@Vornicus>
True
02:11
<@ToxicFrog>
Vista it's all ass-slow performance and freaking out because it thinks your copy of winamp is sneaking into Time-Warner's headquarters at the dead of night and killing their babies.
02:11
<@Derakon>
What about Windows 1.0, McM?
02:12
<@McMartin>
TF: The people I know of who use Vista report neither of these things.
02:12
<@McMartin>
Derakon: Not really an OS.
02:12
<@ToxicFrog>
In fairness, they may have fixed the problems with it massively, constantly sucking since the beta.
02:12
<@Derakon>
Oh, yeah...didn't it still run from DOS then?
02:12
<@Serah>
TF: we're giving up on anope?
02:12
<@ToxicFrog>
However, reports I have been seeing indicate that this is not, in fact, the case.
02:12
<@McMartin>
The performance issues are pretty much dealt with.
02:12
<@ToxicFrog>
Serah: I can't get the goddamn thing to link.
02:12
< MyCatVerbs>
That's it!
02:12
< MyCatVerbs>
Copland. Vista reminds me of Copland.
02:12
<@ToxicFrog>
I might try it with devCPP layer.
02:13
<@ToxicFrog>
But I'm all out of C-mojo tonight.
02:13
<@McMartin>
By which I mean "comparing Aero to Xgl gives Xgl only a sligth advantage"
02:13
<@McMartin>
slight
02:13
<@Serah>
Don't break anything while trying.
02:13
<@Serah>
I'm mostly concerned about your good mood.
02:13
<@McMartin>
Win1.0 is basically like IBM's DOSSHELL.EXE
02:13
< MyCatVerbs>
Y'know, when Apple wanted to replace MAC OS 9? Except that Copland was too large a project to actually complete successfully. And it was lacking a coherent vision or anything.
02:13 * Serah hugs ToxicFrog
02:13
<@Serah>
Thanks for trying.
02:14
<@McMartin>
Vista had a coherent vision, originally.
02:14
<@Derakon>
Here's hoping that Microsoft can manage to pull an OSX 10.1.
02:14
<@McMartin>
It's just that that vision produced an unreleasable product.
02:14 * Serah is skipping Vista and going for whatever is next.
02:14
<@McMartin>
The "10x slowdown and worse" alphas.
02:14 * Serah skipped 2k and ME too.
02:14
<@Derakon>
Mmm, RDBFS.
02:14
<@McMartin>
ME was awful.
02:14
< MyCatVerbs>
So it floundered. And it looks like exactly the same thing happened with Vista, except that Microsoft is actually such an amazingly large and rich company that they were able to bludgeon their way through the pain anyway by throwing nearly unlimited quantites of engineers at it, whereas Apple had to stop to avoid going bankrupt.
02:14
<@McMartin>
2k is, as noted, probably the best OS MS ever made, but because of this it has compatibility issues.
02:14
<@ToxicFrog>
Yes.
02:14
<@McMartin>
XP reintroduced some of 98's flaws, thus allowing it to run way more stuff.
02:15
<@ToxicFrog>
The reason I now know about 2K->XP, and how to do it without hideous screaming doom, is that I had to install XP to play Supreme Commander.
02:15
<@ToxicFrog>
At least it didn't reintroduce the flaw where the entire kernel is mapped into shared memory.
02:15
<@ToxicFrog>
Seriously, what the fuck were they smoking when they came up with that idea?
02:15
<@Derakon>
Whee, 639352 vertices!
02:15
<@McMartin>
Damned straight, though it did keep several "Please execute arbitrary code now" situations.
02:16
<@McMartin>
TF: Win95, the first Win32 platform, was built on top of DOS.
02:16 * Derakon watches Blender struggle to render his ship.
02:16
<@McMartin>
TSR of doom, anyone?
02:17
< MyCatVerbs>
McMartin: 32 bit hack to a 16 bit TSR for an operating system written for 8 bit machines for... bleh.
02:17
< MyCatVerbs>
That's one thing I definately have to give the NT people kudos for. Breaking that godawful legacy.
02:17
<@McMartin>
DOS didn't run on the 8088, and thus has always been a 16-bit OS.
02:17
<@McMartin>
It was based on an 8-bit OS for the z80.
02:17
<@McMartin>
But it itself was 16-bit.
02:18
<@McMartin>
That said, yeah.
02:18
<@McMartin>
(I don't think Win3.1 was properly a TSR; it just made heavy use of callbacks, I think)
02:18
<@McMartin>
And yeah, 2k is basically the first NT that was usable.
02:19
<@McMartin>
Also, WNT inherited a Proper Design. Its name is Not Coincidence. Rotate the letters back one.
02:19
< MyCatVerbs>
Possibly the last, too. I wouldn't be surpised if NT itself got chucked out too, in about maybe ten years.
02:19
<@ToxicFrog>
NTW?
02:20
<@McMartin>
TF: "VMS"
02:20
<@ToxicFrog>
Aah.
02:20
<@McMartin>
MS took on a lot of DEC's OS team when designing it.
02:20
<@Derakon>
Heh.
02:22
< MyCatVerbs>
One thing I don't properly understand with Vista. Why produce a 32-bit version? Wouldn't it be better to make it 64-bit-only? Make crappy C programmers' lives easier, for starters.
02:22
<@McMartin>
By forcing them into other lines of work?
02:23
< MyCatVerbs>
No, I was referring to the fact that crap C programmers always assume sizeof(int)==sizeof(char*) and other such atrocities. "All the world's a VAX" syndrome.
02:24
< MyCatVerbs>
Only supporting one CPU width would make it possible for many of those crap assumptions to continue to hold.
02:24
<@McMartin>
That CPU width is "32 bit."
02:24
<@McMartin>
On x86_64, sizeof(int)=4, sizeof(char *)=8.
02:25
< MyCatVerbs>
Really? Shit.
02:25
<@McMartin>
Yeah.
02:25 * McMartin handled a decent fraction of the 64-bit-cleansing of UQM.
02:25 * McMartin being the only dev with an AMD64.
02:27
<@ToxicFrog>
Yep.
02:27
<@McMartin>
Admittedly, other people had them before any of us did
02:27
<@ToxicFrog>
Now, trying to compile on AMD64 a program that stores pointers in a uint32_t instead a ptrdiff_T.
02:27
<@ToxicFrog>
That is a killing offence.
02:28
<@McMartin>
Shouldn't it be an intptr_t?
02:28
<@McMartin>
Actually, UQM has a bit of a Problem involving that.
02:28
<@McMartin>
sizeof (size_t) on AMD64 is 8.
02:28
<@ToxicFrog>
There's such a type?
02:28
<@ToxicFrog>
I've been using ptrdiff_t
02:28
<@McMartin>
Hum
02:28
<@ToxicFrog>
Or sometimes size_t, but it should really be ptrdiff_t
02:28
< MyCatVerbs>
Shouldn't it be a transparent reference, because people who don't like clawing their eyeballs out use GC'd languages? </obligatory>
02:28
<@McMartin>
One moment. I think I've named it wrong.
02:29
<@McMartin>
But there's a type that is "An integer large enough to hold a pointer"
02:29
<@McMartin>
In any event, our debug code likes to print out size_ts.
02:29
<@ToxicFrog>
ptrdiff_t~
02:30
<@McMartin>
No, ptrdiff_t is "An integer large enough to hold the difference between any two comparable pointers", which is not the same on a segmented memory architecture.
02:30
<@ToxicFrog>
...aah. Hrm.
02:30
<@ToxicFrog>
size_t will work, I think, but I don't know if it's guaranteed to.
02:30
<@McMartin>
I don't think so either
02:31
<@McMartin>
size_t is in types.h. Where is ptrdiff_t and friends?
02:31
<@ToxicFrog>
stdint.h
02:31
< MyCatVerbs>
Segmented?
02:31
<@ToxicFrog>
Well, don't know about ptrdiff_t
02:31
<@ToxicFrog>
But stdint.d also defines intptr_t and uintptr_t
02:31
< MyCatVerbs>
AMD64 is segmented? I thought half the whole point was that the address space was large enough that you could flat-map it.
02:31
<@McMartin>
MCV: No it's not.
02:32
<@McMartin>
But C is designed to target everything.
02:32
<@ToxicFrog>
MyCatVerbs: it's not, but ptrdiff_t isn't portable to things that are
02:32
<@McMartin>
Including machines with physical memory that is multiples of its addressable memory.
02:32
<@Vornicus>
woo bank switching
02:33
<@McMartin>
"The following type designates a signed integer type with th eproperty that any valid pointer to void can be converted to this type, then converted back to a pointer to void, and th eresult will compare equal to the original pointer: intptr_t"
02:33
<@McMartin>
uintptr_t is the unsigned equivalent.
02:34
< MyCatVerbs>
ToxicFrog: ...ouch, that sounds fucking painful. What processors do people still use that are, anyway? 'Cept for PAE, I s'pose.
02:34
<@McMartin>
"On XSI-conformant systems, the intptr_t and uintptr_t types are required; otherwise, they are optional."
02:34
<@McMartin>
MCV: A more sensible example, it occurs to me, is some kind of NUMA system.
02:34
<@McMartin>
At least in modern days.
02:34
<@ToxicFrog>
NUMA?
02:34
<@McMartin>
In the days of room-sized machines, addressable memory tended to be 64k, and core had a megabyte or two.
02:34
<@McMartin>
Non-Uniform Memory Access.
02:35
<@McMartin>
So, some distributed system where it's only meaningful to do pointer diffs within one memory node.
02:35
< MyCatVerbs>
McMartin: I thought NUMA boxes were "you can access everywhere, but it might be bastard slow if you try to touch the wrong places."
02:36
<@McMartin>
Well, yes.
02:36
<@McMartin>
NUMA isn't really right either.
02:36
<@McMartin>
I want to describe a system where all of core is addressable, but you only "really" have access to your local store.
02:36
<@McMartin>
So, I guess, a layer below the NUMA layer?
02:37
< MyCatVerbs>
McMartin: single-system-image clustering systems where the operating system uses a pagefault mechanism?
02:37 * McMartin goes "wut" at stdint.h's man page
02:37
< MyCatVerbs>
(to simulate non-local memory access, I mean)
02:37
<@McMartin>
According to this, ptrdiff_t is, um, 18 bits.
02:37
<@McMartin>
This makes no sense whatsoever.
02:38
<@McMartin>
OK, according to the .h file itself, all is well.
02:38
< MyCatVerbs>
So anyway, I thought the thing with NUMA was that the OS was supposed to handle that on your behalf?
02:39
< MyCatVerbs>
Though obviously that doesn't help when you're the one writing the damn kernel, heh. But aside from that...
02:39
<@McMartin>
Yeah, hence my eventual correction to "the level below the NUMA service"
02:39
<@McMartin>
Even there it's not a great match.
02:40 * McMartin actually isn't sure if the 286's ptrdiff_t is 16 bits or 20.
02:40
< MyCatVerbs>
So anyway, we *do* sometimes use paged-memory systems still and it's always going to be machine-specific assembler hidden away in the OS kernel somewhere. Righto.
02:41
<@McMartin>
... on further reflection, that would be compiler-dependent, depending on how you implemented pointer subtraction.
02:41
< MyCatVerbs>
McMartin: would have to be 20. 16 can only express differences within the current segment.
02:41
<@McMartin>
Yes. The question is whether you're allowed to compare pointers in different segments.
02:42
<@McMartin>
But as segment markers only exist in arch-specific C extensions, the question is kind of academic.
02:42
< MyCatVerbs>
And architecture-specific programming languages need to burn in Hell, plz.
02:42
<@McMartin>
#pragma's there for a reason.
02:43
< MyCatVerbs>
So's WORA.
02:43
<@McMartin>
EAP?
02:44
< MyCatVerbs>
Er, I mean, so's bytecode. Sorry, bad terminology choice.
02:44
<@McMartin>
Write Once Run Anywhere?
02:45
<@McMartin>
Bytecode. Yes.
02:45
<@McMartin>
That was what killed Vista's first prototype~
02:45
< MyCatVerbs>
Wow, really? How so?
02:46
<@Vornicus>
Longhorn was originally designed to be entirely .NET
02:46
<@Vornicus>
THey couldn't get anything to work.
02:46
<@Vornicus>
And it was too fucking slow.
02:46
<@McMartin>
100x slowdown over XP 4tl
02:46
<@Vornicus>
So in 2003 they scrapped it.
02:46
< MyCatVerbs>
Schwaaa?
02:46
<@McMartin>
And started from, basically, square 1.
02:46
<@McMartin>
Of course, when they started, they thought they'd have to be supporting x86_32, x86_64, IA64, and Alpha.
02:47
< MyCatVerbs>
How the Hell? Java's certainly nowhere near 100x versus C. What happen?
02:47
<@McMartin>
And decided "hey, bytecode = binary compatibility, win"
02:47
<@McMartin>
Java implements most of its standard library in native code.
02:47
<@McMartin>
Vista was MSIL very nearly All The Way Down.
02:47
<@Vornicus>
And what it doesn't do that for, I think it can do JIT.
02:47
<@McMartin>
Sometimes multiple times.
02:47
<@McMartin>
Yeah.
02:47
<@McMartin>
JIT has no right to be as practical as it is.
02:47
<@Vornicus>
heh why not?
02:48
<@McMartin>
Well, you'd think that compiling once, way ahead of time, would beat it.
02:49
<@Vornicus>
Doesn't it? I mean, if you're aiming at one architecture?
02:49
< MyCatVerbs>
Which is sensible. So why not implement the kernel in C, the filesystems and standard libraries and so on in C and most of the rest of userspace in bytecode?
02:49
<@McMartin>
Vornicus: Not always, entertainingly.
02:49
<@Vornicus>
...whut
02:49
<@McMartin>
You can re-optimize for specific load patterns on the fly.
02:49
<@McMartin>
There are thus situations where a JIT will beat a WAOT.
02:49
< MyCatVerbs>
McMartin: But JIT can get you better performance than compile-time optimization in practice. Compilers don't know the relative frequencies of branches, the level of register pressure, etc.
02:49
<@Vornicus>
okay that's fucking cool.
02:50
<@McMartin>
MCV gets it.
02:50
< MyCatVerbs>
Oh fuck, beat me to it.
02:50
<@McMartin>
And it can also check to notice if it's getting things wrong and re-JIT it.
02:50
<@McMartin>
Also, you don't bother optimizing anything until you notice you're running it a bunch.
02:50
< MyCatVerbs>
Vornicus: C's a monumentally shit language from an optimization point of view. It's just that it's had *ridiculous* quantities of engineer-time thrown at it to make it fast.
02:51
<@McMartin>
Brain-dead JITting is no more computationally expensive than run-time linking.
02:51
<@McMartin>
Which is the bit that makes it work better.
02:51
<@McMartin>
Also, uh, this assumes well-defined interface boundaries.
02:51
< MyCatVerbs>
At least, as far as I understand it. Am I wrong?
02:51
<@McMartin>
JITting, say, ML would Not Really Work.
02:51
<@McMartin>
MCV: A little of column A, a little of column B.
02:51
< MyCatVerbs>
McMartin: OCaML has a bytecode compiler. XD
02:52
<@McMartin>
C is ridiculously hard to prove anything about, but if the human put in the time to write it right the first time, the compiler can produce wicked fast code.
02:52
<@McMartin>
Yeah, I don't know much about the CAM.
02:52
<@Vornicus>
So, wait
02:52
<@McMartin>
And OCaml does allow incremental compilation, but I think you have to give it interface info.
02:52
<@Vornicus>
Does this mean that Java is actually one of the fastest languages out there?
02:52
<@McMartin>
No.
02:52
<@McMartin>
It means that it's not laughable to use it to run a webserver with.
02:53
<@McMartin>
Oh, "one of".
02:53
<@McMartin>
Yeah, in some circumstances. These circumstances rarely apply in systems code.
02:53
<@McMartin>
There's a reason Java is the major language for middleware these days.
02:53
< MyCatVerbs>
Vornicus: you'd be surprised at how many languages can outspeed C under specialised circumstances.
02:54
<@McMartin>
Beating FORTRAN, on the the other hand...
02:54
< MyCatVerbs>
Vornicus: the set of circumstances for which Java beats C out are fairly well documented and pretty common, though.
02:54
< MyCatVerbs>
(which is unusualy, as far as programming languages go)
02:54
<@Vornicus>
the inventor of Fortran died today.
02:54
<@McMartin>
Yes. =(
02:54
<@McMartin>
IMO, you don't pick Java for speed, though. You pick Java for extensibility.
02:55
<@McMartin>
It is probably the easiest language in common use to do plugin-based software with.
02:56
<@ToxicFrog>
Easier than Python?
02:56
< MyCatVerbs>
McMartin: as far as I understand it, FORTRAN has some speed-oriented features but I thought the main reason for it's blazing speed was, once again, ridiculously large quantities of engineer time?
02:56
<@McMartin>
MCV: Also the fact that its expressive power is weak. >_>
02:56
<@McMartin>
Which means that the engineer hours can be reliably spent.
02:56
<@McMartin>
C has this problem that anything that isn't trivial to prove is theoretically undecidable.
02:57
< MyCatVerbs>
Ahhh.
02:57
<@McMartin>
And there isn't a lot of intermediary space.
02:57
<@Vornicus>
This is because of pointers, etc, right?
02:57
<@McMartin>
Yeah. Once you lose track of where a reference goes in Java, and you see a write to that reference, you only have to invalidate all objects of that type to stay safe.
02:57
<@McMartin>
In C/C++, you have to invalidate the entire heap.
02:58
< MyCatVerbs>
McMartin: pondering the Nature of CS Research: is it true that *any* avenue of research which allows you to prove a given assertion about a particular program is directly applicable (though maybe only in a ery restricted domain) as an optimization technique?
02:58
<@McMartin>
That is probably true.
02:58
<@McMartin>
It is also probably true that any fact you can prove about a program will assist in finding NULL dereferences.
02:59
<@McMartin>
"Find stuff out about program behavior" is a popular open question, though some are more directly applicable than others.
02:59
<@McMartin>
Anything you can't prove optimization with you can probably prove stability with.
02:59 * MyCatVerbs nods.
03:00
<@McMartin>
Like, if you can prove that a huge mess of floating-point math never leaves the 1.0 to 3.0 range, that won't help you optimize.
03:00
< MyCatVerbs>
I also get the impression that, though nothing's provable in the general case, almost everything's provable in almost every specific case?
03:00
<@McMartin>
But you've just proven that you don't have overflow errors.
03:00
<@McMartin>
In some specific case.
03:00
<@McMartin>
The general case has fundamental philosophical problems.
03:00
<@Vornicus>
Which is an important result because you can remove all the error checking code that it's wrapped in.
03:00 * MyCatVerbs nods.
03:00
<@McMartin>
Because the halting problem shows up more often than one would like.
03:00
< MyCatVerbs>
Or your could convert it to fixed-point arithmetic instead for a chip with no FPU.
03:01
< MyCatVerbs>
*you
03:01
<@McMartin>
For 1.0 to 3.0, yes.
03:01
<@McMartin>
For 0.0 to 3.0, no.
03:01
<@McMartin>
(Floating Point is evil)
03:01
<@McMartin>
int main () { char *s = NULL; while (1); printf ("%s\n", s); return 0; }
03:02
< MyCatVerbs>
Verily, but what's that got to do with the price of cheese in Holland?
03:02
<@Vornicus>
And with 0.0 you don't really get to remove all the error checking code, either - you may still have to worry about E_ZERO
03:02
< MyCatVerbs>
Pfff, division by zero. IEEE floating point compliant machines just generate +-inf.
03:03
<@McMartin>
Idly, it appears that lots of the program analysis/correctness analysis work got dumped wholesale into the new Dragon Book.
03:06
< MyCatVerbs>
Ooooh.
03:06 * Vornicus wants the New Dragon Book
03:06
< MyCatVerbs>
Wait, how can a compiler prove a program correct?
03:06
<@McMartin>
In general? It can't.
03:06
<@McMartin>
It can, however, prove the absence of various kinds of errors.
03:06
< MyCatVerbs>
The only way to work out the intention is to examine the code, which might not be correct...
03:06
<@Vornicus>
Specific things it can prove - Java's validator makes sure that you cannot ever smash the stack...
03:06
<@McMartin>
Java's validator also mostly proves type safety.
03:07
<@McMartin>
ClassCastExceptions catch the rest.
03:07
<@Vornicus>
Mostly?
03:07
<@Vornicus>
Ah so.
03:07
<@McMartin>
Java allows downcasting.
03:07
<@McMartin>
Downcasting is hard to prove correct.
03:07
< MyCatVerbs>
Ah, righto. So you can't prove that it'll do what the programmer wants. You could prove, though, something finite and sane like "this will never segfault unless a hardware error occurs"
03:07
<@McMartin>
There's been a few decades of research into proving that a program meets a spec.
03:08
<@McMartin>
At which point the question becomes whether discrepancies are bugs in the program, or in the spec, of course.
03:08
< MyCatVerbs>
Heh.
03:08
< MyCatVerbs>
Is it possible to prove that a C program perfectly implements an APL program, I wonder?
03:08
<@McMartin>
That side of things isn't currently fashionable, but I could see it making a comeback as the various specification systems for security/etc. get better and better.
03:09 * MyCatVerbs shrugs.
03:09
<@McMartin>
viz. "Hey, we can specify that classified data never reaches unsafe outputs. Why not prove that the database actually handles its queries properly?"
03:09
<@Vornicus>
How good is Java's array indexing validation?
03:09
<@McMartin>
Perfect, but the verifier doesn't touch it.
03:09
< MyCatVerbs>
Might not. I'm sitting on an OpenBSD machine right now and between stack-smashing protection, W^X and so on mean that buffer overruns always equal segfaults on this box.
03:09
<@McMartin>
Or, at least, it doesn't have to.
03:10
<@McMartin>
MCV: What about return-to-libc attacks?
03:10
<@McMartin>
Vorn: Java guarantees that indexing outside an array throws an exception.
03:10
< MyCatVerbs>
McMartin: not sure. I'm just saying that it's possible that compiled proofs might be neglected in favour of countermeasures.
03:10
<@McMartin>
A JIT might try to prove that an index is always in-bounds. If it's buggy and proves this when it's not true, then there'd be a buffer overflow vulnerability.
03:11
<@McMartin>
MCV: Oh, yeah. You need the countermeasures anyway.
03:11
<@McMartin>
There's been a demonstrated attack on Java's type system involving irradiating the memory.
03:11
<@Vornicus>
Right, I figured that - I was under the impression though that there was validation code somewhere that checked to see if an unsafe number could get to array indexing.
03:11
<@McMartin>
Oh. No, nothing like that in the verifier.
03:11
<@McMartin>
You could do that, but it would just be to prevent spurious exceptions being thrown.
03:12
<@Vornicus>
ah so
03:12
<@McMartin>
... or to implement security measures that are less computer security and more human-scale security.
03:12
<@McMartin>
As in, "users only get to read their own entry in this array"
03:12
<@McMartin>
For a UID->Credit Card Number map, for instance.
03:13
<@McMartin>
that kind of guarantee is Much, Much Harder, but ANAICT at the moment only intelligence agencies care about those properties.
03:13
<@Vornicus>
Security guys have a lot of stuff to worry about. Irradiating memory to attack a program? Madness
03:13
<@McMartin>
Mainly because they've got the countermeasures part down already =P
03:13
<@McMartin>
Well, the irradiating memory was just to make random bit errors happen more often.
03:13
<@McMartin>
The demonstration was "random memory errors can be used to produce exploitable weaknesses"
03:13
<@Vornicus>
heh
03:14
<@McMartin>
But, you know, that takes a long time. So! Cue particle source.
03:14
< MyCatVerbs>
McMartin: "countermeasures" might one day include ECC RAM. ¬¬;)
03:14
<@McMartin>
ECC only makes them less likely~
03:14
<@McMartin>
There's always some level of hardware failure that will take out a redundant system.
03:15
<@McMartin>
Basically, it's a demonstration of the necessity of countermeasures, though.
03:15
<@McMartin>
It doesn't matter how pristine the algorithm is on paper, even if you've manifested it as machine code.
03:15
<@McMartin>
Once it physically manifests, things can go wrong.
03:15
< MyCatVerbs>
McMartin: ...
03:16
< MyCatVerbs>
McMartin: your algorithms will not and cannot ever be expected to stand up to buckshot rounds at point-blank range. There are *limits* to what is expected of human beings!
03:16
<@McMartin>
Well, yes.
03:16
<@McMartin>
But that also means, from an academic standpoint, that proving code perfect is only interesting up to a certain point.
03:16
<@McMartin>
Past that point, externalities dictate that you should instead be spending your time coming up with more awesome countermeasures.
03:17
< MyCatVerbs>
Fair enough. But then, proving code perfect under adverse conditions is orders of magnitude harder and more complex.
03:17
<@Vornicus>
What do you mean by countermeasures?
03:17
<@McMartin>
And, well, proving that the code does what it says when all is well is also a useful task.
03:17
<@McMartin>
Especially for stuff like, oh, cryptosystems.
03:17
<@McMartin>
"Well, it worked on the emails I sent myself" isn't a great guarantee~
03:18
< MyCatVerbs>
I mean, you *can* prove that some doubly-redundant pointer-walking algorithm is not only fast but will work under blub blub one-bit-flip-per-ten-thousand-operation-locations.
03:18
<@McMartin>
Vornicus: Basically, error checking and recovery. For security, also the mundane stuff like firewalls.
03:18
< MyCatVerbs>
But it's a total utter bitch from Hell on a motorcycle.
03:19
<@McMartin>
MCV: Yeah. You'd only design to take hits that often if you were expecting your memory to be way unreliable, though.
03:19
<@McMartin>
... like, say, an unshielded space probe.
03:19
<@McMartin>
In which case you'd also have some physical fallback to reload the memory with known-good code if the RAM got trashed beyond repair.
03:19
<@McMartin>
s/trashed/scrambled/
03:20
< MyCatVerbs>
Hey, whaddaya know, "space probe" was my first thought too.
03:20
<@McMartin>
Also, amen at "Can ECC be standard plz?"
03:20
< MyCatVerbs>
I think you'd probably need to do that anyway, even with lots of shielding. Cosmic rays are unforgiving motherfuckers.
03:21
<@McMartin>
The more shielding you put on, the more fuel you need to maneuver, too.
03:21
< MyCatVerbs>
Hence the "this is correct even if we get bombarded with angsty livejournal-wielding beta particles" thing.
03:22 * McMartin nods.
03:22
<@Vornicus>
livejournal-wielding beta particles.
03:22
<@McMartin>
The people that Really Need Code To Work have ugly, sad jobs.
03:22 * McMartin isn't getting anywhere near avionics verification.
03:22 * McMartin is glad people are doing it, but he's equally glad it ain't him
03:23
< MyCatVerbs>
I wonder if we'll ever *need* enough processing power in space that it'll be neccessary to move away from core memory and macroscopic transistors?
03:23
<@McMartin>
Mmm, spice.
03:23
< MyCatVerbs>
Vornicus: yes. The angst, y'see. It makes them.
03:23 * Vornicus did programming in aerospace once.
03:23
< MyCatVerbs>
Vornicus: their entangled spins make them go emo, y'know.
03:24
<@Vornicus>
Fortunately the only thing I could possibly kill was a helmet-mounted display.
03:24
<@Vornicus>
And even then it was failover to unfiltered data as opposed to the smoothing I did
03:24
<@McMartin>
Not only was he the inventor of Fortran, he was the Backus of Backus-Naur Form.
03:25
<@Vornicus>
Indeed - I knew the latter but not the former.
03:28
< MyCatVerbs>
McMartin: Forth, you mean?
03:28
<@Vornicus>
FORTRAN
03:28
<@Vornicus>
not Forth.
03:29
< MyCatVerbs>
Oh, no, sorry, FORTRAN.
03:29 * MyCatVerbs blames synaptic leakage. And his own stupidity.
03:30 * Vornicus blames angstyons.
03:30
< MyCatVerbs>
...
03:31
< MyCatVerbs>
Okay, now I need to switch to physics, postulate and then find a new fundamental particle and get it named that.
03:31
< MyCatVerbs>
Nontrivial, but probably workable.
03:31
<@McMartin>
You do measure the size of atomic particles in Angstroms.
03:32
<@Vornicus>
http://www.absurdnotions.org/page26.html
03:33
<@Derakon>
Do you have an AN search engine, Vorn?
03:33
<@Vornicus>
No.
03:33
<@Derakon>
Or do you just have that one comic bookmarked?
03:33
<@Vornicus>
I just used the list page.
03:33
<@Derakon>
Ahh.
03:33
<@Vornicus>
And it says "Vampires!" at one point, and I know what I'm looking for.
03:33
<@McMartin>
Is AN on ON!R?
03:33 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Connection reset by peer]
03:33
<@Vornicus>
ON!R?
03:34
<@McMartin>
Oh No! Robot.
03:34
<@Vornicus>
...oh that. now.
03:34
<@Vornicus>
no*
03:34
<@Derakon>
AN went on hiatus before ONR became available.
03:37
<@Derakon>
...wow. I just saw a post on the Ambrosia SW forums asking if there was an update to be had to fix OS9's DST handling.
03:37
<@Vornicus>
03:37
<@ToxicFrog>
03:37
<@Vornicus>
IT'S SEVEN YEARS OUT OF DATE, PEOPLE
03:37
<@Vornicus>
GET WITH THE FUCKING PROGRAm
03:37
<@McMartin>
... why would Ambrosia know about this?
03:37
<@Derakon>
Apparently he only uses that computer occasionally.
03:38
<@McMartin>
Hey, W2K is seven years out of date too~
03:38
<@Derakon>
It's the "Just Tech" forum, McM; general chatter about tech subjects.
03:38
<@Vornicus>
Win2K is actually a reasonably modern OS.
03:38 Derakon [~Derakon@Nightstar-12737.sea2.cablespeed.com] has left #code []
03:38 Derakon [~Derakon@Nightstar-12737.sea2.cablespeed.com] has joined #code
03:38 mode/#code [+o Derakon] by ChanServ
03:38
<@Derakon>
Whups.
03:38
<@ToxicFrog>
Yes, but win2k is usable.
03:38
<@Vornicus>
OS9 doesn't even have proper threads.
03:39
<@ToxicFrog>
A status I am unwilling to concede to pre-OSX macs.
03:39 * Vornicus agrees with TF.
03:47 * Vornicus hunts AN's archives for another comic.
03:48
<@Vornicus>
Much more difficult when I don't have context.
03:48
<@McMartin>
You seek the OSTDS saga, I imagine.
03:50
<@ToxicFrog>
AN?
03:50
<@Vornicus>
Nope. That I know the name of.
03:50
<@Vornicus>
I am looking for "Neighborhood Watch"
03:51
<@Vornicus>
which has /no/ context.
03:51
<@Vornicus>
absurdnotions.org
03:52 Thaqui [~Thaqui@Nightstar-12370.jetstream.xtra.co.nz] has joined #code
03:52 mode/#code [+o Thaqui] by ChanServ
03:52
<@Derakon>
'Ey, Thaq.
03:54 Reiver is now known as ReivClass
04:00
<@Vornicus>
http://www.absurdnotions.org/page93.html Yes! I want MY internet to be curiously strong!
04:03
< MyCatVerbs>
Vornicus: Lord! Where'd you find this stuff? It's wonderful.
04:03
<@Derakon>
AN was rather well known back in the day.
04:03
<@Derakon>
'Course, that was about five years ago.
04:04 * McMartin remembers back when it was updated regularly ;.;
04:04 * McMartin geezes
04:05 * Vornicus does too. ;.;
04:06
<@Derakon>
http://www.absurdnotions.org/an20020513.gif
04:20
<@Vornicus>
http://www.absurdnotions.org/an20050714.gif TACO!
04:21
<@McMartin>
*beef*
04:21
<@Vornicus>
First time I saw that one I giggled for like ten minutes.
04:22 * McMartin didn't even need to click it to provide the sound effect.
04:22
<@Vornicus>
Of course.
04:23
<@McMartin>
http://userpic.livejournal.com/32329197/387266
04:24
<@McMartin>
Also, http://userpic.livejournal.com/43746455/387266
04:26
<@Derakon>
Jay amuses me because he's a pratical modern artist.
04:26
<@Derakon>
See also http://www.absurdnotions.org/an20000302.gif
04:27
<@Vornicus>
I like his signature.
04:27
<@Derakon>
Oh, hey - Vorn, you got a question in AN answered? Nice.
04:27
<@Derakon>
http://www.absurdnotions.org/page107.html
04:27
<@Vornicus>
Yeah.
04:27
<@Vornicus>
I asked sucky questions though
04:28
<@Vornicus>
I prefer Wikkit's
04:28
<@Derakon>
Indeed.
04:28
<@Vornicus>
Censored for the love of sanity!
04:31
<@Derakon>
"We have Asimov, the android engineer, the predictably insane and reckless hotshot pilot/navigator, Harlan "Hairpin" Turner, Ra'aur, the K'pau defense gunner and sometimes translator, and Captain Biff."
04:32
<@ToxicFrog>
I think I remember the landing manouver from that storyline.
04:32
<@ToxicFrog>
I always overestimate my thrust and end up bouncing off the back wall of the landing bay when I try it.
04:33
<@Derakon>
Sounds about right.
04:39
<@Derakon>
http://www.absurdnotions.org/an20040403.gif
04:43
<@Derakon>
Also http://www.absurdnotions.org/an20060506.gif
04:45 ErikMesoy|sleep is now known as ErikMesoy
04:58 MahalWork is now known as Mahal
05:09 AnnoDomini [~farkoff@Nightstar-29326.neoplus.adsl.tpnet.pl] has joined #Code
05:09 mode/#code [+o AnnoDomini] by ChanServ
05:22 * Vornicus misses Sea of Insanity.
05:24
<@Derakon>
What was that one...?
05:25
<@Vornicus>
Sea of Insanity was the one with muses and gods and the St. Louis night life and a woman with an apartment that happens to be a grove.
05:25
< ErikMesoy>
A part-time grove?
05:26
<@Vornicus>
no, it's always a grove
05:26
<@Derakon>
Oh, yeah, that one.
05:26
<@Derakon>
Lots of Greek pantheon stuff.
05:33 Starglider [~starglide@Nightstar-12327.bitphase.com] has joined #Code
05:37 * Derakon poofs bedwards.
05:38
<@Vornicus>
ni
05:39 Derakon is now known as Derakon[AFK]
05:51 ReivClass is now known as Reiver
05:56 ErikMesoy [~ejm@Nightstar-12747.bb.online.no] has quit [Quit: Off to school]
06:27 Raif [~corvusign@Admin.Nightstar.Net] has quit [Ping Timeout]
06:37 gnolam [Lenin@Nightstar-13557.8.5.253.se.wasadata.net] has joined #Code
06:37 mode/#code [+o gnolam] by ChanServ
06:45 gnolam [Lenin@Nightstar-13557.8.5.253.se.wasadata.net] has quit [Quit: Reboot]
06:47 gnolam [Lenin@Nightstar-13557.8.5.253.se.wasadata.net] has joined #Code
06:47 mode/#code [+o gnolam] by ChanServ
07:18 gnolam [Lenin@Nightstar-13557.8.5.253.se.wasadata.net] has quit [Ping Timeout]
07:54 Raif [~corvusign@Nightstar-22484.hsd1.ca.comcast.net] has joined #Code
07:54 mode/#code [+o Raif] by ChanServ
08:04 Raif [~corvusign@Admin.Nightstar.Net] has quit [Connection reset by peer]
08:27 Raif [~corvusign@Nightstar-22484.hsd1.ca.comcast.net] has joined #Code
08:27 mode/#code [+o Raif] by ChanServ
08:31 Starglider [~starglide@Nightstar-12327.bitphase.com] has quit [Quit: ]
08:45 Thaqui [~Thaqui@Nightstar-12370.jetstream.xtra.co.nz] has quit [Quit: Spark plugs!]
08:50 Raif [~corvusign@Admin.Nightstar.Net] has quit [Connection reset by peer]
08:50 Raif [~corvusign@Nightstar-22484.hsd1.ca.comcast.net] has joined #Code
08:50 mode/#code [+o Raif] by ChanServ
09:11 KarmaBot [~karma.bot@Nightstar-29326.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
09:11 AnnoDomini [~farkoff@Nightstar-29326.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
09:14 Mahal is now known as MahalBed
09:15 Thaqui [~Thaqui@Nightstar-12370.jetstream.xtra.co.nz] has joined #code
09:15 mode/#code [+o Thaqui] by ChanServ
11:18 gnolam [Lenin@Nightstar-13557.8.5.253.se.wasadata.net] has joined #Code
11:18 mode/#code [+o gnolam] by ChanServ
11:23 * gnolam ponders Bresenham.
11:25
<@Reiver>
?
11:25
<@gnolam>
Stippled Bresenham lines, to be exact.
11:26
<@Reiver>
?
11:27
<@Vornicus>
Bresenham's Algorithm is How YOu Draw Lines On A Computer.
11:28
<@Reiver>
I thought you just made a row of dots.
11:28
<@Vornicus>
Sure. Bresenham's Algorithm describes how you pick the dots.
11:42
<@Reiver>
...Please tell me it's a trivially simple alograthm.
11:42
<@Reiver>
Because I would have thought I could write that in like a six line function, tops.
11:42
<@Vornicus>
It's pretty damn trivial.
11:42
<@Vornicus>
It's usually hard-hard coded.
11:43
<@Reiver>
Built In(tm)
11:43
<@Reiver>
Probably into the graphics card so it can do that nifty predictive-calculation trick that gfx cards love to do.
11:44
<@Vornicus>
http://en.wikipedia.org/wiki/Bresenham%27s_algorithm
11:45
<@Vornicus>
TF: I had a King Bitchin SupComm mod idea.
11:45
<@Vornicus>
First Person Commander.
11:46 * Reiver waaaant
11:46
<@Reiver>
...hee
11:47
<@Reiver>
Imagine an FPS where the guidance systems are automated.
11:47
<@Reiver>
*look that way* "Kill it. Kill it with fire" PEWPEWPEW "Now where was I..."
11:47
<@Vornicus>
Many console FPSen have auto-aim.
11:48 Thaqui [~Thaqui@Nightstar-12370.jetstream.xtra.co.nz] has left #code [Leaving]
11:49
<@Reiver>
Nah.
11:49
<@Reiver>
That's just to deal with the fact that you can't aim for shit on those controllers.
11:49
<@Reiver>
This is "Point and click and it will get shot to death while you get on with life."
11:50
<@Vornicus>
Armored Core was almost FPS. it had a thing that would fire missiles automatically on full lockon.
11:51
<@Reiver>
Nice.
12:16
<@Vornicus>
good lord, it's past 6.
12:20 Vornicus is now known as Vornicus-Latens
12:31 Serah [~Z@87.72.36.ns-26407] has quit [Killed (NickServ (GHOST command used by Cossack_dancing_bear))]
12:31 Serah [~Z@87.72.36.ns-26407] has joined #Code
12:32 mode/#code [+o Serah] by ChanServ
12:36 Derakon[AFK] [~Derakon@Nightstar-12737.sea2.cablespeed.com] has quit [Connection reset by peer]
13:38 Reiver [~reiver@IRCop.Nightstar.Net] has quit [Ping Timeout]
13:41 AnnoDomini [~farkoff@Nightstar-29201.neoplus.adsl.tpnet.pl] has joined #Code
13:41 mode/#code [+o AnnoDomini] by ChanServ
13:44 ReivSLEP [~reiver@Nightstar-3515.ubs-dsl.xnet.co.nz] has joined #Code
13:46 KarmaBot [~karma.bot@Nightstar-29201.neoplus.adsl.tpnet.pl] has joined #Code
13:46
< KarmaBot>
KarmaBot v1.19. online and ready. Type "!help commands" for command list.
14:09
<@ToxicFrog>
ReivSLEP: Strike Force Centauri almost had that, but not really.
14:09
<@ToxicFrog>
You could target something and your suit weapons would track it, but you still had to hit fire yourself.
14:10
<@jerith>
I'm not sure I'm comfortable with highly autonomous weapons...
14:10
<@jerith>
SkyNet and all.
14:12
<@ToxicFrog>
That's something entirely different.
14:13 AnnoDomini [~farkoff@Nightstar-29201.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
14:14 KarmaBot [~karma.bot@Nightstar-29201.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
14:15 AnnoDomini [~farkoff@Nightstar-29586.neoplus.adsl.tpnet.pl] has joined #Code
14:15 mode/#code [+o AnnoDomini] by ChanServ
14:20 AnnoDomini [~farkoff@Nightstar-29586.neoplus.adsl.tpnet.pl] has quit [Killed (NickServ (GHOST command used by AbuDhabi))]
14:21 KarmaBot [~karma.bot@Nightstar-29651.neoplus.adsl.tpnet.pl] has joined #Code
14:21
< KarmaBot>
KarmaBot v1.19. online and ready. Type "!help commands" for command list.
14:22 AnnoDomini [~farkoff@Nightstar-29651.neoplus.adsl.tpnet.pl] has joined #Code
14:22 mode/#code [+o AnnoDomini] by ChanServ
14:59 ErikMesoy [~ejm@Nightstar-12747.bb.online.no] has joined #code
17:25 ErikMesoy [~ejm@Nightstar-12747.bb.online.no] has quit [Quit: Help, I'm being oppressed!]
18:13 * ToxicFrog eyes the fuck out of "Legion Darrath" on the SupComm forums.
18:14
<@AnnoDomini>
Enlighten us, please.
18:15
<@ToxicFrog>
Well. For some time now, we've been discussing how to make ships leave wreckage over in the ModDev forum.
18:15
<@ToxicFrog>
A while ago I posted some sample code that lets them leave floating wrecks on the surface.
18:16
<@ToxicFrog>
On tuesday, LD posted a mod that causes ships to leave floating wrecks on the surface, going "yay first post". I gently pointed out that not only was it not first, but the version I had posted half an hour earlier left wrecks that sank to the seafloor.
18:17
<@ToxicFrog>
Today, Bonomel pointed out that LD's mod was, in fact, word for word copied from my example post, with a readme tacked on listing LD as the developer.
18:20
<@ToxicFrog>
While I have no problem with people basing their stuff on my code, and while I accept people repackaging my code in easy to install mod form, doing that and then claiming you wrote it kind of pisses me off.
18:39 MahalBed is now known as Mahal
18:45 Starglider [~mike@Nightstar-12327.bitphase.com] has joined #Code
19:52 Starglider [~mike@Nightstar-12327.bitphase.com] has quit [Quit: ]
20:00 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has joined #Code
20:12
<@Vornicus-Latens>
Cute.
20:12 Vornicus-Latens is now known as Vornicus
20:17
<@Vornicus>
TF: what do you think of FPC?
20:18
<@gnolam>
Ah. He's Belgian.
20:20
<@ToxicFrog>
FPC?
20:20
<@ToxicFrog>
Floating point calculations?
20:20
<@Vornicus>
First Person Commander
20:21 ErikMesoy [~ejm@Nightstar-12747.bb.online.no] has joined #code
20:21
<@ToxicFrog>
On the one hand, wicked cool.
20:21
<@ToxicFrog>
On the other, kind of hard to play.
20:21
< ErikMesoy>
wut?
20:21
<@ToxicFrog>
See also: Battlezone.
20:21
<@ToxicFrog>
<Vornicus> TF: what do you think of FPC?
20:21
<@ToxicFrog>
<Vornicus> First Person Commander
20:36 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has quit [Quit: Jouets de Dieu, jouets de jouets, les jouets de me, na?tre Clair enfant voire.]
20:51
<@ToxicFrog>
...
20:51 * ToxicFrog figures out why his code isn't working.
20:52 * ToxicFrog deletes ShipWreckage.scd from /gamedata so that it reverts to using the unpacked source ??
20:53
<@Vornicus>
heh
21:07
<@ToxicFrog>
-- begin ugly hack for testing
21:08
<@ToxicFrog>
if unit.Economy then unit.Economy.BuildCostMass, unit.Economy.BuildCostEnergy, unit.Economy.BuildTime = 1,1,1 end
21:08
<@ToxicFrog>
-- end ugly hack for testing
21:13
<@Vornicus>
cute.
21:24 * ToxicFrog attempts to get subs to sink
21:25
<@ToxicFrog>
Damn I'm good.
21:29
<@Vornicus>
Woohoo
21:30 * jerith corrupts ToxicFrog, makes him evil.
21:33
<@ToxicFrog>
Ok, here's something where Lisp is actually noticeably superior to Lua.
21:33
<@ToxicFrog>
local sx,sy,sz = self:GetUnitSize()
21:33
<@jerith>
Greenspun's Tenth LAw.
21:33
<@ToxicFrog>
local vol = sx * sy * sz
21:33
<@ToxicFrog>
Becomes:
21:34
<@ToxicFrog>
(def vol (mul (GetUnitSize self)))
21:46 Thaqui [~Thaqui@Nightstar-12370.jetstream.xtra.co.nz] has joined #code
21:46 mode/#code [+o Thaqui] by ChanServ
21:48
<@ToxicFrog>
local DaveyJones = (seafloor - pos[2])*5
21:49
<@Vornicus>
Hee
21:49
<@ToxicFrog>
Logically it should be DistanceToDaveyJonesLocker, but that's a pain to type~
21:50 ErikMesoy is now known as ErikMesoy|sleep
21:52
<@ToxicFrog>
Ooooop
21:52 * ToxicFrog forgets the WaitSeconds(0.5) in a spawned thread, locks SupComm solid
21:53
<@ToxicFrog>
Right, threads are not preemptive~
22:14
<@McMartin>
DaveyJones should clearly involve giant laser cannons.
22:23
<@ToxicFrog>
No, that
22:23
<@ToxicFrog>
No, that's DavidJones~
22:25
<@ToxicFrog>
Ok, all the submarine stuff is working except for leaving a pathetic trail of bubbles as they sink.
22:26
<@Vornicus>
nonpathetic bubbles are cooker.
22:26
<@Vornicus>
cooler*
22:32 * ToxicFrog can't seem to get a bubble trail, but can get underwater explosions
22:33
<@Vornicus>
How do those look?
22:34
<@ToxicFrog>
I'll tell you when I stop referencing nonexistent globals~
22:34
<@Vornicus>
hee
22:38
<@ToxicFrog>
Hmm. They look...well, like underwater explosions.
22:39
<@ToxicFrog>
Not suitable for my purposes.
22:39
<@ToxicFrog>
However, I think I've figured out why the bubble trails aren't working.
22:40
<@ToxicFrog>
Ok, that's more like it.
22:43
< ReivSLEP>
TF: I would have thought they'd have half this sort of thing pregenned in their ship libraries.
22:43
<@ToxicFrog>
They do, for ships
22:43
< ReivSLEP>
This is not a ship?
22:43
<@ToxicFrog>
I'm trying to adapt it for submarines.
22:43
< ReivSLEP>
...They don't have it for submarines? How odd.
22:43
<@ToxicFrog>
Well, submarines just blow up.
22:43
<@ToxicFrog>
Ships blow up and then sink.
22:44
< ReivSLEP>
And you're trying to make submarines sink.
22:44
< ReivSLEP>
Fair 'nuff.
22:56
<@ToxicFrog>
IMO, they should have created an AquaticUnit that sinks with bubbles and suchlike and then subclassed SubUnit and SeaUnit from that instead of from MobileUnit, and just marked subs as non-sinking.
22:58 * Serah dances with ToxicFrog.
22:58 * ToxicFrog dances with Serah
22:59
<@ToxicFrog>
Ok, subs are now officially working.
22:59
<@Vornicus>
woot
22:59
<@Serah>
In hindsight, I think I'm glad the thingies didn't compile.
22:59
<@ToxicFrog>
I just need to fix this issue with the UEF battleship and it's done.
22:59
<@ToxicFrog>
Oh?
22:59
<@Serah>
I just found out I don't agree with how that network is run at all.
22:59
<@Serah>
Since you can pay $10 to have a user of your devicings removed. and for an additional $5 you won't be mentioned in the kline either.
23:00
<@ToxicFrog>
...
23:01
<@ToxicFrog>
Eat their livers.
23:01 * Vornicus offers a nice chianti.
23:01 * ToxicFrog builds 45 battleships and blows them up to test the sink code
23:02 ReivSLEP is now known as ReivClass
23:02
<@ToxicFrog>
(debugging console: "you did WHAT? There's no way I'm rendering that many emitters!")
23:03
<@Serah>
Hehe.
23:03
<@McMartin>
emitters?
23:04
<@ToxicFrog>
Entities that emit sprite or particle effects, either permanently or for a limited time.
23:05
<@ToxicFrog>
In this case, each battleship gets about 8-12 emitters responsible for secondary explosions and debris.
23:05
<@McMartin>
Aha
23:06
<@ToxicFrog>
Awesome, it works on the T4 subs as well.
23:06
<@McMartin>
Victoly
23:07
<@ToxicFrog>
Not quite, still need to test my (ugly and hackish ;.;) fix for the battleship.
23:09
<@Serah>
Ok, not that bad. Only klined for 24 hours >_<
23:09
<@Serah>
But how can I respect a network with so little respect for their users
23:09
<@Serah>
?
23:15 * Serah explodes, and let you have your channel back.
23:15
<@McMartin>
We already suggested simply feasting on their livers, perhaps with a nice chianti
23:17
<@Vornicus>
You'll have to get your own fava beans though.
23:23
<@ToxicFrog>
What is that from, anyways?
23:28 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has joined #Code
23:39
<@Vornicus>
Silence of the Lambs
23:42
<@McMartin>
> SILENCE LAMBS
23:42 * ToxicFrog tries to remember where he got "I shall feast upon his liver" from.
23:43
<@Vornicus>
thpfthpfthpfthpfthpf
23:44
<@ToxicFrog>
23:45
< Janus>
I needed that. *dies*
--- Log closed Thu Mar 22 00:00:51 2007
code logs -> 2007 -> Wed, 21 Mar 2007< code.20070320.log - code.20070322.log >