00:00:23 (see, this sort of thing is what makes the multiple-ABI directory layout thing not a terrible idea!) 00:00:45 pikhq: /lib/{libc.a,crt*.o} is main libc; /lib/otherlibname/* is the other one. :p 00:01:42 elliott: Well, that actually does work for static linking... *shrug* 00:01:50 pikhq: (I suppose I don't want to build every lib twice, though, against a different libc...) 00:02:09 Only the libraries that'll actually work against dietlibc. 00:02:17 Which is *not* going to be universal. 00:02:33 Or even incredibly common. 00:03:02 pikhq: That's what makes me want to use uClibc. 00:03:13 pikhq: But man, nm -a a uClibc'd executable some time. Bloooooat. 00:32:25 elliott, down? 00:32:39 Perhaps. :P 00:32:39 elliott, the next torch is close to me, there is a chest a bit further along 00:32:50 Ah. 00:33:58 elliott, up 00:38:24 -!- Sasha2 has joined. 00:39:01 -!- Mathnerd314 has quit (Ping timeout: 240 seconds). 00:39:55 -!- augur has joined. 00:40:03 -!- Sasha has quit (Ping timeout: 265 seconds). 00:40:56 pikhq: ping 00:41:19 elliott: Gnip 00:41:36 elliott: I'm sad that live-action doesn't compress as well as animation. 00:41:54 pikhq: Clearly we should all become animated. 00:41:57 Clearly. 00:44:03 Why, I have to resort to 256 kbps to get tolerable 240p! 00:44:06 pikhq: Wait, how do typical C compilers know what start files to link? Do they just go by whatever's at /lib/crt1.o and the like? 00:44:16 i.e. filename based? 00:44:58 The path is builtin to the compiler. 00:45:09 pikhq: So, path-based. 00:45:10 GCC at least has the courtesy to stick it in the spec file. 00:45:26 pikhq: How would one go about making a typical (non-gcc) compiler assume it's statically compiling always? 00:45:28 i.e. implicit -static. 00:45:37 Uuuuh. I dunno. 00:45:44 Really easy to do with GCC, though. 00:45:44 -!- GreaseMonkey has quit (Ping timeout: 245 seconds). 00:46:26 -!- GreaseMonkey has joined. 00:47:40 pikhq: pcc, so it's probably not configurable without patching :P 00:48:20 * Copyright(C) Caldera International Inc. 2001-2002. All rights reserved. 00:48:25 pikhq: Gotta love any piece of code that starts with that. 00:48:32 * This file should be rewritten readable. 00:48:34 And then has that. 00:48:41 ... Whaaa? 00:48:47 pikhq: It's pcc. 00:48:51 pikhq: pcc has... a LOT of authors. 00:49:05 pikhq: Caldera happens to be one of them and they stuck that copyright there :P 00:49:28 pikhq: ...come to think of it thought, pcc wasn't being maintained then. Whut? 00:49:30 Well, yes. It's got a shaggy dog story about as crazy as your typical genetic UNIX. 00:49:40 if (strcmp(argv[i], "-static") == 0) { 00:49:40 Bstatic = 1; 00:50:02 #ifdef DYNLINKER 00:50:07 Nice, I can theoretically disable that :P 00:50:20 TODO: figure all that out. 00:50:26 pikhq: So, what's your vote for main libc. uClibc or dietlibc? 00:52:09 uClibc, I guess. 00:52:40 pikhq: Okay! The people have spoken, and they choose MEDIOCRITY! 00:53:58 XD 00:59:46 pikhq: The worst thing about all of this is the kernel configuration. 00:59:59 pikhq: It is *so hard* to know what you need to get stuff working, and no matter how much you disable it always seems to end up huge. 01:00:09 (At least starting from the stock kernel.) 01:04:20 Hmm. I didn't need to scale that Sintel trailer down to 240p; it turns out fine at 480p. 01:05:02 SD VIDEO STREAMING VIA ISDN. 01:11:10 pikhq: I eagerly await "NES live game streaming over telegraph" 01:12:04 elliott: XD 01:17:43 night 01:19:26 -!- Sasha2 has quit (Ping timeout: 245 seconds). 01:24:32 -!- Sasha has joined. 01:29:32 There should be a digital-composey-MIDI-ish-tracker-y thing with a decent interface. 01:30:15 -!- augur has quit (Remote host closed the connection). 01:45:41 Huh. Microsoft has started funding Hercules. 01:45:47 The IBM mainframe emulator. 01:45:58 Why? Beats me. 01:48:07 Newspeak makes me feel like I can contribute to it 01:48:13 I like that feeling 01:50:46 pikhq: If it runs on Windows and they suspect people will want it, that's customers. 01:54:05 Well, it does run on Windows. 01:59:54 Why is newspeaklanguage.org down? :(:( 02:07:22 Sgeo: You know what's a good language...? 02:07:24 Sgeo: newLISP. 02:11:20 I like dynamic scoping.. but dynamic scoping by default? 02:11:59 Sgeo: Hey, original LISP had it that way! 02:15:25 pikhq: More kitten work tomorrow; let's see if I can bootstrap a usable if bare system with X11 by Christmas. 02:15:26 -!- elliott has quit (Quit: Leaving). 02:24:20 elliot: Needs more cowbell. 02:24:40 Can someone please tell me WHY elliott is trying to push me from Newspeak? 02:25:31 Sgeo: Because all is koneko. 02:25:43 ??? 02:26:00 Kitten. 02:27:34 -!- aloril has quit (Read error: Connection reset by peer). 02:28:09 * pikhq is amused by how extensive the Japanese article on cats is. 02:35:29 -!- aloril has joined. 02:53:47 Sigh... IPv4 addresses are running out and the replacement is quite a Charlie Foxtrot... :-/ 02:54:45 Well, at least it has major "last mile" issues, and major routing issues. 03:03:06 last mile issues? 03:04:19 Both of them are not inherent faults in IPv6, but rather faults in meatware. 03:04:35 -!- Mathnerd314 has joined. 03:04:46 You fucking *idiots*, IPv4 is *basically over*. Get that through your fucking skulls. 03:06:14 Don't "get a transition plan in the coming years". Get a motherfucking time machine and be THROUGH YOUR TRANSITION as of last year. Or else you will HAVE NO INTERNET you fucking apes. 03:06:40 This has been cursing-filled rants from pikhq. 03:06:50 you fucking apes. 03:12:56 How bad can it be to live with not getting IP addresses for a few years? Hurt a few consumers, businesses, etc, not the end of the world, right/ 03:13:02 ? 03:18:39 Sgeo: Try "critically injure all businesses". 03:19:14 New ones? How often do current businesses need new IPs? 03:19:44 Uh, every time they get new computers that should be publicly accessible. 03:19:56 Imagine a world in which all Internet services cannot grow. 03:20:19 o.O 03:21:00 It's still temporary. Unless the economic impact causes irreversible damage to society or something 03:21:12 It's still pretty bad shit. 03:21:33 Because everyone is absolutely, positively *unprepared*. 03:21:53 This is going to sneak up and surprise everyone. 03:22:13 We should get the media involved somehow 03:22:20 "We can't add that new server." "Why not?" "The Internet is full." 03:23:19 I don't know if we could do something ourselves, or motivate the people tracking this sort of thing to speak to the media, but 03:23:41 Sgeo: The only way to get the media aware is for IANA to announce the end of allocations. 03:24:04 Which is when the shit hits the fan. 03:24:14 You don't think the media is interested in "In all liklihood, the Internet fills up around this time"? 03:24:55 I don't think you realise just how soon IPv4 depletion is. 03:25:19 Pessimistic estimates give us until March. 03:26:26 I'm sure the media would love to hear about it, at the very least. Put pressure on ISPs to start IPv6 adoption now, as opposed to waiting untii, say, March 03:26:27 Even if there was a gigantic push to switch to IPv6 rivaling the space race in effort, we couldn't switch in time. 03:26:37 pikhq, but surely, the sooner the better? 03:26:50 -!- augur has joined. 03:26:59 Less time of economic turmoil? 03:27:13 People still have their heads in the sand. 03:27:30 Again: The media might help fix that 03:27:43 The media? 03:28:05 Those morons are too focused on Justin Beiber to report on anything of merit. 03:29:00 I thought they love doom and gloom predictions... or make fun of them blah 03:29:34 They also have the intelligence of a gold fish. 03:29:52 Remember: Glenn Beck is taken seriously. 03:29:52 If IPv4 was a household object that can cause 1 in 6 billion people to die, then they'd care 03:30:00 Remember: Glenn Beck is taken seriously. 03:30:12 * Sgeo has never seen Glenn Beck 03:39:22 Take a completely crazy right-wing conspiracy theorist. 03:39:31 Now give him a radio program and a TV show. 03:39:35 That's Glenn Beck. 03:40:29 By "crazy" I don't mean "has some really bizarrely fascist opinions". I mean "is literally schizophrenic". 03:42:54 Why are people so ridiculously short-sighted w.r.t. what constitutes "life"? 03:43:33 The only reason we're even looking for carbon-rich planets is that we can't formulate a way that life could exist without carbon; this is almost assuredly because we're stupid, not because it's impossible. 03:44:05 So when we find something really exotic, we just expand our search from Space Earth to Space Almost-Earth. Yeehaw. 03:45:29 Gregor: To be fair, we're only searching for carbon-rich planets because it's literally the only selection criteria we have. 03:45:48 Aside from "happens to be sending us a treatise on classical mechanics". 03:45:55 Sadly, no planets meet *that* criteria. 03:46:15 Criterion. 03:46:57 Right now we're so limited, we should be more focused on "things we can get to" than "things that might have life by our narrow definition" 03:49:13 I note that the only planet that was "things that might have life by our narrow definition" so far is just a few light years away. 03:49:14 That is, it's "things we can get to" if you opt for a generation ship. 03:49:15 (which is, of course, the only way we're getting anywhere right now) 03:50:10 -!- augur has quit (Remote host closed the connection). 03:54:03 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep). 04:03:22 -!- augur has joined. 04:06:59 Pessimistic estimates of IANA depletion are *this year*. 04:09:18 And those "March" estimates are of optimistic category. 04:10:55 And one of those pessimistic (2010) estimates is by some (I don't recall which exactly) RIPE (the euro RIR) executive (who is expected to know this stuff pretty well)... 04:11:33 (but then, RIRs don't know much what each other is doing... Granted, there's NRO, but still...) 04:13:38 -!- augur has quit (Remote host closed the connection). 04:21:27 -!- poiuy_qwert has joined. 04:24:42 -!- augur has joined. 04:24:47 #esoteric: Home of those watching the IPv4 apocalypse helplessly 04:25:46 I got my Dinosaur Comics neckties! 8-D 04:26:18 #esoteric: Home of those who have not yet realized that humans have an impressive ability to adapt to imperfect situations, albeit reactively. 04:30:58 http://www.youtube.com/watch?v=_y36fG2Oba0 04:31:20 I think that's assuming that people actually got to IPv6 in a sensible way :/ 04:31:49 Oh, no it isn't 04:32:22 It incorrectly talks about TCP thugh 04:32:37 Er, wait no 04:33:14 -!- augur has quit (Remote host closed the connection). 04:42:33 If we couldn't respond sensibly to IPv4 depletion, despite having a perfect solution in hand for years 04:42:38 We knew the problem was solvable 04:42:47 What hope do we have for Global Warming? 04:42:51 * Sgeo depresses 05:02:55 -!- augur has joined. 05:03:11 -!- Mathnerd314 has quit (Ping timeout: 245 seconds). 05:14:45 Gregor: It's still depressing that humans only adapt in reaction to shit that's already *happened*, rather than being proäctive. 05:15:28 Oh, there are the "converging catastrophes" and Global Warming is just one of them... 05:15:43 pikhq: Hence "reactively" :P 05:15:59 (Pronounced "reek-tively") 05:16:47 And the worst is when predictors of disaster (that will later come to pass) are ridiculed for forecasting ridiculous things... 05:17:38 I'm genuinely surprised that we actually bothered to handle Y2K ahead of time. 05:18:09 And that took spelunking into some of the nastiest code bases out there. 05:20:07 Maybe the media helped a bit? =P 05:20:24 Perhaps because media took upon really drumming on it? 05:20:36 (Doom... Doom... Doom...) 05:21:21 Doom interests the media. I still want to get the media to pay attention to IPv4 depletion 05:22:12 Even if it doesn't help stop the crisis, at least the situation will be helped at least a little 05:22:29 It might go a bit faster, businesses might be more prepared to withstand it 05:24:43 IIRC, current growth rate of IPv6 is about 70% per year. Not enough, we need at least 700% per year to make it... :-) 05:25:42 Can we, #esoteric, speak to the media? 05:25:43 -!- Sgeo has left (?). 05:25:48 -!- Sgeo has joined. 05:25:55 Or pressure some group into doing so? 05:27:41 Best case would be avoiding RIR depletions entierely (because of insufficient demand to deplete RIRs)... 05:28:17 But that's incredibly optimistic... 05:29:12 IANA would still be depleted (essentially nothing can stop that now). 05:30:58 Remember, APNIC could justify allocation at any momemnt. And they might have to in just couple weeks... 05:33:35 And now there's talk about RIR depletion estimates being too optimistic by several months... 05:34:27 You know what? 05:34:44 Soonish, I'm going to write something, ask #esoteric to proof it, then send it somewhere 05:36:10 It gets terrifying when the most pessimistic model is the reality... 05:37:04 Okay, lagerholm depletion model was the more pessimistic one... But now it seems hopelessly optimistic... 05:37:18 What can businesses do to prepare themselves? 06:28:28 -!- Goosey has quit (Ping timeout: 250 seconds). 06:31:38 -!- sebbu2 has joined. 06:33:12 -!- sebbu has quit (Ping timeout: 276 seconds). 07:00:17 -!- perdito has changed nick to perdito|afk. 07:03:02 -!- kar8nga has joined. 07:22:53 -!- wareya has joined. 07:25:09 -!- wareya_ has quit (Ping timeout: 240 seconds). 07:50:41 -!- FireFly has joined. 07:54:46 -!- kar8nga has quit (Remote host closed the connection). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:16:05 -!- MigoMipo has joined. 08:19:47 -!- MigoMipo_ has joined. 08:20:19 -!- MigoMipo has quit (Ping timeout: 245 seconds). 08:49:51 -!- FireFly|n900 has quit (Ping timeout: 245 seconds). 09:10:23 -!- FireFly|n900 has joined. 09:35:14 -!- Sgeo has quit (Read error: Connection reset by peer). 09:53:20 -!- GreaseMonkey has quit (Quit: ilua). 10:13:09 -!- nopseudoidea has joined. 10:20:56 -!- evincar has joined. 10:21:03 Hey all. 10:21:28 -!- MigoMipo_ has quit (Read error: Connection reset by peer). 10:24:58 -!- evincar has quit (Client Quit). 10:32:14 -!- FireFly|n900 has quit (Ping timeout: 255 seconds). 10:32:55 -!- oerjan has joined. 10:33:01 -!- oerjan has quit (Client Quit). 10:33:24 -!- oerjan has joined. 10:33:39 /quit 10:33:49 -!- oerjan has quit (Remote host closed the connection). 10:38:03 -!- oerjan has joined. 10:38:03 -!- oerjan has quit (Client Quit). 10:39:15 -!- oerjan has joined. 10:39:43 æøå 10:40:54 !haskell "æ" 10:41:13 æ 10:42:29 -!- FireFly|n900 has joined. 10:42:32 i discovered that my locale setup that got irssi to work with utf8 last time actually works by having an illegal locale which is reset to C, so some more tweaking is needed :D 10:42:49 !help 10:42:50 help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help . 10:42:55 !haskell "æ" 10:42:58 "\195\166" 10:43:31 æ 10:43:36 !haskell putStrLn "\195" 10:43:39 10:43:47 good, seems it's still working 11:00:17 -!- nopseudoidea has quit (Quit: Quitte). 11:02:46 -!- perdito|afk has quit (Ping timeout: 245 seconds). 11:08:10 xkcd XD 11:17:00 oerjan, heh 11:20:29 oerjan, and I noticed the pirate theme of IWC is getting extremely absurd 11:20:34 more than average for iwc that is 11:24:26 today's square root of minus garfield is rather swedish 11:35:14 -!- perdito|afk has joined. 12:12:40 -!- sebbu has joined. 12:13:05 -!- sebbu2 has quit (Read error: Connection reset by peer). 12:40:22 -!- perdito|afk has quit (Quit: perdito|afk). 12:40:42 -!- perdito|afk has joined. 12:47:40 time to buy minecraft 12:47:40 -!- FireFly|n900 has quit (Ping timeout: 255 seconds). 12:49:10 I read that as Microsoft 12:49:14 Let's go buy Microsoft 12:53:00 why not 13:10:02 -!- FireFly|n900 has joined. 13:10:02 -!- nopseudoidea has joined. 13:10:02 -!- FireFly|n900 has quit (Changing host). 13:10:02 -!- FireFly|n900 has joined. 13:18:31 -!- perdito|afk has changed nick to perdito. 13:27:03 -!- Phantom_Hoover has joined. 13:29:19 -!- Sasha2 has joined. 13:30:58 -!- Sasha has quit (Ping timeout: 265 seconds). 13:33:38 -!- elliott_ has joined. 13:33:53 Gregor: gcc just ate up your least favourite language. 13:38:28 -!- elliott_ has quit (Ping timeout: 265 seconds). 13:46:43 Gregor, what's your least favourite language? 13:48:29 Presumably Go 13:50:50 -!- elliott_ has joined. 14:04:58 -!- elliott_ has changed nick to elliott. 14:05:01 -!- elliott has quit (Changing host). 14:05:01 -!- elliott has joined. 14:11:52 -!- nopseudoidea has quit (Quit: Quitte). 14:18:30 http://esolangs.org/wiki/Talk:INTERCAL#INTERCAL_is_not_Compiler_Language_With_No_Pronouncable_Acronym 14:20:55 ____ ___ __ ___ _ _ _____ 14:20:55 ___| / _ \ \ \ / / | | | / \|_ _| 14:20:55 \___ \| | | | \ \ /\ / /| |_| | / _ \ | | 14:20:55 ___) | |_| | \ V V / | _ |/ ___ \| | 14:20:55 |____/ \___/ \_/\_/ |_| |_/_/ \_\_| 14:21:44 wtf happened to the two first lines 14:22:20 oh duh the second line starts with / :D 14:23:28 do better next time 14:24:12 your second "O" in WHOOSH could be better too 14:24:17 ____ ___ __ ___ _ _ _____ 14:24:17 / ___| / _ \ \ \ / / | | | / \|_ _| 14:24:17 \___ \| | | | \ \ / /\ / /| |_| | / _ \ | | 14:24:17 ___) | |_| | \ V V / / | _ |/ ___ \| | 14:24:17 |____/ / \___/ \_/\_/ |_| |_/_/ \_\_| 14:24:24 GAH! 14:24:40 sed failure. oh missing the ^ :D 14:24:57 ____ ___ __ ___ _ _ _____ 14:24:57 / ___| / _ \ \ \ / / | | | / \|_ _| 14:24:57 \___ \| | | | \ \ /\ / /| |_| | / _ \ | | 14:24:57 ___) | |_| | \ V V / | _ |/ ___ \| | 14:24:57 |____/ \___/ \_/\_/ |_| |_/_/ \_\_| 14:25:29 you should have saved it for when it made sense to the conversation at hand 14:25:34 quintopia: it's just figlet generated 14:25:53 fix the figlet 14:27:57 the second O is just kerned with the S 14:28:27 yes 14:28:33 and it shouldn't be 14:28:38 because it makes it look bad 14:28:55 ____ ___ __ ___ _ _ _____ 14:28:55 / ___| / _ \ \ \ / / | | | / \|_ _| 14:28:55 \___ \| | | | \ \ /\ / /| |_| | / _ \ | | 14:28:55 ___) | |_| | \ V V / | _ |/ ___ \| | 14:28:55 |____/ \___/ \_/\_/ |_| |_/_/ \_\_| 14:29:47 i don't understand how i can read the sup-pixel message generator just fine, but i can't see the sub-pixels in your nick when you highlight me 14:31:09 because the subpixel message generator is ridiculously hyper-saturated on purpose... 14:31:10 duh 14:31:29 compare http://www.grc.com/image/cttech2.gif 14:31:45 ah yes 14:31:53 i can see the subpixels quite easily inn that message 14:32:18 say something in magenta 14:32:38 magenta delenda est 14:32:39 there's no colours in this channel. 14:32:52 oh right 14:33:06 but okay 14:33:07 -!- nopseudoidea has joined. 14:33:10 function feedthebear (enum[bear] whichone, enum[food] bearfood) 14:33:10 begin 14:33:10 bool fed;//if all goes well... 14:33:10 whichone[call] (); 14:33:10 try{ 14:33:11 whichone[eat] (bearfood); 14:33:13 throw (whichone[eat](armp));//armp is a global indicating 14:33:15 }//zookeeper's arm 14:33:17 14:33:19 return (fed=TRUE); 14:33:21 end; 14:33:23 (Am I part of the curse now too?) 14:33:35 what's a magenter? 14:34:18 zook the eeper 14:35:06 pikhq: please tell me why xorg is split into 3489573457839445 tarballs 14:35:42 i can see the subpixels a little bit in normal magenta text. i feel better. 14:37:02 aargh, not all of Magenta is on reocities 14:41:34 -!- FireFly has quit (Quit: swatted to death). 14:42:55 pikhq: Will you have me if I just package xorg as one gigantic package containing everything? 14:42:56 *hate 14:43:38 -!- FireFly has joined. 14:44:27 # Re-run the last command until a build succeeds. 14:44:30 that is so, so reassuring 14:45:45 "xserver ... requires ncurses" 14:46:54 -!- MigoMipo has joined. 14:59:20 -!- augur has quit (Remote host closed the connection). 14:59:43 -!- augur has joined. 15:04:21 -!- augur has quit (Ping timeout: 272 seconds). 15:09:45 -!- ais523 has joined. 15:09:46 -!- ais523 has quit (Changing host). 15:09:46 -!- ais523 has joined. 15:15:04 Gregor: http://codu.org/imgs/dinosaurComic.php?panels=0,1,5&comics=1544,911,527&strip i made a terrible 15:15:05 hi ais523 15:15:43 Gregor: http://codu.org/imgs/dinosaurComic.php?panels=0,1,5&comics=1544,911,1252&strip t-rex imagines the upcoming discussion, badly 15:18:49 -!- ais523 has quit (Read error: Connection reset by peer). 15:19:17 -!- ais523 has joined. 15:19:20 hi 15:19:35 ho 15:19:45 elliott: Because they decided to split it into multiple packages, and did it *far* too fine-grained. 15:20:04 pikhq: yeah and now i am discovering the joy of their build system 15:20:11 (seriously, a package for a *subdirectory* of headers‽) 15:20:20 pikhq: it depends on programs written in c++ 15:20:22 yaaaaaaay. 15:20:39 pikhq: anyway there's only going to be one single xorg package in Kitten because to hell with splitting this up 15:20:59 pikhq: but um this is kind of painful you should do the xorg package :P 15:21:18 oh no, it is disregard my cflags and -O2 instead of -Os, this is the sad 15:21:26 sad day 15:21:26 -!- sftp has joined. 15:21:31 and it may in fact be building git xorg instead of 7.5 15:21:33 which would be bad 15:24:12 elliott: Look at what Gentoo does for the xorg package for inspiration. 15:24:34 (should be fairly easy to grok; Portage runs on simple shell scripts.) 15:25:18 pikhq: So, um, I have a Dilemma. This patch: http://marc.info/?l=linux-kernel&m=128978361700898&w=2 is pretty much agreed by everyone to be on the order of, say, sliced bread in AWESOMENESS. There are videos showing before/afters where Linux is being compiled with -j64, 1080p video is playing, webpages are being scrolled and -- LIKE SOME KINDA MAGIC OS FROM THE FUTURE LIKE EVERY COMMERCIAL OS EVER -- everything just goes smoothly. (The before video 15:25:18 uh, less astonishing). Apparently -j128 is even more dramatic but makes for a bad demonstration because the "before" video is a static image of frozenness. 15:25:36 pikhq: BUT BUT BUT not only is this patch CFS-specific, but it uses cgroups! BFS explicitly does not have cgroups! 15:25:50 Thus a DILEMMA! Enhanced desktop performance OR-- enhanced desktop performance?? 15:25:54 ;____; 15:27:32 elliott: do you know what the patch does, specifically? 15:27:53 -!- sftp_ has joined. 15:27:58 -!- sftp has quit (Ping timeout: 255 seconds). 15:27:58 ais523: it's summarised in http://marc.info/?l=linux-kernel&m=128978361700898&w=2 15:28:04 it improves performance in the case where you run a lot of background processes in a terminal and do something interactive on the GUI or a different terminal 15:28:09 ais523: basically it automatically creates cgroups -- not very smartly at the moment, but -- 15:28:09 right 15:28:17 but "supposedly" it's going to be enhanced further 15:28:32 ais523: I suppose it does seem a bit niche, but -- I mean -- I do often get sluggishness when compiling stuff. 15:28:34 And that's rather irritating. 15:28:50 OTOH, it means using CFS, whereas BFS improves desktop performance in, like, every other case. 15:28:54 well, I compile at -j1 15:29:33 ais523: Mind you, I am going to be compiling stuff a *lot*, thanks to all the Kitten packages :) 15:29:42 But yeah, BFS is probably better overall. 15:29:59 hmm, according to Slashdot, there's now a mobile phone plan with a 21Mbps speed and a 5GB per month cap 15:30:12 conclusion: you can only use it for around half an hour per month 15:30:53 ha 15:31:09 -!- yorick has quit (Remote host closed the connection). 15:31:13 pikhq: Does such a thing as NON-modular Xorg still exist? 15:31:41 elliott: Wayland! 15:31:42 * ais523 runs 15:32:08 elliott: Not any more. 15:32:22 ais523: I'm pretty sure the only way to get X running on Wayland is to use Xorg :P 15:32:25 or something 15:32:28 pikhq: ;_; 15:32:40 pikhq: How old is the last non-modular version? How long will I be able to use it before it rots to death? :P 15:32:41 * pikhq should get coffee 15:33:23 elliott: 5 years. 15:33:29 (X11R6.9) 15:33:41 pikhq: i think that is totally practical and i should use it, don't you totally agree??? 15:33:53 :P 15:34:04 elliott: How do you feel about autoconfiguration? 15:34:28 pikhq: well since I don't have udev or HAL I don't think I can have that anyway 15:34:36 driver support is a rather bigger issue :P 15:34:39 Mdev? 15:35:14 Anyways, it should have 2D acceleration about as good as right now. 15:35:40 annoying Firefox feature I just figured out how to turn off: sending what you typed to Google if it isn't a URL 15:35:54 pikhq: mdev is vaguely compelling, but it's still udev. But you know what? devfs is back in the kernel. Seriously. 15:36:10 pikhq: They snuck it in -- newly-implemented -- under the pretence of being a temporary devfs for initramfses before udev is started. 15:36:18 pikhq: It's called devtmpfs, it runs on a tmpfs, and it's fully-featured. 15:36:20 -!- Sasha has joined. 15:36:20 -!- sftp has joined. 15:36:36 -!- sftp_ has quit (Ping timeout: 276 seconds). 15:36:45 -!- Sasha2 has quit (Read error: Connection reset by peer). 15:37:21 -!- augur has joined. 15:37:53 pikhq: ...so yeah, I was pretty much just going to use that. 15:38:39 wrt mdev, there's also http://code.google.com/p/hotplug2/ 15:39:13 pikhq: All these things aren't very useful when you don't have modules in your kernel, of course. 15:39:30 So devfs is A Bad Thing? 15:39:55 Phantom_Hoover: No, devfs is A Good Thing. 15:40:10 Is udev A Bad Thing, then? 15:40:37 It had some implementation problems, and the kernel idiots decided that rather integrating a proposed new implementation, they should add pointless flexibility (you can make /dev/sda1 be called /dev/frobni1cator instead! USEFUL!) and move everything to userspace (because Linux is a microkernel amirite guyz?). 15:40:46 udev isn't necessarily terrible. It has some valid usecases. 15:40:48 But it's really overblown. 15:45:45 elliott: What was the 08:33 < elliott_> Gregor: gcc just ate up your least favourite language. 15:45:50 coppro: Go. 15:45:54 elliott: ate up? 15:45:55 coppro: gccgo is being merged into gcc. 15:46:00 elliott: oh 15:46:01 :( 15:46:14 coppro: Dude, it also has Fortran and Objective-C. 15:46:17 It's not exactly an endorsement. 15:46:19 And Ada. 15:46:29 And Java 15:46:32 And C++ 15:46:33 And C :P 15:46:59 Anyway Go is a perfectly competent language in a certain niche that EVERYONE IS DETERMINED TO PRETEND IT DOES NOT EXIST IN. 15:47:05 And with rather bad marketing materials. 15:47:36 Nobody uses gccgo anyway, the Plan 9-style compilers are far better :P 15:47:37 elliott: what's this about a niche? 15:47:59 coppro: systems server programming. nothing else. 15:48:06 more or less 15:51:04 elliott: *Issue 9 15:51:16 ais523: no, that issue was the stupidest thing ever 15:51:33 indeed 15:51:45 can't you call it Issue 9 just because the name "Go" is stupid. though? 15:51:48 s/./,/ 15:51:57 umm, s/,/c/ 15:52:00 s/\./,/ 15:52:00 ais523: (1) yes, you can totally own the name "go", that's not one of the most common words ever; (2) your language is called "Go!" on all your publications, with an exclamation mark, so you can't even claim identicality 15:52:13 (3) lol internet bandwagon "because it was done in google 20% time it's google's projects now let's lynch evil google" 15:52:16 elliott: I don't think there was trademark infringement 15:52:26 ais523: how's the name Go stupid, it's just... not an interesting name 15:52:43 too easily confused with the typical word without context 15:52:47 -!- Gregor has set topic: WE ARE SOMEWHAT SPARTA | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 15:53:22 ais523: Even WITH context; it's too general of a word. 15:54:06 Gregor: isn't it THIS IS SOMEWHAT SPARTA 15:54:06 s/go/face/ 15:54:18 s/word/face/ 15:54:23 Your face is way too general. 15:54:41 elliott: Yes, but WE are somewhat sparta. 15:54:50 elliott: Also, no. 15:54:52 Your face is somewhat sparta. 15:54:54 elliott: It's "I AM SOMEWHAT SPARTA" 15:55:02 Ah. 15:57:01 pikhq: ouch, i just realised something about busybox 15:57:19 Somebody needs to invent descenders; like suspenders, but worn under your pants and keeps your shirt perfectly tucked. 15:57:40 No they don't. 15:59:00 Gregor: I love that concept 15:59:59 I'm not QUITE sure how they'd work just yet, but suffice it to say I'm tired of having to resort to the Picard Maneuver :P 16:00:34 -!- ais523 has quit (Remote host closed the connection). 16:00:45 Picard... Maneuver. 16:01:20 elliott: ? 16:01:35 I'm not QUITE sure how they'd work just yet, but suffice it to say I'm tired of having to resort to the Picard Maneuver :P 16:02:57 But, yeah, udev's only failing is that it's a bit overkill. 16:03:14 Which compared to some of the other odd shit done with /dev, makes it genuinely nice. :P 16:03:41 (devfs's organization scheme is, well, WTF.) 16:04:14 pikhq: Yeah, but fuck them for not accepting mini-devfs before udev came along. 16:04:20 elliott: In TNG, Patrick Stewart adjusted his shirt whenever he stood up; that adjusting is the Picard Maneuver :P 16:04:45 Gregor: So is http://memory-alpha.org/wiki/Picard_Maneuver the spaceship analogue to adjusting your shirt? 16:04:49 Say yes. 16:04:54 elliott: Let's go with yes. 16:04:58 And oh god why hasn't Memory Alpha switched from Wikia. 16:05:01 very fast adjustment 16:05:01 elliott: However, that name is actually just the source of the JOKE :P 16:05:07 Whyyyyyyyyyyyyyyyyy. 16:05:13 Gregor: THERE IS NO JOKE ONLY FACTUALS 16:05:24 "However, because the release of Star Trek took place nearly simultaneously across the world, the community has taken the decision to lock the English edition of Memory Alpha to editing from 2000 UTC on May 6th until 0400 UTC on May 9th, in order to allow the users of Memory Alpha time to see the film without having to worry about being spoiled before it was (technically) released." 16:06:30 This is why TOS sucked: "...that the original version of the script for Star Trek: The Next Generation's "Conspiracy" did not feature alien parasites? The 'conspiracy' in question was simply a military coup within Starfleet, but Gene Roddenberry vehemently opposed such an idea, since he believed Starfleet would never stoop to such methods; thus the alien angle was introduced at his insistence." 16:06:45 STARFLEET IS A PARAGON OF PERFECT EXCELLENCY IN OUR FUTURE UTOPIA WHERE NOTHING EVER GOES WRONG EVER 16:07:33 pikhq: Some parts of BusyBox require suid, like su, passwd, ping, traceroute. Apparently you're meant to make BUSYBOX ITSELF suid. That includes "ls" and "mv". 16:07:40 It says it drops permissions if it doesn't need them, but uh....... 16:08:04 Selected by: LOGIN || PASSWD || SU || VLOCK || IPCRM || IPCS && PLATFORM_LINUX || CRONTAB 16:08:12 TODO: Disable those, disable suid/sgid handling, build separate "busybox-suid". 16:10:37 │ │(1024) Maximum length of input (NEW) │ │ 16:10:38 lol 16:15:58 Gregor, soo, is Go your most hated language? 16:17:05 -!- nopseudoidea has quit (Quit: Quitte). 16:18:45 pikhq: BusyBox doesn't compile with dietlibc, using pcc or gcc. For fuck's sake. 16:39:44 http://abstrusegoose.com/323 16:41:22 lawl 16:45:14 Sgeo will still be useful in the 24th century. 16:45:20 What a terrifying thought. 16:52:47 -!- nopseudoidea has joined. 17:07:27 elliott, when will I get my specs??? 17:07:37 Phantom_Hoover: wut? oh right 17:07:46 Phantom_Hoover: uh, what was your budget again :P 17:07:48 Punctuation is a poor replacement for the full range of intonation. 17:07:56 also i refuse to do it unless the first os you install on it is kitten 17:08:00 elliott, £800 was the absolute upper bound. 17:08:24 OK, I'll be the flagship Kitten user. 17:09:38 Phantom_Hoover: You crazy. 17:09:54 elliott, of course! 17:10:04 Phantom_Hoover: (Note that the installation procedure involves an Ubuntu CD and a lot of manual installation :P) 17:10:23 elliott, can I install Debian first? 17:10:41 Phantom_Hoover: I said first OS! My demands are NON-NEGOTIABLE except under EXTREME circumstances. 17:10:52 Phantom_Hoover: (If you only use Debian to install Kitten that is okay.) 17:10:57 OK. 17:11:02 I shall do that. 17:11:29 Phantom_Hoover: I don't actually intend to force you to use Kitten :P 17:11:41 elliott, suuuuuure. 17:12:18 You know, the suffix "-matic" is underused in hardware names. 17:13:03 It would give everything a nice Wallace and Gromit-y feel. 17:13:13 crunchomatic 17:13:40 Processomatic. 17:13:49 Memory-o-mat. 17:15:12 Diskifier. 17:17:05 "Added /kill command. Does 1000 points damage to the player". Well, that's certainly a novel way to solve the lack of /home. 17:17:26 "The join server page now remembers the port as well as the ip", so it's not all bad. 17:18:35 fizzie: Yeah, he said he'd add that but seriously fuck that. 17:18:41 fizzie: Got lost? HAHA FUCK YOU YOU GET TO LOSE ALL YOUR ITEMS 17:19:11 "Fixed a bug where joining a server on a specific port caused the client to forget all keybindings". This has to be among the most random things ever. 17:19:41 fizzie: I think Notch actively tries to intertwine EVERY SINGLE CODE PATH. 17:21:11 -!- nopseudoidea has quit (Quit: Quitte). 17:24:19 -!- Zuu has quit (Ping timeout: 272 seconds). 17:24:58 -!- Zuu has joined. 17:25:54 Phantom_Hoover: Athlon II X4, quad core, 3 GHz, £74.78 y/n 17:26:22 elliott, I'm not employing you to give me decisions to make! 17:26:36 Phantom_Hoover: Oh yes you are! 17:26:58 elliott, I can't make decisions! I'm the president! 17:27:02 * oerjan vehemently agrees with Phantom_Hoover on principle 17:27:12 20:21:42 /home/elliott/kitten/stage3/include/dietref.h:-21: error: __PCC__ redefined 17:27:12 20:21:43 previous define: x.c:-21 17:27:16 having this problem again :DDD 17:28:42 elliott, more serious reason: for all I know, an Athlon II [... 17:28:51 *] could be a block of cheese. 17:29:10 Phantom_Hoover: It is. 17:29:37 elliott, Is it a good block of cheese for processing? 17:30:23 Yes. 17:30:40 Then it can go on the list. 17:32:24 elliott, also, what kind of cheese? 17:32:53 Phantom_Hoover: Athlon. 17:33:07 Not one I've heard of. 17:33:22 Phantom_Hoover: By the way, I'm not going to help you assemble this thing; don't forget the jumpers and if you fry stuff, you get to buy it again. 17:33:57 Yes, this pushes it into thought experiment, but I don't really care. 17:34:12 -!- oerjan has quit (Quit: leaving). 17:34:36 Phantom_Hoover: Eh? 17:34:50 elliott, CRAZY, REMEMBER 17:35:09 Phantom_Hoover: I am experiencing rapidly increasing doubts that I am using my time in a worthwhile manner :P 17:35:18 SO AM I 17:37:28 PERHAPS THIS IDEA WAS NOT THE BEST 17:39:27 That is because the best idea is objectively making a ladder to the moon out of sausages. 17:42:17 elliott, hm what are you doing then? 17:42:24 (kitten or mc?) 17:43:03 Vorpal: Neither! 17:43:08 elliott, oh? 17:43:31 elliott, so what is it that you doubt is a worthwhile use of your time? 17:43:43 Long story :P 17:43:49 Hey, renicing Xorg to -8 is great. 17:43:58 elliott, uh uh 17:44:08 It totally is. 17:44:29 elliott, your system must be very heavily loaded with something else then? 17:44:42 I just tried this -j64 thing, since it's so popular. :p 17:44:59 elliott, ah. well that sounds silly 17:45:11 Absolutely. 17:45:32 elliott, also depending on what compiler you use: it will probably be swap trashing 17:45:38 in which case nice -8 won't help that much 17:46:02 It wasn't. 17:46:10 I have 4 GiB of RAM and BusyBox probably doesn't require *that* much RAM to build. 17:46:51 -!- oerjan has joined. 17:51:32 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds). 17:58:11 hah, this miscompiles on gcc on lucid at -O2 or higher. Works fine on later gcc versions. 17:58:35 and yes, I need -O2 or higher, the difference is about 3x speedup 17:58:36 Vorpal: define this 17:58:46 Vorpal: also, tried -Os? :p 17:58:47 elliott, cython program 17:58:55 elliott, and no I haven't, willl 17:58:58 will* 17:59:25 elliott, -Os also broken 17:59:28 Vorpal: (tried statically linking with dietlibc at -Os? that'll be even smaller) 17:59:32 I meant as far as speed goes 17:59:38 -!- ais523 has joined. 17:59:38 elliott, doesn't help since it miscompiles :P 17:59:44 so use a newer gcc 17:59:45 :p 17:59:52 elliott, also I go for speed here, not size 18:00:04 Vorpal: -Os is often fastest 18:00:06 due to fitting in cache better 18:00:19 what ais523 said 18:00:24 not always, though 18:00:25 ais523, I tried that now. But this is numerical-intensive and seems to benefit from loop unrolling 18:00:34 Vorpal: that's also why i said dietlibc; it doesn't help if glibc is huge 18:00:35 erm 18:00:37 Vorpal: that's also why i said dietlibc; it doesn't help if your libc is huge 18:01:09 elliott, also it is long running, so loading time for libc is not important, if large parts are unused: so what 18:01:30 Vorpal: i don't think you understand cache 18:01:37 elliott, anyway -O3 is about 2x faster than -Os 18:01:40 also, *individual routines* in glibc are huge 18:01:41 elliott, I just checked 18:01:42 Vorpal: on glibc, perhaps. 18:01:53 Currently defined functions: 18:01:54 passwd, ping, ping6, su 18:01:55 smallest busybox evar 18:02:37 elliott, also python doesn't support static linking. I checked. At least if you use tkinter. 18:02:47 you use tkinter? 18:02:56 elliott, in one mode yes 18:02:59 elliott, since it is a game AI 18:03:15 I need to visualise that. 18:03:18 Vorpal: another reason you can't use kitten, then! 18:03:42 elliott, in fact it doesn't work if you use any sort of extension module in C 18:04:01 elliott, you are restricted to core python + pure python extensions 18:04:04 have fun 18:04:09 no numpy I think for example 18:04:43 -!- Phantom_Hoover has joined. 18:04:43 Vorpal: um, or i could just build those in. 18:04:53 duh 18:05:07 elliott, and do you know what I had to add to fix unresolved symbols when linking against libpython2.7.a? 18:05:35 no, i'm not psychic 18:05:44 -rwxr-xr-x 1 elliott elliott 1.6M Dec 3 17:54 busybox 18:05:44 -rwxr-xr-x 1 elliott elliott 770K Dec 3 18:03 busybox-suid 18:05:48 now if only they built against non-gcc/glibc 18:05:52 well, also /uClibc 18:05:59 elliott, -lm -lz -lssl -lcrypto -ldl (!) -lutil -lpthreads 18:06:11 Vorpal: i can patch, you know. 18:06:25 elliott, sure. But it will be a lot of work 18:06:30 not really 18:06:34 most things aren't as stupid as python 18:06:46 elliott, well for python, perl and other similar languages 18:06:58 true, not for most C programs 18:07:00 and ruby, say 18:07:01 ok, 3 programs 18:07:04 think i can handle that. 18:07:08 elliott, yeah probably ruby too 18:07:29 what is the goal of kitten again? 18:08:00 elliott, lua is probably somewhat "saner" (for some values of "saner") due to it's more limited scope 18:08:13 quintopia: to not irritate the fuck out of me 18:08:16 that's about it 18:08:35 elliott: and you're doing that by avoiding glibc? 18:08:47 erlang I know can load native modules, and it is used for some stuff in the standard distribution, but I don't think it is quite as prolific as with python and so on 18:08:56 hm 18:08:59 quintopia: avoiding gcc, glibc, dynamic linking, gnu coreutils 18:09:11 and a few other things too, like initramfs. 18:09:15 and kernel modules. 18:09:16 and /usr. 18:09:34 elliott, you know that the kernel uses an initramfs always? But the default one doesn't do very much 18:09:49 it has one that basically does next to nothing by default built in iirc 18:09:56 Vorpal: well, you can disable the initramfs code outright 18:10:01 and it tries the olde-style "let's find a root partition!" boot. 18:10:08 hm 18:10:19 elliott: is kitten somewhat sparta? 18:10:41 quintopia: it is so sparta that anyone who types sparta into it gets instantly decapitated. 18:12:59 elliott: i am convinced. it is clearly the best distro ever invented. 18:13:35 also, everyone who bugs me about it gets a fake package server filled with rootkits 18:13:44 be afraid. be very afraid 18:14:01 quintopia: to not irritate the fuck out of me <-- i sense someone fighting windmills... 18:14:43 oerjan: hey, on the off-chance that they are giants... 18:15:00 oerjan++ 18:15:12 elliott, any good at reversi? 18:15:35 ah well, in elliott's world there are far more giants than actual windmills. better to just destroy them all than waste time analyzing. 18:15:41 Vorpal: no good at it, but i like it 18:16:10 quintopia: do you object to someone making their own fortress without a single windmill in it if they like it better? 18:16:19 i do not 18:16:22 elliott, ah. Could you beet a greedy AI (one that just checks score after one move and goes for the best) 18:16:25 beat* 18:16:47 especially if the fortress contains a bottomless pit 18:16:50 at least i'm in good company, what with the plan 9 team decrying the same things, and among their membership are the people who created Unix... 18:16:58 and is surrounded by barbed wire and magical curses 18:16:59 Vorpal: no, but I can sure as hell try and fail to 18:17:12 quintopia: actually it's 128x128x128 and made out of glass. 18:17:22 LIKE MY HEART 18:17:24 ah yes 18:17:29 elliott, hm, but it is trivial to beat that, just think one move ahead and make sure it don't get corners. 18:17:36 i will tunnel into your glass heart 18:17:42 and fill it with water 18:17:43 then you have a decent chance of beating such an AI 18:17:45 mwahahahaha 18:17:47 Vorpal: i have been beaten by a moron playing for the first time. 18:17:51 elliott, heh 18:18:25 elliott: try the positional heuristic. i hear it's surprisingly good for how simple it is. 18:18:58 Vorpal: i'm lost in the north! 18:19:09 elliott, okay. So an alpha-beta-pruning with corner-favouring heuristics with a ply depth of 7 you wouldn't manage to beat I presume? Oh and it also uses number of possible moves in the heuristics. This seems to help quite a bit. 18:20:00 note: ply = 7 needs cython. With pure python you are stuck at ply = 4 or so 18:20:23 and then add on a neural-net-based action-state heuristic learned by playing the AI against itself 150,000 times and you've got a real winner :P 18:20:36 quintopia, that would be cool 18:20:51 quintopia, but I think it is outside the scope of the assignment I wrote this for :P 18:21:05 Vorpal: it beats the positional heuristic 76% of the time! 18:21:14 and that's at 1-ply! 18:22:11 quintopia, someone made such an AI? 18:22:12 hm 18:22:28 quintopia, and I wonder how large the ANN is 18:22:42 (and how long it takes to evaluate) 18:23:44 Vorpal: 3 layers. the input layer is large enough to accomodate a board and a set of possible actions, and the output is a real value indicating confidence that that is the correct move. one hidden layer. 18:24:12 Reversi/othello is a perennial... well, maybe not quite a favourite, but at least a recurring topic on the AI course. 18:24:25 so, once you've trained it (which would take a very long time since we're using boosting with straight victory-condition-backpropagation) it's essentially instantaneous. 18:25:20 fizzie: my school does a new variation on Isolation every time the course is taught. they make up a new one each year so you can't cheat :P 18:25:41 and it's always in Lisp. the proper AI language. 18:27:00 We used to have a Scheme-based framework for the "if you don't have your own topic" game, for which there is also a tournament between the participants' programs. 18:27:39 yeah that's what isolation was for. mine got second place in the tournament. 18:27:58 Sadly it's Java -- well, JVM, anyway -- now, due to all the complaints after our introduction-to-programming courses switched from Scheme to Java. 18:28:12 lame 18:29:30 The Java version lets the participants do quite a lot more computation, though. (The Scheme one was built on top of the SICP metacircular interpreter for instruction-limits and sandboxing.) 18:30:11 and it's always in Lisp. the proper AI language. 18:30:19 lisp was never designed for ai and its association with ai is largely accidental 18:30:32 but real 18:30:46 perhaps, but largely baseless. 18:30:48 Reversi/othello is a perennial... well, maybe not quite a favourite, but at least a recurring topic on the AI course. <- yeah it is easier to work on than chess but not as trivial as tic-tac-toe 18:31:05 lisp-likes (and other functional languages i suppose) have some nice properties for AI implementation 18:32:29 Chess is an even more frequent topic, I believe. Of course there's the code-stealing-from-the-webs problem, but on the other hand we don't so much care about the implementations (it's not a programming course), we just grade the reports. 18:33:00 quintopia, "Isolation"? 18:34:21 fizzie, at least python is somewhat less painful than java 18:34:29 quintopia: lisp was rarely used functionally in ai 18:35:17 elliott: i used it functionally. what's wrong with other people? 18:35:29 quintopia: you're talking about people in the 50s, 60s, 70s here 18:35:32 LABELS was very common. 18:35:42 elliott: is there a language that doesn't suck but compiles to run as fast as C or fortran? 18:35:43 i doubt you would have been significantly more "enlightened" than them at the time 18:35:48 quintopia: um, haskell? 18:35:49 Vorpal: Isn't there some sort of Jython? We allow any JVM languages (though we only support Java), after all. 18:36:04 Yes, there's Jython. 18:37:27 Our competition runs on http://www.niksula.hut.fi/~svirpioj/hierarkia/ partly due to the moderately higher-than-chess branching factor, partly because it's so unknown. 18:37:42 fizzie, hm 18:38:14 fizzie, is that the usual one you show each year? 18:38:17 Not many have done !Java; I think two in the three or so years the Java framework's been there. 18:38:24 Yes, the same. 18:38:41 fizzie, also no Swedish version? Strange for .fi 18:38:53 Probably hasn't been requested 18:38:56 ah 18:39:03 They're legally obligated to provide one if somebody does request it 18:39:05 Vorpal: http://boardgamegeek.com/boardgame/1875/isolation this is the original 18:39:11 Deewiant, ah I see. 18:39:23 We're not that serious about the whole "second official language" business. :p 18:39:57 If you want, I can cause trouble by demanding it in Swedish 18:40:04 quintopia, that looks like it has a high branching factor 18:40:28 Although I'm not sure if that implies that I want everything in Swedish, which might screw me over in the exam 18:40:34 Deewiant, well, I don't see the point of doing that 18:40:39 Deewiant: I'm not sure whose problem it would become. Possible the responsible teacher. 18:40:57 Who'd delegate it to you, presumably 18:41:13 Vorpal: it's basically a solved game in its original form. probably second player win. branching factor is at most 8. 18:41:14 fizzie, what is your role in that course btw? 18:41:25 quintopia, oh? No worse. Hm 18:41:35 Do we even guarantee Swedish on all courses? I don't really think so. 18:42:27 I think you're supposed to, but nobody really cares 18:42:52 Vorpal: but the tournament gives each player a limited total time for all moves combined, so there's still not enough time for more than five or six plies on your longest turns. 18:43:05 quintopia, hm reversi has something like 10 as the branching factor right? 18:43:20 max or average? 18:43:24 quintopia, average 18:43:35 quintopia, max must be quite a bit higher than that 18:43:36 I think my course-title is "course assistant"; I basically run the tournament and grade the programming assignments (both tournament-participating and custom-topics). 18:44:15 i don't know for sure, but i would guess it's somewhere in the 4-8 range based on the games i've played. 18:45:03 hm I wonder if memoising would help for reversi. Could speed up the computation at the next turn if it turns out we were right. And possibly during the same turn if we get the same board state down multiple paths. I guess I'll have to test. 18:45:20 Vorpal: the "queen motion" version of isolation has a huge branching factor though. like...more than 10 on average i think. 18:45:41 quintopia, how does queen motion apply to that game? 18:46:18 oh wait 18:46:22 the standard isolation uses king motion: move to an adjacent square. queen motion allows you to move as far as you want along a straight unobstructed path. 18:46:34 you don't refer to the "fit queens on a board" problem 18:46:41 now it makes sense 18:46:53 -!- myndzi has quit (Read error: Connection reset by peer). 18:47:23 -!- myndzi has joined. 18:47:48 Hierarchy has on average somewhere around 50 valid moves, based on tournament statistics. 18:49:12 ah 18:50:11 niiiice 18:50:21 what is Go's branching factor? 18:51:05 quintopia, more than chess iirc 18:51:06 A lot more, I think. 18:51:13 indeed 18:51:30 hm how painful would a multi-core alpha-beta pruning algorithm be? 18:51:39 presumably you could just split it at the top node 18:51:40 -!- benuphoenix has joined. 18:51:42 hi 18:52:01 and to n child node at the same time (n being the number of CPU cores) 18:52:22 i accidently ordered something online and want to talk about it 18:52:32 http://www.amazon.com/Serve-Man-Cookbook-People/dp/1880448823 18:52:45 trying to cancel the order 18:53:00 are you sure you are in the right channel? 18:53:22 is this #complain 18:53:24 -!- Vorpal has set topic: WE ARE SOMEWHAT SPARTA no| http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 18:53:27 Arimaa is said to have a branching factor of 17281 on average, but I guess that was one of their deign goals. 18:53:27 err 18:53:30 -!- Vorpal has set topic: WE ARE SOMEWHAT SPARTA | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 18:53:33 no it isn't :P 18:53:35 sorry 18:53:49 fizzie, arimaa? never heard of that one 18:54:08 fizzie, but I guess 2 ply is max there 18:54:12 or even 1 ply 18:54:14 Uh, it's been talked on this channel several times. 18:54:21 Due to the patentedness. 18:54:27 And weirdo license. 18:55:34 hm 18:56:34 i'm trying to figure out the speed equations for starburst. do you know where i should go? 18:58:23 -!- benuphoenix has quit (Quit: leaving). 19:03:11 -!- cheater99 has quit (Ping timeout: 245 seconds). 19:10:36 -!- Phantom_Hoover has set topic: WE ARE SOMEWHAT SPARTA AND SOMEWHAT ATHENS | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 19:10:48 that's weird, i thought i'd seen the nick benuphoenix here before 19:12:00 you have 19:12:04 he's a regular offtopicker 19:12:16 oh 19:13:05 pikhq: stop me from writing my own coreutils 19:13:53 i guess he'll just have to keep the book then. which means, of course, he'll have to try out the recipes. 19:14:00 * oerjan cackles evilly 19:16:07 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds). 19:16:18 -!- kar8nga has joined. 19:16:33 argv is guaranteed to be null-terminated, right? 19:17:28 argv[argc] is guaranteed to be a null pointer 19:17:54 Right. 19:18:08 -!- cheater99 has joined. 19:18:11 Deewiant: And saying argv[argc] = ...; would be an abomination, yes? ;) 19:18:15 Oh god I'm horrible. 19:18:18 No, elliott, don't do that. 19:18:32 Why would you? :-P 19:18:39 Deewiant: To implement yes(1)! 19:18:48 argv[argc] || argv[argc] = "y"; 19:18:52 Erm. 19:18:54 *argv[1] 19:20:02 That or const char *s = argc ? argv[1] : "y" 19:20:12 Deewiant: That's whole BYTES more. 19:20:21 How many? 19:20:46 One woulf think it just ends up in a register. 19:20:58 *argv++||*argv="y"; 19:20:58 char*s=argc?argv[1]:"y"; 19:20:59 SEE??? 19:21:08 A whole FIVE bytes shorter!!!!!!!!!! 19:21:11 elliott: You have to use it later on 19:21:22 *argv versus s 19:21:22 -!- evincar has joined. 19:21:32 Deewiant: Well then, let's GOLF. 19:21:36 :-P 19:21:39 (You must use write(2), not stdio.) 19:21:56 It doesn't have to be called argv, at least. 19:22:01 Hay guaiẓ. 19:22:07 z with a dot 19:22:23 I fail at typing. 19:22:25 Deewiant: int main(int c,char**v){*v++||*v="y";while(write(1,v,strlen(v))+write(1,"\n",1));return 0;} 19:22:27 Deewiant: Bring it on. 19:22:47 Deewiant: BTW, you don't need "char*s", you can reuse v. 19:23:00 (Assuming that sizeof(char *) == sizeof(char **).) 19:23:27 *v++||*v="y" 19:23:27 v=c?v[1]:"y"; 19:23:29 Same length :P 19:23:59 elliott: char* and char** are guaranteed to be the same length because they're both pointers to POD, I think. 19:24:01 I'd think the *v++ part there is always true, since it tests for argv[0]. Maybe *++v? 19:24:13 fizzie: Right, yes, that. 19:24:14 Same length. 19:24:15 main(c,v){while(1)write(1,c>1?v[1]:"y",c>1?strlen(v):1),write(1,"\n",1);} 19:24:24 And pointers to data certainly don't need to have same size. 19:24:28 Deewiant: Not valid C89. 19:24:46 I think implicit int arguments are OK in C89 though. 19:24:46 main(c,v)char**v;{while(1)write(1,c>1?v[1]:"y",c>1?strlen(v):1),write(1,"\n",1);} 19:24:54 You forgot int at the start. 19:24:57 No need 19:24:58 That's not implicit in C89. 19:25:02 No, no need only in C99. 19:25:02 You sure? 19:25:05 Yes. 19:25:08 100% 19:25:15 You also need return 0 at the end, of course. 19:25:16 I'll check anyway 19:25:22 return 0 is incorrect, you know 19:25:26 write can fail 19:25:37 At least on some Crays sizeof(char *) > sizeof(int *). 19:25:38 Deewiant: Who says that programs have to return error exit status on failure? 19:25:43 I do :-P 19:25:48 Deewiant: Anyway, yours is wrong. You have to stop writing when the writes return 0. 19:25:58 -!- EgoBot has quit (Ping timeout: 240 seconds). 19:26:00 Deewiant: yes has to stop writing when it can't write no' mo', and exit successfully. 19:26:05 Oh, of course 19:26:12 -!- EgoBot has joined. 19:26:14 So, in fact, yes should always return 0. 19:27:14 Deewiant: int main(c,v)char**v;{v=c>1?v[1]:"y";while(write(1,v,strlen(v))+write(1,"\n",1));return 0;} 19:27:17 Good luck beating that :P 19:27:29 int main(c,char**v){v=c>1?v[1]:"y";while(write(1,v,strlen(v))+write(1,"\n",1));return 0;} 19:27:34 Two bytes, I think 19:27:40 Is "(c,char**v)" kosher? 19:27:43 Not sure 19:27:58 Darn, I almost considered exit(0) but that leaves main trailing off the end 19:28:01 Is that valid C89? 19:28:03 v= isn't 19:28:08 Why not? 19:28:20 Anyhow, "for(;;);" is one char shorter than "while(1);". 19:28:21 What about c=? :P 19:28:24 With char**v you can't assign char* to it 19:28:28 fizzie: We've abandoned while(1). 19:28:35 Deewiant: Can you assign (char *) to int? 19:28:41 I see. I was up in the backscroll. 19:28:46 If so, 19:28:47 int main(c,char**v){c=c>1?v[1]:"y";while(write(1,c,strlen(c))+write(1,"\n",1));return 0;} 19:28:56 I'm not sure 19:29:06 You also have to have int -> char* for that to work 19:29:09 !c int main(c,char**v){v=c>1?v[1]:"y";while(write(1,v,strlen(v))+write(1,"\n",1));return 0;} 19:29:10 Does not compile. 19:29:16 Useful error, that 19:29:17 Not portably, int might not be big enough. 19:29:20 !c int main(int c,char**v){v=c>1?v[1]:"y";while(write(1,v,strlen(v))+write(1,"\n",1));return 0;} 19:29:24 In any case it needs a cast. 19:29:28 fizzie: write(2) isn't portable anyway 19:29:43 Deewiant: Probably running, but you'd only get the response when it (doesn't) finish or in 30 seconds :P 19:29:56 Yes, but stuffing pointers into ints is less portable than write(2). 19:30:01 Deewiant: int main(c,char**v){return execv("yes",v);} 19:30:02 Deewiant: I win. 19:30:03 Arguable 19:30:11 elliott: Even less portable :-P 19:30:21 Deewiant: It's portable to all POSIX systems. :p 19:30:26 Why are we not omitting "int" before "main"? 19:30:29 Deewiant: Good enough for cfunge! 19:30:32 And I'm more sure that c,char**v isn't portable 19:30:33 evincar: Not valid C89, only C99. 19:30:45 elliott: cfunge isn't portable, it doesn't even run on Windows :-P 19:30:50 elliott: I thought implicit int return type was older. 19:30:56 It is older 19:31:20 Well, I'm getting owned in this conversation. 19:31:28 Why are we golfing a "yes" implementation, anyway? 19:31:30 elliott: Implicit int is invalid C99 19:32:06 Deewiant: Not for main 19:32:10 Deewiant: Main is a special case. 19:32:12 (Not joking.) 19:32:20 evincar: BECAUSE 19:32:20 Where does it say that 19:32:35 -!- Phantom_Hoover has joined. 19:32:42 elliott: Implicit return 0 is a special case, you sure you're not confusing it with that? 19:32:49 Deewiant: Oh, seemingly. 19:33:15 Deewiant: Anywho, int main(c,v)char**v;{return execv("yes",v);} is both POSIXly correct and perfect :P 19:33:30 So I need a name for my most recent language design. 19:34:05 I was thinking something to do with light, like Enlight or similar, but I'm uncertain. My roommate suggested Spectrum. 19:34:06 !c printf("Forbleborble") 19:34:26 Gee, it was so responsive five minutes ago >_> 19:34:28 elliott: Is it guaranteed in POSIX that that stuff is in PATH or just that it exists? 19:34:33 Forbleborble 19:35:35 Deewiant: Good point. 19:35:51 int main(c,v)char**v;{return execvp("/usr/bin/yes",v);} 19:35:55 I think the locations are specified... maybe. 19:36:02 evincar: ZX 19:36:13 elliott: Haw haw haw. 19:36:33 YOU MOCK ME 19:36:41 Alternatively, "Spectre", though I think that's already taken. 19:36:49 And I wanted light, not ghosts. 19:38:15 And yes, I am just waltzing in here and changing the topic, 'cause I have nothing better to do right now, at least nothing that I want to be doing. 19:39:43 WHY is trac taking up 100% CPU. 19:39:48 If I could figure that out, I would be a happier person. 19:39:58 I sure hope you have, you know, tested those yes-codes of yours, instead of just speculating. At least the plain execv("yes",v) is not likely to work since yes doesn't path-search. (And the commands, I think, are specified to be executable from the shell, and execvp is defined to "duplicate the actions of the shell", so I think execvp("yes",v) would be okay.) 19:40:27 Since execv doesn't path-search, I mean. 19:40:53 Well, I doubt yes looks for any paths either, but that's not very relevant. 19:47:23 http://landley.net/code/toybox/ hmm 19:49:16 elliott: Totally GNU-free? 19:49:28 Gregor: Presumably. 19:49:41 Gregor: But not nearly complete enough. I consider mount quite a useful command. 19:50:02 Gregor: busybox mocks me by not being buildable with anything more minimal than gcc/uClibc. 19:52:07 Gregor: Sweet, and the pcc/dietlibc toolchain mocks me by making programs segfault if I strip them in any way, even though this halves their size :P 19:52:31 It seems it's stripping the something or other. 19:55:17 Oh, the segfault may be my mistake. 19:58:36 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds). 20:03:12 -!- perdito has quit (Quit: perdito). 20:14:32 -!- Phantom_Hoover has joined. 20:15:04 the seg was your fault 20:17:35 elliott, am I insane if I start manually unrolling fixed python loops in order to speed up the AI by avoiding to construct python tuples (note: it helps. By an order of magnitude) 20:18:04 1975 false/false 20:18:04 1971 true/true 20:18:06 How is this possible :P 20:18:09 Vorpal: Suuuuuure :P 20:18:19 like this: 20:18:20 # Unrolled to avoid constructing a python list. 20:18:20 voidcnt += self.validate_pos_pair(state, x, y, 0, 1) 20:18:20 voidcnt += self.validate_pos_pair(state, x, y, 1, 0) 20:18:20 voidcnt += self.validate_pos_pair(state, x, y, 1, 1) 20:18:20 voidcnt += self.validate_pos_pair(state, x, y, -1, 1) 20:18:29 Vorpal: dude just write the whole thing in cython 20:18:34 elliott, I am 20:18:39 Vorpal: in fact, write the whole thing in C 20:18:43 Vorpal: as a python extension 20:18:45 Vorpal: and just do 20:18:46 import foo 20:18:47 foo.run() 20:18:55 elliott, but for (x,y) in [...] will construct a list even in cython 20:19:20 elliott, and yeah writing it as C would be nice except the annoying variable length arrays for "possible moves" 20:19:29 which would mean manual memory management 20:20:07 Just write the whole thing in Haskell as a Python extension. 20:20:09 :) 20:20:34 Vorpal: Not really. 20:20:44 Vorpal: Is there a maximum you've hit so far? 20:21:05 Vorpal: You can basically just allocate as global or local and in the worst cases use mmap(), malloc is totally avoidable. 20:21:16 (I know this because I usually refuse to use malloc.) 20:21:33 pikhq: So I'm writing my own coreutils because I'm a stupid idiot. 20:21:36 elliott, well no, it varies of course 20:21:57 elliott: Awesome. 20:22:09 elliott, theoretically it is probably a few less than the board size 20:22:15 2227 bin/echo 20:22:15 1975 bin/false 20:22:15 1971 bin/true 20:22:18 pikhq: Sizes in bytes. 20:22:22 elliott: Would you like a copy of the small portion of coreutils I've already written? It could save you a whole two hours. 20:22:27 (No, I have no idea how false is bigger. Perhaps true relies on something being initialised to 0.) 20:22:30 pikhq: What portion? 20:22:36 pikhq: Bear in mind that I'm not using stdio at all. 20:22:38 base64 basename cal cat chgrp cksum 20:22:47 elliott, why are you surprised that true is smaller than false? 20:22:50 ... Oh, it uses stdio. Well, never mind! 20:22:54 pikhq: Well, I could port them. 20:22:55 elliott: Those are approximately 2K too large 20:23:04 elliott, generating a 0 takes fewer bytes than generating a 1 20:23:08 on x86 20:23:10 Vorpal: lawl :P 20:23:14 Deewiant: Yes, they can be shell scripts. But /bin/sh is pretty big. 20:23:18 elliott, and true is 0 in the shell 20:23:21 elliott: My cat is POSIX compliant! 20:23:25 thus true is smaller 20:23:31 elliott, it is pretty obvious 20:23:33 elliott: It supports the only option cat is required to have. ;) 20:23:38 elliott: They can be binaries that are approximately 2K smaller :-P 20:23:43 pikhq: But -u is utterly unused :P 20:23:55 pikhq, what exactly does -u actually do? 20:23:59 Deewiant: Well, yes, but I'm not Brian Raiter. 20:24:08 Vorpal: Use unbuffered IO! 20:24:23 Vorpal: It shouldn't be 4 bytes bigger, more like one or two 20:24:24 Deewiant: I do use his sstrip, though :P 20:24:29 pikhq: BTW, I'm compiling this with pcc. 20:24:34 gcc produces larger executables. 20:24:52 pikhq: Anyway, I'd appreciate a tarball of your code, since I can port or refer to it. 20:25:09 pikhq: What license? Or rather, how permissive can I convince you to make the terms you give it to me under? :P 20:25:27 If I can write a dobela interpreter in something like 4K, /bin/{false,true} should definitely be around 200 bytes at most :-P 20:25:31 I plan on using the WTFPL. 20:25:42 Deewiant: Patches written in C welcome :P 20:25:55 If you're writing in C your compiler limits you 20:25:56 Deewiant: Hmm, I could define _start and do _exit(0), couldn't I? 20:25:57 elliott: ISC license. 20:26:02 Deewiant: And tell it -nostartfiles. 20:26:05 pikhq: But, but, WTFPL. 20:26:12 pikhq: The ISC has more restrictions! 20:26:22 (It requires including the license with redistributed copies.) 20:26:27 The ELF headers emitted by most standard compilers are at least a few dozen bytes bigger than necessary 20:26:34 pikhq: By using restrictions you are SUPPORTING COPYRIGHT LAW. 20:26:39 Deewiant: sstrip strips 'em. 20:26:48 * sstrip is a small utility that removes the contents at the end of an 20:26:48 * ELF file that are not part of the program's memory image. 20:26:48 * 20:26:48 * Most ELF executables are built with both a program header table and a 20:26:48 * section header table. However, only the former is required in order 20:26:48 * for the OS to load, link and execute a program. sstrip attempts to 20:26:50 * extract the ELF header, the program header table, and its contents, 20:26:52 * leaving everything else in the bit bucket. It can only remove parts of 20:26:54 * the file that occur at the end, after the parts to be saved. However, 20:26:56 * this almost always includes the section header table, and occasionally 20:26:58 * a few random sections that are not used when running a program. 20:27:00 Oh, flood. 20:27:02 Whatever. 20:27:09 elliott: Does it rename the sections to something shorter? Presumably not. 20:27:12 This, incidentally, makes it impossible to decompile these with objdump. 20:27:30 $ strings bin/false 20:27:31 t5M9 20:27:31 /dev/urandom 20:27:31 LD_PRELOAD 20:27:31 valgrind 20:27:41 Deewiant: It eliminates the names altogether. 20:27:47 (Why is LD_PRELOAD in there? There's no dynamic linking going on.) 20:27:57 (Guess it didn't eliminate that then.) 20:28:12 It should be possible to make true and false good bit less than 200 bytes, without mangling ELF headers... 20:28:14 At most that first string should be in there :-P 20:28:23 NO! t5M9 is the SYMBOL OF BLOAT. 20:28:24 I can't remember how long the ELF headers are 20:29:39 248 bin/false 20:29:40 Deewiant: Happy? 20:29:45 void _start(void) 20:29:45 { 20:29:45 _exit(1); 20:29:45 } 20:29:51 Heh 20:30:01 If I made that noreturn, presumably it'd be EVEN SHORTER 20:30:11 elliott: But but true.asm is 45 bytes! 20:30:26 .asm is easily longer than the exe :-P 20:30:33 Erm, shorter 20:30:53 Deewiant: Erm, when assembled it's 45 bytes. 20:30:58 Deewiant: You're fucking up my build system here :P 20:31:01 the thing that annoy me with heuristics is that they are basically one huge fudge factor 20:31:08 (yes yes, they are by definition) 20:31:19 It's the smallest possible Linux-loadable ELF. 20:31:29 Linux-version-specific, too :-P 20:31:54 Deewiant: Gah, I can't even use diet(1), because it sticks start.o in there :P 20:32:12 elliott, um why do you care if it is less than 2 KB? 20:32:15 What's diet(1) 20:32:21 Vorpal: Because Deewiant cares. 20:32:30 Only in Linux 2.4... AFAIK, those 45-byte executables don't work in 2.6 20:32:39 Deewiant: "diet cc foo.c -o foo" handles all the -nostdwhatever stuff and appends the path to libc.a and start.o for dietlibc. 20:32:53 Deewiant: dietlibc being the reason these things are this small in the first place, as opposed to 17K or whatever with uClibc :P 20:33:09 libc.a? start.o? What are these unnecessarities 20:33:23 elliott: If you're using _start, you should probably just manually write the system call function. Thereby needing no libc. 20:33:28 elliott: http://filebin.ca/cemkzt/pikhq-coreutils-0.1.tar.xz 20:33:28 elliott, after all page size is 4096 bytes. There is no way you will allocate less than 4 KB thus. Also usually the file system block size is larger than a sector. 2 or 4 KB are common. Thus I think you are optimising pointlessly 20:33:48 seriously, you are microoptimising into the silliness now 20:34:01 Vorpal: Yes I am. 20:34:18 pikhq: What syscall number is exit again? 20:34:19 elliott, stop it. Or you will have to maintain cfunge in the afterlife 20:34:19 Make utilities detect argv[0] and work accordingly (sticking couple utilities together)? :-) 20:34:23 elliott: 1 20:34:26 Ilari: That's the loser's way out. 20:34:39 elliott: It's __NR_exit from asm/unistd.h 20:35:14 elliott, actually doing what Ilari said probably is better. It means you just need one entry in the page cache for true and false, and probably they will both fit into the same binary 20:35:21 Ilari: See pikhqbox.c in pikhq-coreutils. :) 20:35:22 pikhq: How about I just use :P 20:35:29 just check if argv[0][0] is 't' or 'f' 20:35:30 Does pikhqbox.c do 20:35:32 then use that 20:35:33 #define main progname_main 20:35:34 elliott, ^ 20:35:36 #include "progname.c" 20:35:36 ? 20:35:38 If so, you win. 20:35:38 elliott: Baaah. 20:35:43 Vorpal: Hardy har. :P 20:35:43 Vorpal: What if argv[0][0] is '/' 20:35:50 elliott: Also, yes. 20:35:52 Deewiant, hm good point 20:35:54 pikhq: So can I have assurance that that tarball is WTFPL'd? :P 20:35:56 Otherwise I can't use it. 20:36:03 Update: I've come back to "Enlight" as a name. I can't really come up with anything better, but I'm not sure it even fits now. 20:36:16 elliott: I hereby dual-license it under ISC and WTFPL. 20:36:24 elliott: Use at your discretion. 20:36:26 pikhq: Thank thee kindly. 20:36:31 pikhq: Hey, WTFPL doesn't require discretion! 20:36:39 I can go CERAAAAAAAAAAAAAAZY with it, so long as I WANT TO. 20:36:41 elliott: That was just a suggestion. 20:36:57 (Thought experiment: is it a license violation to do something you don't want to to a WTFPL program?) 20:37:00 Deewiant, check from the end for true/false (the second to last letter should be good. You need a strlen call probably though 20:37:07 I suggest the following fix: 20:37:10 elliott: But, yeah. pikhqbox.c does in fact do #define main progname_main and #include "progname.c". 20:37:12 1. You just DO WHAT THE FUCK YOU WANT TO. 20:37:17 2. Or you just DO WHAT THE FUCK YOU DON'T WANT TO. 20:37:23 3. Or you just DO WHAT THE FUCK YOU'RE NOT SURE WHETHER YOU WANT TO OR NOT. 20:37:32 elliott, this is too long and verbose 20:37:37 Vorpal: What if you're exec'd by something that gives you argv[0] = "hoody hoo" 20:37:40 elliott, what about "do whatever" 20:37:41 or such 20:37:49 1. You just DO WHAT THE FUCK. 20:38:03 elliott, better but perhaps a bit unclear 20:38:10 pikhq: I may require your assistance for commands such as mount. :P 20:38:18 elliott: Okay. 20:38:22 Deewiant, then you are fucked 20:38:28 Vorpal: Hence you don't do that. 20:38:31 Deewiant, but maybe default to one behaviour 20:38:43 pikhq: Dude, pikhqbox doesn't even use a hash table :P 20:38:49 Deewiant, but there are tools, such as busybox and grep iirc. which check argv[0] 20:39:03 elliott: I optimised for code simplicity. :) 20:39:03 well some grep implementations at least 20:39:04 pikhq: And even though every command starts with either b or c, you check the first character 5 times in the worst case. 20:39:11 for grep/fgrep/egrep 20:39:16 pikhq: So did I! main is more complex than _start because main has a return value. 20:39:46 elliott, what is pikhqbox? 20:39:49 elliott: If something was more work and harder to understand, I decided not to do it. 20:39:52 _syscall1(void, _exit, int, status) 20:39:54 I must have missed the code in it 20:39:57 Why does this not work... 20:39:57 for it* 20:40:03 Vorpal: busybox, but for pikhqutils. 20:40:10 elliott, huh 20:40:15 http://filebin.ca/cemkzt/pikhq-coreutils-0.1.tar.xz 20:40:32 pikhq: I remember ripping the hell out of your cat implementation at one point. :P 20:40:38 elliott, you never find that coloured ls output is nice? 20:40:39 *cal 20:40:40 not cat. 20:40:46 considering the current style 20:40:49 elliott: I changed it in response. 20:40:49 Vorpal: Sure I do. Who says I'm not going to implement that? 20:41:01 pikhq: Indeed. Now to rip the hell out of it with fresh new eyes! 20:41:01 elliott, because termcap is a pain? 20:41:06 elliott: :P 20:41:06 (I replaced my eyeballs recently.) 20:41:14 elliott, (and surely you will not hard code it) 20:41:15 Vorpal: Why the hell would I support anything that isn't ANSI-compatible...? 20:41:24 I mean, go on: name one terminal. 20:41:31 elliott, because how else could you hook it up to that DEC terminal!? 20:41:36 pikhq: static const int lengths_of_month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 20:41:37 pikhq: omg bloat 20:41:40 pikhq: :P 20:41:47 elliott: Clarity, not binary size. Sorry. 20:41:49 yes indeed. 20:41:54 pikhq, you should have used char 20:41:55 not int 20:42:01 No. BITMASK! 20:42:01 very much bloat 20:42:02 Vorpal: BAAAH 20:42:04 pikhq: Yeah, it is actually a pretty nice cal. 20:42:16 pikhq, 12*3 bytes wasted! 20:42:18 think of that 20:42:27 elliott: It beats just about every other cal I could find. 20:42:28 pikhq: However you do sin heavily by using stdio. :p 20:42:39 elliott: Which are pretty much all genetic UNIX, and are therefore horrifying. 20:42:47 pikhq, also it is incorrect for the second month every 4th year unless you have that logic elsewhere 20:42:54 He does. 20:42:56 well, almost every 4th year 20:43:00 pikhq: Does it handle september 1752? 20:43:07 *September 20:43:09 elliott: No. 20:43:09 elliott, is that when UK switched over? 20:43:22 elliott: That is the one bug. 20:43:37 elliott, if it doesn't handle the Swedish switchover (I told you about THAT mess before) it is broken :P 20:43:43 Vorpal: The British Calendar Act of 1751 / Declared the day after Wednesday / September 2nd / 1752 / Would be Thursday / September 14 / 1752 20:43:46 Vorpal: You only need 1 bit for each o f the eleven non-february months (february needs leap year checking anyway so might as well handle it completely separately) 20:43:51 s/o f/of/ 20:43:54 It is Unix tradition to support "cal sep 1752". 20:43:55 Deewiant, true 20:44:13 (Source for above clarification on the UK switchover time: http://www.youtube.com/watch?v=l4Zf1eyWYFs) 20:44:20 $ cal sep 1752 20:44:20 cal: illegal month value: use 1-12 20:44:21 Vorpal: Sorry, but I only wrote for C locale. 20:44:22 elliott, what ^ 20:44:32 Vorpal: Yeah, because Linux follows Unix tradition ... 20:44:35 Vorpal: Try 9 20:44:39 pikhq, indeed 20:44:43 pikhq, it works then 20:44:52 elliott, it just doesn't do named months 20:44:55 sep implies locales 20:45:02 Deewiant: Oh fuck off :P 20:45:10 Deewiant, oh so it does 20:45:15 elliott: What? :-P 20:45:16 Measurements and currencies and time: yes, locale-relevant. 20:45:26 Input and output messages: Fuck you, English-only :P 20:45:34 * pikhq loves that month. 20:45:50 _syscall1(void, _exit, int, status) 20:45:52 pikhq: srsly, why doesn't that work. 20:46:02 elliott, Why English only? That is discrimination. 20:46:04 elliott: Is "time" not an "input message" in this case 20:46:06 elliott: 2.6 removed that macro. 20:46:10 Vorpal: Yes it is! 20:46:14 Deewiant, indeed it is! 20:46:17 IIRC 20:46:37 pikhq: Well, I still have man _syscall... 20:46:41 Or do you mean just the "1" variant? 20:46:44 Deewiant: It would be, if I hadn't decided it wasn't. 20:46:56 Your decision is poor 20:46:57 Starting around kernel 2.6.18, the _syscall macros were removed from 20:46:57 header files supplied to user space. Use syscall(2) instead. (Some 20:46:57 architectures, notably ia64, never provided the _syscall macros; on 20:46:57 those architectures, syscall(2) was always required.) 20:46:58 Ugh. 20:47:21 elliott: You have to actually write the system call handler manually. 20:47:22 elliott, nothing wrong with syscall() 20:47:24 pikhq: I refuse to be unportable across architectures, how can I avoid using syscall(2) :P 20:47:40 elliott: Write _syscall for each architecture. 20:47:44 Vorpal: It goes through libc. 20:47:46 elliott, well _syscall would have been unportable too 20:47:48 pikhq, and? 20:47:49 Vorpal: And does a *lot* of stuff. 20:48:05 hm it sets errno 20:48:06 okay 20:48:08 that is annoying 20:49:59 elliott, well _syscall would have been unportable too 20:50:00 how? 20:50:03 not across architectures 20:50:11 apart from linux's failure to implement it 20:50:26 -!- Sasha has quit (Ping timeout: 240 seconds). 20:50:35 gah. This fudge factor is chaotic 20:50:53 elliott, not across architectures apart from linux's failure to implement it <-- uh... what 20:51:22 Vorpal: _syscall isn't unportable 20:51:32 linux just didn't implement it on every arch, for no real reason 20:51:49 pikhq: You know what, fuck this. _exit(0) is fine :P 20:52:22 elliott, also linux specific of course (but that is a different kind of unportable) 20:52:24 elliott: Then you're getting symbol collision for start; sorry. 20:52:34 pikhq: No I'm not. 20:52:37 pikhq: I link in libc.a but not start.o. 20:52:45 Oh, you're doing that manually. 20:52:53 pikhq: Yes. Because I'm a crazy goddamn fucker. 20:52:59 bin/true bin/false: \ 20:53:00 CC=~/kitten/stage2/bin/pcc -Os -nostdlib -nostdinc -nostartfiles \ 20:53:00 ~/kitten/stage2/lib-x86_64/libc.a 20:53:52 * elliott looks at pikhq's cat.c, decides that it's so stdioy that it's easiest to rewrite. 20:53:55 elliott: You sure are. 20:53:58 (Also, that handling -u is pointless binary bloat.) 20:54:07 elliott, as long as it is smaller than file system block size and page size you don't gain anything by making it smaller 20:54:24 stdio in cat? 20:54:25 ugh 20:54:26 Vorpal: Apart from e-penis length. 20:54:38 Vorpal: What, I would have expected you to be an stdio-lover. 20:54:50 elliott, why on earth 20:54:53 pikhq: Other things I won't support: "-" as an argument name! /dev/stdin exists for a reason! 20:54:55 Vorpal: Um, fopen? 20:55:18 elliott, stdio is nice when you work with textual in-data. But fwrite is no better than write when you deal with non-textual data 20:55:31 fwrite is no better than write ever :P 20:55:37 elliott, indeed 20:55:43 (Okay, if someone implemented an stdio that didn't suck, I might change my opinion.) 20:55:48 But 99% of the time it's just useless abstraction that you don't need. 20:55:50 elliott, but you wouldn't use either if working with textual data 20:55:56 printf is convenient but almost always severely-bloating, and error-prone too. 20:56:05 A nice formatting API would be, well, nice; I think libowfat has one. 20:56:07 elliott, you can make printf that is small 20:56:17 Vorpal: Yeah, but the API still sucks. :p 20:56:31 Haha! I just pioneered a NEW CONTROL STRUCTURE. 20:56:32 "else for" 20:56:34 elliott, what do you prefer? cout << setw(4) << i << endl; ? 20:56:56 Vorpal: It depends! 20:57:02 elliott, and what does else for do? 20:57:10 else for is for, except in an else clause. 20:57:21 Vorpal: Probably write_int_width(i, 4); 20:57:21 elliott, uh how is that new? 20:57:22 Or something. 20:57:26 I think libowfat has something like that. 20:57:29 Vorpal: Because it isn't else { for ... }. 20:57:31 It's "else for!" 20:57:33 *for"! 20:57:36 One whole indentation less! 20:57:42 elliott, you know format strings are nice because translation works with them 20:57:46 unlike most other solutions 20:57:53 remember you need to reorder stuff between languages 20:57:55 Vorpal: Sure, that's a language deficiency :P 20:58:05 As far as I'm concerned we should all struggle with English until somebody makes an OS that doesn't suck. 20:58:14 Vorpal: Also, printf SO FAILS AT THAT. 20:58:20 "The %s is %d years old." 20:58:23 and you often need the whole sentence to translate it (the same word will translate to different words in different contexts) 20:58:24 You can't swap the %d and the %s there. 20:58:25 If it was 20:58:30 elliott, you can 20:58:31 "The %{0}s is %{1}d years old." 20:58:35 and you could reorder them, sure. 20:58:59 elliott, you can reorder them like that when you translate the format string 20:59:06 using numbers like that 20:59:14 check man snprintf some day 20:59:17 elliott: If your language isn't flexible enough to adjust the phrasing such that that's in the right order, then you don't deserve i18n :P 20:59:28 * elliott writes lib.c! 20:59:32 The most libraryiffic C file ever! 20:59:41 Vorpal: Noooon-poooortableeeeee. 20:59:49 elliott, it is SUS iirc 20:59:50 (Pronounced "porta-blee".) 20:59:51 elliott, not C99 sure 20:59:53 but SUS 21:00:06 Vorpal: So it's useless on Windows. Deewiant! Yell at him! 21:00:15 * Deewiant yells 21:00:34 pikhq: Name my error-reporting function: oops, crap, damn, fuck, barf. 21:00:37 elliott, as if you would care about that. Your code is very linux specific it seems 21:00:46 Vorpal: Hey, I UNDID THAT MISTAKE 21:00:47 -!- yorick has joined. 21:00:51 Now I only depend on _start. 21:00:52 And _exit. 21:00:53 elliott: 糞 21:01:01 pikhq: æe@ł 21:01:04 elliott, the time to start worrying about windows support is the point you use stdio instead of read and write 21:01:05 and so on 21:01:22 Vorpal: He is unlikely to ever want to run this on Windows. 21:02:22 hm this seems to work, now I don't dare touch this heuristic. A tiny change, such as 0.26 to 0.25 for one constant completely changes the outcome. 21:02:30 pikhq, indeed my point 21:03:00 pikhq, so complaining about format string argument reordering for translation being unportable is... utterly stupid 21:03:24 Heh... Figured out why connections to one hostname were slow: It has two IPv6 addresses. The first one is unreachable (timeouts) but the second is reachable. So the first address has to timeout and then it falls back into second address, resulting connection being established. 21:04:03 Ilari, use sctp with the multi-homed stuff 21:04:17 then establish to both at once and use whatever works 21:04:18 or something 21:05:08 http://www.poemhunter.com/poem/a-problem-in-dynamics/ 21:05:20 By Maxwell himself. 21:05:23 I am in awe. 21:05:31 I don't know if those two are the same host... 21:05:39 void cat(int fd) 21:05:40 { 21:05:40 char c; 21:05:40 while (read(0, &c, 1) > 0) 21:05:40 write(1, &c, 1); 21:05:40 } 21:05:45 pikhq: Spot the unfortunately ugly-to-fix bug. 21:06:36 http://www.haverford.edu/physics/songs/rigid.htm 21:06:41 There's a song, too. 21:06:43 pikhq: Erm, apart from read's first argument. 21:07:08 pikhq: bin/cat is annoyingly big because of strerror :( 21:07:14 -!- evincar has quit (Quit: ChatZilla 0.9.86 [Firefox 3.6.12/20101026210630]). 21:07:30 EFBIG See EOVERFLOW. 21:07:35 Please tell me this stands for Fucking Big. 21:08:22 elliott: You know you want the system call for read and write! 21:08:24 It's probably File 21:08:24 I don't know if those two are the same host... <-- hm true 21:09:26 * pikhq suspects that stupid NATs don't handle sctp. 21:10:06 pikhq: It occurs to me that not supporting - as an argument may ... break some things... slightly. 21:10:07 SO NOW I AM 21:12:24 pikhq: Feel like de-uglying my code? :P 21:12:37 pikhq: (Or just telling me what's really ugly.) 21:12:47 Hey, YOU don't handle read errors either. 21:12:49 Sure, why not. 21:12:50 Right then, I won't! 21:13:06 pikhq: http://sprunge.us/PWFX 21:13:20 pikhq: The main ugliness is handling errors nicely, a thing that Unix has built up a wonderful reputation of NOT doing and making it extremely difficult to do. 21:13:30 So I'm just going to rip out the part of cat() that handles errors because really what kind of thing fails at that point. 21:13:52 pikhq: Still. main() is a bit ew. 21:14:07 pikhq: Hey, yours is NOT compliant. 21:14:11 pikhq: It gives up after the first error. 21:14:15 elliott: Baaah. 21:14:25 pikhq: Ha ha! You fail at cat! 21:14:42 ,[.,] is enough 21:15:00 -!- Sgeo has joined. 21:15:20 pikhq: Wait, you're right. 21:15:26 It's okay to give up after the first error. 21:15:28 Yay. 21:15:35 pikhq: (Although slightly more irritating to use...) 21:15:47 Yeah, in fact, that's so irritating that I'm not going to do it. 21:15:55 (Isn't it? Oh the dilemma.) 21:17:06 Phantom_Hoover, I'm still COBOL Guy? 21:17:20 Sgeo, yes. 21:18:25 pikhq: I think I'll do date(1) next, it's vaguely meaty. 21:18:26 oh duh, I just increased speed quite a bit from realising I did the top node in alpha-beta wrong. 21:18:31 Does anyone use date -u? 21:19:30 elliott, yes 21:19:47 I'm going to go watch the only SG-1 episode I haven't seen 21:19:48 elliott, very useful to get UTC 21:20:37 It's pretty easy to fake methods returning classes in Newspeak 21:20:44 Still, might be a bit annoying 21:21:03 elliott, also if you don't support the gnu extension %s in the string, then there is no way to get UNIX timestamp from shell script 21:21:14 elliott, so it might be a GOOD extension to support 21:21:25 I think FreeBSD has it too 21:21:29 and a handful of other ones 21:21:32 but not POSIX 21:22:35 #define isflag(s, c) ((s)[0] == '-' && (s)[1] == c && !(s)[2]) 21:22:36 ^ useful. 21:23:18 elliott, getopt? 21:23:30 Vorpal: Pointless when you only have one single flag. 21:23:35 elliott, true 21:23:51 Vorpal: A better question would be "strcmp?", to which I reply: inflated the binary for no real gain. 21:24:16 elliott, will you support %s in date's format string? 21:25:40 Vorpal: I'm using strftime. :P 21:25:56 -rwxr-xr-x 1 root root 59K Apr 28 2010 /bin/date 21:25:56 -rwxr-xr-x 1 elliott elliott 6.4K Dec 3 21:25 bin/date 21:26:06 Ha, wait, I forgot to actually PRINT the date. 21:27:10 elliott, idea: multi-core to make the AI n times as fast (n depending on number of cores) 21:27:22 $ bin/date -u 21:27:22 Segmentation fault 21:27:29 elliott, gdb on that then 21:27:39 Vorpal: Or just look at the code. 21:27:43 if (isflag(argv[1], 'u')) { 21:27:43 utc = 1; 21:27:43 argv++; 21:27:43 } 21:27:43 if (argv[1][0] == '+') fmt = argv[1] + 1; 21:27:45 Mistake is obvious. 21:27:50 Fix trivial. 21:28:13 yes indeed it is obvious 21:28:21 if (argv[1] && argv[1][0] == '+') fmt = argv[1] + 1; 21:28:21 Tada. 21:28:27 elliott, actually there are two mistakes there 21:28:47 Vorpal: That argc is left out-of-sync? 21:28:53 Deliberate; I don't use argc anywhere after that. 21:28:55 elliott, where does it say argv will have a NULL pointer after the last element? 21:29:02 Vorpal: That is guaranteed. 21:29:04 ah okay 21:29:25 Vorpal: So what's mistake #2? 21:29:43 none then 21:29:54 elliott, or do you check that argv[1] exists above the isflag check? 21:29:59 if not that is another mistake 21:30:53 if (argc > 1) { 21:30:55 Yes, I do. 21:31:02 good 21:31:03 Actually I can avoid that outer conditional trivially... 21:31:31 elliott, what if someone passes you argv[0] = NULL? 21:31:37 -!- Mathnerd314 has joined. 21:32:01 elliott, by execv or such 21:32:04 Vorpal: Then argv is {NULL, NULL, whatever} 21:32:07 Well. 21:32:09 I suppose that 21:32:20 elliott, it could be {NULL, whatever} I think 21:32:28 not sure though 21:32:38 Vorpal: Yes, true. (But if you deny something an argv[0], you're just a monster.) 21:32:42 And everything will break on that :P 21:32:53 elliott, not stuff which checks for it 21:33:03 Hmm, why is $TZ not doing anything... 21:33:15 elliott, presumably your libc doesn't use it 21:33:20 Presumably :P 21:33:33 Vorpal: You're on a non-GMT timezone, presumably. Can you test bin/date for me? 21:33:41 elliott, does it do zones like Europe/London or Europe/Stockholm? 21:33:47 Vorpal: Let's find out! 21:34:13 Vorpal: http://filebin.ca/gwobyk/date 21:34:26 Vorpal: (I know that could be malicious, but if I managed to fit a virus into 6K of ELF, well, that would be impressive.) 21:34:26 elliott, I don't have TZ set, I have the normal /etc/localtime 21:34:29 Vorpal: Right. 21:34:32 Vorpal: So that should work! 21:34:40 Also, /etc/timezone and the like. 21:34:46 no such file 21:34:49 Vorpal: But yeah, just check that "date" prints the right thing and "date -u" prints the right thing too :P 21:34:50 just /etc/localtime 21:35:15 $ objdump -d date 21:35:15 date: file format elf64-x86-64 21:35:16 what 21:35:19 same for -D 21:35:23 Vorpal: It's sstrip'd. 21:35:31 elliott, what is sstrip? 21:35:33 Vorpal: objdump can't look at stuff without pointless crap in the ELF file. 21:35:39 elliott, I refuse to run it 21:35:41 then 21:35:41 Vorpal: sstrip is Brain Raiter of INTERCAL fame's strip tool. 21:35:47 Vorpal: Use a different disassembler? 21:35:57 elliott, rm-ed the file. Get me one that works with objdump :P 21:36:00 Fine, I'll upload a non-sstrip'd one. 21:36:13 This one's almost 10K. 21:36:17 no issue 21:36:26 Vorpal: http://filebin.ca/ktvtue/date 21:36:29 I have more than 2000 baud :P 21:36:54 huh there is a __valgrind symbol 21:37:03 Vorpal: Yeah, and LD_PRELOAD too. 21:37:06 I can't seem to get rid of those. 21:37:12 Much as I would dearly like to. 21:37:16 well what is __valgrind used for exactly 21:37:20 No idea. 21:37:24 I mean, for valgrind obviously 21:37:28 (but why does it need it) 21:37:47 __unified_syscall_16bit ? 21:37:58 Vorpal: Oh just run the damn thing :P 21:38:04 4001e4:76 0f jbe 4001f5 <__you_tried_to_link_a_dietlibc_object_against_glibc> 21:38:05 :D 21:38:11 Indeed :P 21:38:30 elliott, how does that bit work? 21:38:43 Vorpal: Not sure. It's some crazy asm hack that makes an error appear with that if you try to do that. 21:38:55 Presumably a careful clash with something glibc does. 21:38:58 Under that name. 21:39:14 Vorpal: So does it work? :P 21:39:15 write(1, "Fri Dec 3 22:38:33 CET 2010", 28Fri Dec 3 22:38:33 CET 2010) = 28 21:39:17 seems to work 21:39:21 elliott, but it ignores my locales 21:39:23 Vorpal: What about with -u? 21:39:29 And yes, it does; dietlibc has no locale support. 21:39:33 $ LC_ALL=sv_SE ./date 21:39:33 Fri Dec 3 22:39:02 CET 2010 21:39:34 fuck it 21:39:42 Vorpal: Excuse me, try -u please. 21:39:44 elliott, completely fucked up date format for sweden 21:39:47 I know it won't work with locales. 21:39:51 SHUT THE FUCK UP ABOUT LOCALES 21:39:52 Just try -u. 21:40:06 elliott, doesn't work 21:40:08 Fri Dec 3 21:39:35 CET 2010 21:40:11 wrong timezone 21:40:13 in output 21:40:14 Ah. 21:40:19 elliott, correct time I think 21:40:19 So gmtime() isn't sufficient for this. 21:40:28 tm = utc ? gmtime(&now) : localtime(&now); 21:40:29 elliott, yes the hour change 21:40:30 is what I do. 21:40:35 but the timezone does not 21:40:43 $ date 21:40:43 fre dec 3 22:40:10 CET 2010 21:40:46 $ date -u 21:40:46 fre dec 3 21:40:12 UTC 2010 21:40:56 $ ./date 21:40:56 Fri Dec 3 22:40:24 CET 2010 21:40:59 $ ./date -u 21:40:59 Fri Dec 3 21:40:25 CET 2010 21:41:40 Vorpal: http://filebin.ca/vkhbbe/date 21:41:42 Vorpal: This might work. 21:41:48 It does setenv("TZ", "UTC", 1). 21:41:57 -!- Mathnerd314 has quit (Ping timeout: 245 seconds). 21:42:11 elliott, no 21:42:12 it doesn't 21:42:18 Hmph. 21:42:21 I'll have to think then. 21:42:32 elliott, also strace show nothing about the setenv 21:42:32 Vorpal: BTW, you will easily be able to link these against a libc that *does* do locales. 21:42:37 ...? 21:42:41 Weird. 21:42:43 Oh well. 21:42:44 elliott, surely env is in kernel 21:42:52 Vorpal: What? 21:43:04 elliott, I mean, it has to be. Otherwise env wouldn't work with exec 21:43:13 I don't get the relevance. 21:43:15 so thus it should show up in strace 21:43:18 when I run 21:43:22 strace ./date -u 21:43:22 I don't know why it doesn't. 21:43:34 which means you either uploaded the wrong version or it doesn't work 21:43:42 or env is done in a screwy way 21:43:46 which might well be the case 21:48:08 elliott, how horrible is the multiprocessing module in python? 21:49:12 Vorpal: Global Interpreter Lock. 21:49:20 elliott, no it is the forking one 21:49:21 Vorpal: You have to use subprocess instead for any kind of concurrency at all. 21:49:23 Oh. 21:49:25 Acceptable. 21:49:35 elliott, but how bad is it to use 21:49:58 Acceptable, I guess. I never have. 21:50:05 elliott, I also expect I need 16 bytes of shared memory (two floats) that I can update atomically. 21:50:08 err 21:50:10 two doubles 21:51:47 gah only lock sync. No sane sync 21:51:50 pikhq: This makes nooooo sense at all :P 21:51:53 (sane = compare and swap) 21:53:40 Vorpal: env is *definitely* not in the kernel. 21:54:16 pikhq, but then how does the exec*() family of functions propagate the enviornment? 21:54:21 environment* 21:54:30 Vorpal: The system call takes an environment argument. 21:54:36 %D Equivalent to %m/%d/%y. (Yecch — for Americans only. Americans 21:54:36 should note that in other countries %d/%m/%y is rather common. 21:54:36 This means that in international context this format is ambigu‐ 21:54:36 ous and should not be used.) (SU) 21:54:46 "Americans, you are ignorant and backwards. In this manual page, I will enlighten you. Dumbfucks." 21:54:48 The libc maintains the actual environment. 21:55:12 elliott, i prefer yyyy-mm-dd 21:55:57 elliott, is your strftime() long-now compliant? 21:56:07 I prefer ISO 8601. 21:56:08 Vorpal: nope! 21:56:15 elliott, should fix that 21:56:17 pikhq: that /is/ iso 8601 21:56:23 pikhq: iso 8601 has the stupid flaw of using T as a separator 21:56:25 rather than a space 21:56:28 making it harder to read 21:56:31 Vorpal: no :P 21:56:39 elliott, I don't use a T there 21:56:41 elliott: Shame, that. 21:56:42 I use a space 21:56:43 Vorpal: If anyone is using Unix in the year 10,000... I pity them. 21:56:52 And laugh at their misfortunes, for they will be endless. 21:57:05 elliott, true but they could use the data files printed on current unix 21:57:10 HERE, ARCHAEOLOGISTS FROM THE FAR FAR FUTURE!!!!!! 21:57:11 Vorpal: If anyone is using Unix in the year 10,000... I pity them. 21:57:16 elliott, indeed 21:57:16 THAT WAS SAID BY ME, A PROMINENT CULTURAL FIGURE OF THIS AGE 21:57:22 I AM CONSIDERED TO BE INCREDIBLY WISE AND CHARISMATIC. 21:57:23 BY ALL. 21:57:26 THAT IS ALL, STOP READING NOW 21:57:28 no you aren't 21:57:33 (MY ENEMIES ARE ABOUT TO INTERCEPT THIS STREAM WITH MISINFORMATION) 21:57:36 OH LOOK IT ALREADY HAPPENED 21:57:40 :P 21:57:57 elliott, anyway. they could use data files created in the next few years 21:57:59 over then 21:58:04 on a non-unix system 21:58:15 Vorpal: Then they'll have their own strftime. 21:58:45 elliott, yes then in the future. But if they want to read a textual file created in the year 2011, it might have 4 digit dates 21:58:49 which would be annoying 21:59:03 * elliott reads busybox date.c, and BREAKS THE LAW! 21:59:12 elliott, what law? 21:59:13 (Reading GPL'd code for information on how to write a non-GPL'd program is ILLEGAL.) 21:59:20 I'll be COPYRIGHT INFRINGING with my MIND. 21:59:25 mhm 21:59:26 If only I hadn't told anyone... 21:59:41 if (opt & OPT_UTC) 21:59:41 putenv((char*)"TZ=UTC0"); 21:59:41 LOLZ 21:59:58 elliott, what is so funny with that 22:00:11 elliott, except for them casting a string to char 22:00:15 char* 22:00:17 oh wait 22:00:21 from const char* 22:00:23 to char* 22:00:24 right 22:00:29 Vorpal: Just that that's what I've been doing 22:00:31 except with setenv 22:00:33 and it isn't working 22:00:39 elliott, different libc? 22:00:46 #if ENABLE_FEATURE_DATE_NANO 22:00:46 /* libc has incredibly messy way of doing this, 22:00:46 * typically requiring -lrt. We just skip all this mess */ 22:00:46 syscall(__NR_clock_gettime, CLOCK_REALTIME, &ts); 22:00:46 #else 22:00:46 time(&ts.tv_sec); 22:00:48 #endif 22:00:50 Y'all crazy. 22:00:54 Vorpal: Yes, indeed. 22:01:04 Vorpal: It may be one of those dietlibc bugs that they won't fix because it'd increase the size. :p 22:01:17 elliott, also clock_gettime is -lrt on linux, it is -lc on *bsd 22:01:25 just to complicate the thing 22:01:34 elliott, clock_gettime is *nice* though 22:01:36 Vorpal: That's nice! I'm using time()! 22:01:41 Because it's goddamn date(1)! 22:01:58 elliott, what about %N ? 22:02:06 What about it? 22:02:16 oh wait, not POSIX 22:02:19 Right. 22:02:20 elliott, nano seconds :P 22:02:30 $ date +%N 22:02:31 212106062 22:02:31 Orn ot? 22:02:33 *Or not? 22:02:33 s/o // 22:02:38 That's smaller than +%s, even. 22:02:40 elliott, yes nanoseconds in current second 22:02:41 :P 22:02:43 Ah. 22:02:43 lawl 22:02:47 I think not :P 22:03:06 elliott, nanoseconds since 1970 would be absurd 22:03:08 % date +%N 22:03:08 %N 22:03:23 Deewiant, what system? 22:03:28 Vorpal: My date is so evil, it doesn't even let you set the current time with it. 22:03:30 That's right! 22:03:30 *BSD I presume 22:03:33 That's NON-XSI-COMPLIANT. 22:03:36 Solaris 11 Express 22:03:40 Deewiant, heh! 22:03:43 Deewiant: ...I love you. 22:03:46 Deewiant, Express? 22:03:48 Please tell me you installed it JUST FOR THAT 22:03:50 In like 3 seconds. 22:03:57 Nope 22:04:02 I should get a DS9K just to irritate people. 22:04:07 % uptime 22:04:08 12:03am up 11 day(s), 7:13 22:04:10 elliott, he installed it to run oracle mysql on it I guess :P 22:04:16 Deewiant: The first time a Sun has ever been up 11 days! 22:04:17 * Vorpal ducks 22:04:25 Vorpal: *Oracle'sSQL 22:04:32 elliott, they named it that? 22:04:33 elliott: Ah, but it's not Sun anymore is it 22:04:36 Vorpal: No, but I just did :P 22:04:47 (Although before the update it was up for a few months) 22:04:59 "No, you see, MySQL isn't YOUR SQL. It's MY SQL. It serves MY corporate interests, see?" 22:05:25 elliott, yes that was obvious when you said it wasn't the actual name 22:05:26 Vorpal: And yes, Express. I don't know why it's called that. 22:06:11 Deewiant: Because it's FAST! 22:06:20 Maybe. 22:06:23 gah, I conclude that it is impossible to do anything with compare and swap from within python 22:08:55 openmp doesn't support CAS? 22:10:19 pikhq: Alas, I cannot do all program that don't parse args as _start. 22:10:22 pikhq: /home/elliott/kitten/stage2/lib-x86_64/libc.a(stackgap.o): In function `stackgap': 22:10:28 So that's for syscall-only programs. 22:10:43 Wait. Is getcwd a syscall? 22:10:55 Eh, whatever. 22:14:17 pikhq: Dynamically-linked glibc versions of what I have so far total to 210K. My statically-linked dietlibc versions: 18K. 22:14:24 (That's in decimal Ks.) 22:14:27 (Just going from wc -c.) 22:18:23 elliott, hm cython allows you to release the GIL 22:18:29 but with lots and lots of warnings 22:18:31 Vorpal: Good luck with that. 22:18:38 elliott, no I'm not quite that insane 22:18:48 elliott: Nice. 22:18:53 elliott, since the "generate valid moves" code still uses a python list 22:19:31 elliott, all of the tight loop code except for that compiles to pure C now though 22:19:37 pikhq: Should I bother supporting [:upper:] and all that crap in tr? 22:19:54 Oh fuck it, tr can wait. 22:22:42 pikhq: I feel like I'm doing the easy stuff and avoiding the harder stuff. Any suggestions for what to do next? 22:22:45 -!- Sasha has joined. 22:22:49 kill, maybe? 22:22:59 -!- perdito has joined. 22:25:54 pikhq: If I go through sys_siglist to convert a signal name into a number, am I a bad person? 22:26:31 Wait, that won't work. 22:32:08 __GNU_nonoption_argv_flags_ 22:32:09 This variable was used by bash(1) 2.0 to communicate to glibc 22:32:09 which arguments are the results of wildcard expansion and so 22:32:09 should not be considered as options. This behavior was removed 22:32:09 in bash(1) version 2.01, but the support remains in glibc. 22:32:12 pikhq: dear god. 22:33:33 * Sgeo nostalgias at http://www.ccs3.lanl.gov/mega-math/workbk/infinity/inhotel.html 22:34:17 ... That's *revolting*. 22:35:27 gcc was in bed with bash? 22:35:46 Wait, not gcc 22:36:02 ...all programs? 22:36:04 pikhq: Yeah. It totally is. 22:36:07 Sgeo: glibc. 22:36:11 And by extension every program that used getopt. 22:36:25 pikhq: I love how it took them exactly 0.01 version to remove that hideous abomination. 22:36:31 Maybe *a single person noticed*. :P 22:37:01 pikhq: Ha! kill can't use getopt. 22:37:07 Because kill takes -FOO for every signal FOO. 22:41:31 -!- ais523 has quit (Read error: Connection reset by peer). 22:44:59 elliott, hmm, the version is a unit? 22:45:05 What does it measure? 22:46:14 Phantom_Hoover: ? 22:46:30 pikhq: What the fuck. Apparently "kill -l $?" has to print out what signal killed the relevant process. 22:46:32 pikhq: Does anyone use that? 22:46:37 It's an esoteric concept! 22:50:07 elliott, I'm going to try pypy 22:50:48 elliott: *What the fuck*? 22:52:03 I'm pretty sure I've used that, but I can't remember if I had any good reason to 22:53:02 pikhq: Yeah... wut. 22:54:26 elliott, zuh? 22:54:53 Binary size just inflated after separating out barf.h. TODO: diagnose. (I think it's strlen calls.) 22:54:58 Phantom_Hoover: ? 22:55:06 So kill -l prints what pid was killed by? 22:55:16 Phantom_Hoover: No... $? is the exit status. 22:55:41 -!- Sasha has quit (Ping timeout: 245 seconds). 22:55:59 elliott, aaaaaaaah. 22:56:16 die agnostic 22:56:31 -!- Gregor has set topic: HELP COMPUTER | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 22:56:42 -!- Sasha has joined. 22:56:47 pikhq: For some reason, kill keeps giving me "Invalid argument" back. 22:57:36 brb 22:58:44 * Vorpal watches pypy compile itself 22:59:48 http://www.wikipl.com/index.php/Main_Page 23:00:14 elliott, minecraft bug update (fixes the forgetting port bit and other stuff) 23:00:16 but also uh 23:00:18 "* Added lakes and rare lava pools, both on the surface and randomly in caves." 23:00:22 how is that a bug update 23:00:26 lol 23:00:43 oerjan, highly esoteric. 23:01:08 indeed 23:02:14 http://www.youtube.com/watch?v=lobeX6ft6PA "This sounds absurd, therefore it couldn't possibly be physical reality" (Note: I'm pretty sure everyone is aware that no one these days says that the universe is infinitely old, but still) 23:02:55 oerjan, let's make it something awesomely crazy! 23:03:14 you go ahead 23:03:21 Sgeo, Hoyle went to his grave swearing by a modified Steady State theory. 23:04:38 And Hoyle was not a nutcase. 23:05:33 My browser froze. Unfortunatly, I was in the middle of playing a YouTube video 23:05:43 There is now an annoying sound emmenating from my speakers 23:05:46 *emminating? 23:06:09 Sgeo, was it another video by that idiot? 23:07:16 Also, it's "emanating". 23:07:19 elliott, I don't know what it means but pypy compiling itself draws pretty colour coded output 23:07:23 like ASCII art 23:07:33 Vorpal: mandelbro6 iirc 23:07:36 brot 23:07:40 elliott, why 23:07:56 fun 23:07:57 elliott, why compute that while it compiles itself? 23:08:05 I mean, it would slow down the thing 23:08:28 its prolly hardcoded. also instant anyway... 23:08:54 not very pretty when interrupted by warning messages 23:09:06 though it does line up properly below the warning 23:10:06 -!- MigoMipo_ has joined. 23:10:16 -!- Sgeo has quit (Ping timeout: 245 seconds). 23:11:09 -!- MigoMipo has quit (Ping timeout: 240 seconds). 23:11:39 oerjan, how does WikiPL work right now? 23:11:49 And is it headed towards being WikiFalcon? 23:12:14 http://www.wikipl.com/index.php/WPL_Documentation 23:12:29 i just found this on reddit so i don't know much more than you :D 23:12:56 apparently you cannot currently register automatically for security reasons 23:13:10 oerjan, how are we meant to make it AWESOME 23:13:25 afaiu each article contains python code for part of the language implementation 23:14:31 -!- Sgeo has joined. 23:15:21 Hmm... 23:15:28 PH, I was listening to some music 23:16:28 Sgeo, was it music from the late 90s or early 2000s? 23:16:35 lol 23:17:01 * Sgeo suddenly thinks of some music that he likes for nostalgic reasons 23:17:12 This song isn't one of those though 23:17:20 http://www.youtube.com/watch?v=GE_FhAGYy8w 23:19:37 -!- zzo38 has joined. 23:20:11 btw the reddit post is http://www.reddit.com/r/programming/comments/efuve/wikipl_the_free_programming_language_that_anyone/ 23:21:20 http://www.wikipl.com/index.php?title=Main_Page&action=edit 23:21:24 That's no Python! 23:21:55 there are obviously a few exception pages :D 23:22:41 oerjan: it should be haskell 23:22:44 less sandboxing needed too 23:23:22 It should be Newspeak. Less sandboxing needed too 23:23:26 (Well, not atm) 23:24:04 But not functional. 23:24:24 Non-functional languages are really just relics of the past, making new ones is basically laughable. 23:24:51 Haskell, and (in the future) Newspeak. What other nicely sandboxed languages are there? [Although I must point out that in Haskell, code either has full access to the outside world or no access to the outside world] 23:25:34 Sgeo, in the future all languages will be @! 23:25:43 Sgeo: the latter is not true 23:25:52 you can build more access control on top of IO 23:26:30 -!- MigoMipo_ has quit (Read error: Connection reset by peer). 23:27:09 "Justin Bieber Wikipedia Page Hacked With Homosexual Remark" --spam link on reddit 23:27:18 Translation: Someone vandalised Wikipedia for WHOLE SECONDS (probably the article author) 23:27:33 "Wikipedia (The Free Encyclopedia) is usually a reliable source of info so we aren’t sure how this one got by them. This is the first time we have seen someone sabotage a celebrity’s Wiki page. At the time it is unknown who is responsible for hacking Justin Bieber’s bio." 23:27:46 elliott, The Onion? 23:27:50 Chris Pressey made some new ideas for esoteric programming language. I like this 23:27:52 No. 23:27:52 Spam. 23:28:55 # (cur | prev) 04:08, 2 December 2010 ClueBot NG (talk | contribs) m (45,439 bytes) (Reverting possible vandalism by Tom191 to version by Silvergoat. Questions, comments, complaints -> BRFA Thanks, ClueBot NG. (84172) (Bot)) 23:28:55 # (cur | prev) 04:08, 2 December 2010 Tom191 (talk | contribs) (51 bytes) (←Replaced content with 'Justin Bieber is squirrel in a blender. He is gay.') 23:28:59 It stayed there for a whole ZERO MINUTES. 23:31:49 pikhq: Wanna DEBUG MY KILL?? 23:34:22 * Sgeo desperately wants to know why scrolling via trackpad isn't the same as scrolling via mouse wheel 23:36:01 Hey, we should totally do an esoteric version of wikiPL on the esolangs wiki. 23:36:14 Phantom_Hoover: We couldn't do it there, if it's automated at all. 23:36:22 On a separate wiki, sure. 23:36:27 elliott, why? 23:36:34 Phantom_Hoover: Because the wiki doesn't have any patches? 23:36:40 maybe on that hackiki thing? 23:36:58 elliott, what patches do you need for "pull page source from site, extract code"? 23:37:26 Phantom_Hoover: It'd need protecting anyway. 23:37:31 oerjan: Yeah, you could hack it into hackiki. 23:37:49 Phantom_Hoover: DottyWeb does pull page source from site and extract code but it is not built-in to the wiki program, you need to downloadit separately. 23:37:56 http://www.wikipl.com/index.php/HelloWorld Wow, way overengineered. 23:38:02 XML! Unit tests! 23:38:11 Camel-case thus failure at PEP-8! 23:38:16 http://www.wikipl.com/index.php/Test001 wtf web interface 23:38:20 I thought this was a collaborative programming language 23:38:52 elliott, my hatred for it shot up when you said "XML". 23:39:24 elliott, also underground lakes from now on hm 23:39:53 It should all be written in Smallnewfactor obviously 23:40:05 Smallnewfalctor 23:40:26 pikhq: I have a feature that busybox doesn't! BLOAT! 23:45:05 -!- augur has quit (Remote host closed the connection). 23:47:47 Sgeo, *Smallnewfalctorscala 23:47:57 -!- FireFly has quit (Quit: swatted to death). 23:47:59 Scalamallnewfalctor 23:50:55 http://sprunge.us/IgWe 23:50:56 Handy! 23:51:33 It still can't kill processes though. 23:51:40 Probably because pikhq won't look at the code. 23:52:25 Why doesn't Creative Commons have a "no attribution required" option? 23:53:57 Because somewhere out there is the Anti-Sgeo 23:56:07 zzo38: it does 23:56:14 Sgeo: doesn't, not does. 23:56:21 zzo38: oh you mean 23:56:25 it requires people to *not* attribute you? 23:56:26 that's non-Free 23:56:30 i think 23:56:31 and uh, stupid 23:56:34 just release it anonymously 23:57:55 -!- kar8nga has quit (Remote host closed the connection). 23:58:09 No. I don't mean it should require people to *not* attribute me. I mean it should provide the option that they can attribute me or not depending on their choice 23:58:36 CC PD? 23:59:24 But I do want share-alike to be the condition 23:59:38 That share-alike is require but attribute is optional