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