â†2007-02-21 2007-02-22 2007-02-23→ ↑2007 ↑all
00:09:27 -!- sebbu has quit (Client Quit).
00:29:01 -!- voodooattack has joined.
00:30:33 -!- nazgjunk has quit ("Bi-la Kaifa").
00:38:47 -!- ShadowHntr has quit ("End of line.").
01:23:09 -!- wooby has joined.
01:24:10 <bsmntbombdood> heh.
01:24:35 <bsmntbombdood> there must be a bug
01:25:08 <bsmntbombdood> http://pastebin.ca/366996
01:25:16 <bsmntbombdood> :q or :Q is the command to quit
01:26:32 -!- wooby has quit (Client Quit).
01:26:38 -!- wooby has joined.
01:29:38 <bsmntbombdood> weird
01:49:31 -!- Sgeo has joined.
02:23:18 <SevenInchBread> this is pretty sweet.
02:25:42 <bsmntbombdood> what is?
02:25:49 <bsmntbombdood> Warning: this comic occasionally contains strong language (which may be unsuitable for children), unusual humor (which may be unsuitable for adults), and advanced mathematics (which may be unsuitable for liberal-arts majors).
02:26:45 <SevenInchBread> It's like... a huge concurrent PATH-like language with coroutines and support for files and sockets.
02:29:03 <SevenInchBread> Originally it was so concurrent that each individual pointer could hold only one byte... but that makes it impossible to do filenames, urls, and socket addresses.
02:29:37 <SevenInchBread> so.. I just made little counters and big counters...
02:32:30 <SevenInchBread> It's weird because this could actually be useful.
02:33:02 <SevenInchBread> very useful actually... I wouldn't mind using it. :)
02:36:39 <SevenInchBread> hell, I'll throw in unicode support too...
03:07:40 -!- wooby has quit.
03:07:43 -!- pgimeno has quit (Read error: 104 (Connection reset by peer)).
03:11:20 -!- pgimeno has joined.
03:29:29 -!- jix__ has quit (Read error: 110 (Connection timed out)).
03:30:00 -!- jix__ has joined.
03:53:55 -!- digital_me has joined.
04:10:30 <SevenInchBread> hmmm...
04:11:21 <SevenInchBread> It's funny to note that unihan probably takes up less storage space than latin text.
04:11:58 <SevenInchBread> It takes more bytes to encode a character... but you have less characters as a whole.
04:24:35 -!- oklopol has quit (Read error: 110 (Connection timed out)).
04:38:06 -!- oklopol has joined.
04:41:44 -!- digital_me has quit ("Lost terminal").
05:01:36 <SevenInchBread> ooooh.
05:01:38 <SevenInchBread> this gives me ideas.
05:01:48 * SevenInchBread shhhhhhh
05:06:19 <SevenInchBread> so.
05:06:25 <SevenInchBread> I want to turn this into a programming language.
05:07:29 <SevenInchBread> http://en.wikipedia.org/wiki/I_Ching
05:34:33 -!- oerjan has joined.
05:44:28 <bsmntbombdood> oerjan: StringIO is a file-like object
05:44:58 <oerjan> yeah, i eventually looked it up.
05:45:22 <SevenInchBread> http://www.euph0r1a.net/mesostomatic/
05:45:25 <SevenInchBread> simply grand
05:46:01 <bsmntbombdood> off to bed I go
05:52:44 <oerjan> on second thought I saw a Stream module in Haskell that was quite similar to StringIO.
05:52:58 <voodooattack> damn.. i want one of these http://www.superssd.com/products/tera-ramsan/ :/
05:54:40 <oerjan> i think it used a type class for which strings and file handles were particular instances.
05:56:12 <oerjan> i guess that one wants to be accompanied by Intel's terachip :)
05:56:30 <oerjan> for full tera-coverage
05:57:56 <voodooattack> :p
06:13:02 -!- puzzlet has joined.
06:13:02 -!- puzzlet_ has quit (Read error: 131 (Connection reset by peer)).
06:16:24 -!- goban has quit (Read error: 104 (Connection reset by peer)).
06:16:54 -!- goban has joined.
06:23:16 -!- oklofok has joined.
06:24:45 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
07:32:19 <SevenInchBread> I like TK
07:32:36 <SevenInchBread> nifty GUI thingy.
07:34:47 <GregorR> That's almost /ignore-worthy.
07:39:40 -!- sebbu has joined.
07:44:17 <SevenInchBread> well... more specifically... I like Tkinter.
07:44:38 <SevenInchBread> which is just like... Python stuff that turns around and does Tk/Tcl stuff
07:53:22 -!- ShadowHntr has joined.
07:53:35 <oerjan> Is it impolite to write an implementation of someone's language right after they have presented it?
07:54:09 <SevenInchBread> Not to me...
07:54:11 <GregorR> Heww no.
07:54:22 <SevenInchBread> I'd love it if someone implemented all the languages I came up with it.
07:54:48 <oerjan> because i got this idea for how to implement V and started writing.
07:55:32 * SevenInchBread has a nifty PATH-ish concurent language.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:17:48 -!- sebbu2 has joined.
08:37:01 -!- sebbu has quit (Read error: 110 (Connection timed out)).
09:06:47 -!- ShadowHntr has quit ("End of line.").
09:33:14 -!- oerjan has quit ("leaving").
09:40:34 -!- SevenInchBread_ has joined.
09:42:34 -!- SevenInchBread has quit (Read error: 145 (Connection timed out)).
09:42:46 -!- SevenInchBread_ has changed nick to SevenInchBread.
09:44:49 -!- anonfunc has joined.
09:46:50 -!- nazgjunk has joined.
10:07:46 -!- anonfunc has quit.
10:11:22 -!- pjd has joined.
10:28:48 -!- oklofok has changed nick to oklopol.
11:09:21 -!- oerjan has joined.
11:11:17 -!- nazgjunk has quit ("Bi-la Kaifa").
11:16:14 -!- oerjan has quit ("leaving").
11:18:28 -!- Sgeo has quit (Remote closed the connection).
11:21:47 -!- voodooattack has quit.
13:05:25 -!- sebbu2 has changed nick to sebbu.
14:19:05 -!- sebbu has quit ("reboot").
14:37:06 -!- sebbu has joined.
14:38:47 <nooga> hi
14:38:49 <nooga> sup?
15:33:06 -!- ais523 has joined.
15:41:44 -!- ais523 has quit (Remote closed the connection).
15:42:11 -!- ais523 has joined.
15:44:02 <ais523> !bf http://bf-hacks.org/hacks/underload.b
15:44:06 <EgoBot> ÿ
15:44:12 <ais523> !ps
15:44:16 <EgoBot> 1 ais523: ps
15:44:20 <SimonRC> !ps off
15:44:22 <SimonRC> :-
15:44:24 <EgoBot> 1 SimonRC: ps
15:44:24 <SimonRC> :-P
15:44:33 <nooga> ;p
15:44:45 <ais523> I must have got the wrong URL, so it interpreted it as -.
15:44:55 <nooga> what is V?
15:45:10 <ais523> !bf http://www.bf-hacks.org/hacks/uload.b
15:45:29 -!- ais523 has quit (Excess Flood).
15:45:34 -!- ais523 has joined.
15:45:53 <ais523> err... what just happened?
15:46:03 <ais523> !ps
15:46:06 <EgoBot> 1 ais523: bf
15:46:07 <nooga> it killed you
15:46:08 <EgoBot> 2 ais523: ps
15:46:30 <ais523> Maybe I should try a program slightly shorter than a kilobyte
15:46:33 <ais523> or a pastebin
15:47:41 <ais523> !i 1 http://pastebin.ca/raw/367737
15:47:44 <ais523> !eof
15:47:54 <ais523> !ps
15:47:58 <EgoBot> 1 ais523: bf
15:48:00 <EgoBot> 2 ais523: ps
15:48:18 <ais523> I suppose it might take a while to interpet what I've given it
15:48:36 <ais523> !kill 1
15:48:38 <EgoBot> Process 1 killed.
15:49:07 <ais523> or maybe it was in an infinite loop due to trying to interpret the URL as a program
15:50:23 <ais523> !daemon ul bf http://pastebin.ca/raw/365170
15:50:35 <ais523> !ul http://pastebin.ca/raw/367737
15:51:21 <ais523> !ps
15:51:24 <EgoBot> 1 ais523: ps
15:51:32 <ais523> !ps d
15:51:34 <EgoBot> 1 ais523: ps
15:51:52 <ais523> !daemon ul bf http://pastebin.ca/raw/365170
15:51:57 <ais523> !ul (Hello, world!)S
15:52:00 <EgoBot> Hello, world!
15:53:52 <ais523> !daemon ul bf http://pastebin.ca/raw/365170
15:54:03 <ais523> !ul (/me is trying to send a message starting "/me")S
15:54:06 <EgoBot> /me is trying to send a message starting "/me"
15:54:17 <ais523> doesn't work with EgoBot, it seems
15:55:33 <ais523> !daemon ul bf http://pastebin.ca/raw/365170
15:56:16 <ais523> !ul (~exec sys.stdout("!daemon ul bf http://pastebin.ca/raw/365170"))S
15:56:18 <EgoBot> ~exec sys.stdout("!daemon ul bf http://pastebin.ca/raw/365170")
15:56:19 <bsmnt_bot> !daemon ul bf http://pastebin.ca/raw/365170
15:57:04 <SimonRC> !ps
15:57:06 <EgoBot> 2 SimonRC: ps
15:57:11 <ais523> !ps d
15:57:14 <EgoBot> 1 bsmnt_bot: daemon ul bf
15:57:16 <EgoBot> 2 ais523: ps
15:58:08 <SimonRC> I think you need to read about ACTION in the IRC RFC.
15:58:16 <SimonRC> that is how /me wors
15:58:18 <SimonRC> *works
15:59:16 -!- oerjan has joined.
16:00:13 <ais523> !ul (a(:^)*S):^
16:00:16 <EgoBot> (a(:^)*S):^
16:00:25 <oerjan> !ps d
16:00:28 <EgoBot> 1 oerjan: ps
16:00:33 <oerjan> !help
16:00:36 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
16:00:38 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
16:00:47 <oerjan> !ps
16:00:50 <EgoBot> 1 oerjan: ps
16:01:18 <ais523> !daemon ul bf http://pastebin.ca/raw/365170
16:01:28 <ais523> !ul (~exec sys.stdout("!daemon ul bf http://pastebin.ca/raw/365170"))S
16:01:30 <EgoBot> ~exec sys.stdout("!daemon ul bf http://pastebin.ca/raw/365170")
16:01:31 <bsmnt_bot> !daemon ul bf http://pastebin.ca/raw/365170
16:01:32 <oerjan> Still takes just one line before dying?
16:01:38 <ais523> Unfortunately, yes
16:01:49 <ais523> I haven't got to modifying Keymaker's program any further
16:02:18 <ais523> I'd have to run it in a debugger to find out what happens to its memory after an Underload program ends
16:02:29 * ais523 searches for an online Brainfuck debugger
16:02:44 * oerjan has one in his favorites list
16:03:07 <oerjan> http://mozaika.com.au/oleg/bfdebug.html
16:04:59 * ais523 found that one before they saw Oerjan's message
16:05:54 * oerjan almost deduces that ais523 is a woman
16:06:30 * ais523 is just too used to using gender-neutral pronouns online
16:06:41 <ais523> and I also have a gender-neutral name in RL, as it happens
16:07:50 <SimonRC> ais523: you appear to be in birmingham uni
16:09:00 <ais523> yes, I haven't hidden my IP
16:09:24 <SimonRC> I haven't even bothered hiding my name
16:09:34 * SimonRC needs a pseudonym
16:10:20 <SimonRC> /nick Jeremy_Askew
16:10:24 <SimonRC> :-)
16:10:28 <SimonRC> whoever he might be
16:15:06 -!- jix__ has changed nick to jix.
16:19:41 <ais523> !daemon ul bf http://pastebin.ca/raw/367770
16:19:47 <ais523> !ul (Hello, world!)S
16:20:06 <ais523> !ps
16:20:08 <EgoBot> 3 ais523: ps
16:21:09 <ais523> !ps d
16:21:12 <EgoBot> 1 bsmnt_bot: daemon ul bf
16:21:14 <EgoBot> 2 ais523: daemon ul bf
16:21:16 <EgoBot> 3 ais523: ps
16:21:19 <ais523> !kill 1
16:21:21 <ais523> !kill 2
16:21:22 <EgoBot> Process 1 killed.
16:21:24 <EgoBot> Hello, world!
16:21:26 <EgoBot> Process 2 killed.
16:21:27 -!- pjd has quit.
16:21:35 <ais523> !daemon ul bf http://pastebin.ca/raw/367770
16:21:40 <ais523> !ul (Hello, world!)S
16:22:04 <ais523> !kill 1
16:22:06 <EgoBot> Process 1 killed.
16:22:08 <EgoBot> Hello, world!
16:22:18 <ais523> The problem is that there isn't a final newline on the output
16:23:19 <ais523> !daemon ul bf http://pastebin.ca/raw/367774
16:23:24 <ais523> !ul (Hello, world!)S
16:23:26 <EgoBot> Hello, world!
16:23:33 <ais523> !ul (Hello again!)S
16:23:36 -!- goban has quit (Read error: 104 (Connection reset by peer)).
16:23:36 <EgoBot> Hello again!
16:23:52 -!- goban has joined.
16:24:04 <ais523> This ought to work as long as nothing is left on the stack at the end of the program
16:27:42 <ais523> !ul (a("!ul )~*(:^")*a(~exec sys.stdout)~*):^
16:28:00 <ais523> !undaemon ul
16:28:02 <EgoBot> Process 1 killed.
16:28:12 <ais523> !daemon ul bf http://pastebin.ca/raw/367774
16:28:23 <ais523> !ul (a("!ul )~*(:^")*a(~exec sys.stdout)~*S):^
16:28:31 <ais523> !ul (a("!ul )~*(:^")*a(~exec sys.stdout)~*S):^
16:28:34 <EgoBot> ~exec sys.stdout("!ul (a("!ul )~*(:^")*a(~exec sys.stdout)~*S):^")
16:29:08 <ais523> Python seems not to understand nested quotes, so this quine's going to take a bit of work
16:29:29 <ais523> but it's hard to see how any language could understand nested " as quotes
16:29:38 <ais523> that's why I like directed quotes
16:37:11 <tokigun> ais523, how about triple-quoted string? ("""xxx""")
16:37:33 <ais523> the problem is whatever delimiters are used outside the string will end up inside it
16:37:43 <ais523> due to the nature of this sort of quine
16:38:00 <oklopol> ais523 you making your first quine?
16:38:09 <oerjan> directed quotes?
16:38:19 <tokigun> but the delimiter is three characters, so you can divide it and safely print it... maybe?
16:38:35 * ais523 has made quines before
16:38:42 <ais523> And as for directed quotes:
16:39:02 <ais523> !ul (((*)))^^aaS
16:39:04 <EgoBot> ((*))
16:39:17 <ais523> !ul (((*)))^^aaaS
16:39:18 <EgoBot> (((*)))
16:39:25 <oerjan> I.e. another word for parentheses :)
16:39:39 <ais523> Parentheses are used as directed quotes in Underload
16:39:45 <ais523> but Capuirequiem uses []
16:39:58 <ais523> and STATA (a nasty non-esoteric language) uses `" "'
16:40:02 <oerjan> I realized (and I think INTERCAL may use it) that alternating " and ' also allows for arbitrary deep nesting
16:40:22 <ais523> INTERCAL can do it even without alternating in most cases
16:40:32 <ais523> alternating is only necessary in tricky bits of array markup
16:41:05 <ais523> strangely enough, the C-INTERCAL compiler had a bug in this regard through most of its history (it was the main bug I fixed for the most recent version)
16:42:14 <oklopol> ..translates c to intercal?
16:42:21 <ais523> translates INTERCAL to C
16:42:40 <oklopol> okay, i was very close to calling you a lier :)
16:42:42 <ais523> or to be precise, it translates a dialect of INTERCAL commonly also called C-INTERCAL to C
16:44:44 <ais523> http://esolangs.org/wiki/C-INTERCAL
16:45:36 <oerjan> hm... I did not quite remember the weirdness.
16:49:24 -!- goban has quit (Connection timed out).
16:49:38 <ais523> DO .1 <- ,3SUB",2SUB.1".2~.3"".4
16:50:05 <ais523> the entire statement could be parsed a different way up to the third double-quote
16:50:27 <ais523> which is no good for a parser which must decide whether the second ears are closing when it reaches them, not later
16:50:56 <ais523> there's actually a sentence in the manual specifically banning examples like this one, which leads me to believe they must have hit the same problem implementing INTERCAL-72
16:58:28 <ais523> !ul (()(*))()(~:^:S*a~^a~!~*~(/)S):::::*****^!!
16:58:31 <EgoBot> */*/**/***/*****/********/
16:58:56 <ais523> !ul (()(*))()(~:^:S*a~^a~!~*~(/)S)::::::::********^!!
16:58:59 <EgoBot> */*/**/***/*****/********/*************/*********************/**********************************/
16:59:05 <oklopol> !ul (Hello, world!)a
16:59:11 <oklopol> print?
16:59:16 <oklopol> !ul (Hello, world!)A
16:59:19 <oklopol> !ul (Hello, world!)S
16:59:23 <EgoBot> Hello, world!
16:59:26 <oklopol> :DDDDDDDDDDDDDDDDDDDD
16:59:27 <oklopol> yay
16:59:32 <oklopol> !ul (Hello, world!)aaaaaaaaaaaaaaaaS
16:59:35 <EgoBot> ((((((((((((((((Hello, world!))))))))))))))))
16:59:42 <oklopol> whoopes
16:59:55 <oklopol> !ul (a)::S
16:59:57 <EgoBot> a
17:00:00 <oklopol> !ul (a)::SSS
17:00:03 <EgoBot> aaa
17:00:05 <oklopol> !ul (a)::SSSS
17:00:07 <EgoBot> aaa
17:00:21 <oklopol> !ul (a)~S
17:00:26 <ais523> Erm, I have no idea what state the interpret will be in now that you've used up more stack elements than it had
17:00:31 <oklopol> !ul (4)(a)~S
17:00:32 <ais523> !ul (Hello, world!)S
17:00:33 <EgoBot> 4
17:00:35 <EgoBot> Hello, world!
17:01:01 <ais523> * interpreter
17:01:09 <oklopol> oh :P
17:01:12 <ais523> !ul (a)(b)*S
17:01:15 <EgoBot> ab
17:01:21 <ais523> !ul (a)(b)~*S
17:01:25 <EgoBot> ba
17:01:31 <ais523> !ul (a):*S
17:01:32 <oklopol> !ul(a):*S
17:01:33 <EgoBot> aa
17:01:35 <EgoBot> Huh?
17:01:44 <ais523> Snap!
17:01:48 <oklopol> i seem to remember the language pretty well
17:01:49 <oklopol> yay
17:01:55 <ais523> !ul (a)aS
17:01:57 <EgoBot> (a)
17:02:08 <oklopol> !ul (a)a*S
17:02:09 <ais523> !ul (a)(a)^S
17:02:11 <EgoBot> (a)
17:02:13 <EgoBot> (a)
17:02:28 <ais523> !ul (a)(a)a*S
17:02:31 <EgoBot> a(a)
17:02:45 <ais523> !ul (a)(a)(a)^*S
17:02:47 <EgoBot> a(a)
17:03:59 <ais523> !ul ((a)(b))^*S
17:04:03 <EgoBot> ab
17:04:04 <oklopol> !ul (a)a*S <<< shouldn't this output aa or smth?
17:04:07 <EgoBot> (a)
17:04:40 <ais523> Your program: (a)a*S pushes a onto the stack, encloses it in brackets, concatenates it to a nonexistent stack element, and prints it
17:04:54 <ais523> !ul (a)(a)a*S
17:04:57 <EgoBot> a(a)
17:04:58 <oklopol> a == enclose, yeah, i failed
17:05:02 <oklopol> i though double
17:05:04 <oklopol> that's :
17:05:06 <oklopol> indeed
17:05:21 <ais523> : = two dots = double
17:05:34 <oklopol> i figured that's the reason
17:05:38 <oklopol> you are the author?
17:05:52 <ais523> Yes. Underload is a subset of a much larger language that I haven't released yet
17:05:59 <oklopol> !ul 1S
17:06:03 <ais523> because I haven't figured out the details
17:06:06 <oklopol> 1 is comment?
17:06:13 <ais523> '1' doesn't mean anything, so it's an error
17:06:21 <ais523> all strings have to be quoted in brackets
17:06:23 <oklopol> okay, same thing :P
17:06:24 <ais523> !ul (1)S
17:06:27 <EgoBot> 1
17:06:51 <ais523> What's surprising me at the moment is how errorproof the interpreter's being at the moment
17:07:03 <ais523> considering that it's written in Brainfuck and does no error checking
17:07:11 <oklopol> :o
17:07:13 <oklopol> wtf
17:07:25 <ais523> It's Keymaker you'll have to thank for that, not me
17:07:34 <ais523> I just modified it for EgoBot use
17:07:40 -!- helios24 has quit ("Leaving").
17:07:54 <ais523> http://pastebin.ca/raw/367774
17:08:11 <ais523> based on the original http://www.bf-hacks.org/hacks/uload.b
17:08:54 <oklopol> hmm... why haven't i thought of []-comments
17:09:15 <ais523> !ul (This is a comment)!(Hello, world!)S
17:09:19 <EgoBot> Hello, world!
17:09:29 <ais523> You can create a comment by enclosing it in brackets and then throwing it away with !
17:09:45 <ais523> Oh, I see you were referring to BF's [] comments
17:09:48 <oklopol> yeah
17:10:06 * ais523 didn't think of them in an earlier revision, either, and added them for the latest version
17:10:27 <oklopol> i've always stripped my comment off bf commands
17:10:30 <oklopol> *s
17:11:46 <oklopol> pretty omg our programming tasks, today i had to write a method for iteratively calculating list length on the whiteboard
17:11:55 <oklopol> in java
17:13:45 * ais523 is also learning Java
17:13:58 <ais523> I have to write an interactive game of Snakes-and-Ladders over a network
17:14:17 <ais523> which is a bit confusing, as the players have no input into snakes-and-ladders anyway
17:17:02 <oerjan> heh
17:17:36 <oklopol> i'm starting to learn towards functional languages nowadays
17:17:42 * oklopol is becoming lazy
17:18:03 <SimonRC> :-P
17:19:12 <oklopol> two years ago i would've laughed at python for the code being 10 times shorter in most tasks... since it's not REAL PROGRAMMING like c
17:19:46 <ais523> I tend to lean towards pure languages
17:19:47 <oklopol> c/c++ still makes me tick though... java not so much
17:20:06 <ais523> whether it's pure functional like Unlambda or pure procedural like C
17:20:32 <ais523> I also like C and C++
17:20:36 <ais523> Java has a lot of annoying quirks
17:20:39 <oklopol> or purely imperative like brainfuck!
17:20:41 <oerjan> what about pure multiparadigm like Oz? :)
17:20:45 <ais523> such as having to use a file-system for quoting
17:21:06 <oerjan> (not that i really know Oz)
17:21:14 * ais523 was going to use brainfuck as an example, but couldn't think of what paradigm it was a pure representative of
17:21:53 <ais523> By the way, Underload is a pretty pure concatenative language
17:26:51 <EgoBot> ais523 was wondering whether EgoBot responded to private messages
17:26:59 <ais523> apparently it does
17:29:26 <SimonRC> ais523: BF is close to a Turing machine.
17:30:01 <ais523> with lots of states but a limit on which states can go where, and what each state can do
17:30:06 <ais523> and with only a semi-infinite tape
17:30:17 <ais523> and lots of possible symbols for each tape cell
17:30:47 <oklopol> semi-infinite tape?
17:31:11 <ais523> !bf <
17:31:23 <ais523> that's an illegal program in most BF implementations
17:31:34 <ais523> but Turing machine tapes are infinite both ways
17:31:42 <oklopol> that is not semi-infinite.
17:31:42 <oerjan> not always
17:32:18 <oklopol> INF - 0 = INF, INF - (-INF) = 2INF = INF
17:32:24 <oklopol> semi- is wrong
17:32:36 <oklopol> it's just different, not semi-infinite
17:32:50 <ais523> Would you object to the term 'half-line' for a ray in geometry, which is quite common
17:33:06 <ais523> I suppose 'semi-infinite' means 'infinite half of two ways', or one way
17:33:07 <oklopol> half-linishly infinite
17:33:16 <oklopol> well, maybe :D
17:33:22 <oklopol> i hope it's not an official term
17:34:59 * oerjan thinks his data structure for implementing V's sum tree was moderately clever. :)
17:36:12 * ais523 looks up what Oerjan's data structure was
17:37:43 <ais523> You have a structure consisting of a binary tree and a linked list of binary trees?
17:38:51 <oerjan> well, i guess you could call it that. It's just a zipped binary tree.
17:39:16 <oerjan> of infinite height both ways.
17:39:54 <ais523> For Underload's superset language, Overload, I'm using a data structure which is effectively a doubly-linked binary tree
17:40:09 <ais523> analogous to a doubly-linked list
17:40:29 <SimonRC> ITYM "binary tree with upward links".
17:40:50 <ais523> Yes, except that I have to do some compression
17:40:57 <ais523> because the trees are also infinite
17:41:09 <lament> compression usually helps with infinite stuff.
17:41:53 <ais523> It's the only language I've ever come across where I had to optimize 99 bottles of beer
17:41:59 <ais523> to prevent the computer running out of memory
17:42:05 <oerjan> :D
17:43:09 <SimonRC> If one is dealing with substitutions of values for variables, sometimes you get an infinite data structure, which is easily compressed as a function for the general case plus ome counterexamples.
17:43:49 <ais523> All data types were equivalent
17:43:52 <SimonRC> like ([('x', "f(z)"), ('z', "g(x)")], id).
17:44:10 <SimonRC> ais523: corection: all data types of the same cardinality are equivalent.
17:44:13 <ais523> so the character '!' was equivalent to the number 34 (because it used incremented ASCII as a character set)
17:44:31 <SimonRC> and any data type of greater cardinality can emulate any one of lower cardinality.
17:44:34 <oklopol> extended ascii?
17:44:38 <SimonRC> within the HM type system
17:44:42 <ais523> no, incremented
17:44:49 <ais523> newline was 11 and space was 33
17:44:49 <oklopol> okay
17:44:54 <ais523> so that EOF could be 0
17:45:04 <oklopol> yeah, oaky
17:45:04 <SimonRC> ouch
17:45:08 <SimonRC> heheh
17:45:16 <SimonRC> (like an oak?)
17:46:14 <oklopol> oaky could be the name of a tree-based lang
17:46:18 <ais523> It gets worse; the number 4, for instance, was the string :::***, which is the fourth Church numeral if interpreted as an Underload or Overload program:
17:46:19 <SimonRC> heh
17:46:20 <oklopol> hohoo
17:46:24 <oklopol> i have an idea
17:46:38 <ais523> !ul ((*)S):::***^
17:46:41 <EgoBot> ****
17:46:59 <ais523> how does this tree-based language work, then?
17:47:05 <oklopol> it
17:47:09 <oklopol> hmm
17:47:12 <oklopol> actually
17:47:19 <oklopol> i have overlapping ideas
17:47:38 <oklopol> i should really make a lang for every idea i get, since they kinda stack up
17:48:05 <ais523> Overload was invented as a language for writing esolang interpreters in
17:48:19 <ais523> You can compile both Unlambda and Befunge into it, I think
17:48:30 <ais523> and because I haven't finished the specification yet, I can just change it until you can
17:48:44 <oerjan> how convenient :D
17:49:03 <oklopol> ah, a lang with self-modification and support for most esolang features
17:49:22 <oklopol> that's easy
17:49:31 <ais523> The shortest possible quine, apart from the null quine, works by reading the program source and printing it out
17:49:39 <ais523> It's only three characters long
17:49:47 <oklopol> 10 LIST
17:49:54 <oklopol> Q
17:50:07 <oerjan> that's a cheating quine
17:50:11 <oklopol> Q is not
17:50:13 <oklopol> i think
17:50:23 <oklopol> oh it is yeah
17:50:25 <oklopol> indeed
17:50:44 <ais523> Shortest possible in the language
17:50:45 <lament> i thought Q was defined to not cheat :)
17:51:16 <ais523> just like X is defined to make the language Turing-complete
17:51:19 <ais523> without saying how?
17:51:22 <oerjan> that would be rather hard to achieve.
17:51:43 <ais523> It wouldn't be the first time that an esolang was impossible to implement
17:51:45 <lament> heh, who came up with the X
17:51:51 <oklopol> oerjan?
17:52:00 <oerjan> i implemented it at least.
17:52:00 <ais523> IIRC Homespring had a clause to make it uninterpretable
17:52:11 <ais523> " . " was defined to cause a temporal paradox
17:52:23 <nooga> oklopol: sup?
17:52:34 <oklopol> nooga: all ot it
17:52:39 <oklopol> *of
17:52:41 <lament> oerjan: implemented X?
17:52:47 <lament> you have? :)
17:53:02 <ais523> I think his interpreter added a random number to each character of the program
17:53:05 <ais523> and then ran it as Perl
17:53:15 <oklopol> xD
17:53:20 <oerjan> yep that's mine.
17:53:23 <lament> oh wow, somebody wrote a Fugue compiler
17:53:51 <ais523> It seems to run on my Hello, World program, but I can't run the output on the computer I'm on
17:54:08 <ais523> It certainly compiled it into English well enough
17:54:15 <nooga> and i'm trying to design MACRO SADOL and then write a raytracer in it
17:54:18 <ais523> So I suppose it could be a Fugue to IRP compiler if needed
17:54:24 <lament> ais523: you wrote it?
17:54:44 <ais523> I didn't write the compiler, just the only Fugue programs I've ever come across
17:55:21 <lament> oh wow, that's a nice hello world
17:55:28 <ais523> The Fugue compiler writer goes by the username of Mrosenau on the wiki
17:55:41 <lament> does it compile to Prelude?
17:56:22 <ais523> Strangely, no. (That's impossible to do exactly, because Fugue can push numbers greater than 9, but obviously there's a fix around that.)
17:56:32 <lament> oh, true
17:56:58 <ais523> But there isn't a Fugue-to-Prelude compiler in there at all, just to Fugue-to-COFF and Fugue-to-pseudo-English
17:57:16 <lament> heh
17:57:52 <lament> strange, i remember putting example Prelude programs somewhere and now can't find them
17:58:24 <nooga> g
17:58:26 <nooga> eh
17:59:16 <ais523> I wrote a BF-to-Prelude compiler: http://esolangs.org/files/prelude/util/bf2pre.c
17:59:29 <ais523> It was the first step in creating the Hello, World! program
18:01:15 <lament> i remember there was a fairly pretty fibonacci Prelude program using three voices...
18:02:26 <nooga> i wonder how it sounds
18:02:57 <lament> cause two voices is borign :)
18:03:41 <oklopol> what's the term for haskell 'f . g' or 'o' in math
18:03:41 <oklopol> ?
18:03:51 <lament> composition
18:03:57 <oklopol> thanks
18:04:20 <oklopol> is there a name for the actual sign? (composition fits though)
18:04:31 <oklopol> or is it the composition sign or smth
18:04:46 <oklopol> it's 'ball' in finnish :PP
18:04:53 <lament> http://en.wikipedia.org/wiki/Function_composition
18:04:56 <lament> says it's "circle"
18:05:07 <oklopol> oki
18:05:13 <lament> http://en.wikipedia.org/wiki/Composition_operator
18:05:33 <lament> 'operator "o"'
18:05:39 <lament> what a great name
18:06:09 <ais523> It's * in Underload
18:06:29 <ais523> because composing functions is the same as multiplying numbers:
18:06:53 <ais523> !ul (::**)(::**)*((+)S)~*^
18:06:55 <EgoBot> +
18:07:04 <lament> Fugue needs a composition operator :)
18:07:07 <ais523> um...
18:07:27 <lament> it would...compose
18:07:28 <ais523> !ul (::**)(::**)*((+)S)~^^
18:07:32 <EgoBot> +++++++++
18:08:26 <ais523> ::** is 3, so multiplying two of them gives 9 +'s
18:09:26 <ais523> Composition in Fugue would be like the CREATE operator in CLC-INTERCAL, though
18:09:49 <ais523> it would generate new syntax, but the syntax for using it itself would therefore have to be too complicated to be useful
18:11:20 <ais523> By the way, the burning questions in Prelude design must be answered: exactly which way does - subtract?
18:11:41 -!- nazgjunk has joined.
18:12:13 <ais523> (So far it's mostly been assumed, at least by me and the defaults in the compiler, that it subtracts the top element from the second.)
18:13:13 <lament> eh, whatever the interpreter does
18:13:26 <lament> probably the top from the second since that would make sense
18:14:06 <nooga> U
18:15:49 <lament> elif i == '-':
18:15:49 <lament>
18:15:49 <lament> b = stacks[voice].pop()
18:15:49 <lament> a = stacks[voice].pop()
18:15:50 <lament> stacks[voice].push(a-b)
18:16:51 <SimonRC> nooga: a predecessor to V?
18:17:12 <lament> okay, i will update the specification and the wiki article
18:17:19 <SimonRC> :-P
18:17:24 <nooga> wtf is V?
18:17:38 <ais523> http://esolangs.org/wiki/V
18:17:47 <oerjan> lament: Was that you redirecting your name to your user page on the wiki?
18:18:17 <lament> yes
18:18:36 <lament> having two pages is bizarre
18:21:25 -!- crathman has joined.
18:24:00 <oerjan> well, redirecting to user pages is against policy, graue is pretty strongly against it.
18:24:29 <oerjan> See Esolang_talk:Authors
18:24:29 <lament> oh, jeez
18:26:04 <lament> http://esoteric.voxelperfect.net/wiki/Nikita_Ayzikovsky
18:26:44 <ais523> What do you think of the way I've fixed it?
18:27:20 <lament> i think graue's on crack
18:27:29 <ais523> A small amount of information on the wiki page, and a link to the userpage
18:27:35 <lament> and i think having _two_ pages about me is a little extreme
18:27:39 <ais523> Compare http://esolangs.org/wiki/Catatonic_Porpoise
18:27:46 <ais523> and http://esolangs.org/wiki/User:Graue
18:27:59 <lament> yes
18:28:07 <lament> two pages, containing the same information
18:28:20 <ais523> but probably written by different people
18:28:34 <lament> okay, i'll redirect User:Lament TO nikita aizikovsky then :)
18:28:58 <ais523> I think the point is that we can have a page http://esolangs.org/wiki/Donald_R._Woods
18:29:04 <ais523> even though he doesn't contribute
18:29:30 <lament> eh
18:30:02 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
18:30:03 <lament> we still can do that regardless of the policy on userpages
18:30:03 <ais523> http://esolangs/org/wiki/Esolang:Authors explains what some people believe the current policy to be
18:30:34 -!- oklopol has joined.
18:30:45 <ais523> (I think I agree with lament on this one, but I'm not able to decide Esolang policy by myself)
18:31:55 * lament tries to think of a nice way out of this
18:33:21 <ais523> I suppose the major difference is that user pages are treated as personal
18:33:36 <ais523> whereas pages in the article namespace are treated to the rigors of the wiki process
18:34:08 <ais523> which is why Graue doesn't want people linking to user pages in an unmarked manner and coming across a non-Neutral Point Of View page
18:34:10 <lament> i understand the reasoning
18:34:24 <lament> it works for wikipedia
18:34:50 <lament> in practice, you end up with two almost identical pages
18:35:22 <ais523> It could end up with different pages in theory, but what esolang enthusiasts are most likely to put on Esolang is a list of languages they've created
18:35:47 <ais523> and what people are most likely to write about for a person is a list of languages they've created
18:35:48 <lament> i guess somebody like Pressey has enough info about them that it makes sense to actually have a page
18:36:01 <lament> but somebody like me dosen't
18:36:32 -!- UpTheDownstair has joined.
18:36:48 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
18:37:16 <oerjan> We could always make up some lies about you being a convicted serial killer :)
18:38:07 <ais523> but we don't have a {{citation needed}} tag to put on them, so they'd have to be deleted
18:40:46 <lament> oerjan: what do you mean lies
18:41:07 <lament> heh @ http://www.esolangs.org/wiki/Category:Unusable_for_programming
18:41:10 <ais523> "Nikita Ayzikovsky": 71 google results, so it might be a bit hard to write an article
18:41:30 <ais523> "ais523": 10100 google results, mostly sites pretending to be Wikipedia or Google Groups
18:41:50 <ais523> (Strangely, Esolang is second nowadays, behind my Wikipedia user page; it never used to be like that!)
18:42:09 <ais523> "lament": about 10300000 google results
18:42:13 <ais523> mostly irrelevant, of course
18:42:16 <lament> all about me
18:43:37 <lament> wow, these google results leave a horrible impression :)
18:43:40 * SimonRC goes to dinner
18:44:42 <ais523> Some more statistics: Did you know that http://esolangs.org is the 1684148th most viewed website on the Internet
18:44:53 <lament> impressive
18:45:06 <ais523> and it's visited by 0.000025% of Internet users?
18:46:21 <lament> sounds about right
18:46:52 <ais523> http://alexa.com/data/details/traffic_details?url=esolangs.org
18:50:24 <ais523> void ab() {char c; putchar('a'); c=getchar(); if(c=='y') ab(); putchar('b');}
18:50:45 <ais523> It's a program designed to be easy to implement in most languages, but very difficult to express in UML
18:51:07 <lament> how do you express programs in UML?
18:51:19 <ais523> sorrt, I meant void ab() {char c; putchar('a'); c=getchar(); if(c=='y') ab(); putchar('b'); c=getchar(); if(c=='y') ab();}
18:51:21 <lament> i thought uml was for object relationships
18:51:34 <ais523> It is, but you're meant to use it to model the entire system
18:51:52 <lament> i've never seen UML used to model program flow
18:52:16 <ais523> It has diagrams that model the flow of a program, known as sequence diagranms, that look like they're strictly ordered but in fact only place an incomplete ordering on the program
18:52:38 <ais523> and people keep trying to change the notation for loops because they don't like the official one
18:52:43 <lament> heh
18:53:09 <ais523> They are written in terms of passing messages around, but you can't send a message to the user
18:53:32 <ais523> You have to communicate to the user by returning from the message and then waiting for the user to send you another one
18:53:41 <lament> oh
18:53:49 -!- SevenInchBread has quit ("haaaaaaaaaa").
18:53:53 <ais523> so you'd effectively need to write an interpreter rather than a program to do what I've written above
18:53:58 <lament> so add a dummy user object
18:54:21 <ais523> That doesn't help, because it can't communicate with the user either except by having a message sent to it
18:54:55 <ais523> and sending messages while there's still methods running is impossible to draw, as far as I know
18:55:04 <lament> doesn't that approach fail just as badly with real-world programs as with your example?
18:55:23 <ais523> As far as I can tell, yes, but there are normally ways to work around it
18:55:53 <ais523> If you think in terms of a Microsoft-like GUI, where the user tells the system to do something, it does it, and then gives feedback, it actually makes some sort of sense
18:56:28 <ais523> But it's very easy to get confused and draw an impossibilty with the diagram still seeming to make perfect sense
18:56:59 <lament> but even microsoft-like GUIs have state
18:57:26 <ais523> You're allowed to store state in the objects (in fact, you have to), you just can't communicate with the user while there's anything on the call stack
18:57:48 <ais523> So a hideously recursive function like mine where the stack is the most sensible place to store data is pretty much worst-case
18:58:24 <lament> but isn't "waiting for user input" an extremely common hting to do?
18:59:00 <lament> even in a GUI, it happens
18:59:09 <lament> sometimes
19:00:02 <oerjan> can you do continuation passing style?
19:00:23 <lament> can you model a GOTO? :)
19:00:24 <ais523> lament: More often than it should, in my experience
19:00:44 <ais523> oerjan: probably, but it would clutter the diagram awfully
19:01:17 <ais523> lament: No, you can't. It's kind of tricky to even model an IF in a complicated diagram.
19:02:10 -!- ais523 has quit ("#esoteric made me miss my bus yesterday. It was worth it, though.").
19:02:18 <lament> o_O
19:02:44 <lament> #esoteric made me kill and eat my little brohter. It was worth it, though!
19:03:12 <GregorR> Yum
19:03:49 <oerjan> of course it was worth it, but what has #esoteric to do with it?
19:05:20 <lament> the subliminal messages you keep sending me
19:05:44 <oerjan> (Disclaimer: I have no little brothers.)
19:05:57 <lament> that brainwash me into becoming a cruel maniac fratricidal antropophage
19:05:57 <oerjan> Oh those
19:06:30 <lament> i have no little brothers, either!
19:06:39 <lament> none no more!
19:08:40 <oerjan> There is no such thing as a subliminal message.
19:08:53 <oerjan> The gnomes have made that abundantly clear to me.
19:12:26 <oerjan> And now we return to our regularly scheduled programming.
19:14:26 <lament> NOOOO!!! NOT THE REGULARLY SCHEDULED PROGRAMMING!! AAARGH
19:16:15 <oerjan> If you stop whining and behave properly you _may_ be allowed to choose your language. Otherwise, we will be winding up the C***L compiler shortly.
19:18:57 -!- goban has joined.
19:19:12 <oklopol> with a random number that is not turing complete
19:19:20 <oklopol> i mean the X thing
19:19:24 <oklopol> oerjan
19:20:21 <oklopol> you will have to make all the 256 programs at once and i'm sure perl isn't flexible enough to allow any of the 256 chars
19:20:35 <oerjan> did you read my wiki post a moment ago?
19:20:42 <oklopol> errrr no :P
19:39:16 -!- UpTheDownstair has changed nick to nazgjunk.
19:45:22 -!- crathman has quit ("Chatzilla 0.9.77 [Firefox 2.0.0.1/2006120418]").
19:45:26 -!- oerjan has quit ("Good night").
20:09:53 -!- pgimeno has quit (zelazny.freenode.net irc.freenode.net).
20:09:54 -!- Sukoshi has quit (zelazny.freenode.net irc.freenode.net).
20:09:54 -!- GregorR has quit (zelazny.freenode.net irc.freenode.net).
20:09:54 -!- EgoBot has quit (zelazny.freenode.net irc.freenode.net).
20:15:37 -!- pgimeno has joined.
20:15:37 -!- Sukoshi has joined.
20:15:37 -!- GregorR has joined.
20:15:37 -!- EgoBot has joined.
21:37:15 -!- Sgeo has joined.
21:41:45 -!- meatmanek has quit (Read error: 54 (Connection reset by peer)).
21:43:24 -!- meatmanek has joined.
21:47:55 -!- ShadowHntr has joined.
22:06:41 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
22:31:24 -!- sebbu2 has joined.
22:33:04 <bsmntbombdood> foo
22:50:41 -!- sebbu has quit (Connection timed out).
23:10:17 -!- digital_me has joined.
23:13:21 -!- sebbu2 has quit (Client Quit).
23:14:17 -!- digital_me has quit (Client Quit).
23:14:37 -!- digital_me has joined.
23:51:22 -!- ShadowHntr has quit ("End of line.").
â†2007-02-21 2007-02-22 2007-02-23→ ↑2007 ↑all