--- Log opened Wed Apr 09 00:00:02 2008 |
00:16 | < Vornicus> | People are fork-bombing the server? |
00:23 | | You're now known as TheWatcher[T-2] |
00:27 | | You're now known as TheWatcher[zZzZ] |
00:29 | < Jeff> | Yeah. |
00:29 | < Jeff> | Presumably, they think it's funny. |
00:31 | < Vornicus> | Obviously they need to be process limited. |
00:32 | < Jeff> | Obviously |
02:11 | | gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has quit [Quit: Z?] |
02:44 | < Shoukanjuu> | What is fork(); ? |
02:44 | | * Shoukanjuu has been up for 30 hours |
02:44 | <@McMartin> | fork() is a POSIX call that creates a new process and runs it in parallel. |
02:44 | <@McMartin> | Setting up an unending chain of fork()s will fork you up but good |
02:45 | < Shoukanjuu> | I suppose that's why it's called fork; it's only common sense to...well, fork >_> XD |
02:45 | <@McMartin> | (actually, it's because the process "forks off" and starts out identical to the parent process) |
02:46 | <@McMartin> | (except for one bit that says whether it's parent or child.) |
02:46 | < Shoukanjuu> | Yeah. It's common sense...ish |
02:46 | <@McMartin> | (Thus, POSIX does not have a CreateProcess call; you fork, and then you overwrite the child with whatever the new process is.) |
02:46 | <@McMartin> | (Which is not common sense no matter how much people who have only ever used UNIX claim it is. It's merely a pretty good idea.) |
02:47 | < Shoukanjuu> | That I can see, okay. :) |
02:49 | <@McMartin> | In fact, under the hood, Linux takes it a step further and has an even more thorough cloning that fork() uses, then separates from. |
03:23 | | Chalcedon [~Chalcy@203.211.123.ns-2573] has joined #code |
03:23 | | mode/#code [+o Chalcedon] by ChanServ |
03:50 | | NSGuest-5926 is now known as Kazriko |
04:22 | | Shoukanjuu [~Shoukanju@71.48.224.ns-3853] has quit [Client exited] |
04:22 | | Jeff [JPL@Nightstar-12038.dsl.sndg02.pacbell.net] has quit [Ping Timeout] |
04:29 | | Jeff [Kaline@Nightstar-12038.dsl.sndg02.pacbell.net] has joined #code |
06:14 | | C_tiger [~c_wyz@Nightstar-25761.nycmny.east.verizon.net] has quit [Ping Timeout] |
06:27 | | AnnoDomini [AnnoDomini@Nightstar-29400.neoplus.adsl.tpnet.pl] has joined #Code |
06:27 | | mode/#code [+o AnnoDomini] by ChanServ |
06:52 | | * McMartin patchbombs UQM. 257 files changed! |
07:21 | | C_tiger [~c_wyz@Nightstar-25761.nycmny.east.verizon.net] has joined #code |
07:21 | | mode/#code [+o C_tiger] by ChanServ |
07:22 | | Reiver [~reaverta@Admin.Nightstar.Net] has quit [Ping Timeout] |
07:28 | | Reiver [~reaverta@Admin.Nightstar.Net] has joined #Code |
07:28 | | mode/#code [+o Reiver] by ChanServ |
07:31 | <@McMartin> | 259. |
07:32 | | * McMartin forgot to add a couple of new source files. Oops. |
09:20 | | * MyCatVerbs strangles McM for sins against version control by proxy. |
09:21 | <@MyCatVerbs> | One of our courseworks here is a group project. A few of our team members don't quite grasp the finer details of version control from time to time. |
09:23 | <@MyCatVerbs> | Pretty typical in our group to have a minimum of two patches for a single change. Usually "implemented foo" followed by "oh wait, I broke the build while introducing foo", followed by "heheh, foo should actually work now", followed by "whoops, I broke the build again" followed by "oh yeah, I forgot to add a file that I introduced a dependancy to four patches back. Here it is." |
09:23 | <@MyCatVerbs> | Well, actually, tell a lie. The second in that list is pretty rare. Most of us don't actually notice it when we break a build. Hee. |
09:23 | <@EvilDarkLord> | Wah, sounds familiar, though I've only worked on a fairly small project thus far. |
09:24 | <@MyCatVerbs> | EvilDarkLord: at one point, I went through a half-dozen emails and at least (I think) three short phone calls trying to get ahold of a particular JPEG. :) |
10:13 | | You're now known as TheWatcher |
10:16 | | Chalcedon [~Chalcy@203.211.123.ns-2573] has quit [Quit: Leaving] |
10:24 | | gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has joined #Code |
10:24 | | mode/#code [+o gnolam] by ChanServ |
11:39 | | Attilla [~The.Attil@194.72.70.ns-11849] has quit [Quit: <Insert Humorous and/or serious exit message here>] |
11:45 | | Attilla [~The.Attil@194.72.70.ns-11849] has joined #code |
11:45 | | mode/#code [+o Attilla] by ChanServ |
12:18 | | Jeff [Kaline@Nightstar-12038.dsl.sndg02.pacbell.net] has quit [Quit: Leaving] |
12:21 | | JeffL [Kaline@Nightstar-12038.dsl.sndg02.pacbell.net] has joined #code |
13:20 | | AnnoDomini [AnnoDomini@Nightstar-29400.neoplus.adsl.tpnet.pl] has quit [Ping Timeout] |
13:28 | | AnnoDomini [AnnoDomini@Nightstar-28916.neoplus.adsl.tpnet.pl] has joined #Code |
13:28 | | mode/#code [+o AnnoDomini] by ChanServ |
16:25 | <@McMartin> | MCV: The 259-file change was in fact semantically one change, and by rights should be considered atomic. |
16:25 | < Vornicus> | What was that one change? |
16:25 | <@MyCatVerbs> | McMartin: yeah, I wasn't really hatin' on you for doing that. I just wanted to strangle someone because you reminded me of what my classmates are like. :) |
16:26 | <@McMartin> | Vorn: Well, really, conceptually, it's two lines. |
16:26 | <@McMartin> | -typedef DWORD RESOURCE; |
16:26 | <@McMartin> | +typedef const char *RESOURCE; |
16:26 | | * MyCatVerbs blinks. |
16:26 | <@McMartin> | And ripple effects thereof. |
16:26 | <@MyCatVerbs> | And that isn't packed off in a seperate .h file somewhere? |
16:27 | <@MyCatVerbs> | Oh, fair 'nuff. |
16:27 | <@MyCatVerbs> | Did you have to do all of that by hand? |
16:27 | <@McMartin> | And no, it's packed off in about 200 .h files~ |
16:27 | <@McMartin> | You may have seen me over the past month or so occasionally laughing maniacally and demanding my army of robots to go forth and destroy? |
16:27 | <@MyCatVerbs> | Civilised. |
16:27 | <@McMartin> | That was this. |
16:28 | <@MyCatVerbs> | Destroying-civilisation, but still civilised. |
16:28 | <@MyCatVerbs> | McMartin: your army of robots being short scripts written to automate large chunks of this? Or just psychosis brought on by the tedium? |
16:28 | <@McMartin> | One moderate length script, used to autogenerate a wide variety of useful files |
16:29 | <@McMartin> | I actually had been working towards this end for some time, and had been revamping the integer-based system to make it easier to switch over. |
16:29 | <@McMartin> | So I'd done a full-scale replacement of the content indices and the .h files several times along the way |
16:29 | <@McMartin> | http://sc2.svn.sourceforge.net/viewvc/sc2/trunk/sc2/src/sc2code/igfxres.h?r1=292 6&r2=2962 is representative of the automatable stuff. |
16:30 | <@MyCatVerbs> | Ah, this was for UQM? |
16:30 | <@McMartin> | Quite so. |
16:30 | <@MyCatVerbs> | Ahhhhh. |
16:30 | <@McMartin> | Actually, that isn't quite representative, because it's also got a pile of constants in it that are never used. |
16:30 | <@MyCatVerbs> | Was gonna say, doing that wide an s/foo/bar/ over production code would make me soil myself. |
16:30 | <@McMartin> | That's why I spent a month doing it. |
16:31 | <@McMartin> | Three days of it was regression testing. |
16:31 | <@MyCatVerbs> | Doing it over a videogame that you aren't getting paid for would be distinctly less scary (though no less awesome). |
16:31 | <@McMartin> | And it's not an s///, either |
16:31 | <@MyCatVerbs> | I know, but conceptually. |
16:31 | <@McMartin> | It was "merely" a large-scale refactoring |
16:32 | <@McMartin> | All changes to actual code were done by hand, and mostly involved replacing math on resource numbers with snprintfs. |
16:33 | <@MyCatVerbs> | Would any of it have been any easier if you'd had libraries handy which would let you directly play with the AST of the whole damn thing? |
16:34 | <@McMartin> | Nnnot really, in this case |
16:34 | <@MyCatVerbs> | Just curious. |
16:34 | <@McMartin> | I had a huge CSV file of all of the representations of each resource |
16:34 | <@McMartin> | And a modest Python script, that, given that, would whip out the .h files, the .ls2 files and the .rmp file. |
16:35 | <@McMartin> | And then I gradually consolidated all the .ls2 files, and finally eliminated them in that last step. |
16:35 | <@McMartin> | The final .ls2 file being this: http://sc2.svn.sourceforge.net/viewvc/sc2/trunk/sc2/content/starcon.ls2?view=mar kup&pathrev=2961 |
16:35 | <@MyCatVerbs> | McMartin: those just specify the resource constants? |
16:36 | <@McMartin> | So this is really just the culmination of a 4-month project. |
16:36 | <@McMartin> | Well, it's a three-member bitfield under the hood, so it specifies the members by hand. |
16:36 | <@McMartin> | The .h treats the bitfield as a single 32-bit integer |
16:36 | <@McMartin> | As does the code |
16:36 | <@McMartin> | Which is all kinds of ew, and needs to die, and also doesn't let you play XML-like structure tricks, which is something we'd kind of like available at some point. |
16:36 | <@MyCatVerbs> | Sounds painful. I presume it was necessary for the CPUs of the time? |
16:37 | <@McMartin> | No, for those you used an LZW'd binary packed format of same. |
16:37 | <@McMartin> | And instead of filenames it was the actual file data itself. |
16:38 | <@MyCatVerbs> | So if I understand you correctly, they didn't really gain much from doing it the way they did? |
16:39 | <@McMartin> | Not by modern standards, no. |
16:39 | <@McMartin> | The original files we got were basically a slightly hacked version of the original binary packages, and 2 and a half years ago another coredev member textualized them. |
16:39 | <@MyCatVerbs> | Anything particular gained by theirs, though? |
16:39 | <@McMartin> | At the time? Yeah. It let you have an internal filesystem in an era when this was Not Done. |
16:40 | <@MyCatVerbs> | Oh, I see. So when the game was released, they'd been compiled into some quicker-to-use binary format? |
16:40 | <@McMartin> | More or less. |
16:40 | <@McMartin> | We have the original script that specified the compilation, but by our lights the organization was "wrong" |
16:40 | <@MyCatVerbs> | Gratituous and uneccessary, you mean? |
16:41 | <@MyCatVerbs> | (And painful, of course.) |
16:41 | <@McMartin> | No, more that "certain files are in the wrong directories" |
16:41 | <@McMartin> | Anyway, what this really paves the way for -- besides not having as many fragile inpenetrable files in content/ -- is the ability to start shoving game constants into the resource map too. We're no longer restricted to filenames. |
16:41 | <@McMartin> | Well. |
16:42 | <@McMartin> | We still are currently restricted to filenames, but there's no longer any reason for this to be so. |
16:43 | <@McMartin> | Other than "we haven't implemented the necessary additional variant types" |
16:45 | <@McMartin> | The only real design error, I'd say, was that the API was generic (LoadResource), but the individual resource names encoded a type within them (as part of the bitfield). |
16:46 | <@McMartin> | We modified that to bring it into line with the API. Once we put in the proper variant types, LoadResource will hand you back a Resource that announces its type and can be accessed that way. |
16:47 | <@McMartin> | But my next project is to retire the resource types that are no longer actually used. |
17:02 | <@McMartin> | Oh, and I never actually answered your question about AST transformers. |
17:03 | <@McMartin> | "Those wouldn't have helped here because the code was properly pre-segregated into 'stuff humans deal with' and 'stuff that can be safely and easily autogenerated from scratch each time'" |
17:03 | <@McMartin> | And now, off to lab. To my irritation, I have to be there early enough today that I can't skip the morning rush. |
17:04 | <@McMartin> | Oh, well, actually, before I go |
17:05 | <@McMartin> | Most of the really entertaining bugs came from the step where I was consolidating all the resources into a single index (the original code had separate ones for each ship and conversation as well as a master index, and destructively swapped them out. Yikes.) |
17:05 | <@McMartin> | My favorite was this one. http://www.stanford.edu/~mcmartin/misc/oops.png |
17:06 | <@McMartin> | Not Your Usual Earthlings |
17:06 | | You're now known as TheWatcher[afk] |
17:07 | < Vornicus> | hee |
18:28 | | Pi-2 is now known as Pi |
18:36 | <@McMartin> | High on my wish list for 10.5.3: a version of tar that's either aware of or is capable of ignoring the properties fork |
18:40 | < Vornicus> | you mean the resource fork? |
18:42 | <@McMartin> | I *actually mean, for a file foo.txt, the sometimes-completely-invisible-but-sometimes-not file ._foo.txt |
18:42 | <@McMartin> | So, for instance, ls doesn't see it. |
18:43 | <@McMartin> | cp and rm don't see it |
18:43 | <@McMartin> | tar sees it. |
18:43 | <@McMartin> | This is obnoxious. |
18:43 | <@McMartin> | It means I have to scp the directory over (which doesn't copy the ._whatever files!) and then tar that on a different machine. |
18:44 | < Vornicus> | I don't know what drugs tar is on, exactly |
18:44 | < Vornicus> | Usually they're called file.foo/rsrc |
18:45 | <@McMartin> | OK, so those aren't an issue. |
18:46 | <@McMartin> | And I mean key-value properties. |
18:46 | <@McMartin> | You can make ls show them with -@ in Terminal.app |
18:46 | <@McMartin> | michaelmartin$ ls -l@ CS343\ PQL\ Slides.pdf |
18:46 | <@McMartin> | -rw-r--r--@ 1 michaelmartin staff 112584 Apr 8 19:58 CS343 PQL Slides.pdf com.apple.FinderInfo 32 |
18:47 | < Vornicus> | weird |
18:47 | <@McMartin> | That FinderInfo file is in a ._CS343 PQL Slides.pdf file. |
18:48 | <@McMartin> | Which ls doesn't expose, can't be referred to, and which will be bundled into tar files and cannot be removed. |
18:48 | < Vornicus> | latest 10.4 doesn't have the @ option. |
18:48 | <@McMartin> | Oh yeah, rm can't annihilate it either. |
18:51 | < Vornicus> | OSX does some really wacky htings in the filesystem, and I don't relaly know why. |
18:52 | <@McMartin> | To implement Classic MacOS capabilities on top of POSIX, I've always figured. |
18:52 | | You're now known as TheWatcher |
18:52 | <@McMartin> | Anyway, time to go to class for the first time in... three years or so. |
18:52 | < Vornicus> | Well, mostly, I mean, stuff that would be more amenable to being put in ~/Library/Application Support/Finder |
18:54 | < Vornicus> | .DS_Store for instance |
18:59 | <@MyCatVerbs> | McMartin: have fun! (Also, seriously, you should attend your damn lectures. ;) |
19:00 | <@McMartin> | (I'm *giving* it) |
19:00 | | AnnoDomini is now known as Pete |
19:01 | <@C_tiger> | McM, ok, then you shouldn't attend. |
19:43 | <@MyCatVerbs> | McMartin: hahahahha. In that case, you should definately attend your damn lectures. You'll end up being accosted by hordes of dewy-eyed undergrads all over campus, otherwise. |
20:30 | | Chalcedon [~Chalcy@Nightstar-1659.ue.woosh.co.nz] has joined #code |
20:30 | | mode/#code [+o Chalcedon] by ChanServ |
21:15 | | jeffl_ [~jeffl@Nightstar-17127.dynamic.ucsd.edu] has joined #code |
21:15 | < jeffl_> | Fun for the whole family. The TA is saying that the "return to user mode" command should not be priviledged, and the students are showing the parts of the book where the book says it should. |
21:35 | | Chalcedon is now known as ChalcyChores |
21:40 | | jeffl_ [~jeffl@Nightstar-17127.dynamic.ucsd.edu] has quit [Client exited] |
21:40 | | AFKSkull [~none@Nightstar-7066.dyn.optonline.net] has joined #code |
21:41 | | ASCIISkull [~none@Nightstar-7066.dyn.optonline.net] has quit [Ping Timeout] |
22:21 | | Pete is now known as AnnoDomini |
22:23 | | AnnoDomini [AnnoDomini@Nightstar-28916.neoplus.adsl.tpnet.pl] has quit [Quit: Do not burn the candle at both ends, as it leads to the life of a hairdresser.] |
22:32 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Operation timed out] |
22:32 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code |
22:32 | | mode/#code [+o ToxicFrog] by ChanServ |
22:41 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Operation timed out] |
22:42 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code |
22:42 | | mode/#code [+o ToxicFrog] by ChanServ |
22:53 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Operation timed out] |
22:53 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code |
22:53 | | mode/#code [+o ToxicFrog] by ChanServ |
23:57 | | Jeff [~jeffl@Nightstar-17127.dynamic.ucsd.edu] has joined #code |
23:57 | < Jeff> | Anyone who knows stuff about OSes on? |
--- Log closed Thu Apr 10 00:00:12 2008 |