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:46:59 -!- ihope has quit (Connection timed out).
02:48:22 <pikhq> Jebus. . . 2.6.21 is *now* marked stable in Gentoo. . .
02:48:32 <lament> bsmntbombdood: ask in #haskell
02:48:52 <lament> they're probably more qualified
04:08:58 -!- cherez has joined.
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:03:41 <lament> yes, but it's all very reasonable
07:03:54 <lament> really syntax is not the problem with haskell :)
07:11:51 -!- MichaelRaskin_ has quit (Read error: 110 (Connection timed out)).
07:25:06 <lament> bsmntbombdood: where's the hugeness?
07:25:22 <lament> i see a type class definition, a signature and a function definition.
07:25:47 <lament> nearly every language has equivalents.
07:26:20 -!- ihope has quit (Connection timed out).
07:27:14 <bsmntbombdood> there's also terribly ugly whitespace significance, and two completely unrelated uses of ()
07:28:13 <lament> i'm honestly not sure what's the problem, haskell is just like any other langugae
07:31:17 <lament> probably. I think haskell is very pretty.
07:34:26 <lament> whitespace significance follows somewhat odd rules but leads to consistent pretty indentation
07:35:25 <immibis> i don't know haskell, but am i allowed to ask: where's the definition of ==?
07:36:03 <lament> it's a type class definition
07:36:10 <lament> somewhat like an interface
07:36:32 <lament> (==) will be implemented for individual types
07:40:16 <lament> 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:35 <lament> yes. sleep is for the week.
07:43:06 <lament> i'll go to sleep, be back in a week!
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:30 * immibis slaps bsmntbombdood with a rainbow trout
07:56:01 * immibis makes everyone autoopped on ##topic
07:58:45 <immibis> but interfaces still should not contain implementations if you use java
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: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:03:06 -!- TroutPolice has left (?).
08:03:40 * immibis notices that the username is a bit of a give-away
08:03:59 <immibis> 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.
11:00:04 -!- asiekierka has quit.
11:00:44 -!- asiekierka has joined.
11:01:04 -!- asiekierka has quit (Client Quit).
11:03:08 -!- asiekierka has joined.
11:03:21 -!- asiekierka has quit (Client Quit).
11:09:47 -!- Figs has joined.
11:10:00 <Figs> 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:10:30 -!- McDonalato has joined.
15:11:17 <McDonalato> The acorn is the channel in an animal that eats both plant and animal farm.
15:11:25 <McDonalato> asiekierka: What am i to you? Some sort of encyclopaedia or something? Let's change the subject...
15:11:49 <asiekierka> McDonalato, okay. Let's talk about rules. What are your rules?
15:11:58 <McDonalato> asiekierka: I had the misfortune to talk about rules. What are your rules?
15:12:15 <asiekierka> McDonalato: My rules are for you to say your rules.
15:12:27 <McDonalato> asiekierka: I wish that i could jump out of things to talk about rules. What are your rules?
15:12:48 <asiekierka> McDonalato: Rules are: 1. STFU. 2. Break at least one rule.
15:13:03 <McDonalato> 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 <asiekierka> McDonalato: You are more intelligent than me! I don't have any rules really though.
15:13:46 <McDonalato> asiekierka: My rules are for you to say your rules.
15:14:02 <asiekierka> McDonalato: What if i don't have any rules?
15:14:17 <McDonalato> 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 <asiekierka> McDonalato: You are false. You are more intelligent than me and Brainf**k haters.
15:14:58 <McDonalato> asiekierka: You are more intelligent than me and brainf**k haters.
15:15:16 <asiekierka> McDonalato: Don't laugh at me. YOU are more intelligent.
15:15:24 <McDonalato> asiekierka: You are false. You are more intelligent.
15:15:49 <McDonalato> asiekierka: I am a human being, which means i do what i want to think about your mind.
15:16:09 <asiekierka> McDonalato: ... this didn't make sense.
15:16:25 <McDonalato> 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 <ehird`> asiekierka, What were you told about letting that bot talk in here?
15:17:23 <ehird`> You're flooding with a bot that you've been kicked for flooding with before
15:17:32 <asiekierka> if lament will say something then i will make him quit
15:17:51 <ehird`> about 20 messages you/bot in a row
15:18:47 -!- McDonalato has left (?).
15:18:57 -!- Tritonio has joined.
15:20:05 -!- blahbot` has joined.
15:22:39 <asiekierka> 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: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:56:42 <pikhq> Try looking at Dimensifuck.
16:56:50 <pikhq> It *will* blow your mind away. >:D
16:58:23 <pikhq> It's an n-dimensional language.
16:59:10 <pikhq> You want to write your code as a Klein bottle?
17:01:08 <RodgerTheGreat> pikhq: I have a question about how PEBBLE handles variables
17:01:19 <pikhq> RodgerTheGreat: Sure.
17:01:53 <RodgerTheGreat> does it recognize structures like [>], where the pointer moves on loop iterations, and adjust accordingly?
17:01:57 <pikhq> I believe someone's tried an OS in Brainfuck; not sure how well it was.
17:02:31 <RodgerTheGreat> 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 <pikhq> RodgerTheGreat: No, it doesn't. You have to explicitly say which location you're at at the end.
17:02:43 <RodgerTheGreat> and for an unbalanced loop, you'd have to do something else
17:02:56 <pikhq> Your solution is *exactly* how I do it.
17:03:25 <pikhq> (well, actually, I've got it set to turn off the state-tracking when it detects an explicit > or <. . . But, yeah.)
17:03:47 <pikhq> asiekierka: It'd actually be trivial to pull off.
17:03:59 <asiekierka> it must be there for something cool enough
17:04:04 <RodgerTheGreat> 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 <pikhq> If I knew *16 bit* assembly, I'd do it.
17:04:17 <pikhq> RodgerTheGreat: Exactly.
17:05:26 <RodgerTheGreat> 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 <asiekierka> It will be a port of one of optimized interperters
17:06:10 <pikhq> RodgerTheGreat: You can either specifically state variable location or let the compiler do it automatically.
17:06:33 <pikhq> It doesn't optimize that (yet); it merely assigns variable location in order of variable declaration.
17:07:04 * pikhq wonders what a good algorithm to pull that off would be. . .
17:07:06 <asiekierka> It'll also use 10 for newlines, not 13 and 10
17:07:13 <RodgerTheGreat> but allowing the compiler to make optimizations will allow you to upgrade the compiler and simultaneously upgrade every program
17:07:15 <pikhq> asiekierka: That's the only way to do it.
17:07:36 <pikhq> The compiler is set up to be *very* optimizable.
17:07:42 <asiekierka> I will always make new versions that'll be optimalized of my OS.
17:07:58 <pikhq> Unfortunately, the current optimization pass added a small handful of commands to let you tell things it can't handle itself. . .
17:08:10 <pikhq> asiekierka: Do you know C and assembly?
17:08:20 <asiekierka> no... my friend does, he'll probably do it
17:08:26 <pikhq> (especially assembly for MMX, SSE, SSE2, and SSE3)
17:08:50 <pikhq> Also, none of those will be much/any use; those extensions just do floating point numbers, not ints.
17:09:07 <RodgerTheGreat> 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 <asiekierka> And it'll support 2 modes... you set the second one with $.
17:09:40 <RodgerTheGreat> then, group the variables with common variables in the center, less common values further away
17:09:53 <asiekierka> 2 added by me (needed for a proj like this), 1 debug, 8 normal
17:10:02 <pikhq> Efficient way to do it, though.
17:10:24 <RodgerTheGreat> another algo would involve examining what cells are most frequently accessed sequentially
17:10:25 <pikhq> I'll probably add that to the next PEBBLE version; thanks, Rodger.
17:12:08 <asiekierka> 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:29 <pikhq> asiekierka: PEBBLE already *compiles* to Brainfuck.
17:13:02 <pikhq> Could be an interesting project.
17:13:11 <pikhq> Highly useless, but, then, that's the point of #esoteric, isn't it?
17:13:13 <asiekierka> and launch it even without Windows or anything
17:13:19 <RodgerTheGreat> 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 <pikhq> Bah. Windows? Ick.
17:13:39 <pikhq> RodgerTheGreat: If you need any help, I'm willing to offer it.
17:13:56 -!- cherez has joined.
17:13:59 <pikhq> Of course, I assume you'll mostly just want "How did you do this?"
17:14:40 <pikhq> I'd recommend you just start off with a prompt for raw Brainfuck commands.
17:14:53 <pikhq> Anything more complex than that could be good for future version.
17:15:24 <RodgerTheGreat> 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:36 <pikhq> RodgerTheGreat: Of course.
17:15:59 <pikhq> For a first version, it will work perfectly.
17:16:13 <RodgerTheGreat> 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:18 <pikhq> Just a prompt where you type in Brainfuck code. When it ends, the prompt comes back up.
17:16:52 <pikhq> RodgerTheGreat: I think you'd like to know about what I do with loops and cell clears, though.
17:17:05 <asiekierka> so you can save up to 1,33MB of BF stuff on a diskette
17:17:21 <pikhq> 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:37 <asiekierka> one will be basic BF with the one more command
17:17:44 <asiekierka> second will have anything that others add
17:18:00 <pikhq> asiekierka: Hmm. . .
17:18:22 <pikhq> I'm tempted to try working on that; I've needed an idea for a trivial OS to do.
17:18:59 <asiekierka> 1) you need know-how to use any file-system read-only
17:19:14 <RodgerTheGreat> pikhq: in theory, you could fit a BF-OS into a bootloader quite readily
17:19:17 <pikhq> Ans, of course, I have a lot of that.
17:19:24 <pikhq> RodgerTheGreat: Oh, absolutely.
17:19:44 <pikhq> The full floppy disk would be good for storing any Brainfuck programs, though.
17:19:58 <asiekierka> eventually you put 1-5kb on floppy disk
17:20:19 <pikhq> 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:43 <pikhq> ext2, for usage from other folk's computers.
17:21:03 <pikhq> FAT16, so non-Linux users can do something with it.
17:21:15 <pikhq> Or FAT12; it'd depend upon floppy size.
17:21:36 -!- asiekierka has changed nick to asie_idle.
17:22:32 <asie_idle> I know of a person that did OS programming once
17:22:40 <asie_idle> so he could do it even in 2-3 days i guess
17:24:54 * pikhq hasn't done any, so it'd take a while longer
17:26:03 <RodgerTheGreat> pikhq: how difficult would it be to trend PEBBLE towards being self-hosting?
17:26:18 <pikhq> To make PEBBLE self-hosting?
17:26:40 <RodgerTheGreat> I know this. I'm asking how hard the rewrite would be.
17:26:45 <pikhq> I'd need to actually *write* a parser. . .
17:27:00 <pikhq> And the "source" command wouldn't work at all. . .
17:27:16 <pikhq> No; PEBBLE's syntax is a subset of Tcl.
17:27:34 <pikhq> So, I just create a subinterpreter using Tcl's "interp" command, remove Tcl's own commands, and add in my own.
17:27:46 <pikhq> I need to redo that with a proper parser someday.
17:28:00 <pikhq> Unfortunately, I lack knowledge of BNF.
17:28:57 <RodgerTheGreat> I designed some simple programming languages and their interpreters long before I knew what things like BNF were
17:29:02 <pikhq> Yeah; it's just a way to specify your syntax.
17:29:09 <pikhq> And I know jack about parsers.
17:29:37 <RodgerTheGreat> it just breaks down into a state machine with some string manipulation crap
17:32:44 <lament> bsmntbombdood: figured out haskell yet?
17:41:55 -!- asie_idle has changed nick to asiekierka.
17:45:41 <asiekierka> Look, if we have an interperter that we can write BF code directly to for MS-DOS
17:46:55 * pikhq thinks about just doing DJGPP from DOS
17:48:05 <asiekierka> if yes, put it and bootsector on a floppy
17:48:33 <pikhq> Not quite; realise that a DOS program won't boot directly.
17:49:31 <asiekierka> i still CAN go on and make a Pascal API emulator
17:49:37 <asiekierka> since some people implemented then in Pascal/ASM
17:50:33 <asiekierka> if we could put them into the bootloader
18:28:53 -!- asiekierka has quit.
18:40:33 -!- cherez has quit ("Leaving.").
18:50:35 -!- ehird` has joined.
18:52:10 <ehird`> RodgerTheGreat, i updated the mvldo site
18:52:18 <ehird`> 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:42:00 <oerjan> Gepongenpoken mit dem Fingerspitzgefhl
19:44:16 <ehird`> mvldo would not understand. :P
20:13:55 * pikhq has a remarkably slow idea for optimizing variable location. . .
20:14:14 <pikhq> Just test every permutation to try to find the shortest version.
20:17:34 <oerjan> so you would want to minimize a sum of absolute values of differences of locations...
20:17:55 <pikhq> RodgerTheGreat: My initial implementation of that algorithm managed to actually lengthen PFUCK.
20:18:26 <pikhq> 4943 characters with "optimized" variable location vs. 4558 without.
20:19:54 <oerjan> you could do local permutations, swapping only a small set
20:20:19 <oerjan> until you find a local minimum.
20:21:52 <pikhq> Or I could implement the optimization algorithm correctly.
20:22:13 <pikhq> I've currently got the highest-referenced variables at the beginning of the variable space, rather than in the middle.
20:27:42 <oerjan> it sounds sort of like a reversed traveling salesman problem, the path is fixed but the distances are not
20:36:27 <pikhq> Maybe only counting the +'s and -'s would help. . . Or figuring out how to weight each one. . .
20:40:38 <oerjan> that's what i meant with the sum of absolute values thing
20:41:04 <pikhq> RodgerTheGreat: Okay, I implemented *exactly* the algorithm specified. . .
20:41:07 <pikhq> And it seems to suck.
20:42:20 <pikhq> It's fairly consistently lengthening code.
20:42:40 -!- cherez has joined.
20:42:43 <pikhq> Even *remarkably* naive code.
20:50:34 -!- MichaelRaskin has left (?).
20:54:41 <pikhq> Ah. I see *why* it sucks. . .
20:54:53 <pikhq> Cherez and I figure that this *is* an NP problem. . . :/
20:55:13 <pikhq> RodgerTheGreat: I blame you for making me want to do this. :p
20:57:31 <bsmntbombdood> how can you calculate an offset with something like .[[>+<-]>-]
20:58:17 <cherez> I think it can be generalized to a sequencing problem, (most of which are NP-complete.)
20:58:25 <pikhq> I've already explained it. . .
20:58:40 <pikhq> Variables are either explictly or dynamically assigned a location in Brainfuck memory.
20:59:16 <pikhq> State of where in Brainfuck memory the thing is is kept.
20:59:43 <pikhq> 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:01:50 <pikhq> brainfuck.tcl in PEBBLE should be enlightening.
21:16:56 * pikhq curses at NP completness
21:32:10 <bsmntbombdood> all you need to do is to find a polynomial time solution to an NP complete problem
21:34:56 <pikhq> Why not say "all you need to do is solve the halting problem"?
21:37:08 <bsmntbombdood> actually, inventing a machine to solve the turing halting problem would be better than proving P=NP
21:38:08 <oerjan> only if P actually is =NP
21:41:06 -!- sebbu3 has joined.
21:42:49 <ehird`> RodgerTheGreat, become alive! :P
21:43:22 <oerjan> i knew people here were insane but i didn't know they thought they were Jesus...
21:43:32 <ehird`> bsmntbombdood, i want the computer from http://qntm.org/responsibility
21:43:44 <lament> damn, parsec error messages aren't helpful at all.
21:44:33 <ehird`> 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:46:15 <ehird`> read the story first please
21:46:27 <ehird`> "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 <ehird`> notable "pi to the last digit?"
21:47:28 <pikhq> ehird`, that guy is perhaps my favorite author. . .
21:47:52 <pikhq> cherez: You may wish to join in on the Sam Hughes worship.
21:48:21 <ehird`> do we have to build him a shrine made out of nanobots or something?
21:48:33 <oerjan> "to the last" has a bit different connotation
21:49:18 <ehird`> oerjan, "to the last digit"
21:49:27 <ehird`> oerjan, If it can compute up to that -- it can display it
21:49:43 <ehird`> oerjan, The whole machine is impossible to *start* with - it can do impossible things
21:50:51 <cherez> Pi to any arbitrary digit maybe, but to the last is meaningless.
21:51:06 <ehird`> "Pi to the last digit? Piece of cake."
21:51:22 <ehird`> Anyway, a computer with infinite power is meaningless in the first place
21:51:26 <ehird`> bsmntbombdood, i am well aware
21:51:44 <ehird`> bsmntbombdood, but this is clearly in an alternate universe where the impossible is possible
21:52:02 <ehird`> 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 <bsmntbombdood> that's like saying it can find the largest integer
21:52:40 <pikhq> One would assume that that means that it calculates all of pi (and displays it infinitely small).
21:53:13 <pikhq> And in the context that they discuss it, one would assume that they mean that unliterally. . .
21:53:23 <ehird`> But taking unliterally things literally is fun.
21:53:48 <ehird`> Of course, this is why infinite calculation is such a bizzare paradox:
21:54:05 <ehird`> 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 <cherez> Am I the only one who finds primality testing of every integer more interesting?
21:56:39 <lament> mm this "haskell" thing is impossible to debug
21:56:46 <pikhq> I prefer the idea of a superTuring system.
21:57:59 <lament> the existence of superturing systems doesn't contradict logic
21:58:05 <lament> the existence of the last digit of pi contradicts logic
21:58:09 <ehird`> cherez, I'd like to know the sum of N!
21:58:17 <lament> things that contradict logic are inherently boring because they're all equivalent
21:58:37 <ehird`> lament, the existance of anything that can compute infinites in less than infinite time and thus have infinite capability contradicts logic
21:58:41 <lament> 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 <lament> ehird`: no it doesn't, actually.
21:59:16 <lament> ehird`: i'm using "logic" in the strict mathematical sense.
21:59:33 <pikhq> There is one way for one to calculate pi to the last digit.
22:00:03 <pikhq> 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 <lament> but it can't prove that, since it's already been disproven.
22:01:28 <cherez> Incompleteness theorem.
22:01:29 <pikhq> Even if it disproves the validity of those?
22:02:13 <pikhq> Instead, just ask the thing for an *elegant* proof of Fermat's last theorem.
22:02:15 <cherez> An arithmetic mathematic system cannot be proven to be internally consistent.
22:02:18 <pikhq> Now *that* would be interesting. . .
22:03:27 <cherez> It's conceivable that a contradiction could be found in basic arithmetic which could mean we have to throw the whole thing out.
22:06:22 <oerjan> numbers above 10^40 might be inconsistent...
22:07:07 <cherez> I doubt it would be anything like that, but it can't be proven with our mathematics system.
22:08:15 <ehird`> 10^40 + 1 = universe collapses!
22:08:43 <cherez> 10000000000000000000000000000000000000001L
22:09:05 <cherez> Wait, I think my closet collapsed.
22:09:17 <oerjan> no, not all numbers but _some_
22:09:34 <lament> phew thank god i solved the problem!
22:09:42 <cherez> We can't prove that they don't.
22:09:48 <lament> i had to use endBy1 instead of sepBy1
22:10:21 <ehird`> lament, the HALTING problem??!1111
22:10:46 <oerjan> Parsec's power is immense.
22:10:58 * pikhq proposes a new Nobel prize. . .
22:11:06 <pikhq> The Nobel DidTheImpossible prize.
22:11:09 <cherez> I think it's called the Turing prize.
22:11:22 <pikhq> No, that's for AI.
22:11:44 <cherez> It would be unfair to give a guy Turing's award for stealing Turing's unsolvable problem.
22:11:44 <ehird`> and the first winner of Nobel DidTheImpossible prize is... a speck of dust!
22:11:53 <ehird`> then whoever awarded that wins the didtheimpossible award
22:11:53 <pikhq> Of course, if you discover an AI that solves the halting problem, then you win.
22:12:02 <oerjan> i think it should be the Adams prize
22:12:35 <cherez> I'm pretty sure the halting problem is provably unsolvable.
22:12:45 <cherez> At least in the most general sense.
22:13:20 <cherez> At least, a program that can analyze whether it itself halts is contradictory.
22:13:29 <cherez> Halt if and only if it doesn't halt.
22:14:01 <cherez> You can solve the halting problem for any arbitrary machine with finite memory.
22:14:18 <pikhq> Using a machine with greater memory, of course.
22:14:48 <cherez> Right, just run it until the state repeats or it halts, recording each state as you go.
22:14:58 <bsmntbombdood> the max shifts function is computable on machines with finite memorys
22:15:59 <cherez> The Busy Beaver function?
22:16:04 <lament> woohoo i wrote my first parser
22:18:37 <cherez> Now make it self-hosting.
22:19:36 <oerjan> that would sort of defeat the purpose of using parsec
22:19:43 <pikhq> He's just being evil. ;)
22:20:12 <cherez> 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 <lament> cherez: it doesn't parse anything attempting to be a turing-complete language.
22:21:59 <lament> although i suppose you don't need turing-completeness to be a parser.
22:22:28 <RodgerTheGreat> pikhq: dayum. It seemed intuitive that the algo I described could work... hm.
22:22:36 <cherez> Who attempts to be Turing-complete?
22:22:40 <pikhq> RodgerTheGreat: I may have done something horridly wrong.
22:23:07 <RodgerTheGreat> I'll do some work on it once I get my compiler off it's feet
22:23:17 <pikhq> Looking at it some more, I'm sure that I did. . .
22:23:20 <pikhq> 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 <pikhq> +- is 1, ., is 0.5, [] is 0.25
22:24:32 <RodgerTheGreat> tweaking your weighting values around a bit ought to at least help
22:25:30 <oerjan> why would you want anything but +- counted?
22:25:48 <pikhq> The issue is that it's not actually getting the variable location assignment right.
22:26:23 <pikhq> oerjan: It's measuring cell accesses, weighted towards +-.
22:26:26 <RodgerTheGreat> oerjan: because all operations done with a cell indicate it's being used for something
22:26:49 <RodgerTheGreat> we're trying to rank things based on how often they're used
22:26:53 <cherez> Why not measure the number of times each cell has to be reached?
22:27:06 <oerjan> oh, i thought you were just concerned with program length
22:27:30 <pikhq> Got a simple way to make a sorted list go to having the highest things in the center?
22:27:51 <pikhq> Like, from "5 4 3 2 1" to "1 3 5 4 2"
22:27:52 <cherez> If 1 cell is incremented a ton of times then left to rot, it only is a block in the middle.
22:28:04 <pikhq> cherez: You have a point.
22:28:11 <cherez> And belongs on an edge.
22:28:21 <RodgerTheGreat> pikhq: actually, take the second half of the list and flip it
22:28:27 <cherez> I'd count the number of nonconsecutive accesses.
22:28:37 <pikhq> RodgerTheGreat: Tried.
22:29:00 <pikhq> On my example, that produces "5 4 1 2 3" or "1 2 5 4 3"
22:29:25 <RodgerTheGreat> sort them and then start a new list, and then insert them, in order, to the center of the new list
22:30:37 <cherez> Are we trying to produce the shortest BF?
22:30:45 <pikhq> Just a sec while I experiment with cherez's idea.
22:31:13 <cherez> Since compiling it to C you can easily reference any pointer in 1 line.
22:31:59 <pikhq> In C, it doesn't matter.
22:33:47 <ehird`> i wrote some stuff about mvldo http://mvldo.nonlogic.org/wiki/index.php?title=Main_Page
22:35:53 <pikhq> {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 <pikhq> That can't be right. . .
22:36:15 <pikhq> Oh. Did it wrong. XD
22:36:30 <ehird`> RodgerTheGreat, anything you'd suggest changing/adding?
22:36:50 -!- oerjan has quit ("Good night").
22:37:33 <RodgerTheGreat> ehird`: aside from additional content I dunno... a cool logo of some kind for the top left corner?
22:37:39 <cherez> {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 <ehird`> RodgerTheGreat, heh, i meant in terms of the actual bot design :)
22:37:53 <cherez> We know what pikhq programmed his compiler to do.
22:38:09 <cherez> I was talking about the 0 you perv.
22:38:17 <ehird`> i think i shall laugh whenever the number 4 comes up.
22:38:26 <ehird`> because it's the number i laugh at when it comes up, obviously!
22:38:55 <cherez> Is the code too optimum?
22:38:59 <pikhq> Somehow, gotos to opcode are now *not* being counted, but gotos to everything else *are*.
22:39:03 <ehird`> 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 <ehird`> RodgerTheGreat, see the Response page
22:42:17 <ehird`> with enough persuasion, it will believe 2+2=5!
22:42:43 <pikhq> RodgerTheGreat: I just forgot to keep track of the location in the varopt pass.
22:43:27 <pikhq> Now, we're still getting something inefficient. . .
22:43:41 <pikhq> Maybe measure the distant it has to move?
22:44:36 <RodgerTheGreat> we could represent mappings of locations as a graph structure
22:44:48 <pikhq> It's behaving as I expect, at least.
22:44:56 <RodgerTheGreat> each variable keeps track of others that are accessed before or afterwards
22:45:22 <cherez> Forgetfulness has a typo!
22:45:31 <cherez> Clearly wikis aren't a reliable source of information.
22:46:54 -!- immibis has joined.
22:46:55 <cherez> Can't you see I represent traditionalist views of knowledge!
22:47:39 <cherez> 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 <RodgerTheGreat> speaking of textbooks, who's interested in some lucrative deals? Who'll bid on a copy of "The C++ Programming Language"?
22:49:48 <ehird`> if i ever write a C compiler
22:49:52 <ehird`> this will be an easter egg:
22:49:54 <RodgerTheGreat> yeah, fuck this language and in particular fuck this book
22:50:15 <ehird`> typedef language int; language C = <C standard number - 89, or 99>; C++; /* rest of program is in C++ */
22:50:52 <immibis> you mean typedef int language;
22:51:12 <RodgerTheGreat> 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 <cherez> That would be a lot of extra work for an easter egg.
22:51:42 <cherez> Ya, I'd be embarrassed if I made C++.
22:52:26 <ehird`> not easter-eggy enough
22:52:32 <ehird`> i need something that's valid C code
22:52:35 <RodgerTheGreat> I consider C a poorly designed language, but C++ compounds it with mind-numbing degrees of idiocy
22:52:45 <ehird`> perfectly valid C code containing C++
22:52:51 <cherez> language C=C++; is valid but undefined.
22:53:58 <ehird`> cherez, undefined = :(
22:54:32 <ehird`> its not just undefined; its completely meaningless
22:54:49 <cherez> Which is why it's a good easter egg.
22:54:57 <cherez> No one will code like that seriously.
22:55:20 <cherez> If they do, they probably meant to use C++ anyway.
22:55:50 <immibis> C+=C++ + ++C - (C -= C-- - --C)
22:56:09 <cherez> what's unclear is whether C = C++ should compile to:
22:56:48 <ehird`> int C = (language)<89 or 99>;
22:57:00 <ehird`> it's the casting to (language) y'see.
22:57:18 <immibis> probably temp=C, C=temp, C++
22:57:25 <cherez> int C = (language)<89 or 99 or k&r>
22:57:48 <immibis> int k=rand(); int r=rand();
22:57:51 <cherez> immibis: It can mean either, and compilers have been written that assumed both.
22:57:54 <immibis> you need to define k&r first
22:58:00 <cherez> One compiler produced C = C + 2 somehow.
22:58:26 <ehird`> cherez, the <> is metaphorical
22:58:31 <ehird`> you put whatever C version you're compiling in there
22:58:44 <ehird`> i.e. "int C = (language)89" C is the language I am using, it is C89
22:59:01 <immibis> you need brackets. (C++)->zoom, don't you?
22:59:18 -!- jix has joined.
23:00:25 <immibis> well at least you need to define C first.
23:00:43 <immibis> struct {int zoom;} *C; C++ -> zoom
23:00:52 <ehird`> i didn't mean zoom in that way
23:01:14 <immibis> you can't use -> on a string
23:01:41 <immibis> only on a class, struct, or union
23:01:59 <pikhq> Finally got variable assignment down to something sane.
23:02:23 <pikhq> Unfortunately, *still* elongating programs.
23:02:25 <ehird`> you know what I meant!!!!
23:02:34 <ehird`> it was an arrow of illustration! not a peice of code!!
23:03:10 <ehird`> pikhq, does pebble allow macros to compute something at compile time?
23:03:16 <pikhq> {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 <ehird`> and if so does it have a push_brainfuck_code_to_src or similar?
23:03:22 <pikhq> ehird`: Not really.
23:03:27 <cherez> Just think of it as 7% worse.
23:03:29 <ehird`> if so, you can implement subroutines and just about anything in itself
23:03:53 <pikhq> It's not that complex of a macro language.
23:04:06 <pikhq> Think "C preprocessor", not "Lisp macros".
23:04:13 <cherez> Is that using the weighting method I suggested?
23:04:28 <pikhq> Each goto counts as 1.
23:04:34 <pikhq> And now it's got each bit centralised.
23:04:49 <pikhq> Let's see how it works on my game, which is much more naive. . .
23:04:52 <ehird`> pikhq, i was thinking of implementing, like, a function system in it
23:04:55 <ehird`> using a stack and stuff.
23:05:26 <ehird`> 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 <ehird`> i guess maybe i could do that using low-level commands?
23:06:24 <pikhq> The naive game is 41177 chars with optimisation, and 37324 without.
23:06:45 <pikhq> I think that I'm better at figuring what's good out than my compiler is.
23:08:10 <pikhq> RodgerTheGreat: Didn't you suggest something about fiddling with sequential access?
23:08:34 <pikhq> (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 <lament> damn. Programming requires thinking.
23:27:26 <lament> bsmntbombdood: how's haskell going?
23:29:02 <lament> 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:59 -!- jix has quit ("CommandQ").
23:37:31 <lament> http://www.wired.com/culture/education/news/2007/08/winniecooper_QA
23:50:06 -!- pikhq has changed nick to pikhq_.
23:50:43 -!- pikhq_ has changed nick to pikhq.