00:10:02 -!- Tritonio_ has joined. 00:12:50 -!- calamari has quit ("Leaving"). 00:21:23 Why are there 8.388.606 different values for NAN :o 00:22:02 Oh, it's also independant of the sign bit. So 16 millions :o 00:22:39 The more the merrier! :-P 00:22:46 celebrating diversity! 00:23:12 Well, I don't want to be racist and all, but if someone isn't a number, he should go back to his country. 00:24:27 apparently, there were political issues with excluding so many non-numbers from the standard 00:25:02 Affirmative action strikes again! 00:25:18 But you don't see them giving a third value to the infinities! 00:25:21 Sickening. 00:36:20 -!- Corun has quit ("This computer has gone to sleep"). 01:02:49 -!- sebbu has quit ("@+"). 01:22:39 -!- Overand has quit ("Reconnecting"). 01:22:41 -!- Overand has joined. 01:22:57 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 01:41:13 -!- Sgeo has joined. 03:41:49 goodnight everyone 03:44:09 -!- Tritonio_ has quit (Remote closed the connection). 03:47:15 http://youtube.com/watch?v=gCh-fOTGgks&feature=related 03:47:17 D: 03:47:20 D: 03:47:21 D: 04:13:43 Why D:? 04:15:40 I mean, besides the sucky attempt at singing 04:18:25 That's also horribly written. 04:18:50 I stopped at 'Formally, a Turing can be defined as'. . . 04:19:01 Just *ouch*. 04:19:14 My music-loving soul wants to execute him. 04:19:15 He won't win no gold. 04:19:58 Is there a good program to deal with graphs? 04:20:06 Bonus point for visualisation. 04:20:30 Is there a good way of embedding a graph in LaTeX? 04:20:41 Something that would be able to deal with some transformation on the graph, so that I might try to build the Andrei machine. 04:20:44 9000. 04:26:24 I just don't dare to google "graph". 04:50:47 http://gato.sourceforge.net/ 04:50:48 Ahah! 04:53:49 * Sgeo posts on Fark: Completely 100% irrelevant and off-topic, but when I see someone say "gObama", I immediately think of gOS.. Is Obama sponsored by Google? 04:53:49 /waits for someone to not recognize a joke 04:53:49 //darn 04:53:53 Aw shit. I need some modules. 04:54:02 http://forums.fark.com/cgi/fark/comments.pl?IDLink=3430569 05:27:44 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 05:29:55 Argh. 05:30:16 I'm having trouble sleeping, because I have a graph doing the Fibonacci jig in my head. 06:22:58 -!- dbc has joined. 06:54:30 -!- oerjan has joined. 07:20:29 -!- immibis has joined. 07:31:03 -!- cherez has quit ("Leaving."). 07:31:46 -!- cherez has joined. 07:52:11 -!- immibis has changed nick to we. 07:52:18 -!- we has changed nick to u. 07:52:22 * u farted 07:52:39 * u r teh ..... what should i put here? 07:54:13 http://en.wikipedia.org/wiki/U_Thant 07:55:15 * u ask freenode to unban "you" as a nick 07:56:07 -!- u has changed nick to me. 07:56:38 * you hit! 07:56:38 * me knows better than to start a sentence with "me", that's why he's changing his nick to "I" 07:56:40 -!- me has changed nick to I. 07:56:51 * I changed my nick 07:56:56 lol 07:58:00 -!- I has quit (Nick collision from services.). 07:58:43 lol 07:58:46 -!- immibis_ has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:38 d'oh 08:00:39 [20:56] --NickServ-- This nickname may not be used. Please choose another. 08:00:39 [20:56] --NickServ-- If you do not change within one minute, you will be disconnected 08:00:40 [20:56] --NickServ-- This nickname may not be used. Please choose another. 08:00:40 [20:56] --NickServ-- If you do not change within one minute, you will be disconnected 08:00:45 [20:56] --NickServ-- This nickname may not be used. Please choose another. 08:00:45 [20:56] --NickServ-- If you do not change within one minute, you will be disconnected 08:00:46 [20:56] --NickServ-- This nickname may not be used. Please choose another. 08:00:46 [20:56] --NickServ-- If you do not change within one minute, you will be disconnected 08:00:57 d'oh again i didn't mean to do that 08:01:16 -!- immibis_ has changed nick to immibis. 08:07:31 ok. "you" is out. "I" is out. 08:07:34 -!- immibis has changed nick to we. 08:07:51 i wonder if NS will let me register "I" and disable that protection... 08:07:53 -!- we has changed nick to I. 08:08:17 -!- tejeez has quit (brown.freenode.net irc.freenode.net). 08:08:17 -!- Deewiant has quit (brown.freenode.net irc.freenode.net). 08:08:19 -!- I has changed nick to immibis. 08:08:19 nope 08:09:27 -!- immibis has changed nick to GreaseMonkey. 08:09:51 -!- GreaseMonkey has changed nick to immibis. 08:11:11 -!- immibis has changed nick to u. 08:11:20 * u will like me having this nick or else 08:11:26 -!- u has changed nick to yu. 08:16:05 * yu will say something 08:17:38 * yu WILL follow the directions on this sign. The sign says "Stop. Drive sideways." 08:17:55 "three types of ball are offered. They are one. two. three." 08:22:02 "In my attempt to kill a fly, I drove into a telephone pole." 08:22:13 "The telephone pole was approaching fast. I was attempting to swerve out of its path when it struck my front end." 08:22:23 # "The guy was all over the road. I had to swerve a number of times before I hit him." 08:24:56 -!- yu has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. and email ths to). 08:52:14 -!- jix has joined. 09:30:48 -!- tejeez has joined. 09:34:27 -!- oerjan has quit ("Later"). 09:37:09 -!- lifthrasiir has quit (brown.freenode.net irc.freenode.net). 09:37:10 -!- puzzlet has quit (brown.freenode.net irc.freenode.net). 09:37:11 -!- Deewiant has joined. 09:37:58 -!- puzzlet has joined. 09:37:58 -!- lifthrasiir has joined. 09:39:34 -!- jix has quit (Read error: 110 (Connection timed out)). 09:40:46 -!- olsner has quit ("Leaving"). 10:39:26 -!- jix has joined. 10:53:29 -!- Corun has joined. 10:53:52 -!- Corun has quit (Client Quit). 11:05:12 -!- mental has joined. 11:05:32 -!- lament has quit (Read error: 113 (No route to host)). 11:36:19 -!- jix has quit ("This computer has gone to sleep"). 12:00:29 -!- jix has joined. 12:02:58 -!- AnMaster_ has joined. 12:04:08 -!- AnMaster has quit (Nick collision from services.). 12:04:36 -!- AnMaster_ has changed nick to AnMaster. 12:21:17 -!- Tritonio_ has joined. 12:25:04 -!- jix has quit ("This computer has gone to sleep"). 12:34:55 -!- sebbu has joined. 13:18:12 -!- RedDak has joined. 13:22:55 -!- sebbu has quit (Read error: 60 (Operation timed out)). 13:32:11 -!- jix has joined. 13:57:54 -!- jix has quit ("This computer has gone to sleep"). 14:07:55 in brainfuck, is it the case that a + or - directly in front of a "," can be optimized away? 14:08:17 -!- sebbu has joined. 14:21:59 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)). 14:22:01 -!- slereah__ has joined. 14:49:00 -!- wildhalcyon has joined. 14:49:40 -!- slereah_ has joined. 14:51:50 Well, if it's in front of a , you can probably remove it 14:52:38 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)). 14:54:21 slereah_, hm ok 14:54:35 also strings of + and - can be optimized 14:54:38 like ++- 14:54:40 to just + 14:54:57 * AnMaster is pondering a brainfuck optimizer 14:55:22 one thing that is obvious (in the compiler or interpreter), replace [-] or [+] with "zero cell" opcode 15:01:56 Where can I get the Profile module for Python? 15:22:34 I was thinking of writing a hyperexponentiation program in bf 15:23:48 use a trinary operator (x,h,y) where it computes x^^..h..^^y 15:26:48 ... seems a little hard maybe 15:27:14 * slereah_ 's trying to write an addition program on a Kolmogorov machine 15:27:45 -!- Corun has joined. 15:28:10 -!- slereah_ has changed nick to Slereah. 15:29:16 -!- RodgerTheGreat has quit (Read error: 110 (Connection timed out)). 15:48:22 -!- slereah_ has joined. 15:49:01 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 15:50:07 -!- jix has joined. 16:00:38 -!- jix has quit ("CommandQ"). 16:00:58 -!- jix has joined. 16:17:59 -!- ehird` has joined. 16:19:22 foobar 16:23:34 ooh 16:23:37 immibis has been spamming again 16:24:17 AnMaster: brainfuck optimization is pretty advanced these days 16:24:24 the stuff you have talked about is 3-line stuff 16:24:37 nowadays we optimize linear loops to O(1) and multiplication and everything ;O 16:28:46 ehird`, ah 16:28:55 ehird`, can you point me to an example of that? 16:29:26 AnMaster: of what 16:29:26 Well, I'm sure EsCo can satisfy all your BF needs! 16:29:29 slereah_: tee hee 16:30:03 AnMaster: http://mazonka.com/brainf/bff4.c this optimizes linear loops to O(1) if compiled with -DLNR 16:30:12 http://mazonka.com/brainf/index.html some benchmarks 16:30:15 interesting 16:30:41 it's the fastest bf interp out there 16:31:11 hrrm 16:31:18 it seems to use ints, though, not chars 16:31:21 someone should write a bf frontend for gcc 16:31:30 nah 16:31:32 what's the point?| 16:31:39 gcc wouldn't be able to do much to the code 16:31:43 ehird`, cross platform :P 16:31:47 ESO1's reference will include a fast bf interp and compiler anyway 16:31:52 AnMaster: so what 16:31:55 x86, x86_64, whatever arch you want 16:32:01 compiling to machine code is pointless for BF 16:32:14 compile to good C, and then gcc -O3, because gcc can spot idioms better than you 16:32:17 especially in C. 16:32:20 ehird`, nah you could do common code reduction to "un-inline" it 16:32:25 sigh 16:32:31 AnMaster: gcc is not suitable for this 16:32:35 http://www.swapped.cc/bf/ <-- the reigning champ interp before bff4 16:32:36 for size that could be nice 16:32:38 ehird`, hm true 16:33:12 oh -- and bff4.c doesn't do interactive input 16:33:15 it's dbfi 16:33:18 prog!input 16:33:24 so no luck running e.g. lostkng.b on it 16:33:39 anyway, the ESO1 reference suite will be the best one out there when it's worked on, i'll bet 16:33:42 ehird`, aww 16:33:42 Well, you could do lostkng!the solution 16:33:47 And just watch it! 16:33:48 slereah_: hehe 16:33:51 ehird`, well I want interactive input 16:33:53 lostkng is only slow in startup 16:33:54 that's important for me 16:34:00 AnMaster: http://www.swapped.cc/bf/files/bff-1.0.3.1.tar.gz 16:34:05 or.. 16:34:11 I'll mod bff4.c for interactive. 16:34:15 Should just take a mo. 16:34:16 ehird`, or I could mod it 16:34:20 naw 16:34:22 * AnMaster is a C programmer too 16:34:22 i'm far cooler 16:34:23 ;) 16:34:34 i love the style of code in bff4.c 16:34:35 it's so opaque 16:34:54 ehird`, possibly, but I'm way geekier, I updated mosaic to support basic xhtml and plan to make it good enough to use it as my normal browser 16:34:56 * slereah_ is not a programmer at all 16:34:56 Damn you people and your fancy code! 16:34:57 yes I'm mad! 16:35:00 BHAHAHAHA! 16:35:12 ;P 16:35:16 AnMaster: why would you want to do that, though? 16:35:22 mozaic isn't even useful, like lynx is 16:35:25 Let's hook up AnMaster on PSOX 16:35:27 it's just crap 16:35:28 ehird`, because it make ppl ask why I want to do it 16:35:31 slereah_: gawd no :D 16:35:32 ;P 16:35:36 what is PSOX? 16:35:46 AnMaster: i'm way geekier, i started making an OS once! :( 16:35:48 ehird`, and I run a gopher server 16:35:48 it sucked, sure, but hey 16:35:52 i got it to print hello world :| 16:36:00 http://www.esolangs.org/wiki/PSOX 16:36:29 psox 16:36:30 hrrm, what's on the other side of the scale of minimalism 16:36:31 is horrid 16:36:35 do not listen to it AnMaster! :( 16:36:38 bf is near the bottom 16:36:42 so what is at the top? 16:36:44 AnMaster: malbolge 16:36:44 intercal? 16:36:45 or intercal 16:36:52 Unikitten 16:36:53 orr 16:36:53 ORK 16:36:56 slereah_: well, yeah 16:36:59 ehird`, well malbolge doesn't have a lot of opcodes 16:37:00 unikitten is the most bloated thing out there 16:37:09 AnMaster: http://www.esolangs.org/wiki/ORK 16:37:11 just verbose though 16:37:16 http://www.esolangs.org/wiki/PSOX <-- wowowowow though 16:37:18 Well, once it exists. 16:37:31 unikitten? 16:37:31 AnMaster: it's horrid 16:37:35 Sgeo doesn't know what malloc() is 16:37:36 someone tried lolcode? 16:37:43 sgeo? 16:37:44 and he thought a good 'networking' domain was HTTP 16:37:45 :( 16:37:48 AnMaster: PSOX maintainer. 16:37:54 ah 16:38:02 Lolcode isn't very esoteric. 16:38:03 ehird`, well what do you mean not know malloc? 16:38:06 slereah_, that's true 16:38:11 AnMaster: he had no idea what it was 16:38:11 lolcode is just weird 16:38:14 just none 16:38:18 ehird`, err, weird 16:38:24 AnMaster: he only knows Python.. 16:38:25 you can't code C without knowing it 16:38:32 he doesn't even know basic brainfuck algorithms, really 16:38:37 ehird`, well if it is written in python? 16:38:38 and he's probably watching me say this right now 16:38:44 Heh. 16:38:49 AnMaster: yes, but it would affect the architechtural stuff of it 16:39:03 ehird`, just bohem-gc *runs* 16:39:14 boehm gc has malloc. 16:39:15 heh. 16:39:18 I actually use bohem-gc, for a leak detector :) 16:39:24 I use boehm-gc. 16:39:28 it's excellent. 16:39:31 combined with valgrind and mudflap it is quite useful 16:39:35 (for real GC) 16:39:49 ehird`, it isn't, how do I register an allocation from X for example 16:39:50 that is 16:39:54 X allocated a widget 16:40:00 AnMaster: you asked this last time 16:40:01 I need to place some pointers in widget 16:40:06 because manuals are too difficult to read for you, apparently 16:40:10 ehird`, yes I read the docs, and found no way 16:40:14 :/ 16:40:26 AnMaster: go ask in #c 16:40:32 i cba to explain 16:40:42 ehird`, "cba" means? 16:40:59 ehird`, well #c is an unfriendly channel 16:41:07 :/ 16:41:33 it sure is 16:41:37 and it has PoppaVic 16:41:42 cba=can't be arsed 16:41:46 ehird`, exactly! 16:41:55 anyway, I read the docs 16:42:00 I read the header files 16:42:11 still no idea how to tell it about an already malloced object 16:42:38 I tried GC_add_roots, no idea why it didn't work :/ 16:44:45 if( strchr(",.",a) ){ a=getbf(); continue; } 16:44:55 getbf only litsens to BF instructions 16:44:58 so surely, this is a bug 16:46:35 ehird`, the getbf? 16:46:41 or the GC_add_roots? 16:49:18 Darn, Gregor -= CMU :P 16:49:23 -!- slereah__ has joined. 16:52:09 GregorR: Those guys made CMUCL. You don't want to be anywhere near them! 16:52:11 x) ehird@ehird-desktop ~/LostKingdomBF $ ../bff4 LostKng.b 16:52:12 16:52:15 doggarn! 16:52:22 lol 16:53:48 GregorR: have you ever looked at bff4.c? :P 16:53:55 Probably. 16:54:14 Hmm. 16:54:27 eso1's reference interpreter/compiler needs a name. 16:54:30 ehird`, someone need to use better variable names 16:54:34 and more comments 16:54:44 AnMaster: the source is not that hard to understand; just at first 16:54:51 verbose c code is horrible 16:55:32 ehird`, true, but so is obfuscated as well 16:55:44 this ain't obfuscated 16:56:03 AnMaster: This is obfuscated C: http://nsl.com/papers/origins.htm 16:56:17 and what's more, that guy actually writes all his C like that, and seriously 16:56:18 :-) 16:56:53 I don't believe that 16:57:30 AnMaster: APL. 16:57:34 He also made K. 16:57:36 APL? 16:57:39 hahah 16:57:53 http://www.kx.com/a/k/examples/read.k 16:57:54 that's some k code 16:57:57 translates k to english 16:57:58 -!- Slereah has joined. 16:58:12 oh god 16:58:20 it needs to be run on itself 16:58:31 http://www.kx.com/a/k/examples/xhtml.k this parses xhtml 16:59:10 AnMaster: KDB, a very widely used, fast, stable etc. database program, used by loads of finance stuffz, made by Kx systems (same people as K, obviously), is written in K 16:59:16 and according to them, contains 0 loops 16:59:22 crazy crap 16:59:32 why no loops? 16:59:36 what is wrong with loops? 16:59:39 AnMaster: it's an array programming language 16:59:57 scalar values in K etc are just 0d arrays 17:00:02 I see 17:00:09 1 2 3 + 1 2 3 == 2 4 6 17:00:10 but why no loops? 17:00:17 so basically all operations are generalized across arrays 17:00:19 I wish I could write C code like that 17:00:24 so you don't have to loop over an array 17:00:34 AnMaster: because that's the style of array programming languages 17:00:36 ehird`, ok, but on hardware level it would loop 17:00:39 wildhalcyon: me too! it's not easy. 17:00:44 AnMaster: gosh, really 17:00:50 i thought faeries did it 17:00:55 lol 17:01:04 ehird`, anyway what's so nice with "no loops" 17:01:13 I mean, why would anyone boost with it? 17:01:14 AnMaster: it's array programming language style. 17:01:19 I would disagree with anyone who told me it WAS C code unless I knew already 17:01:23 well they obviously prefer it 17:01:45 -!- Slereah- has joined. 17:02:15 http://nsl.com/papers/unlambda.htm unlambda in k 17:02:36 k? 17:02:39 did i mention that in K it's actually shorter & more trivial to write a gui app than a console one? it's really, really weird 17:03:10 http://nsl.com/papers/befreak.htm this interp+gui = http://nsl.com/k/befreak.k 17:03:50 -!- RodgerTheGreat has joined. 17:04:35 ehird`, where can one read about the k language itself? 17:04:49 AnMaster: http://www.kuro5hin.org/story/2002/11/14/22741/791 17:04:54 that introduces it very gently. 17:05:00 AnMaster: i must warn you though; it's not open source 17:05:05 ehird`, ah 17:05:09 then I won't use it 17:05:15 kx systems used to offer a free interpreter for most systems, but they appear to have stopped 17:05:30 ehird`, couldn't someone make an open source compiler for it (why would anyone want that?) 17:05:39 AnMaster: compiler, no. 17:05:42 interpreter, yes. 17:05:46 but the k library is huuuuuge 17:05:52 i doubt it would be feasable to reproduce it 17:06:01 without years and years of stuffs 17:06:36 library hm? 17:07:27 AnMaster: all its stdlib 17:07:27 -!- slereah__ has quit (Read error: 110 (Connection timed out)). 17:07:31 i.e. more than the basic lang 17:07:31 ah 17:07:40 which already uses most characters on a keyboard, I'll venture 17:12:19 -!- slereah_ has quit (Read error: 110 (Connection timed out)). 17:15:20 -!- Slereah has quit (Read error: 110 (Connection timed out)). 17:15:26 Hell, Kolmogorov didn't have I/O on his mind with his machine. 17:16:42 typedef enum { 17:16:42 ADD, 17:16:42 MOVE, 17:16:42 SET, 17:16:42 WHILE, 17:16:43 IF, 17:16:45 INPUT, 17:16:47 OUTPUT 17:16:49 } op_t; 17:16:51 i should expand that, sometime. 17:17:08 ehird`, hm? 17:17:12 What is it for? 17:18:17 bfi 17:18:30 the ESO1 reference interpreter 17:21:26 'It's impractical to program in BrainFuck.' GENIUSES, ON THE INTERNET 17:21:52 Where? Where! 17:22:05 some ridiculous forum 17:22:20 Lynxplz 17:22:50 too late 17:24:26 Slereah-: how can you optimize linear loops, actually? 17:24:26 like 17:24:30 -!- Sgeo[College] has joined. 17:24:34 [++>--<+++>>>-<+>--<<++<+>-<-] 17:24:34 Hi all 17:24:36 hmm, wait.. 17:24:47 no, i have no idea how you can optimize that 17:24:47 I don't know, I'm not the one who can optimise BF! 17:24:56 grr why am I not connecting to Sine? 17:25:25 ehird`: can you connect to Sine? 17:25:46 I guess you could try to run what's inside and look at the results. 17:25:49 hmm 17:25:54 maybe i should: 17:25:56 And then change it to something more efficient 17:26:04 like, if you have a program going right 4357345 cells 17:26:07 then back to cell 1 17:26:11 i wonder if GC would be useful 17:26:18 Slereah-: I meant, algorithmically. 17:26:32 Well, that was my algorithmical idea. 17:26:42 I'm not the algorithm expert. 17:34:16 [++>--<+++>>>-<+>--<<++<+>-<-] ... Optimizing ... [+++++>-->>-<+>--<<++<+>-<-] ... 17:34:27 Oooh, I spy bf 17:35:19 Algorithm : 17:36:00 Post loop to wildhalcyon 17:36:00 Wait for answer 17:36:11 [+++++>-->>-<+>--<<++<+>-<-] ... Optimizing ... [+++++>-->>-<+>--<<++<>-<] ... 17:37:20 [+++++>-->+++>->---<] 17:37:20 Am I doin it rite? 17:37:29 [+++++>-->>-<+>--<<++<>-<] ... Optimizing ... [+++++>-->+>---<<++<>-<] ... 17:37:44 Yours seems correct 17:38:11 wait.. maybe not 17:40:57 "<>" 17:41:05 Surely that can be optimized out? 17:41:12 Here's the correct optimization: [+++++>->+>---<<<] 17:41:45 wildhalcyon: But.. 17:41:48 bff4.c 17:41:53 says it optimizes balanced <> loops into O(1) 17:42:04 http://mazonka.com/brainf/bff4.c 17:42:23 uh huh? 17:42:38 wildhalcyon: Well, that optimization of yours isn't O(1). 17:42:50 wait 17:42:51 not O(1) 17:42:52 one setp 17:42:55 *step 17:43:03 I don't see how that's possible 17:43:33 wildhalcyon: Take a look at its code 17:43:37 I don't know either, but it does do it. 17:44:27 Bah, now I have to read code. Today is just sucky. 17:44:55 Its not one step. He uses a for loop. 17:49:19 -!- Corun has quit ("This computer has gone to sleep"). 17:49:32 It is optimized, but not to O(1), only to O(n) where n is the number of cells traversed in the linear loop. 17:52:59 wildhalcyon: Ah. 17:53:13 wildhalcyon: So not that much of an optimization? 17:53:30 Well, it depends on how badly the code is written, but in general, no, not really an optimization. 17:53:43 Might help with compiled; e.g. lostkng.b, I guess. 17:54:03 Still, bfi&bfc will include it. 17:54:43 wildhalcyon, how did you optimize above 17:54:47 as in 17:54:48 [+++++>-->>-<+>--<<++<>-<] ... Optimizing ... [+++++>-->+>---<<++<>-<] ... 17:54:59 anyway <> is redundant 17:55:30 I agree, it is 17:55:41 wildhalcyon, anyway how did you do do convert it? 17:55:44 I was doing it in steps 17:55:47 ah 17:55:53 wildhalcyon, but how? 17:55:54 After that, I abandoned that approach and tried something much faster 17:56:26 Go through the loop and number each ">" or "<" by what cell it ends up pointing to 17:56:37 hm ok 17:56:47 yes that makes sense 17:56:50 so the original loop looks like this: [++1--0+++123-2+3--21++0+1-0-] 17:56:57 Now, just sort and group the terms together 17:57:07 ok 17:57:16 Remove the extra arrows, and any cancelling positive and negative signs. 17:57:18 That's it 17:58:12 hrrm, bf is really RISC :) 17:58:51 Like most esolangs. 17:59:52 Well, more instructions usually mean convenient programming. Last time I checked, esolangs were the opposite of convenient. 18:00:36 What, convenient programming? We don't like convenient programming here! 18:00:37 wowzers, gcc can optimize pure functions 18:00:40 it's almost a FP compiler 18:00:41 :-) 18:00:48 Slereah-, intercal :) 18:01:15 ehird`, of course it can, when marked with __attribute__((const)) iirc 18:01:44 no 18:01:48 that's there too 18:01:49 hm? 18:01:49 but 18:01:53 __attribute__((pure)) 18:01:58 makes it optimize it just like a mathematical operator 18:02:00 subexpression stuff, etc 18:02:01 ehird`, difference is in pointers iirc 18:02:12 BFI_GCC_ATTR((noreturn, format(printf, 4, 5))) void bfi_die(bfi_err_code, int, int, char *, ...); 18:02:15 ugliest definition EVAR 18:02:39 I mean, I have the attribute declarations on a line, but then it's too long, so the whole funcdef itself has its own line 18:02:48 oh 18:02:50 and this: 18:02:51 #define BFI_FOPEN(fn, md) \ 18:02:51 (fopen((fn), (md)) || \ 18:02:55 ((BFI_ERR(BFI_ERR_FOPEN, "BFI_FOPEN(%s, %s) - %s", #fn, #md, \ 18:02:57 strerror(errno))), NULL)) 18:02:58 ehird`, agreed, you can just do: #ifndef __GNUC__ #define __attribute__(x) /**/ #endif iirc 18:02:59 which i still haven't perfected yet 18:03:06 AnMaster: yes 18:03:09 well 18:03:15 i don't want to define anything not BFI_ or bfi_ prefixed. 18:03:23 this should be non-conflicting all the time :-) 18:04:23 # define BFI_ERR(code, fmt, ...) \ 18:04:23 (bfi_die((code), __FILE__, __LINE__, (fmt), __VA_ARGS__), return (code)) 18:04:24 ehird`, well I'll make a C compiler called bficc then? (Basic Functional Integrated C Compiler, don't ask me what THAT means...) 18:04:25 kinda ugly. :D 18:04:32 AnMaster: heh. 18:04:35 ehird`, and C99 18:04:36 :P 18:04:46 so what if it's c99 18:04:49 i need variadic macros 18:04:52 ehird`, it's great :) 18:04:54 the rest will be ansi c 18:04:57 * AnMaster codes C99 too 18:05:00 actually, you're right.. i really want c89 18:05:02 this is for ESO 18:05:06 this interp should work in 845793845345 years 18:05:06 :) 18:05:12 AnMaster: could i do this: 18:05:21 myprintfalikemacro(a,b,("x",y,z),abc) 18:05:25 since cpp would treat that as one arg 18:05:35 BFI_ERR1(code, fmt, arg1); BFI_ERR2.... 18:05:37 and so on? 18:05:45 uhh, dunno how to splice that into the printf call though 18:05:47 I saw some c89 code doing something like that 18:05:48 AnMaster: meh 18:05:55 ehird`, up to ARGS10 18:05:59 hah 18:06:03 i'll just do 3, for now 18:06:15 ehird`, for doing one function definition, for K&R C and ANSI C 18:06:17 :( 18:06:58 #define ARGS2(t,a,u,b) \ 18:06:58 (t a, u b) 18:07:03 for ANSI C 18:07:11 I don't have the K&R version around still 18:07:19 ehird`, horrible 18:07:24 AnMaster: the only interpreters/compilers that will be ESO-approved as reference implementations are either ANSI C89 or languages with an interp approved by es 18:07:25 o 18:07:39 so you can have a stack of 4 interpreters, as long as you have ANSI C89 at the bottom. 18:07:46 they are designed to be the most portable out there. 18:07:53 they don't need to be the prettiest code on earth 18:08:04 ehird`, so? GCC 4 can be compiled with a C89 compiler I bet 18:08:12 called bootstrapping 18:08:20 ehird`, problem solved :) 18:08:27 AnMaster: you are amusing 18:08:37 ehird`, huh? 18:08:51 GCC does suported staged bootstrap 18:09:44 ehird`, in any case, that means you are free to code C99 I think? 18:09:45 right? 18:09:51 that is so not the point 18:10:02 hm? 18:10:25 you could even use GCC specific extensions 18:10:27 :P 18:11:42 exactly; why do you think a lot of projects don't? 18:11:45 because your idea is ridiculous 18:11:59 indeed it is :D 18:15:04 this is beautiful: 18:15:07 void *foo = BFI_MALLOC(43594357934857435); 18:15:07 --> 18:15:12 void *foo = (malloc(43594357934857435) || (((bfi_die((BFI_ERR_OOM), "test.c", 6, ("BFI_MALLOC(%s)"), ("43594357934857435")), return (BFI_ERR_OOM))), ((void *)0))); 18:15:57 oh god 18:16:03 why such a large malloc 18:16:10 ehird`, and this will fail at: 18:16:14 int x = 4; 18:16:22 void *foo = BFI_MALLOC(x++); 18:16:24 ;P 18:16:32 or possibly ++x 18:16:37 AnMaster: a large malloc to test my error handling 18:16:37 duh 18:16:40 and sure it will 18:16:45 but that's because the user is an idiot 18:16:47 actually 18:16:49 no it won't 18:16:53 ehird`, hehehe :) 18:16:55 that will be 18:17:06 void *foo = (malloc(++x) || (((bfi_die((BFI_ERR_OOM), "test.c", 6, ("BFI_MALLOC(%s)"), ("++x")), return (BFI_ERR_OOM))), ((void *)0))); 18:17:10 because the argument is stringified 18:17:16 i did that on purpose, to avoid re-evaluation 18:17:26 ehird`, heh , the # operator iirc? 18:17:29 yes 18:17:34 is that in C89? 18:17:35 hm 18:17:39 it may be less useful since you don't get the actual int, actually 18:17:41 and yes, it is, AnMaster 18:17:44 k 18:17:53 i may make it reevaluate for the sake of better error messages 18:17:56 and assume the caller isn't an idiot. 18:18:12 ehird`, BFI_MALLOC(rand()) *runs* 18:18:26 AnMaster: I said something about the caller not being an idiot 18:18:36 shiiit 18:18:37 i can't do 18:18:39 (a, return b) 18:18:50 crappers, how am i going to make BFI_MALLOC expressionable then 18:18:59 it needs to be able to return from the function it's called in 18:19:03 that's why its a macro in the first place 18:19:12 hrm 18:19:16 -!- wildhalcyon has quit ("ChatZilla 0.9.81 [Firefox 2.0.0.11/2007112718]"). 18:19:17 ehird`, longjmp ;P 18:19:25 AnMaster: which requires a setjmp. 18:19:33 or 1) a macro that calls 2) a function for most of it's stuff 18:19:35 and a variable decl, which i also can't expressionize 18:19:42 and, AnMaster, that still doesn't help 18:19:43 the fact is 18:19:55 i need to use BFI_MALLOC in an expression, because of 'void *p = BFI_MALLOC(...)' 18:20:01 but in the function doing that 18:20:03 if the malloc fails 18:20:03 hm true 18:20:06 i must return BFI_ERR_OOM 18:20:21 which i cannot do, as far as i can see, in expression context 18:20:24 there is a gcc extension: 18:20:26 ({ ... }) 18:20:30 but, well, gcc extension. 18:20:30 :) 18:20:36 ehird`, yes I know about that 18:20:59 ehird`, idea: use a different macro language first 18:21:03 lool 18:21:04 like first process file in m4 18:21:10 very funny, AnMaster 18:21:13 then compile result using normal C preprocessor 18:21:16 ehird`, and mad :D 18:21:46 -!- mental has changed nick to lament. 18:22:45 best anagram evar 18:23:10 heheh 18:27:58 Steraman 18:28:32 Slereah-, that's an anagram of my nick isn't it? 18:29:01 however, aspell doesn't accept "Steraman" as valid, nor can I find any sub parts of it that are valid 18:29:05 Yes. Yes it is3 18:29:11 An being my initials btw 18:29:27 We're doing MS Visio now 18:29:32 But it has a certain super hero ring to it. 18:29:40 Slereah-, hrm true 18:29:42 I added two entities more than the slide we're copying had 18:29:43 :D 18:29:53 * Sgeo[College] is about to die of boredom 18:30:04 what is MS Visio? 18:30:26 S also be my initial :o 18:30:30 S. Lereah 18:32:01 -!- RedDak has quit (Remote closed the connection). 18:32:44 Hm. 18:32:59 ais. Gregor R. Rodger the Great. 18:33:07 There seems to be a trend here. 18:33:22 Simon RC :o 18:34:13 -!- ehird` has quit (Read error: 113 (No route to host)). 18:35:59 -!- Sgeo[College] has quit ("http://www.mibbit.com ajax IRC Client"). 18:41:25 -!- ehird` has joined. 18:43:59 -!- oerjan has joined. 18:46:18 http://you.presscue.com/node/550 18:46:20 hehe 18:46:23 modularity ftw 18:48:47 Heh. 18:48:58 *right click* 18:50:06 * oerjan ponders: Is it a good or a bad thing that dying of boredom takes a long time :D 18:50:21 oh sgeo left 18:50:42 Yes. To a better place. 18:50:47 May he rest in peace. 18:51:48 wouldn't that risk recursion... 18:59:42 -!- timotiis has joined. 19:01:40 bsmntbombdood: that's pretty silly 19:01:41 :) 19:02:00 Slereah-: oh wow, *right click*. as if apple still sold one-button mice. 19:02:28 Yes. Now they have a middle button, that doesn't work like a right click at all :o 19:02:44 err, no. 19:02:48 they have left, right. 19:02:58 the mighty mouse also has a 3d scrollwheel which can be clicked and two side buttons 19:03:00 but that's not important. 19:03:10 and their right click most certainly works properly... 19:03:12 Orly? 19:03:12 Then my mom needs to buy a new mac :o 19:03:16 Right click, context menu, oh wao. 19:03:24 and -- most likely. 19:03:28 Or.. 19:03:30 Just a new mouse. 19:05:18 http://bp0.blogger.com/_XNXLcHFsW1U/R8Z894yBmcI/AAAAAAAACaQ/p4RK6SwloFM/s1600-h/306139.jpg 19:05:19 loflgasm 19:09:01 bsmntbombdood: lmao 19:15:53 -!- slereah_ has joined. 19:15:56 -!- Slereah- has quit (Read error: 104 (Connection reset by peer)). 19:16:39 obtw 19:16:44 * bsmntbombdood is a free man now! 19:16:52 Were you a slave before? 19:16:56 * bsmntbombdood turned in his school-withdrawal papers today 19:17:10 yup 19:18:14 So what will you do now! 19:19:44 i know it's cliche, but i'm thinking of traveling and then starting my distillery 19:20:28 But what of prohibition! 19:21:41 um 19:21:56 the 21st ammendment was ratified 70 years ago 19:23:12 If you're travelling, don't travel to the past then! 19:23:56 wtf are you talking about 19:24:15 Time travel. 19:56:31 crap! i can't use getopt for bfi 19:56:47 because: it's not standard C. :) 19:59:18 Do you think it'd be a neat idea if my assembler could be instructed that a given chunk of data memory is "for constants" (ie, they will never be written to during execution), and then have it search the rest of the program for that value? 19:59:59 Like, if an instruction anywhere used the value 13, and you're looking for a 13, you just give the data half of that instruction as the address your constant 13 is stored, rather than using additional memory 20:01:12 if used improperly, you could inadvertently create some really nasty self-modifying code situations, but if used properly, you could potentially squeeze many bytes out of the finished binary 20:03:47 RodgerTheGreat: Whatever it is it should be done automatically. 20:03:50 I think if I combine this with some other ideas, I'll wind up with a very size-efficient compiler with *spectacular* results in out-of-bounds errors 20:03:54 ehird`: yes, naturally 20:03:58 RodgerTheGreat: No -- I mean 20:04:01 no src file change 20:04:29 It's much better if users simply declare data as "constant" and then everything else is automated 20:04:37 no 20:04:40 that's too manual 20:05:07 well, not doing that and still having it work is on the order of the halting problem 20:07:27 as a general rule, you should not try to solve the halting problem in a hobby project. 20:07:37 yes you should 20:07:43 RodgerTheGreat: anyway, herueruerueruerusitics 20:07:48 exactly, which is why I'm doing my way instead of ehird`'s way 20:10:21 POLL: 20:10:36 should bfi/bfc parse brainfuck from a file, or read it in first then parse a string? 20:18:12 bfi_ins *bfi_parse(FILE *f, bfi_err_code *err) 20:18:12 { 20:18:12 bfi_ins *res = (malloc(sizeof(bfi_ins)) || (((void *)0)), ((void *)0)); 20:18:12 if (!(res)) { if ((err)) { *(err) = (BFI_ERR_OOM); } return ((void *)0); }; 20:18:12 return res; 20:18:12 } 20:18:15 I love you, cpp 20:48:13 hmm 20:48:15 question... 20:48:23 in brainfuck, you actually don't need a move instruction, do you? 20:48:27 i mean, a compiler doesn't need one 20:48:34 oh, wait 20:48:37 you do, for loops that > 20:48:50 -!- olsner has joined. 20:49:39 -!- Sgeo[College] has joined. 21:05:41 -!- Sgeo[College] has quit ("http://www.mibbit.com ajax IRC Client"). 21:20:08 I LOVE RICK ROLL 21:21:14 we're no strangers to rick roll 21:21:21 dooby dooby doo 21:21:30 NEVER GONNA GIVE YOU UP 21:21:35 NEVER GONNA LET YOU DOWN 21:21:36 What is love? 21:21:42 * slereah_ is doing it wrong 21:21:43 NEVER GONNA RUN AROUND AND DESERT YOU 21:22:35 NEVER GONNA CHOP YOU INTO LITTLE PIECES 21:23:02 NEVER GOING TO TELL A LIE AND EAT YOUR FAECES 21:23:10 i rhymed it! wooo 21:25:19 ehird`: you wouldn't get this from any other guy 21:25:44 :D 21:26:14 quite true. 21:26:39 AND DESSERT YOU 21:26:41 mmm, dessert 21:27:01 the bartender is so funny 21:29:16 CHOCOLAWT RANE 21:29:24 SOME STAY DRY AND OTHERS FEEL THE PAIN 21:29:25 CHOCOLAWT RANE 21:29:47 A BABY BORN WILL DIE BEFORE THE SIN 21:29:55 Now this is my story, all about how. 21:30:04 My life got twisted, turned upside down! 21:30:12 And I'd like you to just sit right there! 21:30:24 I'll tell you I became the prince of a tow called Bel Air. 21:32:53 hmmm 21:33:06 it would appear to me chocolate rain is about discrimination 21:36:31 lofl, tay zonday covered rickroll 21:36:41 yes 21:36:42 yes he did 21:37:03 Well, everyone asked him to! 21:40:36 hahahahahhaahahha it's chocolate rain: http://encyclopediadramatica.com/Image:Chocolatepee.jpg 21:40:44 get it, get it, get it, hrrrr hrrr 21:40:51 now *that's* a rickroll... luring someone into performing a cover of it :P 21:46:08 -!- RedDak has joined. 21:49:16 -!- olsner has quit ("Leaving"). 21:50:26 -!- oerjan has quit ("Good night"). 22:00:30 -!- ihope has joined. 22:08:51 -!- jix has quit ("CommandQ"). 22:44:10 Stephen Malinowski's Fantasy in F: http://www.vimeo.com/93612 22:44:45 * slereah_ is trying to make a tic tac toe on the love machine 9000 22:45:26 And trying to do it before tomorrow :o 22:45:47 I like it. My mom finds it disastrously dissonant. 22:49:33 I would say that alliteration is effortless emphasis, but it took me about five minutes to come up with the phrase "effortless emphasis". 22:49:43 -!- slereah_ has changed nick to Slereah. 22:50:41 "I hate the piano, with its diabolical diatonic scales." 22:53:03 La boite diabolique? 22:54:29 What's a boite? 22:55:44 A box. 22:58:05 And is that French? 23:03:19 Yes. 23:03:27 It was also in Look Around You. 23:03:38 The 19 forbidden notes, in LA BOITE DIABOLIQUE 23:04:01 Interesting. 23:06:14 -!- RedDak has quit (Remote closed the connection). 23:11:39 lament: didn't you once have a little IRC thing called kilbot, which ran a simple game where people shot each other and tried to stay alive? 23:11:45 Do you still have that? 23:28:27 -!- timotiis has quit ("leaving"). 23:30:51 -!- kilbot has joined. 23:31:01 !join 23:31:01 Some people, when confronted with regular expressions, always think "I know, 23:31:02 I'll paste that Jamie Zawinski quote, and people will think I'm clever!" 23:31:02 These people have a problem. 23:31:07 -- omouse, reddit 23:31:08 err 23:31:09 !join 23:31:20 er, no 23:31:20 dmd 23:31:23 !start 23:31:24 Opening a new game. Say !join to join. Say !start again to start. 23:31:30 !join 23:31:31 lament: You have already joined. 23:31:33 oh 23:31:38 !start 23:31:39 Need more players. 23:31:59 you have to say start before saying join. 23:32:07 i mean, someone has to say start. 23:32:36 Zawinski? 23:32:37 !join 23:32:51 okay 23:32:53 !start 23:32:53 The game has started! 23:32:55 !kill ehird` 23:32:56 Slereah: Sometimes annoying, sometimes clever. Ex-Netscape hacker who now owns a nightclub with wifi and stuff. 23:32:56 lament shoots at ehird` 23:32:59 !kill lament 23:32:59 ehird` shoots at lament 23:33:01 !kill lament 23:33:01 !kill lament 23:33:01 !kill lament 23:33:01 ehird`: Wait a bit... 23:33:01 ohh 23:33:02 ehird`: Wait a bit... 23:33:02 ehird`: Wait a bit... 23:33:02 !kill lament 23:33:02 ehird`: Wait a bit... 23:33:02 !kill lament 23:33:02 ehird`: Wait a bit... 23:33:07 !kill ehird` 23:33:07 lament: Wait a bit... 23:33:09 THIS SUCKS 23:33:09 :( 23:33:10 three lives eh 23:33:12 !kill lament 23:33:12 ehird`: Wait a bit... 23:33:17 lament: can i has src 23:33:19 !kill lament 23:33:19 ehird`: Wait a bit... 23:33:24 !kill lament 23:33:24 it was probably you who suggested that stupid three lives idea 23:33:24 ehird`: Wait a bit... 23:33:28 no 23:33:30 What's his quote? 23:33:30 i never played this 23:33:31 :D 23:33:41 Slereah: Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems. 23:33:49 Heh. 23:33:55 I once tried to do that. 23:34:01 !kill ehird` 23:34:02 And I had two problems D: 23:34:03 sender + : You have already shot at ehird` 23:34:06 !kill lament 23:34:07 sender + : You have already shot at lament 23:34:11 THIS IS STUPID 23:34:11 sender + ??? 23:34:16 lament: show me the src! 23:34:19 i will make it awesome. 23:34:25 -!- kilbot has quit (Remote closed the connection). 23:34:44 ehird`: i assure you it would be a better idea to start from scratch. 23:34:51 the code is not pretty 23:34:56 I want to seeeee it 23:34:59 also as you can see by the "sender +" 23:35:01 so I can rewrite it from scratch, obviously 23:35:17 i was actually in the process of changing the game around when i abandoned it 23:36:04 you don't want the source! the entire message handler is one big multi-level if statement. 23:36:05 shoooow 23:36:08 come on 23:36:10 i've written worse 23:36:10 :D 23:36:16 why don't you rewrite it in erlang or haskell 23:36:30 or, for bonus points, in both 23:36:59 maybe 23:37:00 but show me it first 23:37:07 okay then 23:38:07 http://z3.ca/~lament/killbot.py 23:38:16 http://z3.ca/~lament/irclib.py 23:38:18 nice domain name 23:38:25 also 23:38:25 403 23:38:47 again 23:39:21 ignore that it's in python and pretend that it's in perl 23:39:27 then the ugly code makes more sense 23:40:24 lament: It's not THAT bad. 23:40:46 it's pretty bad. the only goodness in it is irclib.py, which isn't mine. 23:41:02 lament: I may rewrite it in Haskell. 23:41:12 Using Network.IRC -- though I wil lwrite my own lib sometime. 23:41:23 lament: Is there something actually specifying the game? The code is hard to follow. 23:42:07 mwahahaha. 23:42:13 told you! 23:42:20 it would be easier just to ask me 23:42:24 lament: ok 23:42:25 consider this an ask 23:42:36 especially since the rules of the game changed during development 23:42:55 the game i originally implemented went like this: 23:43:14 somebody says !start, then people say !join, then somebody says !start again which starts the game. 23:43:34 then you say !kill nick to kill somebody (if both you and they are players) 23:43:50 and then... 23:44:10 or you can say !friend nick, which is really stupid because it means that now you can't kill them, but they still can kill you. 23:44:23 once you kill somebody, they're dead. 23:44:40 the game ends when the remaining players are all mutual friend. 23:44:42 s. 23:45:11 so then i modified those rules so that people have 2 lives 23:45:19 why would you !friend nick 23:45:20 :| 23:45:21 and you can only shoot the same person once 23:45:35 so it takes cooperation of two people to kill somebody 23:46:15 so with two players, A shoots B, B shoots A and the game stalls. 23:46:56 i don't think killbot checked for that, so they had to !friend each other for a shared victory. 23:47:11 feel free to come up with less brain-damaged rules. 23:48:43 Exactly the same as that, except you can shoot people as many times as you want, the game ends after no shooting has been done for a while, and you can raise players from the dead. >:-) 23:48:53 ihope: Now THAT sounds fun! 23:49:51 #kilbot, I guess. 23:52:25 -!- Sgeo has joined. 23:53:22 Ahoy, Sgeo. 23:53:24 ehird`: do it in erlang! 23:53:32 lament: why :( 23:53:34 Haskell is more fun 23:53:36 I don't know erlang 23:53:44 Do it in Epigram! >:-) 23:53:54 ehird`: erlang looks interesting 23:53:58 * Sgeo almost mistook this for Sine 23:54:03 was wondering why lament was here 23:54:14 That happens. :-) 23:54:41 I'd dragged so many people from here to sine 23:55:04 what's sine? :) 23:55:22 I think it's been described as a semi-private chat server. 23:55:41 With roughly 30 people on it. 23:56:09 ah. 23:56:26 -!- calamari has joined. 23:56:32 No password or anything is required, but you do need to know the server name and port number. 23:56:41 The port number's relatively guessable. :-P 23:56:42 which isn't that hard if you google for it actually. 23:56:49 Indeed. 23:57:20 oh, i see. 23:57:47 never heard of "Creatures". 23:59:34 hi 23:59:37 Hi calamari 23:59:47 Did I mention the new safety features I'm planning