< 1291507204 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Now come on, piracy is more a social issue than CS-related. < 1291507210 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And I've already made my mind up about copyright! < 1291507225 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan will now swat me < 1291507225 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: And sodomy? < 1291507230 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: I'm all for it! < 1291507323 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Note to self: mention support of sodomy ==> conversation dies. < 1291507328 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :X-D < 1291507333 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :I had nothing further to say :P < 1291507455 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, that 128x128x128 thing... do you realise how enormous it will actually be? < 1291507470 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, considering a 25x25 room is HUGE < 1291507479 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I have a vague comprehension in my head. Is that 25x25 room there right now? < 1291507503 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I'm imagining it like a really tall shopping centre/mall, not a bunch of rooms. :p < 1291507505 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Dear Ubuntu: Learn to count < 1291507512 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Oh wait < 1291507514 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, well partly, and it is not 7 high yet < 1291507515 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Idea for D&D game. When you play D&D game, maybe, you can make your character ettercap or other monster character, and then ask your brother if they want their character to be afflicted lycanthropy. And then see if there is human NPC in your party, too. < 1291507518 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!help < 1291507519 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Guess it's not counting a directory as a file < 1291507526 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Is serv on? < 1291507548 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!haskell 128^3 < 1291507587 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!help < 1291507613 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: 2,097,152 m^3. < 1291507616 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :1 block ~= 1 m^3 < 1291507622 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Maybe I should just go online and find something? < 1291507627 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: it's the biggest cube possible because the world is only 128 high :) < 1291507633 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help . < 1291507634 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help . < 1291507682 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!haskell 128^3 / 86400 < 1291507684 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: is serv on? < 1291507701 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!echo hi < 1291507707 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, now it is all there < 1291507713 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: this is not very promising < 1291507714 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, though just 2 high so far < 1291507724 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, don't think so. Anyway it is in my mountain < 1291507739 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I'll come see. < 1291507844 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :`perl print (2097152/86400) < 1291507848 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1291507853 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :`perl print (2097152/86400); < 1291507858 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1291507869 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :`help < 1291507872 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*sigh* < 1291507876 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION starts xPUD < 1291507884 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric : I DON' WANNA < 1291507893 0 :EgoBot!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1291507943 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ < 1291507964 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1291507964 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1291507972 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :`run perl -e 'print (2097152/86400);' < 1291507974 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :24.2725925925926 < 1291507991 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: so how many blocks can you place per second? < 1291508015 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if it's one, and you don't sleep, then that's how many days you need < 1291508077 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: yeah yeah fizzie's done all the calculation -- < 1291508080 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i don't need to fill the cube duh < 1291508084 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i'm just going to have floors inside it < 1291508093 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh. < 1291508098 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :you can place like 2 blocks/s < 1291508102 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: what will take ages is emptying 128x128x5 or so < 1291508106 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :of water < 1291508322 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Question. Why does mkdir have an -m parameter? < 1291508398 0 :HackEgo!unknown@unknown.invalid QUIT :Remote host closed the connection < 1291508406 0 :EgoBot!~EgoBot@codu.org JOIN :#esoteric < 1291508410 0 :HackEgo!~HackEgo@codu.org JOIN :#esoteric < 1291508411 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: To make you cry. < 1291508419 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: BUT IT'S POINTLESS < 1291508430 0 :augur!~augur@129.2.129.33 JOIN :#esoteric < 1291508430 0 :nooga!unknown@unknown.invalid QUIT :Ping timeout: 250 seconds < 1291508473 0 :zzo38!unknown@unknown.invalid QUIT :Remote host closed the connection < 1291508482 0 :sftp!unknown@unknown.invalid QUIT :Remote host closed the connection < 1291508492 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: RACE CONDITIOX < 1291508522 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: There's one *already*; malloc has to use chmod() because mkdir() is limited to umaskable stuff. < 1291508541 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :... malloc? < 1291508596 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Also, if you pass the mode requested into mkdir then chmod, you'll only be /expanding/ permissions, not /reducing/ permissions, which is OK. < 1291508607 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :(Idonno if it does this, and I'm just being a jerk anyway :P < 1291508622 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : ... malloc? < 1291508623 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :mkdir < 1291508624 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :you know what i meant < 1291508636 0 :sftp!~sftp@79.174.50.208 JOIN :#esoteric < 1291508640 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :I figured it out, but it actually did take me a while ... like, 'til my next line :P < 1291508669 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Anyway, mkdir is 9229 bytes and I consider this unacceptably large. :P < 1291508672 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :It would be small without -m. < 1291508698 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :$ bin/mkdir -p x/y/z < 1291508698 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :x: File exists < 1291508704 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :whyy do i get this error it doesn't sense-make < 1291508712 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and then x is empty < 1291508727 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Wow, that is bizarrely huge ... it'd be smaller if you used shared objects or a multibinary X-P < 1291508746 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: It is, in fact; I have a script to do that. < 1291508754 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: 28155 box < 1291508767 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: That's false, true, yes, sleep, pwd, echo, dirname, basename, uname, signal, link, cat, date, chroot, env, strings, vis, cal, kill and mkdir. < 1291508774 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: BUT WAIT, THERE'S MORE < 1291508800 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: $ upx --ultra-brute --overlay=strip box && ./sstrip box < 1291508801 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :$ wc -c box < 1291508801 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :14532 box < 1291508804 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And yes, it works. < 1291508815 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Also, it's bigger than it needs to be because UPX puts a UPX copyright notice in the file because it's stupid. < 1291508834 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(Supposedly even though it's GPL'd, somehow they think they can make removing this a license violation revoking even your permission to *use* it. :P) < 1291508848 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: BUT YEAH I TOTALLY JUST KINDA 14.5 DECIMAL KILOBYTESDED A BUNCH OF UTILITIES YO < 1291508871 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Oh, and that box has flaws such as multiple copies of every signal name. And a few functions that could be shared. < 1291508880 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :What I'm saying is: I'M AWESOME. < 1291508888 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Did you ever bother actually unpacking that .minixfs.lzo? :P < 1291508898 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I spent at LEAST two minutes thinking of a format insane enough. < 1291508910 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :I like how it's just "box" < 1291508916 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Not busy, tiny, anything. < 1291508920 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: I can't decide whether it's busy or not. < 1291508925 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :But it definitely is a box! < 1291508951 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :How 'bout industriousbox :P < 1291508953 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: The box executable has some flaws right now; you can't symlink right now, only argv[1]. And it has no error reporting for no command arg (just segfaults) or command not found. :p < 1291508955 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :But eh. < 1291508958 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: How about picobox. < 1291508977 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Let's put it this way: I am pretty sure that nobody has used a toolchain capable of producing executables that small from this code before on Linux. < 1291508982 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :... what could possibly be making it difficult to do with symlinks? < 1291508989 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: I am 99% sure I am the first person to compile dietlibc with pcc. < 1291508996 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(Since I had to do patching.) < 1291508998 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Quite probably. < 1291509001 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And yes, it produces smaller executables than gcc. < 1291509009 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : ... what could possibly be making it difficult to do with symlinks? < 1291509011 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Grrrr < 1291509014 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :What if argv[0] has path components? < 1291509014 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1291509019 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :VBoxGuestAdditions doesn't support Win98 < 1291509023 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :box.c is just a really quick autogenerated thing anyway. < 1291509024 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: ...no shit. < 1291509044 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :elliott, uh? < 1291509047 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Oh yeah, and the dietlibc-linked static pcc is 34K. < 1291509053 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: This is the kind of compiler fit for the late 80s. :P < 1291509055 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Mmm right, path components, okidoke. Still, strrchr *shrugs* < 1291509084 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Huh, I didn't realise strrchr was actually POSIX. Also, right back at ya: basename() :P < 1291509102 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, I think strrchr could HELP with some of my PROGRAMS. < 1291509110 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Such as BASENAME. < 1291509119 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :There's a basename function as part of POSIX? < 1291509119 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(BASENAME actually GROWS in size when I just use basename(). I don't know why or how.) < 1291509128 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :http://www.opengroup.org/onlinepubs/009695399/functions/basename.html < 1291509131 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Part of XSI! < 1291509135 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Like every damn thing. < 1291509148 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :For instance mmap :P < 1291509151 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(Is XSI-only.) < 1291509153 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :I didn't even know there was a basename function :P < 1291509171 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :My hand-written basename is smaller SO YEAH < 1291509174 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(But not in larger programs.) < 1291509185 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(Only in basename(1). TODO: figure out where logic went.) < 1291509202 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : while ((slash = strchr(path, '/'))) < 1291509202 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : path = slash + 1; < 1291509207 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: LOOK AT ME I DON'T KNOW WHAT STRRCHR IS HURRR < 1291509210 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Time for MEASUREMENTS < 1291509239 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :HAHA IT GOT SMALLER < 1291509250 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :HAHA IT STILL WORKS < 1291509297 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Did I mention I compile false and true specially so that I can avoid all startup code? They are both 248 bytes. < 1291509309 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :#include < 1291509309 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :void _start(void) < 1291509310 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :{ < 1291509310 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : _exit(0); < 1291509310 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :} < 1291509312 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :HUGELY wasteful. < 1291509325 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: It's the best I can do with C that's even vaguely portable P < 1291509326 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :You still need _exit < 1291509326 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*:P < 1291509333 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Mmm, vaguely portable :P < 1291509334 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Yes; the alternative is assembly. < 1291509337 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :OK, that's ELF-portable :P < 1291509349 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I have to special-case true and false in mkbox because I can't link them to ANYTHING X-P < 1291509381 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Surely the size added to box of a more conventional true and false command would be smaller than 248 bytes? < 1291509400 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :night < 1291509427 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :echo " if (!strcmp(argv[0], \"true\")) return 0;" < 1291509427 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :echo " if (!strcmp(argv[0], \"false\")) return 1;" < 1291509432 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Probably, yeah. < 1291509439 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: But I'm primarily targeting separate executables for now :P < 1291509449 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Ahhhhh < 1291509454 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :*cough*PUSSY*cough* < 1291509471 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: No way, this is more hardcore. Because I have all the overhead to deal with. < 1291509487 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"Do nothing, unsuccessfully" -- GNU coreutils, attempting to describe false(1) and instead managing to confuse everyone who thinks about it for more than a second < 1291509490 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, and what if you have argv[0] = "foobar" < 1291509494 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gahaha < 1291509496 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :[[This version of false is implemented as a C program, and is thus more secure and faster than a shell script implementation, and may safely be used as a dummy shell for the purpose of disabling accounts.]] < 1291509500 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Our false: MORE SECURE THAN EVERYONE ELSE'S FALSE. < 1291509504 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Then the trick fails. Duh. < 1291509508 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :... < 1291509508 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :wait. < 1291509513 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :They said their false is *faster* than other falses. < 1291509517 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ACTION explodes with laughter < 1291509526 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Faster if it didn't respond to --help and --version! < 1291509530 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And have localised strings! < 1291509531 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :$ type true < 1291509531 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :true is a shell builtin < 1291509532 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Actually, the "safely be used as a dummy shell for the purpose of disabling accounts" is pretty important. < 1291509532 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, ^ < 1291509537 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Not as a shell. < 1291509541 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Yes, but come on: faster? < 1291509542 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :FASTER? < 1291509546 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, indeed < 1291509547 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, that's silly :P < 1291509564 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Oh my god I want to delve into the kernel's executable loading code now to figure out the most optimised code path to exit with status 1 :P < 1291509579 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, don't be silly < 1291509582 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Do you require a.out binaries to be supported? ;) < 1291509589 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: He says, in #esoteric. < 1291509593 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: I didn't say modify the kernel's code. < 1291509595 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, yee. < 1291509597 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :yes* < 1291509597 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: I meant analyse it. < 1291509606 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: The kernel DOES support a.out, but it's optional. < 1291509615 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: I know. I wanted to use a.out in Kitten a while back. < 1291509620 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: But debugging with a.out is a total clusterfuck :P < 1291509630 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: And N O T H I N G supports it. < 1291509638 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i.e., pcc doesn't. < 1291509638 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :For SOME reason :P < 1291509642 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I think gcc dropped support too. < 1291509659 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Clearly we need a Unix that runs on PE. < 1291509662 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: objcopy certainly supports it, it may even be able to produce correct a.out files from static ELF files, but I wouldn't rely on that :P < 1291509664 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(I know, I know, COFF. But I mean actual Windows PE.) < 1291509668 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :the standard executable name is still a.out < 1291509671 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :which is strange < 1291509673 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: No shit :P < 1291509675 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :It's history. < 1291509677 0 :oerjan!unknown@unknown.invalid QUIT :Quit: Good night < 1291509677 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Delicious history. < 1291509688 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, should be e.lf now < 1291509694 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: My objdump is so optimised it contains NO CODE AT ALL: < 1291509696 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :$ objdump -D bin/mkdir < 1291509696 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :bin/mkdir: file format elf64-x86-64 < 1291509696 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :$ < 1291509753 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :erm. < 1291509754 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: My mkdir :P < 1291509775 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Your malloc? What? < 1291509797 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, hm does it contain any sections at all < 1291509800 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Shaddap. < 1291509823 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Yes, but it removes the section header table. < 1291509824 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, if not, how does the kernel know what to load as executable and what to load as read only < 1291509829 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :So silly tools think it has no sections at all/ < 1291509830 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :and then what to load as read-write < 1291509835 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : * Most ELF executables are built with both a program header table and a < 1291509836 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : * section header table. However, only the former is required in order < 1291509836 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : * for the OS to load, link and execute a program. < 1291509837 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: See above. < 1291509844 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1291509855 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, and does the former define what is read only and read-write? < 1291509862 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: One would presume so :P < 1291509873 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :sstrip has basically no effects on any program in my testing. < 1291509880 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Well, unless the compiler does Weird Thangs. < 1291509887 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :No effect apart from dramatic size reduction, that is. < 1291509917 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, not dramatic for large binaries I presume < 1291509935 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :$ egrep -r 'malloc|calloc|alloca|printf|fopen|fwrite' bin < 1291509936 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :$ < 1291509941 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Behold my not-using-most-of-libc skillz. < 1291509948 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Well, at least as dramatic as strip -s. < 1291509960 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And perhaps up to a kilobyte more? Maybe? < 1291509973 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: It also strips trailing zeroes, which you can't do if you have a section header apparently. < 1291509979 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And I seem to recall seeing quite a lot of them in most ELF files. < 1291509990 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :So sstrip is definitely worthwhile for a final-product no-debugging type thing. < 1291510014 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I'd want debug symbol packages available :P < 1291510026 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Do you do "strip -s" before debugging? No? < 1291510030 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Then you wouldn't sstrip either. :p < 1291510041 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I do aptitude install libsdl-dbgsym :P < 1291510045 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :and so on < 1291510054 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: (Of course if debuggers were actually *useful* and not destroyed by most optimisation and a pain beside, then you wouldn't want to strip anything; see Lisp Machines.) < 1291510071 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(But on Unix, for a non-development program, a smaller size is almost always vastly more useful than that.) < 1291510072 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, debuggers are still useful < 1291510078 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Not outside of development. < 1291510084 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And, uh, the occasional bug report. < 1291510088 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, indeed. < 1291510088 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Which is basically development. < 1291510098 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, and unix is so buggy you want lots of bug reports :P < 1291510105 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, did you still want to shave off that trailing \0 from that char array? < 1291510118 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :like months[] = "foobarquu" < 1291510120 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I would ... not be ... averse to doing so... < 1291510129 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :But I don't want to write {'a','b','c'} etc. :P < 1291510129 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, just give the size in the [] < 1291510139 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, to be exact fit without the zero byte < 1291510142 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Yeah, I just realised that. I'll get a warning though. Well. I would get a warning if pcc was any good with warnings. < 1291510152 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(It seems to go into "TRUST THE PROGRAMMER" mode if you specify -nostdlib -nostdinc.) < 1291510164 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I occasionally compile it with gcc just to see what headers I forgot :P < 1291510169 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1291510190 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, -Wall -Wextra -pedantic -std=c89? < 1291510210 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :of course C99 is nicer < 1291510214 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :but I doubt you would use that < 1291510219 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: pcc doesn't have any warning options; all the warnings that exist are always on. < 1291510224 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(There do not exist terribly many.) < 1291510228 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(But there's a few.) < 1291510228 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I meant for gcc checking < 1291510250 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Oh. Yeah. Well, usually I just do CC=gcc. But CC="gcc -std=c89 -Wall -pedantic" is a more thorough check. < 1291510261 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, -Wextra! < 1291510267 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :-Werror < 1291510269 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: No, no thank you. < 1291510273 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: You are a horrible human being. < 1291510274 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, why not < 1291510290 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Because it's mostly noise. Hey, Linus agrees with me, and lord knows he never does or says anything wrong! < 1291510292 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, -Wwrite-strings < 1291510299 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, :P < 1291510309 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :$ make CC="gcc -std=c89 -Wall -Wextra -Wwrite-strings -pedantic" < 1291510312 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Ha ha, endless warnings for all. < 1291510324 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :warning: initialization discards qualifiers from pointer target type < 1291510324 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :warning: initialization discards qualifiers from pointer target type < 1291510324 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :warning: initialization discards qualifiers from pointer target type < 1291510324 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :warning: initialization discards qualifiers from pointer target type < 1291510325 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :warning: initialization discards qualifiers from pointer target type < 1291510327 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ouch < 1291510330 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :just imagine that x1000 < 1291510332 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, you forgot const < 1291510335 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: not really, that's basically deliberate < 1291510343 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: const correctness is vastly overrated and hinders the readability of code < 1291510343 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, why deliberate? < 1291510349 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and I'm old school < 1291510366 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, "type checking is vastly overrated and hinders readability of haskell code" < 1291510385 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :untyped haskell ftw < 1291510387 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Maybe if cc could infer my consts I'd say differently, then. < 1291510392 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :OH SNAP RIGHT BACK ATYA < 1291510396 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*ACTHA < 1291510399 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*ATCHA < 1291510408 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, what? < 1291510422 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :untyped haskell sounds completely wtf < 1291510455 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, const decrease binary size < 1291510463 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, because it can get rid of one page < 1291510464 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :for .data < 1291510472 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :if you are lucky you just have .rodata < 1291510478 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :bin/kill.c:39: warning: implicit declaration of function ‘kill’ < 1291510478 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(and you will probably have that anyway < 1291510479 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Wtf. < 1291510487 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I included all the headers in the man page. < 1291510489 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, oh probably -std=c89 < 1291510491 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, that does that < 1291510493 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1291510501 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, it doesn't think you want POSIX extensions then < 1291510517 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :How do you turn off qualifier-discarding warnings? It's drowning out all the stuff I /want/ to fix. < 1291510526 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Also, I'm now tempted to try out consting EVERYTHING and seeing if binary size really decreases. < 1291510526 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :-D_POSIX_C_SOURCE=200112L < 1291510528 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, ^ < 1291510533 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Or just ignore that one :P < 1291510536 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : How do you turn off qualifier-discarding warnings? It's drowning out all the stuff I /want/ to fix. < 1291510537 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :is more important < 1291510549 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, well if there are many of them then it might help to add that -D < 1291510554 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Only one. < 1291510557 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1291510561 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I wonder what people who do -Wextra -Werror do when they get "unused variable argc!!" < 1291510573 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, as for turning of that: removing -Wwrite-string would drop a few < 1291510588 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Indeed, that does it. < 1291510590 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Thanks. < 1291510596 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, __attribute__((unusued)) maybe? < 1291510603 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :bin/chroot.c:15: warning: implicit declaration of function ‘chroot’ < 1291510603 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :bin/date.c:11: warning: unused parameter ‘argc’ < 1291510604 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :bin/env.c:8: warning: unused parameter ‘argc’ < 1291510606 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :bin/kill.c:39: warning: implicit declaration of function ‘kill’ < 1291510607 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :bin/signal.c:21: warning: comparison between signed and unsigned integer expressions < 1291510618 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Two incorrect warnings, two irrelevant warnings, and one really really pedantic warning. < 1291510620 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, the last one sounds a potential problems < 1291510631 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : for (j = 0; j < 7 - strlen(signals[i].name); j++) < 1291510634 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Not really. < 1291510635 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, -Wno-unused-parameter < 1291510645 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :or something like that < 1291510658 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, strlen returns size_t < 1291510662 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, what is your j < 1291510662 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : -D_POSIX_C_SOURCE=200112L < 1291510665 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Still warns about chroot. < 1291510668 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, huh < 1291510670 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Even though I've included . < 1291510674 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(Is chroot POSIX? Probably not.) < 1291510677 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : chroot(): < 1291510677 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : Since glibc 2.2.2: < 1291510677 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : _BSD_SOURCE || < 1291510677 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : (_XOPEN_SOURCE >= 500 || < 1291510677 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) && < 1291510678 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : !(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) < 1291510680 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : Before glibc 2.2.2: none < 1291510682 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :yeargh! < 1291510685 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1291510704 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: j is an int. (I would love to see a system with so many signals that it overflows. signals is a constant array anyway.) < 1291510709 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :int is smaller than size_t usually :P < 1291510714 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Maybe I'll make everything char. < 1291510721 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :bin/mkdir.o: In function `main': < 1291510721 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :mkdir.c:(.text+0x457): undefined reference to `__posix_getopt' < 1291510725 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :lol ld --gc-sections is so stupid < 1291510729 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :good thing it works with pcc :P < 1291510740 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(yes, it does decrease the binary size) < 1291510748 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Okay, Operation Const. Time to see if your THEORY has any MERIT! < 1291510749 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :then pcc is doing something stupid < 1291510754 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :No it isn't. < 1291510758 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, it does help in many cases < 1291510760 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ld --gc-sections is *really* naive. < 1291510770 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pcc/dietlibc happens to not trigger it. < 1291510771 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, if it needs gc-sections it is doing something stupid < 1291510780 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Um, --gc-sections helps with gcc too. < 1291510789 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I didn't say gcc wasn't stupid as well < 1291510802 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: At least pcc has "70s" as an excuse :P < 1291510816 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :It is a very reliable compiler though. Just not a super-feature-rich one. < 1291510828 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Okay, time to const EVERY SINGLE THING IN CAT. < 1291510841 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Ha, argc and argv are both mutated in this program. < 1291510852 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, remember to do const char * const foo = ... < 1291510853 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :In fact, uh, yup, cat has nothing I can const. < 1291510856 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :if you have such constructs < 1291510857 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(Except the barfu library function, but.) < 1291510871 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Unless this saves a DRAMATIC amount of space, it's so ugly I don't care :P < 1291510881 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :7863 bin/cal < 1291510883 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :That's the score to beat. < 1291510883 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, it saved over 1 KB in mosaic I remember < 1291510897 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Over 1K... in a gigantic program. < 1291510902 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :SOUNDS WORTH IT < 1291510908 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, well check it < 1291510916 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I am. < 1291510918 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Time to constify cal.c. < 1291510920 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Constipate. < 1291510922 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, also look at readelf for .data and .rodata sections < 1291510925 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Yes, let's go with that. Constipate. < 1291510942 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, "så konstigt" < 1291510942 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :static const char const shortmonths[3 * 12] = < 1291510947 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :That's not right, is it. < 1291510947 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, what :P < 1291510949 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :How do you say that? < 1291510953 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :shortmonths[...] const? :P < 1291510956 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I believe the const goes inside the [] < 1291510957 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :shortmonths const [...]? :P < 1291510961 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: ...really? < 1291510962 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, not completely sure < 1291510970 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :static const char shortmonths[3 * 12 const] = < 1291510973 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :MOST RIDICULOUS THING EVER :P < 1291510977 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, check it < 1291510980 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :though < 1291510992 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :I thought it was static const char shortmonths[const 3 * 12] < 1291511002 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Syntax error :P < 1291511003 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :For both forms. < 1291511007 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, actually I don't think that inner const matters < 1291511011 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :since it is after all an array < 1291511013 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :not a pointer < 1291511018 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: WHAT WOULD YOU KNOW < 1291511034 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Okay fine. < 1291511034 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, your innermost secret? < 1291511040 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :What is it? < 1291511048 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, buggered if I knew :P < 1291511058 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Buggery and the Pirate Tradition < 1291511067 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :am i doin it rite Gregor < 1291511074 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :what < 1291511094 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, also this will help at runtime < 1291511100 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, since const stuff can be shared < 1291511105 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :between running instances < 1291511113 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: "char *const daydec;" means that I never do "daydec = ...", just "daydec[n] = ..." right? < 1291511123 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1291511126 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :const char *daydec; < 1291511127 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, err yeah < 1291511129 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :daydec = ultostr(day); < 1291511137 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :is that kosher if ultostr modifies a global buffer before returning? < 1291511142 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and returns that global buffer < 1291511142 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, thus it will be faster since less data will have to be copied to a new page by t he kernel when the app is run < 1291511147 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :as long as /I/ never mutate it later < 1291511153 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :yes/no? < 1291511157 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, should be < 1291511162 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1291511164 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, as you state the problem it should be < 1291511197 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, check with valgrind. Always do that for any program written in C. It is _always_ a good idea. < 1291511206 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :as long as you aren't linking to a crazy gc that is < 1291511233 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(crazy gc: anything that doesn't work with valgrind in this context) < 1291511235 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :7863 bin/cal < 1291511235 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : CC cal < 1291511235 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :7863 bin/cal < 1291511238 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Fully consted. < 1291511239 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :NO DAMN CHANGE AT ALL < 1291511244 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And code is now 110% ugly. < 1291511247 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, what about .data vs. .rodata? < 1291511249 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, remember speed < 1291511251 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :when copying < 1291511257 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :because less copying < 1291511263 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :due to shared data < 1291511273 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I don't really care how fast these utilities run, I have trivially-unrollable loops that I don't because of size :P < 1291511277 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :A clock cycle takes ~0 seconds. < 1291511293 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: In fact, fuck reasonability. I'm going to constipate the util.h functions too. < 1291511296 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, but what about my 386? < 1291511315 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: You do realise BusyBox, designed for tiny slow hardware, optimises for size waay above speed? :P < 1291511316 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :It pays off. < 1291511323 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, indeed < 1291511329 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, what about my pentium4 then? < 1291511332 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :It pays off on modern machines, too. < 1291511336 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Your Pentium 4 is like unto an abortion. < 1291511348 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, p4 unrolling probably pays off < 1291511356 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :P4 throwing out of a window pays off :P < 1291511371 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, yes in the electricity bill < 1291511391 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :static const char *const ultostr(const unsigned long i) < 1291511409 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :7863 bin/cal < 1291511412 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, well duh there it won't do anything except help you catch errors < 1291511414 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Conclusion: const does FUCK ALL :P < 1291511427 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, it is for static variables that it often helps < 1291511435 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Yep. Did it to every static variable (and cal.c has a lot). < 1291511445 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :weir < 1291511447 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :weird* < 1291511457 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Maybe pcc is just TOO DUMB to do ANYTHING with them :P < 1291511460 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, btw how many cm snow over in UK so far? < 1291511460 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :IIRC a few binaries even have their rodata sections stripped by --gc-sections. < 1291511464 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :So const there is likely to HURT things :P < 1291511474 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, wtf :P < 1291511476 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I don't measure the snow... but a decent amount (quite a lot) by our standards. < 1291511480 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, your setup = crazy < 1291511483 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Probably not much by your Swedish standards. < 1291511484 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, half a meter yet? < 1291511490 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Nnnnnnnnno :P < 1291511493 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Not that I know of at least X_D < 1291511494 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*X-D < 1291511496 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, ah, nothing then < 1291511511 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: You can't make me feel small, I'd like to live in Scandinavia. < 1291511518 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I LOVE SNOW (as long as I stay indoors forever) < 1291511539 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :#define WANT_BARFX < 1291511545 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I remember that periodicvideo youtube clip where they went to Sweden last year < 1291511555 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I have not once regretted my choice of "barf" as the standard name for the error-reporting function. < 1291511559 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :barf, barfu, and barfx. < 1291511568 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :The middle one sounds amusingly Asian-stereotypy. < 1291511572 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :barfu desu < 1291511585 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :I loved the comment about who he said "I got this brush when I hired the car, I wonder what it is for... but I do have a feeling the car might be snowy" < 1291511587 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :or something like that < 1291511601 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1291511625 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, after all, yttrium, ytterbium, erbium, and terbium are all named after the same place in Sweden < 1291511639 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :s/who/how/ < 1291511640 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Coldium < 1291511645 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, har har < 1291511669 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I should visit Stockholm some time. ("You know, just one day. No big deal!") < 1291511677 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :("I might just spontaneously decide to go there.") < 1291511682 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, let me find the clip < 1291511683 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :("It's on my TODO list.") < 1291511719 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :We've got snow here. < 1291511723 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Snow on the high seas. < 1291511725 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Snow and the pirate tradition. < 1291511731 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :What I'm trying to say here is sodomy. < 1291511773 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Sodomy and the Sodomical Tradition < 1291511801 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, about 55 seconds into http://www.youtube.com/watch?v=F9QmVM536Ks < 1291511823 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, until 1:20 < 1291511826 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Ouch, interlacing. < 1291511846 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, also some other cool winter scenery after that < 1291511852 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, including a large snow plow < 1291511853 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: But the interlacing! < 1291511877 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1291511885 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: This flight path is rather indirect :P < 1291511889 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(To Stockholm) < 1291511894 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, well yeah < 1291511911 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Is it usually that snowy in the summer? :p < 1291511925 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, that is the winter duh < 1291511933 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :HE SAID NICE SUMMER WEATHER < 1291511937 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I INTERPRET HIS STATEMENTS LITERALLY < 1291511953 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, "nice sunny" < 1291511959 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Oh :P < 1291511960 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, not "summer" < 1291511979 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, at least I think he said that < 1291512074 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: i don't think these guys used a staircase mine < 1291512084 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :drills? why didn't they use a pickaxe? < 1291512097 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, :P < 1291512102 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :explosives? dude, they must be really impatient, diamond pickaxe mines everything in like a second < 1291512187 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, :P < 1291512285 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :chroot is stupidly simple :P < 1291512353 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I love how little POSIX specifies. < 1291512374 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :You could have the craziest file hierarchy ever, have no chroot(), no mmap(), no mount(), and still be POSIX-compliant. < 1291512379 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Yet it specifies SCCS. < 1291512380 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :So silley. < 1291512677 0 :Zuu!zuu@0x55529f1b.adsl.cybercity.dk JOIN :#esoteric < 1291513221 0 :sebbu2!~sebbu@ADijon-152-1-36-248.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1291513339 0 :sebbu!unknown@unknown.invalid QUIT :Ping timeout: 272 seconds < 1291513648 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: The only thing worse than putting an interlaced video up on Youtube is scaling it as though it were progressive before uploading it. < 1291513655 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(you CANNOT FIX THAT) < 1291513828 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: So I totally have a mostly-working malloc. < 1291513831 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And chroot. < 1291513835 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And things! < 1291513847 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Any benefit over dietlibc malloc? < 1291513856 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: I mean mkdir. < 1291513861 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :God dammit why do I keep making that typo. < 1291513916 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Oh, and uname. Did I have uname last time? Whatever. < 1291513935 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: BTW, question: You know the common "#!/usr/bin/env interp" trick? < 1291513945 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Any suggestions as for how to get that working if you don't have /usr? < 1291514069 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well, you could get Linux to think that "#!/usr/bin/env" is the magic for a new binary format. < 1291514121 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Which, BTW, was done. < 1291514131 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: That video is impossible to fix. < 1291514137 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: You need the space there too. But yeah, I thought that, and then I realised "wait, it'd be easier just to patch exec to special-case /usr/bin/env". < 1291514158 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Actually, no, it wouldn't be easier. < 1291514168 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: No? < 1291514179 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Linux lets you register an interpreter for a binary format just by writing to some file in proc. < 1291514185 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: True. < 1291514192 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Lemme try it... < 1291514206 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I've used it for Java, WINE, and Plof in the past. < 1291514220 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"To register a new binary format you have to issue the command echo :name:type:offset:magic:mask:interpreter: > /proc/sys/fs/binfmt_misc/register with appropriate name (the name for the /proc-dir entry), offset (defaults to 0, if omitted), magic, mask (which can be omitted, defaults to all 0xff) and last but not least, the interpreter that is to be invoked (for example and testing /bin/echo). Type can < 1291514220 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :be M for usual magic matching or E for filename extension matching (give extension in place of magic). If you do a cat on the file /proc/sys/fs/binfmt_misc/status, you will get the current status (enabled/disabled) of binfmt_misc." < 1291514226 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Plof? Wow :P < 1291514245 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Wow, there's Python in there. < 1291514247 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Also CLI, and jar. < 1291514248 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Already. < 1291514287 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: How does one work out the magic? Just the hex of the magic? What endianness? (Does it matter?) < 1291514290 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Can you have multiple magics? < 1291514307 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, okay. I don't really care. It is still cool < 1291514322 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Never mind, I totally fixed it. < 1291514329 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, okay? < 1291514333 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: -vf yadif,fspp=5 makes it tolerable. < 1291514341 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, I can tolerate it as it is < 1291514351 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, I don't know what it is with you < 1291514359 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, also is that to vlc? < 1291514362 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Actually, it /is/ really irritating. < 1291514363 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Mplayer. < 1291514369 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Why would you ever use VLC? < 1291514372 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :It's like mplayer but worse. < 1291514377 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Especially for subtitles. < 1291514382 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: what is maaagic :P < 1291514386 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, oh? I don't use subtitles < 1291514399 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Uh, it will be a string that it should look for. < 1291514406 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Probably because you don't watch foreign-language content... < 1291514413 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Python's is "magic d1f20d0a" from the proc thing < 1291514418 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :So are you sure about that? < 1291514419 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, indeed I don't < 1291514433 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Or is that just how /proc shows it when I cat? < 1291514443 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Probably just proc being weird. < 1291514457 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: So you can't have a magic with : in it then... < 1291514462 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Also, can you have multiple magics? < 1291514467 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Hmm. Maybe it's a hex string. < 1291514491 0 :FireFly!unknown@unknown.invalid QUIT :Quit: swatted to death < 1291514503 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :No, indeed, that seems to work. < 1291514508 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :But do I really need two interpreters for two magics? < 1291514545 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott: I dunno. I guess you'd need two entries for two magics. < 1291514546 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :um < 1291514558 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, doesn't #! detection come before binfmt_misc? < 1291514563 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :as in: < 1291514565 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: No. < 1291514566 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I just tried it. < 1291514569 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :#!bork registered. < 1291514581 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I thought lookup order was: ELF, a.out, #!, binfmt_misc < 1291514595 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: binfmt_misc always comes first < 1291514597 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :yes it would register, but would it work? < 1291514597 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :binfmt_misc overrides. < 1291514600 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1291514602 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :weird < 1291514602 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :It worked, I tested it. < 1291514604 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :With #!bork.l < 1291514606 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*no l < 1291514614 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Qemu has a script to set up binfmt_misc for foreign ELFs. < 1291514617 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You can, in fact, make Linux valgrind everything. < 1291514618 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Now how do you get rid of an interpreter...? < 1291514630 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, what about valgrind itself < 1291514635 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :wouldn't this get recursive < 1291514636 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Wouldn't that get into some horrible binfmt_misc loop? :P < 1291514646 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: It's valgrind all the way down. < 1291514651 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1291514654 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :X-D < 1291514657 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :<3 < 1291514659 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Alternately, you could set up a noöp interpreter for valgrind. < 1291514663 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :NO < 1291514668 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I approve of this meta-valgrind technology. < 1291514672 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Just evaluate the valgrinds lazily. < 1291514692 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :actually I seem to remember it does loop detection nowdays < 1291514710 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :it must hit ELF or a.out within n layers < 1291514721 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Seriously, how do I remove an interpreter? :P < 1291514727 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, you read the man page < 1291514728 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: You can't. < 1291514734 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :I think you can < 1291514739 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :pretty sure you can < 1291514740 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: It compiles it into the kernel live, then it's stuck forever, even through reboots. < 1291514749 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Thought so. < 1291514753 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: *Which* manpage? < 1291514758 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :There is no binfmt_misc man page here. < 1291514759 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, buggered if I know < 1291514759 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: It even modifies the compiler so that if you compile a new kernel, you keep your binfmt_mscs. < 1291514760 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :*miscs < 1291514772 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Then stop being annoying just because you can't help... < 1291514774 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, trusting trust reference eh? < 1291514781 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: :P < 1291514786 0 :Sasha2!unknown@unknown.invalid QUIT :Remote host closed the connection < 1291514789 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I done it before, I just don't remember where < 1291514790 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :or how < 1291514792 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: But does it counteract Diverse Double-Compiling? http://www.dwheeler.com/trusting-trust/ < 1291514806 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, /usr/src/linux/Documentation I guess < 1291514807 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :check there < 1291514819 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, or whereever you have the kernel source < 1291514826 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I, like most people, do not have the kernel source on my system all the time. < 1291514838 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, well that is your problem < 1291514845 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Thankfully I have a copy here. < 1291514855 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Ah, you can select whatever : you want. < 1291514855 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :as I expected < 1291514861 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Still, you can't have a 256-char magic :P < 1291514864 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(Of all ASCII.) < 1291514869 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Only because of Kitten. < 1291514886 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : - 'magic' is the byte sequence binfmt_misc is matching for. The magic string < 1291514886 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : may contain hex-encoded characters like \x0a or \xA4. In a shell environment < 1291514886 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, again your problem < 1291514886 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : you will have to write \\x0a to prevent the shell from eating your \. < 1291514887 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Never mind :P < 1291514891 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Oh shut up. < 1291514902 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, only if I want to < 1291514911 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Seriously, tell him he's irritating. < 1291514930 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, is Gregor some sort of higher authority? < 1291514942 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :No, but if I can get pikhq on board too that's pretty solid. < 1291514979 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Ugh, I can't make /bin/env the interpreter, because it'll just see "/bin/env /path/to/foo". < 1291514990 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1291515001 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :E_INSUFFICIENTSODOMY < 1291515007 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, :D < 1291515018 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal loves the sodomy. < 1291515025 0 :sebbu2!unknown@unknown.invalid NICK :sebbu < 1291515025 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Apparently *shrugs* < 1291515035 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, sure why not < 1291515045 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :`addquote Vorpal loves the sodomy. elliott, sure why not < 1291515047 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(yes I know what the word means) < 1291515049 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: OPEN TO TRYING NEW THINGS. < 1291515052 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*ALWAYS OPEN < 1291515057 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :267| Vorpal loves the sodomy. elliott, sure why not < 1291515062 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott: You'd need to write a custom interpreter to parse the shebang line. < 1291515065 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, of course < 1291515080 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :This is Vorpal's really subtle way of coming out. < 1291515083 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :btw, wots all this you're doing with binfmt_misc anyway? < 1291515092 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :`addquote [...] ALWAYS OPEN TO TRYING NEW THINGS. < 1291515093 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: "#!/usr/bin/env interp" is very common. < 1291515094 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :268| [...] ALWAYS OPEN TO TRYING NEW THINGS. < 1291515097 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: I have no /usr. < 1291515103 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: My love of sodomy is no secret :P < 1291515107 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Thus, binfmt_misc < 1291515112 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Soooo ... ln -s /usr /? < 1291515118 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Err < 1291515119 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :ln -s / /usr < 1291515128 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: I refuse to accept such clutter. (But symlinking / to /usr sounds like fun.) < 1291515141 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: The HURD does it :P < 1291515163 0 :Sasha!~WHAT@97-124-32-141.phnx.qwest.net JOIN :#esoteric < 1291515166 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Also /X11R6, though that one may have gone away. < 1291515175 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1291515176 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: What, symlink / to /usr? :P < 1291515188 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, whaaat? < 1291515196 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, didn't you read that ln -s backwards < 1291515198 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: No, sodomy. < 1291515201 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : elliott: Soooo ... ln -s /usr /? < 1291515203 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: No, no I didn't. < 1291515209 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, oh wait < 1291515219 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I just saw ln -s / /usr < 1291515269 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, make it point to a custom wrapper file that just munges argv and passes the right thing to env < 1291515278 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, however it needs to read the file < 1291515281 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I have to parse the shebang, duh. < 1291515293 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, linux just passes #! along < 1291515297 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :not anything more than that < 1291515319 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: His problem is he wants #!/usr/whatever to work with no /usr < 1291515325 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :No, he understands. < 1291515341 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Ohoho, make it point to. < 1291515342 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :I should read. < 1291515347 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :But prefer not to. < 1291515350 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Sure, but I still have to open the file, read sizeof("#!/usr/bin/env")-1 bytes (or maybe one extra due to the space in some cases), read a space, read a space-terminated name, read a space-terminated argument, and make the call. < 1291515351 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, you need the same for #!/usr/bin/python and #!/usr/bin/perl and so on < 1291515355 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :So it's not exactly trivial. < 1291515358 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Nothing should do that :P < 1291515360 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And not much does. < 1291515367 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fairly common < 1291515370 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Not really. < 1291515372 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Only among bad programs. < 1291515378 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Are you unwilling to use stdio? < 1291515383 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And the distro solution to that is to s!/usr/bin/!/usr/bin/env !, usually. < 1291515385 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: What, in my coreutils? < 1291515396 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : So it's not exactly trivial. <-- uh the pseudo code fitted into one line of IRC < 1291515398 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1291515400 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: In your binfmt_misc /usr-shebang wrappermajig. < 1291515406 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: It's not as trivial as one echo line :P < 1291515416 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Even if I was willing, why would it affect anything? < 1291515417 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, it is not as trivial as a nop yeah < 1291515418 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: scanf? :P < 1291515425 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Then it's just fgets and strchr < 1291515438 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: ...you do realise that fgets ~= read? < 1291515443 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :For this purpose. < 1291515450 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: fgets always reads lines, and you want one line. < 1291515458 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Stop when you encounter a \n, problem solved. < 1291515464 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fgets can read only part of a line if the buffer is too small, anyway. < 1291515474 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, getline < 1291515477 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: stdio does not make this significantly easier at all :P < 1291515478 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Finefine; in that case, strchr is sufficient < 1291515479 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Die in a fire. < 1291515488 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Good thing I have no objection to strchr, then. < 1291515488 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :strchr being in string, not stdio, but eh :P < 1291515489 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, it is in poisix 2008 iirc < 1291515494 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :posix* < 1291515506 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: But note that I'll have to handle the argument being terminated by space OR \n. < 1291515508 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Or, in fact, EOF. < 1291515511 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :SO COMPLICATED < 1291515514 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: It shouldn't be. < 1291515518 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, it is < 1291515520 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :lawl < 1291515522 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: It shouldn't be. < 1291515531 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Maybe I could do it as a perl script. :P < 1291515532 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :MWAHAHA < 1291515560 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, strtok? < 1291515568 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Why even bother... < 1291515571 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :It's a trivial C program :P < 1291515572 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, :P < 1291515576 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, uh < 1291515597 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Okay, if you can wait like 15 minutes I can give you a better version of that Youtube video. Just so you can see how much of a difference simple things like "deinterlacing" can make. < 1291515613 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Your tormenting Vorpal has little effect on him :P < 1291515618 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :`addquote So it's not exactly trivial. [Later about same thing] It's a trivial C program :P < 1291515623 0 :p_q!~poiuy_qwe@69.157.46.244 JOIN :#esoteric < 1291515628 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :269| So it's not exactly trivial. [Later about same thing] It's a trivial C program :P < 1291515636 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, nah I'm going to sleep < 1291515662 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, I'm sure it is better but I'm not very bothered by it < 1291515691 0 :poiuy_qwert!unknown@unknown.invalid QUIT :Ping timeout: 245 seconds < 1291515695 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: So, you're not bothered by the random horizontal lines EVERYWHERE there is motion? < 1291515710 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, not in that case, wasn't very noticable < 1291515719 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :noticeable* < 1291515723 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :now, night → < 1291515782 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal must be blind. < 1291515905 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: OK, so let's say I have /libexec/runenv and /libexec/runenvspace. < 1291515911 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And they're identical except one reads one byte more at the start. < 1291515919 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And then I just register them as the interpreters for the two magics you'd expect. < 1291515926 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Job done. < 1291515957 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, that should keep the /usr/bin/env trick "just working" nice and easy. < 1291515983 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :May have to do more formats for, say, #!/usr/bin/perl or something. < 1291515991 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But that should be much easier to handle. < 1291516076 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: the solution for that is to edit the file to use /usr/bin/env :P < 1291516095 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Okay, true, that functions just as well. < 1291516319 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: So what command should I do next batman :P < 1291516514 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :rm < 1291516529 0 :Sasha!unknown@unknown.invalid QUIT :Remote host closed the connection < 1291516550 0 :Sasha!~WHAT@97-124-32-141.phnx.qwest.net JOIN :#esoteric < 1291516590 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: http://www.opengroup.org/onlinepubs/9699919799/utilities/rm.html LOOK AT THE COMPLEXITY < 1291516612 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Okay, so it's actually pretty simple. < 1291516648 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Do you have shar yet? :P < 1291516661 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Why do you ask? < 1291516686 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Because I'll bet it's obscenely complicated and harassing you is fun? < 1291516699 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: shar is not actually posix :P < 1291516714 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Anyway, as far as "obscenely complicated" goes, dude, I've written most of a dd/shar creator in dd/sh. < 1291516736 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :That is: Using only the Bourne shell and dd, I've written a program which takes a bunch of file names and outputs a program using only dd and sh to unpack them again. < 1291516741 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :SO I THINK I'M HARDCORE ENOUGH < 1291516775 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: How 'bout script(1)? < 1291516794 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Yes, yes, totally. Believe it. < 1291516864 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Okay, I've got a highly-improved version of that Ytterby video, and nowhere to upload it. Poo. < 1291516878 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: filebin.ca if it's <50mb < 1291516897 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It is 54mb. < 1291516999 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: gzip it :P < 1291517001 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Or lzma it. < 1291517002 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Or anything. < 1291517008 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Even if it's already-compressed. < 1291517036 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Come on, small amounts of redundancy! < 1291517066 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Okay, xz doesn't reduce the size. < 1291517083 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :xz -9, though? < 1291517098 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Compile an asm program that just prints it out, and UPX --ultra-brute it. < 1291517302 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Eh, whatever. The point is, Vorpal is blinder than a bat, and I shall never trust his opinions on video quality. < 1291517359 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I think he acknowledges the complaint but just doesn't care :P < 1291517420 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The point is, Vorpal is blinder than a bat, and I shall never trust his opinions on video quality. < 1291517426 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION almost considers just using VMware Server < 1291517438 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: You will regret it. < 1291517448 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :VMware Server has the worst UI I have seen. < 1291517456 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :VBox whatever doesn't like Windows 98 < 1291517458 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AJAX to localhost. < 1291517463 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AJAX. To. Localhost. < 1291517484 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Let < 1291517493 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Let's see if I can get sound on here, maybe I'll make do with that < 1291517501 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And just ignore lack of integration < 1291517508 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: I am considering writing my own getopt. < 1291517517 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :dietlibc's seems to be more than, like, three bytes, which is unacceptable. < 1291518811 0 :Zuu!unknown@unknown.invalid QUIT :Ping timeout: 272 seconds < 1291519591 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Guess what the hardest part of writing rm is. < 1291519715 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :What? < 1291519732 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: -i. < 1291519753 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... < 1291519760 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, that would actually be annoying. < 1291519792 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: I dare you to write a routine using only read and write that (1) reads a line from standard input; (2) saves whether the first character is y or not; (3) discards the rest of the input up to the newline but (4) keeps the rest to use on the next call. < 1291519797 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :It's possible but irritating. < 1291519810 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and (5) returns the first-char-is-y flag. < 1291520074 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Well go on, I sure don't want to :P < 1291520367 0 :Sasha!unknown@unknown.invalid PRIVMSG #esoteric :Oo, flags < 1291520676 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :bin/rm.c, line 57: cannot recover from earlier errors: goodbye! < 1291520744 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: int yes() { char c, d; read(0, &c, 1); d = c; while (d != '\n') read(0, &d, 1); return (c == 'y' || c == 'Y'); } < 1291520776 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: I was fucking around with a buffer X-D < 1291520778 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :You win. < 1291520783 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(Although error-check that read call, man!) < 1291520791 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1291520804 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Admittedly it's pretty inefficient, but we're talking about rm -i here ;) < 1291520820 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Yeah :P < 1291520882 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: That seems to wait for a double newline sometimes for me... < 1291520886 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION attempts to fix Brazil despite having little knowledge of either Brazil or Win32 < 1291520901 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: That's ... weird? < 1291520907 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Yeah... < 1291520911 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: brazil is beyond fixing. < 1291520986 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Something is up with this code :P < 1291521017 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :My code is given with NO WARRANTY < 1291521037 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :OHWAIT < 1291521039 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: EXPRESS OR IMPLIED? < 1291521039 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Nowait < 1291521040 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Unohwait < 1291521048 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Yeah I keep going OH and then wait no. < 1291521051 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: WHATSOEVER < 1291521054 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :static int ask() < 1291521054 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :{ < 1291521054 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : char reply, c; < 1291521054 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : if (read(0, &reply, 1) <= 0) return 0; < 1291521054 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : c = reply; < 1291521055 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : while (c != '\n') < 1291521056 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : if (read(0, &c, 1) <= 0) return 0; < 1291521058 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : return (reply == 'y' || reply == 'Y'); < 1291521060 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :} < 1291521062 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :is my function fwiw < 1291521085 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :That's ... pretty obviously OK. < 1291521150 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :I can only speculate that you're calling it wrong somewhere :P < 1291521153 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :...LOL < 1291521156 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : writes(2, "Remove "); < 1291521156 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : write(2, path, strlen(path)); < 1291521156 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : write(2, "? ", 2); < 1291521156 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : read(0, buf, 2); < 1291521156 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : if (!ask()) return 1; < 1291521172 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :... yeah. < 1291521175 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Like that, for example. < 1291521187 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :$ yes | bin/rm -i x y z < 1291521187 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Remove x? Remove y? Remove z? elliott@dinky:~/code/tools$ < 1291521189 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Ouch. < 1291521206 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :But ... that's correct though. < 1291521207 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Heh, /bin/rm does the same, so let's ignore that. < 1291521213 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Yes, but ugly :P < 1291521217 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Ah :P < 1291521227 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Now to do -r and it'll be done. < 1291521243 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Have you written sh yet? :P < 1291521268 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: No. sh, if I do write it, will be in the "more commands!" set, and will do scripts only, designed for init scripts and the like. Interactive users should use a ksh. < 1291521309 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: There'll be three sets: the core utilities, i.e. what I'm writing now; the additional utilities, like awk and sh; and the extra utilities, like wget and ping and all that stuff. < 1291521315 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*three sets of utilities: < 1291521341 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :At which level does the user become tainGNUted? < 1291521360 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: All code is original. By wget I mean "a reimplementation of wget". < 1291521366 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Ahhhhh < 1291521367 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Oh, things like cpio will also be in the last set. < 1291521380 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Of course I'm just as likely to write "wget: the curl wrapper!", but you get the idea. :P < 1291521387 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :And at what level do you get KDE4? < 1291521397 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: The level accessed by "rm -rf /". < 1291521401 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1291521405 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And unlike some pussy competitor products, *my* rm won't refuse to do that. < 1291521443 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: To be fair, the diagnostic about rm -rf / isn't about not accidentally removing everything, it's about the fact that you cannot, in fact, remove the root directory. < 1291521468 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: But the manual tells you it's For Your Own Good. :p < 1291521481 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Suresure. < 1291521490 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: And no, but you can remove everything on the system and then try, and fail to unlink the root directory, print out an appropriate diagnostic, and dump the user back to a now-completely-useless shell prompt. < 1291521496 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Just like they asked you to. < 1291521504 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Fair point :P < 1291521513 0 :augur!unknown@unknown.invalid QUIT :Remote host closed the connection < 1291521666 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Ha, POSIX requires me to not prompt the user on a file without write permissions if standard input isn't a terminal. < 1291521673 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :isatty! < 1291521677 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Is a titty. < 1291521704 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :# < 1291521704 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :If file is not of type directory, the -f option is not specified, and either the permissions of file do not permit writing and the standard input is a terminal or the -i option is specified, rm shall write a prompt to the standard error and read a line from the standard input. If the response is not affirmative, rm shall do nothing more with the current file and go on to any remaining files. < 1291521716 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Pop quiz: What happens if this case happens but standard input isn't a terminal and -i is not specified? < 1291521722 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Error? Silent acceptance? < 1291521728 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Demons flying out of your nose, washing the Windows API? < 1291521749 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(I say: print a diagnostic and exit(1).) < 1291521754 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Well. < 1291521760 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(I say: print a diagnostic, process other files, and exit(1).) < 1291521809 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :"process other files"? < 1291521810 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Silent acceptance, almost assuredly. < 1291521848 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I KILLED JIMBO! :( < 1291521889 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : } < 1291521889 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : if (((S_ISDIR(st) && recurse && rmdir(path) < 0) < 1291521890 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : || unlink(path) < 0) < 1291521890 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : && !force) { < 1291521890 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : barfx(path); < 1291521890 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : return 0; < 1291521892 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : } < 1291521894 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :what have i done. < 1291521915 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :recu... oh < 1291521927 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :bin/rm.c, line 24: no alignment < 1291521927 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :what < 1291521931 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : struct stat st; < 1291521944 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Isn't there some language where you have to say recurse() instead of the function's name, or something? < 1291521947 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Oh, it doesn't know what it is. < 1291521952 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Sure? < 1291521954 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I guess. < 1291521957 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I vaguely recall that. < 1291522004 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Since the name is not defined during the thing... Forth < 1291522005 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :? < 1291522050 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: < 1291522050 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : if (((S_ISDIR(st.st_mode) && recurse && rmdir(path) < 0) < 1291522051 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : || unlink(path) < 0) < 1291522051 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : && !force) { < 1291522063 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Spot the bug that makes "rm -r dir" manage to remove dir but then spew out: < 1291522068 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :dir: No such file or directory < 1291522125 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : 7967 rm < 1291522128 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Just need to add recursion and it's done. < 1291522177 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: No GNU code is actually looking pretty likely at this junction :P < 1291522181 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :G'night folks. < 1291522183 0 :elliott!unknown@unknown.invalid QUIT :Quit: Leaving < 1291522452 0 :wareya!~wareya@cpe-74-70-142-220.nycap.res.rr.com JOIN :#esoteric < 1291522514 0 :wareya_!unknown@unknown.invalid QUIT :Read error: Operation timed out < 1291524719 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"Students Warned Not To Link To Or Even Read WikiLeaks If They Want A Federal Job" < 1291524778 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I thought that was one school, and a school that focuses on diplomacy < 1291524790 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :(Or maybe just sent to students looking into diplomacy) < 1291524795 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :State department. < 1291525039 0 :augur!~augur@208-59-167-26.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1291525316 0 :hagb4rd!unknown@unknown.invalid QUIT :Ping timeout: 245 seconds < 1291525399 0 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com JOIN :#esoteric < 1291525464 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I am making a variant of the Computer Modern fonts called Computer Hypermodern (I did change the filenames and the notice), which has three times as many parameters as Computer Modern. < 1291525551 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Respond to WM_VSCROLL is insufficient, isn't it? < 1291525640 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Do you mean for Windows? < 1291525668 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Yes < 1291525705 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I don't think it gets sent for scrolling via the mouse scroll thingy < 1291526815 0 :augur!unknown@unknown.invalid QUIT :Remote host closed the connection < 1291526906 0 :hagb4rd!~perdito@koln-4d0b6688.pool.mediaWays.net JOIN :#esoteric < 1291527025 0 :augur!~augur@208-59-167-26.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1291527292 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :EVERYONE: < 1291527296 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :What's your favorite libc function? < 1291529416 0 :hagb4rd!unknown@unknown.invalid QUIT :Ping timeout: 245 seconds < 1291529451 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :The one that turns the computer into SkyNet < 1291529583 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: I don't know! < 1291530534 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Will an old piece of music come to life if you tune your piano at random? < 1291530953 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but it will almost invariably be angry and murderous. < 1291531186 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :What does "HAMBURGEFONSTIV" mean? < 1291531663 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Is it a real word? < 1291531930 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :I'm gonna guess "fake word" :P < 1291531946 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :`translate hamburgefonstiv < 1291531947 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :hamburgefonstiv < 1291531954 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, I'm gonna guess "fake word" < 1291534275 0 :Sasha!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1291534311 0 :Sasha!~WHAT@97-124-32-141.phnx.qwest.net JOIN :#esoteric < 1291534427 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: My "favorite" libc function is, of course, gets! < 1291534523 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :X-D < 1291534564 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION stuffs malicious garbage inside pikhq  < 1291534736 0 :nopseudoidea!~nopseudoi@85-168-235-235.rev.numericable.fr JOIN :#esoteric < 1291534745 0 :nopseudoidea!unknown@unknown.invalid QUIT :Client Quit < 1291534777 0 :zzo38!unknown@unknown.invalid QUIT :Remote host closed the connection < 1291535999 0 :clog!unknown@unknown.invalid QUIT :ended < 1291536000 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1291536745 0 :augur!unknown@unknown.invalid QUIT :Remote host closed the connection < 1291537342 0 :augur!~augur@208.58.6.161 JOIN :#esoteric < 1291538743 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1291539164 0 :Goosey!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1291539291 0 :nopseudoidea!~nopseudoi@85-168-235-235.rev.numericable.fr JOIN :#esoteric < 1291539295 0 :nopseudoidea!unknown@unknown.invalid QUIT :Client Quit < 1291541080 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : I think he acknowledges the complaint but just doesn't care :P <-- correct, I do agree it would be better without the interlacing, but it doesn't bother me much < 1291541085 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, ^ < 1291541373 0 :cheater99!~cheater@e181137159.adsl.alicedsl.de JOIN :#esoteric < 1291541930 0 :kar8nga!~kar8nga@j-24.vc-graz.ac.at JOIN :#esoteric < 1291542759 0 :MigoMipo!~John@84-217-7-226.tn.glocalnet.net JOIN :#esoteric < 1291544495 0 :nopseudoidea!~nopseudoi@85-168-235-235.rev.numericable.fr JOIN :#esoteric < 1291545788 0 :Phantom_Hoover!~phantomho@cpc3-sgyl21-0-0-cust116.sgyl.cable.virginmedia.com JOIN :#esoteric < 1291546178 0 :ais523!unknown@unknown.invalid QUIT :Remote host closed the connection < 1291547044 0 :nopseudoidea!unknown@unknown.invalid QUIT :Quit: Quitte < 1291549183 0 :nopseudoidea!~nopseudoi@85-168-235-235.rev.numericable.fr JOIN :#esoteric < 1291549566 0 :nopseudoidea!unknown@unknown.invalid QUIT :Quit: Quitte < 1291549964 0 :nooga!~nooga@maverick.aircity.pl JOIN :#esoteric < 1291549967 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric ::S < 1291550190 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :bbl < 1291550214 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :http://besty.pl/upload/file/1019.jpg < 1291550546 0 :nopseudoidea!~nopseudoi@85-168-235-235.rev.numericable.fr JOIN :#esoteric < 1291551272 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :nooga, who is that? < 1291551587 0 :FireFly!~firefly@unaffiliated/firefly JOIN :#esoteric < 1291551613 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :i don't know < 1291551714 0 :oerjan!oerjan@tyrell.nvg.ntnu.no JOIN :#esoteric < 1291552957 0 :cheater99!unknown@unknown.invalid QUIT :Quit: Leaving < 1291553475 0 :Zuu!zuu@0x55529f1b.adsl.cybercity.dk JOIN :#esoteric < 1291553943 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :You know, of all of the things wrong with modern Western culture, I think the worst is recursive fame. < 1291553979 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :People on Celebrity Big Brother who are famous for /being on a previous series of Plebian Big Brother/. < 1291554179 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :When the aliens invade I shall collaborate vehemently. < 1291555995 0 :Phantom_Hoover!unknown@unknown.invalid QUIT :Remote host closed the connection < 1291556078 0 :Phantom_Hoover!~phantomho@cpc3-sgyl21-0-0-cust116.sgyl.cable.virginmedia.com JOIN :#esoteric < 1291556886 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott (for log reading): did some tests with pypy, it clocks in between cython and and the traditional cpython < 1291556918 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :the difference between each of them is about one order of magnitude < 1291556986 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :So which was fastest? < 1291557120 0 :nopseudoidea!unknown@unknown.invalid QUIT :Quit: Quitte < 1291558128 0 :cheater99!~cheater@e181137159.adsl.alicedsl.de JOIN :#esoteric < 1291559419 0 :nopseudoidea!~nopseudoi@85-168-235-235.rev.numericable.fr JOIN :#esoteric < 1291559467 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, as I said: cython < 1291559493 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(since I talked about that yesterday and cython was so much faster than cpython) < 1291559528 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonder when they'll try to write cuby or cruby < 1291559552 0 :Slereah!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1291559644 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :nooga, isn't the current one cruby, cpython is the name of the normal traditional python implementation written in C < 1291559879 0 :Slereah!~butt@ANantes-259-1-64-85.w92-135.abo.wanadoo.fr JOIN :#esoteric < 1291559907 0 :nopseudoidea!unknown@unknown.invalid QUIT :Remote host closed the connection < 1291560208 0 :nopseudoidea!~nopseudoi@85-168-235-235.rev.numericable.fr JOIN :#esoteric < 1291560394 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1291560415 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :so classic python is written in ... ? < 1291560421 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :C. < 1291560427 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1291560434 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :sry, i didn;t pay attention < 1291560452 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :they why do you call it cpython instead of python? < 1291560481 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Python is the language; CPython is the official implementation. < 1291560575 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1291560579 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :then cython ? < 1291560694 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Cython is some weird thing. < 1291561256 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :ok, then i'm waiting for cuby < 1291561293 0 :Sgeo!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1291561759 0 :elliott!~elliott@unaffiliated/elliott JOIN :#esoteric < 1291561953 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :21:34:52 EVERYONE: < 1291561954 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :21:34:56 What's your favorite libc function? < 1291561959 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Hey duuude I've asked that before. < 1291562063 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: My answer is: mmap, without contest. < 1291562065 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :06:32:08 * nooga wonder when they'll try to write cuby or cruby < 1291562078 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nooga: if you mean RubyRuby like PyPy, then it's called Rubinius. < 1291562295 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :i know about Rubinius < 1291562323 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :We are worms, we're the best, and we've come to win the war < 1291562370 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :isn't cython that awkward language that looks like python mixed with C ? < 1291562553 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nooga: Doesn't seem that awkward to me. < 1291562610 0 :Goosey!~goose124@99-60-156-25.lightspeed.elpstx.sbcglobal.net JOIN :#esoteric < 1291562937 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :[[In the United States, summer vacation lasts for almost 3 months.]] — WP < 1291562942 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :...how? < 1291562966 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: http://i.imgur.com/uwFQS.jpg LOL, SWEDEN < 1291562969 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Do they just not *have* Christmas and Easter holidays? < 1291562979 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Summer starts in JANUARY! < 1291563010 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Wait, elsewhere, summer doesn't last as long? < 1291563017 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Erm, vacation < 1291563021 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION suddenly wants to move < 1291563045 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, it's around 2 months here, although it depends on the school. < 1291563147 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :"The United States does not have national holidays in the sense of days on which all employees in the U.S. receive a day free from work and all business is halted. The U.S. Federal government can only recognize national holidays that pertain to its own employees; it is at the discretion of each state or local jurisdiction to determine official holiday schedules. There are eleven such Federal holidays, ten annual and one quadrennial holiday. < 1291563185 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :which includes christmas day, but not anything easter. < 1291563223 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, there are 2-week-long Christmas and Easter holidays, though/ < 1291563235 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Spring break == Easter, right? < 1291563288 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I assume. < 1291563297 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :So yeah, we have off < 1291563305 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :There are also half terms of around a week. < 1291563361 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Multiple ones, actually. < 1291563456 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i see some individual states have good friday, though < 1291563500 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, ask pikhq about US regulations about paid leave if you enjoy feeling smug. < 1291563523 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1291563587 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :"Often, universities schedule spring break such that Saint Patrick's Day falls during the week in order to lessen the amount of partying and drinking on their campuses. Many K–12 institutions in the United States coincide their spring break with Easter and Passover. In New York and Connecticut, most students have spring break in April. < 1291563608 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so it's not consistent < 1291563658 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(quotes from http://en.wikipedia.org/wiki/Public_holidays_in_the_United_States and http://en.wikipedia.org/wiki/Spring_break) < 1291564040 0 :Sasha!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1291564052 0 :Sasha!~WHAT@97-124-32-141.phnx.qwest.net JOIN :#esoteric < 1291564459 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Does util-linux count as GNU software? < 1291564681 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I never cease to be amazed by the glurge people are taken in by. < 1291564713 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: wut < 1291564754 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, latest moronic Facebook campaign: "Put a cartoon character as your picture TO STOP CHILD ABUSE!!1111!!!" < 1291564768 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Ah yes. < 1291564781 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Of course, noöne bothers giving any /money/ or anything, it only matters that you show that you care. < 1291564783 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I hated that so much that I beat up my three kids into a bloody pulp and they screamed. < 1291564804 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :And the fact that it seems to be for the NSPCC just paints another layer of revulsion on the thing. < 1291564817 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :BLOODY < 1291564819 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :PULP < 1291564822 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Also Sgeo for good measure. < 1291564855 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :You turned kids into me? < 1291564856 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1291564979 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: No, I beat you into a bloody pulp. < 1291565222 0 :nopseudoidea!unknown@unknown.invalid QUIT :Quit: Quitte < 1291565409 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ACTION beats Zuu into a bloody pulp. < 1291565526 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :16:22 < elliott> nooga: Doesn't seem that awkward to me. < 1291565534 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :LOL HOLY CRAP OMG OMG OMG < 1291565541 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : while ((entry = readdir(dir))) < 1291565541 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : if (!rm(entry->d_name)) ok = 0; < 1291565543 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :SPOT THE MOTHERFUCKING BUG < 1291565563 0 :p_q!unknown@unknown.invalid QUIT :Quit: This computer has gone to sleep < 1291565584 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :when I propposed adding few higher level constructs to C You said that it'd be awkward without even bothering to listen what I came up with < 1291565602 0 :poiuy_qwert!~poiuy_qwe@69.157.46.244 JOIN :#esoteric < 1291565605 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nooga: c is awkward < 1291565619 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :and python is even more awkward and nazi < 1291565630 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :if you connect c with python < 1291565635 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :it must be awkward < 1291565772 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :nooga, adding high-level constructs to C is completely missing the point. < 1291565777 0 :poiuy_qwert!unknown@unknown.invalid QUIT :Client Quit < 1291565789 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :mmm < 1291565801 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :It's a high-level assembler for an abstract machine, not a general-purpose language. < 1291565814 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :it'd be rather like syntactic sugar to cover things we do all the time in C itself < 1291565883 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :besides < 1291565904 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :i don't think that guys at NeXT sompletely missed the point making Objective-C < 1291565965 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Which is why Objective C isn't just "C with some extra crap papier-mâchéd on" like C++. < 1291566054 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :C++ is fugly < 1291566054 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Although it is to a significant degree. < 1291566066 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :and thick < 1291566092 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :Objective C is thin and feels almost like another preprocessor level over C < 1291566093 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Why on earth would you even include C as a subset of Objective-C anyway... < 1291566116 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :It's such a stupid mentality. < 1291566129 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :for porting, for example < 1291566202 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Porting what? < 1291566223 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ACTION U-turns on Objective-C. < 1291566230 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Yes, it does miss the point entirely. < 1291566239 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :well uh < 1291566274 0 :yorick!yorick@gateway/shell/shellium.org/x-weugclznejdeoihz JOIN :#esoteric < 1291566277 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :imagine you're writing a car navigation system for iphone and you've got a library previously written in C that does almost everything < 1291566305 0 :yorick!unknown@unknown.invalid PRIVMSG #esoteric :nooga: you'd port it to brainfuck, ofcourse < 1291566319 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :uh < 1291566334 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :okay, Phantom_Hoover, you're right < 1291566406 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :elliott: do you know some papers on lisp machine lisp and it's implementation? < 1291566416 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :or any hardware lisp implementation? < 1291566419 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nooga: which type of lisp machine < 1291566469 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :i remember something on MIT ones < 1291566549 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nooga: well i don't think too much was published about it < 1291566552 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :since they were usually quite commercial < 1291566554 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but i think some stuff was < 1291566602 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :gah, a reason to dislike bruce perens < 1291566604 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :is nothing sacred any more? < 1291566625 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :nooga, basically, when you say "portability" you mean "copying and pasting some C code into your Objective-C project". < 1291566630 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :That is stupid. < 1291566652 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :If you have C code and you want to interface it with an HLL, you should use an FFI. < 1291566657 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :but works like a charm < 1291566773 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :so does PHP < 1291566916 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :nooga, OK, if you like poisoning your language's design and abstraction just so you can get a C library into it for slightly less effort, it's great. < 1291566978 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :no, I exploit the design and abstraction AND use C library without hassle < 1291567141 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nooga: and you could get shit done in php, too < 1291567145 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it's just that you shouldn't. < 1291567156 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :nooga, ...which is exactly what a good FFI does, without requiring you crowbar C into your language. < 1291567184 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :what's the point!? < 1291567210 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :Objective-C allows this and it's still pretty good C with 'cancer' < 1291567304 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: why are you even bothering to argue, it's the same line from both sides forever < 1291567310 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :neither of you are convincing the other < 1291567339 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, surely you take a side in this? But yes, I'll leave it. < 1291567351 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: When did I imply that I did not? < 1291567368 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, misinterpretation. < 1291567375 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Okay. < 1291567381 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :uh < 1291567426 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :ACTION shuts up and gets back to playing with hedgehog lisp < 1291567470 0 :Zuu!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, that wasnt nice, to beat me into a bloody pulp :( < 1291567487 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i did that, not him < 1291567491 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Zuu, aww. It's also no fun if you *respond*. < 1291567498 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oh, wait, maybe he did < 1291567502 0 :Zuu!unknown@unknown.invalid PRIVMSG #esoteric :how am i supposed to eat cookies now? < 1291567513 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :sshc turned out to be an actual moron, so I can't pick on him... < 1291567536 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :dbc, you are a disgusting little man and you should be ashamed of yourself. < 1291567544 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Hey, that's Daniel B. Cristofani. < 1291567544 0 :Zuu!unknown@unknown.invalid PRIVMSG #esoteric :could someone please lay a cookie on top of my bloody pulplike body? < 1291567556 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Of all the people to pick on, http://www.hevanet.com/cristofd/brainfuck/ is probably *not* the one :P < 1291567566 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ACTION depulps Zuu. < 1291567580 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, gyaaaaaaaah! < 1291567590 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Oh what the heck. < 1291567591 0 :Zuu!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1291567604 0 :Zuu!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, did you have to shape me into an ashtray? < 1291567611 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: You eat pig dung for breakfast and put spikes in your own cranium on a daily basis! And you are a fascist! < 1291567620 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Leonidas, DON'T RESPOND TO THIS OR I WILL KILL YOU AND DON'T HAVE DONE ANYTHING COOL < 1291567620 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I call it "IRC Russian Roulette". < 1291567676 0 :Leonidas!unknown@unknown.invalid PRIVMSG #esoteric :uhm, sure < 1291567688 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"DON'T RESPOND TO THIS OR I WILL KILL YOU" < 1291567689 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"uhm, sure" < 1291567734 0 :Leonidas!unknown@unknown.invalid PRIVMSG #esoteric :ACTION doesn't care that much ;) < 1291567813 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ACTION beats Leonidas into a bloody pulp, then uses that to replace the bits of Zuu that got splattered. < 1291567843 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv, unlike your namesake, you are wantonly lacking in any analytical or intellectual capabilities. < 1291567921 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Hey, Sgeo is still bloody pulp. < 1291567925 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Ah, who cares. < 1291567944 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :IS THIS SPARTA? < 1291567950 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I think Phantom_Hoover is immortal < 1291567988 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, there's no evidence to the contrary. < 1291568013 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: mycroftiv is awesome < 1291568027 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, you are sorely mistaken. < 1291568034 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: i am not, he's a plan9 guy < 1291568048 0 :larsrh!~lars@unaffiliated/larsrh JOIN :#esoteric < 1291568083 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :rodgort, what kind of a name is that? It sounds utterly stupid. < 1291568095 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Actually, I rescind that remark; it suits you perfectly. < 1291568830 0 :nooga!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1291568911 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I feel like implementing a simple Lua-esque language so I can do what PyPy did in it. < 1291568973 0 :Phantom_Hoover!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1291569054 0 :Phantom_Hoover!~phantomho@cpc3-sgyl21-0-0-cust116.sgyl.cable.virginmedia.com JOIN :#esoteric < 1291569055 0 :nopseudoidea!~nopseudoi@85-168-235-235.rev.numericable.fr JOIN :#esoteric < 1291569236 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :in C, is *x[0] *(x[0]) or (*x)[0]? i've forgotten < 1291576399 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1291576399 0 :clog!nef@bespin.org JOIN :#esoteric < 1291576423 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :busybox will be precompiled and then the compiler suite inside the built system will be changed < 1291576437 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :nooga: BusyBox is not actually all that small. < 1291576441 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :i know < 1291576442 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :;p < 1291576442 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :I'm packing stuff into much smaller space than it... < 1291576455 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :nooga: note that with busybox you CAN disable most stuff to get a small executable, but still, mine's smaller :P < 1291576464 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1291576472 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :and what can it do so far? < 1291576511 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :nooga: false, true, yes, sleep, pwd, echo, dirname, basename, uname, signal, link, cat, date, chroot, env, vis, strings, cal, rm, kill, mkdir. < 1291576519 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Pretty POSIX compliant. < 1291576545 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : 2083 yes < 1291576546 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : 6483 cat < 1291576546 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : 6615 date < 1291576546 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : 8775 kill < 1291576546 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : 9299 mkdir < 1291576552 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :nooga: Those sizes are in bytes, for independent executables. < 1291576553 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks at http://en.wikipedia.org/wiki/Tom_Duff and thinks elliott_ might like the first quote there < 1291576575 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :nooga: The whole thing compiled into one executable, like BusyBox, is 20K or so (and could be made smaller with some optimisations that I'm doing now). < 1291576584 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :nooga: When UPX'd, it goes down to 15K. < 1291576595 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: :D < 1291576610 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: well it /was/ on the plan 9 mailing list < 1291576650 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :> > AFAIK there are no shared libraries in plan9? < 1291576650 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :> > Any ideas will they be available? < 1291576650 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :> < 1291576651 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :> Shared libraries are the work of the devil, < 1291576651 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :> the one true sign that the apocalypse is < 1291576651 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :> at hand. Seriously, they're good for two < 1291576653 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :> things, < 1291576655 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :huh !?! < 1291576656 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :well, three things for me... < 1291576658 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :first being the ability to share code between the application < 1291576660 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :hate to see gnome ported and get 20meg staticaly linked < 1291576663 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :simple CD player < 1291576665 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Wow. < 1291576666 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :He wants to port GNOME to Plan 9. < 1291576668 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :There are no words. < 1291576689 0 :cheater99!~cheater@g224202105.adsl.alicedsl.de JOIN :#esoteric < 1291576694 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Is that A Stupid Idea? < 1291576743 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Considering that Plan 9 has its own, rather opinionated, very unique interface, and considering that GNOME is very ununixy -- big, bloated, no way to pass around simple text from program to program at all -- yes, yes it is. < 1291576773 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, incidentally, why did you say you wanted to move here because the summer holidays were shorter? < 1291576783 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :nooga: Do you want the instructions and patches for a pcc/dietlibc toolchain? It is not very hard to get one working, and it produces exceedingly small executables. < 1291576935 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1291576969 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, hm, dynamic linking is useful for plugins < 1291576971 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :i'd also need init :D < 1291576983 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, and for runtimes that can load "native" extensions, such as python < 1291576986 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :that is about it < 1291576987 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :busybox delivers that < 1291576993 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :nooga: You don't need init. < 1291577000 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :nooga: init can be a shell script on embedded systems. < 1291577006 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :#!/bin/sh < 1291577007 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :do set up < 1291577010 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :a little more set up < 1291577014 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :(wait forever) < 1291577016 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :i'm too lazy to write one < 1291577022 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :i will try with init for now < 1291577037 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :nooga: It's a shell script! You do realise that with BusyBox init you have to write init scripts to get it to do anything? < 1291577039 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: He says that in the post itself. < 1291577041 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :my plan is to build something working and then strip it < 1291577046 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: But really, dynamic loading isn't dynamic linking. < 1291577056 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :nooga: Use sstrip. (BusyBox does that as part of the build process if you enable it.) < 1291577061 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, true, they are however related < 1291577066 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, I hate summers < 1291577070 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Dynamic linking is turning all linking into dynamic loading for no real reason. < 1291577071 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: why? < 1291577073 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, why? < 1291577075 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I don't get out much during the summer < 1291577079 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Why? < 1291577087 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Climate? < 1291577096 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, to avoid linking huge libraries like QT or boost into everything? < 1291577107 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, what would I do? < 1291577110 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :http://macournoyer.com/blog/2009/02/12/tinyrb/ i wan this :D! < 1291577112 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :want < 1291577116 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: That's a flaw in those libraries. < 1291577126 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, what do you do normally in your free time? < 1291577134 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Go on the computer < 1291577164 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Yeah yeah, that's very unspecific. My interests vary < 1291577167 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :nooga: http://sprunge.us/UeSF Instructions. Obviously set K to some reasonable directory, and you probably want to replace $K/stage2 with whatever you want your cross-compiler toolchain's install directory to be. < 1291577170 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :nooga: http://sprunge.us/HWUO dietlibc-for-pcc.patch < 1291577177 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :nooga: http://sprunge.us/LDHW pcc-zero-malloc.patch < 1291577188 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :nooga: http://sprunge.us/DfEc pcc-libs-quad-dietlibc.patch < 1291577190 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, yes indeed. But we live in a world where they exist and are widely used < 1291577194 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :nooga: Get pcc and dietlibc from their respective CVS repositories. < 1291577205 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, it is not realistic to hope to replace all that for your linux distro < 1291577207 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: And we also exist in a world where we have huge disks that can afford to waste space on crappy programs linking to huge libraries. < 1291577214 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: So it's no issue! < 1291577268 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And Smalltalk's just fine in its own little world. Working with the outside world is completely unnecessary < 1291577276 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, perhaps < 1291577296 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Sure, the disk bloat is unfortunate, but static linking also gets rid of a lot of headaches. And the programs that don't link to such huge libraries get smaller, so it's offset a bit. :) < 1291577308 0 :wareya!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1291577322 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, how does it look for normal X programs? < 1291577335 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :when it comes to static vs. dynamic binary size < 1291577337 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Normal -- just libX11? Or GTK? < 1291577338 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Why not just do the dynamic thing, but manage the libraries properly? < 1291577343 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: HAHAAHAHHAHAHAHAHA < 1291577348 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, both would be interesting to know < 1291577354 0 :wareya!~wareya@cpe-74-70-142-220.nycap.res.rr.com JOIN :#esoteric < 1291577355 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: (1) Doing so is either impossible or meaningless depending on your meaning. < 1291577368 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: (2) If Quake II's binary were statically linked, it would not run on anything today. < 1291577372 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :It was compiled in 1997. < 1291577375 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: With Boost in particular, "dynamic linking" is a myth. < 1291577379 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Because it is statically linked to the libc, it still works. < 1291577386 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :And Quake II is a fucking awesome game. < 1291577387 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Q.E.D. < 1291577391 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I haven't measured yet. < 1291577392 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: It uses templates heavily, making it effectively already statically linked. < 1291577396 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, quite < 1291577399 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, you must have meant "weren't" < 1291577405 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Yes, yes. < 1291577406 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :weren't. < 1291577436 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders what directory to install his recompiled pcc/dietlibc toolchain to. < 1291577441 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :/opt/toolchain? :p < 1291577445 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Wait, what's a triple again? < 1291577450 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :arch-kernel-libc? < 1291577488 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, you still use binutils? < 1291577492 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, if so: why on earth < 1291577521 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I don't see how you can infer that from what I said. < 1291577532 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: But yes, I do; I have searched far and wide and cannot find a binutils alternative. < 1291577534 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott_: architecture-evendor-os for a triple, architecture-evendor-kernel-userspace for a quad. < 1291577544 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, "pcc/dietlibc/ toolchain" < 1291577547 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :The BSD binutils will undoubtedly be BSD-specific. < 1291577553 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Got an alternative? < 1291577558 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott_: So, "x86_64-pc-linux-dietlibc"... < 1291577570 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, not really no. I presume gold is even worse? Plus iirc it is part of binutils < 1291577575 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Irritating. I want something that has the compiler in it :P < 1291577579 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: "Even worse" how? < 1291577581 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :It's certainly faster. < 1291577590 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, I thought it was C++ < 1291577591 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :But it produced executables a few bytes bigger for me, so nyah. :P < 1291577594 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott_: The build tuple is all about specifying an ABI. < 1291577596 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :But yeah, it is part of binutils. < 1291577601 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott_: The compiler has nothing to do with the ABI. < 1291577609 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Then what should I use for my pcc/dietlibc name eh?! NOBODY TAKES THIS INTO CONSIDERATION < 1291577611 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott_: Except when it does. < 1291577613 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :/opt/pcc-dietlibc MAYBE but that's just weird. < 1291577618 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, gold produces binaries a few bytes bigger eh, what is the extra data? < 1291577630 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott_: /opt/pcc-x86_64-pc-linux-dietlibc/ < 1291577635 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: No idea, I didn't check; I just tried gold, noticed an inflation, and put it back :P < 1291577638 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Waay too long. < 1291577663 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott_: Sorry, but that's what you get if you want anything more than "lol I only support one ABI". < 1291577681 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, but pcc is not related to the ABI? < 1291577688 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: No, it's not. < 1291577690 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :you could have other compilers installed along side < 1291577693 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :alongside* < 1291577693 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :But I still have to make an /opt directory :P < 1291577706 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Yes, but I just want to denote "pcc and dietlibc" in a path name! STANDARDS SHOULD SUPPORT ME IN THIS ENDEAVOUR < 1291577711 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, so why not /opt/x86_64-pc-linux-dietlibc ? < 1291577724 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, but what difference does "pcc" there make < 1291577728 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :since it doesn't affect ABI < 1291577774 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :I wonder why I have WANT_SSP enabled in my guide. < 1291577778 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if it fixed something. < 1291577798 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I could also call it /opt/linux, 'cuz it's running on linux. < 1291577802 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :But I'm trying to give it a relevant name :P < 1291577824 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : * check for valgrind, and if detected, turn off optimized SIMD string < 1291577825 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : * routines that cause false positives in valgrind. This enlarges and < 1291577825 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : * slightly slows down your code! */ < 1291577832 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :HEY HEY I CAN TURN OFF VALGRIND SUPPORT AND GET SMALLER BINARIES < 1291577833 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :WOOOOOOOOOOOOOOOO < 1291577897 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :/* do you want smaller or faster string routines? */ < 1291577899 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Oh, don't do that to me... < 1291577908 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :I should probably go for faster, since it likely actually pays off here. < 1291578026 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, you know elliotOS, is it still "don't allow low level programming"? < 1291578041 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(outside the kernel parts that need it) < 1291578044 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: It's never been that exactly. < 1291578052 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :It's just that giving the low-level permission to anything is STOOPID :P < 1291578056 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: But sure, yes. < 1291578057 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm looks like criticism of nasa's arsenic bacteria is starting to roll in http://rrresearch.blogspot.com/2010/12/arsenic-associated-bacteria-nasas.html < 1291578074 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: (Synthesis-style stuff + specialisation = code that does stuff mapping directly to low-level things ends up doing them directly :P) < 1291578075 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: But why? < 1291578091 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, there are cases when it is useful (since I have yet to see a perfect compiler) < 1291578097 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :number crunching mostly < 1291578118 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: good thing i'm writing the perfect compiler then < 1291578119 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :or should i say < 1291578120 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :SPECIALISER < 1291578167 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, yes sure, but will it automatically use GPGPU calculations when that is beneficial? ;P And when exactly *is* it beneficial? < 1291578187 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :same goes for SIMD of course < 1291578199 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: there's no reason i can't expose an interface to the GPGPU that is checked at compile-time < 1291578207 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, ah good answer < 1291578232 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: same way I expose an interface to the CPU that is checked at compile-time :P < 1291578234 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :(with a compiler) < 1291578240 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :sensible < 1291578294 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, and if an algorithm could make use of low level atomic operations with shared memory, would that be possible. That is of course somewhat tricky to check at compile time (shared memory I mean) < 1291578343 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Perhaps not, but imagine an interface to shared memory with only safe optimisations, that is coded to manually use the low-level operations. < 1291578354 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, hm < 1291578359 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Then when it's used by user code, calls are just "inlined" down in the assembly so it uses them directly. < 1291578386 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :indeed, would probably work for many common situations < 1291578453 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: #define WANT_FASTER_STRING_ROUTINES < 1291578456 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: WHAT DO I DO WHAT DO I DO < 1291578460 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: (they're BIGGER) < 1291578503 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : * lines from /etc/resolv.conf? Normally not used on boot floppies and < 1291578503 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : * embedded environments. */ < 1291578505 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :er < 1291578508 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :/* do you want the DNS routines to parse and use "domain" and "search" < 1291578508 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : * lines from /etc/resolv.conf? Normally not used on boot floppies and < 1291578509 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : * embedded environments. */ < 1291578510 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, profile :P < 1291578511 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :I think I can disable that < 1291578514 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :no reason not to just use "nameserver" < 1291578524 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I know that one will be smaller but slower and the other will be bigger but faster. < 1291578534 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, so presumably bigger and faster < 1291578536 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: It's just that while I'm hideously devoted to small binary size, I don't want shit to go slowly :P < 1291578542 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, I'll go bigger and faster for this one. < 1291578543 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, string routines is after all hot code < 1291578575 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Huh. dietlibc's localtime can read /etc/localtime. < 1291578583 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :But fuck that, because you can just set $TZ. < 1291578589 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, um why not read that file < 1291578593 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: More koed. < 1291578601 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, since it needs to look up when DST changes anyway < 1291578609 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Yes. That is in $TZ. < 1291578613 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, I mean, TZ=Europe/Stockholm < 1291578615 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :then what < 1291578616 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Fail. < 1291578627 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: That value violates POSIX. < 1291578632 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, I'm not going to change TZ two times / year :P < 1291578639 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, and you agreed that POSIX is stupid < 1291578640 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Good. < 1291578641 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :You don't have to. < 1291578644 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html < 1291578649 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Scroll down to the bottom. < 1291578650 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, different countries change at different points < 1291578653 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Note how $TZ handles DST. < 1291578661 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: IT GOES INTO THE $TZ VARIABLE YOU IDIOT < 1291578672 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :rule < 1291578673 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : Indicates when to change to and back from the alternative time. The rule has the form: < 1291578673 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : date[/time],date[/time] < 1291578673 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : where the first date describes when the change from standard to alternative time occurs and the second date describes when the change back happens. Each time field describes when, in current local time, the change to the other time is made. < 1291578673 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : The format of date is one of the following: < 1291578675 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : Jn < 1291578677 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : The Julian day n (1 <= n <= 365). Leap days shall not be counted. That is, in all years-including leap years-February 28 is day 59 and March 1 is day 60. It is impossible to refer explicitly to the occasional February 29. < 1291578681 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : n < 1291578683 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : The zero-based Julian day (0 <= n <= 365). Leap days shall be counted, and it is possible to refer to February 29. < 1291578686 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : Mm.n.d < 1291578689 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : The d'th day (0 <= d <= 6) of week n of month m of the year (1 <= n <= 5, 1 <= m <= 12, where week 5 means "the last d day in month m" which may occur in either the fourth or the fifth week). Week 1 is the first week in which the d'th day occurs. Day zero is Sunday. < 1291578690 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, that varies between years < 1291578692 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : The time has the same format as offset except that no leading sign ( '-' or '+' ) is allowed. The default, if time is not given, shall be 02:00:00. < 1291578709 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: No it doesn't. < 1291578716 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :DST changes are rare, and call only for a new $TZ. < 1291578719 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, in some countries it does < 1291578724 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Not regularly. < 1291578743 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, Isral iirc used to have it decided on a year by year basis < 1291578753 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Used to. < 1291578753 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Israel* < 1291578771 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :/opt/pcc-dietlibc it is. < 1291578779 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, what about 32-bit then < 1291578782 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, for multilib < 1291578834 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: What about it? < 1291578837 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :This is just for my Debian machine, duh. < 1291578842 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :On Kitten it'll be /bin/pcc and /lib/libc.a. < 1291578858 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, and the -m32 one? does it do that in the same binary? < 1291578868 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: What are you trying to say? < 1291578914 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, how will you support multilib on there. Since you need different libc and sometimes different compilers (depending on if the compiler supports -m32 or equiv) < 1291578936 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: multilib packages go into prefix /arch/archname. < 1291578941 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :I don't think pcc has -m32. < 1291578949 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :32-bit dietlibc would go into /arch/x86/lib/libc.a. < 1291578972 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, shouldn't /bin symlink to /arch//bin ? < 1291578992 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, it would be kind of neat < 1291579023 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: -rw-r--r-- 1 root root 864K Dec 5 19:55 libc.a < 1291579033 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: No; I briefly considered that and rejected it on the grounds of cluttering up /. < 1291579045 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: (If I could symlink / to /arch/, that would be insane enough for me to consider it.) < 1291579047 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, also allow trivial change if you replace the CPU. Just update symlinks and the kernel. Change the disk to the new CPU (and possibly a new mobo), boot < 1291579061 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Migrating CPU architecture NOT SUPPORTED :P < 1291579062 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, alas I believe that would present some problems < 1291579072 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, it SHOULD be because that would be COOL < 1291579077 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :There are non-x86 PCs, aren't there? < 1291579087 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, yes < 1291579088 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :i.e. obeying the PC standard in every way except that they have a PPC there instead. < 1291579092 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Which is just silly :P < 1291579093 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1291579097 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: What's more fun is non-PC x86s. < 1291579103 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, indeed < 1291579109 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Modern Macs aaaalmost manage to be that. < 1291579114 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, but this would work between 32/64 for the same arch at least < 1291579115 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :But since they can emulate a BIOS, not really. < 1291579123 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Only if you recompiled everything first :P < 1291579127 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :and if you made it work between, say, x86-64 and PPC32 then it would be awesome < 1291579134 0 :Mathnerd314!~mathnerd3@dsl.6.28.53.206.cos.dyn.pcisys.net JOIN :#esoteric < 1291579148 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, nah, just install that other arch, change symlinks and kernel and reboot to new hardware < 1291579154 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, minimises downtime < 1291579175 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, also you can use a 64-bit kernel and a 32-bit userlamnd < 1291579176 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :land* < 1291579182 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, even common on some arches iirc < 1291579192 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :such as sparc iirc < 1291579197 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Anyone want a precompiled pcc/dietlibc toolchain? < 1291579211 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :For x86-64/Linux. < 1291579214 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :not really no < 1291579220 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Anyone else? :P < 1291579226 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, make one targeting h8300-coff < 1291579231 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Has to be put in /opt/pcc-dietlibc because dietlibc's diet wrapper knows what prefix it was built with. < 1291579234 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: No :P < 1291579247 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, but kitten for RCX sounds awesome < 1291579851 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Fucking hell, more problems with false and true. < 1291579867 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Oh! lol. < 1291579884 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :HA! dietlibc shrinkage. < 1291579887 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : 1591 yes < 1291579887 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : 1631 sleep < 1291579887 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : 1791 pwd < 1291579887 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : 1795 echo < 1291579887 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : 1831 dirname < 1291579904 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :11,164 bytes saved in total. < 1291579908 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :11K saved just by configuring the libc. < 1291580109 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :LOL OR MAYBE NOT < 1291580111 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Sun Dec 5 20:14:31 [unknown timezone] 2010 < 1291580290 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :96809 total < 1291580292 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Acceptable. < 1291580292 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, also it breaks if you want to refer to a previous date. Which timezone is in effect then when the time for the switch changed < 1291580321 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: It's okay, dietlibc doesn't support locales anyway. Oh wait, yes it does. < 1291580324 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :extern enum __encoding { < 1291580325 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : CT_8BIT, < 1291580325 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric : CT_UTF8, < 1291580325 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :} lc_ctype; < 1291580328 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :It supports a whole two of them. < 1291580360 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, what about locale(1) next? < 1291580374 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Or what about no! < 1291580384 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :what does no(1) do? < 1291580416 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, have you done mount yet? < 1291580482 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :no(1) doesn't print out the string it's given, forever. < 1291580493 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :(Or, if you actually wanted to make a reasonable no, it'd be the same as "yes n" :P) < 1291580501 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Haven't done mount yet, no. < 1291580511 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I'm refactoring this to stop using .h for library functions and stuff. < 1291580525 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, what would it use instead? < 1291580526 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :And to use bitmasks for flags when I can, and have a bool type aliased to char, and the like. < 1291580532 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: What would what use instead? < 1291580534 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1291580537 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: .c files :P < 1291580541 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Right now, I have functions in .h files. < 1291580543 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Actual functions. < 1291580546 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1291580546 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Because it's convenient. < 1291580555 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, you mean the definitions? < 1291580560 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :(Making them .c would make my build system think they're utensils.) < 1291580563 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Yes. < 1291580575 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, your build system needs work < 1291580588 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: It was a 2 minute hack :P < 1291580595 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :It also makes the box bigger than it should be, since the library stuff is duplicated. < 1291580622 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Woo, my Makefile now isn't hideously specific to my setup and only my setup. < 1291580626 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :I have a config.make now. < 1291580635 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :(No, I will never use menuconfig.) < 1291580636 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :(Ever.) < 1291580658 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :I should move sstrip out of the root with the Makefile... < 1291580661 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Maybe in tools/. < 1291580731 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :make: *** No rule to make target `bin/basename', needed by `individual'. Stop. < 1291580732 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :wut. < 1291580744 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Ohh. < 1291580752 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :What it means is that my implicit rule has an unsatisfied dependency :P < 1291580776 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Makefile:32: *** Recursive variable `CFLAGS' references itself (eventually). Stop. < 1291580778 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Eventually :P < 1291580843 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: you never answered my super-awesome question *sniff* < 1291581063 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is patching tinyrb < 1291581168 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, you need to use := somewhere < 1291581180 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :CFLAGS = $(CFLAGS) is what you have sooner or later currently < 1291581185 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :you probably intended := < 1291581185 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :I know < 1291581187 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: actually it's more like < 1291581190 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :CFLAGS = blah $(CFLAGS) blah < 1291581198 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :indeed you need := then < 1291581206 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :is := portable across makes? < 1291581211 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :(I fixed it another way, just curious) < 1291581214 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, no clue < 1291581233 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, btw are you sure there are no nicer alternatives to C here? < 1291581252 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, isn't there that memory safe C < 1291581257 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :forgot the name of it < 1291581260 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :cyclone or somethong < 1291581262 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :something* < 1291581263 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I doubt any of them have a toolchain that produce binaries of similar tininess. < 1291581308 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, what about tcc < 1291581311 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :I think I should generate a Makefile with a script... since different utensils will have different dependencies from my library. < 1291581316 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, does it give larger binaries? < 1291581316 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Does that do Cyclone? < 1291581322 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, no < 1291581327 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Well then. < 1291581328 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :but how does it compare to pcc < 1291581328 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :I haven't bothered measuring tcc since it supports so little. < 1291581332 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1291581362 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Allow me to just say "Good luck compiling my sleep.c to less than 1791 bytes" :P < 1291581390 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: If a compiler somehow magically elided entries from the errno strings table that no syscall in the program could produce, that would make a few of my utilities a K or two smaller. < 1291581399 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :I could probably do it manually, but it's *way* more trouble than it's worth. < 1291581403 0 :p_q!~poiuy_qwe@CPE001f5b00390f-CM001e6b2335dc.cpe.net.cable.rogers.com JOIN :#esoteric < 1291581429 0 :poiuy_qwert!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1291581527 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, perfect minimal hash of errno! < 1291581534 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(for only the entries you need) < 1291581548 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :No :P < 1291581552 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott_: it is generally useless to try and force an opinion out of me if i don't actually have one < 1291581566 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :fine! i'll force one out of Vorpal < 1291581575 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, with regards to what? < 1291581583 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: if the box executable is called cutlery, and the individual programs are utensils, should the project be called cutlery or utensils? < 1291581590 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :i.e. is it "utensils.h" or "cutlery.h" for the library header < 1291581594 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, no idea. You decide < 1291581595 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :where the library is all the auxiliary functions some applets use < 1291581598 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: NOT HELPFUL :P < 1291581609 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, I find the names rather confusing as it is. Would certainly fit into ick < 1291581629 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I started out with utility... utensils, and it's kind of blossomed from there :P < 1291581640 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, yes but I think it went too far < 1291581641 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Previously the directory was ~/code/tools and the box was called "box", which was rather bland. :p < 1291581656 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: "busybox" -- the box isn't really BUSY! < 1291581661 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, kitchen drawer? < 1291581666 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(instead of box) < 1291581671 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :lawl < 1291581675 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :I think I'm calling the box cutlery. < 1291581687 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, whatever, it is up to you < 1291581694 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :HEY Gregor :P < 1291581701 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :I'll use gets if you don't decide. < 1291581739 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :cutlerybox, not box cutlery < 1291581749 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, also I'm kind of surprised that gcc or clang can't produce smaller code. Maybe they produce lots of useless stuff around? < 1291581754 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :such as .eh_frame or such < 1291581767 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I haven't tried clang, I doubt it will work with dietlibc in any way, shape or form :P < 1291581767 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :it's sooo relaxing < 1291581769 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :https://github.com/nooga/tinyrb < 1291581782 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :impelemnting standard ruby classes in C < 1291581791 0 :elliott_!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: If the box is cutlery and the individual programs are utensils, is the header file for all the auxiliary functions they use -- and thus the project -- named "utensils" or "cutlery"? < 1291581831 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, please please give elliott_ a third option :P < 1291581842 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott_, also what is with the _ ? < 1291581846 0 :elliott_!unknown@unknown.invalid NICK :elliott < 1291581849 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I got disconnected at one point. < 1291581852 0 :elliott!unknown@unknown.invalid QUIT :Changing host < 1291581852 0 :elliott!~elliott@unaffiliated/elliott JOIN :#esoteric < 1291581862 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, ah, so you weren't going to justify it like ais < 1291581874 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :porknife.h < 1291581917 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, what is a porknife? < 1291582029 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: It's more what the project is named than what the header is named :P < 1291582031 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :and then i will write a kernel in ruby < 1291582042 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nooga: Good luck with that, n00b :P < 1291582088 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: IWillCutYou.h < 1291582106 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :elliott: i was completely serious :P < 1291582118 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: If you don't name the project either utensils or cutlery, I will use gets. < 1291582119 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :On babies. < 1291582157 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :babies = gets() < 1291582178 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: gets(babise) < 1291582179 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*babies < 1291582198 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: cutlerybox < 1291582206 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"The compiler is based on the original Portable C Compiler by S. C. Johnson" < 1291582208 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :A family company? < 1291582215 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1291582243 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ACTION realises noöne else except him got that. < 1291582334 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: NOBODY SAYS "CUTLERY BOX" < 1291582355 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Google gets 21K results < 1291582372 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Notice that none of them are people :P < 1291582384 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, "cutlery set". < 1291582392 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: They're all manufacturers of cutlery boxes! < 1291582397 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: But it has to end in "box" < 1291582397 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, indeed. "cuboid unit for storage of tools related to food" is way more common < 1291582416 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: { #include "cutlery.h" } or { #include "utensils.h" }, pick ONE :P < 1291582430 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, cutensils.h < 1291582438 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, the first! < 1291582439 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :best of both words < 1291582443 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :and worlds < 1291582453 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, or utenlery.h < 1291582458 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I said pick ONE. < 1291582461 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: I asked Gregor :P < 1291582466 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :For one thing, cutlery \subset utensils. < 1291582468 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Mmmmmmmmmmmmmmmmmmmmmmmm < 1291582476 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :`run echo $(( RANDOM % 2 )) < 1291582477 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, why not interleave the two words < 1291582497 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1291582498 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal, because that is just stupid and ruins the joke. < 1291582506 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, exactly < 1291582507 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1291582512 0 :Sasha!~WHAT@97-124-43-114.phnx.qwest.net JOIN :#esoteric < 1291582513 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: cutlery it is < 1291582522 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :elliott: why n00b? < 1291582534 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Now pick one without the use of a random number generator! < 1291582540 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1291582542 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Nsils can't be cute, anyway. < 1291582543 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: cutlery < 1291582546 0 :Sasha2!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1291582549 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Now pick one without the use of a random number generator! < 1291582563 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: slutlery < 1291582564 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I'm going to do this 1000 times and measure the # of each, and if they're equal, well < 1291582568 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :RNG :P < 1291582575 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: TOTALLY. < 1291582578 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I'll go with slutlery. < 1291582578 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, he did. He used a *pseudo-random* number generator < 1291582588 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: HITLER DID THAT. < 1291582600 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, what? Use PRNGs? < 1291582603 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :maybe < 1291582604 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1291582645 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, I should specify dependencies in the first line of the source. < 1291582649 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Like, < 1291582660 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :/** parsemode.c foo.c blah.c **/ < 1291582662 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :To get those linked in. < 1291582678 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And then I can generate a makefile based on those. < 1291582692 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, does pcc not support generating dependency info < 1291582694 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :like gcc does < 1291582708 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: You mean -M and the like? < 1291582711 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :To get header dependencies? < 1291582716 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, yeah that might be the switch < 1291582716 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :There's one header for all the library C files. < 1291582719 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :There's one header for all the library C files. < 1291582722 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :So I can't do that :P < 1291582725 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :hm okay < 1291582749 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Since I'm "statically linking" (actually just passing the C file to the compiler as well as the program) these, I basically need one or two functions per file. < 1291582753 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And I don't want 45895798347589345 headers :P < 1291582755 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, also if all go into the same binary surely you want to do LTO? < 1291582771 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: IIRC -O1 made stuff go lolbreak when I tried it. < 1291582774 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Or just had no effect. < 1291582776 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I forget which. < 1291582783 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, is that LTO? < 1291582794 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :What is LTO, then, for binutils ld? :P < 1291582797 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, or do you mean -Wl,-O1? which is completely different < 1291582800 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1291582805 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, you need gold for it iirc < 1291582808 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Not -Wl, I passed it directly to the linker. < 1291582817 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, anyway -O1 there is just optimising symbol tables or something iirc < 1291582822 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :for faster lookup < 1291582827 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Well, I don't have any symbol tables :P < 1291582831 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1291582858 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, but you want LTO surely? < 1291582868 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I doubt it could help me. < 1291582874 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And I doubt there are any tools that will work with my toolchain that can do that. < 1291582882 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, might when you link all into the same box binary < 1291582890 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :or when you have larger ones < 1291582893 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :like mount or sed < 1291582901 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Go on, then, name a tool. < 1291582909 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ACTION laments the absence of any nice spaceflight simulators. < 1291582912 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I'm no pcc-expert < 1291582915 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: EVE? :P < 1291582921 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Sure, there are plenty of good space combat sims. < 1291582925 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: You can't be a pcc expert, it's just a cc :P < 1291582946 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, well, what about writing an llvm backend for pcc < 1291582950 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :But no (portable) ones that actually simulate a spaceship as one might work in real life. < 1291582954 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(yes absurd) < 1291582960 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Yeahno :P < 1291582966 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I don't think LLVM has much in the way of size optimisation anyway. < 1291582968 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, xplane can do it iirc < 1291582976 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, for the space shuttle < 1291582981 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Also, EVE is a mumorpeger and I refuse to play it on principle. < 1291582986 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Anyway LLVM is C++. < 1291582990 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And huge. < 1291582995 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :true < 1291583002 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: And I doubt it does static linking. :P < 1291583005 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :100000000000000000TB clang < 1291583009 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, not sure < 1291583019 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, and not more than a few hundred MB < 1291583065 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, of course xplane is... xplane. More of a flight sim than a space sim. But it can do the space shuttle from ground to landing again iirc < 1291583066 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :static void barfx(char *who) < 1291583066 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : barfu(who) < 1291583068 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :^ barfx.c < 1291583070 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Guess how that works :P < 1291583085 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, and there is xplane for linux. Still not free or such < 1291583093 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :"Or such". < 1291583110 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, aka, getting it through a bay or similar < 1291583132 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, there is a macro in there < 1291583145 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Indeed. barfu is < 1291583146 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :#define barfu(who) \ < 1291583146 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : { \ < 1291583146 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : char *errstr = strerror(errno); \ < 1291583146 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : write(2, who, strlen(who)); \ < 1291583147 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : write(2, ": ", 2); \ < 1291583148 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : write(2, errstr, strlen(errstr)); \ < 1291583150 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : write(2, "\n", 1); \ < 1291583153 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : } < 1291583155 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Look ma, I'm avoiding code duplication :P < 1291583159 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal, a... bay...? < 1291583161 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, why the macro < 1291583178 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, such as a pirate one yes. Off the coast of Somalia iirc < 1291583183 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Because if you only call it once it's smaller than a function according to my measurements. < 1291583221 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, wait what, doesn't pcc elide a static non-called function if it inlined it for all calls? < 1291583230 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal, wait, a piece of commercial software that hasn't been pirated? < 1291583239 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, what. Where did I say that < 1291583243 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I have no idea. The different was the matter of a few bytes. < 1291583245 0 :kar8nga!~kar8nga@k-170.vc-graz.ac.at JOIN :#esoteric < 1291583254 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, sounds like pcc fails at inlining :P < 1291583278 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Perhaps, but it wins at turning carefully-written sources into smaller binaries than gcc. < 1291583290 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :int parsemode(char *str, mode_t old) < 1291583291 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :int?! What waste! < 1291583293 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, specialcased for pcc no doubt < 1291583296 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Modes could fit into a short! < 1291583300 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: No, not really. < 1291583309 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I don't have anything "silly" in here. < 1291583321 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, that will only slow you down. In general 16 bit wide registers are slower to access on modern x86-64 iirc < 1291583328 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :I seem to remember that in intel's docs < 1291583341 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: But it *will* make the binary smaller. < 1291583354 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, not if it isn't a variable that wide < 1291583361 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Eh? < 1291583364 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, or you save on a shorter instruction < 1291583374 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I'll meeaaaasuuuuure :P < 1291583378 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(since x86 is mad and uses variable width instructions) < 1291583396 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes through and s/int/unsigned/ everywhere he can < 1291583405 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(Quicker to divide on some CPUs!) < 1291583471 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, slower on other ones < 1291583494 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, iirc AMD and Intel gave contradictory recommendations for that when it came to the core2/k8 generations < 1291583503 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :I don't know about current suggestions < 1291583540 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :On x86-64 the 16-bit instructions have longer encodings < 1291583558 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ah yes < 1291583574 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you need a prefix-byte right? < 1291583587 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yep, I think that's all < 1291583606 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, written sort(1) yet? < 1291583625 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: No, I'm busy making my build system not suck. < 1291583637 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, if it uses int where it should use size_t it would possibly crash on data files larger than 4 GB. But the binary would be smaller < 1291583653 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, which do you think is most important: size or correctness? < 1291583657 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I don't use size_t :P < 1291583662 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, which do you think is most important: size or correctness? < 1291583667 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: It depends. < 1291583676 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, can you elaborate on that? < 1291583682 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, what about the example I gave < 1291583694 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Correctness if a plausible scenario exists in which incorrectness would break something. So for files that could be quite big reasonably, yes, use a bigger type. < 1291583705 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :If it's, say, /etc/localtime, no, that is not going to be 4 gigs. < 1291583710 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1291583724 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, will you do that for stuff like sort(1)? < 1291583762 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I'll have to see. < 1291583769 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :If I was REALLY size-obsessed, I would write in asm. :P < 1291583780 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, also: which sorting algorithm. heapsort? < 1291583792 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Probably qsort, because it's in libc. < 1291583806 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, but is that quicksort or something else? < 1291583818 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :It's MEANT to be qsort, I believe :P < 1291583820 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*quicksort < 1291583838 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, but that has worst case O(n²) complexity < 1291583851 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Indeed. Nobody cares unless it's a network service. < 1291583871 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, but what about my shell CGI script!? < 1291583885 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Why do you let people input 4 gigs? < 1291583893 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(Or any size big enough that n^2 matters :P) < 1291583908 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, because < 1291583913 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Because? < 1291583916 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1291583920 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Okay. :P < 1291583939 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, next you will say you will use backtracking regexps instead of a DFA < 1291583946 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Now that I won't do. < 1291583973 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, but nobody cares unless it is a network service ;P < 1291583990 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Backtracking regexps are also more code. :P < 1291584006 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, true < 1291584168 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, will you use the standard fsck or write your own? < 1291584211 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Standard, probably; after all, they're usually in separate filesystem packages. < 1291584234 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, but fsck is just a thin wrapper that calls fsck.foo < 1291584246 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Yes, but it figures out what filesystem type it is, doesn't it? < 1291584249 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, same as mount calls mount. for many < 1291584249 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :indeed, n00b < 1291584257 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(not for all foo) < 1291584265 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: True enough. < 1291584276 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Although I might unify all mounts if I can get away with it. < 1291584280 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, but there is mount.fuse, mount.nfs, mount.nfs4, mount.ecryptfs an a few more here < 1291584287 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(here = thinkpad) < 1291584305 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, the /*@ prefix is splint, isn't it? < 1291584311 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :So I should probably use /*$ instead for my metadata lines. < 1291584317 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, it is a lot of things. Could be doxygen too < 1291584321 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, or frama-c < 1291584346 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, /*$Id$*/ < 1291584359 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, probably not an issue for you < 1291584360 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: If it's a lot of things, then no issue adding another! < 1291584362 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :$ is kinda ugly. :P < 1291584387 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, mot of those tools will throw errors when encountering those kind of strings for the other tools < 1291584396 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, why not /*% ? < 1291584413 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, or /*# < 1291584435 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :wait, doxygen is /*@{*/ for blocks. But otherwise it is /** */ < 1291584437 0 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com JOIN :#esoteric < 1291584450 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :splint is @, frama-c is @ < 1291584456 0 :Wamanuz3!~Wamanuz@78-69-168-43-no84.tbcn.telia.com JOIN :#esoteric < 1291584456 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, thus, yeah avoid those two < 1291584457 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I'm just going to use @ :P < 1291584464 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I don't intend to use splint since it sucks. < 1291584469 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I don't intend to use frama-c since... I just don't. < 1291584469 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, but frama-c? < 1291584476 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, why not. It is awesome < 1291584481 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Formally verified coreutils! Awesome! And useless. :P < 1291584501 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, not useless. NUCLEAR REACTORS < 1291584541 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Dear god, < 1291584545 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, also remember formally verified standard card game, in case they get bored < 1291584553 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :please do not let any nuclear reactors be built whose software runs on Unix. < 1291584555 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : Thanks, < 1291584557 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : -a unix developer < 1291584565 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, can you say "all but first and last fields" in cut? < 1291584569 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :All but first is easy. < 1291584584 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, not sure. I use awk < 1291584592 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(not really) < 1291584592 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: awk doesn't make that easy either :p < 1291584594 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :You need a for loop. < 1291584597 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I know < 1291584600 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, it was a joke < 1291584604 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1291584615 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, first AND last is easy < 1291584618 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :$1,$NF < 1291584623 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I just do not like the input format of Frama-C. I think it should instead involve some automatic and some commands inserted inline in the C code, such as assert() and assume() and so on. < 1291584640 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, that would mess up compiling it < 1291584642 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :And then be able to convert a data flow diagram into a new chapter for the program. < 1291584645 0 :Wamanuz2!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1291584647 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :which is *why* it goes into comments < 1291584653 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :...... < 1291584664 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(this discussion is pointless probably) < 1291584678 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: /msg < 1291584695 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :For "short foo1(short a) { return a + 1; }" and "int foo2(int a) { return a + 1; }", gcc -Os generates absolutely identical code ("leal 1(%rdi), %eax; ret"); in any case switching from int to short in general doesn't sound like it's likely to save in binary size (except maybe for initialized constants); run-time memory use, maybe. < 1291584707 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: It will not mess up compiling it if you do something like this: #ifndef __FRAMA_C__ #define assert(x) #define assume(x) #endif < 1291584722 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :s!/\*@needs: !g < 1291584725 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Why the heck is this invalid sed... < 1291584731 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :It says that the s command is unterminated. < 1291584740 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's s///, not s//. < 1291584742 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :You need three ! < 1291584773 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Probably (I think) < 1291584778 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, also perhaps you need to hide the ! from the shell < 1291584788 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Weird dream just now < 1291584793 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Oh, yes. < 1291584799 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: You just slept? < 1291584802 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Was in a fire, mamahed to put it out and survive < 1291584805 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :elliott, napped < 1291584817 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :"mamhed"? < 1291584818 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :what < 1291584824 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :managed < 1291584829 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ah probably < 1291584830 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Fire burned my foot, leaving a ... window like injury < 1291584838 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :As though my foot was hollow < 1291584841 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: take your computer and run, maybe your home is on fire < 1291584885 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Maybe his ActiveWorlds house is on fire! < 1291584892 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :22:28 < elliott> please do not let any nuclear reactors be built whose software runs on Unix. < 1291584896 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :22:28 < elliott> Thanks, < 1291584896 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :then on what? < 1291584899 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :22:28 < elliott> -a unix developer < 1291584899 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, I doubt activeworlds does anything that interesting < 1291584903 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :nooga, QNX maybe < 1291584905 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :or similar < 1291584915 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :or even custom from the bottom < 1291584917 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :ah right, one of those RTOSes < 1291584918 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :No, it needs to be a specially designed operating system < 1291584926 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :nooga, formally verified probably < 1291584933 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, you think all problems should be solved with that! < 1291584955 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :uhm < 1291584957 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, what < 1291584962 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, that makes sense in this case < 1291584974 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal, it's a general statement! < 1291584978 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :automatics usually run on special controllers < 1291584985 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :without advanced OSes < 1291585007 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1291585009 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Except for centrifuges in Iran < 1291585014 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1291585019 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :SIEMENS FTW < 1291585032 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :what, I missed that? what did they do? < 1291585038 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :i've studied automatics and robotics but it was extremely boring < 1291585042 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: What do you mean, I think all problems need to be solved, with what? < 1291585044 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :so i switched to computer science < 1291585067 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, writing a new OS! < 1291585091 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal, got hit with a nation-state piece of malware designed specifically to hit those centrifuges. It used Windows exploits < 1291585096 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1291585097 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :i wonder who programs NASA's spaceships < 1291585101 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :nation-state authored < 1291585102 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, wtf < 1291585106 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal, look up Stuxnet < 1291585108 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :this must be the coolest job ever < 1291585121 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :nooga, you mean, the core memory < 1291585139 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :nooga, the space shuttle flight computers uses core memory < 1291585156 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : then on what? < 1291585157 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nooga: RTOS. < 1291585161 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :primitive and failsafe < 1291585168 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :nooga, no, just old < 1291585173 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Nuclear reactor == you do NOT ever have your monitor software NOT active. < 1291585175 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :but failsafe < 1291585207 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :well explored and not that vulnerable < 1291585229 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The "nation-state authored" bit of Stuxnet is pure speculation, basically based on Kaspersky Labs saying "oh, it's so clever, it must've been built by a country". < 1291585252 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :nuclear reactor is not very special from automatics point of view < 1291585257 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :While Symantec on the other hand "estimates that the group developing Stuxnet would have been well-funded, consisting of five to ten people, and would have taken six months to prepare". < 1291585271 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :it may be dangerous if ill-treated < 1291585321 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, also they must have known exactly what hardware was used there < 1291585324 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : echo "$needs" | sed 's!^/\*@needs: !!g; s! \*/$!!g; s!^\| !\0lib/!g' < 1291585327 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Fuck yeah, shell script! < 1291585343 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :elliott: i like how esoteric it looks at first glance < 1291585349 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Well, it's basically a heuristic. < 1291585355 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :sed is esoteric :P < 1291585358 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, indeed < 1291585380 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :TECO is < 1291585380 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, but they had to know it was Siemens not some other manufacture < 1291585403 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :sed, esoteric? < 1291585406 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Also only two models of frequency converters it attacks, so yes. < 1291585412 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :not the s/// comand < 1291585414 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :command* < 1291585448 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And I'm not sure it'd be a good idea to put NASA programmers to build nuclear reactor automation; we'll get another Ariane 5. < 1291585529 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :only if we use nasa managers I suspect < 1291585561 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :avionics is harder to handle than a stupid tank of water with radioactive poles inside and few steam turbines < 1291585579 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :bunch of pumps and sensors, nothing special imho :D < 1291585696 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :What's wrong with Ariane 5? < 1291585714 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :it explodes? < 1291585752 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :well, one did < 1291585887 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :But explosions are COOL! < 1291585910 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :it was as self-destruct sequence < 1291585913 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :a* < 1291585948 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : http://en.wikipedia.org/wiki/Ariane_5#Notable_launches <--- lots and lots of issues < 1291585969 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :it ran on beta < 1291585982 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :because they f^&^& up the deadline < 1291585989 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :bin/cal: lib/ultostr.c < 1291585990 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :bin/%: bin/%.c | lib/cutlery.h tools/sstrip < 1291585990 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : @echo ' CC $@' < 1291585991 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : @$(CC) $(CFLAGS) $^ -o $@ < 1291585991 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : @if [ "$(strip)" = 1 ]; then tools/sstrip $@; fi < 1291585994 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :annoyingly this doesn't work < 1291585999 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :because it treats bin/cal as a separate rule to bin/% < 1291586006 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: fix it :P < 1291586037 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, :: ? < 1291586041 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I seem to remember that < 1291586044 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :for the first one < 1291586053 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I'll try it :P < 1291586061 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, might be GNU ONLY < 1291586062 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :not sure < 1291586066 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: So is everything else I'm doing. < 1291586079 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, also not sure it does what I think < 1291586087 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :What I'm doing here proves that you can use make for a configurable, portable, clean build system without any Makefile generators -- just as long as you're willing to go insane. < 1291586105 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: No, deosn't work. What :: is for is adding new commands to existing rules. < 1291586115 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, ah, not new deps < 1291586116 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1291586124 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :The problem is just that bin/% != bin/cal, even though the former matches :P < 1291586153 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, maybe make bin/% depend on obj/%.o then add it in there? < 1291586175 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I'd rather not call the compiler twice. < 1291586181 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, okay < 1291586181 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Slows down the build. < 1291586197 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Anyway, it still wouldn't help because obj/%.o still isn't the same as obj/foo.o for any foo :P < 1291586224 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, what is the | for in that line? < 1291586242 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :I don't remember what that does < 1291586245 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Dependency-only dependencies. :P < 1291586249 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: It doesn't appear in $^. < 1291586251 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1291586258 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Obviously I don't want to send sstrip and the header to cc. < 1291586270 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Btw. < 1291586271 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ifeq ($(shell [ -e deps.make ]; echo $?),0) < 1291586271 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :include deps.make < 1291586272 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :endif < 1291586272 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :>:D < 1291586282 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1291586292 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Otherwise I get a nasty error when including deps.make when it doesn't exist. < 1291586297 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Makefile: deps.make < 1291586297 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :deps.make: $(sources) < 1291586297 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : @tools/gendeps >$@ < 1291586299 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :makes sure it's generated. < 1291586300 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, but isn't there some other way to do it? < 1291586306 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :I seem to remember there is < 1291586307 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Probably, but I don't know what it is :P < 1291586330 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, I could add dependency-tracking to the actual CC line. < 1291586335 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i.e. instead of < 1291586337 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : @$(CC) $(CFLAGS) $^ -o $@ < 1291586338 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I could do < 1291586340 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, that would break make -j2 < 1291586349 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :no? < 1291586354 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :$(CC) $(CFLAGS) $< `tools/depsfor $<` -o $@ < 1291586361 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, would break make -j2 < 1291586361 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: No, because I never build the lib/foo.c files. < 1291586366 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Only as part of the programs. < 1291586368 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :No it wouldn't. < 1291586370 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :See above. < 1291586373 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, what about if you change those files < 1291586380 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, would it rebuild properly < 1291586383 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :without make clean all < 1291586395 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: bin/%: bin/%.c $(shell tools/depsfor $<)? < 1291586397 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, if not you might just as well use ant < 1291586404 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :See above. < 1291586406 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I have no clue if that would work < 1291586409 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :try it? < 1291586411 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I'll try it. < 1291586416 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Wait, it wouldn't. < 1291586432 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Because $< isn't in scope at that point and I can't say "tools/depfor bin/%.c" obviously. < 1291586452 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, hm. so what does other build systems do? < 1291586482 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, why not a makefile generator? < 1291586486 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Not encode dependencies inside the source file? (BusyBox actually does this, and encodes Kconfig options (!) in there too, but then it uses Kconfig. It is a rather big build system.) < 1291586490 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I DO have a Makefile generator! < 1291586494 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :It just generates deps.make. < 1291586498 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Or do you mean I should have < 1291586501 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :bin/foo: bin/foo.c < 1291586503 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :for EVERY single foo/ < 1291586505 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*foo? < 1291586506 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :With all the actions? < 1291586508 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I mean it might be time to consider one < 1291586514 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :If so: dude, that Makefile would be massively redundant and huge. < 1291586518 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I. am. using. one. < 1291586519 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :tools/gendeps. < 1291586522 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :It generates deps.make. < 1291586535 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, okay so go read the manual then < 1291586541 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :to find out if it is possible < 1291586542 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: The Make manual? I have. < 1291586549 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, the info page yes < 1291586578 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Um, the make manual is not maintained as an info page. < 1291586583 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :It is a texinfo manual. http://www.gnu.org/software/make/manual/make.html < 1291586587 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, well indeed < 1291586593 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :but the info page is one form of it < 1291586596 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, that really doesn't help me. < 1291586629 0 :TLUL!~TLUL@wikia/The-last-username-left JOIN :#esoteric < 1291586637 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, http://www.gnu.org/software/make/manual/make.html#Multiple-Rules ? < 1291586668 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Doesn't help when one rule is implicit. < 1291586696 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"If none of the explicit rules for a target has a recipe, then make searches for an applicable implicit rule to find one see Using Implicit Rules)." < 1291586698 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :GNU quality English < 1291586722 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, that made more sense when you saw the hyperlink :P < 1291586726 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1291586743 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but ")". < 1291586747 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And no ; after "find one". < 1291586758 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, you mean missing ( before see < 1291586765 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :that seems more likely < 1291586787 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, is this any use? http://www.gnu.org/software/make/manual/make.html#Static-Pattern < 1291586815 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Maaaybe. < 1291586839 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Nope, just tried it :P < 1291586853 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Maybe I'll watch some DS9 < 1291586914 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, please stop liveblogging! < 1291586940 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, I have no intentions to start deadblogging, if it's all right with you < 1291586947 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :whaaat < 1291586961 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, irc is not twitter < 1291586971 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(" Maybe I'll watch some DS9" seemed to fit that) < 1291587009 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :sexps are boring < 1291587015 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION drinks some orange juice < 1291587020 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Learn mexps! < 1291587031 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Or um < 1291587038 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Whatever it was that it was supposed to be < 1291587221 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, MEXPs? < 1291587247 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :The things SEXPs were meant to implement but ended up replacing? < 1291587287 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Dear make: if a file does not exist, it is *NOT* up to date. < 1291587302 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Especially if the target is not phony. < 1291587309 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :You are not Holden Caulfield. < 1291587313 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :You do not consider every target phony. < 1291587442 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1291587520 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, yes < 1291587596 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :WHAT THE FUCK ARE YOU DOING MAKE < 1291587605 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Considering target file `bin/basename'. < 1291587605 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : File `bin/basename' does not exist. < 1291587605 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : Pruning file `bin/basename.c'. < 1291587605 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : Finished prerequisites of target file `bin/basename'. < 1291587605 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Must remake target `bin/basename'. < 1291587605 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Successfully remade target file `bin/basename'. < 1291587607 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Okay. < 1291587609 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :That makes no sense. < 1291587765 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I like how rsync --stats writes stuff like: "123M bytes" < 1291587796 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1291587798 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :M bytes. < 1291587836 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, Mi bytes would be even funnier. < 1291587851 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :so you have Do bytes, Re bytes and Mi bytes < 1291587855 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :obviously < 1291587939 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Do, a deer, a female deer. < 1291587941 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*Doe, < 1291587961 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, must be male. First name is John after all < 1291587977 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION swats Vorpal -----### < 1291588018 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, oh did I steal your joke? < 1291588019 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Ray, a drop of golden sun. So cubic time, then, is solar. < 1291588025 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : oerjan, oh did I steal your joke? < 1291588027 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :THE OFFENCE! < 1291588034 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, :D < 1291588039 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(wrt cubic time) < 1291588039 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: btw, I got it working. < 1291588042 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :bin/basename: bin/basename.c ; $(utensil) < 1291588045 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Bunch of lines like that now. < 1291588051 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, meaning... ? < 1291588054 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Did you get the Ray -> Gene Ray reference that makes that make any sense at all? :P < 1291588057 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, the ; $() stuff I mean < 1291588065 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, yes it was obvious < 1291588069 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: ; lets you start the commands for a rule. It's like \n\t. < 1291588073 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Except without the newline or tab. < 1291588079 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, once I hit "cubic time" it was obvious < 1291588082 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :define utensil < 1291588082 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : @echo ' CC $@' < 1291588082 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : @$(CC) $(CFLAGS) $^ -o $@ < 1291588082 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : @if [ "$(strip)" = 1 ]; then tools/sstrip $@; fi < 1291588082 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :endef < 1291588084 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: well i'm apparently supposed to punish _other_ people's bad puns. i have no idea why... < 1291588088 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :That should answer the $() bit. < 1291588092 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, huh < 1291588099 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, define.... < 1291588101 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: state-sanctioned monopoly, duh < 1291588102 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :make has that? < 1291588108 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: ah. < 1291588109 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: It's like = except multi-line. < 1291588115 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Did I mention you can make macros that take parameters? < 1291588119 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :$(call func,arg1,arg2,arg3). < 1291588123 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Make is insane. < 1291588125 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Well, GNU make. < 1291588141 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :what. this OCR-ed selection and copy text fails < 1291588147 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :"¥qC :4roär̆L W ̆4r;x̆rVC̆̈ C qKCr;̈C : ̆4r ̆r» r ¤r" < 1291588168 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :really: "Using, for example, the Sierpinski trangle" < 1291588169 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the sun is actually a cube. it just looks round because the light is bent by gravity. < 1291588175 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: :D < 1291588191 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, this is annoying, I wanted to copy this stuff here < 1291588192 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: btw < 1291588194 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :_print_%: < 1291588195 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : @echo $($*) < 1291588195 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :useful rule. < 1291588196 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, it was from SIGBOVIK < 1291588200 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :and rather funny < 1291588203 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :for src in $(make --no-print-directory _print_sources); do < 1291588206 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :-- tools/genrules < 1291588229 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, RECURSIVE MAKE? < 1291588230 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :sinner < 1291588252 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: No... < 1291588257 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ah phew < 1291588269 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Well. Yes. Make calls tools/genrules, which calls make again to do _print_sources. < 1291588274 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :However, that is the only way it is recursive :P < 1291588285 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :_print_sources just... prints $(sources), as you can see in the rule definition above. < 1291588295 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, this paper discusses fractal footnotes < 1291588303 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1291588312 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, well, what did you expect with SIGBOVIK < 1291588323 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Oh yeah, Vorpal is a SIGBOVIK expert. < 1291588326 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :So is everyone in here. < 1291588329 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, indeed :P < 1291588336 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :It totally isn't oerjan's linking yesterday that gives him this expertise, no no :P < 1291588349 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :_absolutely_ not. < 1291588352 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, oh I wondered why the tab was open in my browser < 1291588358 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : CC bin/cal < 1291588359 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :bin/cal.c: < 1291588359 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :lib/ultostr.c: < 1291588359 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : CC bin/cat < 1291588362 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :What... what kind of error is that. < 1291588364 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(seriously, I had no clue) < 1291588369 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(and read it and found it interesting) < 1291588374 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"Hey you! Something went wrong in this file! What went wrong is ." < 1291588377 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"Any questions?" < 1291588395 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: the 2007 conference was apparently where wikiplia was announced < 1291588401 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, indeed < 1291588407 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :$ /opt/pcc-dietlibc/bin/diet -Os /opt/pcc-dietlibc/bin/pcc -Wall -Ilib -Wl --gc-sections bin/cal.c lib/ultostr.c -o bin/cal < 1291588408 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :bin/cal.c: < 1291588408 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :lib/ultostr.c: < 1291588408 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :NOT < 1291588409 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :HELPFUL < 1291588423 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, this is "Level-of-Detail Typesetting of Academic Publications" < 1291588497 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: so tell me vorpal < 1291588507 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :how do i have an array declared in a header file that is statically initialised in a .c file including that header < 1291588511 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i've never been able to figure that one out < 1291588524 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Do you like to join help with 'Charities for poor people and monsters with names starting with "A"'? < 1291588534 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, also wonderful idea to fit infinite amount of text into a page based on halving the typeface (same way as one of Zeno's paradoxes iirc) < 1291588545 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: that rings a bell, i think that was one of tom7's other contributions the same year? < 1291588547 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, you mean: < 1291588551 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :extern foo[]; < 1291588552 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :in the header < 1291588555 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan is secretly tom7 < 1291588555 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :well < 1291588558 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: oh, just doing extern makes it work? < 1291588559 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :extern int foo[]; < 1291588565 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, then int foo[] whatever < 1291588567 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :in the file < 1291588570 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :97521 total < 1291588571 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*cry* < 1291588572 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, extern in the header yes < 1291588582 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Somehow doing "cc foo.c bar.c" is bigger than "cc foo.c" where foo.c includes bar.c. < 1291588587 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Of course I did have to remove a lot of "static"s... < 1291588591 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: no but i read that blog post i also linked yesterday (i haven't actually read the SIGBOVIK site) < 1291588597 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, well obviously due to poor compiler < 1291588602 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, you want gcc --combine < 1291588605 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :then it can do that < 1291588611 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, pcc probably can't do it < 1291588735 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Or I could compile stdin, and use cat. < 1291588735 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1291588766 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Actually, I can probably have a LIBRARY define that's done like < 1291588770 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :#ifdef INDIVIDUAL < 1291588773 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :#define LIBRARY static < 1291588775 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :#else < 1291588776 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :#define LIBRARY < 1291588777 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :#endif < 1291588786 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and in each source file < 1291588788 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :#ifdef INDIVIDUAL < 1291588794 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :#include "lib/foo.c" < 1291588795 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :#endif < 1291588805 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :that way, I can still get stuff combined in box builds < 1291588810 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but use static in individual builds < 1291588847 0 :MigoMipo!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1291588861 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :hah the sigbovik proceedings pdf has a disclaimed about LaTeX allergies < 1291588870 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :mixing up latex and LaTeX < 1291588870 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :bin/cal.c: < 1291588871 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :lib/ultostr.c: < 1291588871 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :lib/cutlery.h, line 22: syntax error < 1291588874 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I hate you, pcc. < 1291588877 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :God, I love pretentious YouTube commenters. < 1291588881 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I'm going to add a DEBUG=1 that uses gcc :P < 1291588886 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :[[This is what our species is capable of at our highest form of endeavor. Even if all of us can’t create and compose like this, thank God our humanity links every human being to it.]] < 1291588890 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Guess the video! < 1291588890 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, clang gives better errors < 1291588901 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: LazyTown: The Ukulele Cover < 1291588906 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: gcc gives acceptable errors. < 1291588907 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, no, but close. < 1291588911 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: What then? < 1291588914 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Never Gonna Give You Up < 1291588919 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :It's the theme from Cinema Paradiso. < 1291588942 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, "gcc: line 22: expected } " "clang: line 12: you maybe forgot a ; here. Look here is the line and an arrow to where I think it should be" < 1291588942 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, then it would be evidently tongue-in-cheek. < 1291588961 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :In this context, it's clear they're entirely serious. < 1291588964 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, the different line numbers were intentional < 1291588966 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I'm used to gcc. < 1291588972 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I can sling it. < 1291588974 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1291588975 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, yes but it sucks when it comes to syntax errors < 1291588977 0 :Phantom_Hoover!unknown@unknown.invalid QUIT :Remote host closed the connection < 1291588978 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :seriously sucks < 1291588981 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Gah < 1291588995 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :This assignment is not worth the two seconds needed to type it < 1291588996 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Better than "syntax error". < 1291589004 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Maybe the two seconds Googling for the main idea < 1291589016 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I don't think you're meant to google < 1291589018 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1291589018 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :But still, I really, really don't want to open a text editor, type some code, etc. < 1291589022 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, okay that is true < 1291589036 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :She only taught us the existence of XOR swapping, not how to do it < 1291589042 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Good. < 1291589043 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Although now that I saw it, it seems obvious < 1291589044 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :XOR swapping is evil. < 1291589055 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what is the sound of one XOR swapping < 1291589055 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :The assignment is to do XOR swapping < 1291589066 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Any specification on what to do if x==y? ;) < 1291589074 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Also, congrats for not being able to figure out xor swapping yourself X_X < 1291589132 0 :poiuy_qwert!~poiuy_qwe@CPE001f5b00390f-CM001e6b2335dc.cpe.net.cable.rogers.com JOIN :#esoteric < 1291589136 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Quick! What do you do if a header mentions mode_t, but not every including source file will have included a header that defines mode_t? < 1291589150 0 :p_q!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1291589164 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, include the relevant header in the header using it < 1291589176 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, that should always be done < 1291589181 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: BZZT! You never include headers from inside headers. < 1291589182 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Ever. < 1291589184 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :There are no exceptions. < 1291589196 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, so stddef.h might not be included if you need NULL? < 1291589197 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Including headers inside headers is the sole reason include guards exist. < 1291589200 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And include guards are evil. < 1291589202 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :they why does stdio do it < 1291589205 0 :poiuy_qwert!unknown@unknown.invalid QUIT :Client Quit < 1291589213 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: "Gee, how can this be bad? Modern Unix does it!" < 1291589234 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, guards are good because the alternative: having to figure out what headers you need, is worse. Especially if that header is updated and now needs more stuff < 1291589243 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :then everything you wrote is broken < 1291589246 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: The correct thing (as done in Plan 9, which just so happens to have the inventors of C on board) is to make people including the header also include its dependencies. < 1291589247 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, sure guards are suboptimal < 1291589250 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :By documenting them. < 1291589258 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, and what if you want to add more < 1291589271 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, actually you should just do #use module stdio < 1291589272 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :or such < 1291589275 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Then you break compatibility, duh. Adding dependencies always breaks compatibility. < 1291589300 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Anyway it's not so clear in my case because not every program wants to include . < 1291589321 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, not necessarily for headers. And just recompiling it is better than having to change code and then recompile it < 1291589343 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, you could always split it in 10 different header files < 1291589349 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Why don't you do it in the way that Enhanced CWEB does it? It does differently including header file and other things. < 1291589351 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :like: "foo_that_needs_sys_stat.h < 1291589353 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :" < 1291589355 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :and so on < 1291589357 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Did I mention that Plan 9 source code compiles much faster, not just because of the better-designed C compiler, but because there are no include guards? < 1291589382 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I'm not sure I see that benefit as that much more important < 1291589384 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :And in Enhanced CWEB, you can use change files to make system dependent changes. < 1291589391 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, also include guards is a tiny bit of it < 1291589404 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, seriously check the clang stats on what is cpp and what is cc < 1291589405 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Actually, no, it was a significant amount of time. < 1291589416 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, then your cpp is weird < 1291589416 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: OK, so clang have a super-optimised cpp :P < 1291589419 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"Good for them!" < 1291589430 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Can the inventors of C really be said to implement C in a weird way? < 1291589434 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Word of god and all that. < 1291589436 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, point is, with C you should use include guards. A module system would be better < 1291589449 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, yes. No one is perfect. < 1291589454 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :You are wrong. Enjoy being wrong! < 1291589459 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :It is possible to do the C preprocessor and C compiler all together in one pass. < 1291589475 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Ugh, busybox just includes every header ever in libbb.h. < 1291589477 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, but then why did you ask me < 1291589485 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Perverse curiosity? < 1291589511 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, include guards are suboptimal. But yes I suggest they should be used. Actually I will force you to use #pragma once < 1291589526 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: #import < 1291589530 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: In Enhanced CWEB, you should use a metamacro or PicoC code to tell it not to require adding include guards. < 1291589531 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, or that < 1291589537 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :elliott, XOR swapping seems to work just fine when the values are the asme < 1291589538 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :same < 1291589559 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, I do. not. care. about enhanced cweb < 1291589562 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: By the same I mean X has-same-storage-location-as Y. < 1291589566 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Oh < 1291589587 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :also why xor swap. That is kind of pointless on modern systems. < 1291589597 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Why? Surely it will do these things you are trying to do. < 1291589604 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :a more traditional swap will probably be compiled into xchg < 1291589622 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, it is not a plain C compiler. Also it is C. < 1291589625 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :I don't like C < 1291589653 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Some day I will pull out everything you have ever said about Linux being awesome and C being awesome and garbage collectors being for people who can't manage their own memory from the logs. < 1291589656 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And I will paste them all. < 1291589659 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And you will suffer :P < 1291589667 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, there is this thing called "change opinion over time" < 1291589674 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, you surely done that yourself < 1291589677 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, maybe one day I'll talk only in old AnMaster log quotes and see if I can get Vorpal arguing with his past self >:) < 1291589682 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: NO MY OPINIONS ARE IMMUTABLE BECAUSE I AM HASKELL < 1291589685 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Enhanced CWEB is not a C compiler at all, actually. You still need a C compiler. And it can work with C++ as well, in case you prefer to use C++. < 1291589697 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I'm the State monad :P < 1291589708 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :or even St < 1291589711 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I have no gonads. I mean monads. < 1291589712 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*ST. < 1291589715 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Also more like IO. < 1291589716 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, or why not STT < 1291589718 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :that sounds awesome < 1291589723 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: No no no no no no. < 1291589725 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Am I an opinion slut? < 1291589728 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, yes yes yes! < 1291589728 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: There is a very good reason that does not exist :P < 1291589733 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Specifically, time travel. < 1291589737 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, yes! < 1291589742 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, we invented a time machine! < 1291589745 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(as I suspected) < 1291589766 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, hm is there a StateT? < 1291589768 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Not as fun as IOT! < 1291589774 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION decides he'd rather do the assignment right before class begins < 1291589784 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : Am I an opinion slut? < 1291589785 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1291589797 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :do c <- savePoint; takeOverGovernmentComputers; readLine; restorePoint c < 1291589799 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I think Sgeo got self-uh... self-something < 1291589805 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :SWAT team outside your door? < 1291589806 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, awesome < 1291589807 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Just press enter! < 1291589833 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Yes Vorpal, there is a StateT < 1291589841 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, right, that works of course < 1291589843 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: :D < 1291589845 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: whoosh < 1291589876 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, hm? doesn't it? I though StateT would not involve time travel < 1291589879 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ACTION checks < 1291589883 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :whoooooosh < 1291589942 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, you confuse me < 1291589958 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, it does exist. Just because it can exist doesn't mean someone coded it. < 1291589958 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: the man confuses himself < 1291589972 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: whoooooooooooooooooooooooooooooooooooooooosh < 1291589980 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :gale force whoosh < 1291589989 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, you make no sense < 1291590015 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: He has been affected by the skepticism of a skeptical age. < 1291590024 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i blame science < 1291590029 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :night → < 1291590039 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: well to be fair < 1291590052 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: TO be FAIR < 1291590055 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :it is midnight. I will have to wake up in 6 hours. < 1291590058 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :now night → < 1291590061 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: you are a mere insect, an ant, in his intellect. < 1291590067 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ok that didn't work :D < 1291590143 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Looking at amount of of allocations at or above /14 from APNIC in last 30 days: 4x/14s, 2x/13s, 3x/12s and 1x/11... < 1291590211 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :That's equivalent to 7Mi addresses (~44% of block). < 1291590272 0 :Sasha2!~WHAT@97-124-43-114.phnx.qwest.net JOIN :#esoteric < 1291590318 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: i saw something on reddit about ICANN projecting to run out in january < 1291590343 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :If they burn half of a block per month and they have 3.52 blocks unallocated, the present allocation would suffice only for 7 months, which would allow immediate allocation. < 1291590347 0 :Sasha!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1291590363 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, linky? < 1291590379 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and I saw some RIPE executive predicting exhaustion this month. < 1291590395 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: it was actually a horribly translated blogspam link, i'd try to find something better < 1291590464 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Even at 0.44 blocks / month, it would be 8 months (immediate request would be within policy). < 1291590647 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Some say that regardless that APNIC could request blocks (triggering X day) immediately, they won't do it before year is over. < 1291591741 0 :zzo38!unknown@unknown.invalid QUIT :Remote host closed the connection < 1291592206 0 :TLUL!unknown@unknown.invalid NICK :TLUL|afk < 1291592251 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :every computer is a theorem proving machine and every program output is a proved theorem; do godel's theorems place any practical limits on the functionality application writers can deliver? < 1291592274 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :(outside of the specific domain of mathematicians who want computers to prove their theorems for them, of course) < 1291592380 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :speculation triggered by this: http://richardelwes.co.uk/2010/10/21/concrete-incompleteness-1/ < 1291592434 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you might want to look at the halting problem, which is very similar to godel's theorem but more directly for computation. < 1291592451 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :of course im aware of the halting problem :| < 1291592494 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :they're both diagonalization proofs. you can probably also prove each in terms of the other. < 1291592537 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :hi mycroftiv < 1291592541 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :are you talking because we mentioned you < 1291592563 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :sure, nowadays godel's proofs are often presented mostly in programming terms because they can be stated more easily and intuitively that way < 1291592573 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :they are? < 1291592574 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :theres actually been a long standing conflict on wikipedia over that issue < 1291592604 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :hmph basename() is broken < 1291592645 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :elliott: the fact that my nick was used in this channel reminded me that I ought to be participating because this channel is pretty great < 1291592647 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oh wait nm :D < 1291592659 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: it is the best of channels. also the blurst < 1291592672 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: in case you are blind to the exceedingly obvious i'm ehird < 1291592681 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: well in any case there are lots of undecidable programming problems which reduce to the halting problem < 1291592684 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and i'm very disappointed that my box has reached 30K < 1291592696 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :elliott: i actually figured that out 'awhile ago' when just passively reading the log < 1291592711 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: creepy :P < 1291592724 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :eurgh, i feel so ill < 1291592763 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: so with my troll hat firmly on, how big is plan 9's dirname executable, on x86-64? (i forget, they have x86-64 support, right? :P) < 1291592769 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :wait, they don't do they < 1291592799 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: the thing that has me interested in this is the claim that incompleteness-related issues are becoming more relevant to 'practical questions', loosely defined < 1291592817 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :elliott: the amd64 port i believe is still unreleased, much to many people's irritation < 1291592871 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: as for practical questions you'd also want to look at complexity. there are many problems which are "decidable" yet infeasible to solve in practice < 1291592886 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: 'cuz you see i'm on linux... and my dirname is 1831 bytes < 1291592898 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :what about false and true, i bet they're more than... say... 248 bytes even on i386 right? < 1291592898 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :P vs. NP and stuff < 1291592904 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i may have gone slightly crazy space-optimising these utilities < 1291592918 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :slightly. < 1291592938 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :elliott: well plan 9 executables arent usually very small because everything is statically linked, not dynamically < 1291592967 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and EXPTIME and other higher that are _known_ to be infeasible, not just conjectured to be so < 1291592972 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*higher ones < 1291593024 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: this is static < 1291593034 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :the sizes i'm quoting < 1291593135 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*higher complexity classes < 1291593204 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :elliott: well the plan 9 basename is 37919 but that is pretty close to the minimal size for a plan 9 binary built with just the libc