←2008-05-21 2008-05-22 2008-05-23→ ↑2008 ↑all
00:03:49 -!- fizzie has quit (leguin.freenode.net irc.freenode.net).
00:05:32 -!- fizzie has joined.
00:30:14 -!- fizzie has quit (leguin.freenode.net irc.freenode.net).
00:35:19 -!- ihope has joined.
00:35:19 -!- fizzie has joined.
00:35:21 -!- ihope has quit ("Reconnecting…").
00:35:32 -!- ihope has joined.
00:35:40 <ihope> Ello.
00:35:51 * ihope kicks a small netsplit
00:44:46 <ehird> Heh
00:45:05 <GregorR> ehird: What about Plof 3?
00:45:24 <ehird> GregorR: Is it snuggly
00:46:17 <GregorR> If by "snuggly", you mean "slow", then yes :P
00:46:40 <ehird> GregorR: What would you say to an implementation that consists of 5 tiers.
00:46:41 <ehird> In C.
00:46:49 <ehird> The first tier is ye-olde optimized Forth-alike
00:46:52 <ehird> then PSL on top of that
00:46:58 <ehird> then Ploftermediate on top of that
00:47:02 <ehird> then the magical layer
00:47:03 <ehird> then Plof
00:47:52 <GregorR> I see no reason why the PSL has to be compiled to something Forth-alike ...
00:48:10 <ehird> GregorR: Because i'd micro-optimize it to silly.
00:48:12 <ehird> :D
00:48:47 <GregorR> Tell yah what - write a PSL interpreter however you want, and if you succeed (and I have time), I'll write the parser framework for it.
00:48:57 <GregorR> :P
00:49:13 <ehird> GregorR: And make that the official Plof 3 if it is 100% compatible, easy to maintain, and fast?
00:49:14 <ehird> :-P
00:49:36 <GregorR> It doesn't even have to be 100% compatible if the changes are improvements :P
00:50:29 <ehird> GregorR: I could replace PSL with a forth-alike. :-P
00:51:12 <GregorR> I don't consider that change an improvement >_>
00:54:05 -!- timotiis has quit (Read error: 110 (Connection timed out)).
00:54:22 <ehird> GregorR: I would make it snuggly
00:55:12 <GregorR> Besides, PSL is a Forth-alike ... only with first-class procedures and non-reassignable words and such X-P
00:55:39 <ehird> GregorR: Oh mine would have stuff like that.
00:55:43 <ehird> But it's be sluffy.
00:56:03 <GregorR> Is PSL so offensive to you? ^^
00:58:17 <GregorR> That's a "yes" :P
00:58:30 <ehird> GregorR: Yes.
00:58:38 <ehird> GregorR: PSL is probably hideously inefficient for the plof that runs on opt.
00:58:38 <ehird> :P
00:58:39 <ehird> *top
00:59:04 <GregorR> I did create PSL specifically for Plof ...
00:59:53 <ehird> GregorR: But if it's so slow you probably did something wrong.
01:00:29 <GregorR> It's a crummy GC and a simple switch-based interpreter.
01:00:45 <GregorR> Most of the slowness is from the GC, not the interpreter anyway.
01:02:58 <ehird> GregorR: I bet it's still psl's fault
01:03:00 <ehird> :-P
01:03:07 <ehird> Oh, and I'll implement AWESOMEGC
01:03:10 <ehird> which I will invent as I go
01:03:11 <ehird> and will be awesome
01:03:49 <GregorR> I'm not so stuck to PSL that I'm against the concept of replacing it, I just don't see why your proposed replacement is helpful :P
01:04:37 <oklopol> because ehird's is better
01:04:39 <oklopol> so much better
01:04:50 <ehird> oklopol: exactly, you get it
01:04:55 <oklopol> !
01:05:02 <oklopol> (Huh?)
01:05:07 <GregorR> :P
01:05:41 <oklopol> btw, you know what's fun
01:05:47 <oklopol> when you have a programming project
01:05:53 <oklopol> very simple, one night job
01:05:57 <GregorR> AND THEN MURDER
01:06:04 <oklopol> and then, someone joins the group with absolutely no skill
01:06:15 <GregorR> And /then/ murder.
01:06:20 <oklopol> and starts asking me help when trying to figure out the difference between two dates.
01:06:42 <GregorR> And /then/ murder?
01:06:49 <oklopol> GregorR: i'm not actually sure what i should answer to something like that, i'm rarely the *receiving* end
01:07:04 <oklopol> but well
01:07:16 <oklopol> was quite close to murder when i saw his first attempt at it.
01:07:24 <GregorR> Uh oh :)
01:07:25 <oklopol> i almost wanna paste it here...
01:07:42 <GregorR> Come oooooooooon
01:07:42 <ehird> oklopol: do eet
01:07:44 <GregorR> Scrub names
01:07:50 <oklopol> http://www.vjn.fi/pb/p545635166.txt no names
01:07:54 <GregorR> Also to the daily WTF
01:08:05 <oklopol> but really, java code from a guy with about two years of university
01:08:12 <oklopol> real advertisement for the uni..
01:08:13 <oklopol> :D
01:08:26 <oklopol> hmm
01:08:31 <oklopol> it's in finnish
01:08:40 <oklopol> i didn't notice, sorry
01:08:41 <oklopol> anyway
01:09:01 <oklopol> it calculates how much a movie is over its due
01:09:04 <oklopol> date
01:09:09 <oklopol> hmm due date
01:09:19 <oklopol> the day you're supposed to return it
01:09:35 <oklopol> i should translate that
01:09:39 <GregorR> Yes, that == due date
01:10:04 <GregorR> It appears to be wildly thrashing a database at least.
01:10:21 <ehird> oklopol: you know the real problem?
01:10:33 <oklopol> String kys3 = "UPDATE sakkoja set sakkoja=b;" <<< i especially like this
01:10:34 <ehird> oklopol: your database fields are in finnish
01:10:39 <ehird> :-P
01:10:47 <oklopol> i don't see that as a problem
01:10:52 <ehird> just kidding ofc
01:10:57 <oklopol> anyway, b is not even set to any real value here
01:11:04 <ehird> oklopol: Kanta is a pretty amusing way to spell SQL, though.
01:11:05 <oklopol> and it's used inside the string :)
01:11:15 <oklopol> kanta = database
01:11:30 <oklopol> well, tietokanta = database, kanta just means the same
01:11:38 * GregorR wonders why Finnish has such -- ahh, that explains it.
01:11:59 <oklopol> tieto = data, sounds quite similar actually, although i'm not sure there's a link
01:13:16 <oklopol> heh, a separate word for a database would be quite weird
01:13:29 <oklopol> anyway, in my opinion there's no reason to name things at all
01:13:32 <oklopol> just number them
01:13:47 <oklopol> if someone can't remember the numbers, they suck, not my problem!
01:14:01 <ehird> oklopol: anyway.
01:14:04 <oklopol> anyways, i'll be doing some sleeping now
01:14:05 <oklopol> anyway?
01:14:08 <ehird> 'SQL' is a pretty good name for something that runs sql
01:14:15 <oklopol> ehird: lolwut?
01:14:24 <oklopol> what would you change to sql there?
01:14:26 <oklopol> eh
01:14:31 <ehird> oklopol: Kanta->SQL
01:14:44 <oklopol> SQL would be a weird name for the database
01:15:52 <oklopol> anyway, 1) if it had been named by me, it'd be in english, but it's named by the lecturer 2) sql would suck as the name 3) your mother
01:15:56 <oklopol> see ya!
01:15:57 <oklopol> ->
01:16:18 <ehird> 4) oklopol's mothr
01:17:07 <GregorR> 5) ehird's mothra
01:17:26 <ehird> 7)
01:17:26 <dbc> Trying to decide whether to write a faster factorial program in brainfuck. It shouldn't be hard, but I already have a long brainfuck to-do list that I'm putting off.
01:17:34 <ehird> dbc: a brainfuck todo list
01:17:35 <ehird> amazing
01:17:45 <GregorR> Hahaha
01:18:05 <dbc> :)
01:19:07 <ehird> dbc: how long is it?
01:19:14 <ehird> and does it involve 'write an OS'?
01:19:19 <dbc> Nope.
01:19:28 <ehird> something about posix^W^W^Winsert a meme here
01:19:31 <ehird> err
01:19:32 <ehird> PSOX
01:19:33 <ehird> heh
01:19:41 <Sgeo> Hm?
01:19:46 <GregorR> poinsert a meme here?
01:19:58 <GregorR> (Yeah yeah, I know ^W is word :P
01:20:01 <GregorR> )
01:20:31 <Sgeo> "something about PSOX" is a meme now?
01:20:38 <Sgeo> (I have PSOX on highlight, btw)
01:20:57 <GregorR> PSOX Awesome, I'll prefix everything I say with "PSOX" from now on.
01:21:22 <dbc> I have -play winning tictactoe, -play guess-a-number, -rethink the start of dbfi, -rewrite a subset of BF-BASIC to produce concise code so Lost Kingdom to fit on a floppy again, -fast unlimited-precision e generator...
01:21:47 <Sgeo> What's dbfi?
01:22:01 <dbc> -99-bottles analogue starting with "15 men on a dead man's chest" because I prefer rum to beer...
01:22:24 <Sgeo> Also, I believe Lost Kingdom has junk like >< and <> and -+ and +- and ]..[
01:22:25 <dbc> dbfi is my brainfuck interpreter in brainfuck.
01:22:48 <GregorR> "15 men on a dead man's chest" ... rum slogan, or necrophilic gay porn?
01:22:48 <Sgeo> Just get rid of the junk recursively, and how much smaller would Lost Kingdom get?
01:23:12 <dbc> Sgeo I think I tried it and I think it doesn't fit on a floppy.
01:23:40 <dbc> Anyway, rewriting BF-BASIC would save a lot more code.
01:24:39 <dbc> Gregor no reason it has to be "or".
01:24:53 <ihope> GregorR: I think you're attributing to much meaning to the word "on".
01:25:49 <GregorR> ^^
01:26:06 <ehird> dbc: what is BF-BASIC written in?
01:26:09 <dbc> Also I've been meaning to set up a new site starting with a copy of Panu's archive and collecting whatever else I can think of.
01:26:38 <dbc> ehird I think it's in Java but I think I'd probably use bison and C.
01:26:58 <ehird> dbc: Masochist :-)
01:27:01 <ehird> Oh wait, you code in BF.
01:27:13 * GregorR wurve C
01:28:24 <dbc> The other thing is I try to keep standalone programs under 1k. Doing e or tictactoe in that space will be hard.
01:32:12 <dbc> (sadist actually) :)
01:37:41 <ehird> dbc: You could invent the etic language.
01:37:42 <ehird> e=e
01:37:45 <ehird> t=tic tac toe
01:44:49 <lament> teeeeeee
01:46:24 <ehird> lament: tic tac E
01:56:55 <ehird> Bye for today :-)
01:57:10 -!- ehird has quit (Remote closed the connection).
03:41:25 -!- _13121_ has joined.
03:42:58 -!- _13121_ has quit (Client Quit).
04:04:41 -!- fizzie has quit (leguin.freenode.net irc.freenode.net).
04:04:41 -!- lifthrasiir has quit (leguin.freenode.net irc.freenode.net).
04:04:42 -!- ihope has quit (leguin.freenode.net irc.freenode.net).
04:04:42 -!- B-rat has quit (leguin.freenode.net irc.freenode.net).
04:04:44 -!- cmeme has quit (leguin.freenode.net irc.freenode.net).
04:04:45 -!- RodgerTheGreat has quit (leguin.freenode.net irc.freenode.net).
04:05:00 -!- ihope has joined.
04:05:00 -!- RodgerTheGreat has joined.
04:05:00 -!- cmeme has joined.
04:05:00 -!- B-rat has joined.
04:05:00 -!- fizzie has joined.
04:07:45 -!- ihope has quit (leguin.freenode.net irc.freenode.net).
04:07:45 -!- cmeme has quit (leguin.freenode.net irc.freenode.net).
04:07:45 -!- RodgerTheGreat has quit (leguin.freenode.net irc.freenode.net).
04:07:45 -!- B-rat has quit (leguin.freenode.net irc.freenode.net).
04:07:46 -!- fizzie has quit (leguin.freenode.net irc.freenode.net).
04:12:19 -!- RodgerTheGreat has joined.
04:29:39 -!- fizzie has joined.
05:28:08 -!- ihope has joined.
05:28:08 -!- cmeme has joined.
05:28:18 -!- lifthrasiir has joined.
05:44:25 -!- B-rat has joined.
05:53:06 -!- lifthrasiir has quit (leguin.freenode.net irc.freenode.net).
05:53:11 -!- cmeme has quit (leguin.freenode.net irc.freenode.net).
05:53:11 -!- ihope has quit (leguin.freenode.net irc.freenode.net).
05:53:35 -!- lifthrasiir has joined.
05:53:35 -!- ihope has joined.
05:53:35 -!- cmeme has joined.
05:54:19 -!- ben has joined.
05:55:34 -!- ben has changed nick to GreaseMonkey.
05:56:54 -!- GreaseMonkey has quit (Remote closed the connection).
06:28:48 -!- GreaseMonkey has joined.
06:38:55 -!- fizzie has quit (leguin.freenode.net irc.freenode.net).
06:46:56 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
06:56:35 -!- fizzie has joined.
06:58:11 -!- lifthrasiir has quit (leguin.freenode.net irc.freenode.net).
06:58:12 -!- cmeme has quit (leguin.freenode.net irc.freenode.net).
06:58:12 -!- ihope has quit (leguin.freenode.net irc.freenode.net).
06:58:56 -!- ihope has joined.
06:58:56 -!- cmeme has joined.
06:59:10 -!- lifthrasiir has joined.
07:38:09 -!- fizzie has quit (leguin.freenode.net irc.freenode.net).
07:45:36 -!- fizzie has joined.
07:49:32 -!- GreaseMonkey has quit (Remote closed the connection).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:04:19 -!- Sgeo has quit (Remote closed the connection).
08:25:38 -!- kar8nga has joined.
08:41:32 -!- olsner has quit ("Leaving").
08:51:32 -!- GreaseMonkey has joined.
09:22:16 -!- Iskr has joined.
09:56:59 -!- Judofyr has quit.
09:58:25 -!- Judofyr has joined.
10:28:45 -!- GreaseMonkey has quit ("Unisex.").
11:03:30 -!- kar8nga has left (?).
11:11:28 -!- timotiis has joined.
11:28:42 -!- Slereah_ has joined.
11:29:20 <Slereah_> Hello sirs
11:29:53 <Slereah_> I am thinking, should the link to the friends of brainfuck mailing list be erased?
11:42:50 <AnMaster> hm?
11:45:13 <Slereah_> "Friends of brainfuck"
11:45:25 <Slereah_> A mailing list which has not been active for years
11:45:42 <Slereah_> But still on the community portal of the esowiki
11:46:00 <Slereah_> Also ##brainfuck, on that matter.
11:53:56 <AnMaster> hm
11:54:49 <AnMaster> well brainfuck has been so analyzed and worked on that it is not very interesting any more. I mean, you can't make a more optimizing compiler for it really. the language is done, finished
11:55:57 <AnMaster> Slereah_, agree?
11:56:28 <Slereah_> All that remains to be done is the actual Brainfuck CPU.
11:56:32 <AnMaster> sure it is useful still, implementing a interpreter for it in a new language, to prove it is "brainfuck-complete"
11:56:56 <AnMaster> well I think someone did that? or maybe it was a interpreter on a PIC or something like that
11:57:53 <Slereah_> There's schematics. And a version with like less than ten bytes of memory
11:58:14 <AnMaster> that's impressive
11:58:38 <Slereah_> But no good old CPU to do sum BF on it
11:58:54 <AnMaster> what about a FPGA?
11:58:57 <AnMaster> or whatever they are called
11:59:13 <Slereah_> FPGA?
11:59:17 <AnMaster> ah that's it
11:59:28 <AnMaster> programmable hardware, uses vhdl if I remember correctly?
11:59:39 * AnMaster is no expert on such things
12:01:46 <Slereah_> NOT GOOD ENOUGH
12:01:59 <AnMaster> ?
12:02:02 <Slereah_> Why would you use a programmable hardware for Brainfuck?
12:02:23 <AnMaster> Slereah_, well I mean make such a hardware that can execute bf
12:02:38 <Slereah_> Oh.
12:03:36 <AnMaster> Slereah_, it should be a lot cheaper than constructing an actual cpu for it
12:04:13 <AnMaster> because constructing a single special made cpu would cost a LOT of money
12:04:50 <Slereah_> And using any other language would be more efficient.
12:05:24 <AnMaster> nah, I can think of worse
12:05:31 <AnMaster> what about that boolfuck?
12:07:30 <Slereah_> Boolfuck is Brainfuck.
12:07:55 <Slereah_> Changing the symbol set doesn't do much!
12:08:41 <AnMaster> reduced brainfuck, you can remove - for example
12:08:47 <AnMaster> and a lot more
12:08:55 <AnMaster> see page on esolang about it
12:09:01 <Slereah_> I know.
12:09:12 <Slereah_> You can also combile + and >
12:09:23 <Slereah_> But that's not really interesting.
12:09:45 <AnMaster> hm
12:10:42 <Slereah_> Too much was done on BF.
12:10:58 <Slereah_> Another language must rise.
12:11:13 <AnMaster> befunge?
12:12:08 <Slereah_> Maybe, though it is already quite popular.
12:12:23 <Slereah_> It's something like Brainfuck-Befunge-INTERCAL
12:12:41 <Slereah_> But Brainfuck hogs all the spotlight.
12:14:18 <AnMaster> Slereah_, make me a befunge98 *compiler*
12:14:23 <AnMaster> that passes mycology
12:14:26 <AnMaster> interpreter is easy
12:14:39 <Slereah_> I can't program.
12:14:49 <AnMaster> what on earth are you doing here then? ;P
12:14:56 <Slereah_> I can pretend to!
12:14:59 <AnMaster> hah
12:15:02 <Slereah_> But in Python.
12:15:09 <AnMaster> ah yes predent
12:15:11 <AnMaster> pretend*
12:15:12 * AnMaster runs
12:15:17 <Slereah_> And in my languages.
12:15:23 <Slereah_> Since they are awesome and all.
12:15:35 <AnMaster> well if you made a language it is rather easier
12:15:50 <AnMaster> because it will match how you think, and you will know all the details
12:16:22 <Slereah_> Well, got to go.
12:16:22 <Slereah_> Exams.
12:16:30 <AnMaster> cya
12:17:49 <oklopol> necrophilic gay orgy does sound like a nice project
12:20:07 <oklopol> 13:55… AnMaster: sure it is useful still, implementing a interpreter for it in a new language, to prove it is "brainfuck-complete" <<< once again, to split hairs, this doesn't necessarily prove even brainfuck-completeness
12:20:36 <oklopol> also, to split hairs, you can always make a better compiler, because you can never make a perfect one
12:21:20 <oklopol> boolfuck is on booleans, changes the way you program quite a bit, actually
12:21:34 <oklopol> because in brainfuck, you usually don't have to care about carries
12:21:50 <oklopol> and get O(n) operations, without bignums, but easier to program
12:23:44 <oklopol> i want a bitxtreme computer...
12:37:59 -!- timotiis has quit (Read error: 110 (Connection timed out)).
13:28:32 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
13:29:44 <AnMaster> oklopol, a what computer?
13:56:15 -!- kar8nga has joined.
14:07:43 -!- BMeph has joined.
14:37:09 -!- Slereah_ has joined.
14:37:28 <Slereah_> oklopol : How does a BF interpreter not prove BFCness?
14:37:49 <Slereah_> also, couldn't you make a bitxtreme computer with like two marbles and four cups?
14:46:18 -!- jix has joined.
14:54:13 -!- RedDak has joined.
14:57:53 <oklopol> Slereah_: it only proves BFCness if you can also execute arbitrary bf programs within it.
14:58:17 <oklopol> a language where you can make an interpreter, but not use it, it not bfc
14:58:36 <oklopol> it's *compilation* from bf into a language that proves bfcness
14:58:46 <oklopol> and i guess you could make bitxtreme like that
15:00:14 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
15:00:34 -!- Slereah_ has joined.
15:09:37 <Slereah_> Wouldn't an interpreter be able to do an arbitrary BF program by definition?
15:11:22 -!- BMeph has quit (Remote closed the connection).
15:12:45 -!- BMeph has joined.
15:24:32 <pikhq> Slereah_: An actual interpreter, sure.
15:26:23 <Slereah_> I was thinking of making a fake one, out of bamboo and coconuts.
15:26:56 * pikhq notes that Turing completeness does not take a lot of stuff. . .
15:27:18 <pikhq> Hell, a man and an abacus is Turing complete with the right instructions.
15:27:26 <pikhq> (and an infinitely large abacus)
15:27:52 <pikhq> (and a man with an infinite life span)
15:28:13 <Slereah_> Wouldn't the man alone be TC?
15:28:19 <Slereah_> The abacus doesn't do much
15:28:35 <pikhq> It's storage.
15:28:49 <Slereah_> So's a tape.
15:28:53 <pikhq> True.
15:29:00 <Slereah_> Or Rainman.
15:29:07 <pikhq> Not really.
15:29:22 <pikhq> That's fairly finite, actually.
15:29:44 <Slereah_> Unless an INFINITE RAINMAN
15:29:48 <Slereah_> Infinitely retarded.
15:30:03 <pikhq> Autism != mental retardation.
15:31:00 <Slereah_> It is if you're speaking internet vernacular.
15:32:13 <pikhq> Which you, clearly, are not.
15:32:41 <pikhq> The punctuation, capitalisation, and proper spelling give it away.
15:32:49 <pikhq> You're speaking English, not Internet.
15:33:56 <Slereah_> Orly?
15:34:12 <pikhq> *Now* you're speaking Internets.
15:34:30 <dbc> For a brainfuck interpreter in language X to prove language X Turing-complete, you don't need that interpreter to be able to execute any brainfuck program. It's enough if it can execute ONE brainfuck program which is itself an interpreter for a Turing-complete language, on any input.
15:35:29 <Slereah_> Well, it doesn't need to be.
15:35:47 <Slereah_> You could make a BF interpreter that only accepts a BF interpreter.
15:35:50 <Slereah_> that only accepts a BF interpreter.
15:35:51 <Slereah_> that only accepts a BF interpreter.
15:35:52 <Slereah_> that only accepts a BF interpreter.
15:35:52 <Slereah_> that only accepts a BF interpreter.
15:35:53 <Slereah_> that only accepts a BF interpreter.
15:35:53 <Slereah_> that only accepts a BF interpreter.
15:35:54 <Slereah_> that only accepts a BF interpreter.
15:35:55 <Slereah_> that only accepts a BF interpreter.
15:35:57 <Slereah_> that only accepts a BF interpreter.
15:35:59 <Slereah_> ...
15:36:26 <Slereah_> WHICH CAN ACCEPTS ANY INPUT THEN
15:36:51 <dbc> Sure.
15:37:36 <pikhq> You know, some days I get a kick out of Trusted Computing.
15:37:56 <pikhq> Trusted Computing: Making your computer a non-Turing machine since '98.
15:38:09 <dbc> But that would be MORE work. Whereas I can easily imagine it being easier, in some language X, to write a brainfuck interpreter that only accepts brainfuck programs up to, say, 256 commands long.
15:38:47 <Slereah_> What, like a bitxtreme BF interpreter?
15:38:57 <Slereah_> Although that would be 1 command long.
15:39:16 <Slereah_> In the bitchanger way.
16:01:15 <oklopol> hehe, that guy i mentioned last night, the one with the funny failure of a java code, he's insisting on making the function to return a loaned video in the database to *prompt* the movie a certain customer wants to return
16:01:36 <oklopol> i mean, the fucking first thing they teach at the university is never to mix interface and functionality
16:01:41 <oklopol> especially when there's no need to
16:02:28 <oklopol> but he has a fucking loop there in case the customer wants to return many videos, and a fucking SCANNER class he insisted on making specifically for the fucking mothersinking function
16:03:16 <oklopol> mostly i'm angry because i simply cannot get him to understand what's wrong with it
16:03:41 <Slereah_> Hell, I can't even understand what you're talking about.
16:03:50 <oklopol> well
16:03:50 <Slereah_> You'll soon turn into the incredible hulk!
16:04:06 <oklopol> instead of return_video(String customer, String movie_to_return)
16:04:08 <oklopol> he does
16:04:16 <oklopol> return_video(String customer)
16:04:17 <Slereah_> First thing they taught us here was Newtonian mechanics!
16:04:24 <oklopol> and prompts the movie to return inside the function
16:06:43 <oklopol> i mean, why mix the IO monad in a simple database operation
16:06:46 <oklopol> hmm
16:06:53 <oklopol> i guess you'd do that with the IO monad too
16:07:08 <Slereah_> Monads?
16:07:11 * Slereah_ flees
16:08:15 <oklopol> Slereah_: no! they won't bite
16:09:01 <Slereah_> That's what you said last time!
16:09:02 <oklopol> Slereah_: an interpreter will be able to do anything, but if you cannot give it any program to run, it can't run anything...
16:09:17 <Slereah_> ... yes?
16:09:40 <Slereah_> Do you have a particular example in min,d?
16:10:05 <oklopol> dbc: For a brainfuck interpreter in language X to prove language X Turing-complete, you don't need that interpreter to be able to execute any brainfuck program. It's enough if it can execute ONE brainfuck program which is itself an interpreter for a Turing-complete language, on any input. <<< once again not enough if you cannot actually give it any program to run
16:10:46 <oklopol> Slereah_: sure
16:10:59 <oklopol> have a language X with two instructions
16:11:08 <oklopol> and a stack
16:11:16 <oklopol> the first on adds a "+" on the stack
16:11:19 <oklopol> *one
16:11:22 <oklopol> it's called "+"
16:11:30 <oklopol> the second one is the "b" operation
16:11:37 <oklopol> it runs the contents of the stack as a bf program
16:11:40 <Slereah_> Is it random?
16:11:51 <oklopol> b can run any bf program
16:12:08 <oklopol> but... the language is not tc, you *cannot perform arbitrary computation*
16:12:56 <Slereah_> Isn't that a little convoluted as an example?
16:13:00 <oklopol> how so?
16:13:20 <Slereah_> Well, like, in relation with a real esolang.
16:13:33 <Slereah_> which was I suppose what was refered to.
16:13:40 <oklopol> in a real esolang there might be a more subtle limitation on what input you can give your interp from within the language.
16:13:46 <oklopol> but there might be a limit
16:13:58 <oklopol> the point is, making a bf interpreter is not actually a proof.
16:14:20 <Slereah_> Only if you have a nitpicky definition of an interpreter :o
16:14:25 <oklopol> ...
16:14:53 <oklopol> what the fuck do you mean?
16:15:10 <oklopol> (is everyone slow today, or just me?)
16:15:31 <oklopol> Slereah_: in this case you can only create +'s on the stack to run
16:15:35 <Slereah_> Well, interpreters usually don't come as buttons.
16:15:41 <oklopol> ..?
16:15:48 <oklopol> can you elaborate on that?
16:16:01 <Slereah_> When you write one, you actually work to make it possible for it to work
16:16:16 <oklopol> asd
16:16:31 <oklopol> you can make a perfect interpreter in a language where there is no way to actually use it.
16:16:56 <oklopol> you can even test it with, say, lost kingdom, in case it supports that subset
16:17:09 <oklopol> but it might fail on programs that are slightly different
16:17:44 <oklopol> and in case no bf program that is tc itself and can give itself arbitrary input isn't one of the working programs
16:17:52 <oklopol> you don't have bfness proved
16:17:56 <oklopol> bfcness
16:18:43 <Slereah_> Hm.
16:18:43 <oklopol> this is a bit hard to explain, because... i don't think there's anything to explain
16:19:52 <oklopol> isn't it clear it's not tc if you can't actually run arbitrary computation? the fact you can make a bf interp that runs any bf program doesn't prove anything unless you also prove you can give it arbitrary input.
16:19:53 <oklopol> and
16:19:57 <oklopol> if you can give it arbitrary input
16:20:07 <oklopol> you have compiled your language to bf.
16:20:11 <oklopol> congratulations, that's proof
16:20:14 <oklopol> but just the interp is not
16:20:18 <Slereah_> Problem is, your example is a little artificial.
16:20:36 <Slereah_> But I see your point.
16:20:37 <oklopol> what's wrong with it?
16:20:41 <oklopol> my example
16:21:01 <oklopol> i feel you're mixing intuition into this...
16:21:36 <oklopol> in my language's case you can trivially see you cannot make an interesting program on the stack
16:21:58 <oklopol> but let's say you can create any bf program on the stack but it has to have as many +'s as it has -'s
16:22:05 <oklopol> is it trivial it's tc?
16:22:21 <oklopol> but, in a real case the constraint might not be that clear
16:22:38 <oklopol> and... well, in case it was, once again, you could just trivially compile
16:23:12 <oklopol> the point is the interp is not the proof, but the fact you can usually do compilation into input for the bf interp
16:23:50 <oklopol> but really, i was just splitting hairs, you all know this, just perhaps not that... explicitly.
16:24:59 <oklopol> and dbc's point was, for some constraints on the bf program on the stack you can create a non-restricted bf interp within it, with arbitrary input.
16:25:28 <oklopol> or, you can make a bf program with some lesser constraint that allows you to make another level that's again tc
16:25:54 -!- ais523 has joined.
16:25:57 <oklopol> but for some constraints, like my "+"-only, it's clear with even infinite layers it's impossible to get arbitrary computation
16:26:46 <oklopol> Slereah_: do you just see the point or actually feel it?
16:27:51 <Slereah_> Yes.
16:27:59 <ais523> oklopol: I only saw the second half of the sentence, so that makes it kind-of hard for me to get the point
16:28:05 <Slereah_> But it is hard to think of a concrete example
16:28:19 <Slereah_> Because well, there aren't that many languages that aren't TC or BFC.
16:28:20 <oklopol> ais523: i've been monologuing for a while
16:28:37 <ais523> well, in that case I missed most of the monologue
16:28:38 <oklopol> Slereah_: why would you need a more concrete example?
16:28:44 <oklopol> ais523: yes, about 50 lines
16:28:55 <oklopol> i suggest logs, because i want your approval
16:28:58 <oklopol> !
16:29:20 <Slereah_> oklopol : Because well, otherwise, it borders on the theoretical.
16:29:22 <ais523> OK, I'll see if I can get the web browser here to act sanely
16:29:33 <ais523> (/version me if you want to know the horiffic details, and look at the version number)
16:29:39 <oklopol> Slereah_: there could be a language where you can add all brainfuck operators on the stack, and a b-command to run the stackie
16:29:42 <oklopol> but
16:29:49 <oklopol> you can only add them some finite number of times
16:30:02 <oklopol> and you have a set of operations that mix up the stack
16:30:09 <oklopol> duplicate, lift, rotate
16:30:29 <oklopol> depends on the operations whether you can create interesting enough programs
16:30:40 <Slereah_> Is it not BFC?
16:30:52 <oklopol> no, if the set of operations is {}
16:31:11 <ais523> oklopol: how does implementing a Brainfuck interp in something not prove that it's BF-complete?
16:31:13 <oklopol> if it's {"fetch *any* operation from the stack and duplicate it on top of the stack"}
16:31:16 <oklopol> then it's tc
16:31:28 <ais523> hmm... it depends on the definition of BF-complete
16:31:29 <oklopol> ais523: because there might be constraints on what you can give it as input
16:31:42 <ais523> ah, I was thinking of things like sed
16:31:45 <oklopol> you might not be able to actually use it, even though it's there
16:31:45 <ais523> it's BF-complete
16:31:55 <ais523> but you can't compile all BF programs into sed
16:32:05 <oklopol> aha?
16:32:09 <oklopol> how does that work?
16:32:12 <ais523> because it needs at least one byte of input to do anything
16:32:19 <ais523> there are BF programs that output despite no input
16:32:23 <ais523> but no sed programs that do that
16:32:24 <oklopol> ah.
16:32:30 <ais523> OTOH, I'd still call it BF-complete
16:32:40 <oklopol> well, *that* is a bit artificial.
16:32:44 <ais523> because you can just append a newline, or something trivial like that, a coding of the input
16:32:52 <Slereah_> BUT WHAT IF YOU ONLY HAVE +'s, WHAT THEN
16:33:23 <oklopol> Slereah_: what? :D did i leave a sentence unfinished?
16:33:49 <Slereah_> Nah. I'm just screwing with you :D
16:34:15 <oklopol> ais523: well that's clearly *tc* at least, i guess that's the real point here, because io makes bf a bit too concrete for this conversation
16:34:29 <ais523> yes, I agree that it's blatantly TC
16:34:36 <ais523> as for your +b lang, I'd say it isn't BF-complete
16:34:44 <ais523> it cannot run arbitrary BF programs
16:34:49 <ais523> and you cannot write a BF interp in it
16:34:50 <oklopol> yeah, that's the point
16:35:00 <oklopol> eh
16:35:03 <oklopol> hmm
16:35:04 <ais523> it has a BF-interp command, but that isn't the same as saying that you can write a BF interp in the language
16:35:14 <oklopol> well
16:35:28 <oklopol> what exactly is the definition of a bf interpreter then?
16:35:39 <oklopol> i assumed it is that it's given a string, and it runs it as bf.
16:35:43 <ais523> that's an interesting point
16:35:49 <ais523> I'd say it's a function that maps an input to an output
16:35:57 <oklopol> okay, well b is exactly that.
16:36:00 <ais523> where the input is a BF program and its input (maybe separated by !)
16:36:12 <ais523> your language has an embedded BF interpreter, but no way to use it
16:36:17 <AnMaster> <ais523> but no sed programs that do that <-- sure? I think gsed can do that?
16:36:17 <oklopol> yes
16:36:31 <ais523> AnMaster: maybe I've been using it wrong
16:36:38 <AnMaster> I'm far from a sed expert though
16:36:43 <oklopol> ais523: my point was, the interpreter is not necessarily the proof, because you might not be able to give it arbitrary input.
16:36:52 <ais523> no, you have to prove that the interpreter works
16:36:56 <oklopol> umm no
16:37:01 <ais523> that involves being able to interpret arbitrary input
16:37:01 <oklopol> well
16:37:09 <ais523> otherwise it isn't a BF interp
16:37:13 <ais523> but an interp for a subset of BF
16:37:16 <oklopol> yes, but you also have to prove you *can give it any input*
16:37:23 <ais523> yes, you do
16:37:38 <oklopol> so it's two proof, after which you have compilation pretty much done.
16:37:43 <Slereah_> But does such a scenario happens often?
16:37:45 <ais523> hmm... I see the problem, I'm talking about a BF interp as a program written in a language and running within the constraints of that language
16:37:47 <oklopol> and that *is* clearly a proof
16:37:53 <ais523> whereas you're talking about a BF interp as something inside the language
16:37:57 <Slereah_> "Oh noes, I have no way to feed input into my interpreter!"
16:38:11 <oklopol> Slereah_: no, because usually languages have easy facilities for making constants.
16:38:20 <Slereah_> I mean, if you write a BF interpreter.
16:38:26 <ais523> I'd say another way to prove a language BF-complete is if you can compile all BF programs into it
16:38:32 <Slereah_> It will usually have some sort of way to simulate a tape
16:38:44 <Slereah_> And some sort of numbers on it
16:38:45 <ais523> <oklopol>Slereah_: no, because usually languages have easy facilities for making constants.
16:38:55 <ais523> we're in #esoteric, you probably shouldn't assume that
16:38:57 <Slereah_> But what if unusually?
16:39:10 <Slereah_> But, if you can write a BF interpreter in it
16:39:14 <AnMaster> what language is this about?
16:39:23 <AnMaster> I mean, apart from bf
16:39:25 <oklopol> ais523: even in esolangs, if you can make a bf interp, it's usually easy to create an arbitrary string.
16:39:27 <oklopol> well
16:39:29 <ais523> well, all BF interps I've seen work by simulating a tape somehow
16:39:32 <Slereah_> If you have no way to make a tape and numbers, how are you going to make an interpreter?
16:39:44 <ais523> often using two stacks
16:40:00 <AnMaster> yeah that could work
16:40:04 <ais523> well, I can imagine a BF interp that analyses the code and translates it into functional code or something that does the same thing
16:40:11 <Slereah_> And if you can make those two, you can probably make a tape with the program on it
16:40:15 <ais523> and the code it translated into has nothing resembling a tape
16:40:21 <ais523> it would be pretty difficult to do, though
16:40:47 <oklopol> hmm, what are you talking about now exactly?
16:40:56 <Slereah_> I'm not sure.
16:40:56 <oklopol> hmm
16:41:03 <ais523> incidentally, and marginally related to this conversation, does anyone know the minimum depth of [] nesting needed to be able to write a BF interp in BF?
16:41:13 <oklopol> well
16:41:28 <oklopol> you can prolly do something like that factor language in just a few characters.
16:41:30 <Slereah_> I'll go sleep on it.
16:41:30 <oklopol> like 30
16:41:38 <oklopol> hmm
16:41:39 <oklopol> right
16:41:40 <oklopol> bf interp
16:41:59 <ais523> another interesting question: what's the shortest possible interp for some TC language in <insert language here>?
16:42:11 <ais523> that is, you can define the TC language yourself to produce the shortest interp possible
16:42:38 <oklopol> yeah, that's always interesting
16:42:45 <ais523> I tried doing it in machine code, got it down to 11 bytes if you append the program to the interp, but then realised that a 0-byte program was a machine-code interp under those rules
16:42:46 <oklopol> even impossible to cheat in
16:42:49 <Slereah_> ais523 : Use b!
16:43:11 <oklopol> Slereah_: you can't cheat like that
16:43:13 <oklopol> sorry
16:43:17 <ais523> well, some langs are going to be easier to golf a TC lang in than others
16:43:19 <Slereah_> OR CAN I?
16:43:22 <oklopol> :D
16:43:30 <oklopol> ais523: well *that* is easy to cheat in
16:43:34 <ais523> e.g. in Perl eval<> interprets the class of one-liner Perl programs, which is TC
16:43:40 <ais523> that's clearly a cheat, though
16:43:46 <Slereah_> What works as a command, though?
16:43:57 <Slereah_> I always found that iota's i was a bit of cheating.
16:44:05 <AnMaster> Slereah_, what is b?
16:44:06 <ais523> Slereah_: in BF, I'd say each of + - < > , . [ ]
16:44:19 <ais523> AnMaster: A hypothetical command that interprets Brainfuck
16:44:31 <AnMaster> ais523, in what language?
16:44:46 <Slereah_> Because there's the underlying lambda, and because i alone doesn't do shit.
16:44:51 <ais523> AnMaster: one oklopol invented as an example, its only other command appended a "+" to the program it interpreted
16:45:08 <ais523> so although b can interpret any BF program, it's only possible to give it programs consisting of only + as input
16:45:28 <ais523> Slereah_: well, it has i and * as commands
16:45:39 <AnMaster> ais523, I did plan a fingerprint for befunge that would be able to interpreter 0gnirts as brainfuck, HQ9X (or whatever that joke language is called), and whitespace
16:45:40 <ais523> but i is rather complicated
16:45:47 <AnMaster> possibly more
16:45:51 <Slereah_> Yes, but i doesn't really do anything on its own
16:45:52 <ais523> AnMaster: it's HQ9+
16:46:00 <AnMaster> ais523, ah yes that was it
16:46:05 <AnMaster> or HQ9++ :D
16:46:12 <Slereah_> You need at least two i's to make it mean something in the language itself
16:46:20 <ais523> AnMaster: I find HQ9++ really difficult
16:46:26 <Slereah_> So it feels a little like a cypher.
16:46:35 <ais523> all the HQ9+ interps I've written actually implement + properly, even though its useful
16:46:36 <AnMaster> ais523, isn't that the one that provides object orientation too?
16:46:40 <ais523> there's always an accumulater in there somewhere
16:46:43 <ais523> AnMaster: yes
16:46:50 <ais523> s/ter/tor/
16:47:30 <AnMaster> ais523, well iirc it said no references will be available to the created object, so I just need to malloc a object and then discard the pointer, intentional memory leak ;)
16:47:48 <ais523> AnMaster: yes, but the description of the object created is kind-of complex
16:48:36 * oklopol would make a lazy interpreter that doesn't actually implement that
16:48:51 <ais523> oklopol: from my point of view, that misses the point
16:49:22 <oklopol> ais523: well, i agree with you, but also, your mother.
16:49:50 <AnMaster> ais523, ah yes, would be hard in C
17:01:09 -!- timotiis has joined.
17:08:02 -!- ehird has joined.
17:22:27 -!- olsner has joined.
18:15:43 -!- Sgeo has joined.
18:16:00 -!- RedDak has quit (Remote closed the connection).
18:37:40 -!- timotiis_ has joined.
19:06:15 -!- timotiis has quit (Read error: 110 (Connection timed out)).
19:11:31 -!- Corun has joined.
19:12:48 -!- jix has quit (Nick collision from services.).
19:12:58 -!- jix has joined.
21:07:18 -!- Iskr has quit ("Leaving").
21:22:38 -!- elissar has joined.
21:23:22 -!- elissar has quit.
21:28:02 -!- BMeph has quit ("Time for me to go home").
21:59:04 -!- BMeph has joined.
22:02:25 -!- kar8nga has left (?).
22:10:37 -!- olsner has quit ("Leaving").
22:52:24 -!- jix has quit ("CommandQ").
23:00:06 -!- BMeph has quit (Read error: 104 (Connection reset by peer)).
23:31:18 -!- ais523 has quit ("not on my usual connection and so I can't spam loads of INTERCAL here").
23:37:13 -!- timotiis_ has quit (Read error: 110 (Connection timed out)).
23:55:39 -!- Judofyr has quit.
23:55:43 -!- ihope has changed nick to ihopin.
23:58:09 -!- ihopin has changed nick to ihope.
←2008-05-21 2008-05-22 2008-05-23→ ↑2008 ↑all