00:00:10 -!- Sgeo_ has quit (Read error: Connection reset by peer).
00:00:30 <tswett> You know, most of the Scandinavia dudes have nice and short words. You've got your Swedes, your Finns, and your Danes.
00:00:45 <tswett> But Norway and Iceland can't cooperate; they have to have Norwegians and Icelanders.
00:02:05 <tswett> We ought to call them Nords and... something.
00:03:45 <tswett> Nords and ice. They don't get a proper noun, or a word that distinguishes between the singular and the plural. They're just ice.
00:05:03 <tswett> You know, I'm fine with calling them Icelanders.
00:06:23 -!- elliott has joined.
00:11:24 <oerjan> if you keep half-insulting us like that, we may have to rejuvenate "vikings".
00:11:29 -!- Sgeo has joined.
00:12:06 <Gregor> Those Noroms are so sensitive 8-D
00:16:04 <Sgeo> targ norn dead
00:16:56 <Sgeo> enum 4 0 0 dead next
00:20:36 -!- elliott has quit (Remote host closed the connection).
00:21:32 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:22:21 -!- elliott has joined.
00:27:49 <zzo38> TeX is interpreted programming language, not compiled. It can be compiled into a binary code but not the native code, but they also have category codes
00:39:50 -!- crystal-cola has quit (Quit: leaving).
01:26:58 -!- azaq23 has quit (Quit: Leaving.).
02:39:53 -!- MDude1350 has changed nick to MSleep.
02:48:13 -!- calamari has quit (Quit: Leaving).
02:53:18 -!- elliott has quit (Remote host closed the connection).
03:04:26 <zzo38> Is "BIDAK IQUOOD" the good name for D&D characters???
03:09:16 -!- mrjbq7 has joined.
03:13:16 -!- mrjbq7 has quit (Client Quit).
03:18:56 <zzo38> That is not there proper name, but it is the name that everyone else has to use for them.
03:25:45 -!- augur has joined.
03:35:13 -!- oerjan has quit (Quit: leaving).
03:54:28 -!- TeruFSX has joined.
04:12:18 -!- sebbu2 has joined.
04:12:18 -!- sebbu2 has quit (Changing host).
04:12:19 -!- sebbu2 has joined.
04:15:58 -!- sebbu has quit (Ping timeout: 260 seconds).
05:12:39 -!- pizearke has joined.
05:14:39 -!- TeruFSX has quit (Read error: Operation timed out).
05:25:05 -!- TeruFSX has joined.
05:31:36 -!- TeruFSX has quit (Ping timeout: 276 seconds).
06:35:52 -!- sebbu2 has quit (Ping timeout: 264 seconds).
06:42:53 -!- sebbu has joined.
07:21:00 -!- zzo38 has quit (Remote host closed the connection).
07:41:22 -!- XXX-76C28611432 has joined.
07:42:33 -!- XXX-76C28611432 has quit (Client Quit).
08:57:56 -!- monqy has quit (Quit: hello).
09:08:36 <Sgeo> Anyone awake and willing to help me?
09:25:24 <Sgeo> That'll teach me to math
09:25:26 -!- siracusa has joined.
09:26:06 <Sgeo> I went from x' - x0 = -(y - y0) to forgetting to distribute that - to the y
09:47:38 <pizearke> (I mean, I probably can't help you, but I might as well try, right?)
09:49:21 -!- ais523 has joined.
09:49:51 <Sgeo> I already solved my problem
09:50:44 <pizearke> out of curiosity, what were you trying to do?
09:51:25 <Sgeo> Figure out some rotation stuff
09:51:47 <Sgeo> http://pastie.org/1856142
09:52:30 <Sgeo> I wanted verification that that was correct. After I fixed another bug with my rotation stuff, realized for certain that that was incorrect. Some annoying debugging later, I see that I lost a -
09:55:52 <Sgeo> I should say 90 degrees somewhere in there, but me
09:55:57 <Sgeo> Under the gun right now
10:16:34 -!- pizearke has quit (Ping timeout: 240 seconds).
10:19:17 -!- pizearke has joined.
11:00:31 -!- augur has quit (Remote host closed the connection).
11:11:50 -!- clog has joined.
11:25:16 -!- crystal-cola has joined.
11:48:33 -!- augur has joined.
11:52:14 <quintopia> someone tell me what is wrong with this
11:52:25 <quintopia> regcomp(regex,".*rvm(.+)-([0-9]+)-([0-9]+)\\.log$",REG_NEWLINE)
11:53:04 <quintopia> in every regex tester i've tried that in, it matches "rvmtestseg-1000-100.log"
11:53:11 <quintopia> in my program it doesn't match that
11:53:47 <quintopia> blithely reports no match on the exact same string
12:00:48 -!- TeruFSX has joined.
12:07:48 -!- TeruFSX has quit (Remote host closed the connection).
12:17:04 <lifthrasiir> quintopia, what, are you writing a your own regex library?
12:18:51 <quintopia> no this is the only regex i need to work
12:21:17 <siracusa> quintopia: Sure you don't need REG_EXTENDED for $?
12:21:53 <quintopia> i dropped the $ and it still didn't work, so the problem is obviously elsewhere
12:22:37 <lifthrasiir> uhm, i was sleepy and missed sisacusa's answer. well, basically similar.
12:22:59 <quintopia> i guess the parens are extended RE
12:23:16 <fizzie> Parens without \ in front are extended-style.
12:26:11 <crystal-cola> What does a rectangular matrix of integers define?
12:37:02 <quintopia> why do you ask of integers in particular
12:38:18 -!- Sgeo has quit (Ping timeout: 240 seconds).
12:59:52 -!- FireFly has joined.
13:14:20 -!- MSleep has changed nick to MDude.
13:27:18 <crystal-cola> I know that matrices represent linear transforms but there are probably other interpretations too (?)
13:38:16 <Gregor> I misread "gcd" there as "god"
13:38:21 <Gregor> I was wondering what the god function was.
13:38:59 <Gregor> All this time, and god was just the greatest common divisor.
13:41:47 <crystal-cola> I don't know why gcd 111111111...11 111111..111 = 111...1111
13:43:16 -!- BeholdMyGlory has joined.
13:45:08 <copumpkin> http://en.wikipedia.org/wiki/Repunit
13:46:27 <crystal-cola> > map length $ group .sort . show $ 11111111111111111111111111111111111111111111111111111111^2
13:46:36 <crystal-cola> > map length $ group .sort . show $ 111111111111111111111111111111111111111111111111111111111111111111111111111111111111^2
13:46:45 <crystal-cola> > map length $ group .sort . show $ 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111^2
13:47:45 <Vorpal> <copumpkin> > 111111111^2 <lambdabot> 12345678987654321 <-- huh, neat
13:48:56 <Vorpal> crystal-cola, which one should be a plus?
13:54:38 <Vorpal> crystal-cola, wait is that not the same as gcd x x = x ?
13:55:51 <Vorpal> crystal-cola, what happens for other bases than base 10? does the same work if you read the number as, say, an octal number?
13:57:14 <Vorpal> hm. There is probably a reason but I have no clue what it could be
13:58:44 <Vorpal> I'd really like to know why
13:58:53 <Vorpal> > gcd 5555555555555555 555555555555555555
13:58:59 <Vorpal> > gcd 5555555555555555 555555555555555555555555555555555555555555
13:59:10 <Vorpal> > gcd 5555555555555555 5555555555555555555555555555555555555555555
13:59:44 <Vorpal> > gcd 13131313131313131 13131313131313131
13:59:50 <crystal-cola> > gcd 13371337133713371337133713371337 133713371337133713371337133713371337
14:00:03 <Vorpal> > gcd 12341234 1234123412341234
14:00:18 <Vorpal> crystal-cola, there better be a good reason for this!
14:00:45 <crystal-cola> imagine if no others than the ones we happened to try out did this
14:01:10 <Vorpal> crystal-cola, imagine that most but not all did this
14:01:23 <Vorpal> not very likely though
14:01:57 <Vorpal> crystal-cola, well, some stuff only have counter-examples for very very large numbers.
14:08:27 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:12:27 <quintopia> crystal-cola: it reduces to showing 10..010..010..01 does not have common divisors with (that same thing with more ..)
14:14:11 <quintopia> yeah, dividing by 111..111 may be the thing to do to see that
14:15:32 -!- MigoMipo has joined.
14:30:25 -!- augur has quit (Remote host closed the connection).
14:31:59 -!- augur has joined.
15:32:00 -!- augur has quit (Remote host closed the connection).
15:34:57 -!- augur has joined.
15:40:38 <Gregor> WANTED: Grammar description language capable of describing indentation-sensitive languages which isn't just "BNF + indentation bullshit"
15:42:33 <ais523> Gregor: just preconvert the indentation to braces
15:43:30 <Gregor> That doesn't give me anything fundamentally interesting.
15:44:37 <Gregor> What I want is to find a set of languages slightly greater than CFLs that includes indentation-sensitive languages, but still has some meaningful guarantees (parseable in finite time?)
15:46:16 <Gregor> Err, obviously "parseable in finite time" is not a good property since that's CSLs :P
15:47:23 <Gregor> Basically, I wonder if there's something in between that includes Python's grammar but excludes English, which is fundamentally more interesting than "CFLs + Python"
15:54:00 <Gregor> For instance, if I allow this: IfStatement = / /*n /if/ IfCondition /:/ Newline NestedStatements(n) \ NestedStatements(n) = / /*(m>n) Statement (Newline NestedStatements(n)){opt}
15:54:57 <Gregor> Somewhere one of those should be marked as a peek, but anyway.
15:55:12 <Gregor> What property can allow me to describe the carrying of these "repetition values"? Clearly this is not a CFL, and yet if I had a strict description of what allowed this it would be much weaker than CSLs.
16:12:21 -!- elliott has joined.
16:13:56 <elliott> 15:40:38: <Gregor> WANTED: Grammar description language capable of describing indentation-sensitive languages which isn't just "BNF + indentation bullshit"
16:14:00 <elliott> Gregor: Is this for Fythe? :P
16:14:13 <crystal-cola> Will the death of Osama bin laden lead to any new insights into the Riemann hypothesis?
16:14:39 <elliott> Gregor: BTW, Haskell and Python do it differently.
16:14:55 <elliott> Indentation-for-braces is totally non-context-free-and-all-sorts-of-shit, Haskell's is probably even worse.
16:15:06 <elliott> Gregor: Preprocessing is pretty much the only option /shrug
16:17:25 <ais523> Gregor: go invent two-dimensional BNF
16:17:42 <ais523> as in, see the file as a two-dimensional image, not as a sequence of bytes
16:17:49 <ais523> I think there might be merit to that approach
16:22:53 -!- elliott has quit (Remote host closed the connection).
17:04:13 -!- poiuy_qwert has joined.
17:09:21 <Gregor> elliott (not here): Well, my plan is to just make it so any general function can be used as a parser, which solves all problems, but I was just wondering if I could find a middle-ground.
17:09:31 <Gregor> <ais523> Gregor: go invent two-dimensional BNF
17:09:31 <Gregor> <ais523> as in, see the file as a two-dimensional image, not as a sequence of bytes
17:10:28 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
17:12:46 -!- variable has quit (*.net *.split).
17:12:46 -!- myndzi has quit (*.net *.split).
17:13:33 -!- variable has joined.
17:13:33 -!- myndzi has joined.
17:24:59 -!- sebbu2 has joined.
17:24:59 -!- sebbu2 has quit (Changing host).
17:24:59 -!- sebbu2 has joined.
17:28:44 -!- sebbu has quit (Ping timeout: 260 seconds).
17:33:52 -!- tzxn3 has quit (Read error: Connection reset by peer).
17:43:53 -!- Slereah_ has quit (Ping timeout: 260 seconds).
17:47:38 -!- Slereah has joined.
17:50:18 -!- elliott has joined.
17:59:07 <Gregor> I'll bet (note: no actual bet) that you could divide indentation-sensitive languages into two CFL (or near-CFL?) parsing steps given the "view it as a 2D array" approach, one of which is top-to-bottom-then-left-to-right and essentially ends up being the brace-adding preprocessing step (this in the case of Python where it really is just brace-adding), and the other is a standard left-to-right-then-top-to-bottom by-the-book parser.
18:00:32 <elliott> http://www.aftertherapturepetcare.com/
18:00:54 <ais523> elliott: the URL is enough, there's no need to even visit the website
18:01:11 <elliott> Gregor: Yeah, but you need to be thinking about Haskell here, where you can freely mix {;}-style blocks and aligned-or-indented blocks
18:01:26 <elliott> Basically it's a mess, lexer-wise.
18:01:53 <elliott> (I'm pretty sure you can do it as just "everything must line up with the first code line, and the first code line can have arbitrary whitespace before it", but still.)
18:02:41 <elliott> "Who are these Volunteer Pet Caretakers and how do I know they'll take good care of my pets?
18:02:42 <elliott> Most Volunteer Pet Caretakers fit this description:
18:02:42 <elliott> They are atheist or another non-Christian religion.
18:02:48 <elliott> Oh god I have to sign up as a caretaker it's too hilarious not to.
18:03:20 <elliott> "As far as the data about all registered pets, it is located on Google servers (the most secure servers in the world) as well as our own server in Lansing, Michigan (away from political and military hot spots to minimize chance of destruction if there is a post-Rapture war)."
18:06:04 <ais523> elliott: thinking about it, the people in charge of that site are probably very smart
18:06:14 <elliott> ais523: I'm /thinking/ it's a joke
18:06:16 <ais523> they're likely hoping that their services are completely useless
18:06:17 <Gregor> "You have a responsibility, as a good steward of your pets, to ensure your pet is taken care of if something happens to you, such as death or rapture."
18:06:20 <elliott> but it's so well-done I can't tell
18:06:25 <Gregor> I love how this sentence starts totally reasonable, then goes retarded.
18:06:31 <ais523> and if they can charge for them anyway, and people will purchase it, it'll make a fortune
18:06:42 <elliott> Gregor: wow, it turns amazing in the last word
18:06:48 <elliott> ais523: It's only ten dollars initial signup :P
18:06:57 <elliott> ais523: And NO MONTHLY FEES
18:07:23 <ais523> elliott: I hope it allows a method of payment other than credit card
18:07:38 <ais523> otherwise it triggers that "number required for buying and selling" bit of Revelations
18:07:43 <elliott> The great thing is it even sort of makes sense from a Christian point of view... you might not trust atheists to follow up on their word, but shit, who's gonna be an atheist after the fuckin' Rapture?
18:08:12 <elliott> p.s. nitpick it's Revelation
18:08:45 <ais523> that bit's great, as it sets the sort of people who interpret the Bible literally against the sort of people who spend their time thinking up of new ways to deny human rights for their own profit
18:08:56 <Gregor> <ais523> otherwise it triggers that "number required for buying and selling" bit of Revelations // they're not trying to STOP the rapture
18:09:13 <elliott> This thing has SO MANY LAYERS
18:09:20 <elliott> At this point I want it to be real :P
18:09:40 <ais523> Gregor: but the people buying the services might be afraid that by buying the rapture petcare service, they're willingly accepting the mark of the beast
18:09:45 <elliott> Anyway, obviously you just have to convert your pets to Christianity and they'll get raptured with you.
18:09:47 <ais523> so that later on, when the rapture actually happens, they won't be included
18:09:57 <elliott> If they don't, well, it's their fault for not accepting Animal Jesus' love.
18:10:01 <Gregor> "Woof Jesus woof woof"
18:10:08 -!- Gregor has changed nick to Yahweasel.
18:10:21 <Yahweasel> <-- guaranteed anti-rapture insurance.
18:10:21 <elliott> And Yahweasel said to Meowsus...
18:10:40 <elliott> googled "furry bible", was not disappointed
18:10:51 <elliott> "[...] a Bible fanfic - FanFiction.Net"
18:10:56 <elliott> Also known as the Book of Mormon.
18:11:33 <elliott> i'm not sure the person who wrote this furry bible ever actually read a bible
18:13:11 <Yahweasel> [22] And the rib, which the LORD God had taken from man, made he a catperson, and brought her unto the man.
18:14:54 <Yahweasel> I keep wanting to catch up, but haven't had the time.
18:15:10 <elliott> ais523: are you sure the idea you had is unbeatable?
18:15:53 <elliott> Yahweasel: quintopia: Are you ever gonna code that fixed-point system or do I have to
18:16:14 -!- Slereah has quit (Ping timeout: 240 seconds).
18:16:19 <Yahweasel> elliott: Enjoy doing that without a 1-8 btw.
18:16:20 <elliott> Yeah but maybe you changed your mind :|
18:16:25 <elliott> Yahweasel: It'll be great.
18:16:40 <Yahweasel> Here, have a "#" so you can #define
18:17:06 <Yahweasel> Now you just need #define ONE (9/9) #define TWO (ONE+ONE) etc
18:17:14 <quintopia> elliott: i started it but then i had to do these huge stupid projects. i finished the lrvm thing and so i should be able to finally get back to that next week
18:17:46 <elliott> quintopia: Hooray, maybe I'll even write lance.
18:17:51 <ais523> elliott: I don't think slightly-improved-slowpoke is unbeatable; but I can't find any viable way to beat it with a defensive program
18:18:05 <elliott> ais523: that doesn't matter if the hill has enough good attacker programs, though
18:18:10 <elliott> thankfully, matches don't exist in a vacuum
18:18:11 <ais523> it can definitely be beaten by programs similar to itself and slightly tweaked
18:18:12 -!- Slereah has joined.
18:18:17 <Yahweasel> ais523: THEN WHY ISN'T IT ON THE HILL
18:18:20 <ais523> and maybe by different aggressive strategies altogether
18:18:52 <ais523> and because I haven't written slightly-improved-slowpoke yet; a) it's theoretical, b) there's no point as it'd just get one win that slowpoke doesn't, against anticipation
18:19:12 <ais523> the slight improvement would make slowpoke rather longer, by a factor of 4 or so, as it doesn't RLE well
18:19:38 <elliott> maybe we need a new construct, <...>
18:19:51 <elliott> basically, it runs the innards as a regular-BF-without-input-and-with-BF-Joust-shorthand program
18:19:57 <elliott> and then inserts the output into the program
18:20:05 <ais523> what I really want is (?number) from Perl
18:20:17 <ais523> although even that wouldn't compress anticipation all the way
18:20:29 <ais523> elliott: basically, "replace this with a copy of the nth paren group in the program"
18:20:37 <elliott> ais523: that's subroutines
18:20:45 <ais523> elliott: recursive subroutines
18:20:52 <ais523> and obviously it's cheating
18:20:54 <elliott> ais523: it can do recursion? ugh
18:21:00 <ais523> by putting it inside itself
18:21:05 <elliott> wouldn't it expand to an infinite string, conceptually?
18:21:09 <elliott> and thus be disallowed by a sane implementation?
18:21:20 <ais523> and yes, it would, you'd need to put some sort of limit on there
18:21:53 <elliott> I'd be ok with something like
18:22:08 <elliott> for efficiently-interpreted macros
18:22:15 <elliott> but it's better than huge programs
18:23:41 <ais523> I've thought of an interesting alternative for a separate hill, which bans huge and highly-nested programs, which works like this: a) all programs must fit in one line of IRC (510 chars minus headers); b) ({})% abbreviation can't be used, just ()*; c) defensive tiebreak rule
18:24:17 <ais523> the defensive tiebreak rule is, if the run times out, whenever a program used . at least 59 times in a row, it gains 1 point for each time it used it in excess of the 58th
18:24:17 <elliott> yeah, but that's boring :)
18:24:24 <ais523> and whichever program got more points wins
18:24:58 <ais523> basically, the motivation behind this is that a full-tape clear is the typical way defense programs win, but takes a lot of space to write
18:24:58 -!- elliott has quit (Read error: Connection reset by peer).
18:24:58 -!- elliott_ has joined.
18:25:18 <ais523> if you have at least 59 cycles spare, and know the number exactly, you can fit in part of a full-tape clear
18:25:25 <ais523> so just let the program do . a lot and imply the clear for them
18:27:47 <ais523> I think that change will leave aggressive and defensive programs of similar complexity the same length
18:27:48 -!- elliott has joined.
18:27:51 <elliott> <elliott_> ais523: arguably, for the main hill, we /really/ need a TC macro language
18:27:52 <elliott> <elliott_> because in the long run, it'll either be that or gigantic programs
18:27:54 <elliott> <elliott_> because BF has almost zero abstraction capability, and with BF Joust, the fact that every cycle matters reduces that to flat out zero
18:28:22 -!- elliott_ has quit (Read error: Operation timed out).
18:29:22 <ais523> [19:24] <ais523> if you have at least 59 cycles spare, and know the number exactly, you can fit in part of a full-tape clear
18:29:24 <ais523> [19:24] <ais523> so just let the program do . a lot and imply the clear for them
18:29:25 <ais523> [19:26] <ais523> I think that change will leave aggressive and defensive programs of similar complexity the same length
18:29:36 <ais523> and yes, the only reason defense programs work is laziness
18:29:44 <ais523> and the program size limit
18:29:57 -!- Slereah has quit (Ping timeout: 258 seconds).
18:29:57 <ais523> otherwise, it's trivial to unroll loops and get them to do something slightly different each time
18:30:04 <ais523> laziness in the normal English sense, not the programming sense
18:30:20 -!- Slereah has joined.
18:30:28 <ais523> well, you can just change all whiles into nested ifs
18:30:50 <ais523> and ifs by changing a if(*tape) c else d; e into a[ce]de
18:31:07 <ais523> the resulting programs would be larger than the size of the universe if done naively
18:31:44 <ais523> it gets larger by a factor of about 2 for every if used
18:31:55 <ais523> and so it goes exponential, and could easily get to 2^128 or even 2^1000
18:32:59 <elliott> Yahweasel: Anyway, re: Python/Haskell, proggit has just reminded me that C isn't context-free either... preprocessing of some kind (usually in the lexer) is kind of inevitable for a ton of languages.
18:33:07 <elliott> And the twodee thing won't fix it for C either.
18:33:50 <Yahweasel> elliott: What's the issue for C? Hopefully not di/trigraphs ...
18:33:57 <elliott> Yahweasel: typedef-name: identifier
18:34:21 <elliott> Oh and it's even worse than that... http://eli.thegreenplace.net/2011/05/02/the-context-sensitivity-of-c%E2%80%99s-grammar-revisited/
18:34:52 <elliott> "I don’t really see a problem with that. The context is pretty clear.
18:34:52 <elliott> You must not parse C code with a bunch of regex. YACC should know how to deal with scopes
18:34:52 <elliott> in python you can have str pointing to the number 5 and, at some other point, back to the string class
18:34:52 <elliott> This also can be an extension of the SFINAE rule… I guess"
18:35:45 <elliott> Yahweasel: BTW, http://scottmcpeak.com/elkhound/ seems like a pretty good parser generator as far as language support and speed goes... "Elsa can parse most C++ "in the wild". It has been tested with some notable large programs, including Mozilla, Qt, ACE, and itself."
18:35:59 <elliott> Oh, it's not a parser generator.
18:36:08 <elliott> Elsa is a C++ generator written in Elkhound.
18:36:17 <elliott> It's still restricted to context-free though, like everything.
18:36:37 <elliott> Yahweasel: You want imbeciles? I'll give you imbeciles:
18:36:38 <elliott> Why do you not put the downloads here for people to get your softs? It is very troublesome otherwise.
18:36:51 <elliott> The softs for context sensitivity of C's grammar.
18:36:59 <Yahweasel> int aa = sizeof(AA), AA, bb = sizeof(AA);
18:37:21 <elliott> C: MAYBE KIND OF SHITTILY DESIGNED????
18:39:00 <Yahweasel> However, all of the examples I see can be pushed past parsing by just adding a single nonsensical parsing rule and rejecting it as a semantic error. e.g. make "declaration = identifier identifier" valid, then consider that case in light of the actual compiler's understanding of scopes.
18:39:23 <Yahweasel> Probably missing something, or maybe the issue is simply that the definition says it's a syntax error instead of a semantic error.
18:39:32 <elliott> Yahweasel: Well, sure, you can make your parser just parse any number of characters and do nothing with them and handle everything later...
18:39:39 <elliott> But a parser that doesn't produce a useful AST sucks :P
18:39:44 -!- poiuy_qwert has joined.
18:39:49 <Yahweasel> I think my example AST here is still useful.
18:39:50 <elliott> Since the handling of both cases in e.g. f((T)[asterisk]x) is totally different.
18:40:16 <Yahweasel> Bleh, that really is the grottiest case, stupid unary.
18:40:40 <elliott> I suppose if you do it visitor-pattern style, then the node can look at global data, construct a new proper AST node, and forward the message on...
18:40:57 <elliott> Especially since multiplication now becomes uncertain :P
18:41:05 <elliott> (OK, it could special-case "statement with just multiplication" but BLERGH)
18:41:07 <elliott> Yahweasel: Oh wait it's worse
18:41:22 <elliott> Yahweasel: Is that seq(multiply(T,x),y) or decl(T,[x,y])
18:41:28 <elliott> EVERYTHING IS AMBIGUOUS YAAAAAAAAY
18:41:57 <elliott> Bahahahaha why is that even legal
18:42:08 <elliott> Deewiant: Considering that the ambiguity exists entirely independently of the comma...
18:42:11 <elliott> The comma just makes it worse :P
18:42:34 <Deewiant> Disallow no-op expressions at the language level and it's always decl
18:42:46 <elliott> Secondly, f((T)[asterisk]x)
18:43:04 <elliott> <Yahweasel> typedef char AA;
18:43:05 <elliott> <Yahweasel> int aa = sizeof(AA), AA, bb = sizeof(AA);
18:43:43 <elliott> I can see you're approaching this language flaw in the best way :P
18:44:28 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
18:44:29 <Yahweasel> OK, I want a grammar description language that captures C, Python, Haskell and all CFLs.
18:44:51 <elliott> Or any other Turing-complete language, you're welcome.
18:44:52 <Yahweasel> OK, I want a grammar description language that captures C, Python, Haskell and all CFLs but is not itself TC.
18:45:21 <elliott> Yahweasel: That one I mentioned plus HeyHandleC/Python/Haskell declarations.
18:46:01 <elliott> Yahweasel: It's pretty much inherently going to be ad-hoc, dude :P
18:46:23 <Vorpal> <elliott> Bahahahaha why is that even legal <-- is it?
18:46:31 <Yahweasel> elliott: Is it just me, or to types ruin EVERYTHING.
18:46:31 <elliott> Yahweasel: If I were you, I'd extend Fythe's grammar thing to allow portions of ad-hoc TC code mixed in with the rest of the grammar... then you can localise the ugly.
18:46:40 <elliott> Also, yes; let's use Forth forever.
18:46:47 <Vorpal> elliott, do typedefs live in a difference "name space" from the variable names?
18:46:58 <elliott> Vorpal: Yes, except variables shadow them.
18:47:00 <elliott> <elliott> Yahweasel: If I were you, I'd extend Fythe's grammar thing to allow portions of ad-hoc TC code mixed in with the rest of the grammar... then you can localise the ugly.
18:47:03 <Yahweasel> elliott: That's how it's intended to work, I just haven't gotten around to adding "terminals" which are functions.
18:47:04 <elliott> Yahweasel: And make the rest of it that GFL thing.
18:47:16 <elliott> So you get all context-free languages without that.
18:47:30 <Vorpal> but A B; following that line
18:47:30 <elliott> <elliott> <Yahweasel> typedef char AA;
18:47:31 <elliott> <elliott> <Yahweasel> void foo()
18:47:31 <elliott> <elliott> <Yahweasel> int aa = sizeof(AA), AA, bb = sizeof(AA);
18:47:41 <elliott> I think A B; /is/ valid afterwards because it's unambiguously the typedef.
18:47:41 <Vorpal> asking about shadowing
18:47:49 <elliott> <elliott> <elliott> <Yahweasel> typedef char AA;
18:47:49 <elliott> <elliott> <elliott> <Yahweasel> void foo()
18:47:49 <elliott> <elliott> <elliott> <Yahweasel> {
18:47:50 <elliott> <elliott> <elliott> <Yahweasel> int aa = sizeof(AA), AA, bb = sizeof(AA);
18:47:52 <elliott> <elliott> <elliott> <Yahweasel> }
18:48:32 <elliott> Never again can a C programmer complain that C++ is impossible to parse.
18:48:41 <Vorpal> elliott, from now on I will say sizeof(char) instead of 1
18:48:52 <elliott> Vorpal: Awesome, now I can type numbers in my C code
18:48:56 <elliott> (9/9) was slow because it used division
18:49:01 <elliott> But sizeof(char) will be resolved at compile time
18:50:00 <Vorpal> elliott, <elliott> I just realised you can probably apply space-filling curves for the storage layout of infinite-in-all-directions chunks. <-- how efficient?
18:50:11 <Vorpal> elliott, you weren't in there
18:56:02 <Yahweasel> ais523: Maaaan, slowpoke looks SO SIMILAR to FFSPG.
18:56:28 <ais523> it is similar in several ways
18:56:35 <ais523> but there are important differences too
18:56:58 <ais523> I mean, slowpoke beat more or less the entire field without tweaking (it did after I finished fixes for obvious bugs), FFSPG didn't even after tweaking
18:57:56 <ais523> and the reason is, slowpoke tries to set up decoys quickly and start attacking quickly, FFSPG spends a long time setting up
18:58:36 <elliott> Yahweasel: It's even better.
18:58:40 <ais523> although slowpoke outruns one major program (it might be FFSPG) by only a few cycles
18:58:43 <ais523> and I didn't realise while making it
18:58:50 <elliott> Yahweasel: Typecast and minus have different precedence.
18:58:52 <elliott> :DDDDDDDDDDDDDDDDDDDDDDDDDDD
18:59:01 <elliott> ;D::D;DDDD;DDDDDDDDDDDDDD;DDD
18:59:16 <ais523> oh, a could be either a type or a variable, so how it parses depends on the identifier table
18:59:29 <elliott> ais523: Yes, we've already covered that, this is just making it even worse ;P
18:59:54 <ais523> it's like return (a, b) in Perl
18:59:57 <ais523> we were both shocked by that one
19:01:08 -!- zzo38 has joined.
19:01:23 <zzo38> I made program in TeX for recording a D&D game. Did you play this D&D game?
19:01:50 <ais523> elliott: parses it as an array constant or comma operating depending on whether the subroutine it's in was called in scalar or list context
19:02:11 <elliott> ais523: is that the trick that one package uses to tell you how you're being called?
19:02:18 <ais523> at least, I think that's the explanation you came up with for the behaviour
19:02:29 <ais523> and probably not; wantarray and caller are both builtin functions
19:02:40 <ais523> so no need for tricks like that
19:03:17 <Yahweasel> I'm fairly certain that Perl literally cannot be parsed.
19:03:37 <Yahweasel> It just runs around and screams then barfs out some data.
19:04:24 <zzo38> Yahweasel: How can that???????????
19:04:39 <elliott> Wow, I think you segfaulted zzo38, Yahweasel.
19:07:11 -!- sebbu2 has quit (Read error: Connection reset by peer).
19:07:37 -!- sebbu has joined.
19:07:37 -!- sebbu has quit (Changing host).
19:07:37 -!- sebbu has joined.
19:09:05 <olsner> the tricky part is making it scream the right things and run in the right direction
19:09:41 <zzo38> Yes, it will have to be
19:11:51 <elliott> reddit title: An Alternative to Floating-Point Arithmetic
19:12:03 <elliott> actual post title: Fixed-Point Arithmetic
19:15:46 -!- monqy has joined.
19:16:00 <zzo38> I often use fixed-point so that the calculation can be done by integers and calculation by integers will be the same on all computers, while with floating-point some computers might have different precision or other differences. TeXnicard does not use floating point for anything at all, except to optimize compression of PNGs (which are compressed losslessly anyways, so it is not a problem).
19:33:37 -!- oerjan has joined.
19:34:11 <elliott> oerjan once joered an an but don't take _my_ word for it
19:34:48 <elliott> so hey I think self-BCT in Thue is easy
19:37:10 <olsner> BCT (or self-bct) does look like a thing that would not be hard to write in Thue
19:38:28 <elliott> I think I've done the cyclic part, and the 0 command
19:39:24 <oerjan> elliott: regarding the /// /\ quine, i should note that i'm not able to write /\ only programs myself without somewhat auto-generating them. in case you had any doubt about that.
19:39:53 <olsner> you could have an end-of-string marker and a marker for "put bit at end in progress" that moves forward until it reaches the end
19:40:15 <elliott> olsner: you have to go back first mind
19:40:32 <elliott> oh and avoid destroying commands as you execute them
19:41:00 <oerjan> for more freestyle programs it's easier, and i mainly use a bit of s/[\\/]/.\&/g for convenience
19:42:01 <olsner> elliott: I don't think what I said is an argument against needing to do other things as well :)
19:42:25 <zzo38> I don't need any weapon. I have marble and slate board!
19:43:23 <oerjan> i guess in principle BCT is almost easier in /// than thue since you can "easily" move data to the other end of the string
19:43:26 <elliott> http://sprunge.us/LYTN ;; what I have so far
19:43:47 <elliott> all that's left is making 1x move to the right, append, and go back, if it's one
19:44:02 <elliott> oerjan: yeah, but it loops
19:44:05 <elliott> so with /// you need quining
19:45:53 <elliott> I think this is all of it?
19:46:57 <oerjan> you can have blank lines inside thue programs?
19:47:32 <elliott> oerjan: i dunno, it was just for my ease of coding
19:47:43 <elliott> first block handles 0 (and also getting back to ip going forwards, used later)
19:48:00 <elliott> third, fourth and fifth block handle one's effects
19:48:07 <elliott> last block handles cycling
19:48:09 <oerjan> yeah i found the first block intuitive
19:48:18 <elliott> oerjan: basically the only problem is getting around
19:48:28 <elliott> one has to go all the way to the left, /then/ all the way to the right, /then/ back to the IP
19:48:41 <oerjan> elliott: i think you sort of end up emulating a turing machine, almost.
19:48:53 <elliott> well self-BCT is arguably a turing machine
19:49:06 <elliott> BCT is basically a turing machine specification language, obviously
19:49:16 <olsner> when do you need to go all the way to the left except after IP reaches end-of-program?
19:49:24 <elliott> olsner: 0 deletes leftmost bit
19:49:44 <olsner> aha! the leftmost bit, I thought it deleted at IP
19:50:05 <elliott> gah the thue js interp is down
19:50:24 <oerjan> elliott: i think you may be able to identify < and {
19:50:39 <elliott> oerjan: possibly; that's just confusing though :)
19:50:41 <zzo38> Do you like to read Dungeons&Dragons recordings?
19:50:57 <elliott> can I just say that Thue's IO is incomprehensibly ugly
19:52:19 <ais523> zzo38: it's more fun to play than to read other people's games
19:52:39 <elliott> ais523: maybe you like it, but just never do it?
19:52:42 <elliott> if zzo38 can be a fan of cricket...
19:52:42 <oerjan> well the dread gazebo was pretty funny
19:52:47 <olsner> elliott: if you need to run some Thue code and have a spare apache server lying around ... :P
19:53:09 <zzo38> ais523: Yes it is, but still is sometimes good to read it too (it also includes all character data, as well as the events in the game).
19:53:31 <olsner> I haven't posted the new version of the compiler or its runtime system though
19:53:40 <oerjan> i'm not sure if i have read any others. except darths & droids which doesn't really count
19:53:57 <elliott> olsner: runtime system lol
19:54:59 <oerjan> well cpressey is the one with an "implement multiple esolangs in javascript" project, isn't he
19:55:04 <zzo38> oerjan: Yes there are some of those. Perhaps look at mine see if it interests you at all. If you have additional questions/comments I can also take them into considerations
19:55:23 <elliott> oerjan: it's actually java
19:55:38 <olsner> elliott: yeah :) I should extend the compiler to output it automatically though - I just didn't know how to output constant strings from sed when I originally wrote the code
19:56:00 <zzo38> Yes, is Java. But there are some mistakes on those program, but it can be improved later, hopefully
19:56:42 <elliott> do the mistakes include having a comprehensible ui
19:57:16 <zzo38> elliott: No, I mean things that fail to work properly, although some of them might have been corrected by now (I haven't checked).
19:57:40 <zzo38> The two other player characters I do not have their character sheets, so I have not put their data in. But you can guess by the story text, what their data might be?
19:59:00 * oerjan swats elliott -----###
19:59:03 <zzo38> Did you read it yet?
19:59:15 <oerjan> i'm not really interested
19:59:43 <zzo38> Do you ever play D&D game?
19:59:54 <zzo38> If so, would the program I used to record it, helping you at all?
19:59:57 <oerjan> only once, at a convention
20:00:36 <olsner> elliott: if you extend your interpreter to several in-progress instructions, e.g. by having a couple of different instruction pointers, you could make it parallelisable by a parallel thue interpreter
20:00:51 <zzo38> I have played Big Eye Small Mouth game once at an anime convention.
20:01:01 <elliott> olsner: it might even work if you have multiple ips
20:01:19 <elliott> it'll get stuck if two movers meet though i think
20:02:02 <olsner> yeah, but obviously you won't get any speedup unless the thue interpreter is also doing replacements in several threads :)
20:02:29 <elliott> speedup of a totally different language :P
20:03:02 <olsner> I think you need to make sure movers never cross each other, so the output ends up in the right order
20:03:12 <oerjan> elliott: your program is of course intrinsically single-threaded, because it is essentially using one char as TM head all the time
20:03:22 <elliott> oerjan: not if you add two IPs
20:03:30 <elliott> it _might_ even not break :D
20:03:37 <elliott> you'd need rules for the movers to move around each other really
20:03:43 <olsner> instruction-level parallelism :)
20:04:29 <olsner> or maybe elliott is talking about multiself-bct
20:04:54 <zzo38> Tell me, one thing, what is missing from this D&D recording program? Is there any improvement to suggest?
20:05:05 <oerjan> elliott: the current IP being the self, i guess
20:05:18 <elliott> just put multiple |s in different places in the same program :P
20:06:02 <oerjan> elliott: oh! you might in fact end up with a "thread" changing between IPs this way
20:06:16 <elliott> oerjan: you mean e.g. >< or similar?
20:06:17 <oerjan> since the X's are not distinguished
20:06:41 -!- zzo38 has left.
20:06:53 <olsner> but what I meant was making the singlethreaded self-bct just run faster by parallelising the interpreter, not changing its behaviour in any way
20:07:06 <oerjan> actually this might mean you always run either the first or the last X, dependent on which instruction you did last
20:07:12 <oerjan> since that's what you hit
20:07:52 <oerjan> oh and what if two threads are running the same X simultaneously... can we get racing condition :D
20:08:10 <oerjan> (with instructions for the same X being done in the "wrong" order)
20:08:31 <olsner> both threads, racing to the end of the string :)
20:09:50 -!- cpp_programmer has joined.
20:10:24 <elliott> cpp_programmer: I program in the C preprocessor too
20:10:29 <elliott> although I've never got that list library to work
20:10:31 <olsner> heh, I completely missed the "if L>0:" part as well
20:10:43 <oerjan> olsner: that won't work because there is always just one possible substitution. well i guess you could parallelize the search for where it is.
20:10:49 <elliott> olsner: I don't think self-BCT can be parallelized
20:11:49 <monqy> one time I tried programming in the c preprocessor. it was nightmarish.
20:12:17 <elliott> crystal-cola: hey, it's TC
20:12:26 <olsner> elliott: I guess not, at least not unless you start by adding the ridiculous extra steps required to implement it in Thue
20:12:26 <elliott> modulo probably-OK-by-the-standard implementation limits
20:12:34 <elliott> crystal-cola: there's a full functional language implemented in cpp
20:12:47 <elliott> order-pp being the language
20:13:34 <elliott> crystal-cola: btw both are actually defined for real whirrled usage :D
20:13:44 <olsner> so what you can parallelise is having several in-flight movers (and checkers) to the left and appenders to the right
20:14:01 <elliott> former is a big generic library, latter is a functional language that can actually be used to automate code generation
20:14:10 <crystal-cola> Well, the answer is simply that the preprocessor is _not_ Turing complete, at least not if the program is preprocessed only once
20:14:13 <elliott> crystal-cola: I'll find that Usenet post with the bignum fibonacci in cpp
20:14:28 <olsner> hmm... I think you should be able to start running every instruction in the program at the same time?
20:14:44 <elliott> crystal-cola: this is pointless, you're wrong but you're not even backing your claim up with any evidence
20:14:59 <oerjan> elliott: i see a bug in your _ handling - what if a 1x command is wrapping?
20:15:38 <olsner> hmm, well, almost at the same time... you have to find the boundaries between instructions before starting work on them I guess
20:15:43 <elliott> crystal-cola: prove it; I have my own proof: there's a full functional language with lambdas and recursion implemented in cpp
20:16:00 <elliott> as well as, separately, enough infrastructure to write a (I forget whether iterative or recursive) bignum fibonacci
20:16:31 <elliott> crystal-cola: http://groups.google.com/group/comp.lang.c/msg/082ffefaaed3b450
20:16:41 <oerjan> elliott: other than that it looks eminently plausible
20:16:53 <elliott> "The program above computes the 500th Fibonacci number with the
20:16:53 <elliott> preprocessor. It takes about 20 seconds to compile with GCC on the Linux
20:16:53 <elliott> VM that I'm running on a mid-range machine."
20:17:29 <olsner> "Note, BTW, that I'm not suggesting that computing Fibonacci numbers with the preprocessor is advisable."
20:18:05 <olsner> granted, this is #esoteric and such things are COMPLETELY NORMAL, but that's the kind of dramatic understatement we all live for
20:18:23 <elliott> crystal-cola: so what's your evidence that the c preprocessor is sub-turing
20:19:26 <elliott> it gives the sf project for the top result here...
20:19:37 <monqy> I googled chaos preprocessor and I got it as top result too
20:20:00 <crystal-cola> http://cvs.sf.net/viewcvs.py/chaos-pp/order-pp/example/lambda/lambda.c?view=markup
20:20:32 <elliott> just check out the repository ...
20:20:37 <elliott> http://sourceforge.net/projects/chaos-pp/
20:20:39 <crystal-cola> http://sourceforge.net/projects/chaos-pp/files/
20:20:55 <monqy> http://chaos-pp.cvs.sourceforge.net/chaos-pp/
20:21:11 <monqy> hello these are files??
20:21:17 <elliott> crystal-cola: C Preprocessor.
20:21:20 <elliott> you know, the stuff with hashes.
20:21:24 -!- Mannerisky has quit (Ping timeout: 260 seconds).
20:21:34 <elliott> It's linked right there on the SF project page
20:21:37 <olsner> monqy: you should've just said "REPOSITORY" until he got it
20:21:38 <elliott> crystal-cola: see C99 standard
20:22:11 <elliott> http://chaos-pp.cvs.sourceforge.net/viewvc/chaos-pp/order-pp/example/fibonacci.c?revision=1.8&view=markup this is what fibonacci looks like in teh functional language btw
20:24:35 <elliott> if you're trying to read the source to order don't bother, it's insane
20:24:39 <elliott> chaos-pp is a bit more readable
20:25:57 <oerjan> <Gregor> I'll bet (note: no actual bet) that you could divide indentation-sensitive languages into two CFL (or near-CFL?) parsing steps given the "view it as a 2D array" approach, one of which is top-to-bottom-then-left-to-right and essentially ends up being the brace-adding preprocessing step (this in the case of Python where it really is just brace-adding), and the other is a standard left-to-right-then-top-to-bottom by-the-book parser.
20:26:34 <elliott> crystal-cola: I don't even know, all my similar attempts have failed
20:26:39 <oerjan> and _i'll_ bet (note: no actual yadda yadda) that won't work for haskell's "add implicit } on error" rule
20:26:40 <elliott> I think you basically have to write a sort of FSM
20:26:45 <elliott> using token pasting to generate macro names
20:29:36 <oerjan> although i approve of the idea, since that's one way bfjoust (({{}})%)% can be parsed
20:31:34 <oerjan> <elliott> so i hear obama died
20:31:45 <elliott> ya they killed him outside his home
20:31:52 <oerjan> <crystal-cola> Will the death of Osama bin laden lead to any new insights into the Riemann hypothesis?
20:31:55 <elliott> and now he isn't president any more
20:32:11 <oerjan> my impression is a lot of people think osama died years ago
20:32:30 <oerjan> and all the recordings are fake
20:32:38 <elliott> osama died because of cqpitalism
20:32:54 <olsner> I did too, but I think I might have confused him with saddam hussein
20:33:01 -!- Yahweasel has changed nick to Gregor.
20:33:08 <oerjan> (something about how the video always stops whenever he speaks about something recent)
20:33:23 <oerjan> leaving just an easily faked audio part
20:33:25 <Gregor> Argh, I'm so tired of bip renaming me whenever I reconnect :P
20:33:27 -!- Gregor has changed nick to Yahweasel.
20:35:21 <oerjan> this is just a sign that humanity will soon become slaves of our new weasel overlords
20:35:40 <oerjan> whom i for one welcome, of course
20:36:44 <olsner> elliott: what was the bug about _ in that interpreter of yours?
20:36:50 <elliott> olsner: basically one can wrap
20:36:54 -!- Slereah_ has joined.
20:36:54 <elliott> you can have the last bit be one
20:37:00 <elliott> and its "parameter" (bit to append) be the first bit
20:37:05 <elliott> so you potentially need to wrap in that case
20:37:14 <elliott> you just need another mover character
20:37:44 <olsner> eugh, can't you just remove that particular rule and say that a final 1 is invalid or something?
20:38:08 <elliott> the fact that you need a beginning and an end is an implementation detail
20:38:12 <elliott> ok the fact that you can append sort of makes it not
20:38:16 <elliott> it's much prettier this way
20:38:21 <olsner> bitwise left-to-right repeating tag
20:38:23 <elliott> also I'd doubt its TCness if that was invalid
20:39:09 <dnm_> Haskell guys getting it from both ends.
20:39:12 -!- Slereah has quit (Ping timeout: 240 seconds).
20:39:17 <dnm_> #esoteric and now, #fsharp.
20:39:41 <elliott> don't swear in this channel please "fsharp" is very offesnive
20:40:00 <dnm_> http://codepad.org/sy6mvs1j
20:40:07 <Yahweasel> I am personally offended by that word.
20:40:10 -!- elliott has set topic: ouer heaerts go out to htose in the recent nfunctionslkaj disotasietr whenjk jtwentyfurou don stewrarts losjot theries liveseils to fsharppe | "Programming may one day be about getting the maths right" -- Alan Alda | "Functional programming is more than just esoteric; it’s becoming somewhat cool." -- Tiger Woods | "Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/es.
20:40:20 <dnm_> Is anyone professionally offended?
20:40:39 <olsner> hmm, I kind of agree that it should loop... that loopiness probably interferes with my plans for parallelising it
20:41:26 <oerjan> elliott: got cut off after /logs/es
20:41:28 <oerjan> <crystal-cola> gcd 111..111 111..111 = 111..111?
20:41:34 <elliott> oerjan: i doinaent coiarje
20:41:44 <oerjan> those are (10^n-1)/9 and (10^m-1)/9.
20:41:45 <elliott> yuorew uro so sinsensentive to htohe djon stewrajkrts of htiosj lowrlds
20:42:19 <oerjan> multiplying by 9 won't change anything much, so...
20:43:07 <olsner> or maybe you could like wait for all other activity to finish before a wrapping final 1 starts executing, and that would potentially solve itself by the same mechanism that makes all the other instructions take effect in the right order
20:43:27 <elliott> why don't we just make super-parallel self-bct
20:43:32 <elliott> every instruction in the string is executed simultaneously
20:44:06 <oerjan> so essentially the question reduces to whether gcd (a^n-1) (a^m-1) = a^gcd(m,n)-1 always
20:44:17 <elliott> excuse me i just invented the most elegant language
20:44:41 <olsner> elliott: exactly what I said like 30 minutes ago
20:44:51 <elliott> well i said it better because im better than you obviously duh
20:45:02 <oerjan> (the latter always divides the former, at least)
20:45:05 <elliott> oerjan: make that olsner guy stop talking hes silly
20:46:02 <elliott> http://upload.wikimedia.org/math/6/1/f/61f34aa25871e9546b6a11243e1bed31.png
20:46:03 <oerjan> elliott: i'm sorry i'd rather not; the last time i banned someone for silly reasons a regular left in a huff for _weeks_
20:46:04 <elliott> let's play this game again
20:46:23 <ais523> oerjan: did you unban them again?
20:46:47 <oerjan> antiantioptbot is no longer banned
20:47:41 <elliott> "Mu'ammaral" lol what is this name even
20:47:55 -!- Slereah_ has quit (Ping timeout: 276 seconds).
20:48:10 <oerjan> the -al is the definite article, and should not attach to the previous word.
20:48:15 <olsner> elliott: there's a space there - consult the color coding of the image
20:48:37 <elliott> olsner: hmm, are you sure? The blue segment ends with dash or space or nothing
20:48:48 <elliott> Which would lead to the possibility of "Foo- Bar" or "Foo Bar" which is just stupid
20:50:07 <olsner> hmm, you have a point there... maybe the "r" is actually "r "
20:50:23 <elliott> olsner: It probably just means that the space can be replaced with those.
20:50:41 <elliott> Kedthaffy hahaha this are just so great
20:51:49 -!- Phantom_Hoover has joined.
20:52:28 <oerjan> crystal-cola: lessee (a^(m+n)-1) = a^(m+n)-a^m + a^m-1 = (a^n-1)*a^m + (a^m-1), meaning gcd(a^(m+n)-1, a^n-1)) = gcd(a^m-1, a^n-1); then gcd(a^m-1, a^n-1) = gcd(a^gcd(m,n)-1) follows by noting that each such step does a part of the euclidean algorithm on the exponents.
20:52:29 -!- Slereah has joined.
20:53:54 -!- cpp_programmer has quit (Quit: Ex-Chat).
20:54:53 <oerjan> er s/gcd(a^gcd(m,n)-1)/a^gcd(m,n)-1/ as well
20:57:37 <oerjan> Vorpal: ^ you wondered about this as well
20:59:55 -!- Slereah_ has joined.
21:02:25 -!- Slereah has quit (Ping timeout: 276 seconds).
21:10:18 -!- Slereah has joined.
21:11:30 -!- Slereah_ has quit (Ping timeout: 240 seconds).
21:15:06 <olsner> hmm, just wrote a really complicated haskell program that (in effect) multiplies some peano numbers and determines that mo'amer khuzzaffi has 38400 names
21:15:27 <elliott> olsner: the page says that some combinations are invalid :)
21:15:38 <elliott> However, not all are possible, as some alternatives are most probably combined with others, or even impossible with others (for example, simplification of geminated [m:] usually implies simplification of [a:]).
21:15:39 <olsner> I know, but I don't care :P
21:15:46 <elliott> FIGHT THE (PRESCRIPTIVIST) POWER
21:15:58 <elliott> olsner: can you make a random bin laden/gaddafi name bot plz
21:16:43 <olsner> I only have an IRC bot in sed, and I don't want to rewrite this in sed :P
21:16:43 <elliott> http://en.wikipedia.org/wiki/Osama#Variations_of_Osama_bin_Laden.27s_name
21:17:28 <elliott> olsner: I have to say the zz is very stylish
21:17:32 -!- Slereah_ has joined.
21:18:09 <elliott> مُعَمَّر ٱلْقَذَّافِيّ wow that's a mess
21:18:16 <elliott> even has one character my system can't render unless it's an actual square
21:18:28 -!- Slereah has quit (Ping timeout: 276 seconds).
21:19:23 <crystal-cola> how do I just do something simple like plot the zeros of a polynomial?
21:21:22 -!- ais523 has quit (Remote host closed the connection).
21:22:08 -!- Yahweasel has changed nick to Gregor.
21:22:18 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:22:19 <Gregor> I HAVE DISCOVERED: BEST LICENSE
21:22:34 <Gregor> "You may, at your option, use this software under the terms of any of the following licenses:"
21:22:51 <Gregor> (list every license approved by OSI, FSF and Debian)
21:23:19 <Gregor> Because license disjuncts are the bestest!
21:24:28 <elliott> Gregor: Also, it should be "This software is licensed under all the below licenses simultaneously:" :P
21:25:17 <Gregor> That's not "from" anything, but it stems from my amusement at e.g. jQuery being licensed under the retarded MIT/GPL disjunct (AKA a license by people who have no fucking clue what a license is), and Mozilla being under the bizarrely-redundant MPL/GPL/LGPL disjunct.
21:25:34 <Gregor> For some reason, every license disjunct seems to include at least one strict subset relationship.
21:26:08 <elliott> There is... literally no reason to ever pick the latter :P
21:26:13 <elliott> Even if you want to make a horrible GPL-only fork you can do that with MIT.
21:26:43 <Gregor> It is the "we have no understanding of licenses" license.
21:26:59 <elliott> Well, Reisig is a Mozilla guy, so he must have inherited the stupid :P
21:27:30 <Gregor> At least with the Mozilla situation, two of the licenses are strictly incompatible.
21:27:31 <elliott> "Used by over 43% of the 10,000 most visited websites, jQuery is the most popular JavaScript library in use today.[2][3]"
21:27:35 <elliott> SADLY NEITHER CITATION WAS GREGOR'S PAPER
21:27:43 <elliott> Gregor: Isn't the MPL thoroughly fucked up?
21:27:49 <Gregor> It's a pretty lolsy license.
21:27:58 <elliott> Gregor: It's like the Apache license, right?
21:28:03 <elliott> Which I have down in my head as "most stupid license ever never use".
21:28:29 <Gregor> No, as I recall, the MPL is relatively short and simplish, but just happens to disagree with the GPL for some stupid reason. I don't quite recall though.
21:28:32 <elliott> Apache is incompatible with GPL [two], I wonder how it managed that
21:28:38 <elliott> (But compatible with [three])
21:28:49 <elliott> The Apache Software Foundation and the Free Software Foundation (FSF) agree that the Apache License 2.0 is a free software license, compatible with version 3 of the GNU General Public License (GPL).[7] Compatibility in this case means that since the GPL version 3 is considered a superset of the Apache License 2.0, a project combining GPL version 3 and Apache License 2.0 code will need to be licensed under the GPL version 3[8].
21:28:49 <elliott> However, the Free Software Foundation considers all versions of the Apache License (as of 2007) to be incompatible with the previous GPL versions 1 and 2.[9][10]
21:29:00 <Phantom_Hoover> elliott, have you *still* not got your number keys fixed?
21:29:20 <elliott> That might be true, PH, it might be ture.
21:41:54 -!- cpressey has joined.
21:43:42 <cpressey> A while ago I reminisced on this channel about coding Minesweeper in Turbo Pascal back in the day, then got confused about the timing and figured it must have actually been in Turbo C++. Well, I found the source code, and it turns out it was indeed Turbo Pascal.
21:44:13 <cpressey> Just wanted to post that erratum here, for all who care deeply about historical accuracy.
21:44:36 <elliott> ive been losing sleep over it
21:44:50 <elliott> hey can you link to yoob i hear it does thue
21:45:03 -!- azaq23 has joined.
21:48:25 <cpressey> I care deeply about contemporary accuracy too. Therefore: yes, yes it does do Thue. http://bit.ly/yoob
21:49:13 <cpressey> I implemented it in a couple of hours
21:49:27 <elliott> http://catseye.tc/lab/yoob/applet.html <-- Dear future people: this had all these languages way back
21:49:35 <elliott> cpressey: how did you fit turbo pascal in ther
21:50:02 <oerjan> ...at least it wasn't goatse.
21:50:22 <elliott> note to the future// goatse is a slang meaning "un-gay and hip"
21:52:55 <monqy> what do un-gay and hip mean in the future
21:55:03 <oerjan> un-gay is of course the term for what we now call heterosexual or straight.
21:55:48 <oerjan> this is of course wildly looked down on in general
21:55:50 <elliott> un-gay just means you are a robot silly oerjan stop trolling the future
21:56:00 <elliott> it is the only solution to over popperlation
21:56:05 <monqy> do robots have hips
21:56:17 <monqy> does the future have hips
21:56:37 <oerjan> robots and industrious people have hips
21:56:40 <elliott> (dear future hips are vestigal limb meaning jisdfo)
21:56:48 <oerjan> lazy people however have evolved into blobs, which don't
21:56:48 <elliott> (what jisdfo is, is self-evident)
21:57:56 <oerjan> the word "perol" started out as a pun after a nuclear disaster caused by a computer program having an "o" for "i" typo
21:58:42 <oerjan> however over the centuries its meaning shifted to clumsy people (with hips)
21:59:28 <oerjan> dear future: "its" means what "it's" means for you, and vice versa
22:00:19 <oerjan> this was decided by robot arbitration to stop the Great Grammar War
22:00:46 <oerjan> (i mean the future meaning)
22:01:40 <olsner> its's it's future meaning?
22:01:49 <elliott> oerjan: lead by the grammar nazi's
22:02:36 -!- cpressey has quit (Quit: Living in the Past).
22:04:23 <oerjan> "satlins" is a portmanteau of "satellite" and "earthlin" (which lost the final g). this was a utopian society formed in (mostly) low earth orbit. it went the way of all utopian societies of course.
22:04:38 <elliott> oerjan: yes this is also communism
22:04:47 <elliott> Phantom_Hoover is talking while asleep by using advanced science
22:04:49 <elliott> YOU WILL NEVER DISCOVER IT FUTURE
22:05:08 <elliott> AND EVERYONE IN THE PAST MWAHAHAHA
22:05:11 <elliott> Let us never speak of it again.
22:05:23 -!- cheater2 has quit (Quit: Leaving).
22:05:33 <elliott> i want to dedicate my life to fucking with historians now
22:05:37 <elliott> NOT THAT THAT HAS ANY RELEVANCE TO ANY OF THIS
22:05:45 <elliott> (note: sarcasm does not exist in this time so i cannot be using it)
22:05:56 <oerjan> there is a difference of opinion whether nazis or satlins were the worst, if you ignore scale. the former at least never sterilized australia.
22:07:30 <oerjan> (note: sterilized here means in the disinfectant sense, not the fertilization sense. the latter they did with great britain instead, as part of their effort to exterminate gingers.)
22:08:08 -!- Phantom_Hoover has quit (Remote host closed the connection).
22:08:57 <oerjan> oh and the satlins weren't communist, they were libertarians. at least for the first twenty years, before all went really downhill.
22:10:22 <oerjan> (note to the future: downhill means approximately what down orbit means to you.)
22:10:49 <elliott> (xD is the face of a gerafe)
22:13:54 <oerjan> the "gerafes" or german apes were a hugely successful experiment in cloning technology. the satlins nuked most of them alas.
22:14:34 <oerjan> the remainder artificially interbred with humans until the species merged completely.
22:15:50 <oerjan> (note to the future: the word "artificially" here may seem redundant to you, but wasn't at the time (or ours))
22:17:11 <oerjan> (at the time it was still possible for > 90% of the population to breed without the help of technology.)
22:18:04 <elliott> only fourteensj percent now alas
22:18:47 <oerjan> this reduced to about 40% after some satlin nuking, then as elliott mentions to 14% when genetic engineering started making people _really_ diverge.
22:19:41 <oerjan> his mother is a famous artist by the name of Sarah Jessica Parker.
22:19:48 <myndzi> what the hell are you guys talking about o_O
22:20:05 <oerjan> myndzi: we are just explaining things to future logreaders
22:20:49 <oerjan> elliott has been known to do so
22:21:00 <crystal-cola> just imagine every time in the future when anyone reads this log
22:22:18 <elliott> crystal-cola: it's infinite
22:22:57 <oerjan> myndzi is the inventor of conversational unicode dancing. sadly he dies in a freak accident just as it really takes off.
22:23:28 -!- Slereah has joined.
22:23:45 -!- azaq23 has quit (Quit: Leaving.).
22:24:10 <elliott> crystal-cola: belieeeyeve wat
22:24:16 <oerjan> it will gradually evolve into a new form of electronic calligraphy
22:24:19 <myndzi> i didn't program it for that one, too possible to crop up in conversation somehow
22:24:19 -!- Slereah_ has quit (Ping timeout: 276 seconds).
22:24:27 <crystal-cola> that this log will be read INFINITELY many time
22:25:50 <oerjan> and become a part of ornamental mobile 3d printing design
22:27:28 <oerjan> i am still talking about myndzi's dancing, btw
22:28:03 <elliott> well if i was immortal i'd probably read it like once every ten trillion gajillion years
22:28:47 <oerjan> until around 2140, when it becomes deader than disco, ironically at the same time as a new music form fusing disco and scruff takes off
22:30:37 <oerjan> (disco here refers to another dance form from the 1970s, not to its future meaning of flat rotating habitats)
22:31:59 <crystal-cola> ((x)) = 0 if x is an integer x - floor(x) - 1/2 otherwise
22:33:11 <oerjan> hm but the limits from each side are -1/2 and 1/2, so it's a sort of average
22:36:02 -!- pikhq has joined.
22:42:12 -!- Slereah_ has joined.
22:42:47 -!- Slereah has quit (Ping timeout: 240 seconds).
22:44:12 -!- crystal-cola has quit (Quit: leaving).
22:53:43 <elliott> f(n) = chaitin's omega to the power of n if n is computable
22:53:49 <elliott> else the closest computable number to n
22:54:20 <oerjan> um, surely there is no such thing as "closest computable number"
22:55:00 <oerjan> because all rational numbers are computable
22:55:39 -!- Slereah has joined.
22:55:48 <oerjan> yes. but if a real number is non-computable, it will not be rational, and for every candidate there will be a rational number that is closer
22:56:09 <oerjan> so there can be no closest computable number.
22:56:40 -!- Slereah_ has quit (Read error: Operation timed out).
22:57:06 <elliott> f(n) = chaitin's omega to the power of n if n is computable
22:57:15 <elliott> else the closest irrational computable number to n
22:57:29 <oerjan> ...there's no such thing as that either
22:57:53 <oerjan> because you can always adjust it by adding a rational to get it a little closer
22:58:24 <oerjan> irrational computable + rational = irrational computable
22:58:39 <elliott> else the closest irrational computable number with a kolgomorov complexity of no more than log_two(n) squared
22:58:43 <oerjan> (this applies to irrational and computable separately, of course)
22:59:24 <oerjan> i'll admit that one :D
22:59:38 <elliott> btw the "bitches" is part of the definition obviously
23:00:40 <elliott> oerjan: can you write a paper on that function plz
23:00:56 <elliott> oerjan: preferably with a graph
23:01:33 <oerjan> graphing uncomputable functions isn't my kind of thing, really.
23:02:47 -!- FireFly has quit (Quit: swatted to death).
23:04:24 <elliott> oerjan: isnt it everyones thing
23:05:08 * oerjan wonders about that RobotRollCall guy on reddit
23:06:14 <oerjan> most of the time he writes nice scientific comments (and has a huge karma to show for it), but sometimes it looks like he keeps insisting that he is right when he isn't.
23:06:27 <elliott> they cant accept that theyre wrong
23:06:44 <elliott> oerjan: examples of the latter? his first page of comments seem ok
23:07:19 <oerjan> what set me off this time was this conversation http://www.reddit.com/r/Physics/comments/h1eb7/black_hole_question/c1rxhc1
23:08:03 <oerjan> admittedly the opponent is more rude, but i _still_ think robotrollcall is wrong there
23:08:45 <elliott> respond be sure to mention you have a phd
23:09:01 <oerjan> i _still_ don't have an account :D
23:09:28 <elliott> oerjan: "Wikipedia, eh? Imagine my surprise." ;; it seems like he's the typical intelligent-and-well-educated-but-dicky nerd :P
23:09:43 -!- elliott has quit (Remote host closed the connection).
23:10:13 * oerjan should have mentioned he hasn't read the conversation to the bottom yet
23:10:31 -!- Slereah has quit (Ping timeout: 252 seconds).
23:10:50 -!- elliott has joined.
23:11:00 * oerjan should have mentioned he hasn't read the conversation to the bottom yet
23:11:19 <elliott> "The Big Bang can be likened to the Great Depression in the United States of America."
23:11:22 <elliott> want to take out of context forever
23:11:46 <elliott> the big bang is really cool
23:11:55 <elliott> it's weird to think of mutable physics
23:12:07 <elliott> hmm, self-modifying physics, even
23:13:20 -!- Slereah has joined.
23:16:04 -!- pikhq has quit (Quit: Lost terminal).
23:26:26 -!- Slereah_ has joined.
23:27:37 -!- Slereah has quit (Ping timeout: 260 seconds).
23:27:40 -!- wareya_ has quit (Read error: Connection reset by peer).
23:28:33 -!- wareya has joined.
23:44:31 <oerjan> !slashes /CB/C\\1\/\/C\\1\/C\\2\/\/W\\B\//CE/\/\/C\\2\///WD/worCB ZOMG A COMMENT! CEld!/Hello, WD
23:46:08 <oerjan> !slashes /CB/C\\1\/\/C\\1\/C\\2\/\/W\\B\///CE/\/\/C\\2\///WD/worCB ZOMG A COMMENT! CEld!/Hello, WD
23:46:39 <oerjan> !slashes /CB/C\\1\/\/C\\1\/C\\2\/\/W\\B\///CE/\/\/C\\2\///WD/worCB ZOMG A COMMENT! CEldCB AND ANOTHER ONE! CE!/Hello, WD
23:46:51 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:47:33 -!- Slereah has joined.
23:48:21 -!- Slereah_ has quit (Ping timeout: 240 seconds).
23:49:20 <oerjan> figuring out how one might put comments inside a /// substitution
23:50:10 <oerjan> (this won't work for substitutions that need to repeat themselves on their result, of course)
23:51:26 <elliott> are you trying to make it a usable language? :D
23:51:28 <oerjan> it would be particularly useful inside a main program quoted loop
23:52:32 <oerjan> you would note i have always used methods to achieve proper indentation.
23:54:18 <oerjan> with the deadfish interpreter i even managed to indent without extra [] around the lines _and_ still have the program print spaces and newlines
23:57:40 -!- elliott has quit (Remote host closed the connection).