00:08:47 -!- RedDak has quit (Remote closed the connection). 00:53:51 -!- sebbu has quit ("@+"). 01:25:13 -!- cherez has quit ("Leaving."). 02:08:30 -!- calamari has joined. 02:23:30 -!- calamari has quit ("Leaving"). 02:41:12 what haskell book/tutorial should i read? 02:46:59 -!- ihope has quit (Connection timed out). 02:48:22 Jebus. . . 2.6.21 is *now* marked stable in Gentoo. . . 02:48:32 bsmntbombdood: ask in #haskell 02:48:52 they're probably more qualified 02:52:55 probably 04:08:58 -!- cherez has joined. 04:48:24 'night, guys 04:48:39 -!- RodgerTheGreat has quit. 05:08:21 -!- pikhq has quit (Read error: 104 (Connection reset by peer)). 05:09:43 -!- immibis has joined. 05:14:58 -!- pikhq has joined. 05:39:38 -!- immibis_ has joined. 05:53:21 -!- immibis has quit (Nick collision from services.). 05:53:24 -!- immibis_ has changed nick to immibis. 06:18:28 -!- ihope__ has joined. 06:18:43 -!- ihope__ has changed nick to ihope. 06:39:28 -!- GreaseMonkey has joined. 06:54:10 -!- GreaseMonkey has changed nick to thematrixeatsyou. 06:54:24 -!- MichaelRaskin1 has joined. 06:54:49 -!- MichaelRaskin1 has changed nick to MichaelRaskin. 07:02:56 haskell has sooo much syntax 07:03:41 yes, but it's all very reasonable 07:03:43 and pretty 07:03:54 really syntax is not the problem with haskell :) 07:04:08 i'd say it's not reasonable 07:04:33 what about it? 07:04:48 the hugeness 07:06:13 class Eq a where 07:06:13 (==), (/=) :: a -> a -> Bool 07:06:13 x /= y = not ( x == y) 07:06:18 that's pretty? 07:11:51 -!- MichaelRaskin_ has quit (Read error: 110 (Connection timed out)). 07:25:06 bsmntbombdood: where's the hugeness? 07:25:15 the syntax 07:25:22 i see a type class definition, a signature and a function definition. 07:25:47 nearly every language has equivalents. 07:25:56 not as syntax 07:26:03 usually as syntax 07:26:20 -!- ihope has quit (Connection timed out). 07:27:14 there's also terribly ugly whitespace significance, and two completely unrelated uses of () 07:28:13 i'm honestly not sure what's the problem, haskell is just like any other langugae 07:30:43 maybe it's just unfamiliarity 07:31:17 probably. I think haskell is very pretty. 07:34:26 whitespace significance follows somewhat odd rules but leads to consistent pretty indentation 07:35:25 i don't know haskell, but am i allowed to ask: where's the definition of ==? 07:35:49 missing 07:36:03 it's a type class definition 07:36:10 somewhat like an interface 07:36:32 (==) will be implemented for individual types 07:40:16 in plain language, "there's a type class Eq, and any type deriving it will provide two operations, (==) and (/=), that take two values of that type and return a Bool; and x /= y is always defined as not (x == y)" 07:42:14 but i need to sleep. 07:42:22 sleep is for the week 07:42:25 weak 07:42:35 yes. sleep is for the week. 07:42:52 no, weak 07:43:06 i'll go to sleep, be back in a week! 07:47:47 i wish i could sleep for a week 07:47:58 sleep for a week, awake for 2 07:53:54 * immibis gives lament a lecture about interfaces being abstract and not containing implementations 07:54:16 * immibis gives himself a lecture about giving people lectures 07:54:19 lol 07:54:23 * bsmntbombdood smacks immibis 07:54:30 * immibis slaps bsmntbombdood with a rainbow trout 07:54:37 OOP is not about fancy words 07:54:43 * immibis goes to ##topic 07:56:01 * immibis makes everyone autoopped on ##topic 07:58:45 but interfaces still should not contain implementations if you use java 07:58:54 and even if you don't 07:59:00 you shouldn't use java 07:59:06 why not 07:59:07 or use fancy words about oop 07:59:22 * immibis slaps bsmntbombdood with a rainbow trout 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:02 * immibis slaps bsmntbombdood with another rainbow trout because he can 08:00:12 * bsmntbombdood frys then eats the trout 08:00:16 mm, delicious 08:00:20 * immibis notices that catching rainbow trout without a license is illegal in new zealand 08:00:38 * immibis doesn't have a license and doesn't need one anyway because it's only irc 08:01:34 -!- RainbowTroutPoli has joined. 08:01:53 -!- RainbowTroutPoli has changed nick to TroutPolice. 08:02:43 NO SLAPPING WITH RAINBOW TROUTS 08:02:43 NO SLAPPING WITH RAINBOW TROUTS 08:02:44 NO SLAPPING WITH RAINBOW TROUTS 08:02:48 NO SLAPPING WITH RAINBOW TROUTS 08:02:52 NO SLAPPING WITH RAINBOW TROUTS 08:02:56 NO SLAPPING WITH RAINBOW TROUTS 08:02:56 gtfo 08:03:06 -!- TroutPolice has left (?). 08:03:40 * immibis notices that the username is a bit of a give-away 08:03:59 TroutPolice (n=toBogE@...) has left #esoteric () 08:12:04 -!- immibis has quit ("When the chips are down, well, the buffalo is empty"). 08:26:51 -!- immibis has joined. 08:34:49 -!- immibis has quit ("Pull the pin and count to what?"). 08:47:19 -!- cherez has quit ("Leaving."). 09:21:46 -!- Sukoshi` has joined. 10:28:09 -!- thematrixeatsyou has quit ("testing OS, then going to bed, gnight"). 10:51:44 -!- asiekierka has joined. 10:51:48 Hi! 10:51:55 Writing from another P 10:51:56 PC 10:52:00 my is at repair :DDD 10:54:59 I AM DI\]i=\ 10:55:04 s21i123r 10:55:06 sor22r2y2 10:59:23 I am an idiot 11:00:04 -!- asiekierka has quit. 11:00:44 -!- asiekierka has joined. 11:00:53 Sorry for all that. 11:01:04 -!- asiekierka has quit (Client Quit). 11:03:08 -!- asiekierka has joined. 11:03:13 My friend did all thar 11:03:16 that* 11:03:21 -!- asiekierka has quit (Client Quit). 11:09:47 -!- Figs has joined. 11:09:53 hey oklopol 11:10:00 did you ever play my song? :P 11:20:16 -!- Figs has left (?). 11:27:41 -!- ehird` has joined. 11:27:51 -!- ehird` has set topic: Esoteric programming language discussion | FORUM AND WIKI: esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric. 15:08:25 -!- asiekierka has joined. 15:08:30 HI! 15:10:30 -!- McDonalato has joined. 15:11:00 Hi McDonalato! 15:11:13 McDonalato, how's your day? 15:11:17 The acorn is the channel in an animal that eats both plant and animal farm. 15:11:25 asiekierka: What am i to you? Some sort of encyclopaedia or something? Let's change the subject... 15:11:49 McDonalato, okay. Let's talk about rules. What are your rules? 15:11:58 asiekierka: I had the misfortune to talk about rules. What are your rules? 15:12:15 McDonalato: My rules are for you to say your rules. 15:12:27 asiekierka: I wish that i could jump out of things to talk about rules. What are your rules? 15:12:48 McDonalato: Rules are: 1. STFU. 2. Break at least one rule. 15:13:03 asiekierka: Which one of us is the one asking all the judges i've had the misfortune to talk about rules. What are your rules? 15:13:38 McDonalato: You are more intelligent than me! I don't have any rules really though. 15:13:46 asiekierka: My rules are for you to say your rules. 15:14:02 McDonalato: What if i don't have any rules? 15:14:17 asiekierka: You are more intelligent than me! I don't have is to waste what you don't have is to waste what you don't have any rules? 15:14:51 McDonalato: You are false. You are more intelligent than me and Brainf**k haters. 15:14:58 asiekierka: You are more intelligent than me and brainf**k haters. 15:15:16 McDonalato: Don't laugh at me. YOU are more intelligent. 15:15:24 asiekierka: You are false. You are more intelligent. 15:15:38 McDonalato: If you think so... okay. 15:15:49 asiekierka: I am a human being, which means i do what i want to think about your mind. 15:16:09 McDonalato: ... this didn't make sense. 15:16:25 asiekierka: So, who is using the family brain cell at the centre of the process, the rain is part of an ass and a mare breeding. 15:16:49 asiekierka, What were you told about letting that bot talk in here? 15:16:50 It's a flood monster. 15:16:57 what? 15:17:02 I am just talking? 15:17:09 talking!* 15:17:20 STFU ok 15:17:23 You're flooding with a bot that you've been kicked for flooding with before 15:17:32 if lament will say something then i will make him quit 15:17:36 flooding? 15:17:41 He dosen't flood 15:17:44 i just talk with him 15:17:51 about 20 messages you/bot in a row 15:18:05 so you sho--- oh wait 15:18:43 STFU, ehird`. 15:18:47 -!- McDonalato has left (?). 15:18:57 -!- Tritonio has joined. 15:19:08 It's my new bot? 15:19:13 he is so intelligent 15:19:24 nope 15:19:25 that's not your bot 15:19:27 it's not 15:19:30 Tritonio!!! 15:20:05 -!- blahbot` has joined. 15:22:16 What about esoteric-blah? 15:22:24 not there too 15:22:39 blah = halb = hlab = lab = bal = bol = bot 15:22:41 -!- puzzlet has joined. 15:23:26 -!- puzzlet_ has quit (Remote closed the connection). 15:23:28 -!- asiekierka has set topic: Esoteric programming language discussion | FORUM AND WIKI: esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | Rules: 1. Break at least one rule. 2: At least (10^10) bots must be on #esoteric. 15:37:42 -!- ehird` has quit ("Leaving"). 15:38:26 -!- blahbot` has quit (Remote closed the connection). 15:39:30 -!- RodgerTheGreat has joined. 15:39:45 howdy, folks 15:41:09 howdy 15:41:17 join #esoteric-bf 15:41:17 hi, asiekierka 15:41:24 if you want to talk about brainf*** 15:45:08 -!- Tritonio has quit (Remote closed the connection). 15:54:35 -!- ihope__ has joined. 15:54:47 -!- ihope__ has changed nick to ihope. 16:06:29 -!- sebbu2 has joined. 16:48:34 -!- mtve has left (?). 16:49:12 -!- mtve has joined. 16:55:06 Anybody willing to talk about FBF? 16:55:08 BF*? 16:55:53 Doubtful. 16:56:05 i liked the channel more one year ago 16:56:34 Hmm. 16:56:42 Try looking at Dimensifuck. 16:56:50 It *will* blow your mind away. >:D 16:58:10 how 16:58:23 It's an n-dimensional language. 16:58:55 i rather like Dimensional Areas. 16:59:10 You want to write your code as a Klein bottle? 16:59:14 You can do it! 17:00:54 nope 17:00:56 i mean 17:01:02 Dimensional Areas from one anime 17:01:08 pikhq: I have a question about how PEBBLE handles variables 17:01:09 that you all 99% hate 17:01:19 You know what i'd like? 17:01:19 RodgerTheGreat: Sure. 17:01:30 An Brainf**k OS in only 5120b (5KB) 17:01:44 with some more features 17:01:53 does it recognize structures like [>], where the pointer moves on loop iterations, and adjust accordingly? 17:01:57 I believe someone's tried an OS in Brainfuck; not sure how well it was. 17:02:02 nope 17:02:07 a OS that interprets BF. 17:02:12 and has a command prompt for it. 17:02:20 it can do only that 17:02:26 and it'll have some new functions: 17:02:31 because the simple way to do them seems like just running through the program, ignoring loops and using state that way to figure out relative locations 17:02:36 RodgerTheGreat: No, it doesn't. You have to explicitly say which location you're at at the end. 17:02:43 and for an unbalanced loop, you'd have to do something else 17:02:47 ah. hm 17:02:56 Your solution is *exactly* how I do it. 17:03:04 sweet. I'm on the right track. 17:03:25 (well, actually, I've got it set to turn off the state-tracking when it detects an explicit > or <. . . But, yeah.) 17:03:30 BUT, i don't know how to do it 17:03:31 really 17:03:35 Except if i'll do 17:03:46 @(filename.txt|4) 17:03:47 asiekierka: It'd actually be trivial to pull off. 17:03:52 reads 4th char from filename.txt 17:03:59 it must be there for something cool enough 17:04:04 so when you < or >, it goes into "nontracking mode", and then you specify where to pick up again before you use another variable? 17:04:15 If I knew *16 bit* assembly, I'd do it. 17:04:17 RodgerTheGreat: Exactly. 17:04:40 An OS like this will ROCK. 17:04:45 i have a friend that may do it 17:04:45 alright. Hm. 17:04:53 it will have 10 commands in total 17:04:58 debug, 8 default and file-reading 17:05:26 do you allow coders to explicitly define a memory layout, require explicit definitions of a memory layout, or let it float and trust the compiler to optimize things? 17:05:47 It will be a port of one of optimized interperters 17:05:52 it will interpret in runtime! 17:06:06 optimizations: ... none. 17:06:10 RodgerTheGreat: You can either specifically state variable location or let the compiler do it automatically. 17:06:12 except for max CPU speed 17:06:19 since nothing takes CPU/RAM 17:06:25 gotcha 17:06:33 It doesn't optimize that (yet); it merely assigns variable location in order of variable declaration. 17:06:41 yeah, I figured 17:07:04 * pikhq wonders what a good algorithm to pull that off would be. . . 17:07:06 It'll also use 10 for newlines, not 13 and 10 17:07:13 but allowing the compiler to make optimizations will allow you to upgrade the compiler and simultaneously upgrade every program 17:07:15 asiekierka: That's the only way to do it. 17:07:20 pikhq: I actually have an algo for that 17:07:21 yes 17:07:27 Well, yeah. 17:07:36 The compiler is set up to be *very* optimizable. 17:07:42 I will always make new versions that'll be optimalized of my OS. 17:07:52 supporting MMX, SSE, SSE2... maybe 17:07:55 so it'll work faster 17:07:58 Unfortunately, the current optimization pass added a small handful of commands to let you tell things it can't handle itself. . . 17:08:10 asiekierka: Do you know C and assembly? 17:08:20 no... my friend does, he'll probably do it 17:08:26 (especially assembly for MMX, SSE, SSE2, and SSE3) 17:08:36 at least the beginning 17:08:41 it'll be open-source 17:08:50 Also, none of those will be much/any use; those extensions just do floating point numbers, not ints. 17:09:07 count the number of "accesses" on every variable cell (large bias on +-, smaller bias on ,., smallest bias on []), to get a metric for how often particular variables are used (priority) 17:09:08 And it'll support 2 modes... you set the second one with $. 17:09:14 1st mode - numbers 0-255 17:09:21 2nd mode - numbers 0-65536 17:09:40 then, group the variables with common variables in the center, less common values further away 17:09:43 so 11 commands in total 17:09:49 however, this is not the only way to do it 17:09:53 2 added by me (needed for a proj like this), 1 debug, 8 normal 17:10:02 Efficient way to do it, though. 17:10:24 another algo would involve examining what cells are most frequently accessed sequentially 17:10:25 I'll probably add that to the next PEBBLE version; thanks, Rodger. 17:10:29 this would improve speed 17:10:35 pikhq: no prob 17:12:08 pikhq: I will make it open source, so if you may make PEBBLE emulated in Brainf**k, it will allow you with 2 files. 17:12:16 1st one - pebbleemu.b 17:12:23 2nd one - pebblecode.pb 17:12:29 asiekierka: PEBBLE already *compiles* to Brainfuck. 17:12:41 oh 17:12:44 cool 17:12:48 so it'll support it too 17:12:51 Yeah. 17:12:55 Cool one. 17:13:00 You just take a floppy disk 17:13:02 Could be an interesting project. 17:13:02 slot it in 17:13:11 Highly useless, but, then, that's the point of #esoteric, isn't it? 17:13:13 and launch it even without Windows or anything 17:13:19 I'm going to do some experiments with an optimizing brainfuck macrolanguage myself- I think it could be a tremendous learning experience 17:13:25 Bah. Windows? Ick. 17:13:30 or Linux 17:13:38 it'll be it's own OS all in itself 17:13:39 RodgerTheGreat: If you need any help, I'm willing to offer it. 17:13:40 with BF software 17:13:48 and some commends builtin 17:13:49 dir 17:13:51 echo 17:13:56 -!- cherez has joined. 17:13:59 Of course, I assume you'll mostly just want "How did you do this?" 17:13:59 (oh wait, echo will be in BF) 17:14:09 cat too 17:14:40 I'd recommend you just start off with a prompt for raw Brainfuck commands. 17:14:53 Anything more complex than that could be good for future version. 17:15:24 pikhq: I appreciate the offer, but I'm going to try to do this on my own as much as possible. I'll let you know if I get stuck on anything 17:15:33 but i will add 2 more commands anyway 17:15:35 and stop it 17:15:36 RodgerTheGreat: Of course. 17:15:38 only release bugfixes 17:15:44 raw BF will not work with such thing 17:15:50 there'll be one more command :DDD 17:15:59 For a first version, it will work perfectly. 17:16:13 I mainly asked you about the variables to check and see if you'd come up with something insanely more clever than what I was thinking about. :) 17:16:14 and then just bugfixes 17:16:17 it'll be opensource 17:16:18 Just a prompt where you type in Brainfuck code. When it ends, the prompt comes back up. 17:16:23 not only 17:16:25 :D 17:16:35 you type name of BF file OR BF code 17:16:40 then it reads the BF file 17:16:52 RodgerTheGreat: I think you'd like to know about what I do with loops and cell clears, though. 17:17:05 so you can save up to 1,33MB of BF stuff on a diskette 17:17:06 we'll see 17:17:21 I try to keep track of whenever a cell is guaranteed to be 0, so that I can skip loops that will never run. 17:17:25 i will later make 2 subversion 17:17:29 versions* 17:17:37 one will be basic BF with the one more command 17:17:44 second will have anything that others add 17:18:00 asiekierka: Hmm. . . 17:18:12 so? 17:18:22 I'm tempted to try working on that; I've needed an idea for a trivial OS to do. 17:18:44 ok 17:18:45 try then 17:18:48 i'll surely use IT 17:18:50 but 17:18:59 1) you need know-how to use any file-system read-only 17:19:02 for my idea 17:19:07 2) you'll need BF know-how 17:19:14 pikhq: in theory, you could fit a BF-OS into a bootloader quite readily 17:19:16 3) and file-reading know-how 17:19:17 Ans, of course, I have a lot of that. 17:19:18 Yes... 17:19:22 in THEORY 17:19:24 it should work 17:19:24 RodgerTheGreat: Oh, absolutely. 17:19:32 Original was 240b 17:19:41 FAT12 reader can fit in ~250b i guess 17:19:44 The full floppy disk would be good for storing any Brainfuck programs, though. 17:19:47 yes 17:19:49 or nearly full 17:19:58 eventually you put 1-5kb on floppy disk 17:20:19 So, I'd want to just fit a bootloader in the boot block, and make that load up BF-OS, along with a FAT16 reader. 17:20:28 FAT12 or ext2 17:20:43 ext2, for usage from other folk's computers. 17:20:43 if you have any space left 17:20:49 or both 17:20:50 ! 17:20:53 FAT12 and ext2 17:20:55 Err. 17:21:02 i recommend first one 17:21:03 FAT16, so non-Linux users can do something with it. 17:21:12 but floppies can't have FAT16 :P 17:21:15 Or FAT12; it'd depend upon floppy size. 17:21:19 Oh? News to me. 17:21:24 i guess 17:21:28 FAT12 first 17:21:34 then add FAT16, 32, ext2, ext3 17:21:36 -!- asiekierka has changed nick to asie_idle. 17:21:38 will be back soon 17:22:32 I know of a person that did OS programming once 17:22:40 so he could do it even in 2-3 days i guess 17:22:45 once or twice 17:22:47 i don't know 17:24:54 * pikhq hasn't done any, so it'd take a while longer 17:25:30 so team up 17:25:34 he probably knows english 17:25:39 I will get him here later 17:26:03 pikhq: how difficult would it be to trend PEBBLE towards being self-hosting? 17:26:18 To make PEBBLE self-hosting? 17:26:20 Rewrite. 17:26:40 I know this. I'm asking how hard the rewrite would be. 17:26:45 I'd need to actually *write* a parser. . . 17:26:54 you didn't? 17:27:00 And the "source" command wouldn't work at all. . . 17:27:16 No; PEBBLE's syntax is a subset of Tcl. 17:27:29 aw, cheap 17:27:34 So, I just create a subinterpreter using Tcl's "interp" command, remove Tcl's own commands, and add in my own. 17:27:43 I started building a system around StreamTokenizer 17:27:46 I need to redo that with a proper parser someday. 17:28:00 Unfortunately, I lack knowledge of BNF. 17:28:15 BNF isn't the only way to build a parser 17:28:57 I designed some simple programming languages and their interpreters long before I knew what things like BNF were 17:29:02 Yeah; it's just a way to specify your syntax. 17:29:09 And I know jack about parsers. 17:29:37 it just breaks down into a state machine with some string manipulation crap 17:29:47 Ah. 17:32:44 bsmntbombdood: figured out haskell yet? 17:41:55 -!- asie_idle has changed nick to asiekierka. 17:41:58 Hi HI HI HI 17:42:06 'Lo. 17:45:41 Look, if we have an interperter that we can write BF code directly to for MS-DOS 17:45:47 we can try and run it from a floppy 17:45:47 :) 17:45:50 so we don't need to wait 17:45:53 but it may NOT work 17:46:55 * pikhq thinks about just doing DJGPP from DOS 17:47:37 nope 17:47:44 i have an better idea 17:47:48 and i will try! 17:47:55 Is there any interperter like that? 17:48:05 if yes, put it and bootsector on a floppy 17:48:07 and just BOOT 17:48:14 or compile BF code 17:48:17 to stuff like that 17:48:33 Not quite; realise that a DOS program won't boot directly. 17:48:38 ... i know 17:48:40 but i did it once 17:48:42 it runs it 17:48:46 though really really limited 17:48:51 99% of stuff dosen't work 17:48:54 but it's possible 17:49:02 it just loads EXE in it's own method 17:49:04 without DOS apis 17:49:07 but some stuff WORKS! 17:49:31 i still CAN go on and make a Pascal API emulator 17:49:37 since some people implemented then in Pascal/ASM 17:50:18 them* 17:50:22 some of APIs 17:50:25 it'll make more stuff work 17:50:33 if we could put them into the bootloader 18:02:49 anybody? 18:06:49 Ramrod? 18:28:53 -!- asiekierka has quit. 18:40:33 -!- cherez has quit ("Leaving."). 18:50:35 -!- ehird` has joined. 18:52:10 RodgerTheGreat, i updated the mvldo site 18:52:18 loads of pages on the wiki: http://mvldo.nonlogic.org/wiki/index.php?title=Main_Page 19:07:16 -!- oerjan has joined. 19:26:22 -!- ihope has quit (Read error: 104 (Connection reset by peer)). 19:27:28 :) 19:41:27 ping 19:42:00 Gepongenpoken mit dem Fingerspitzgefühl 19:44:16 mvldo would not understand. :P 20:13:55 * pikhq has a remarkably slow idea for optimizing variable location. . . 20:14:14 Just test every permutation to try to find the shortest version. 20:15:57 this in Pebble? 20:17:08 Yeah. 20:17:34 so you would want to minimize a sum of absolute values of differences of locations... 20:17:45 i guess 20:17:55 RodgerTheGreat: My initial implementation of that algorithm managed to actually lengthen PFUCK. 20:18:26 4943 characters with "optimized" variable location vs. 4558 without. 20:19:54 you could do local permutations, swapping only a small set 20:20:19 until you find a local minimum. 20:21:52 Or I could implement the optimization algorithm correctly. 20:22:13 I've currently got the highest-referenced variables at the beginning of the variable space, rather than in the middle. 20:27:42 it sounds sort of like a reversed traveling salesman problem, the path is fixed but the distances are not 20:36:27 Maybe only counting the +'s and -'s would help. . . Or figuring out how to weight each one. . . 20:40:38 that's what i meant with the sum of absolute values thing 20:41:04 RodgerTheGreat: Okay, I implemented *exactly* the algorithm specified. . . 20:41:07 And it seems to suck. 20:41:45 lament: ha, no 20:42:20 It's fairly consistently lengthening code. 20:42:40 -!- cherez has joined. 20:42:43 Even *remarkably* naive code. 20:50:34 -!- MichaelRaskin has left (?). 20:54:41 Ah. I see *why* it sucks. . . 20:54:53 Cherez and I figure that this *is* an NP problem. . . :/ 20:55:13 RodgerTheGreat: I blame you for making me want to do this. :p 20:56:30 wait, how do you do variables in pebble? 20:57:31 how can you calculate an offset with something like .[[>+<-]>-] 20:58:17 I think it can be generalized to a sequencing problem, (most of which are NP-complete.) 20:58:25 I've already explained it. . . 20:58:40 Variables are either explictly or dynamically assigned a location in Brainfuck memory. 20:59:16 State of where in Brainfuck memory the thing is is kept. 20:59:43 When a loop which ends somewhere different from where it began occurs, state is ignored until you tell the compiler where you are again. 21:00:11 how do you do that? 21:01:50 brainfuck.tcl in PEBBLE should be enlightening. 21:16:56 * pikhq curses at NP completness 21:32:10 all you need to do is to find a polynomial time solution to an NP complete problem 21:32:13 home free! 21:34:56 Why not say "all you need to do is solve the halting problem"? 21:36:09 because that's proven impossible 21:37:08 actually, inventing a machine to solve the turing halting problem would be better than proving P=NP 21:37:20 because you could use it to prove that 21:38:08 only if P actually is =NP 21:38:53 you could use it find if P did =NP 21:41:06 -!- sebbu3 has joined. 21:42:49 RodgerTheGreat, become alive! :P 21:43:22 i knew people here were insane but i didn't know they thought they were Jesus... 21:43:32 bsmntbombdood, i want the computer from http://qntm.org/responsibility 21:43:44 damn, parsec error messages aren't helpful at all. 21:44:03 they aren't? 21:44:33 bsmntbombdood, cat >script { calculate last digit of pi; solve halting problem; prove that the laws of thermodynamics are actually complete bullshit }; interpret natural language script 21:44:54 uhh, there is no last digit of pi 21:45:13 indeed not 21:46:15 read the story first please 21:46:26 icba 21:46:27 "But it was still pretty exciting stuff. Holy Zarquon, they said to one another, an infinitely powerful computer? It was like a thousand Christmases rolled into one. Program going to loop forever? You knew for a fact: this thing could execute an infinite loop in less than ten seconds. Brute force primality testing of every single integer in existence? Easy. Pi to the last digit? Piece of cake. Halting Problem? Sa-holved." 21:46:37 notable "pi to the last digit?" 21:47:28 ehird`, that guy is perhaps my favorite author. . . 21:47:36 pikhq, ditto 21:47:52 cherez: You may wish to join in on the Sam Hughes worship. 21:48:21 do we have to build him a shrine made out of nanobots or something? 21:48:33 "to the last" has a bit different connotation 21:48:50 What does it involve? 21:49:18 oerjan, "to the last digit" 21:49:27 oerjan, If it can compute up to that -- it can display it 21:49:43 oerjan, The whole machine is impossible to *start* with - it can do impossible things 21:50:51 Pi to any arbitrary digit maybe, but to the last is meaningless. 21:51:06 "Pi to the last digit? Piece of cake." 21:51:08 >last< 21:51:18 it doesn't have a last digit 21:51:22 Anyway, a computer with infinite power is meaningless in the first place 21:51:26 bsmntbombdood, i am well aware 21:51:44 bsmntbombdood, but this is clearly in an alternate universe where the impossible is possible 21:52:02 thus, it would be possible to get the last digit of pi... even though that is meaningless, which is why it's *fiction* 21:52:30 that's like saying it can find the largest integer 21:52:40 One would assume that that means that it calculates all of pi (and displays it infinitely small). 21:53:13 And in the context that they discuss it, one would assume that they mean that unliterally. . . 21:53:18 Sure. 21:53:23 But taking unliterally things literally is fun. 21:53:29 True. 21:53:48 Of course, this is why infinite calculation is such a bizzare paradox: 21:54:05 Computing all of pi requires it to terminate. It will terminate when the last calculation is done. Thus, at some point, it decides it knows the last digit of pi. 21:54:52 Am I the only one who finds primality testing of every integer more interesting? 21:55:06 Yeah. 21:55:08 :p 21:56:39 mm this "haskell" thing is impossible to debug 21:56:42 :| 21:56:46 I prefer the idea of a superTuring system. 21:57:59 the existence of superturing systems doesn't contradict logic 21:58:05 the existence of the last digit of pi contradicts logic 21:58:09 cherez, I'd like to know the sum of N! 21:58:17 things that contradict logic are inherently boring because they're all equivalent 21:58:37 lament, the existance of anything that can compute infinites in less than infinite time and thus have infinite capability contradicts logic 21:58:41 so saying "calculate pi to the last digit" is equivalent to saying "round square", etc 21:58:48 -!- sebbu2 has quit (Read error: 110 (Connection timed out)). 21:58:58 ehird`: no it doesn't, actually. 21:59:16 ehird`: i'm using "logic" in the strict mathematical sense. 21:59:23 yes. 21:59:33 There is one way for one to calculate pi to the last digit. 22:00:03 If this infinity machine proves that, in fact, pi is *not* an irrational number, then it can find Pi's last digit trivially. 22:00:41 but it can't prove that, since it's already been disproven. 22:01:28 Incompleteness theorem. 22:01:29 Even if it disproves the validity of those? 22:01:53 cherez: what 22:01:58 Hmm. 22:02:13 Instead, just ask the thing for an *elegant* proof of Fermat's last theorem. 22:02:15 An arithmetic mathematic system cannot be proven to be internally consistent. 22:02:18 Now *that* would be interesting. . . 22:03:27 It's conceivable that a contradiction could be found in basic arithmetic which could mean we have to throw the whole thing out. 22:04:34 true. 22:06:22 numbers above 10^40 might be inconsistent... 22:07:07 I doubt it would be anything like that, but it can't be proven with our mathematics system. 22:08:05 oerjan, um, why? 22:08:15 10^40 + 1 = universe collapses! 22:08:43 >>> 10**40+1 22:08:43 10000000000000000000000000000000000000001L 22:08:51 We're ok, guys! 22:08:51 zomg 22:09:05 Wait, I think my closet collapsed. 22:09:07 because! 22:09:17 no, not all numbers but _some_ 22:09:34 phew thank god i solved the problem! 22:09:42 We can't prove that they don't. 22:09:48 i had to use endBy1 instead of sepBy1 22:10:21 lament, the HALTING problem??!1111 22:10:46 Parsec's power is immense. 22:10:58 * pikhq proposes a new Nobel prize. . . 22:11:06 The Nobel DidTheImpossible prize. 22:11:09 I think it's called the Turing prize. 22:11:22 No, that's for AI. 22:11:29 Good. 22:11:44 It would be unfair to give a guy Turing's award for stealing Turing's unsolvable problem. 22:11:44 and the first winner of Nobel DidTheImpossible prize is... a speck of dust! 22:11:53 then whoever awarded that wins the didtheimpossible award 22:11:53 Of course, if you discover an AI that solves the halting problem, then you win. 22:11:56 ad infinium 22:12:02 i think it should be the Adams prize 22:12:35 I'm pretty sure the halting problem is provably unsolvable. 22:12:45 At least in the most general sense. 22:12:45 I'm pretty sure it's been proven 22:13:20 At least, a program that can analyze whether it itself halts is contradictory. 22:13:29 Halt if and only if it doesn't halt. 22:14:01 You can solve the halting problem for any arbitrary machine with finite memory. 22:14:18 Using a machine with greater memory, of course. 22:14:48 Right, just run it until the state repeats or it halts, recording each state as you go. 22:14:58 the max shifts function is computable on machines with finite memorys 22:15:59 The Busy Beaver function? 22:16:04 woohoo i wrote my first parser 22:16:10 (in parsec) 22:18:37 Now make it self-hosting. 22:19:06 interpreters are self-hosting, not parsers 22:19:36 that would sort of defeat the purpose of using parsec 22:19:43 He's just being evil. ;) 22:20:12 It should at least be able to parse its own code. 22:20:54 * oerjan makes note to self: never run your own universe as a simulation. 22:21:40 cherez: it doesn't parse anything attempting to be a turing-complete language. 22:21:59 although i suppose you don't need turing-completeness to be a parser. 22:22:00 I'm back 22:22:10 woohoo 22:22:12 it's alive! 22:22:28 pikhq: dayum. It seemed intuitive that the algo I described could work... hm. 22:22:36 Who attempts to be Turing-complete? 22:22:40 RodgerTheGreat: I may have done something horridly wrong. 22:23:07 I'll do some work on it once I get my compiler off it's feet 22:23:17 Looking at it some more, I'm sure that I did. . . 22:23:20 a3 8.0} {a1 9.5} {a2 10.0} {call_itoa 21.0} {i 21.5} {temp2 24.75} {temp0 318.25} {temp1 283.25} {temp4 55.5} {opcode 41.25} {temp3 33.75} {no_match 25.25} {temp2 24.75} 22:23:32 +- is 1, ., is 0.5, [] is 0.25 22:24:32 tweaking your weighting values around a bit ought to at least help 22:25:30 why would you want anything but +- counted? 22:25:48 The issue is that it's not actually getting the variable location assignment right. 22:26:01 ah 22:26:23 oerjan: It's measuring cell accesses, weighted towards +-. 22:26:26 oerjan: because all operations done with a cell indicate it's being used for something 22:26:49 we're trying to rank things based on how often they're used 22:26:53 Why not measure the number of times each cell has to be reached? 22:27:05 hm. that is a point 22:27:06 oh, i thought you were just concerned with program length 22:27:30 Got a simple way to make a sorted list go to having the highest things in the center? 22:27:49 a fucked up bubblesort. :D 22:27:51 Like, from "5 4 3 2 1" to "1 3 5 4 2" 22:27:52 If 1 cell is incremented a ton of times then left to rot, it only is a block in the middle. 22:28:04 cherez: You have a point. 22:28:11 And belongs on an edge. 22:28:21 pikhq: actually, take the second half of the list and flip it 22:28:27 I'd count the number of nonconsecutive accesses. 22:28:32 then you have low to high to low 22:28:34 ish 22:28:37 RodgerTheGreat: Tried. 22:28:42 damn 22:29:00 On my example, that produces "5 4 1 2 3" or "1 2 5 4 3" 22:29:25 sort them and then start a new list, and then insert them, in order, to the center of the new list 22:29:34 then it should grow outwards from the center 22:29:46 use a Vector of some kind 22:30:28 There's a though. 22:30:37 Are we trying to produce the shortest BF? 22:30:45 Just a sec while I experiment with cherez's idea. 22:30:49 Yeah. 22:30:52 yes. cell access optimization 22:31:13 Since compiling it to C you can easily reference any pointer in 1 line. 22:31:59 In C, it doesn't matter. 22:33:34 RodgerTheGreat, hey 22:33:40 hey 22:33:47 i wrote some stuff about mvldo http://mvldo.nonlogic.org/wiki/index.php?title=Main_Page 22:33:49 looking good so far on the wiki 22:33:52 ah 22:33:54 you've read it :) 22:33:56 ok 22:34:01 :) 22:35:53 {opcode 69} {temp2 0} {call_itoa 0} {temp3 0} {no_match 0} {temp4 0} {i 0} {a1 0} {a2 0} {a3 0} {temp0 0} {temp1 0} 22:35:57 That can't be right. . . 22:36:15 Oh. Did it wrong. XD 22:36:30 RodgerTheGreat, anything you'd suggest changing/adding? 22:36:37 Freudian slip? 22:36:50 -!- oerjan has quit ("Good night"). 22:37:16 cherez, what where 22:37:33 ehird`: aside from additional content I dunno... a cool logo of some kind for the top left corner? 22:37:39 {opcode 69} {temp2 0} {call_itoa 0} {temp3 0} {no_match 0} {temp4 0} {i 0} {a1 0} {a2 0} {a3 0} {temp0 0} {temp1 0} 22:37:49 RodgerTheGreat, heh, i meant in terms of the actual bot design :) 22:37:52 cherez, ah 22:37:53 We know what pikhq programmed his compiler to do. 22:37:54 oh, yes. "LOL 69" 22:38:09 I was talking about the 0 you perv. 22:38:17 i think i shall laugh whenever the number 4 comes up. 22:38:19 why? 22:38:26 because it's the number i laugh at when it comes up, obviously! 22:38:39 Odd. 22:38:52 ehird`: are you going to be using markov chains? 22:38:55 Is the code too optimum? 22:38:59 Somehow, gotos to opcode are now *not* being counted, but gotos to everything else *are*. 22:39:03 RodgerTheGreat, no, we've already discussed that :p 22:39:15 * pikhq uses goto to mean "go to a memory location" in PEBBLE, BTW 22:39:35 RodgerTheGreat, see the Response page 22:40:44 "You can almost taste the peer pressure, can't you?" 22:40:57 My stupidity. 22:41:50 RodgerTheGreat, :) 22:42:15 pikhq: what's borked? 22:42:17 with enough persuasion, it will believe 2+2=5! 22:42:43 RodgerTheGreat: I just forgot to keep track of the location in the varopt pass. 22:42:57 ah 22:43:27 Now, we're still getting something inefficient. . . 22:43:41 Maybe measure the distant it has to move? 22:43:58 is it somewhat less horrible, at least? 22:44:15 OOoooh 22:44:18 idea- 22:44:36 we could represent mappings of locations as a graph structure 22:44:48 It's behaving as I expect, at least. 22:44:56 each variable keeps track of others that are accessed before or afterwards 22:45:22 Forgetfulness has a typo! 22:45:31 Clearly wikis aren't a reliable source of information. 22:46:23 cherez, oh no 22:46:27 well fix it then =p 22:46:54 -!- immibis has joined. 22:46:55 Can't you see I represent traditionalist views of knowledge! 22:47:39 It would be against my character to try to fix a wiki when I can instead condemn it and try to sell my $50 textbook. 22:48:36 speaking of textbooks, who's interested in some lucrative deals? Who'll bid on a copy of "The C++ Programming Language"? 22:49:07 $4 22:49:22 [reserve not met] 22:49:26 $891 22:49:35 haha c++ 22:49:48 if i ever write a C compiler 22:49:49 $15.88 22:49:52 this will be an easter egg: 22:49:54 yeah, fuck this language and in particular fuck this book 22:50:14 What did the book do? 22:50:15 typedef language int; language C = ; C++; /* rest of program is in C++ */ 22:50:45 er, isn't thaat 22:50:47 oops 22:50:52 you mean typedef int language; 22:51:12 cherez: it's poorly written, while still conveying a mindblowing degree of smugness in the forging of this stillbirth of a language 22:51:12 That would be a lot of extra work for an easter egg. 22:51:25 language C=C++; ? 22:51:40 what would C be then? 22:51:42 Ya, I'd be embarrassed if I made C++. 22:51:48 Bad theory. . . 22:52:02 I'm slowly warming up to C proper, though, I must say 22:52:12 how about just 22:52:18 c is so much better than c++ 22:52:18 language C++; 22:52:23 where C is something 22:52:23 nah 22:52:26 not easter-eggy enough 22:52:32 i need something that's valid C code 22:52:35 I consider C a poorly designed language, but C++ compounds it with mind-numbing degrees of idiocy 22:52:45 perfectly valid C code containing C++ 22:52:48 such as what? 22:52:51 language C=C++; is valid but undefined. 22:52:52 C isn't poorly designed 22:53:03 it's very nice for it's purpose 22:53:08 C wasn't poorly designed when it was initially made 22:53:37 //This is C++ 22:53:39 that's valid c 22:53:43 and it contains C++ 22:53:54 immibis, har har har 22:53:58 cherez, undefined = :( 22:54:13 anyway 22:54:15 that's 22:54:18 language C = (C += 1) 22:54:22 well, kind of 22:54:24 ++C would be that 22:54:27 but either way 22:54:32 its not just undefined; its completely meaningless 22:54:49 Which is why it's a good easter egg. 22:54:53 language C=C+1; 22:54:57 No one will code like that seriously. 22:55:11 C+=C++ + ++C; 22:55:20 If they do, they probably meant to use C++ anyway. 22:55:50 C+=C++ + ++C - (C -= C-- - --C) 22:56:09 what's unclear is whether C = C++ should compile to: 22:56:23 temp = C 22:56:23 C++ 22:56:23 C = temp 22:56:27 or 22:56:31 C+=C++ + ++C - C-- - --C 22:56:35 temp = C 22:56:35 C = temp 22:56:35 C++ 22:56:35 okay, how about: 22:56:48 int C = (language)<89 or 99>; 22:56:49 C++; 22:56:54 /* IN C++ */ 22:57:00 it's the casting to (language) y'see. 22:57:18 probably temp=C, C=temp, C++ 22:57:25 int C = (language)<89 or 99 or k&r> 22:57:48 int k=rand(); int r=rand(); 22:57:51 immibis: It can mean either, and compilers have been written that assumed both. 22:57:54 you need to define k&r first 22:58:00 One compiler produced C = C + 2 somehow. 22:58:26 cherez, the <> is metaphorical 22:58:31 you put whatever C version you're compiling in there 22:58:44 i.e. "int C = (language)89" C is the language I am using, it is C89 22:58:46 C++ -> zoom 22:59:01 you need brackets. (C++)->zoom, don't you? 22:59:18 -!- jix has joined. 22:59:22 struct {int zoom;} *C; 23:00:13 no 23:00:17 what i mean is: 23:00:19 C++ means zoom 23:00:25 So: 23:00:25 well at least you need to define C first. 23:00:31 /* using C89 */ 23:00:35 int C = (language)89; 23:00:36 C++; 23:00:40 /* using C++ */ 23:00:43 struct {int zoom;} *C; C++ -> zoom 23:00:52 i didn't mean zoom in that way 23:00:55 it was a diagram 23:00:59 "C++" -> zoom 23:01:14 you can't use -> on a string 23:01:41 only on a class, struct, or union 23:01:50 w00t. . . 23:01:59 Finally got variable assignment down to something sane. 23:02:22 immibis, stop that! 23:02:23 Unfortunately, *still* elongating programs. 23:02:25 you know what I meant!!!! 23:02:32 4866 vs. 4558. 23:02:34 it was an arrow of illustration! not a peice of code!! 23:02:37 ok 23:02:54 486 23:02:56 oops 23:03:10 pikhq, does pebble allow macros to compute something at compile time? 23:03:16 {a1 9} {i 24} {call_itoa 27} {opcode 43} {temp4 68} {temp1 271} {temp0 252} {temp3 45} {temp2 35} {no_match 25} {a2 10} {a3 8} 23:03:19 and if so does it have a push_brainfuck_code_to_src or similar? 23:03:22 ehird`: Not really. 23:03:27 Just think of it as 7% worse. 23:03:29 if so, you can implement subroutines and just about anything in itself 23:03:53 It's not that complex of a macro language. 23:04:06 Think "C preprocessor", not "Lisp macros". 23:04:13 Is that using the weighting method I suggested? 23:04:20 Yeah. 23:04:28 Each goto counts as 1. 23:04:34 And now it's got each bit centralised. 23:04:49 Let's see how it works on my game, which is much more naive. . . 23:04:52 pikhq, i was thinking of implementing, like, a function system in it 23:04:55 using a stack and stuff. 23:05:26 sub would be a macro which compiled some stack-stuff to push the function, then it'd create the function's name as a macro which would expand to the calling code 23:05:45 i guess maybe i could do that using low-level commands? 23:06:01 Maybe. . . 23:06:24 The naive game is 41177 chars with optimisation, and 37324 without. 23:06:45 I think that I'm better at figuring what's good out than my compiler is. 23:08:10 RodgerTheGreat: Didn't you suggest something about fiddling with sequential access? 23:08:30 kinda 23:08:34 (that'd be much harder to implement, but I bet it'd be a bit more efficient) 23:08:42 -!- ehird` has quit (Read error: 104 (Connection reset by peer)). 23:09:53 -!- sebbu3 has quit ("@+"). 23:26:40 damn. Programming requires thinking. 23:27:15 suprise suprise 23:27:22 :( 23:27:26 bsmntbombdood: how's haskell going? 23:27:44 not studying right now 23:29:02 when you get the basics, look at parsec ( http://legacy.cs.uu.nl/daan/download/parsec/parsec.html ) and you'll realize how awesome haskell is. 23:29:23 ok 23:29:59 -!- jix has quit ("CommandQ"). 23:37:31 http://www.wired.com/culture/education/news/2007/08/winniecooper_QA 23:38:14 vlech 23:38:45 *blech 23:42:56 that's so cool 23:50:06 -!- pikhq has changed nick to pikhq_. 23:50:43 -!- pikhq_ has changed nick to pikhq.