00:17:18 -!- sebbu2 has quit (Client Quit).
00:24:02 -!- UpTheDownstair has joined.
00:24:20 -!- UpTheDownstair has quit (Client Quit).
00:24:34 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
00:26:35 <SimonRC> A program using GC that is written for use with GC will generally be about as fast as one with explicit allocation.
00:26:57 <SimonRC> Remember, the programmer can only do static analysis of a program, but the RTS can do dynamic analysis.
00:27:22 <SimonRC> GC is sometimes faster than explicit allocation and sometimes not.
00:28:44 -!- nazgjunk has joined.
00:30:20 -!- kxspxr has joined.
00:31:04 <SimonRC> copying collectors are particularly good at improving locality
00:50:59 <bsmntbombdood> ~exec globals()["ski_repl"] = __import__("ski_repl")
00:51:10 <bsmntbombdood> ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~ski (.*)", lambda x,y: bot.raw("PRIVMSG %s :%s" % (y.group(1), ski_repl.unparse(ski_repl.simp(ski_repl.parse(y.group(2)))))))
00:53:45 <bsmntbombdood> ~exec replace = lambda t,a,b: (t == a and b) or [replace(t[0], a, b), replace(t[1], a, b)]
00:55:55 <bsmnt_bot> {'replace': <function <lambda> at 0xb7c046bc>,
00:55:55 <bsmnt_bot> 'self': <__main__.IRCbot instance at 0xb7c0308c>,
00:55:55 <bsmnt_bot> 'ski_repl': <module 'ski_repl' from '/bot/ski_repl.py'>,
00:55:59 -!- ihope has joined.
00:57:28 <ihope> ~exec sys.stdout(replace([[1,2],[3,1]],1,2))
00:57:41 <ihope> I think you need to define replace.
00:58:22 <ihope> ~exec sys.stdout(replace(1,1,2))
00:58:28 <ihope> ~exec sys.stdout(replace([[1,2],[3,1]],1,2))
00:58:48 <bsmntbombdood> ~exec replace = U(lambda f: lambda t,a,b: (t == a and b) or [f(f)(t[0], a, b), f(f)(t[1], a, b)])
01:06:02 -!- ihope has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
01:09:08 -!- ihope has joined.
01:22:59 <bsmntbombdood> ~exec replace = U(lambda f: lambda t,a,b: ((t == a and b) or (type(t) == list and [f(f)(t[0],a,b), f(f)(t[1],a,b)]) or t))
01:25:40 <bsmnt_bot> [['S', [['S', 'I'], ['K', 'S']]], ['K', 'K']]
01:26:56 <bsmntbombdood> ~exec un_iota = lambda x: replace(x, iota_comb, "i")
01:28:19 <ihope> ~exec sys.stdout(ski_repl.parse("C"))
01:28:22 <bsmntbombdood> ~exec iota = lambda x: ski_repl.unparse(un_iota(ski_repl.simp(replace(ski_repl.parse(x), "i", iota_comb))))
01:28:31 <ihope> ~exec sys.stdout(ski_repl.parse("`CK"))
01:29:02 <ihope> ~exec sys.stdout("C".(ski_repl.parse))
01:29:14 <ihope> Well, that clearly didn't work.
01:29:18 <ihope> ~exec sys.stdout("C".ski_repl.parse)
01:29:20 <oerjan> somehow i doubt that :)
01:29:33 <ihope> ~exec sys.stdout("C".parse.ski_repl)
01:30:04 <ihope> ~exec foo = sys.stdout; ski_repl.parse("C").foo
01:30:16 <ihope> Indeed, it... hmm.
01:30:28 <oerjan> ~exec sys.stdout(ski_repl.parse("`.i`.Hi"))
01:30:40 <ihope> Okay, doesn't work.
01:30:41 <oerjan> nah, it can't parse Unlambda ;)
01:32:02 <SimonRC> Problem: If you decide to be cryogenically preserved for 1000 years, future generations may not think you are worth keeping or restoring to life. Solution: Attach a sign saying "COBOL Programmer". This will ensure your safety.
01:32:33 <oerjan> that one is just too old :)
01:32:46 <bsmntbombdood> ~exec self.iota_comb = ski_repl.parse("``S``SI`KS`KK")
01:33:00 <bsmntbombdood> ~exec self.un_iota = lambda x: replace(x, self.iota_comb, "i")
01:33:25 <bsmntbombdood> ~exec iota = lambda x: ski_repl.unparse(self.un_iota(ski_repl.simp(self.replace(ski_repl.parse(x), "i", self.iota_comb))))
01:33:59 * ihope ponders Unlambda input combinators
01:34:03 <bsmnt_bot> <__main__.IRCbot instance at 0xb7c0308c>
01:35:14 <ihope> You need a combinator that applies its argument to ?x, where x is the current character.
01:35:31 -!- bsmnt_bot has quit.
01:35:35 -!- bsmnt_bot has joined.
01:35:40 <bsmntbombdood> ~exec self.iota_comb = ski_repl.parse("``S``SI`KS`KK")
01:35:44 <bsmntbombdood> ~exec self.un_iota = lambda x: replace(x, self.iota_comb, "i")
01:36:00 <bsmntbombdood> ~exec self.iota_comb = ski_repl.parse("``S``SI`KS`KK")
01:36:08 <bsmntbombdood> ~exec iota = lambda x: ski_repl.unparse(self.un_iota(ski_repl.simp(self.replace(ski_repl.parse(x), "i", self.iota_comb))))
01:36:40 <bsmntbombdood> ~exec globals()["ski_repl"] = __import__("ski_repl")
01:37:11 <bsmntbombdood> ~exec self.replace = U(lambda f: lambda t,a,b: ((t == a and b) or (type(t) == list and [f(f)(t[0],a,b), f(f)(t[1],a,b)]) or t))
01:37:23 <bsmntbombdood> ~exec self.replace = U(lambda f: lambda t,a,b: ((t == a and b) or (type(t) == list and [f(f)(t[0],a,b), f(f)(t[1],a,b)]) or t))
01:38:56 -!- bsmnt_bot has quit (Client Quit).
01:39:01 -!- bsmnt_bot has joined.
01:39:39 <bsmntbombdood> ~exec globals()["ski_repl"] = __import__("ski_repl")
01:39:53 <bsmntbombdood> ~exec self.iota_comb = ski_repl.parse("``S``SI`KS`KK")
01:40:03 <bsmntbombdood> ~exec self.un_iota = lambda x: replace(x, self.iota_comb, "i")
01:40:34 <bsmntbombdood> ~exec self.iota_comb = self.ski_repl.parse("``S``SI`KS`KK")
01:40:59 <bsmntbombdood> ~exec self.un_iota = lambda x: self.replace(x, self.iota_comb, "i")
01:42:35 <bsmntbombdood> ~exec self.replace = self.U(lambda f: lambda t,a,b: ((t == a and b) or (type(t) == list and [f(f)(t[0],a,b), f(f)(t[1],a,b)]) or t))
01:44:46 -!- bsmnt_bot has quit (Remote closed the connection).
01:44:51 -!- bsmnt_bot has joined.
01:46:25 -!- bsmnt_bot has quit (Remote closed the connection).
01:46:30 -!- bsmnt_bot has joined.
01:55:22 -!- bsmnt_bot has quit.
01:55:25 -!- bsmnt_bot has joined.
01:58:12 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
01:58:39 -!- nazgjunk has joined.
02:01:36 -!- AfterDeath has joined.
02:02:48 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
02:02:57 -!- UpTheDownstair has joined.
02:05:49 -!- UpTheDownstair has quit (Read error: 54 (Connection reset by peer)).
02:06:03 -!- nazgjunk has joined.
02:12:35 <oerjan> wow. my Malbolge Unshackled interpreter works.
02:12:59 <oerjan> and more surprisingly, it actually manages to run the Malbolge cat program.
02:13:52 -!- nazgjunk has quit (Read error: 54 (Connection reset by peer)).
02:15:03 <oerjan> essentially, with automatically growing memory size
02:15:40 <oerjan> no, i've tried to keep as close to the spirit as possible.
02:16:25 <oerjan> only some subtle changes to make values practically unbounded.
02:17:00 <oerjan> but i didn't expect the changes to be subtle enough to make the cat program work. :)
02:18:21 <oerjan> this must be an evil omen :D
02:24:00 -!- nazgjunk has joined.
02:24:20 <oerjan> now uploaded: http://oerjan.nvg.org/esoteric/Unshackled.hs
02:26:17 <oerjan> how else could I properly juggle the combined infinite Trie and linked list of Trits? :)
02:27:22 <ihope> You could do it in Unlambda.
02:27:25 <oerjan> of course a more efficient implementation might be possible.
02:27:40 <ihope> bsmntbombdood: fancy spelling of "tree", isn't it?
02:27:55 <ihope> Also, can I call you and your bot bb and b_? :-P
02:28:59 <oerjan> not quite. A trie is a special kind of tree, in which every key has a specific place in the tree, known at the outset.
02:30:15 <oerjan> e.g. the trinary number 021 would be at the first child of the second child of the zeroth child of the root.
02:35:33 -!- nazgjunk has quit ("Bi-la Kaifa").
02:50:18 -!- kxspxr has quit.
03:34:11 -!- ihope has quit (Connection timed out).
03:42:56 -!- ihope has joined.
03:48:11 -!- LeaLeaLea has joined.
03:48:51 <LeaLeaLea> .. It has been ages. Good evening ladies and gentlemen. I invite each and every one of you for a walk on the promenade. Step not into the grassy knolls or you shall surely be engulfed by lava.
03:51:14 -!- SevenInchBread has joined.
03:52:32 <LeaLeaLea> What say we grab a cuppa, old bean?
03:56:32 -!- bsmnt_bot has quit.
03:56:36 -!- bsmnt_bot has joined.
03:56:42 <bsmnt_bot> <__main__.IRCbot instance at 0xb7ca208c>
03:58:34 -!- bsmnt_bot has quit (Client Quit).
03:58:36 -!- bsmnt_bot has joined.
03:58:42 <SevenInchBread> ~exec for x in xrange(100): sys.stdout.write("LeaLeaLea, YOUR HOSES IS RUNNING!")
03:58:43 -!- bsmnt_bot has quit (Excess Flood).
03:58:46 -!- bsmnt_bot has joined.
03:59:26 <SevenInchBread> ~exec for x in xrange(10): sys.stdout.write("LeaLeaLea, YOUR HOSES IS RUNNING!")
04:01:25 <SevenInchBread> ~exec print "Lol... inconsistent print statement too..."
04:01:43 <SevenInchBread> basically... you've fucked up the environment with threading and shit. :)
04:01:51 <bsmntbombdood> ~exec types.FunctionType(self.x.func_code, globals(), closure=locals())
04:02:06 <ihope> ~exec self.x = lambda: bot
04:02:16 <ihope> ~exec sys.stdout(self.x())
04:02:17 <bsmnt_bot> <__main__.IRCbot instance at 0xb7c9608c>
04:02:18 <ihope> ~exec sys.stdout(self)
04:02:19 <bsmnt_bot> <__main__.IRCbot instance at 0xb7c9608c>
04:02:58 <bsmntbombdood> ~exec types.FunctionType(self.x.func_code, globals())
04:03:01 <bsmntbombdood> ~exec types.FunctionType(self.x.func_code, globals())()
04:03:17 <bsmntbombdood> ~exec sys.stdout(types.FunctionType(self.x.func_code, globals())())
04:03:18 <bsmnt_bot> <__main__.IRCbot instance at 0xb7c9608c>
04:03:23 <bsmntbombdood> ~exec sys.stdout(types.FunctionType(self.x.func_code, globals()))
04:03:39 <bsmnt_bot> <__main__.IRCbot instance at 0xb7c9608c>
04:04:02 <SevenInchBread> ~exec for x in xrange(5): sys.stdout.write("LeaLeaLea, YOUR HOSES IS RUNNING!")
04:04:11 <bsmntbombdood> ~exec sys.stdout(types.FunctionType(self.x.func_code, globals()))
04:04:12 -!- anonfunc has joined.
04:04:15 <bsmntbombdood> ~exec sys.stdout(types.FunctionType(self.x.func_code, globals())())
04:04:15 <ihope> I like messing people up.
04:04:25 <bsmntbombdood> ~exec sys.stdout(types.FunctionType(self.x.func_code, locals())())
04:04:25 <bsmnt_bot> <__main__.IRCbot instance at 0xb7c9608c>
04:04:32 <ihope> Sorry. Didn't mean to do that.
04:05:26 <SevenInchBread> ~exec for x in xrange(5): self.raw("PRIVMSG LeaLeaLea :YOUR HOSES IS RUNNING!")
04:05:59 -!- LeaLeaLea has quit ("Chatzilla 0.9.77 [Firefox 1.5.0.10/2007021601]").
04:06:21 <ihope> You're banned form #python?
04:09:15 <ihope> If you really want to get in, change your nickname and username.
04:10:00 -!- bsmntbombdood has changed nick to xor\.
04:10:03 -!- xor\ has changed nick to xor.
04:10:38 <xor> apparently, just the nick
04:11:02 <ihope> "bsmntbombdood!*@*" and "*!n=gavin@*."
04:11:22 <ihope> Why there's a period I don't know.
04:12:28 <xor> well, passing in the locals as the globals to create the function works
04:18:56 <xor> imma jenus
04:22:40 -!- SevenInchBread has quit ("haaaaaaaaaa").
04:24:31 <xor> ~exec self.foo = __import__("foo")
04:24:57 <xor> ~exec self.foo = __import__("foo")
04:25:22 <xor> ~exec self.foo.hack_closure(lambda: self, locals(), globals())
04:26:09 <xor> ~exec globals()["types"] = __import__("types")
04:26:11 <xor> ~exec self.foo.hack_closure(lambda: self, locals(), globals())
04:26:28 <xor> ~exec self.foo = __import__("foo")
04:26:31 <xor> ~exec self.foo.hack_closure(lambda: self, locals(), globals())
04:26:57 <xor> ~exec reload(self.foo)
04:27:01 <xor> ~exec self.foo.hack_closure(lambda: self, locals(), globals())
04:27:12 <xor> ~exec sys.stdout(self.foo.hack_closure(lambda: self, locals(), globals()))
04:27:18 <xor> ~exec sys.stdout(self.foo.hack_closure(lambda: self, locals(), globals())())
04:27:33 <xor> ~exec sys.stdout(self.foo.hack_closure(lambda: self, locals(), globals()).func_globals)
04:27:34 <bsmnt_bot> {'IRCbot': <class __main__.IRCbot at 0xb7c7f32c>, 'inspect': <module 'inspect' from '/usr/lib/python2.4/inspect.pyc'>, '__builtins__': <module '__builtin__' (built-in)>, '__file__': '/bot/ircbot.py', 'args': {'ident': 'bsmnt', 'realname': 'bsmntbombdood bot', 'chan': '#esoteric', 'nick': 'bsmnt_bot', 'host': '85.188.1.26', 'exec_chans': ['#esoteric', '#baadf00d'], 'owner':
04:27:34 <bsmnt_bot> 'bsmntbombdood!\\S*gavin@\\S*'}, 'IRCFileWrapper': <class __main__.IRCFileWrapper at 0xb7c7f35c>, 'sys': <module 'sys' (built-in)>, 'thread_info': <thread._local object at 0xb7d18890>, 'pickle': <module 'pickle' from '/usr/lib/python2.4/pickle.pyc'>, '__name__': '__main__', 'exec_global_tracer': <function exec_global_tracer at 0xb7c82a74>, 'types': <module 'types' from '/
04:27:35 <bsmnt_bot> usr/lib/python2.4/types.pyc'>, 'copy': <module 'copy' from '/usr/lib/python2.4/copy.pyc'>, 'socket': <module 'socket' from '/usr/lib/python2.4/socket.pyc'>, 'thread': <module 'thread' (built-in)>, 'traceback': <module 'traceback' from '/usr/lib/python2.4/traceback.pyc'>, 'os': <module 'os' from '/usr/lib/python2.4/os.pyc'>, 'pprint': <module 'pprint' from '/usr/lib/python2
04:27:40 <bsmnt_bot> .4/pprint.pyc'>, 'bot': <__main__.IRCbot instance at 0xb7c9608c>, 'marshal': <module 'marshal' (built-in)>, 're': <module 're' from '/usr/lib/python2.4/re.pyc'>, 'time': <module 'time' from '/usr/lib/python2.4/lib-dynload/time.so'>, 'threading': <module 'threading' from '/usr/lib/python2.4/threading.pyc'>, 'SysWrapper': <class __main__.SysWrapper at 0xb7c7f38c>, 'exec_loca
04:27:45 <bsmnt_bot> l_tracer': <function exec_local_tracer at 0xb7c97454>, '__doc__': None, 'math': <module 'math' from '/usr/lib/python2.4/lib-dynload/math.so'>}
04:28:02 <xor> ~exec sys.stdout(self.foo.hack_closure(lambda: self, locals(), globals()).func_globals["self"])
04:37:38 <xor> ~exec reload(self.foo)
04:37:54 <xor> ~exec sys.stdout(lambda: self, locals(), globals()))
04:38:17 <xor> ~exec sys.stdout(self.foo.hack_closure(lambda: self, locals(), globals()))
04:38:24 <xor> ~exec sys.stdout(self.foo.hack_closure(lambda: self, locals(), globals())())
04:38:24 <bsmnt_bot> <__main__.IRCbot instance at 0xb7c9608c>
04:38:44 <xor> ~exec (lambda: self)()
04:38:53 <xor> that's why it's needed
04:59:35 <oerjan> made a wiki page on Malbolge Unshackled, explaining the differences (but not the commonalities)
05:01:51 -!- mike_the_person has joined.
05:04:34 <xor> ~exec self.raw("QUIT")
05:04:35 -!- bsmnt_bot has quit.
05:04:39 -!- bsmnt_bot has joined.
05:04:44 <xor> ~exec this is an error
05:05:32 -!- mike_the_person has quit (Client Quit).
05:06:11 <xor> ~exec self.raw("QUIT")
05:06:12 -!- bsmnt_bot has quit (Client Quit).
05:06:15 -!- bsmnt_bot has joined.
05:06:17 <xor> ~exec this is an error
05:06:55 <xor> ~exec self.raw("QUIT")
05:06:56 -!- bsmnt_bot has quit (Client Quit).
05:06:59 -!- bsmnt_bot has joined.
05:07:02 <xor> ~exec this is an error
05:07:55 <xor> ~exec self.raw("QUIT")
05:07:56 -!- bsmnt_bot has quit (Client Quit).
05:07:59 -!- bsmnt_bot has joined.
05:08:01 <xor> ~exec this is an error
05:08:53 <xor> ~exec self.raw("QUIT")
05:08:54 -!- bsmnt_bot has quit (Client Quit).
05:08:57 -!- bsmnt_bot has joined.
05:08:59 <xor> ~exec this is an error
05:09:00 <bsmnt_bot> SyntaxError: unexpected EOF while parsing
05:09:16 <xor> ihope: there
05:09:58 <ihope> But why's there a space before it now?
05:10:12 <xor> there always has been
05:10:31 <xor> i'll take it off...
05:10:57 <ihope> Doesn't look like there always has been to me.
05:11:17 <ihope> <bsmnt_bot> NameError: name 'raw' is not defined
05:11:25 <ihope> No space, and that was over three hours ago.
05:11:54 <xor> that's odd
05:12:03 <xor> ~exec self.raw("QUIT")
05:12:04 -!- bsmnt_bot has quit (Client Quit).
05:12:07 -!- bsmnt_bot has joined.
05:12:13 <xor> ~exec this is an error
05:12:14 <bsmnt_bot> SyntaxError: unexpected EOF while parsing
05:14:03 -!- xor has changed nick to bsmntbombdood.
05:14:07 -!- bsmnt_bot has quit (Client Quit).
05:14:10 -!- bsmnt_bot has joined.
05:14:15 <bsmnt_bot> SyntaxError: unexpected EOF while parsing
05:15:04 -!- oerjan has quit ("Gooed knight").
06:07:46 -!- calamari has quit ("Leaving").
06:48:39 -!- digital_me has quit ("goodnight").
06:54:51 -!- ihope has quit (Connection timed out).
07:20:51 -!- wooby has quit.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:34:11 -!- tokigun has joined.
08:57:40 -!- tokigun has quit ("wait a moment please.").
08:58:38 -!- tokigun has joined.
09:05:24 -!- anonfunc has quit.
09:20:43 <Sukoshi> Anyone here do/have done amateur radio?
09:32:07 -!- anonfunc has joined.
09:39:11 -!- Sgeo has quit ("Leaving").
09:55:08 -!- sebbu has joined.
10:34:14 -!- anonfunc has quit.
10:50:04 <Sukoshi> I predict my question will be forgotten in a few more hours and another haphazard conversation will begin and be yet more forgotten.
11:05:16 <oklopol> properties of or prevent me from answering
11:42:22 -!- nooga has joined.
11:47:07 -!- pgimeno has quit (Read error: 104 (Connection reset by peer)).
12:01:37 -!- pgimeno has joined.
12:01:40 * nooga has found a bug in sadol interpreter
12:14:29 -!- tgwizard has joined.
12:33:07 -!- oerjan has joined.
12:36:19 <oerjan> nooga: There is always one more bug. (TM)
12:41:26 -!- Dominic_ has joined.
12:45:47 -!- UpTheDownstair has joined.
12:46:46 -!- UpTheDownstair has quit (Read error: 104 (Connection reset by peer)).
12:50:20 -!- nazgjunk has joined.
12:51:02 -!- Dominic_ has quit (Read error: 104 (Connection reset by peer)).
12:55:49 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
12:56:25 -!- nazgjunk has joined.
13:04:55 -!- UpTheDownstair has joined.
13:05:14 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
13:18:24 -!- UpTheDownstair has quit (Read error: 54 (Connection reset by peer)).
13:18:43 -!- nazgjunk has joined.
13:41:33 -!- UpTheDownstair has joined.
13:41:41 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
13:49:13 -!- UpTheDownstair has changed nick to nazgjunk.
14:01:22 -!- sebbu2 has joined.
14:20:41 -!- sebbu has quit (Connection timed out).
14:45:42 <oerjan> darn, i just realized what my last edit looks like in the Recent Changes list :D
15:01:28 -!- ihope has joined.
15:07:16 -!- jix__ has joined.
15:30:30 -!- ihope has quit (Read error: 104 (Connection reset by peer)).
15:30:44 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
15:31:11 -!- nazgjunk has joined.
15:54:50 * oerjan is starting to suspect that the cat program working is due to an interpreter bug.
15:57:13 <oerjan> on the positive side, that provided a good test that everything that _should_ be identical to Malbolge is working.
16:08:23 -!- SevenInchBread has joined.
16:10:10 -!- UpTheDownstair has joined.
16:12:45 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
16:17:39 -!- UpTheDownstair has changed nick to nazgjunk.
16:17:50 -!- jix__ has changed nick to jix.
16:25:14 -!- nazgjunk has quit ("Leaving").
16:31:57 -!- oerjan has quit ("Out to eat").
16:32:16 -!- nazgjunk has joined.
17:06:35 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
17:06:37 -!- UpTheDownstair has joined.
17:10:36 -!- nazgjunk has joined.
17:10:46 -!- UpTheDownstair has quit (Read error: 104 (Connection reset by peer)).
17:23:06 -!- Arrogant has joined.
17:52:38 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
17:59:30 <bsmnt_bot> ZeroDivisionError: integer division or modulo by zero
18:02:26 -!- nazgjunk has joined.
18:03:46 <bsmntbombdood> ~exec sys.stdout = StringIO(); sys.stdout.write("foo")
18:04:09 <bsmntbombdood> ~exec sys.stdout = StringIO(); sys.stdout.write("foo"); print sys.stdout.getvalue()
18:07:33 <bsmnt_bot> TypeError: exceptions must be classes, instances, or strings (deprecated), not cStringIO.StringO
18:07:40 <bsmnt_bot> TypeError: exceptions must be classes, instances, or strings (deprecated), not builtin_function_or_method
18:08:53 <bsmnt_bot> TypeError: __init__() takes at least 5 arguments (1 given)
18:36:53 -!- wooby has joined.
18:41:47 -!- Arrogant has quit ("Leaving").
19:35:20 -!- oklopol has quit (Read error: 110 (Connection timed out)).
19:38:17 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
19:38:51 -!- nazgjunk has joined.
19:50:53 -!- oerjan has joined.
19:54:51 -!- tgwizard has quit (Remote closed the connection).
19:57:30 <bsmntbombdood> thought that error message would be more interesting
19:59:34 <oerjan> bsmnt_bot: you have a lousy memory if you think that is exceptional :)
20:00:48 <bsmntbombdood> ~exec exec "class BoredError(Exception): pass\n\nself.bored = BoredError"
20:02:07 <bsmntbombdood> ~exec exec "try:\n raise self.bored\nexcept Exception: \nraise \"not allowed to be bored\"\n"
20:02:08 <bsmnt_bot> IndentationError: expected an indented block (line 4)
20:02:28 <bsmntbombdood> ~exec exec "try:\n raise self.bored\nexcept Exception:\n raise \"not allowed to be bored\"\n"
20:03:41 -!- tgwizard has joined.
20:33:16 -!- sebbu has joined.
20:39:10 -!- oklopol has joined.
20:41:06 <oerjan> i don't remember, can you cross between asia and america?
20:50:34 -!- digital_me has joined.
20:50:36 -!- tgwizard has quit (Connection timed out).
20:51:55 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
21:00:15 <oerjan> for a byte, that sounds like 8 but should be 256, I think
21:20:41 <oerjan> use a language with proper types :)
21:22:29 <oerjan> although i suppose i _could_ make the crash function in my interpreter segfault if I used the unsafePerformIO loophole.
21:22:50 <oerjan> for now it just runs out of memory.
21:23:18 <bsmntbombdood> quitting with an error message doesn't tell you anything
21:31:56 <oerjan> return a default, possibly inserting it first.
21:37:06 <bsmntbombdood> and any data can be used as a key, without a hash function
21:48:20 <SimonRC> rm is giving me "text file busy" but lsof is listing nothing when I say lsof <filename>
21:52:17 <SimonRC> I would like to be Hu*Ki bimorph but it ain't going to happen.
21:52:32 <SimonRC> maybe that should be Ki*Hu
21:55:56 <SimonRC> how did you know what "bimorph" meant/
21:56:23 <oerjan> i guessed, from bi- and -morph
21:56:41 <SimonRC> Darn, i am not used to people being able to do that.
21:56:56 <SimonRC> (i.e. analyse things by their classical roots)
21:57:28 <oerjan> besides any PL enthusiast should know about polymorphism
21:58:15 <SimonRC> oklopol: (Well, I do not have a good summarry, but I have explained it in bits in various places, and archived all the discussions: http://fof.durge.org/~sc/Kigdatsi/ )
21:58:44 <oerjan> oh, your own conworld.
21:58:58 <SimonRC> oerjan: where di you learn that word
21:59:31 <SimonRC> newer stuff and dynamic documents are dumped here: http://toast.durge.org/~sc/Kigdatsi/ (the server is also {compsoc,bylands}.dur.ac.uk)
21:59:39 <oerjan> i used to subscribe to the conlang list
21:59:59 <SimonRC> bsmntbombdood: see spinnoff.com/zbb
22:00:26 <oerjan> besides i think it was mentioned in the files of yours i looked at
22:03:16 <oerjan> the world is even smaller, both at conlang and at esolangs i've met people from my local gamer's club :)
22:03:34 <SimonRC> bsmntbombdood: what are you using these tries for?
22:05:10 <bsmntbombdood> for prefix-free keys each new key takes O(keylen) more storage O.o
22:05:17 <oerjan> on the other hand i used a trie in my newest interpreter, which is how the subject came up i think
22:06:32 <SimonRC> ISTR tries have crap constants
22:06:59 <oerjan> bsmntbombdood: there is an optimization to make tries smaller.
22:07:00 <SimonRC> you might want a briefer node format
22:07:19 <SimonRC> like an array of (byte, pointer) pairs
22:07:42 <oerjan> basically, if there is only one leaf in a subtree, you save it directly.
22:07:46 <SimonRC> sounds right, for size-4 pointers
22:07:53 <oerjan> at the top of that subtree.
22:08:56 <oerjan> and you may also split bytes into say 2 nybbles, to make each node only have 16 subnodes.
22:09:13 <SimonRC> well, you have an array of pointers for each node, and there are 256 pointers in each node, and each pointer is 4 bytes
22:10:37 <oerjan> it isn't very hard either.
22:11:14 -!- Sgeo has joined.
22:13:00 <oerjan> sounds like you got it
22:13:29 <oerjan> i guess it is a tradeoff between space and search speed.
22:18:10 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
22:20:13 <SimonRC> solution: use a real language
22:22:30 <SimonRC> In that case, use a language with a real typesystem.
22:23:33 <oerjan> by making it impossible to dereference a null pointer.
22:23:58 <GregorR> That just turns it into some other type of abort.
22:24:00 <SimonRC> By guaranteeing that a pointer always points at something.
22:24:06 <bsmntbombdood> It would have to raise some kind of equivelent error
22:24:08 <oerjan> or do array indexing out of bounds
22:24:15 <SimonRC> (hint: GC may be involved)
22:24:31 <GregorR> Everybody go look up D and shaddap.
22:24:34 <oerjan> sure, but that error may be at compile time
22:24:35 <GregorR> http://www.digitalmars.com/d/
22:24:49 <SimonRC> GregorR: ITYM http://www.haskell.org/
22:25:05 <oerjan> also Ocaml if you think haskell is too weird.
22:25:54 <SimonRC> Nah, you miss out on the cool shit like typeclasses and circular definitions.
22:26:19 <oerjan> yes, but on the other hand you get module functors.
22:26:29 <SimonRC> What could be more fun than creating a graph by defining the contents of a mp in terms of lookups on the map?
22:26:57 <oerjan> essentially, functions from modules to modules.
22:26:58 <SimonRC> bsmntbombdood: seen it before
22:29:38 * SimonRC beats you all: http://e-pig.org/
22:30:01 <SimonRC> Each program contains a correctnes proof embedded in its types.
22:31:05 <oerjan> and not Turing-complete, nanana
22:31:30 <SimonRC> The developers find that you can write all sensible programs in it.
22:32:57 <oerjan> probably. I mean how many times do you need to run an algorithm that you don't know halts...
22:33:49 <oerjan> have you changed trie.c since you posted the link?
22:36:40 -!- tgwizard has joined.
22:41:31 <oerjan> i think bits is worse than 2-bits, which is only twice as good as nybbles.
22:42:42 <oerjan> because bits need 2 children but twice the depth of 2-bits which need 4.
22:44:20 <oerjan> and 4*2 is half of 16.
22:45:47 <bsmntbombdood> I wonder why the constant factor is ~400 and not 128 like it should be
22:46:39 <oerjan> 16*2*4 = 128, you mean?
22:48:42 <oerjan> i was starting to worry you had some serious over-padding there :)
22:48:56 -!- UpTheDownstair has joined.
22:49:31 <oerjan> except - that only applies without sharing.
22:49:35 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
22:50:04 <oerjan> right, so just the top node
22:52:16 <oerjan> a minor point - you don't need a data section for the half-byte nodes
22:53:52 -!- Arrogant has joined.
22:55:24 <oerjan> you could do it fairly cheap by putting the data section last, and just adjusting the malloc size
22:57:31 -!- UpTheDownstair has changed nick to nazgjunk.
22:59:56 <SimonRC> Ah, I was wrong, epigram can do general recursion (and is hence Turing-Complete) if you permit yourself to use (gen :: (forall (P :: *) => (P -> P) -> P) i.e. to assume that anything you can prove from itself is true.
23:00:53 <bsmntbombdood> I didn't know programming languages could get any more mathy
23:01:36 <oerjan> epigram essentially crosses the line to a theorem prover
23:03:12 -!- GregorR has quit (SendQ exceeded).
23:03:24 -!- GregorR has joined.
23:03:51 <oerjan> given the Curry-Howard correspondence between type systems and logic, that essentially has to happen when the type system gets complex enough
23:05:25 <oerjan> In later versions of Haskell, the type system is so powerful that it is itself Turing-complete.
23:05:56 <SimonRC> with a few command-line switches
23:06:04 <SimonRC> e.g. --allow-undecidable-types
23:06:51 <oerjan> on the other hand, the same has been said of C++.
23:07:25 <oerjan> which shows that sanity is not a requirement. :)
23:07:42 <oerjan> hm, does that mean the _type system_ of C++ is an esolang?
23:08:34 <oerjan> (disclaimer: regarding C++ i am speaking solely from prejudice, having never used it ;)
23:09:49 <oerjan> this leads to the obvious question: could we make a language whose type system is based on brainfuck?
23:11:48 <oklopol> it seems static import means the exact opposite in java and D
23:32:55 -!- UpTheDownstair has joined.
23:33:56 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
23:34:03 -!- UpTheDownstair has changed nick to nazgjunk.
23:46:38 * oerjan bops bsmntbombdood on the head
23:52:41 <bsmntbombdood> http://upload.wikimedia.org/math/4/1/c/41c9dae376e6427b316ac0396b990d63.png