00:07:11 -!- nazgjunk has quit ("Leaving"). 00:16:59 -!- bsmntbombdood has changed nick to Zorpon. 00:32:55 hmm 00:32:59 I should learn smalltalk 00:38:11 -!- Zorpon has changed nick to Zorpon_. 00:38:53 -!- Zorpon_ has changed nick to Zorpon. 00:43:20 Zorpon: yes 00:43:39 * Zorpon makes it so 00:43:43 It's a *real* OO language, unlike Java 00:48:04 eww java 01:02:32 what's with the : on the end of messages 01:03:36 it distinguishes them from variables 01:03:42 if i remember correctly. 01:12:18 yeah smalltalk is nifty. 01:12:27 it's just the call syntax. 01:12:54 * SevenInchBread is basing his Sophia language partially on Smalltalk. 01:15:26 I think it has something to do with arguments 01:16:04 well, each : part is followed by an argument, if that's what you mean. 01:18:38 i love smalltalk syntx 01:19:44 I like the fuck-around-with-ability of it 01:20:09 you can re-define classes and all instances will immediately start using the new version 01:20:25 reminds me of ruby 01:20:31 1 to: 20 do: [:x| x printNl ] ! 01:21:17 Haskell: mapM_ print [1..20] 01:21:25 That's about as good as you can get 01:21:42 Haskell: also the world's best imperative language. 01:21:44 :-P 01:22:25 I don't see any others with such elegant rules for handling first-class code blocks 01:22:54 especially the issue of creating new variables versus using existing ones. 01:27:47 This tutorial isn't too good 01:28:09 I liked the Dolphin Smalltalk tutorial. 01:34:05 Ruby was partially based off of Smalltalk 01:36:41 !ps d 01:36:43 1 ais523: daemon ul bf 01:36:45 2 ais523: daemon deadfish funge93 01:36:47 3 GregorR: ps 01:47:21 interesting at the use of lambda for if 01:55:46 -!- tgwizard has quit (Remote closed the connection). 02:04:50 -!- ShadowHntr has joined. 02:32:11 -!- calamari has quit ("Leaving"). 02:56:04 -!- Sukoshi has joined. 02:56:08 Java users home? 02:56:18 (I'm sorry, I'm in a big hurry.) 03:03:27 eew java 03:09:52 -!- Sukoshi has quit ("ERC Version 5.1 (CVS) $Revision: 1.796 $ (IRC client for Emacs)"). 03:13:25 -!- calamari has joined. 03:26:35 haha! Nonlogic has absorbed yet another denizen of #Esoteric! 03:26:43 * RodgerTheGreat cackles maniacally. 03:37:12 Someone could make a movie about an evil Internet entity which absorbs people. 03:37:22 They could call it The Blog. 03:37:39 heheh 03:43:09 -!- oerjan has quit ("Good night"). 03:50:19 -!- SevenInchBread has quit (Read error: 113 (No route to host)). 04:11:14 good night, guys 04:11:31 -!- RodgerTheGreat has quit. 04:17:44 -!- ShadowHntr has quit ("End of line."). 04:58:46 -!- Zorpon has changed nick to bsmntbombdood. 06:00:42 -!- ShadowHntr has joined. 06:08:30 -!- Arrogant has joined. 06:11:58 -!- calamari has quit ("Leaving"). 06:14:37 -!- GreaseMonkey has joined. 06:29:12 -!- ShadowHntr has quit ("End of line."). 06:36:56 afk food 06:56:15 back 07:10:58 -!- anonfunc_ has joined. 07:11:22 -!- anonfunc has quit (Read error: 104 (Connection reset by peer)). 07:13:37 -!- anonfunc_ has quit (Read error: 104 (Connection reset by peer)). 07:15:04 -!- anonfunc has joined. 07:18:35 -!- anonfunc has quit (Read error: 104 (Connection reset by peer)). 07:19:34 -!- anonfunc_ has joined. 07:20:08 -!- anonfunc_ has quit (Remote closed the connection). 07:59:59 -!- clog has quit (ended). 08:04:58 -!- clog has joined. 08:04:58 -!- Arrogant has quit ("Leaving"). 08:10:25 -!- Sgeo has quit ("Leaving"). 09:19:31 -!- Sukoshi has joined. 09:27:25 -!- GreaseMonkey has quit (Remote closed the connection). 09:28:44 -!- Sukoshi has quit ("ERC Version 5.1 (CVS) $Revision: 1.796 $ (IRC client for Emacs)"). 09:31:00 -!- jix__ has joined. 09:31:58 -!- jix__ has changed nick to jix. 09:44:58 -!- oerjan has joined. 12:06:35 -!- oerjan has quit ("leaving"). 12:23:03 -!- ais523 has joined. 12:32:52 -!- jix__ has joined. 12:33:16 * ais523 has written one of the slowest 99 bottles of beer programs in history 12:33:45 because Forte is an order of n slower than every other language 12:33:56 so bottles-of-beer programs are O(n^2) 12:34:21 and on top of that, it's running on an inefficient implementation 12:43:01 -!- jix has quit (Read error: 110 (Connection timed out)). 12:49:10 I was wondering whether C was, in fact, Turing-complete 12:49:29 traditionally it's been said to be bounded-storage because sizeof(void*) has to be finite 12:49:54 but I think it's a push-down automaton, due to the possibility of using register variables (which don't have to have addresses) and recursion 13:01:34 ~exec eval("for n in [1,2,3,4]:\n sys.stdout(n)\n") 13:01:35 SyntaxError: invalid syntax 13:02:36 ~exec eval("for n in count(4):\n sys.stdout(n)\n") 13:02:36 SyntaxError: invalid syntax 13:02:47 ~exec eval("sys.stdout(4)") 13:02:48 4 13:02:54 ~exec eval("sys.stdout(4)\n") 13:02:55 4 13:03:07 ~exec eval("sys.stdout(n)\n") 13:03:08 NameError: name 'n' is not defined 13:03:23 ~exec eval("for n in (count(4)):\n sys.stdout(n)\n") 13:03:24 SyntaxError: invalid syntax 13:04:49 ~exec eval("for n in [1, 2, 3]:\n sys.stdout(n)\n") 13:04:49 SyntaxError: invalid syntax 13:06:06 ~exec eval("for n in [1, 2, 3]:\n sys.stdout(n)\nsys.stdout('Finished.')\n") 13:06:06 SyntaxError: invalid syntax 13:06:43 ~exec eval("sys.stdout(1)\nsys.stdout(2)") 13:06:43 SyntaxError: invalid syntax 13:06:59 so eval seems not to accept multi-line strings 13:07:12 ~exec eval("sys.stdout(1)\rsys.stdout(2)") 13:07:13 SyntaxError: invalid syntax 13:07:26 ~exec sys.stdout(1)\nsys.stdout(2) 13:07:26 SyntaxError: invalid token 13:07:32 ~exec sys.stdout(1)\n sys.stdout(2) 13:07:38 SyntaxError: invalid syntax 13:09:35 ~exec eval('''sys.stdout(1)\nsys.stdout(2)''') 13:09:35 SyntaxError: invalid syntax 13:09:46 ~exec sys.stdout("1\n2") 13:09:46 1 13:09:46 2 13:09:53 ~exec sys.stdout("1\r2") 13:09:53 1 13:10:02 ~exec sys.stdout("1\t2") 13:10:02 12 13:11:10 ~exec sys.stdout("for n in [1, 2, 3]: sys.stdout(n)") 13:11:11 for n in [1, 2, 3]: sys.stdout(n) 13:11:18 ~exec eval("for n in [1, 2, 3]: sys.stdout(n)") 13:11:18 SyntaxError: invalid syntax 13:11:24 ~exec exec("for n in [1, 2, 3]: sys.stdout(n)") 13:11:27 1 13:11:29 2 13:11:31 3 13:11:39 ~exec sys.stdout("for n in [1, 2, 3]:\n sys.stdout(n)") 13:11:40 for n in [1, 2, 3]: 13:11:40 sys.stdout(n) 13:11:52 ~exec exec("for n in [1, 2, 3]:\n sys.stdout(n)") 13:11:53 1 13:11:53 2 13:11:53 3 13:13:14 ~exec exec("self.t='Hello, world!'\nsys.stdout(t)") 13:13:15 NameError: name 't' is not defined 13:13:20 ~exec exec("self.t='Hello, world!'\nsys.stdout(self.t)") 13:13:21 Hello, world! 13:13:30 ~exec exec("self.t='Hello, world!'\nsys.stdout(self.t.length)") 13:13:30 AttributeError: 'str' object has no attribute 'length' 13:13:39 ~exec exec("self.t='Hello, world!'\nsys.stdout(self.t.size)") 13:13:39 AttributeError: 'str' object has no attribute 'size' 13:14:03 ~exec exec("self.t='Hello, world!'\nsys.stdout(self.t[0])") 13:14:03 H 13:14:17 ~exec exec("self.t='Hello, world!'\nsys.stdout(self.t[13])") 13:14:17 IndexError: string index out of range 13:14:27 ais523: actually, I think you'll find that the program could be re-run form the beginning with a bigger word size every time it ran out of memory, if you wanted. 13:14:52 I'm just trying to use bsmnt_bot to learn Python 13:15:22 "< ais523> I was wondering whether C was, in fact, Turing-complete" 13:15:22 SimonRC: wait a moment, what context was your last comment in? 13:15:38 you thought not 13:15:56 I don't think an implementation's allowed to dynamically change sizeof(void*) 13:16:10 although maybe that isn't against the rules if the program never asks what it is 13:16:34 I mean: if you run out of address space, re-compile for a bigger architecture. 13:16:42 then re-run 13:16:59 assuming the usual strict-function-style TC. 13:17:02 but you can do that in MISC, and it isn't Turing-complete 13:17:35 yeah, but you now have no reason for C not to be Turing-complete 13:18:38 ~exec exec("self.n=4\nwhile self.n>0:\n sys.stdout(n)\n n=n-1\nsys.stdout('Finished!')") 13:18:39 NameError: name 'n' is not defined 13:18:48 ~exec exec("self.n=4\nwhile self.n>0:\n sys.stdout(self.n)\n self.n=self.n-1\nsys.stdout('Finished!')") 13:18:48 4 13:18:48 3 13:18:48 2 13:18:50 1 13:18:52 Finished! 13:19:02 I don't see why that makes C TC 13:19:24 because recompiling for a bigger architecture and rerunning isn't something you're necessarily allowed to do from within the language 13:19:38 unless you're suggesting something like #pragma make_me_Turing_Complete 13:20:29 ~exec exec("self.tape=0\nself.tape[10]=self.tape[10]+5\nsys.stdout(self.tape[10])") 13:20:29 TypeError: unsubscriptable object 13:20:40 ~exec exec("self.tape=[]\nself.tape[10]=self.tape[10]+5\nsys.stdout(self.tape[10])") 13:20:40 IndexError: list index out of range 13:20:56 ~exec exec("self.tape=[0]*30000\nself.tape[10]=self.tape[10]+5\nsys.stdout(self.tape[10])") 13:20:57 5 13:23:24 ais523: Ok, the language is Turing-complete, but no implementation can be. 13:23:42 ~exec exec("self.t=[0]*30000\nself.p='+++++.!'\nself.i=0\nself.l=0\nwhile self.p[self.i]!='!':\n if self.p[self.i]=='+': self.t[self.l]++\n if self.p[self.i]=='.': sys.stdout(self.t[self.l])") 13:23:42 SyntaxError: invalid syntax 13:23:55 You could port C to the Turing machine will a little work, then it really *could* be TC. 13:24:08 no, because even the Turing machine couldn't access an infinite store of memory 13:24:22 because the sizeof operator exists, there has to be a hard limit on every data type 13:25:11 ~exec exec("self.t=[0]*30000\nself.p='+++++.!'\nself.i=0\nself.l=0\nwhile self.p[self.i]!='!':\n if self.p[self.i]=='+':\n self.t[self.l]++\n if self.p[self.i]=='.':\n sys.stdout(self.t[self.l])\n self.i=self.i+1") 13:25:12 SyntaxError: invalid syntax 13:25:36 ~exec sys.stdout(1==2) 13:25:36 False 13:25:39 ~exec sys.stdout(1!=2) 13:25:39 True 13:25:45 ais523: hmm 13:25:52 I wonder... 13:26:11 At least, what I've been arguing is what I've come to believe the conventional wisdom is 13:26:15 but I wonder too 13:26:32 so, a subset of C is Turing-complete, but the whole of C isn't. 13:26:33 weird 13:26:45 I think it's at least a PDA, because register variables need not have addresses and you can get an infinite number of them using recursion 13:27:25 ~exec exec("self.t=[0]*30000\nself.p='+++++.!'\nself.i=0\nself.l=0\nwhile self.p[self.i]!='!':\n if self.p[self.i]=='+':\n self.t[self.l]=self.t[self.l]+1\n if self.p[self.i]=='.':\n sys.stdout(self.t[self.l])\n self.i=self.i+1") 13:27:25 5 13:28:27 ~exec exec("self.t=[0]*30000\nself.p='+++++.!'\nself.i=0\nself.l=0\nwhile self.p[self.i]!='!':\n if self.p[self.i]=='+':\n self.t[self.l]=self.t[self.l]+1\n if self.p[self.i]=='-':\n self.t[self.l]=self.t[self.l]-1\n if self.p[self.i]=='.':\n sys.stdout(self.t[self.l])\n self.i=self.i+1") 13:28:28 5 13:30:00 ~exec exec("self.t=[0]*30000\nself.p='++>--<+++.>.!'\nself.i=0\nself.l=0\nwhile self.p[self.i]!='!':\n if self.p[self.i]=='+':\n self.t[self.l]=self.t[self.l]+1\n if self.p[self.i]=='-':\n self.t[self.l]=self.t[self.l]-1\n if self.p[self.i]=='<':\n self.l=self.l-1\n if self.p[self.i]=='>':\n self.l=self.l+1\n if self.p[self.i]=='.':\n sys.stdout(self.t[self.l])\n self.i=self.i+1") 13:30:00 5 13:30:00 -2 13:33:53 ~exec exec("self.bf=lambda(p): t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='+':\n t[l]=t[l]+1\n if p[i]=='-':\n t[l]=t[l]-1\n if p[i]=='<':\n l=l-1\n if p[i]=='>':\n l=l+1\n if p[i]=='.':\n sys.stdout(t[l])\n i=i+1") 13:33:54 SyntaxError: invalid syntax 13:34:27 ~exec exec("self.bf=lambda(p):\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='+':\n t[l]=t[l]+1\n if p[i]=='-':\n t[l]=t[l]-1\n if p[i]=='<':\n l=l-1\n if p[i]=='>':\n l=l+1\n if p[i]=='.':\n sys.stdout(t[l])\n i=i+1") 13:34:28 SyntaxError: invalid syntax 13:34:47 ~exec exec("self.test=lambda(x):\n sys.stdout(x)") 13:34:47 SyntaxError: invalid syntax 13:34:57 ~exec exec("self.test=def test(x):\n sys.stdout(x)") 13:34:58 SyntaxError: invalid syntax 13:35:06 ~exec exec("def test(x):\n sys.stdout(x)") 13:35:11 ~exec self.test("Hello, world") 13:35:14 AttributeError: IRCbot instance has no attribute 'test' 13:35:21 ~exec test("Hello, world") 13:35:26 NameError: name 'test' is not defined 13:35:46 ~exec exec("def test(x):\n sys.stdout(x)\nself.test=test") 13:35:52 ~exec self.test("Hello, world") 13:35:53 Hello, world 13:36:21 ~exec exec("def bf(p):\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='+':\n t[l]=t[l]+1\n if p[i]=='-':\n t[l]=t[l]-1\n if p[i]=='<':\n l=l-1\n if p[i]=='>':\n l=l+1\n if p[i]=='.':\n sys.stdout(t[l])\n i=i+1\nself.bf=bf") 13:36:37 ~exec self.bf("++>+++.<.!") 13:36:37 3 13:36:37 2 13:36:56 ~exec exec("def bf(p):\n p=p+"!"\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='+':\n t[l]=t[l]+1\n if p[i]=='-':\n t[l]=t[l]-1\n if p[i]=='<':\n l=l-1\n if p[i]=='>':\n l=l+1\n if p[i]=='.':\n sys.stdout(t[l])\n i=i+1\nself.bf=bf") 13:36:57 SyntaxError: invalid syntax 13:37:23 ~exec exec("def bf(p):\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='+':\n t[l]=t[l]+1\n if p[i]=='-':\n t[l]=t[l]-1\n if p[i]=='<':\n l=l-1\n if p[i]=='>':\n l=l+1\n if p[i]=='.':\n sys.stdout(t[l])\n i=i+1\nself.bf=bf") 13:37:37 ~exec self.bf("++++>----<.>.<.") 13:37:37 4 13:37:37 -4 13:37:37 4 13:38:55 ~exec sys.stdout(true or false) 13:38:55 NameError: name 'true' is not defined 13:39:02 ~exec sys.stdout(True or False) 13:39:02 True 13:41:39 ~exec exec("def bf(p):\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n if p[i]=='+':\n t[l]=t[l]+1\n if p[i]=='-':\n t[l]=t[l]-1\n if p[i]=='<':\n l=l-1\n if p[i]=='>':\n l=l+1\n if p[i]=='.':\n sy 13:41:40 SyntaxError: EOL while scanning single-quoted string 13:42:34 ~exec exec("def bf(p):\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='\[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='\[': c=c+1\n if p[i]=='\]': c=c-1\n if p[i]=='\]' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]=='\]': c=c+1\n if p[i]=='\[': c=c-1\n if p[i]=='+':\n t[l]=t[l]+1\n if p[i]=='-':\n t[l]=t[l]-1\n if p[i]=='<':\n l=l-1\n if p[i]=='>':\n l=l+1\n if p[i]=='.':\ 13:42:34 SyntaxError: EOL while scanning single-quoted string 13:43:47 ~exec exec("""def bf(p):\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n if p[i]=='+':\n t[l]=t[l]+1\n if p[i]=='-':\n t[l]=t[l]-1\n if p[i]=='<':\n l=l-1\n if p[i]=='>':\n l=l+1\n if p[i]=='.':\n 13:43:48 SyntaxError: EOF while scanning triple-quoted string 13:45:20 ~exec exec("def bf(p):\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': sys.stdout(t[l])\n i= 13:45:20 SyntaxError: EOL while scanning single-quoted string 13:45:56 I seem to have exceeded some sort of maximum input length for bsmnt_bot 13:46:33 ~exec self.bf1="def bf(p):\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n" 13:46:40 ~exec self.bf2=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': sys.stdout(t[l])\n i=i+1\nself.bf=bf" 13:46:51 ~exec exec(self.bf1+self.bf2) 13:47:14 ~exec self.bf("+++[->++<]>.") 13:47:15 6 13:47:20 yay! 13:47:30 !bf_txtgen Hello, world! 13:48:16 121 ++++++++++++++[>+++++>+++++++>+++><<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+. [609] 13:49:39 ~exec self.bf("++++++++++++++[>+++++>+++++++>+++<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+.") 13:49:40 72 13:49:40 101 13:49:40 108 13:49:40 108 13:49:40 111 13:49:40 44 13:49:42 32 13:49:44 119 13:49:46 111 13:49:48 114 13:49:50 108 13:49:52 100 13:49:54 33 13:54:43 ~exec self.bf2=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': sys.stdout(unichr(t[l]))\n i=i+1\nself.bf=bf" 13:54:51 ~exec exec(self.bf1+self.bf2) 13:55:02 ~exec self.bf("++++++++++++++[>+++++>+++++++>+++<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+.") 13:55:02 H 13:55:03 e 13:55:03 l 13:55:03 l 13:55:03 o 13:55:03 , 13:55:05 w 13:55:07 o 13:55:09 r 13:55:11 l 13:55:13 d 13:55:15 ! 13:55:18 Huh? 13:55:55 ~exec self.bf1="def bf(p):\n o=''\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n" 13:56:05 ~exec self.bf2=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n i=i+1\nself.bf=bf" 13:56:13 ~exec exec(self.bf1+self.bf2) 13:56:17 ~exec self.bf("++++++++++++++[>+++++>+++++++>+++<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+.") 13:56:30 ~exec self.bf2=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n i=i+1\nself.bf=bf\nsys.stdout(o)" 13:56:33 ~exec exec(self.bf1+self.bf2) 13:56:33 NameError: name 'o' is not defined 13:56:42 ~exec self.bf2=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n i=i+1\nself.bf=bf\n sys.stdout(o)" 13:56:47 ~exec exec(self.bf1+self.bf2) 13:56:47 SyntaxError: invalid syntax 13:57:34 ~exec self.bf2=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n i=i+1\n sys.stdout(o)\nself.bf=bf" 13:57:37 ~exec exec(self.bf1+self.bf2) 13:57:43 ~exec self.bf("++++++++++++++[>+++++>+++++++>+++<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+.") 13:57:43 Hello, world! 14:02:24 ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~bf(.*)", lambda x,y: self.bf(y.group(2))") 14:02:25 SyntaxError: EOL while scanning single-quoted string 14:02:30 ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~bf(.*)", lambda x,y: self.bf(y.group(2))) 14:02:45 ~bf ++++++[->++++++<]. 14:02:45 -!- bsmnt_bot has quit (Remote closed the connection). 14:02:50 -!- bsmnt_bot has joined. 14:04:09 ~exec self.bf1="def bf(p):\n o=''\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n" 14:04:14 ~exec self.bf2=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n i=i+1\n sys.stdout(o)\nself.bf=bf" 14:04:24 ~exec exec(self.bf1+self.bf2) 14:04:39 ~exec self.bf("+++++[->+++++<]>.") 14:04:40 14:04:47 ~exec self.bf("++++++[->++++++<]>.") 14:04:47 $ 14:05:06 ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~bf(.*)", lambda x,y: self.bf(y.group(2))) 14:05:17 ~bf ++++++[->++++++<]>. 14:05:17 -!- bsmnt_bot has quit (Remote closed the connection). 14:05:20 -!- bsmnt_bot has joined. 14:05:26 ~bf ++++++[->++++++<]>. 14:05:33 ~exec self.bf1="def bf(p):\n o=''\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n" 14:05:35 ~exec self.bf2=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n i=i+1\n sys.stdout(o)\nself.bf=bf" 14:05:46 ~exec exec(self.bf1+self.bf2) 14:05:59 ~exec self.bf(" ++++++[->++++++<]>.") 14:06:00 $ 14:06:22 ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~cat(.*)", lambda x,y: sys.stdout(y.group(2))) 14:06:27 ~cat Hello, world! 14:06:27 Hello, world! 14:06:39 ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~catv(.*)", lambda x,y: sys.stdout(y.group(2))) 14:06:43 ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~cat (.*)", lambda x,y: sys.stdout(y.group(2))) 14:06:47 ~cat Hello, world! 14:06:48 Hello, world! 14:06:48 Hello, world! 14:06:57 ~exec self.pop_raw_regex_queue() 14:06:57 AttributeError: IRCbot instance has no attribute 'pop_raw_regex_queue' 14:06:58 ~exec self.pop_raw_regex_queue() 14:07:00 AttributeError: IRCbot instance has no attribute 'pop_raw_regex_queue' 14:07:24 ~exec self.raw_regex_queue().pop() 14:07:24 TypeError: 'list' object is not callable 14:07:28 ~exec self.raw_regex_queue.pop() 14:07:31 ~exec self.raw_regex_queue.pop() 14:07:32 ~exec self.raw_regex_queue.pop() 14:07:37 ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~cat (.*)", lambda x,y: sys.stdout(y.group(2))) 14:07:41 ~cat Hello, world! 14:07:41 Hello, world! 14:08:10 ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~catrepr (.*)", lambda x,y: sys.stdout(repr(y.group(2)))) 14:08:15 ~catrepr Hello, world! 14:08:16 'Hello, world!' 14:08:48 ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~bf (.*)", lambda x,y: self.bf(y.group(2))) 14:09:02 ~bf ++++++[>++++++<-]>. 14:09:02 -!- bsmnt_bot has quit (Remote closed the connection). 14:09:05 -!- bsmnt_bot has joined. 14:09:19 ~exec self.bf1="def bf(p):\n o=''\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n" 14:09:25 ~exec self.bf2=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n i=i+1\n sys.stdout(o)\nself.bf=bf" 14:09:31 ~exec exec(self.bf1+self.bf2) 14:09:56 ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~catrepr (.*)", lambda x,y: sys.stdout(repr(y.group(2)))) 14:10:04 ~catrepr ++++++[>++++++<-]>. 14:10:05 '++++++[>++++++<-]>.' 14:10:17 gah! get a loca python interpreter! 14:10:28 There are ones for windows too, you know. 14:10:35 Sorry! I was trying to get bsmnt_bot to do Brainfuck 14:10:47 ah, ok 14:10:48 it works, but I can't get it to respond to commands of the form ~bf 14:11:08 ~exec self.bf("++++++++++++++[>+++++>+++++++>+++<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+.") 14:11:09 Hello, world! 14:11:12 Sorry, I thought you were still learning python. 14:11:27 * SimonRC goesr 14:11:28 Like this? It wouldn't be very good 14:11:28 * SimonRC goes 14:13:48 bsmntbombdood: I've got bsmnt_bot to do Brainfuck, but I can't get it to work properly on the raw regex queue (for some reason, it just quits whenever I try) 14:16:18 ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~bf (.*)", lambda x,y: sys.stdout("!ul (~exec self.bf("+y.group(2)+"))S")) 14:16:28 ~bf ++++++[>+++++++<-]>. 14:16:28 !ul (~exec self.bf(++++++[>+++++++<-]>.))S 14:16:32 ~exec self.bf(++++++[>+++++++<-]>.) 14:16:32 SyntaxError: invalid syntax 14:16:46 ~exec self.raw_regex_queue.pop() 14:17:01 ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~bf (.*)", lambda x,y: sys.stdout("!ul (~exec self.bf(\'\'\'"+y.group(2)+"\'\'\'))S")) 14:17:06 ~bf ++++++[>+++++++<-]>. 14:17:06 !ul (~exec self.bf('''++++++[>+++++++<-]>.'''))S 14:17:10 ~exec self.bf('''++++++[>+++++++<-]>.''') 14:17:11 * 14:17:21 There's always a way.... 14:17:41 ~bf ++++++++++++++[>+++++>+++++++>+++<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+. 14:17:42 !ul (~exec self.bf('''++++++++++++++[>+++++>+++++++>+++<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+.'''))S 14:17:46 ~exec self.bf('''++++++++++++++[>+++++>+++++++>+++<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+.''') 14:17:47 Hello, world! 14:20:35 You know you've spent too much time programming when, like I just did, you try to save a directory after renaming a file 14:21:48 ~exec self.bf3="def bfarg(x,y):\n p=y.group(2)\n o=''\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n" 14:23:07 ~exec self.bf4=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n i=i+1\n sys.stdout(o)\nself.register_raw(r'\S+ PRIVMSG (\S+) :~bf (.*)',bfarg)" 14:23:13 ~exec self.raw_regex_queue.pop() 14:23:23 ~exec exec(self.bf3+self.bf4) 14:23:34 ~bf ++++++[->++++++<]>. 14:23:34 $ 14:23:45 yay again! 14:25:20 ~bf ++++++++++++++[>+++++>+++++++>+++<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+. 14:25:20 Hello, world! 14:33:14 ~exec sys.stdout("Hello, world!"[1:]) 14:33:15 ello, world! 14:35:26 ~exec self.bf4=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n if p[i]==',':\n t[l]=ord(y.group(4)[0])\n y.group(4)=y.group(4)[1:]\n i=i+1\n sys.stdout(o)\nself.register_raw(r'\S+ PRIVMSG (\S+) :~bf (.*)(!(.*))?',bfarg)" 14:35:39 ~exec self.raw_regex_queue.pop() 14:35:42 ~exec exec(self.bf3+self.bf4) 14:35:42 SyntaxError: can't assign to function call (, line 28) 14:36:03 ~exec self.bf3="def bfarg(x,y):\n p=y.group(2)\n a=y.group(4)\n o=''\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n" 14:36:30 ~exec self.bf4=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n if p[i]==',':\n t[l]=ord(a[0])\n a=a[1:]\n i=i+1\n sys.stdout(o)\nself.register_raw(r'\S+ PRIVMSG (\S+) :~bf (.*)(!(.*))?',bfarg)" 14:36:34 ~exec exec(self.bf3+self.bf4) 14:36:52 ~bf ,>,>,.<.<.!abc 14:37:27 ~bf ++++++[->++++++<]>. 14:37:34 ~bf ++++++[->++++++<]>.! 14:38:03 ~exec self.raw_regex_queue.pop() 14:38:04 ~exec self.raw_regex_queue.pop() 14:38:10 ~exec exec(self.bf3+self.bf4) 14:38:26 ~exec sys.stdout(repr(self.raw_regex_queue)) 14:38:26 [(<_sre.SRE_Pattern object at 0xb7cc1c98>, >), (<_sre.SRE_Pattern object at 0x80d2290>, >), (<_sre.SRE_Pattern object at 0x80d24c8>, >), (<_sre.SRE_Pattern object 14:38:27 at 0x80d1cc0>, >), (<_sre.SRE_Pattern object at 0x80d26e0>, >), (<_sre.SRE_Pattern object at 0x80d2918>, >), (<_sre.SRE_Pattern object at 0x80c1010>, thod IRCbot.do_ps of <__main__.IRCbot instance at 0xb7c2e16c>>), (<_sre.SRE_Pattern object at 0x80d2b80>, >), (<_sre.SRE_Pattern object at 0x80d6980>, )] 14:38:55 ~ps 14:38:56 None 14:39:12 ~exec sys.stdout(self.bf4) 14:39:13 if p[i]=='+': t[l]=t[l]+1 14:39:13 if p[i]=='-': t[l]=t[l]-1 14:39:13 if p[i]=='<': l=l-1 14:39:13 if p[i]=='>': l=l+1 14:39:14 if p[i]=='.': o=o+unichr(t[l]) 14:39:15 if p[i]==',': 14:39:16 t[l]=ord(a[0]) 14:39:18 a=a[1:] 14:39:19 i=i+1 14:39:21 sys.stdout(o) 14:39:23 self.register_raw(r'\S+ PRIVMSG (\S+) :~bf (.*)(!(.*))?',bfarg) 14:39:50 ~quit 14:40:04 ~exec exec(self.bf3+self.bf4) 14:40:12 ~bf ,.!a 14:40:40 ~exec sys.stdout(repr(self.raw_regex_queue.pop())) 14:40:40 (<_sre.SRE_Pattern object at 0x80d6980>, ) 14:41:25 ~exec self.bf3="def bfarg(x,y):\n p=y.group(2)\n a=y.group(3)\n o=''\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n" 14:41:44 ~exec self.bf4=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n if p[i]==',':\n t[l]=ord(a[0])\n a=a[1:]\n i=i+1\n sys.stdout(o)\nself.register_raw(r'\S+ PRIVMSG (\S+) :~bf (.*)!(.*)',bfarg)" 14:41:50 ~exec exec(self.bf3+self.bf4) 14:41:56 ~bf ,.!a 14:41:56 a 14:42:29 ~exec self.raw_regex_queue.pop() 14:43:12 ~exec self.bf4=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n if p[i]==',':\n t[l]=ord(a[0])\n a=a[1:]\n i=i+1\n sys.stdout(o)\nself.register_raw(r'\S+ PRIVMSG (\S+) :~bf ([^!]*)!?(.*)',bfarg)" 14:43:17 ~bf ,.!a 14:43:28 ~exec exec(self.bf3+self.bf4) 14:43:29 ~bf ,.!a 14:43:30 a 14:43:38 ~bf ++++++[->++++++<]>. 14:43:38 $ 14:45:09 ~bf ,[.,]!Hello, world! 14:45:10 -!- bsmnt_bot has quit (Remote closed the connection). 14:45:13 -!- bsmnt_bot has joined. 14:45:29 ~exec self.bf3="def bfarg(x,y):\n p=y.group(2)\n a=y.group(3)\n o=''\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n" 14:45:48 ~exec self.bf3="def bfarg(x,y):\n p=y.group(2)\n a=y.group(3)+unichr(0)\n o=''\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n" 14:45:54 ~exec self.bf4=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n if p[i]==',':\n t[l]=ord(a[0])\n a=a[1:]\n i=i+1\n sys.stdout(o)\nself.register_raw(r'\S+ PRIVMSG (\S+) :~bf ([^!]*)!?(.*)',bfarg)" 14:45:57 ~exec exec(self.bf3+self.bf4) 14:46:04 ~bf ,[.,]!Hello, world! 14:46:05 Hello, world! 14:46:59 ~bf ,[.,]!This implementation returns 0 on EOL. 14:47:00 This implementation returns 0 on EOL. 14:48:05 ~bf ++++++++++++++++[->++++++++<]>-[.-] 14:48:05 ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 14:48:06 15:13:05 ~bf >,[>,]<.[<.]!Hello, world! 15:13:05 !dlrow ,olleH 15:13:09 Huh? 15:19:45 !bf >,[>,]<.[<.] 15:19:53 !i 1 Hello, world! 15:20:02 !i 3 Hello, world! 15:20:04 !eof 3 15:20:07 !dlrow ,olleH 15:20:19 !ul (I haven't broken this, have I?)S 15:20:21 I haven't broken this, have I? 15:26:56 -!- nazgjunk has joined. 15:27:48 ~bf ,[.,]!Hello, nazgjunk! 15:27:50 Hello, nazgjunk! 15:27:57 ! 15:27:59 hi 15:28:01 Huh? 15:28:22 I spent ages trying to get bsmnt_bot to do Brainfuck 15:28:30 * brainfuck 15:38:56 -!- UpTheDownstair has joined. 15:44:15 -!- fushd has joined. 15:44:29 -!- nazgjunk has quit (Nick collision from services.). 15:46:05 -!- fushd has changed nick to nazgjunk. 15:54:48 -!- jix__ has changed nick to jix. 15:59:07 -!- UpTheDownstair has quit (Connection timed out). 16:02:05 -!- oerjan has joined. 16:02:22 ~bf ,[.,]!Hello, oerjan! 16:02:23 Hello, oerjan! 16:17:15 hello 16:17:32 i don't see why Forte has to be O(n^2). 16:17:55 Basically, because you need to keep generating new line numbers for lines 16:18:06 so when you do a loop, the redefinition table grows at O(n) 16:18:13 * as 16:18:37 but I suppose it might be possible to do the redefinition table more efficiently 16:19:52 Trees. 16:20:45 So, let me put it this way: 99 bottles of beer written in Forte written in Thutu is probably O(99^2) minimum 16:20:59 (and yes, I did test it with other values of 99) 16:22:23 it's at least going to be O(n) in space when it should be O(1), with any language used to write the interpreter 16:22:40 (but if it were O(n) in space before, it may still be O(n) in space after Forteisation) 16:22:55 Yeah, space is hard to keep down. 16:30:21 By the way, the compiled version of my interpreter is http://pastebin.ca/391947 16:30:53 (I hacked the Thutu interpreter to support arithmetic and a few string operations natively, so if I gave the Thutu source code you couldn't run it anyway) 16:31:47 * ais523 wonders why Perl syntax-highlighters never seem to be able to handle regexps correctly 16:33:44 that leads to the obvious question: can Perl regexps parse Perl regexps? 16:34:18 No. You can't do nested brackets with regexps (it's a computational class thing) 16:34:42 yeah, that old pumping lemma 16:34:52 to handle nested brackets in Thutu, the easiest way is to change them to some other sort of bracket from the inside out, in pairs 17:04:28 -!- kxspxr has joined. 17:04:40 -!- kxspxr has quit (Client Quit). 17:10:05 -!- tgwizard has joined. 17:51:31 What do people think of the idea of using a separate pastebin (e.g. esoteric.pastebin.ca) instead of the main pastebin.ca pastebin? 17:52:02 Advantages: our stuff is separated from people using the pastebin for other things. 17:52:39 Disadvantages: slightly extra hassle to get it set up, slightly longer URL, we would need at least one post every 3 months (which is easy enough to manage) to keep the pastebin active 17:54:08 -!- digital_me has joined. 17:57:29 "meh" 17:58:00 la "meh" nt 18:11:25 ais523, sounds like a plan 18:12:27 I'll go and set up esoteric.pastebin.ca, then, if there are no objections soon 18:13:04 i have an objection! 18:13:19 what is it? 18:13:31 "why" 18:13:36 Second. 18:14:00 The idea would be that if #esoteric's posts were separated, then we could look back through them in the future 18:14:11 it would sort of reduce the attrition rate of esolang-related material 18:14:20 would it. 18:14:36 Public pastebins die after 3mo. 18:14:44 (Of unuse) 18:15:29 3 months of disuse, yes. I listed that as a potential disadvantage. 18:15:38 what are the chances of that happening? 18:16:02 almost 100% 18:16:38 Oh well, in that case we can just use the main one 18:16:44 and use clog to find all the relevant post numbers 18:16:54 it depends on your time frame, of course :) 18:17:09 I guessed your answer would be in that sense 18:28:10 but people here are right, it's likely that our pastebin archiving services are good enough already 18:30:38 Now, if somebody wrote a custom esoteric pastebin with highlighting for Brainfuck and Befunge ... :P 18:33:07 I already have a brainfuck-mode on Emacs 18:33:16 someone was having fun with bsmnt_bot ... 18:33:17 * ais523 looks into their own filesystem 18:33:24 !ps d 18:33:25 1 ais523: daemon ul bf 18:33:25 ~bf ,[.,]!that was me 18:33:26 that was me 18:33:27 2 ais523: daemon deadfish funge93 18:33:29 3 GregorR: ps 18:35:09 bsmntbombdood: anyway, I don't see why bsmnt_bot shouldn't have a BF interpreter too 18:35:23 because EgoBot has one? 18:36:27 that's like saying "no need to make any more esolangs, INTERCAL is Turing-complete" 18:36:41 heh 18:36:44 go ahead 18:36:54 No, I've done it already 18:37:14 ~bf ,[.,]!This is a complete Brainfuck interpreter (EOF = 0) 18:37:15 This is a complete Brainfuck interpreter (EOF = 0) 18:37:27 fun 18:37:31 and ! separates program from input (can be omitted if you don't want input) 18:37:49 I can set it up in 3 commands, too 18:38:03 (It would be 1 but that exceeds the maximum line length I can send) 18:38:52 !bf_txtgen bsmnt_bot does Brainfuck! 18:39:57 208 ++++++++++++++[>+++++++>++++++++>++++++++>++<<<<-]>.>+++.>---.+.<+.<---.+++.>>+.<.>>++++.<<<++.>>.----------.<-.>>.<<<----------------------------------.>-.>----.++++++++.+++++.--------.<+++.>---.++++++++.>+. [409] 18:40:09 ~bf ++++++++++++++[>+++++++>++++++++>++++++++>++<<<<-]>.>+++.>---.+.<+.<---.+++.>>+.<.>>++++.<<<++.>>.----------.<-.>>.<<<----------------------------------.>-.>----.++++++++.+++++.--------.<+++.>---.++++++++.>+. 18:40:09 bsmnt_bot does Brainfuck! 18:41:08 come to think of it, I haven't tested it with nested square brackets yet 18:42:00 ~bf >,[>,]<[.[-]<[.<]>[-]>[.>]<]!123456789 18:42:00 98765432123456788765432345677654345665455 18:42:36 ~bf >,[>,]<[.<[.<]>[-]>[.>]<[-]<]!123456789 18:42:37 987654321234567898765432345678765434567654565 18:43:08 ~bf >,[>,]<.[-]<[.<[.<]>[-]>[.>]<[-]<]!123456789 18:43:08 9876543212345678765432345676543456545 18:43:15 that's what I was aiming for 18:47:45 ~bf >,[>,]<.[-]<[.<[.<]>[-]>[.>]<[-]<]!_,.-'^ 18:47:46 ^'-.,_,.-'-.,.-. 18:48:21 ~bf >,[>,]<.[-]<[.<[.<]>[-]>[.>]<[-]<]!<({[|]})> 18:48:21 >)}]|[{(<({[|]})}]|[{({[|]}]|[{[|]|[| 18:49:36 My brain hurts. 18:50:59 why are you in #esoteric, then? 18:51:11 I can see why it would make your brain hurt, 18:51:25 but it isn't a very good place for soothing a brain that's already been hurt 18:51:37 :P 18:52:32 yes, one's brain does hurt when it is repeatedly fucked. 19:16:01 -!- ais523 has quit. 19:32:05 -!- sebbu has joined. 20:22:18 -!- sebbu2 has joined. 20:23:14 -!- calamari has joined. 20:30:01 -!- sebbu has quit (Read error: 60 (Operation timed out)). 20:37:40 -!- sebbu2 has changed nick to sebbu. 20:42:31 -!- Sgeo has joined. 20:47:41 -!- graue has joined. 20:55:51 -!- UpTheDownstair has joined. 20:59:07 -!- kxspxr has joined. 21:00:23 -!- kxspxr has quit (Client Quit). 21:01:26 -!- calamari has quit ("Leaving"). 21:04:44 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)). 21:05:29 -!- nazgjunk has joined. 21:16:39 -!- oerjan has quit ("leaving"). 21:22:32 -!- UpTheDownstair has quit (Connection timed out). 21:38:41 -!- calamari has joined. 21:55:48 -!- oerjan has joined. 22:22:07 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 22:31:01 -!- calamari has quit ("Leaving"). 23:25:31 -!- kxspxr has joined. 23:25:50 -!- kxspxr has quit (Client Quit). 23:33:56 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)). 23:34:32 -!- nazgjunk has joined.