←2010-08-10 2010-08-11 2010-08-12→ ↑2010 ↑all
00:00:03 <Sgeo> ???
00:00:10 -!- cpressey has quit (Quit: Leaving.).
00:01:02 <Phantom_Hoover> Sgeo, the Private Eye is a satirical magazine in the UK.
00:01:35 -!- zzo38 has joined.
00:01:36 <Phantom_Hoover> One of the columns is a poem by "E.J. Thribb (17½)"
00:05:39 <Phantom_Hoover> They are always about the recently deceased.
00:10:06 <Sgeo> As long as he doesn't write poems about me anytime soon, I'm omk
00:10:53 <zzo38> There are GPL for computer software codes, and GFDL for books, but what happens if your codes can compile a program and also books?
00:11:07 <Phantom_Hoover> So, farewell then
00:11:09 <Phantom_Hoover> Sgeo
00:11:13 <Phantom_Hoover> You did not have
00:11:17 <Phantom_Hoover> A catchphrase
00:11:27 <Phantom_Hoover> And I cannot
00:11:31 <Phantom_Hoover> Be bothered
00:11:34 <Phantom_Hoover> To make one up.
00:11:47 <Phantom_Hoover> —E.J. Thribb (17½)
00:12:02 -!- Gregor-W has joined.
00:12:08 <Gregor-W> Running a dc program to calculate primes in UNIX dc compiled for MIPS running in a JavaScript MIPS simulator JITting to JavaScript JITting to machine code is quite possibly the least efficient way that primes have ever been calculated.
00:12:12 <Phantom_Hoover> zzo38, noöne sane uses the GFDL.
00:12:30 <Sgeo> Phantom_Hoover, Wikipedia, iirc
00:12:37 <Phantom_Hoover> Sgeo, no more.
00:12:47 <Sgeo> How do you go about relicensing WIkipedia/
00:12:53 <Sgeo> You can't track everyone down
00:13:07 <Phantom_Hoover> They actually made the FSF change the GFDL to allow them to switch to CC-BY-SA.
00:13:15 <Sgeo> o.O
00:13:44 <zzo38> Yes, I saw the GFDL it contains something specifically meant for Wikipedia to relicense things
00:13:46 <Phantom_Hoover> Sgeo, WP makes it clear that as soon as you hit "save", any content you contribute is under whatever licensing terms they have.
00:14:05 <zzo38> Or, at least that is what it looks like to me, once I read it, I thought that is the only use for that part of the license
00:14:13 <Sgeo> zzo38, what part?
00:14:38 <Phantom_Hoover> It was under the GFDL 1.something or later, then the FSF added a clause to it that allowed wikis to switch to CC-BY-SA before a certain date.
00:15:54 <zzo38> I thikn only some versions of the GFDL include that clause
00:16:19 <Phantom_Hoover> zzo38, 1.3.
00:16:34 <Gregor-W> So anyway, still looking for an interesting terminating dc program.
00:17:01 <Phantom_Hoover> Gregor-W, how have you implemented dc, then?
00:17:36 <Sgeo> Phantom_Hoover, I think he's lazy and wants someone else to do it for hi..I may have misunderstood
00:17:57 <Phantom_Hoover> I assumed he had an implementation and wanted something interesting to do.
00:18:06 <Phantom_Hoover> Gregor-W, look up dc on 99 bottles.
00:18:11 <Gregor-W> Phantom_Hoover: BRILLIANT
00:18:24 <Sgeo> By "dc program", presumably he doesn't mean dc, which is what I thought, but things to put into dc
00:18:25 <Gregor-W> Phantom_Hoover: It's just UNIX dc (for MIPS for JSMIPS for JavaScript)
00:18:37 <Gregor-W> Yes, a program written in the "language" dc.
00:19:07 * Sgeo wonders what a dc language without the ability to not halt would look like
00:19:34 <Phantom_Hoover> Gregor-W, http://99-bottles-of-beer.net/language-dc-704.html
00:19:56 <Phantom_Hoover> 4 lines...
00:20:44 -!- sshc_ has joined.
00:23:32 -!- sshc has quit (Ping timeout: 246 seconds).
00:23:32 <Sgeo> The GFDL attempts to prevent the documentation being written in something that requires proprietary software to read. Any other documentation licenses do similar, more successfully?
00:23:39 <Phantom_Hoover> Sgeo, you want to be more fascist than the FSF?
00:24:49 -!- GreaseMonkey has quit (Quit: New quit message. Entering 2006 in style.).
00:28:18 -!- Wamanuz2 has quit (Remote host closed the connection).
00:29:34 <Gregor-W> We should all strive to be more fascist than the FSF.
00:30:03 <Phantom_Hoover> First, proprietary software; then, the world!
00:30:46 <Phantom_Hoover> Gregor-W, how do I enter EoF in JSMIPS?
00:31:01 <Gregor-W> Phantom_Hoover: ATM you can't :P
00:31:10 <Gregor-W> Ctrl+D is slurped by the browser.
00:32:11 <Phantom_Hoover> Oh, this dc doesn't bother with that buffered terminal crap.
00:34:12 <Phantom_Hoover> Well, 99 bottles kinda-sorta works
00:35:56 <Phantom_Hoover> By which I mean it doesn't work, but it makes a nice effort.
00:36:12 <Gregor-W> Yeah, I saw that too.
00:36:17 <Gregor-W> I suspect it depends on GNU dcisms.
00:36:24 <Gregor-W> Since every other program I've found works perfectly.
00:36:29 <Gregor-W> And JSMIPS is incapable of being wrong.
00:36:59 <Phantom_Hoover> Can you compile GNU dc?
00:37:27 -!- Flonk has quit (Quit: ChatZilla 0.9.86 [Firefox 3.6.8/20100722155716]).
00:40:25 <Gregor-W> Phantom_Hoover: Probably, haven't tried. Can't from work.
00:40:42 <Phantom_Hoover> Gregor-W, can't, or won't.
00:42:51 <Gregor-W> Within the limits of my ability, can. Within the restrictions of the rules of this company, cannot.
00:43:23 -!- sshc_ has changed nick to sshc.
00:43:43 <Phantom_Hoover> Gregor-W, do they forbid it?
00:44:00 <Gregor-W> Not explicitly, but indirectly.
00:44:12 <Phantom_Hoover> *forbit_it
00:44:34 * Sgeo has taken a Tylenol
00:44:45 <Gregor-W> Sgeo: Congratulations on your accomplishment.
00:44:54 <Sgeo> I always say that on here, so that if I do it excessively by forgetfullness somehow, someone can warn me >.>
00:45:18 <Phantom_Hoover> Sgeo, you are a world-famous mime artist.
00:45:18 <Gregor-W> Sgeo: Dude, you've already said that like ten times in the last hour.
00:46:03 <Phantom_Hoover> You fell from glory due to a disastrous accident with an invisible shark tank, and are now bitter and vengeful.
00:46:10 <oerjan> Sgeo: very useful bunch, these guys
00:46:51 <Phantom_Hoover> Now you must seek justice upon the one who wronged you: Donald Knuth!
00:47:46 <Phantom_Hoover> For it is he who designed to topple your pedestal, to assist the Conspiracy!
00:52:44 <Phantom_Hoover> "C) Have you ever been or are you now involved in espionage or sabotage; or in terrorist activities; or genocide; or between 1933 and 1945 were you involved, in any way, in persecutions associated with Nazi Germany or its allies? * "
00:53:01 <Phantom_Hoover> —Some US visa thing.
00:53:17 <Phantom_Hoover> So if you were a Nazi in 1938, that's fine?
00:53:56 <Gregor-W> Last I checked, 1938 is between 1933 and 1945.
00:54:11 <pikhq> Phantom_Hoover: If you were a Nazi but not involved in persecutions involving Germany, you're fine.
00:54:31 <Phantom_Hoover> Gregor-W, oops.
00:54:34 <pikhq> So, the Pope is allowed in.
00:54:55 <Gregor-W> pikhq: Bahahah X-D
00:55:26 * Phantom_Hoover remembers a suggestion that House of Fun be pushed to the No. 1 spot in the UK for the Pope's visit.
00:55:45 <Sgeo> House of Fun?
00:56:27 <Phantom_Hoover> Sgeo, random song. Apparently about condoms.
00:56:53 <Phantom_Hoover> I think it's trying to replicate the "Killing in the Name of" thing.
00:57:04 <Sgeo> Thought it was a place of some sort. Stupid failure to understand context!
00:57:19 <Sgeo> Killing in the Name of>?
00:57:34 <Phantom_Hoover> A rap song which was Christmas No. 1 last year.
00:58:04 <Phantom_Hoover> (It'd been whatever crap the X Factor did for years before)
00:59:15 * Phantom_Hoover needs to go.
00:59:20 <Phantom_Hoover> Sgeo, use the mime!
00:59:41 -!- tombom has quit (Quit: Leaving).
01:04:04 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
01:13:15 <Gregor-W> Good lawd!
01:13:27 <Gregor-W> For the first time in my internship here, the term "time flies when you're having fun" has applied.
01:14:26 -!- FireFly|n900 has joined.
01:23:39 <zzo38> If you write a web program with GNU GPL and you sell a book of it, what is the license issues involved?
01:28:29 <Gregor-W> None? The GPL is the GPL regardless of the media format ... if you sell a book of a compiled binary of it, you have to include the source.
01:30:16 <pikhq> Aside from the GPL being poorly suited to not-code, no issues.
01:34:58 <zzo38> I understand the GPL is poorly suited to not-code, except, but it is a computer program code, but you print it out to make a book (including the table of contents, and index, and so on).
01:36:39 <Gregor-W> Is the index MERELY AGGREGATED with the source code, or LINKED with it? X-P
01:37:13 <zzo38> Gregor-W: The index is created from the source-code. The entire book is created from the source-code.
01:38:32 <zzo38> (Except that the index is generated automatically, the source-code does not include the index, instead it will find everything needed indexed and then put it in order in the index, with the section numbers)
01:38:49 <zzo38> (Section numbers are not included in the source code either, they are also automatically generated)
01:43:41 -!- Gregor-W has quit (Quit: Page closed).
01:49:50 <pikhq> zzo38: Arguably, the book is itself the compiled binary, and you need to also distribute the source.
01:50:12 <pikhq> Where "distribute" can just mean "You may download this at http://example.com/foo".
01:50:34 <zzo38> pikhq: Yes, it is, itself what I think. The actual executable program is also the other compiled binary.
01:50:57 <zzo38> pikhq: I don't think that "distribute" is good enough......
01:51:12 <pikhq> It is.
01:51:23 <pikhq> "Believed to be" under GPL2, explicitly so under GPL3
01:53:38 <zzo38> That isn't good enough unless the URL specifies exactly to the program (so that accessing it using wget or netcat or curl will download the source file directly), but is better if, when you sell a DVD with this book that includes the source-codes, and a hardware device that uses this program
01:55:42 -!- augur has quit (Remote host closed the connection).
01:56:51 <Sgeo> What was GPL1 like?
02:08:22 -!- zzo38 has quit (Quit: Akagi Shigeru).
02:24:01 <Sgeo> I took the Tylenol over an hour ago, why isn't it helping?
02:26:57 <Gregor> Because over-the-counter pain medicine is basically a joke that people continue to use because the placebo effect is more powerful when you actually believe it'll work.
02:34:00 <Sgeo> I once believed that a Tylenol I took would take effect in half-an-hour. My pain was relieved in an hour
02:34:15 <Sgeo> Can placebo effect explain that? (I'm not being sarcastic, I'm really curious)
02:36:44 <Sgeo> Will making the screen be red lessen the badness that using the computer would have on my headache?
02:45:03 <pikhq> Gregor: Actually, OTC pain medications are quite effective. Tylenol is not one of them for most afflictions.
02:46:34 * Sgeo wonders if the fact hat he only took half a dose might have anything to do with anything
02:46:54 <Sgeo> I'm rather on the small and thin side, so I try to be cautious...
02:47:40 <pikhq> Sgeo: Don't take Tylenol for headaches. It doesn't work, and it might kill your liver.
02:47:56 <pikhq> Try naproxen sodium, or aspirin, or ibuprofen.
02:48:05 <pikhq> </mild migraine sufferer?
02:48:05 <Sgeo> Never heard of naproxen sodium
02:48:59 <pikhq> s/?/>
02:49:00 <pikhq> Aleve = naproxen sodium
02:49:01 <Sgeo> Also, mightn't Aspirin kill my stomach? I don't drink, but I don't eat properly, so stomach issues might be more of a concern?
02:49:02 <coppro> win 28
02:50:10 <pikhq> Aspirin can cause ulcers, yes, but it's not generally a concern for short-term OTC use.
02:50:29 -!- Gregor-P has quit (Read error: Connection reset by peer).
02:50:43 <pikhq> (if you have stomach issues or diabetes, aspirin is a solid no, though)
02:50:49 -!- Gregor-P has joined.
02:51:58 <Sgeo> I have "not eating enough and the proper things" issues
02:52:50 <pikhq> That can cause headaches in and of itself.
02:53:00 <pikhq> You may want to fix that instead of resorting to medication.
02:54:39 <Sgeo> Called my dad
02:54:49 <Sgeo> He suggested that I take another Tylenol
02:55:10 <pikhq> How much have you taken?
02:55:21 <pikhq> (in mg, preferably)
02:56:03 <Sgeo> 500mg
02:56:21 <pikhq> Okay, you may be safe going up to 1,000mg.
02:56:41 <Sgeo> "may"?
02:57:02 <pikhq> Tylenol is scary stuff, and even normal doses have a chance of causing liver failure.
02:57:33 <coppro> #1: solution to headaches in my experience: drink lots of water and lie down
02:57:42 <pikhq> coppro: Not a solution for migraines.
02:58:06 <Sgeo> I don't _think_ I have migrains
02:58:14 <pikhq> Sgeo: You'd know if you did.
02:58:36 <coppro> pikhq: I don't suffer from migraines, and apparently neither does Sgeo.
02:58:48 <pikhq> Among other things, you would not be fond of the lightbulb on which my words are being displayed.
02:58:49 <Sgeo> I've had severe, severe headaches on occasion
03:00:34 <Sgeo> Maybe I should turn away from the computer...
03:03:07 -!- cheater99 has quit (Read error: Operation timed out).
03:08:57 -!- Gregor-P has quit (Quit: Bye).
03:08:59 -!- Gregor-P has joined.
03:13:03 -!- CakeProphet has quit (Ping timeout: 264 seconds).
03:25:10 <Sgeo> I hate walking into spider webs
03:25:14 <Sgeo> Especially large ones
03:25:32 <Sgeo> Also, my headache seems to be a bit better (without taking the extra Tylenol!)
03:26:11 * oerjan me toos
03:32:15 -!- Gregor-P has quit (Ping timeout: 264 seconds).
03:36:28 -!- CakeProphet has joined.
03:46:40 -!- sshc_ has joined.
03:49:33 -!- sshc has quit (Ping timeout: 240 seconds).
03:50:02 -!- sshc_ has changed nick to sshc.
03:53:59 -!- sshc_ has joined.
03:54:47 -!- sshc has quit (Ping timeout: 260 seconds).
03:55:43 -!- sshc_ has changed nick to sshc.
03:59:17 -!- sshc_ has joined.
04:02:16 -!- sshc has quit (Ping timeout: 240 seconds).
04:07:08 -!- sshc has joined.
04:09:33 -!- sshc_ has quit (Ping timeout: 240 seconds).
04:09:49 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.8/20100722155716]).
04:12:09 -!- sshc_ has joined.
04:14:13 -!- sshc has quit (Ping timeout: 276 seconds).
04:25:04 -!- sshc_ has changed nick to sshc.
04:27:47 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
04:33:06 -!- poiuy_qwert has joined.
05:05:44 -!- Sgeo has quit (Ping timeout: 265 seconds).
05:08:06 -!- poiuy_qwert has quit (Quit: Leaving).
05:08:12 * oerjan has no f idea what today's xkcd is about
05:08:49 <pikhq> oerjan: Porn
05:09:26 <oerjan> ah.
05:09:56 <pikhq> oerjan: A maid, a pizza delivery guy with a hot "sausage", and a "plumber" are stereotypical stock characters in American porn.
05:10:26 <oerjan> fine, fine
05:17:17 * oerjan suddenly wonders if there's cursing in american porn XD
05:17:30 <pikhq> Yes.
05:17:32 <Gregor> Of course they left out "construction worker", "prison inmate" and "schoolgirl/cheerleader/etc"
05:17:45 <pikhq> American porn is not aired on TV at all, and instead on DVD.
05:17:54 <pikhq> American porn also does not give a fuck about moral guardians.
05:18:01 <Gregor> Also the Internet :P
05:18:14 <pikhq> Well. Yes.
05:18:16 <pikhq> :P
05:18:29 <Gregor> Although the Web is a porn melting pot.
05:18:40 <pikhq> Indeed.
05:18:45 <oerjan> i just thought it would be hilarious if there wasn't
05:18:53 <pikhq> It would be.
05:19:11 <Gregor> Much use of "the 'F' word" :P
05:19:15 <Gregor> And lots of moaning.
05:19:31 <Gregor> And playing board games.
05:19:39 <oerjan> well yeah but is it really cursing if you use the words _literally_? :D
05:19:48 <Gregor> Arguably not.
05:30:07 <myndzi> o hey, this might be a good place to ask this
05:30:48 <myndzi> under scrutiny is the behavior of a bot being made to play tetris
05:31:04 <myndzi> there is a database of field shapes on which the pagerank algorithm is run
05:31:49 <myndzi> if we look 3 pieces ahead (we know what pieces they are), and get results like this (simplified): http://24.19.39.178/decision.png
05:31:57 <myndzi> the question is, is it better to follow the path for B or for C?
05:32:19 -!- oerjan has quit (Quit: Good night).
05:32:19 <myndzi> path B has a better field within it, but path C has a better field after 3 placements
05:32:45 <myndzi> of course, the values inherently describe how good a field is in terms of what sequences of pieces it can handle
06:06:08 -!- GreaseMonkey has joined.
06:10:50 -!- augur has joined.
06:32:38 -!- sshc_ has joined.
06:36:16 -!- sshc has quit (Ping timeout: 276 seconds).
07:16:33 -!- sshc_ has changed nick to sshc.
07:18:03 -!- kar8nga has joined.
07:21:29 -!- GreaseMonkey has quit (Remote host closed the connection).
07:23:58 -!- augur has quit (Remote host closed the connection).
07:24:08 -!- augur has joined.
07:56:51 -!- kar8nga has quit (Remote host closed the connection).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:44:49 -!- sebbu2 has joined.
08:44:51 -!- sebbu2 has quit (Excess Flood).
08:45:19 -!- sebbu2 has joined.
08:45:20 -!- sebbu2 has quit (Excess Flood).
08:45:49 -!- sebbu2 has joined.
08:45:50 -!- sebbu2 has quit (Excess Flood).
08:46:38 -!- sebbu2 has joined.
08:46:40 -!- sebbu2 has quit (Excess Flood).
08:47:24 -!- sebbu2 has joined.
08:47:25 -!- sebbu2 has quit (Excess Flood).
08:47:51 -!- sebbu has quit (Ping timeout: 260 seconds).
08:47:57 -!- sebbu has joined.
08:47:58 -!- sebbu has quit (Excess Flood).
08:48:27 -!- sebbu has joined.
08:48:29 -!- sebbu has quit (Excess Flood).
08:49:00 -!- sebbu has joined.
08:49:02 -!- sebbu has quit (Excess Flood).
08:49:35 -!- sebbu has joined.
08:49:37 -!- sebbu has quit (Excess Flood).
08:50:07 -!- sebbu has joined.
08:50:08 -!- sebbu has quit (Excess Flood).
08:50:38 -!- sebbu has joined.
08:50:39 -!- sebbu has quit (Excess Flood).
08:51:09 -!- sebbu has joined.
08:51:10 -!- sebbu has quit (Excess Flood).
08:51:57 -!- sebbu has joined.
08:51:59 -!- sebbu has quit (Excess Flood).
08:52:24 -!- sebbu has joined.
08:52:25 -!- sebbu has quit (Excess Flood).
08:52:52 -!- sebbu has joined.
08:52:53 -!- sebbu has quit (Excess Flood).
08:53:46 -!- sebbu has joined.
08:53:47 -!- sebbu has quit (Excess Flood).
08:54:16 -!- sebbu has joined.
08:54:18 -!- sebbu has quit (Excess Flood).
08:55:09 -!- sebbu has joined.
08:55:10 -!- sebbu has quit (Excess Flood).
08:56:04 -!- sebbu has joined.
08:56:06 -!- sebbu has quit (Excess Flood).
08:56:44 -!- sebbu has joined.
08:56:45 -!- sebbu has quit (Excess Flood).
08:57:37 -!- sebbu has joined.
08:57:38 -!- sebbu has quit (Excess Flood).
08:58:29 -!- sebbu has joined.
08:58:30 -!- sebbu has quit (Excess Flood).
08:59:01 -!- sebbu has joined.
08:59:03 -!- sebbu has quit (Excess Flood).
08:59:33 -!- sebbu has joined.
08:59:35 -!- sebbu has quit (Excess Flood).
09:00:04 -!- sebbu has joined.
09:00:05 -!- sebbu has quit (Excess Flood).
09:00:34 -!- sebbu has joined.
09:00:36 -!- sebbu has quit (Excess Flood).
09:01:08 -!- sebbu has joined.
09:01:10 -!- sebbu has quit (Excess Flood).
09:01:39 -!- sebbu has joined.
09:01:40 -!- sebbu has quit (Excess Flood).
09:02:13 -!- sebbu has joined.
09:02:15 -!- sebbu has quit (Excess Flood).
09:02:47 -!- sebbu has joined.
09:02:49 -!- sebbu has quit (Excess Flood).
09:03:24 -!- sebbu has joined.
09:03:25 -!- sebbu has quit (Excess Flood).
09:04:04 -!- sebbu has joined.
09:04:05 -!- sebbu has quit (Excess Flood).
09:04:28 -!- sebbu has joined.
09:04:30 -!- sebbu has quit (Excess Flood).
09:05:14 -!- sebbu has joined.
09:05:15 -!- sebbu has quit (Excess Flood).
09:05:41 -!- sebbu has joined.
09:05:43 -!- sebbu has quit (Excess Flood).
09:06:06 -!- sebbu has joined.
09:06:08 -!- sebbu has quit (Excess Flood).
09:06:33 -!- sebbu has joined.
09:06:35 -!- sebbu has quit (Excess Flood).
09:07:12 -!- sebbu has joined.
09:07:13 -!- sebbu has quit (Excess Flood).
09:07:46 -!- sebbu has joined.
09:09:02 <fizzie> That's some pretty excessive flooding.
09:14:05 -!- MigoMipo has joined.
09:26:55 -!- deschutron has joined.
09:29:34 -!- deschutron has left (?).
09:35:34 -!- FireFly|n900 has quit (Ping timeout: 252 seconds).
09:40:59 -!- SevenInchBread has joined.
09:43:16 -!- CakeProphet has quit (Ping timeout: 252 seconds).
09:43:46 <Quadrescence> http://i.imgur.com/Ulu6Z.png
09:44:38 -!- Phantom_Hoover has joined.
09:47:28 -!- fungot has quit (Ping timeout: 253 seconds).
10:57:17 -!- MigoMipo has quit (Read error: Connection reset by peer).
10:57:22 -!- augur has quit (Remote host closed the connection).
10:57:28 -!- augur has joined.
11:03:18 -!- FireFly|n900 has joined.
11:14:01 -!- FireFly|n900 has quit (Ping timeout: 252 seconds).
11:23:48 -!- Wamanuz has joined.
11:24:27 -!- tombom has joined.
11:31:38 -!- FireFly|n900 has joined.
11:42:37 -!- FireFly|n900 has quit (Ping timeout: 252 seconds).
11:43:24 -!- sebbu2 has joined.
11:43:39 -!- SevenInchBread has changed nick to CakeProphet.
11:43:43 <CakeProphet> :o
11:43:46 -!- ais523 has joined.
11:43:58 -!- FireFly|n900 has joined.
11:44:54 <augur> o:
11:46:49 -!- sebbu has quit (Ping timeout: 252 seconds).
11:46:50 -!- sebbu2 has changed nick to sebbu.
11:49:02 -!- CakeProphet has quit (Read error: Operation timed out).
11:49:02 -!- SevenInchBread has joined.
11:53:10 -!- ais523 has quit (Read error: Connection reset by peer).
11:54:04 * Phantom_Hoover is getting pretty fed up with Ubuntu holding his hand when downloading executables.
11:54:25 -!- ais523 has joined.
11:54:33 -!- ais523 has quit (Changing host).
11:54:33 -!- ais523 has joined.
12:00:46 -!- FireFly|n900 has quit (Ping timeout: 252 seconds).
12:01:35 -!- FireFly|n900 has joined.
12:02:53 -!- augur_ has joined.
12:04:47 -!- augur has quit (Ping timeout: 265 seconds).
12:04:57 -!- augur_ has changed nick to augur.
12:15:04 -!- FireFly|n900 has quit (Ping timeout: 252 seconds).
12:15:48 -!- FireFly|n900 has joined.
12:24:25 -!- FireFly|n900 has quit (Ping timeout: 252 seconds).
12:27:40 -!- Sgeo has joined.
12:32:48 -!- Sgeo_ has joined.
12:33:25 -!- Sgeo has quit (Ping timeout: 276 seconds).
12:36:43 -!- FireFly|n900 has joined.
12:42:34 -!- FireFly|n900 has quit (Ping timeout: 252 seconds).
13:05:13 -!- Sgeo__ has joined.
13:08:35 -!- Sgeo_ has quit (Ping timeout: 265 seconds).
13:20:17 <Phantom_Hoover> Sgeo__, why the constant quits and rejoins?
13:21:04 <fizzie> A fickle person.
13:21:16 <ais523> the varying numbers of underscores imply to me that it's a bad connection
13:21:28 <Phantom_Hoover> fizzie, BRING FUNGOT BACK
13:21:48 -!- augur has quit (Remote host closed the connection).
13:21:58 -!- augur has joined.
13:22:42 -!- oerjan has joined.
13:24:45 <Sgeo__> I ... wait, why'd I disconnect at 8:04?
13:25:02 <Sgeo__> The earlier disconnect was as my computer hibernated in an effort to prevent me from staying on it
13:25:21 <Phantom_Hoover> Sgeo__, evidently it failed.
13:25:33 <Sgeo__> No it didn't
13:25:44 <Sgeo__> I was unable to really use the computer until 7:30
13:25:56 <Phantom_Hoover> It's what, half 8 EST?
13:26:36 <Sgeo__> And?
13:26:55 <Phantom_Hoover> Wait, you stayed up the whole night?
13:26:56 <Sgeo__> At any rate, I didn't get any sleep last night. My dad wants me to stay up all day so I'll be able to go to sleep tonight
13:27:24 <Sgeo__> Yes, but you shouldn't have been able to derive that without me telling you. I'm confused now
13:28:00 <Phantom_Hoover> Sgeo__, I am a master of deduction.
13:30:18 <Phantom_Hoover> Like Sherlock Holmes, but without the charisma.
13:34:20 <AnMaster> yeah where is fungot?
13:38:32 <Phantom_Hoover> They killed him!
13:39:06 <fizzie> Hung up; I don't know what's up with that state it sometimes goes; it keeps sleeping in the network-read. You'd think TCP timeouts would kill it eventually, but they do not seem to.
13:39:24 <Phantom_Hoover> FIX HIM
13:39:28 -!- fungot has joined.
13:39:32 <Phantom_Hoover> fungot!
13:39:32 <fungot> Phantom_Hoover: i don't know of that one game... jak daxter ( or maybe i'm mistaken, but the
13:51:21 -!- Phantom_Hoover has changed nick to `hello.
13:51:44 -!- `hello has changed nick to Phantom_Hoover.
13:51:49 <Phantom_Hoover> Interesting...
13:51:59 -!- augur has changed nick to `heyphantom.
13:52:02 -!- `heyphantom has changed nick to augur.
14:48:19 -!- cpressey has joined.
14:56:59 <cpressey> ais523: You know, it's very easy to design a language whose programs form a monoid (because you don't need all that invertibility stuff)... then you could look at it as representing the category of monoids? Except, there is the slight snag that these aren't conventional algebras; they replace equality with computational equivalence (which is uncomputable!) in the axioms.
15:01:02 <cpressey> I think that's algebra's fault for assuming that = is such a trivial relation. ;)
15:01:38 <oerjan> algebraists generally just take the quotient by your equivalence relation and call it a day
15:02:25 <ais523> cpressey: ouch
15:04:55 -!- BeholdMyGlory has joined.
15:06:26 <oerjan> also equality with monoids is already undecidable when you have conventional equations. it's called the word problem.
15:06:52 <cpressey> Errrr indeed!
15:07:38 -!- oerjan has quit (Quit: Later).
15:07:44 <cpressey> That all seems rather cavalier somehow, but actually I think it means I can feel a whole lot better -- Burro doesn't bend the rules nearly as much as I thought it might.
15:11:37 <ais523> cpressey: if instead of "computational equivalence", you say "provable computational equivalence, according to inference rules X, Y, Z, etc.", it works I think
15:11:43 <ais523> e.g. for Burro, you have the cancelling-out rules
15:12:41 <ais523> (instead of interpreting it as a programing language that's a group, interpret it as a group that happens to be executable in a TC way)
15:14:09 <cpressey> Well... if you're suggesting to restrict the set to instances that we can prove are equivalent to other instances... I'm pretty sure that's not TC anymore (although it's a different way to put the question than I'm used to)
15:14:23 <cpressey> s/instances/programs if you like
15:15:12 <ais523> no, I'm not
15:15:16 <ais523> I'm suggesting weaking the equality relation
15:15:18 <cpressey> Or, not a group, because it's not closed: A x B = C where A and B are provably equiavlent to somerhing, but C isn't
15:15:20 <ais523> *weakening
15:16:01 <ais523> so that you can have two computationally equivalent programs that are not equal, because it can't be proved using a certain specific set of rules
15:16:11 <cpressey> OK, I think I see
15:16:17 <ais523> they're both part of the group, just /different/ group elements
15:16:25 <cpressey> Yeeeeees
15:16:32 * cpressey grimaces
15:17:15 <cpressey> How on earth would you show that the "unprovable elements" obey any of the laws, though?
15:17:29 <ais523> no individual element is unprovable
15:17:34 <ais523> it's just the relationship between two of them
15:17:47 <cpressey> OK, right
15:17:48 <ais523> and the laws are what you use to establish the equality relationship, so it's true by definition
15:18:03 <ais523> as in, two programs are equal if you can prove them equal using the group laws
15:18:11 <ais523> (which also implies they're computationally equivalent)
15:18:26 <ais523> two programs might happen to be computationally equivalent for a different reason, in which case they aren't equal
15:25:01 <cpressey> That might be a good way to re-seat the idea. I'm just trying to figure out if you lose anything (of significance). Currently, if 2 programs are equivalent for any reason, then they go into the same equivalence class and are treated as "the same thing" by the axioms. With the weaker definition, they would have to be "equivalent by the group axioms" in order to do that. OK, I think that's OK... Burro for example works
15:26:19 -!- augur has quit (Remote host closed the connection).
15:28:04 * Phantom_Hoover wonders if learning Fortran would be good for a laugh.
15:33:03 <cpressey> Phantom_Hoover: Not just a laugh, if you wanted to break into the big bad world of high-performance numerical computing.
15:33:14 <Phantom_Hoover> I don't want to do that.
15:35:42 <cpressey> Or you could learn: http://en.wikipedia.org/wiki/Fortress_%28programming_language%29
15:37:53 <cpressey> COBOL would be a heartier laugh.
15:38:34 <cpressey> Or are we to say "Cobol" now? Everyone says Lisp and Forth and Basic. Have shouted language names gone out of style?
15:38:55 <Phantom_Hoover> Yes, ever since the ASCII became standard.
15:39:22 <cpressey> -_^
15:39:31 <cpressey> Oh, the kids these days, always with the ASCII.
15:39:53 <Phantom_Hoover> WELL ITS DECIDEDLY BETTER THAN THE ALTERNATIVE
15:40:17 <oklopol> NOTHING WRONG WITH UPPERCASE
15:40:26 -!- derdon has joined.
15:40:28 <oklopol> EASIER TO READ
15:40:31 <Phantom_Hoover> Indeed, as Lisp demonstrates.
15:40:33 <oklopol> SEXIER
15:40:37 <oklopol> COOLER
15:40:38 <Phantom_Hoover> !lisp (print 'hello)
15:40:48 <Phantom_Hoover> oklopol, you think monospaced fonts are cool.
15:41:15 <Phantom_Hoover> Your view of aesthetics in typography are of a similar value of a pigeon's.
15:41:27 <Phantom_Hoover> s/view/views/
15:41:48 <oklopol> pigeons are very smart. all the known ways to show a language is not regular are based on pigeons.
15:43:05 <Phantom_Hoover> oklopol, maybe so, but they don't know the first thing about typography.
15:43:56 <ais523> oklopol: is that statement vacuously true?
15:44:17 <oklopol> "<Phantom_Hoover> s/view/views/" <<< clearly you know a lot about typography
15:44:18 <oklopol> hahaha
15:44:21 <oklopol> get it
15:44:25 <oklopol> typo-graphy
15:44:29 <oklopol> ais523: yes
15:44:32 <oklopol> err
15:44:37 <oklopol> no!
15:44:48 <oklopol> it's non-vacuously true
15:44:54 <ais523> `addquote <oklopol> pigeons are very smart. all the known ways to show a language is not regular are based on pigeons.
15:45:06 <ais523> as in, there is a known way to show a language is not regular, and it's pigeon-based?
15:45:08 <Phantom_Hoover> oklopol, that is a typo. They are common, due to the fact that humans are not designed to type.
15:45:08 <HackEgo> 211|<oklopol> pigeons are very smart. all the known ways to show a language is not regular are based on pigeons.
15:45:10 <oklopol> ais523: yes
15:45:16 <ais523> wow
15:45:26 <Phantom_Hoover> oklopol, what is it/?
15:45:27 <oklopol> ais523: well, not very literally :D
15:45:39 <oklopol> it's a pun.
15:45:43 <ais523> ah
15:45:54 <Phantom_Hoover> A pun in Finnish?
15:46:00 <oklopol> yes.
15:46:04 <oklopol> also in english though.
15:46:25 <Phantom_Hoover> Do explain.
15:46:36 <oklopol> well how do you show a lang is not regular?
15:46:44 <oklopol> sorry about the socratic method
15:47:51 <oklopol> well okay the point is the characterization (and often the definition) of regular languages as those recognized by a one-way fsa
15:48:15 <oklopol> you can develop a pumping lemma (often called "the" pumping lemma) for them, because of ...
15:48:25 <oklopol> (insert pigeons.)
15:49:04 <cpressey> :D
15:49:58 <oklopol> more precisely, we think of the states as pigeons
15:50:20 <oklopol> and i hope you get it already?
15:50:43 <Phantom_Hoover> No, but forget it.
15:51:41 <oklopol> pigeonhole principle, the letters of the string are the holes
15:53:29 <Phantom_Hoover> Ah.
15:54:21 <oklopol> i'm an elephant
15:55:14 <Phantom_Hoover> Yes you are, oklo, yes you are.
15:57:26 -!- Mathnerd314 has joined.
16:08:12 -!- Gregor has quit (Ping timeout: 260 seconds).
16:10:00 -!- Gregor has joined.
16:21:11 -!- kar8nga has joined.
16:37:53 -!- augur has joined.
16:40:18 <cpressey> ais523: OK, I think I see that any "group over computational equivalence" has a corresponding "group over provable computational equivalence" which is technically weaker, but more tractable, while "saying almost the same thing". (I'm sure you could relate them more formally.) Now, I wonder about the converse.
16:44:38 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
16:46:48 -!- relet has joined.
16:50:27 -!- AnMaster has quit (Read error: Operation timed out).
16:52:34 -!- FireFly|n900 has joined.
16:54:03 -!- FireFly|n900 has quit (Client Quit).
16:59:20 -!- kar8nga has quit (Remote host closed the connection).
16:59:27 -!- Phantom_Hoover has joined.
17:01:46 -!- Flonk has joined.
17:07:19 -!- augur has quit (Remote host closed the connection).
17:07:28 -!- augur has joined.
17:07:34 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).
17:12:15 -!- augur has quit (Remote host closed the connection).
17:12:20 -!- augur has joined.
17:24:51 -!- Phantom_Hoover has joined.
17:59:29 * Flonk just became aware of the awesomeness of brainfuck
18:01:05 <augur> oh?
18:01:09 <augur> have you seen iota?
18:01:28 <Flonk> no, whats iota
18:01:47 <augur> a combinator language with only one combinator and one non-logical symbol
18:02:13 <Flonk> O_o
18:03:44 <Flonk> and i thought brainfuck was masochistic.
18:04:16 <Phantom_Hoover> Flonk, it's of the same computational class as Brainfuck, too.
18:06:24 <augur> well
18:06:32 <augur> it depends on what you mean by computational class
18:06:36 <augur> in terms of power, any TC language is
18:06:40 <ais523> Unlambda/Lazy K > Iota
18:06:48 <augur> if you mean its a tarpit, only sort of
18:06:54 <augur> tarpits tend to be machine languages
18:07:00 <augur> whereas iota is a combinator language
18:07:14 <augur> which has its roots in the lambda calculus, whereas machine languages have their roots in turing machines
18:14:43 <cpressey> "Computational class" generally means "what kinds of things can it compute" in eso-land, rather than "what it has roots in"
18:15:16 <augur> well then its kind of useless to say that its in the same computational class as brainfuck
18:15:34 <augur> because almost all esolangs are TC
18:15:43 <augur> its like saying its in the same computational class as piet
18:15:57 <cpressey> That's not useless, though.
18:16:20 <augur> it pretty much is
18:16:22 <augur> its TC
18:16:25 <augur> most esolangs are
18:16:30 <augur> you'd be surprised if one werent
18:17:15 <cpressey> There are quite a few that aren't. There are quite a few that *intentionally* aren't.
18:17:27 <Phantom_Hoover> Like C?
18:17:43 <augur> C isn't eso
18:17:53 <Phantom_Hoover> augur, O RLY?
18:17:53 <augur> and its only not TC for silly reasons
18:18:01 <augur> well, its fucking weird, ill give you that
18:18:08 <augur> but its not an esolang
18:18:09 <Phantom_Hoover> "Silly"?
18:18:17 <augur> yes
18:18:47 <Phantom_Hoover> It's not TC! How is it not TC for silly reasons!
18:18:57 <augur> silly, in that it gives you directly manipulable access to memory addresses, and therefore the size of pointers has to be visible
18:19:10 <augur> and thats what leads to the non-TCness
18:19:18 <Phantom_Hoover> augur, don't see where silly comes in.
18:19:40 <augur> the size of pointers becomes a part of the language itself, not something thats invisible and happening only between the compiler and the machine code
18:20:12 <augur> and its prooooobably true that you never need to actually know how big this or that pointer is
18:20:27 <cpressey> Unless you want to, I dunno, store it.
18:20:28 <augur> you just need to be able to do math on pointer sizes
18:20:35 <augur> cpressey: nope!
18:20:36 <cpressey> Or send it across a wire.
18:20:48 <Phantom_Hoover> augur, malloc?
18:20:52 <augur> you just need to allocated size(the_pointer) space!
18:21:19 <Phantom_Hoover> augur, so you need to know what size(the_pointer) is!
18:21:35 <augur> no, you just need to be able to allocate enough space to store one
18:21:41 <augur> however much space that happens to be
18:21:45 <cpressey> Or, you know, prove that your real-time system can react to every event in less than 1 msec.
18:22:03 <cpressey> How long will it take to follow this pointer? Well that's the thing see
18:22:08 <Phantom_Hoover> augur, oh, and what if you want, say, a dynamically-allocated 2D array?
18:22:16 <augur> cpressey: i think if you want to do that you should be coding in a language closer to the metal or with good verification :P
18:22:26 <cpressey> Closer to the metal than C... uh-huh.
18:22:30 -!- kar8nga has joined.
18:22:36 <augur> sure!
18:22:38 <Phantom_Hoover> cpressey, ring 0 assembly?
18:22:43 <augur> C--, obviously.
18:22:45 <augur> xp
18:23:50 <cpressey> So, because C isn't sufficiently "close to the metal", it should be even "further away from the metal", to the point where it supports pointers of unbounded length?
18:24:04 <Phantom_Hoover> cpressey, well, yes.
18:24:10 <augur> cpressey: no, not at all
18:24:26 <augur> just that it should make pointer size transparent
18:24:31 <Phantom_Hoover> Actually, once size_t is unbounded you can make a MRM, I think.
18:24:59 <cpressey> augur: It would need pointers of unbounded size (unbounded at runtime, mind you) in order to be TC, you realize.
18:25:06 <augur> im not actually sure if thats possible, im probably wrong, but i suspect that there are ways to write a language that is about that low level, but which can gloss over the details of any given machine
18:25:17 <Phantom_Hoover> augur, that's C.
18:25:36 <Phantom_Hoover> It's just high-level enough that it can run on most architectures.
18:25:46 <augur> cpressey: well yes
18:25:53 <augur> ofcourse, i think saying C isnt TC is kind of a trick
18:26:11 <augur> because its as TC as any programming language on a given machine is
18:26:14 <augur> which is to say, it isnt
18:26:20 <Phantom_Hoover> That is irrelevant.
18:26:20 <augur> but only because its on a finite machine
18:26:40 <augur> if you could design a computer with infinite memory then you could hav a TC C
18:26:49 <Phantom_Hoover> augur, no, you couldn't.
18:26:59 <Phantom_Hoover> C's specification explicitly makes it a FSM.
18:27:00 <augur> sure you could
18:27:14 <augur> your integers would just have to be potentially an infinite number of bits long
18:27:16 <Phantom_Hoover> You couldn't make a standards-compliant TC C.
18:27:22 <Phantom_Hoover> augur, *impossible*!
18:27:31 <augur> impossible due to physics
18:27:34 <Phantom_Hoover> sizeof(int *) *must* be bounded!
18:27:38 <cpressey> sizeof(x) would need to be able to evaluate to the integer "infinity", which C doesn't define.
18:27:40 <coppro> no, impossible due to the standard
18:27:40 <Phantom_Hoover> It's *defined* that way.
18:27:58 <augur> sizeof(x) would indeed evaluate to infinity
18:28:03 <augur> but that ceases to be relevant
18:28:09 <cpressey> But there *is no infinity* defined in C
18:28:13 <Phantom_Hoover> More generally, sizeof must return a value of type size_t, which is itself defined to be finite.
18:28:14 <coppro> the C standard requires a finite size of integers and a finite size of pointers, meaning that the total program space is always finite
18:28:27 <augur> cpressey: that may be so, but it doesnt matter
18:28:42 <Phantom_Hoover> augur, it *does*.
18:28:55 <cpressey> It does, because the language you're talking about is not C.
18:28:55 <augur> the fact that C has no defined infinity is precisely why it's a SILLY way to restrict C's computational power
18:28:57 <Phantom_Hoover> sizeof cannot have infinity.
18:29:01 <augur> its a technicality of non-TCness
18:29:07 <augur> not any sort of genuine conceptual limitation
18:29:17 <Phantom_Hoover> Yes it is.
18:29:20 <augur> no its not
18:29:47 <coppro> no, it's quite important
18:29:52 <augur> not really
18:30:10 <coppro> now, it's silly to restrict TCness because of the impracticality of an infinite program space
18:30:11 <augur> for any finite machine you can compile a C program to it
18:30:19 <coppro> but you cannot consider C to be TC
18:30:25 <augur> i didnt say it was!
18:30:31 <augur> i said it was non-TC but only for silly reasons
18:30:56 <cpressey> You said C on an infinite machine would be TC. Sadly, no. C-with-infinity might be.
18:31:06 <augur> well ok, fine
18:31:09 <augur> C-with-infinity then
18:31:23 <augur> thats not a substantial change to the language to make it Not C
18:32:16 <Phantom_Hoover> augur, yes it is.
18:32:28 <Phantom_Hoover> For one thing, malloc would work completely differently.
18:32:48 <Phantom_Hoover> malloc(sizeof(void *)) == malloc(infinity)
18:33:09 <augur> yes, but on a ram machine with each memory cell of infinite size
18:33:22 <augur> instead of just one bit
18:33:25 <cpressey> It's pretty substantial because of C's memory model. In languages like Lisp you can get relative (and thus unbounded) addressing with things like car and cons. In C you have to use pointers, and pointers are castable to integers, so you have to deal with the possibility of infinite integers, etc.
18:33:44 <augur> right, i get that
18:33:54 <augur> like i said, if you made pointers opaque
18:33:54 <cpressey> It's not impossible to do, but it doesn't strike me as simple.
18:33:58 <augur> ie not castable to integers
18:34:06 <augur> i mean, im not saying THAT wouldnt make it not C
18:34:43 <augur> but i did also say that i really doubt that anyone truly NEEDS to see the pointers as integers in any substantial sense
18:35:02 <augur> pointer arithmetic is all for memory shuffling and i think you could probably just get away with a point type that has opaque mathematics
18:35:42 <cpressey> Sure. Pascal does that.
18:37:11 <augur> its just a suspicion tho, that you-the-programmer dont actually ever need to use pointers as ints outside of navigating memory
18:37:46 <augur> if thats the case, then you could probably gloss over that somehow like pascal, without substantially changing the nature of how c-programs are written
18:38:13 <cpressey> And make it much harder to write a garbage collector or an OS kernel in C. Yes.
18:38:24 <augur> and so i would consider that to be a silly sort of non-TC-ness, in the same way that any finite-tape turing machine is not-TC
18:38:33 <augur> oh well sure, but why would you garbage collect on an infinite memory machine? :P
18:38:53 <cpressey> You wouldn't. But my machine doesn't *have* infinite memory.
18:38:55 <augur> you could never garbage collect and still have enough memory for any terminating program you want!
18:39:02 <augur> well im not saying it does
18:42:24 <augur> i just dont think its very insightful to say that C is not turing complete, because it's /effectively/ turing complete
18:42:48 <cpressey> No, it's not. I would call that a misunderstanding of what "Turing complete" means.
18:43:02 -!- olsner has quit (Read error: Connection reset by peer).
18:43:26 <augur> and i would say that denying it is a misunderstanding of it. :D
18:43:41 <augur> to say that a finite tape turing machine is not turing complete is entirely true
18:43:46 <augur> but also entirely missing the point
18:43:58 <cpressey> The point being?
18:44:02 -!- kar8nga has quit (Remote host closed the connection).
18:44:14 <Phantom_Hoover> cpressey, that augur likes C.
18:44:25 <augur> the differences between the automata's internal structure are far more important to computational power than the tape size
18:45:26 <Phantom_Hoover> Hang on, does the C standard allow for mmapping to external devices?
18:45:30 <cpressey> But actually, they aren't. A turing machine with a finite tape -> finite automaton. A pushdown automaton with finite stack -> finite automaton. Etc.
18:46:04 <cpressey> The internal structure is a technicality, computational-power-wise, if the storage size is fixed.
18:46:16 <augur> and vice versa
18:46:50 <Phantom_Hoover> Because then we can define a fixed address o which can be used to interface to a TM.
18:46:53 <augur> and since ToC studies the nature of computation, not the nature of harddrive space, the more salient and important aspect of study is and has always been the kinds of automata behavior
18:46:58 <augur> well, has mostly been
18:47:12 <augur> the incidental fun of what happens when you run out of memory is always a perenial issue
18:47:16 <cpressey> Vice versa? The storage size is a technicality if the internal structure is fixed? I would hardly agree with that.
18:48:03 <cpressey> augur: Can you tell me why you think Turing said his machine should have infinite tape?
18:48:10 <augur> no what i mean is that the differences between the classes of automata, by their internal state-machine properties, are far more salient than the memory limitations they run up against
18:48:32 <augur> you can give a TM more memory, and it can compute more and more complex classes of functions, up to TCness
18:49:58 <augur> a PDA with an infinite stack is still not TC
18:50:03 <augur> itll only get you the CF languages
18:50:30 <augur> infinite memory does not a TM make
18:50:32 <cpressey> But can you tell me why you think Turing designed his machine with an infinite tape?
18:50:38 * Phantom_Hoover imagines a little palmtop with an infinite stack poking out of it into the distance.
18:50:53 <augur> because you need infinite memory for TRUE TCness
18:51:04 <augur> but you also need infinite memory for true CFness
18:51:08 <cpressey> Ah! So "TC" is not the same as "TRUE TC"
18:51:16 <augur> ofcourse it does
18:51:22 <augur> and i never used it otherwise
18:51:28 <augur> "effectively TC" does not mean "actually TC"
18:52:16 <augur> a computer that can simulate EVERY turing machine, minus the ones with trivial infinite loops, is also not ACTUALLY TC
18:52:19 <augur> but its effectively TC
18:53:02 <augur> just because the computer will not simulate while (true) {} doesnt mean its not effectively TC
18:53:14 <augur> it just means it wont do computations that aren't really computing anything
18:53:59 <cpressey> Er - well I don't think it's possible to design such a computer, by the Halting Problem, but that's a side-track
18:53:59 -!- Gregor-P has joined.
18:54:02 <augur> and i think if you asked turing whether or not his definition was intended to explore computationaly ALGORITHMS
18:54:07 <augur> or computational vagaries
18:54:10 <augur> he'd say algorithms
18:54:15 <cpressey> Phantom_Hoover: (Should I call the Halting Problem HP so you can have other hallucinations?)
18:54:16 <augur> uh
18:54:19 <augur> ofcourse its possible
18:54:30 <augur> recognition of trivial loops do not violate the halting problem
18:54:32 <Phantom_Hoover> cpressey, why?
18:54:52 <augur> precisely because their recognition is not itself a non-terminating program.
18:55:09 <cpressey> augur: I can get your machine to simulate while (true) {} by giving it any number of other equivalent loops which it cannot recognize
18:55:35 <Phantom_Hoover> We're getting into computational equivalence here, aren't we?
18:55:41 <augur> if your loop does anything in between cycles, then its not equivalent
18:55:52 <Phantom_Hoover> Here be dragons!
18:55:59 <cpressey> Phantom_Hoover: (It was re your PDA vision. HP = Hewlett-Packard, get it?)
18:56:05 <augur> and if it doesnt do anything inside the loop, then its trivially detectable
18:56:13 <Phantom_Hoover> cpressey, hah.
18:56:15 <augur> we already know that trivial infinite loops are detectable
18:56:19 <augur> thats not where the halting problem comes from
18:56:41 <augur> the halting problem comes from paradoxical cases where proving that some program will halt is also a proof that it wont halt
18:56:45 <cpressey> augur: "Does anything"? I can give you thousands of pieces of code that are equivalent to doing nothing.
18:56:58 <augur> do go on
18:57:18 <Phantom_Hoover> augur, while () {x++; x--}
18:57:23 <augur> that doesnt do nothing
18:57:26 <Phantom_Hoover> Given an appropriate definition of x.
18:57:34 <augur> it has no effects outside of the loop
18:57:37 <Phantom_Hoover> augur, it's *equivalent* to doing nothing.
18:57:39 <augur> but inside the loop it stil does something
18:57:43 <augur> its equivalent OUTSIDE of the loop
18:57:49 <cpressey> if (collatzHalts) x++; if (goldbachIsTrue) x--;
18:57:52 <augur> but the behavior of the machine is not identical
18:58:05 -!- olsner has joined.
18:58:17 <augur> the point is that detection of trivial loops by behavior is possible
18:58:19 <cpressey> This is not about "behaviour of the machine", this is about "what functions can it compute or not compute".
18:58:30 <augur> and if you elminate any particular trivial loop, you cease to be TC
18:58:38 <Phantom_Hoover> augur, OK, so let's give that it eliminates trivial loops. It's still TC.
18:58:39 <augur> because you cant simulate some particular turing machine
18:58:54 <augur> but to be TC you have to be able to simulate EVERY turing machine
18:58:55 <cpressey> augur: Maybe my Turing machine can't read the letter A or produce the letter M. Therefore not TC?
18:59:20 <Phantom_Hoover> Lazy K is TC, but it works so non-TMily that you can't meaningfully compare them other than by which functions they can compute.
18:59:28 <augur> if you're simulating a turing machine, and your UTM design explicitly rejects turing machines that encode A's or M's somehow, then yes
18:59:29 <augur> its not TC
18:59:33 <cpressey> That's equivalent to "Can't read this particular syntax that gives an empty loop." There are an infinite number of others that do the same thing.
18:59:52 <augur> yes there are, but a UTM needs to be able to simulate EVERY turing machine
19:00:04 <augur> thats what makes it universal
19:00:10 <Phantom_Hoover> augur, you can be TC without being a UTM.
19:00:15 <augur> no you cant.
19:00:22 <Phantom_Hoover> See my comment above re Lazy K.
19:00:23 <augur> TCness means being able to simulate any turing machine.
19:00:41 <Phantom_Hoover> augur, no, not really. It means it's able to compute anything a TM can.
19:00:43 <augur> if Lazy K is TC it can simulate a TM
19:00:48 <augur> it might not BE a TM
19:00:51 <augur> but it can simulate one
19:01:26 <Phantom_Hoover> So can your limited TM.
19:01:30 <augur> nope
19:01:37 <Phantom_Hoover> Yes it can.
19:01:39 <cpressey> augur: Yes. You misunderstand "simulate".
19:01:44 <augur> because i explicitly limited it to not be able to simulate a particular machine
19:01:51 <Phantom_Hoover> augur, no you didn't.
19:01:54 <augur> yes, i did
19:01:58 <Phantom_Hoover> You forbade a single program.
19:02:05 <augur> yes
19:02:07 <Phantom_Hoover> Not a single machine.
19:02:12 <cpressey> A particular machine is only one of an infinite number that *perform the same computation*.
19:02:19 <Phantom_Hoover> It can still simulate one, just by interpreting.
19:02:21 <augur> and programs and machines are not distinguishable in any real fashion
19:02:33 <cpressey> You might as well say, well, this UTM doesn't interpret the lambda caclulus, thus it isn't universal.
19:02:34 <augur> i can define a turing machine that is that program
19:02:38 <Phantom_Hoover> augur, point being?
19:02:51 <augur> my point being is that i can then forbid that particular machine
19:03:06 <augur> and the putative UTM stops being universal
19:03:07 <Phantom_Hoover> We have demonstrated that any computation a TM can do can be done by your restricted TM.
19:03:22 <augur> but that is not the definition of TCness
19:03:25 <Phantom_Hoover> Just by adding self-cancelling instructions into loops.
19:03:35 <Phantom_Hoover> augur, *yes it is*.
19:03:37 <augur> no
19:03:38 <augur> it isnt
19:03:44 <augur> quote the wikipedia
19:03:45 <augur> "In computability theory, a collection of data-manipulation rules (an instruction set, programming language, or cellular automaton) is said to be Turing complete if and only if such system can simulate a single-taped Turing machine."
19:03:58 <augur> it is not simply enough to be able to compute the same functions
19:04:00 <cpressey> augur: If your UTM forbids machine X, then I just give your UTM, my UTM with X encoded as input to my UTM. Your UTM runs my UTM which runs X. Making your machine run X.
19:04:11 <cpressey> augur: Get it?
19:04:13 <Phantom_Hoover> What cpressey said.
19:04:33 <augur> and there are finite means for detecting such recodings.
19:04:42 <cpressey> augur: Actually, there aren't.
19:04:46 <augur> actually there are.
19:04:49 <cpressey> There aren't even *decidable* means.
19:04:58 <augur> there are FINITE means.
19:05:11 <augur> tho decidable and finite i suppose in this case mean the same thing.
19:05:20 <cpressey> There aren't means that can be put in *your* UTM.
19:05:21 <augur> since all problems are solvable in finite time.
19:05:24 -!- zzo38 has joined.
19:05:43 <augur> i didnt say there were means that could be implemented in my particular UTM
19:05:48 <augur> tho there might be
19:05:53 <Phantom_Hoover> augur, so it's superturing?
19:05:53 <cpressey> No, not all problems are solvable in finite time. *Some problems are not solvable*.
19:05:57 <augur> Phantom_Hoover: nope
19:06:09 <augur> the wonderfully bizare thing about this whole proof theory/theory of computation mess
19:06:18 <Phantom_Hoover> augur, there is a problem that can't be solved in finite time. We've mentioned it already.
19:06:20 <cpressey> augur: By claiming you could build a machine that would not simulate X, you were claiming there were such means.
19:06:23 -!- Behold has joined.
19:06:25 <augur> is that knowing that you cant know is not the same as knowing that you know you cant know
19:06:46 <augur> Phantom_Hoover: there are lots of problems that cant be solved even in infinite time
19:06:57 <augur> but it only takes finite time to discover that they're not solvable.
19:07:17 <Phantom_Hoover> augur, no, not really.
19:07:21 <augur> yes really
19:07:25 <augur> the halting problem is one such example
19:07:34 -!- BeholdMyGlory has quit (Ping timeout: 245 seconds).
19:07:40 <augur> it is not merely unsolvable in finite time, it is inherently paradoxical and impossible to solve at all
19:07:54 <Phantom_Hoover> augur, consider the Reimann hypothesis.
19:08:02 <augur> what about the reimann hypothesis
19:08:04 <Phantom_Hoover> It is impossible to prove that it is undecidable.
19:08:24 <augur> so?
19:08:30 <augur> i didnt say ALL undecidable problems are provably so
19:08:35 <augur> just that SOME are
19:08:49 <Phantom_Hoover> augur, you keep changing your definition!
19:08:58 <zzo38> while(1){x++;x--;} might have some effects in some cases if the optimizer won't remove it (or if it is marked as volatile). Such as, if x is at a invalid address it will be error, or, some memory mapped video or whatever, can have other effect
19:09:00 <augur> and in particular, the trivial infinite loops are provably infinite loops
19:09:17 <augur> well, the trivial infinite loops with no internal operations
19:09:18 <Phantom_Hoover> augur, and that makes not a jot of difference to the computational class.
19:09:25 <augur> ofcourse it does
19:09:32 <cpressey> augur: You don't seem to understand that disallowing "while (1) {}" does not make your machine non-Turing-complete.
19:09:32 <Phantom_Hoover> For reasons comprehensively outlined above.
19:09:39 <augur> cpressey: yes, it does
19:09:45 <cpressey> augur: No, it doesn't.
19:09:47 <augur> yes it does
19:09:57 <augur> because you have forbidden certain turing machines
19:10:06 <zzo38> Why is there all Excess Flood at the top?
19:10:10 <augur> a whole class of turing machines that do certain endless things
19:10:27 <cpressey> augur: The lambda calculus forbids ALL Turing machines. Therefore it must not be Turing complete either!
19:10:28 <augur> and as a result, you are not capable of simulating them, and thus you're not TC
19:10:34 <augur> no it doesnt
19:10:42 <augur> the lambda calculus simulates all turing machines
19:10:50 <zzo38> augur: But it depends what other functions you might have, you might be able to do other things with it too
19:10:53 <Phantom_Hoover> augur, SO DOES YOUR RESTRICTED TM
19:10:57 <augur> no it doesnt
19:11:03 <augur> i just said it doesnt, Phantom_Hoover
19:11:16 <Phantom_Hoover> It *does*!
19:11:19 <augur> no
19:11:20 <augur> it doesnt
19:11:22 <augur> here watch
19:11:32 <zzo38> Such as, Icoruma has no kind of while loops, but you can still call yourself.
19:11:35 <Phantom_Hoover> You can put a UTM on it and make it simulate the forbidden ones!
19:11:41 <augur> I define a TM which is Turing Complete sans all TMs that are equivalent in behavior to while (true) {}
19:11:55 <zzo38> C preprocessor codes can also call themself by #include files.
19:12:05 -!- Behold has changed nick to BeholdMyGlory.
19:12:14 <augur> this machine is not turing complete by explicit declaration
19:12:15 <cpressey> augur: Be careful about "equivalent in behaviour" -- you mean "externally observable behaviour", right?
19:12:44 <augur> i mean the operation of the machine being simulated, or the operation of the machine being simulated by the machine being simulated, etc.
19:12:56 <augur> down the infinitude of ways of simulating
19:13:11 <cpressey> augur: That's not how Turing completeness is defined.
19:13:22 <augur> what
19:13:26 <augur> im not defining turing completeness
19:13:29 <augur> im defining non-turing completeness
19:13:38 <cpressey> You are using the definition of TC.
19:13:40 <augur> or rather, a particular machine that is not turing complete
19:14:16 <augur> you can define such a machine that will detect all trivial infinite loops of that sort, regardless of how many layers of simulation they go through
19:14:22 <augur> and it can do it in finite time
19:14:27 <augur> and without itself employing such a loop
19:14:53 <cpressey> A system is TC if it can compute every function that a Turing machine can. (roughly speaking.) It does not have to do every "operation" that the Turing machine does, nor does it have to be "equivalent in behaviour" at the states-and-transitions level. If it meant that, nothing except TMs could be TC.
19:15:06 <augur> that is not the definition of turing complete, sorry.
19:15:21 <augur> that is the definition of extensional equivalent of computers
19:15:24 <Phantom_Hoover> augur, it is. Sorry.
19:15:25 <augur> which are different things entirely.
19:15:35 <cpressey> Errr no actually they're basically the same thing.
19:15:38 <augur> they're closely related, but they're not the same thing.
19:15:57 <ais523> the normal definition is to do with equivalence of halting behaviour on arbitrary input
19:16:05 <ais523> but it's rather unclear as to how the input is involved
19:17:00 <augur> also, regardless
19:17:51 -!- ais523 has quit (Remote host closed the connection).
19:18:02 <augur> even without the ability to finitely detect these things, there is still a set of turing machines which will halt on all inputs that in some way or other would be a trivial loop
19:18:10 <Phantom_Hoover> augur, you killed ais!
19:18:16 <augur> the decidability of that particular set is, ofcourse, irrelevant to the point
19:18:40 <augur> every member of that set is a turing machine which will halt on some program that they should not halt on if they were TC
19:18:43 <cpressey> augur: Not if you want to build that UTM, which I believe you said you could.
19:18:51 <augur> fine, forget building a UTM
19:19:06 <augur> the point i was trying to make was immaterial to the actual ability to do these things
19:19:15 <augur> the point was that such a TM is all but turing complete
19:20:02 <augur> and its only turing complete on a particular class of utterly useless loops that do no sort of computation but instead just cycle through some number of states endlessly
19:20:23 * cpressey looks sidelong at Phantom_Hoover
19:20:42 <Phantom_Hoover> Ultimate Teller Machine?
19:20:48 <Phantom_Hoover> Sorry, that's all I've got.
19:20:49 <augur> the fact that its might be impossible to say which turing machine is such a machine is irrelevant
19:21:03 <cpressey> Phantom_Hoover: not bad, not bad...
19:21:11 -!- mtve has quit (Ping timeout: 265 seconds).
19:21:17 <augur> infact, stated in those terms its trivial
19:21:30 <augur> and would catch all the equivalent x++x-- examples
19:21:53 <augur> a two tape turing machine, one for work and one for state tracking
19:22:02 <cpressey> augur: Yay, you just "effectively solved" the halting problem.
19:22:07 <augur> no, i didnt
19:22:18 <cpressey> In the same sense that your finite tape machine is "effectively TC"
19:22:30 <augur> i didnt even remotely effectively solve it
19:23:05 <augur> the point i was making, however, is that something can be non-TC without being non-TC in any meaningful way
19:23:12 <cpressey> Well, there's a set of TMs which always halt. We don't know which ones they are. But identifying them is irrelevant!
19:23:44 <augur> well yes, it is irrelevant to the issue of whether or not there are some TMs that always halt
19:23:51 <augur> if the question is "do some TMs always halt?"
19:23:58 <augur> then it doesnt matter what the full set of those are
19:24:11 <augur> the only relevant thing is to find one that does, or find a proof that one does
19:24:18 <augur> the same is true of C being effectively TC
19:24:53 <augur> is there any halting computation that cannot be performed on some C program compiled for an arbitrarily large machine? no.
19:25:32 <augur> are there non-halting computations that will halt on arbitrarily large C machines? yes.
19:26:08 -!- mtve has joined.
19:26:33 <augur> the theory of computation has little to say about non-halting computations because there's not much _to_ say, if the object of inquiry is the computation of functions
19:27:06 <augur> non-halting machines do not compute functions, they simply work on memory.
19:27:11 <cpressey> augur: So why do you think Turing included the section on Enumeration machines in his original paper?
19:28:06 <augur> because there IS this theoretical construct in which a machine that takes infinite time does actually halt via some magical process
19:28:36 <augur> and because non-halting machines are still useful for lots of things
19:28:58 <cpressey> Thought there was not much to say about them
19:29:24 <augur> there isnt. hence why there isn't much said
19:29:32 <cpressey> But they're useful for lots of things.
19:29:41 <augur> which, non-halting computations?
19:29:53 <cpressey> Did you not just say just that?
19:29:56 <augur> sure, but then you're outside the realm of computational equivalence and into _behavioral_ equivalence.
19:30:16 <cpressey> So, a computation cannot have an infinite result?
19:30:25 <cpressey> It's still a computation.
19:30:42 <cpressey> Not sure how this disqualifies it from computational equivalence.
19:30:44 <augur> its a hypercomputation
19:31:12 <augur> which is beyond the realm of TCness
19:31:27 <Phantom_Hoover> augur, what is your actual point?
19:31:57 <augur> my point is that while C is not _actually_ TC, the ways in which it is not TC are like the ways in which a UTM-minus-trivial-loops is not TC
19:32:12 <Phantom_Hoover> augur, and our point is that that's rubbish.
19:32:31 <augur> well you show me how then.
19:33:02 <cpressey> Give me a UTM-minus-infinite-loops, and I can still write any program I want for it.
19:33:02 <Phantom_Hoover> Because a) C is an FSM and b) UTM-minus-trivial-loops is TC unless you invoke superturing stuff.
19:33:13 <augur> cpressey: not one that loops infinitely!
19:33:25 <cpressey> Sorry, I missed a word there.
19:33:38 <cpressey> Give me a UTM-minus-*trivial*-infinite-loops, and I can still write any program I want for it.
19:33:46 <augur> no, dont even worry about triviality
19:33:47 <cpressey> That was your example from before, was it not?
19:33:55 <augur> take any non-trivial infinite loop, honestly, it doesnt matter
19:33:59 <cpressey> OK, then,
19:34:02 <augur> take any non-halting turing machine if you want
19:34:20 <cpressey> Give me a UTM-minus-*all*-infinite-loops and I'll give you a solution to the Halting Problem.
19:34:21 <augur> thats actually completely fine, the triviality was merely to point out that its possible to do in finite time
19:35:39 <augur> i shouldve said any non-halting looping machine, actually not simply any non-halting machine
19:35:40 <augur> but
19:35:50 <augur> no you wont, because its no longer universal, and therefore cannot answer correctly that a machine with no loops but with non-halting non-loops.
19:36:05 <augur> there are plenty of turing machines that do not halt but do not loop
19:36:44 <cpressey> From the point of view of computabilty, only halting matters. Who cares if the machine "loops" or not, whatever that means?
19:36:56 <augur> it matters because loops are deciable
19:37:07 <augur> well, detection of them is decidable
19:37:15 <augur> all you need to do is record the state of your simulated machine
19:37:24 <augur> eventually itll cycle through a previous state
19:37:28 <augur> in some finite amount of time
19:37:30 <augur> and then you halt
19:37:49 <augur> loop detection is decidable
19:38:15 <augur> but a machine that does not simulate a machine with loops is not TC, even if it simulates everything else
19:38:18 <augur> but so what
19:38:26 <augur> thats a boring, uninteresting kind of non-TC-ness
19:38:32 <augur> yeah sure its technically not TC
19:38:43 <augur> but big fucking deal
19:39:06 <cpressey> augur: You are boring and uninteresting, too.
19:39:20 <augur> you wanted to argue with me so you got it
19:39:33 <cpressey> augur: And I regret it.
19:39:35 <augur> if you didnt want to be bored, you shouldnt argue things that you're wrong about.
19:40:09 <augur> or you should at least not argue them with someone who's willing to spend hours to demonstrate that you're wrong.
19:40:27 <cpressey> ...at any cost, it would seem.
19:40:40 <augur> if the cost is to social relationships, its not a cost at all
19:40:49 <augur> if the cost is to my happiness, i cant say im any less happy as a result
19:41:04 <cpressey> Well, I would say that the cost is to truth, but maybe you don't believe in that either.
19:41:15 <augur> theres no cost to truth either
19:41:24 <augur> because nothing ive said was false.
19:41:47 <cpressey> augur: You corrected yourself several times.
19:41:59 <augur> if i corrected myself, then it didnt cost truth.
19:41:59 <cpressey> Therefore, you must have said at least one false thing, at one point.
19:44:06 <cpressey> Actually, that last is a great example of defending yourself at any cost.
19:44:23 <augur> im sure you think that
19:44:39 <augur> but in the end, i was right, you were wrong
19:44:43 <augur> and thats all that matters.
19:44:53 <cpressey> Good attitude.
19:45:00 -!- cpressey has quit (Quit: Leaving.).
19:45:51 <augur> poor cpressey. hurt and insulted by a simple discussion about C and turing completeness
19:45:51 <Phantom_Hoover> And the award for obnoxious bloody-mindedness goes to: augur!
19:46:05 <augur> im happy to be blood-minded about things that dont matter.
19:46:14 <Phantom_Hoover> augur, no, by the fact that he couldn't punch you in the face, which you deserved.
19:46:29 <augur> you and he deserved it more than i ever did
19:47:00 <augur> not the least because you'd punch someone in the face over something as inconsequential as this
19:47:56 <Phantom_Hoover> You know, I'm going to stop discussing this. You aren't going to be convinced you're wrong.
19:48:09 <augur> well why should i be when im not
19:48:12 <augur> that would be silly
19:48:34 <augur> we've already established that detection of looping behavior is decidable
19:48:46 <augur> which is not, by the way, news to anyone with any actual ToC experience
19:49:21 <augur> which demonstrates that lack of TCness is not necessarily a significant constraint on a machine
19:49:34 <augur> which is the only point i was trying to make about C
19:49:55 <Phantom_Hoover> It is the case with C; there are problems that are not solvable by C.
19:50:12 <augur> example?
19:50:27 <Phantom_Hoover> The brackets problem.
19:50:33 <augur> which is
19:50:47 <Phantom_Hoover> Check whether a given string is balanced.
19:50:56 <augur> uh
19:50:59 <Phantom_Hoover> C is an FSM, so it can't solve it
19:51:14 <augur> thats perhaps not solvable for a string of arbitrary size
19:51:21 <augur> and a machine of different arbitrary size
19:51:40 <augur> but the same is true of any programming language on a finite machine
19:52:05 <augur> however, for all strings, there exists some finite machine on which C can solve the problem for that string.
19:52:53 <augur> unless the string is infinitely long, but that computation wouldnt halt and has no answer
19:53:19 <augur> at least no turing computation would halt
19:54:02 <augur> the point remains: there is no halting computation which C cannot compute. there are merely halting computations which some particular machine running C code cannot compute
19:56:40 <augur> but the same is true of any programming language on any machine
19:56:41 <augur> except abstract machines, i mean.
19:56:41 <augur> and thus, we come full circle: C might not be TC, but is only not TC in an uninteresting sense.
19:59:43 -!- Gregor-W has joined.
20:00:00 <Phantom_Hoover> Gregor-W, do you have something interesting to say?
20:00:08 <augur> Phantom_Hoover: my suggestion is, if at any point in the future i describe something as silly
20:00:13 <augur> dont argue with me
20:00:13 <Gregor-W> I think the real argument is that you can't even define a C compiler targeting an abstract machine that would be TC, because too many details of real machines are baked into the language, namely maximum memory size.
20:00:54 <Gregor-W> (Sorry, didn't read the whole backlog, not sure if I'm arguing something that's already been argued)
20:00:57 <augur> Gregor-W: probably true, tho irrelevant, because you can always define maxmemsize to be larger than it is.
20:01:08 <Gregor-W> augur: Not when it IS infinite.
20:01:17 <augur> possibly true
20:01:33 <augur> im not entirely sure of that, but im not going to argue either way
20:01:37 <Phantom_Hoover> augur, actually true.
20:01:49 <augur> i would just say that anything that requires infinite memory is a silly computation to perform
20:01:53 <zzo38> Unless, you can modify C to add some new commands, such as "integer" and "real" and disallow sizeof to be used on them
20:02:06 <augur> and if you disagree you can timetravel into the past and relive the last hour :)
20:02:07 <Gregor-W> The only argument I've heard that I found compelling that could maybe make it almost make sense is that if you had infinite memory AND infinite-sized words, then sizeof(void*) could in fact be infinity, which would make everything "work"
20:02:09 <Phantom_Hoover> augur, it's not so much "infinite" as unbounded.
20:02:23 <augur> Phantom_Hoover: any halting computation requires only finite memory
20:02:32 <Gregor-W> augur: But you can't predict how much memory it will require.
20:02:37 <augur> doesnt matter.
20:02:41 <Gregor-W> augur: Yes, it does.
20:02:45 <augur> you hit the memory wall, then you upgrade
20:02:47 <Phantom_Hoover> augur, yes. Finite, *unbounded* memory.
20:02:53 <Phantom_Hoover> augur, *you cannot do that in C*,
20:02:59 <augur> well
20:03:03 <augur> i would have to recompile
20:03:03 <augur> yes
20:03:11 <Gregor-W> Yeah, upgrading your machine is not part of C X-P
20:03:12 <Phantom_Hoover> augur, that's not even vaguely C.
20:03:26 * Gregor-W -> lunch
20:03:27 <augur> Gregor-W: nor is the output of the compiled code :)
20:03:47 <Gregor-W> augur: The computation can depend on sizeof(void *), so you may end up with a different computation in the upgraded machine.
20:03:50 <zzo38> What else you could do is, make a kind of C that numbers and pointers are not interchangeable, even though you can add numbers and pointers together
20:03:57 <augur> Gregor-W: possibly.
20:04:04 <Phantom_Hoover> zzo38, we are talking standard C.
20:04:09 <augur> but again, i would classify that distinction as a silly
20:04:14 <augur> the program is still written in C
20:04:18 <augur> the compile product might be different
20:04:24 <augur> but the C source is the same
20:04:30 <augur> and the language spec is the same
20:04:36 <augur> so the language is not the limitation here
20:04:40 <Phantom_Hoover> Does C require computation?
20:04:47 <Phantom_Hoover> s/computation/compilation.
20:04:58 <Phantom_Hoover> s|.|/|
20:05:00 <augur> i imagine you could interpret it
20:05:14 <augur> but it'd be a bitch of an interpreter to write
20:05:21 <augur> infact, it sounds like something someone here would do
20:05:33 <Phantom_Hoover> It does...
20:05:36 <augur> so long as it was written in brainfuck
20:05:37 <augur> :D
20:05:52 <Phantom_Hoover> The tables turned!
20:07:15 <augur> always
20:08:05 <augur> also, zzo38: the suggestion of making numbers not interchangable with pointers was something i suggested before the argument got anywhere interesting
20:08:16 <augur> the response was that that was no longer C
20:08:26 <augur> which is true, but also true in an uninteresting way :P
20:09:04 <Phantom_Hoover> augur, uninteresting in the sense that a load of C programs would cease to work?
20:10:08 <augur> backwards compatibility is not my concern ;)
20:10:29 <zzo38> You could still allow pointers to be used as boolean values (many C programs require it)
20:10:35 <augur> uninteresting in the sense that any program that ceases to work was probably a hack or written out of ignorance
20:12:06 <zzo38> Which letters are missing? http://sprunge.us/VJAR
20:12:58 -!- augur has quit (Remote host closed the connection).
20:13:12 -!- augur has joined.
20:13:12 -!- myndzi has quit (Read error: Connection reset by peer).
20:13:42 -!- myndzi has joined.
20:14:25 <Phantom_Hoover> zzo38, pointer → bool is definitely not standards compliant.
20:15:28 <zzo38> Phantom_Hoover: OK, so it probably isn't standards compliant. A lot of programs use it. Also some programs use GNU extensions to C. And other things.
20:16:54 <Phantom_Hoover> zzo38, assuming NULL is 0 is non-compliant because NULL is undefined. It could be 0xDEADBEEF for all you know.
20:17:46 <zzo38> Phantom_Hoover: Yes. Still, NULL==0 is very common. Although you should still avoid such things as that (and other things) if you want to be standard compliant.
20:18:43 <zzo38> And even if NULL is not zero, it should be somewhat reasonable to make a compiler where a pointer used as boolean is false if NULL and true otherwise
20:19:03 <Phantom_Hoover> Well. Yes.
20:20:43 -!- mtve has quit (Ping timeout: 265 seconds).
20:20:47 -!- myndzi has quit (Ping timeout: 240 seconds).
20:21:36 <zzo38> (You can have a #pragma setting that tells it whether or not the current module should treat pointer->boolean this way, and if assigning 0 to a pointer makes it NULL, and then you can turn off this setting in some other modules that contain platform-specific codes.)
20:36:49 -!- Gregor-W has quit (Ping timeout: 252 seconds).
20:38:48 -!- ski has quit (Ping timeout: 264 seconds).
20:54:40 -!- kar8nga has joined.
20:56:38 -!- Gregor-W has joined.
20:56:43 <Gregor-W> Still arguing about C?
20:57:18 <zzo38> No.
20:57:28 <Gregor-W> Good :P
20:57:32 <zzo38> Now we are arguing about http://zzo38computer.cjb.net/icosahedral/printout/main.dvi
20:57:52 <zzo38> (This time about the actual text more, and less about the formatting. Although comment on the formatting as well if you want to)
20:58:28 <zzo38> (The file is available as PDF also, in case you prefer PDF)
20:59:49 <zzo38> Please read the texts I have added, and tell me if is understandable and stuff and so on, about if you think is good, if you have other suggestion, etc
21:03:06 <zzo38> Please tell me your opinion of this game?
21:04:28 <pikhq> Phantom_Hoover: NULL is not 0, but (void*)0 is NULL.
21:04:46 <pikhq> Even if the literal value of NULL is not 0, (void*)0 is NULL.
21:05:56 <Phantom_Hoover> So wait, if (malloc(1)) must always be false if malloc fails?
21:06:38 -!- oerjan has joined.
21:06:47 <pikhq> Yes. NULL is always false.
21:06:49 <Gregor-W> pikhq, Phantom_Hoover: This is perhaps the most confusing conversation you two have ever had :P
21:07:20 <Phantom_Hoover> Gregor-W, what other confusing conversations have we had?
21:07:36 <Gregor-W> That's my point? Maybe? Idonno.
21:08:18 <zzo38> It makes sense NULL is always false, but what happens for if you are writing platform-specific codes you want accessing address zero? That is why you should have the #pragma that I described
21:09:00 <Phantom_Hoover> zzo38, why would you want to access the value at 0?
21:09:08 <pikhq> zzo38: The result of casting from a number to a pointer is implementation-defined, so...
21:09:37 <zzo38> Phantom_Hoover: There are various possible reasons, depending on the hardware, it might be useful in some cases
21:09:48 <Phantom_Hoover> The only time you'd want to do that would be when writing really low-level OS code, at which point NULL isn't even meaningful.
21:10:27 <zzo38> I suppose if it is platform-specific you can write some codes in assembly language even
21:10:58 <Phantom_Hoover> Yes, exactly.
21:11:44 <Phantom_Hoover> If you actually need to twiddle with explicit addresses, you probably don't have malloc and friends.
21:13:38 <zzo38> Phantom_Hoover: Yes. But what if the C compiler on that platform defines something other than zero as NULL and you write ((void*)0) then it don't works??????????????????
21:13:54 <Phantom_Hoover> zzo38, why would you do so?
21:14:57 <zzo38> I don't need to define NULL to be something other than zero, but if some platforms do so, what are you going to do?
21:15:15 <coppro> zzo38: that will work 100%
21:15:32 <coppro> casting an integral constant of 0 to a pointer type gives the null value
21:15:36 <coppro> (which is dumb)
21:15:48 <Gregor-W> No one, past present or future, will EVER define NULL to be anything other than 0. Furthermore, no one, past present or future, will EVER define casts between ints and pointers to be anything but their obvious semantics. EV-ER.
21:15:51 <Phantom_Hoover> zzo38, *0 is perfectly legitimate C, it will just segfault on pretty much anything.
21:16:40 <zzo38> Yes and I have written things like *0 to make the program deliverately segfault when I wanted to put breakpoints into the source file
21:16:55 <Phantom_Hoover> zzo38, OK, that's insane, but anyway...
21:17:08 <Gregor-W> That's not insane at all.
21:17:10 <Gregor-W> I do that.
21:17:19 <Phantom_Hoover> Didn't he have _exit
21:17:58 <Gregor-W> That won't break in a debugger.
21:18:18 <Phantom_Hoover> Debuggers already have breakpoints. They're called breakpoints.
21:19:09 <zzo38> Yes, and the debugger breakpoint is useful for setting breakpoints at run time. But it doesn't help if you want to add breakpoints into the source file.
21:19:32 <Phantom_Hoover> I suppose that is sensible enough.
21:19:52 <zzo38> And what might happen if a line number occurs multiple times in a source file, what will the debugger do with that?
21:20:08 <Phantom_Hoover> Why would that happen?
21:20:17 <zzo38> (Such as, by using #line command)
21:20:34 <Phantom_Hoover> Anyway, I accept that using segfaults for breakpoints is sometimes sensible.
21:20:56 <zzo38> Is it permitted to use the #line command to mention files that do not exist?
21:21:20 <Phantom_Hoover> Why would you manually manipulate the lie numbers
21:21:29 <Phantom_Hoover> s/lie/line/s/$/?/
21:22:16 <zzo38> Other programs might cause a line number multiple times, such as Enhanced CWEB
21:22:40 <Phantom_Hoover> ...Why would Enhanced CWEB do this, but not CWEB?
21:23:20 <zzo38> Normal CWEB does this as well, but with Enhanced CWEB you might have the same line number multiple times but with a different code on the line each time, in some cases.
21:23:59 <Phantom_Hoover> zzo38, isn't that a bit... mad?
21:24:23 <zzo38> Perhaps it is? But I am OK with that
21:30:10 <zzo38> In addition, there are cases where a chunk might be used multiple times, but the C preprocessor might make them different each time (this can happen even in normal CWEB), such as "#define global extern" and put @<Global variables@> in heading file and then "#define global" as just blank for in main file, which some programs do.
21:32:17 <zzo38> Has it taken you some amount of time to figure out if I am insane?
21:38:21 <zzo38> And, do you have any opinion about Icosahedral RPG?
21:47:59 -!- myndzi has joined.
22:02:29 -!- sshc has quit (Ping timeout: 240 seconds).
22:03:17 -!- sshc has joined.
22:08:00 -!- tombom_ has joined.
22:10:10 -!- tombom has quit (Ping timeout: 246 seconds).
22:19:18 -!- Flonk_ has joined.
22:20:55 -!- Flonk has quit (Ping timeout: 260 seconds).
22:20:59 -!- Flonk_ has changed nick to Flonk.
22:27:32 -!- mtve has joined.
22:34:53 -!- Gregor-W has quit (Ping timeout: 252 seconds).
22:38:11 -!- kar8nga has quit (Remote host closed the connection).
22:39:35 -!- derdon has quit (Ping timeout: 246 seconds).
22:40:14 -!- derdon has joined.
22:42:51 -!- Wamanuz has quit (Read error: Connection reset by peer).
22:43:13 -!- Wamanuz has joined.
22:46:45 -!- tombom__ has joined.
22:49:14 -!- cpressey has joined.
22:49:17 <zzo38> //
22:50:57 -!- tombom_ has quit (*.net *.split).
22:52:27 -!- derdon has quit (Ping timeout: 260 seconds).
22:53:31 <cpressey> zzo38: Can yesweb handle multiple languages in the same document?
22:53:58 <cpressey> Like, if I write some modules of my program in (Literate) Pascal, and some in (Literate) C, and I want to make a PDF of the whole thing...
22:54:23 <cpressey> (I don't need to do this. I just thought I'd ask)
22:54:48 <zzo38> cpressey: Yes. yesweb does support multiple languages in same document.
22:54:55 <cpressey> Nice.
22:55:02 <Phantom_Hoover> According to an utterly unreliable "study", iPhone users get more sex than BlackBerry or Android users.
22:55:06 <Phantom_Hoover> Who knew?
22:55:27 <zzo38> However, to output to multiple files you need to define a macro for that (it is simple to do).
22:55:45 <zzo38> So, it is not built-in, but it is easy to add.
22:56:15 <Phantom_Hoover> Is there a way in Haskell to get an appropriate "null" value for an arbitrary type?
22:56:18 <zzo38> (I can add it to yesweb.tex if I want to or if someone else does or if it is seen as common enough)
22:56:45 <oerjan> Phantom_Hoover: Maybe a where a is your type?
22:56:57 <oerjan> then use Nothing for null and Just x for x
22:57:01 <Phantom_Hoover> oerjan, no, I mean an actual member of a.
22:57:13 <Phantom_Hoover> Using Maybe seems... wrong.
22:57:36 <cpressey> Not using something like Maybe seems... not possible.
22:57:37 <oerjan> Phantom_Hoover: there as some type classes that have null values sort of, but they're far from all types
22:57:53 <Phantom_Hoover> oerjan, yeah, a typeclass would be enough.
22:58:18 <Phantom_Hoover> Something like class Null a where { null :: a }
22:58:37 <cpressey> I think you'd have to have a function on your typeclass that tells you what member the "null" is.
22:58:42 <zzo38> There are different models of Android phones, but I read about Geeksphone which might be the best kind of Android phone
22:58:52 <oerjan> you are free to define such a class yourself, of course
22:58:57 <zzo38> Can you have a type like "Maybe Maybe Maybe Maybe Maybe Maybe Maybe Maybe Number"?
22:59:04 <oerjan> !haskell :t mzero
22:59:15 <Phantom_Hoover> zzo38, yews.
22:59:17 <Phantom_Hoover> s/w//
22:59:26 <oerjan> zzo38: sure, except you need some parentheses there
22:59:29 <Phantom_Hoover> Monads are types like any other.
22:59:47 <oerjan> !haskell mzero
23:00:03 <Phantom_Hoover> You can even have IO (Maybe (Maybe (IO (State Int ()))))
23:00:14 <oerjan> darn EgoBot and its useless error messages
23:00:22 <Phantom_Hoover> oerjan, more GHC.
23:00:31 <oerjan> Phantom_Hoover: no, definitely EgoBot
23:00:46 <zzo38> Do you ever have a use for that kind of types like I described?
23:00:51 <Phantom_Hoover> oerjan, surely it just gives you EgoBot's error.
23:01:08 <cpressey> zzo38: I was trying to think of a "serious" use for that, but I can't.
23:01:22 <Phantom_Hoover> zzo38, well, you might sometimes. If you want to mix State and IO, you would do that kind of thing.
23:01:24 <oerjan> Phantom_Hoover: yes, which is useless, due to the way it throws away ghci errors and tries module compilation with runghc instead
23:01:36 <Phantom_Hoover> oerjan, ohh.
23:01:48 <cpressey> You would almost always want to combine multiple Maybes into a single Maybe.
23:02:07 <Phantom_Hoover> cpressey, yes, that specific example is useless.
23:02:15 <oerjan> !haskell :i MonadZero
23:02:27 <oerjan> !haskell :info MonadZero
23:02:33 <cpressey> !haskell :h
23:02:41 <Phantom_Hoover> But other combinations of monads are perfectly justified.
23:02:45 <EgoBot> Commands available from the prompt:
23:02:50 <Phantom_Hoover> !haskell putStrLn "hello"
23:02:58 <EgoBot> hello
23:03:26 <Phantom_Hoover> oerjan, in any case, mzero isn't really what I was looking for.
23:03:26 * oerjan asks winhugs instead
23:04:11 <oerjan> Phantom_Hoover: i was just trying to find out if mzero was MonadZero (it was) or Monoid, and what the one for the other was (mempty)
23:04:39 <oerjan> of course Num types have 0
23:04:42 <Phantom_Hoover> mzero appears to be defined in Control.Monad.
23:04:46 <oerjan> yes
23:04:49 <cpressey> !haskell Just (Just 1)
23:05:02 <EgoBot> Just (Just 1)
23:05:03 <cpressey> !haskell :t Just (Just 1)
23:05:10 <EgoBot> Just (Just 1) :: (Num t) => Maybe (Maybe t)
23:05:23 <cpressey> !haskell :t Just Nothing
23:05:28 <EgoBot> Just Nothing :: Maybe (Maybe a)
23:05:31 <zzo38> Implement the SARTRE integer in Haskell.
23:05:43 <zzo38> (The SARTRE integer can have two values, either zero or duck sauce)
23:06:02 <cpressey> !haskell data SartreInteger = Zero | DuckSauce
23:06:05 <Sgeo__> data SARTRE = Zero | Du..
23:06:18 <cpressey> EgoBot tried to hurt me for that
23:06:42 <cpressey> Beh, need to leave anyway :/
23:06:46 <zzo38> But you have to make it it can be used like "0" like any other numbers?
23:06:58 -!- cpressey has quit (Quit: Leaving.).
23:07:05 * Sgeo__ gibbers at cpressey
23:07:13 <oerjan> Phantom_Hoover: anyway haskell provides Maybe precisely to _discourage_ you from considering arbitrary types to have null elements, it's considered a _wart_ to have nearly all types have nulls like in Java etc.
23:07:33 <Phantom_Hoover> oerjan, well, I suppose.
23:09:20 <oerjan> a data definition is neither a ghci command/expression nor a standalone program (needs a main function)
23:09:31 <Sgeo__> If you make it an instance of Num, you'd be able to add, subtract, ec
23:09:33 <Sgeo__> etc
23:11:03 <oerjan> zzo38: instance Num SARTRE where fromInteger 0 = Zero; fromInteger _ = DuckSauce + lots of other methods
23:11:37 <oerjan> (fromInteger is the one which gives you numerical literals)
23:12:10 -!- augur has quit (Remote host closed the connection).
23:12:22 -!- augur has joined.
23:13:13 <oerjan> i've tried it in EgoBot before and if you don't include all the necessary methods it just aborts with a warning
23:13:18 <Sgeo__> My dad's suggesting I take benedril to help me go to sleep
23:13:41 <Sgeo__> No, wikipedia, I did not mean a pokemon
23:14:10 <Phantom_Hoover> Sgeo__, I have a good way of getting to sleep.
23:14:25 <Phantom_Hoover> Hit yourself in the head with a lamp.
23:14:40 * Phantom_Hoover nearly typed "lambda" rather than "lamp" there
23:14:58 <oerjan> a lambda shaped lamp
23:15:01 <Phantom_Hoover> Although hitting yourself in the head with a lambda may help with sleeping.
23:16:16 <augur> i often do something analogous to hitting myself in the head with a lambda
23:17:17 <Phantom_Hoover> augur, what would that be?
23:17:19 <augur> my sleep generally ends up involving me in a semi-conscious state trying to understand how it is that i, as a function of some variables, will ever get back to sleep since im simply laying in bed and not being applied to any values
23:17:26 <augur> which would apparently constitute
23:17:31 <augur> "falling asleep"
23:17:37 <Phantom_Hoover> augur, I get like that sometimes.
23:17:41 <Phantom_Hoover> It's weird...
23:17:42 <augur> and i do mean that literally
23:17:54 <augur> the other day i was doing a lot of categorial-grammar related stuff
23:18:04 <Phantom_Hoover> Well, get some variables and apply yourself to them.
23:18:07 <augur> which is essentially type-level functions with directionality
23:18:23 <augur> and at one point i wont up slightly, and ended up having that exact thought
23:18:24 <zzo38> augur: Yes I do sometimes think of strange things like that while sleeping, but probably not quite that
23:18:38 <augur> and it wasnt some metaphorical interpretation of sexual loneliness
23:18:42 <augur> unless you dig really deep
23:18:53 <augur> it was a literal thing
23:19:17 <zzo38> Yes I mean it in the same way, it is never anything about sexual loneliness
23:19:30 <augur> :D
23:19:32 <Phantom_Hoover> zzo38, how do you know?
23:19:36 <augur> it was very bizarre
23:20:00 <Phantom_Hoover> augur, so did you find any variables?
23:20:13 <augur> well i fell asleep
23:20:14 <zzo38> Phantom_Hoover: I don't actually know, I just guess. But when I am sleep I think of strange things, of various strange things, some of which are impossible to describe, but it has nothing to do with sexual loneliness
23:20:45 * Phantom_Hoover thought a while ago that computers were basically machine code interpreters written in universe.
23:20:48 <augur> but in the context of the metaphor i decided that i must be a thunk, not a proper function or else i wasnt going to fall asleep any time soon
23:20:50 -!- tombom__ has quit (Quit: Leaving).
23:21:00 <augur> its all perversely sexually interpretable, lol
23:21:05 <Phantom_Hoover> It's quite an interesting way of looking at things.
23:21:20 <augur> but its entirely a result of me working on a parser
23:21:21 <zzo38> augur: Of course I suppose anything can be if you want it to be.
23:21:33 <zzo38> (But I don't want it to be)
23:21:49 <Phantom_Hoover> augur, no such things as thunks in the pure lambda calculus, though.
23:21:55 <Phantom_Hoover> Everything can be applied.
23:22:33 <augur> Phantom_Hoover: true enough, but thats ok
23:29:33 * Phantom_Hoover wonders if alise has heard about Multics' memory model.
23:30:45 <Phantom_Hoover> It's very similar to what he outlined.
23:41:05 <augur> ?
23:41:12 <augur> whatd she outline?
23:43:02 <zzo38> Here is the new version of yesweb with output of multiple files: http://sprunge.us/YVXY
23:57:29 -!- zzo38 has quit (Quit: Hit yourself in the head with a lambda.).
23:58:54 <Phantom_Hoover> Are vector processors little-used?
←2010-08-10 2010-08-11 2010-08-12→ ↑2010 ↑all