00:00:47 <oklofok> i think i'll change my whole life and be nicer from now on
00:01:06 <oklofok> hello Friendship, how's life?
00:02:37 <oklofok> i would like to "peg" your "pardon" if you catch my drift
00:03:13 <oklofok> i mean i don't understand OCHlotalk
00:04:08 <oklofok> but at least i learned a new word today
00:05:26 <oklofok> i see that people have discussed logic :O
00:06:55 -!- nortti has quit (Quit: ChatZilla 0.9.88.1 [Firefox 10.0.2/20120216213642]).
00:07:22 -!- MoALTz_ has quit (Read error: Connection reset by peer).
00:07:57 -!- MoALTz_ has joined.
00:11:51 <oklofok> ais523: what else do you know that you've been holding out on me?
00:12:10 <ais523> oklofok: err, I don't know
00:12:38 <oklofok> okay, please tell me when you remember
00:12:42 <oklofok> but none of that boring stuff
00:16:42 <oklofok> okay you can also tell me the boring stuff
00:17:14 <oklofok> not all of it thought because my head would become too heavy
00:17:45 <ais523> oklofok: one thing I've been wondering about is if CBPV and Underload are equivalent or not (allowing for the difference in typedness)
00:17:55 <ais523> I think CBPV embeds in Underload, but not trivially the other way round
00:18:47 <oklofok> i don't know anything about CBPV, but by the one sentence explanation by found, yeah it sounds like they could be
00:21:13 <oklofok> i have so many new ideas it's overwhelming
00:26:36 <ais523> partly because my supervisor keeps thinking things are relevant when they aren't
00:28:15 <oklofok> well i choose my topics myself, my supervisor mostly occasionally tells me that something i'm researching is a dead end
00:29:32 <oklofok> mostly it's dangerous because i can't concentrate on any single idea because the others are just as interesting
00:30:09 -!- zzo38 has joined.
00:31:29 <oklofok> so i mostly don't work on them at all, i just come up with more of them
00:31:59 <oklofok> i guess it would be nice to have some ideas for the summer, it would be nice to keep this publication speed up
00:32:32 <oklofok> (well, the speed i expect, depends on our success in peer-review of course)
00:32:38 -!- elliott has quit (Remote host closed the connection).
00:33:09 <oklofok> another problem is that when an idea is awesome enough, i'm afraid i'll destroy it if i think about it (for instance if it doesn't work)
00:37:57 <oklofok> i hugged a tree the other day
00:41:21 -!- elliott has joined.
00:41:34 <oklofok> hi elliott, have you hugged any trees lately
00:43:51 <olsner> oklofok: did it hug you back?
00:45:18 <oklofok> no, just the way i like it
00:46:48 <elliott> bad sci-fi protagonist names #3434838 Patricia Trie
00:48:01 <Sgeo> elliott, tswett monqy UPDATE
00:48:38 <olsner> not sure what you're supposed to update, but I guess you better do it
00:48:56 <elliott> hi oklofok the heating went off can you fix it
00:49:19 <oklofok> but i won't, because you haven't paid your debt
00:49:38 <oklofok> i'm not a whore you know, you have to PAY me if you want something from me.
00:53:03 <olsner> so, my lisp now does lexical instead of dynamic scoping, has some kind of closures, and supports destructive updates
00:53:22 <olsner> what can you do with a lisp?
00:53:45 <Sgeo> Add continuations?
00:53:59 <oklofok> olsner: start over and do all that again
00:54:00 <olsner> hmm, I suppose... been thinking of transforming it into a compiler too
00:54:02 <Sgeo> According to Oleg, delimited continuations are actually more powerful.
00:56:29 <elliott> olsner: remove the destructive updates
00:56:32 <olsner> might finish the gc... but it's a bit silly - I don't think I can actually unallocate memory, I think the closest thing I have is to allocate a new heap that is smaller
00:56:44 <elliott> olsner: then add laziness :P
00:57:14 <elliott> lazy lisp is actually really easy if all you have is cons pairs and symbols
00:57:15 <olsner> too lazy to do that, maybe I'll implement a lazy lisp inside the lisp I have though
00:57:27 <olsner> i.e. find a lazy lisp I can port
00:57:58 <oklofok> can we ever really "port" anything though
01:00:24 <olsner> elliott: hmm, how easy is it?
01:00:52 <elliott> olsner: well, what data types do you have and how many primitives?
01:01:26 <olsner> it should be conses, lambdas, symbols and ints
01:02:40 <olsner> well, plus random other stuff if I mix up host and lisp objects
01:04:24 <oklofok> actually there's a silent g, it should be ghost
01:05:09 <elliott> not so much a silent g in "ghost" as an invisible g in "host"
01:05:16 <oklofok> i think i made a lisp of some sort once and botted it here
01:06:18 <elliott> but nothing holds a candle to zepto
01:06:26 -!- azaq23 has quit (Quit: Leaving.).
01:08:03 -!- MDude has joined.
01:08:04 <oklofok> also i think i fucked up lexical scoping to some extent (i learned about closures like halfway through my little project and so it became a bit of a mess)
01:09:04 <olsner> elliott: the host is c++ templates :)
01:09:18 <olsner> I have a script that translates s-expressions into template syntax, and a template eval<Expr,Env> that evaluates them
01:09:36 <olsner> where the Env contains the current stackframe pointer and a heap of values that can be mutated by assigning variables
01:09:58 <oklofok> you tell us you're making a lisp interpreter, but you don't mention its polterchrist is c++ templates?
01:10:25 <oklofok> isn't that like telling us you're taking a bath and not mentioning you're bathing in a WORLD FULL OF SNAKES
01:11:40 <elliott> olsner: oh right i remember
01:11:49 <elliott> oklofok: it's the art of subtlety
01:12:05 <elliott> `addquote <oklofok> you tell us you're making a lisp interpreter, but you don't mention its polterchrist is c++ templates? <oklofok> isn't that like telling us you're taking a bath and not mentioning you're bathing in a WORLD FULL OF SNAKES
01:12:14 <HackEgo> 821) <oklofok> you tell us you're making a lisp interpreter, but you don't mention its polterchrist is c++ templates? <oklofok> isn't that like telling us you're taking a bath and not mentioning you're bathing in a WORLD FULL OF SNAKES
01:12:19 <oklofok> i'm not sure polterchrist is clear without context
01:12:58 <oklofok> this concept of subtlety intrigues me
01:15:11 <elliott> ais523: what's context for?
01:15:29 <olsner> hmm, CPS would probably be a good exercise, never really grokked how to do CPS conversion before
01:15:36 <oklofok> ais523: it's one more than the previous
01:16:36 <olsner> otoh, compilation might also be nice... I'm already meta-programming in some sense, so how hard could *that* be?
01:19:23 <elliott> olsner: i suspect the best you'll be able to get is bytecode
01:19:33 <elliott> unless you just mean batch compilation
01:23:21 <Sgeo> I just mentioned #esoteric in #lisp
01:24:34 <oklofok> Sgeo: you should really try my best sometime, i think it's better
01:24:41 <oklofok> but don't try elliott's best
01:24:49 <oklofok> you'd just get scared and pee yourself
01:24:54 <Sgeo> Or not. Only person who was interested in olsner's thing: First thing asked is if it was CL or just a thing with parentheses
01:24:57 <oklofok> it's just way out of your league
01:25:49 <oklofok> what was "or not" a response to?
01:26:06 <oklofok> there are so many ridiculous claims here that i just can't choose!
01:26:29 <Sgeo> Whether anyone would actually be visiting here due to my mention of #esoteric in #lisp
01:27:16 <oklofok> that was not on my list, i decided you chna
01:27:33 <oklofok> changed your personality and told me and elliott to fuck ourselves in a subtle way.
01:28:21 <oklofok> i meant to say go fuck ourselves, but that looks good too
01:28:44 <oklofok> has a more literal feel to it in my tired eyes
01:28:51 <oklofok> i'm really going to sleep now
01:34:49 <Sgeo> <p_l> Sgeo: nihil novi sub sole. There was something like that long ago, that added a bit of crazy broken lisp to C++ in form of templates
01:44:12 <olsner> elliott: I'm already compiling a whole program to evaluate a lisp expression, might as well compile into a convoluted series of c++ functions instead of evaluating into text output?
01:46:59 <elliott> compiling to C++ with metaprogramming
01:47:18 <olsner> it's like... too close to the stated purpose for comfort
02:08:47 -!- elliott has quit (Quit: Leaving).
02:55:21 -!- MSleep has joined.
02:58:58 -!- MDude has quit (Ping timeout: 260 seconds).
03:04:35 -!- pikhq_ has joined.
03:06:20 -!- elliott has joined.
03:06:32 -!- pikhq has quit (Ping timeout: 248 seconds).
03:08:39 -!- augur has joined.
03:08:53 <elliott> research I would be interested in: how long it takes for loud to stop sounding loud
03:09:21 <elliott> e.g., after turning up some music from "normal" volume levels to make it loud, how long does it take (assuming the volume of the music stays the same) for that new level to start sounding normal?
03:09:23 <augur> elliott: im not. please read what i said more carefully before you ask stupid questions.
03:10:34 <elliott> augur: i did; you clarified that it was actually a bijection between two countable sets, except the topic was whether you could use a method that requires an isomorphism to a specific _uncountable_ set
03:10:52 <augur> elliott: uh.. im pretty sure that's not what the topic was.
03:11:53 <shachaf> elliott: Why don't you count that set, if it's so countable?
03:12:18 <augur> the question, iinm, was why the same game couldnt be played with types in general, and i said that for countable types, you should be able to use an isomorphism to do it, provided the type and the extension of the predicate were both of the same countable cardinality
03:12:24 <elliott> "Equality for Eq a => (Nat -> Bool) -> a [is decidable]." -> "There aren't any countable types that aren't convertible to Nat -> Bool, are there?" -> <you> "yes" -> "so shouldn't we be able to apply the method in the article to any countable set?" -> "No; you need a isomorphism." -> <you> "it is an isomorphism [if you restrict one of the sets]"
03:13:00 <elliott> which is true, but still means it's... not the isomorphism required
03:14:52 <augur> i dont see why you're confused
03:15:25 <augur> <tailcalled> There aren't any countable types that aren't convertible to Nat -> Bool, are there?
03:15:29 <augur> <me> i believe this is true
03:15:47 <augur> followed by a discussion of why.
03:15:52 <elliott> yes, i acknowledge you made no untrue statements
03:15:53 <augur> i dont see where the issue is.
03:16:00 <elliott> but you made irrelevant statements, at least
03:16:11 <elliott> well, "it *is* an isomorphism" is what confuses me
03:16:21 <elliott> because, yes, it's an isomorphism, but not the isomorphism the parent poster was talking about
03:16:57 <augur> a countble type T is iso to some Nat -> Bool
03:17:00 <augur> wheres the problem
03:17:44 <augur> and he seemed to agree that i was saying the same thing he was
03:18:25 <elliott> if it's subset, the whole point is that you need an isomorphism the whole way
03:18:31 <augur> forall T : *. exists f : Nat -> Bool. T ~ Ext f
03:19:02 <elliott> to be able to use the equality for (Eq a => (Nat -> Bool) -> a)
03:19:10 <elliott> w/e, this is going in circles
03:19:38 <augur> honestly i dont see how this relates to that type -- but thats ok
03:20:59 <augur> the post that roconnor linked to doesnt use that type anywhere in it
03:21:13 <augur> but i didnt search it in detail for something that connects to it
03:21:25 <augur> but im not sure how that could be inhabited at all, honestly
03:21:39 <augur> data Empty where deriving (Eq)
03:21:56 <augur> i mean, ignoring a function that just loops
03:22:36 <augur> but non-termination is sort of contra the whole point of infinite tests in finite time
03:23:49 <elliott> equality is decidable for ((Nat -> Bool) -> a) if Eq a
03:25:13 <elliott> forall a, Eq a -> decidable (equality_for ((Nat -> Bool) -> a)))
03:25:38 <augur> then i think what he's saying is valid
03:25:57 <augur> but not in haskell
03:26:03 <augur> cause you cant use haskell for it
03:26:15 <augur> Nat -> Bool <=> Countable Types
03:26:26 <elliott> there's no need for any special type hackery if what he's saying is possible.
03:26:54 <augur> sure, i just mean if you want to state it in haskell at all
03:27:08 <augur> im not sure if what he's saying is _useful_ of course
03:27:39 <augur> because it just means you have a function roughly f : Set -> A, and you can test if it's equal to g : Set -> A if A has decidable equalityu
03:27:44 <elliott> i don't know why i'm bothering trying to divine the meaning of words uttered by the creator of http://esolangs.org/wiki/Absurd_Brainfuck.
03:29:36 <elliott> anyway, ok, i don't understand any more now, but i understand the other posters less to the degree that i'm more confused in general rather than specifically at things yous aid
03:29:57 * Sgeo hmms at Absurd Brainfuck
03:30:17 <elliott> don't hmm at it, it's meaningless
03:30:31 <elliott> even ais523 thinks it's meaningless, and he invented Feather
03:41:02 -!- MSleep has quit (Ping timeout: 245 seconds).
03:48:58 -!- pikhq has joined.
03:50:04 <elliott> Hey pikhq, fix my BitTorrent.
03:50:25 <pikhq> What, exactly, is your problem?
03:50:54 <elliott> The 1s are coming in as 0.5s and the 0s, they ain't comin' in at all!
03:51:06 <pikhq> Unless you tell me, I can only advise that you create a pentagram of chicken blood and recite from the Book of Unix.
03:51:16 <elliott> Actually the problem is that it refuses to upload, but I have my suspicions as to unfixable reasons for that and have tried all the obvious things.
03:51:35 <elliott> (That is, not only will it not seed -- instead being "Idle" or "Stalled" -- but when downloading, the upload speed never rises above absolute zero.)
03:52:14 -!- pikhq_ has quit (Ping timeout: 265 seconds).
03:53:19 <pikhq> I suggest you recite from the Book of RFC, 793:15-52.
03:53:25 <pikhq> On a more serious note, I got nothing.
03:53:32 <Jafet> Your NAT must be too chilly... hump your router.
03:53:34 <pikhq> Which client? Transmission?
03:53:59 <pikhq> Doing that trackerless? I seem to recall us having trouble doing that trackerless as the initial seed in the past.
03:54:03 <elliott> Transmission -- and I've forwarded the port it's using on both TCP and UDP, and it confirms it's forwarded (though oddly the first check has a tendency to come back closed -- but then immediately say "open" if I try again -- and it doesn't always do this).
03:54:12 <elliott> Not trackerless; in fact, DHT is turned off.
03:55:02 <elliott> I half-suspect the cause is that the torrents are excellently-seeded enough that the network don't want any of my shitty bandwidth, but from what I know of BitTorrent, that only explains why it wouldn't *seed*, not why it wouldn't upload when downloading, even at a trickle.
03:55:13 <pikhq> (for those too lazy to figure out WTF I referred to, RFC 793, pages 15-52, is the functional specification of TCP)
03:55:30 <elliott> I prefer the imperative specification.
03:55:52 <pikhq> That is pages 53-5300. :P
03:57:41 <elliott> Anyway, it's very annoying. :(
04:09:53 <zzo38> When I build that computer, I have some idea, that any game with cutscenes and credit roll, should recommend, that they can be skipped by pushing the next track button, repeated by pushing the previous track button, and paused by pushing the pause button. Do you have different idea?
04:10:05 <zzo38> (But it is only recommendation; not requirement)
04:40:29 -!- Jafet has quit (Quit: Leaving.).
05:24:17 -!- FraterNPLS has joined.
05:24:40 -!- FraterNPLS has left.
05:37:16 -!- MDude has joined.
05:37:45 -!- MDude has changed nick to MSleep.
06:40:56 -!- MoALTz_ has quit (Ping timeout: 252 seconds).
06:44:35 -!- asiekierka has joined.
07:07:49 -!- MoALTz has joined.
07:12:28 -!- MoALTz has quit (Ping timeout: 252 seconds).
07:13:26 -!- elliott has quit (Remote host closed the connection).
07:26:58 -!- augur has quit (Read error: Connection reset by peer).
07:27:22 -!- augur has joined.
07:27:27 -!- MoALTz has joined.
07:30:18 -!- graue has joined.
07:41:23 -!- Phantom_Hoover has joined.
07:57:44 -!- oerjan has joined.
08:09:43 -!- Slereah_ has joined.
08:10:00 -!- Slereah has quit (Ping timeout: 248 seconds).
08:23:17 -!- oerjan has quit (Quit: leaving).
08:23:22 -!- oerjan has joined.
09:14:58 -!- zzo38 has quit (Quit: This is not a pipe; trying something else.).
09:16:37 -!- kmkr has joined.
09:17:13 <kmkr> hi. i've finished a new brainfuck program, haven't made a bigger one in quite some time:
09:17:20 <kmkr> http://www.73b.org/programs/golden.b
09:17:42 <kmkr> it prints the golden ration, never terminating. gets gradually slower.
09:19:42 <kmkr> anyway, if anyone tries it, tell here how far you get. i've ran it to about 400 digits
09:20:01 <kmkr> i have problems with that particular word.....
09:22:44 <kmkr> also, interesting work on qdeql oerjan
09:23:41 <oerjan> thanks! i just now wrapped up the description a bit.
09:25:20 <Sgeo> Is this software pirated?
09:25:53 <Sgeo> ...Leisure Suit Larry, I guess?
09:26:30 <Sgeo> Oh, just wikipediaed
09:26:39 <Sgeo> Apparently it was an age verification thing
09:26:42 <kmkr> always great to see a language being shown to be more powerful than first assumed
09:27:07 <Sgeo> kmkr, Brainfuck is more powerful than as powerful as computers are believed to be able to be?
09:27:21 <Sgeo> ...wow at that sentence
09:27:36 * oerjan thinks Sgeo needs a swat just about now -----###
09:27:37 <kmkr> i was talking about qdeql
09:27:46 <kmkr> about oerjan's qdeql turing-completeness proof
09:27:52 <Sgeo> Oh, monqy Phantom_Hoover did you see the update from before?
09:28:00 <Sgeo> The second grouping of new A6I2
09:37:23 <oklofok> oerjan has done something awesome again?
09:37:28 <oklofok> oerjan: how come u so awesome?
09:38:12 -!- monqy has quit (Quit: hello).
09:41:40 <Sgeo> Best. Quit Message. Ever.
09:41:48 <oerjan> oklofok: bad judgement.
09:42:51 <oerjan> Phantom_Hoover: well it's not like there's a reason to change the Best. Quit Message. Ever.
09:49:46 -!- kmkr has quit (Ping timeout: 245 seconds).
09:54:54 -!- zzo38 has joined.
09:58:24 -!- ais523 has quit (Remote host closed the connection).
10:04:20 <oklofok> oerjan: where do i get me some of that bad judgement?
10:04:37 <oklofok> but before you answer, i'm going offline for 24 hours
10:04:44 -!- oklofok has quit.
10:15:48 -!- tzxn3 has joined.
10:16:18 -!- hagb4rd has joined.
10:18:36 <zzo38> I think we don't sell that.
10:19:15 <oerjan> of course not, we pay people to take it.
10:19:41 <oerjan> then we make it up in volume.
10:30:40 -!- derdon has joined.
10:58:35 -!- MoALTz_ has joined.
11:01:44 -!- MoALTz has quit (Ping timeout: 248 seconds).
11:13:40 -!- MoALTz_ has quit (Quit: brb).
11:13:56 -!- MoALTz has joined.
11:24:08 -!- cheater has quit (Ping timeout: 248 seconds).
11:25:17 -!- Taneb has joined.
11:27:19 -!- oerjan has quit (Quit: Goodbye).
11:42:04 -!- nortti has joined.
11:51:21 -!- Taneb has quit (Read error: Connection reset by peer).
12:18:37 -!- MoALTz_ has joined.
12:21:21 -!- MoALTz__ has joined.
12:21:44 -!- MoALTz has quit (Ping timeout: 248 seconds).
12:23:52 -!- MoALTz_ has quit (Ping timeout: 248 seconds).
12:27:36 -!- MoALTz__ has quit (Ping timeout: 248 seconds).
12:37:07 -!- MoALTz has joined.
12:37:59 -!- MoALTz has quit (Client Quit).
12:40:55 -!- MSleep has changed nick to MDude.
12:41:02 -!- MoALTz has joined.
12:41:29 -!- derdon has quit (Remote host closed the connection).
12:46:28 -!- Phantom_Hoover has quit (Quit: Leaving).
12:50:52 -!- MoALTz has quit (Ping timeout: 244 seconds).
13:12:00 -!- MoALTz has joined.
14:12:16 -!- Twirt199 has joined.
14:20:46 <Twirt199> INIT: krnld.p1x (sata001:1:32768-32958)
14:26:56 <Twirt199> Install AAAAAAAAAAAAAA!!!! compiler? (y/n)
14:27:39 <Twirt199> Install Befunge? (Compiler/Interpreter)
14:28:02 <Twirt199> Install Brainfuck? (Compiler/Interpreter)
14:29:15 <Twirt199> Creating partition table at sata001:1...
14:33:12 -!- Twirt199 has quit.
14:48:55 -!- Phantom_Hoover has joined.
14:57:53 -!- Taneb has joined.
15:06:22 -!- Taneb has quit (Read error: Connection reset by peer).
15:47:18 -!- pikhq has quit (Ping timeout: 245 seconds).
15:47:23 -!- pikhq_ has joined.
16:08:56 -!- Vorpal has joined.
16:15:24 -!- azaq23 has joined.
16:15:34 -!- azaq23 has quit (Max SendQ exceeded).
16:16:00 -!- azaq23 has joined.
16:33:22 -!- azaq23 has quit (Quit: Leaving.).
16:46:55 -!- pikhq has joined.
16:47:31 -!- pikhq_ has quit (Ping timeout: 265 seconds).
17:02:13 -!- Frooxius has quit (Quit: ChatZilla 0.9.88-rdmsoft [XULRunner 1.9.0.17/2009122204]).
17:02:24 -!- Frooxius has joined.
17:31:59 -!- pikhq has quit (Ping timeout: 245 seconds).
17:32:11 -!- pikhq has joined.
17:32:26 -!- elliott has joined.
17:35:34 <elliott> @ask ais523 What is our policy on modifying your own talk page comments days after they were posted? If we don't have one, make one up.
17:40:07 <elliott> http://web.archive.org/web/20110606223705/http://geocities.com/r_e_s_01/subleq/index.htm
17:40:11 <elliott> I'm so glad this was archived!
17:40:25 <elliott> Best part: "The GeoCities site you were looking for may have been preserved in the Internet Archive's Wayback Machine. To find out, visit Archive.org and enter the site's web address in the field provided."
17:55:39 <elliott> http://esolangs.org/wiki/Talk:Linear_bounded_automaton Hypothesis: Any wiki conversation involving Oleg and (oerjan or r.e.s.) is a completely realistic simulation of banging your head against a wall repeatedly.
17:56:31 -!- monqy has joined.
18:30:37 -!- MSleep has joined.
18:34:27 -!- MDude has quit (Ping timeout: 244 seconds).
18:39:14 -!- azaq23 has joined.
18:41:12 <Sgeo> o.O it's not on reocities
18:42:20 <elliott> Probably Archive Team or the IA have the largest geocities archive.
18:42:29 <elliott> I think Archive Team's only comes in batch torrent form, though.
18:53:32 <Friendship> Looks like the Archive Team's torrent is actually pretty decomposable. I'm downloading the 400MB manifests now.
18:53:41 <Friendship> Then I can check from those if the actual files exist.
19:03:46 <Friendship> Bahahah, just discovered that the title of GeoCities pages is still "GeoCities: Get a web site with easy-to-use site building tools."
19:06:14 <elliott> Why the fuck did they even shut it down
19:06:30 <elliott> I bet the money they're saving they paid ten times over in bandwidth bills as everyone scrambled to mirror it
19:08:55 <Friendship> Welp, geocities.com/r_e_s_01 is lost to the universe.
19:09:57 -!- asiekierka has quit (Remote host closed the connection).
19:13:04 <Friendship> Any other geocities sites you want me to check for so long as I've got the manifests?
19:14:09 <elliott> Uhh... probably, but I can't think of any :P
19:14:23 <elliott> Friendship: http://esolangs.org/w/index.php?title=Special%3ALinkSearch&target=*.geocities.com&namespace=
19:16:15 <Friendship> http://it.geocities.com/tonibin/ is linked from Antonio Maschio // fetching
19:16:29 <Friendship> http://www.geocities.com/ResearchTriangle/Station/2266/tarpit/magenta.html is linked from Magenta // on reocities
19:16:50 <elliott> Yah, I reocitified that one.
19:16:55 <Friendship> http://www.geocities.com/brainsub is linked from Talk:Brainfuck // dead
19:17:16 <elliott> Friendship: OTOH http://web.archive.org/web/20091027000829/http://it.geocities.com/tonibin/ has it, so you might not need to bother.
19:17:25 <elliott> But mayhaps it will have a more fuller mirror.
19:18:56 <Friendship> http://www.geocities.com/connorbd/varaq/varaq.pl is linked from Var'aq // seems to be on archive.org
19:19:09 <Phantom_Hoover> I seem to be having an oddly large amount of reddit conversations with lutusp of late.
19:19:19 <Friendship> I'll only mention the problem ones actually X-D
19:20:10 -!- kmc has quit (Ping timeout: 276 seconds).
19:20:14 <Friendship> ineffable_qualtagh is lost to the universe
19:21:23 <elliott> Friendship: P.S. A great way of saying "lost to the universe" is to put {{deadlink}} markers on all of the links :P
19:22:57 <Friendship> I'm already goin' way out of my way here, do it yourself!
19:25:48 <elliott> OK now put them on codu.org.
19:34:18 -!- kmc has joined.
19:46:18 <Friendship> OK, My Little Pony: Friendship is Magic has internally-consistent time travel.
19:48:31 <Vorpal> hm, javascript only has floating points right? No integers?
19:48:38 <Vorpal> or am I confusing it with some other language?
19:49:04 <Friendship> Yes and no. It only presents doubles, but all implementations optimize to 32-bit ints when possible.
19:49:22 <Vorpal> Friendship, how do you deal with bitwise operations (if you should need to use that)?
19:50:33 <Friendship> It has bitwise operations builtin, they always treat numbers as 32-bit ints.
19:52:09 <Vorpal> completely unrelated: Does anyone know if WLAN access points that varies the power output depending on the environment (to save power) does so for the beacon frames as well?
20:03:00 <Vorpal> urgh, in LUA if you have a function foo(a,b,c) then calling foo(1,2) will silently end up calling foo(1,2,nil), also foo(1,2,3,4) will silently drop the excess argument.
20:03:48 <elliott> <Friendship> (So truncate if necessary)
20:03:57 <elliott> But doubles can represent values >2^32!
20:04:08 <Vorpal> elliott, they obviously end up truncated
20:04:11 -!- MoALTz has quit (Ping timeout: 272 seconds).
20:04:33 <Vorpal> elliott, what is more interesting is if a double can represent all 32-bit integers exactly. I'm not sure that is the case.
20:10:28 -!- MoALTz has joined.
20:11:49 <Friendship> elliott: They can represent 52-bit ints, but the bitwise ops in JS truncate to 32.
20:14:47 <elliott> They can represent beyond that, can't they, just imprecisely? :p
20:16:18 <Vorpal> that's more than what I would have expected.
20:17:32 <Deewiant> Floats go to 23 bits, doubles to 52, and x87's 80-bit extended doubles to 64.
20:18:12 -!- oerjan has joined.
20:19:57 <pikhq> So, x86 has native 64-bit arithmetic?
20:21:36 <Vorpal> pikhq, is there an instruction to convert from floating point to integer though (or is that done in software)? And if so is it only 32-bit or is it 64-bit?
20:22:08 <fizzie> Doesn't JS call of foo(a,b,c) of the form foo(1,2) silently call foo(1,2,undefined) too? (And foo(1,2,3,4) drop the argument, too.)
20:22:13 <Vorpal> pikhq, basically what happens on a 32-bit x86 if you do (long long)myLongDouble
20:22:36 <Friendship> fizzie: Yes, but it doesn't "drop" the argument, it's still accessible, it just doesn't have a named parameter
20:24:07 <Vorpal> anyway, I dislike such behaviour. Erroring on such helps catch bugs. Doing partial evaluation in the case of too few arguments is obviously okay as well if your type system can track that properly (like Haskell).
20:25:06 <Friendship> var x = {}; var y = x.loldoesntexist; function foo(bar) { return bar; }; y = foo(y); // haw haw no errors
20:25:42 <elliott> graue edited, but i don't know if he' seen the qdeql thing
20:25:49 <elliott> <fizzie> Doesn't JS call of foo(a,b,c) of the form foo(1,2) silently call foo(1,2,undefined) too? (And foo(1,2,3,4) drop the argument, too.)
20:25:55 <Vorpal> Friendship, yeah lua makes undefined variables behave as if they were defined to nil, so similar. Quite annoying in either case.
20:25:56 <elliott> fizzie: Youc an tell teh difference with "arguments".
20:26:36 -!- Canadarm2 has quit (Quit: -).
20:26:43 <fizzie> Vorpal: There is a "store integer" FPU opcode (FIST, FISTP) and it seems to go up to mem64 (for FISTP) in x86-32 also, according to some random instruction set references. (The only "official" PDF ones I have are x86-64-age.)
20:27:01 <oerjan> the long arm of canada
20:30:06 <fizzie> Vorpal: Though fistp rounds according to the current rounding mode, so it's not exactly suitable for (long long)d, unless the compiler bothers to (possibly) change the rounding mode to truncating, then store, then restore the mode.
20:34:43 -!- pikhq has quit (Ping timeout: 246 seconds).
20:40:02 <fizzie> Vorpal: Oh, there's also FISTTP m64int "Store Integer with Truncation" opcode. It uses the "chop" mode implicitly, independent of current mode. So that's presumably what it would do.
20:40:44 <fizzie> $ echo 'long long f(double d) { return d; }' | gcc -m32 -masm=intel -x c -o tmp.s -S -; grep -i fist tmp.s
20:40:47 <fizzie> fistp QWORD PTR [ebp-24]
20:42:17 <Vorpal> fizzie, huh, it uses fistp? not fisttp?
20:42:33 <fizzie> It seems to fiddle with the mode.
20:42:38 <fizzie> Maybe there's a reason.
20:42:52 <Vorpal> probably faster or something. Bloody CISC
20:43:03 <fizzie> At least the fistp is surrounded with fldcw "Load x87 FPU Control Word".
20:43:27 * oerjan keeps tweaking that bf2qdeql table slightly
20:43:41 <Vorpal> fizzie, btw what is up with -; ?
20:44:08 <fizzie> Needs -x c so it knows the language.
20:44:18 <Vorpal> where is the pipe from gcc to grep though?
20:44:26 <Vorpal> something isn't right in that line...
20:44:40 <fizzie> It writes that to tmp.c; didn't dare to try outputting to stdout too.
20:44:44 <Vorpal> oh wait I'm just tired
20:44:46 <fizzie> Maybe it works, maybe it doesn't.
20:44:51 <Vorpal> hm so -; is parsed as - ; ?
20:45:22 <fizzie> ; is a command separator no matter where. Well, except when quoted or escaped, I guess.
20:45:29 <Vorpal> I read it as "-;" being passed to gcc, that is what confused me
20:45:40 <fizzie> At least libbfd IIRC can't write binaries into stdout. But maybe assembler source would've worked. I mean, it has that "use pipes" thing too.
20:46:00 <fizzie> Anyway I did find out why it uses "fistp": because "fisttp" is a SSE3 instruction.
20:46:20 <fizzie> Funny that they bothered to add a x87 FPU thing in SSE.
20:46:39 <elliott> oerjan: It's a very pretty table. Can't say I have a clue what it means, though.
20:47:44 <fizzie> Vorpal: $ echo 'long long f(double d) { return d; }' | gcc -m32 -march=core2 -masm=intel -x c -o - -S - | grep -i fist
20:47:47 <fizzie> fisttp QWORD PTR [ebp-16]
20:47:48 <fizzie> Well, that makes sense.
20:47:55 <fizzie> (Also: now with pipes all the way down.)
20:47:59 <oerjan> elliott: well it tells you how to translate each bf command into qdeql, of course!
20:49:15 <oerjan> possibly a little succinctly for comfort.
20:50:42 -!- pikhq has joined.
20:51:00 <Vorpal> fizzie, actually gcc might end up using a temp file unless you pass -pipe I guess
20:51:12 <Vorpal> not sure if it actually gets to that stage in the compilation here though
20:51:16 <fizzie> Well, pipes as fas as the eye can see.
20:51:22 <Friendship> Yeah, I don't think it would for -S ...
20:51:23 <fizzie> Vorpal: Tried "-march=native" first, forgot that this age-old Athlon X2 won't do anything as fancy as SSE3.
20:51:41 <Vorpal> Friendship, it could do -S by disassembling I guess?
20:51:50 <Vorpal> anyway gcc runs internal processes very early on iirc
20:52:02 <elliott> Why is -pipe not default these days?
20:52:04 <Vorpal> one is called collect2 iirc, seen it in htop output
20:52:44 <oerjan> elliott: for example the row for + tells you that in order to increment a brainfuck cell, you need to perform the action - = = in its padding region. this turns the 0 0 0 there into 255 0 0, which tacks onto the end of the data region. (the default action for padding regions simply delete those 0 0 0 instead.)
20:52:45 <fizzie> 'gcc -v' suggests no files; it only runs cc1 for -S: /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/cc1 -quiet -v -imultilib 32 - -D_FORTIFY_SOURCE=2 -quiet -dumpbase - -m32 -march=core2 -masm=intel -auxbase-strip - -version -o - -fstack-protector
20:53:27 <Friendship> The only temp file it might make is preprocessing.
20:53:35 <Friendship> I don't know what its default preference is for that.
20:54:26 <elliott> I wonder what happened to collect1.
20:54:46 <Friendship> The same thing that happened to bzip1.
20:54:55 <elliott> "The program collect2 works by linking the program once and looking through the linker output file for symbols with particular names indicating they are constructor functions. If it finds any, it creates a new temporary `.c' file containing a table of them, compiles it, and links the program a second time including that file."
20:55:42 <fizzie> ("strace -f -e open gcc ... 2>&1 >/dev/null | grep open" suggests even more forcefully no temporary files.)
20:56:08 <Vorpal> elliott, augh, all that to support C++?
20:56:18 <fizzie> (It does open /proc/meminfo three times, though.)
20:56:49 <Vorpal> fizzie, I wonder if it is gcc doing that or some part of glibc doing that
20:56:54 <elliott> Vorpal: No, that has nothing to do with C++.
20:57:20 <Friendship> Does C++ even have a way to represent global constructors?
20:58:49 <fizzie> Friendship: What does that mean? I mean, does it mean constructors for globals?
20:58:54 <pikhq> Um, pretty sure yes.
20:59:17 <pikhq> #include <string>\nstd::string foo = "foo"; // Valid C++
20:59:36 <elliott> GHC has problems with C++ libraries because it doesn't do constructors for globals, which are implemented as constructors.
20:59:51 <elliott> So I believe what fizzie and pikhq are saying is right(?)
20:59:57 <elliott> I don't really know, this is just conjecture.
21:00:06 -!- ais523 has joined.
21:00:27 <pikhq> Friendship: Not in standard C++. However, __attribute__((constructor)) goes through the same mechanism.
21:00:29 <lambdabot> ais523: You have 1 new message. '/msg lambdabot @messages' to read it.
21:00:47 <fizzie> Friendship: Isn't that just class Singleton { Singleton() { ... } }; Singleton s;, basically?
21:01:05 <pikhq> Okay, yes, you could hack it up with a singleton and define casts.
21:01:07 <fizzie> Sorry, public: in there and whatever.
21:01:08 <lambdabot> elliott asked 3h 25m 32s ago: What is our policy on modifying your own talk page comments days after they were posted? If we don't have one, make one up.
21:01:34 <ais523> elliott: it's OK as long as you aren't misleading people as to the context of replies to those comments
21:02:08 <fizzie> Vorpal: The /proc/meminfo does happen rather late (those are the last three opens, after the .mo message files), so I'd guess GCC, but who knows.
21:02:52 <elliott> ais523: even for substantial additions over the course of days?
21:03:24 <ais523> if the comments haven't been replied to, I don't see a problem
21:03:27 <ais523> although you should probably bump the timestamp
21:03:31 <elliott> they have, I think; and they didn't
21:03:36 <fizzie> Vorpal: http://p.zem.fi/ztez -- feel free to guesstimate what on earth it's doing.
21:04:08 <elliott> http://esolangs.org/w/index.php?title=Talk:Esoteric_Operating_System&diff=next&oldid=30961, http://esolangs.org/w/index.php?title=Talk:Esoteric_Operating_System&diff=next&oldid=30962 were the diffs I was wondering about
21:06:50 <Vorpal> fizzie, I have no idea
21:07:21 <Vorpal> fizzie, those mmap in there confuse me too
21:07:28 <Vorpal> I mean the interleaved ones
21:07:51 <fizzie> Vorpal: I think it's the buffer into which it reads the meminfo stuff.
21:07:58 <Vorpal> unless that is simply due to malloc, but I thought glibc didn't use mmap for malloc unless you used really large allocations
21:08:28 <fizzie> It might use mmap for suitably page-sized allocations too.
21:12:59 <elliott> It uses malloc for everything above a few k, I believe.
21:14:17 <Vorpal> elliott, you mean that it uses mmap?
21:15:33 <fizzie> A mailing list post from 2006-abouts says the mmap/brk threshold is 128K-32M, dynamically selected; they increased it from a fixed 128k for some reason. (The post speaks for memory-zeroing cost, but I'm not sure what that's about.)
21:15:40 <Vorpal> fizzie, btw, strange that it got the same address all three times, I would have expected the kernel to randomise the address a bit
21:15:57 <fizzie> But that was then; it might do something else than a single threshold now, for all I know.
21:16:30 <Vorpal> fizzie, well obviously the kernel has to zero the memory it gives you. If you never release the memory to the kernel there is however no need for that
21:17:01 <fizzie> Sure, but if you expand the brk it's still requesting new memory from the kernel.
21:17:16 <Vorpal> indeed, but you might end up reusing the memory
21:17:26 <fizzie> So I suppose it might also take a peek at how much stuff there is in the free-list-equivalent.
21:17:29 <Vorpal> (I guess doing mremap is more annoying?)
21:17:42 -!- pikhq_ has joined.
21:18:10 -!- pikhq has quit (Ping timeout: 260 seconds).
21:18:53 <fizzie> Okay, in that case where it's doing alloc-free-alloc-free-alloc-free (at least what it looks like) it'd certainly make more sense to use memory from the brk side.
21:21:05 <fizzie> Sadly I'm not quite bored enough to go figuring out why it's doing what it's doing.
21:21:11 <Friendship> wtf, the torrents 'qp' archive didn't actually contain qpliu ...
21:22:23 <fizzie> (ltrace -f with grep open or grep meminfo doesn't match anything, so I can't even check if it's actually calling malloc or what.)
21:23:08 <Vorpal> fizzie, I would guess it isn't gcc doing it then? Unless gcc is directly calling the system call
21:25:35 <Friendship> OK, the manifests in this torrent are totally useless X_X
21:25:49 <Vorpal> Friendship, what torrent=
21:27:49 <pikhq_> Well, to be fair, it is the direct result of "Ohgodohgod wget -R"
21:28:38 <Friendship> I have one page I didn't want that's not in the manifest, and don't have the page I did want that is in the manifest X_X
21:29:44 <Vorpal> bbl, I'm having a bad headache
21:29:45 <elliott> You can download the PATCHED version (recommended): Geocities - The PATCHED Torrent
21:29:46 <elliott> ... or the original torrent which had 0.1% corrupted: Geocities - The Torrent + patch (details)
21:30:08 <elliott> Oh, hmm, just corrupted, not "fucked".
21:31:00 <fizzie> Vorpal: Oh, right; ltrace has a -S too. It calls sysconf(85, ...); <bits/confname.h> suggests that's maybe _SC_PHYS_PAGES or something.
21:31:23 <fizzie> (And then glibc implementation of sysconf ends up doing the meminfo thing.)
21:31:37 <elliott> http://www.textfiles.com/underconstruction/mail/
21:38:07 -!- Friendship has set topic: Roll out the squirrel! We'll have a squirrel of fun! | http://codu.org/logs/_esoteric/ | http://esolangs.org/ has moved servers!.
21:39:54 <elliott> I just remembered I still haven't paid prgmr.
21:40:24 <elliott> http://esolangs.org/w/index.php?title=SSBPL&curid=8325&diff=31001&oldid=30999
21:40:28 <elliott> FINALLY an esolang that popes values.
21:42:00 <nortti> How do you pope a value?
21:42:56 <oerjan> Friendship: i don't think that's a good idea, squirrels are all nuts
21:43:30 <elliott> nortti: http://en.wikipedia.org/wiki/Papal_conclave
21:44:20 <oerjan> nortti: it's easy with cardinal numbers
21:44:45 <nortti> elliot: should I revert it?
21:44:53 <elliott> No, it's OK; the misspelling of my name makes up for it.
21:45:18 <elliott> Also you didn't actually fix it, according to recentchanges :P
21:45:59 <nortti> oh. the page says 504 gateway time-out
21:47:24 <nortti> It works after I reloaded the page
21:48:35 -!- derdon has joined.
21:51:52 -!- pikhq has joined.
21:52:07 -!- pikhq_ has quit (Ping timeout: 252 seconds).
21:55:35 -!- MoALTz_ has joined.
21:55:46 <elliott> "I intentionally post this here and not in code review since I think that there is not exactly a lot of life in the code review section."
21:55:58 <elliott> Dear everyone: OK, so I'm violating the rules... but you gotta understand, it's for my benefit!
21:57:49 -!- MoALTz has quit (Ping timeout: 265 seconds).
22:00:34 -!- MoALTz_ has quit (Ping timeout: 260 seconds).
22:04:09 -!- MoALTz has joined.
22:04:30 -!- Vorpal has quit (Ping timeout: 245 seconds).
22:09:36 <elliott> pikhq: Can I, like, pay you to seed my torrents?
22:16:16 <pikhq> No, I'm not going to act as a seed box.
22:17:48 <pikhq> I don't have the HD space to ATM.
22:18:01 <pikhq> Though I could probably profitably remove a lot of utter junk...
22:19:13 <elliott> I wonder if you can somehow seed from an encrypted file, so that the unencrypted data only ever passes through memory.
22:19:23 -!- MoALTz_ has joined.
22:21:36 <elliott> Honestly, I wouldn't care if it would only upload at 10 kb/s, just so long as it would actually upload. This is incredibly frustrating.
22:22:00 <Sgeo> elliott, that wouldn't work in one of those hypothetical systems where memory is really only a cache to the HD, so that it's one address space.
22:22:02 -!- MoALTz has quit (Ping timeout: 244 seconds).
22:22:06 * pikhq needs to buy more drives
22:22:48 <pikhq> Sgeo: They're not very hypothetical, they're fairly historical. :)
22:23:47 <elliott> Multics is hypothetical, man.
22:24:08 <Sgeo> Why did we stop doing that?
22:26:34 -!- oerjan has quit (Quit: Good night).
22:42:40 -!- MSleep has changed nick to MDude.
22:45:27 <elliott> "One of the necessary properties of a proper static type system is type inference."
22:45:33 <elliott> ais523: Did you know that dependent type systems are improper?
22:45:51 <elliott> "Others are e.g. structural pattern matching and algebraic datatypes." -- type system features, y'hear.
22:45:53 <ais523> hmm, I don't see why they can't use type inference to some extent
22:46:10 <ais523> sure, it's undecidable, but that doesn't mean that you can't infer when it /is/ decidable and leave the program to annotate the tricky bits
22:46:25 <ais523> oh, and ADTs are totally a type system feature (pattern matching isn't)
22:47:03 <elliott> You can do ADTs in a dynamic language.
22:48:47 -!- graue has set topic.
22:48:49 -!- graue has set topic: #esoteric.
22:49:04 <graue> ack. did i just change the topic? i was trying to check what it was
22:49:04 -!- Phantom_Hoover has quit (Remote host closed the connection).
22:49:11 <graue> *does not know how to use his irc client*
22:49:33 -!- nortti has set topic: Roll out the squirrel! We'll have a squirrel of fun! | http://codu.org/logs/_esoteric/ | http://esolangs.org/ has moved servers!.
22:50:06 <nortti> graue: what client are you using?
22:50:09 <elliott> well, #esoteric is a remarkably descriptive topic by our standards :)
22:50:14 -!- MoALTz_ has quit (Ping timeout: 240 seconds).
22:50:22 <graue> nortti: i'm using 'bsfirc'
22:50:33 <graue> an unfinished irc client that was abandoned by its author like 8 years ago
22:50:37 <elliott> graue: not sure if you saw, but oerjan proved one of your languages TC: http://esolangs.org/wiki/Qdeql
22:50:51 <graue> because it's what i use *shrug*
22:51:01 <graue> elliott, yeah, i think that's awesome!
22:51:11 <graue> i actually wanted to get to the log website and see if that had been discussed here
22:51:40 <elliott> hasn't really been talked about
22:51:49 -!- MoALTz has joined.
22:51:52 <elliott> he just said he was wondering about it and linked the program a few days later :P
22:52:02 <nortti> graue: http://codu.org/logs/_esoteric
22:52:14 <graue> nortti: got it, thanks
22:53:22 <graue> my wrong conclusion about Qdeql's computational class was up on the wiki for like 6 years and 5 months :P
22:53:28 -!- augur has quit (Remote host closed the connection).
22:53:40 <elliott> if you figure out what the tables mean, let us know :p
22:54:00 <graue> i'll keep trying to do that
22:54:11 <elliott> the easiest way to get oerjan to prove something is TC is just to say it isn't, if this and http://esolangs.org/wiki/Underload#Underload_minimization are anything to go by
22:54:58 <nortti> wasn't false's TCnes also proven just recently?
22:55:25 <graue> this is amazing to me: http://oerjan.nvg.org/esoteric/qdeql/gen75
22:55:32 <graue> the qdeql code is massive compared to the bf code
22:56:27 <elliott> can't imagine it's too fast, either
22:57:08 <nortti> well at least it is smaller than underload interpreter in underload that I wrote some time ago
22:57:35 <nortti> and it didn't use the (code)^ trick
22:57:37 <graue> but it's not an interpreter, it's just code to load a cell with the constant 75
22:57:45 <elliott> nortti: you did?! i was gonna write those one day
22:57:50 <elliott> you should put it on the wiki
22:58:20 <elliott> hmm, so does this mean nobody ever managed an infinite loop in Qdeql before now?
22:59:00 <nortti> elliott: I lost it when I accidentally used dd if=/dev/urandom of=/dev/hda1 instead of dd if=/dev/urandom of=/dev/hdb1
22:59:06 <graue> i wrote a cat program much shorter than oerjan's BF-converted one: &\*\/\/&/
22:59:19 <elliott> oh, wait, FSAs can loop forever, silly me...
23:00:03 <elliott> nortti: how did you encode the program?
23:00:09 <graue> i wonder if i could use oerjan's bf to qdeql converter on kmkr's golden ratio in bf program, and it would actually work
23:02:06 <graue> cuz i mean, i notice that oerjan's examples are relatively more simple than that
23:02:15 <nortti> elliott: If I remember correctly I encoded them with church numerals
23:03:53 <elliott> much easier to verify the correctness of small examples... but it looks like the translation is O(n)
23:04:19 <Sgeo> I helped write an abandoned client once
23:04:49 -!- cheater_ has joined.
23:05:13 * pikhq declares the storage market "fucked up beyond recognition".
23:05:22 <Sgeo> Circe (not the emacs one)
23:05:40 <pikhq> Near as I can tell, the most cost-efficient data storage is *external* hard drives.
23:06:06 -!- Lymee has joined.
23:06:49 <graue> i bought a 1TB drive 2 years ago, and still haven't filled it
23:06:54 -!- Madoka-Kaname has quit (Disconnected by services).
23:06:58 -!- Lymee has changed nick to Madoka-Kaname.
23:07:06 <pikhq> ~ has 75G free here.
23:07:57 <graue> 347G, but would be more if i didn't have tons of backups and stuff stored twice etc
23:08:05 <nortti> I have a 40GB HD in my Apple iBook g4/1.2GHz that is my main computer
23:10:09 <graue> so i'm installing a ton of haskell stuff to be able to run BFQdeql.hs
23:10:52 <pikhq> nortti: So, what, you'd be satisfied with just an SSD?
23:11:27 <nortti> pikhq: it isn't a SSDD '-.-
23:12:43 <graue> oh, i see the bf->qdeql converter has a catch
23:14:17 <graue> it only allows bf programs a fixed number of cells; which can hold nonnegative integers of unbounded size
23:14:55 <graue> which is enough for TC, but not how most BF code is written
23:15:40 <elliott> it's like a minsky machine
23:20:27 <graue> so is unbounded-cell BF with 2 cells TC or does it need 3? i forget
23:21:09 <elliott> oerjan proved 3 is enough and thinks 2 is very unlikely to be enough
23:22:33 <graue> is the 3-cell proof online?
23:22:53 <pikhq> nortti: Yes, but it's smaller than common ones.
23:23:29 <nortti> pikhq: I used 10GB HD until summer 2011
23:23:32 <graue> nm, i see it's on the Collatz function wiki page
23:23:44 -!- augur has joined.
23:39:47 -!- Taneb has joined.
23:40:14 <Taneb> I've just had a thought about something that was overthought 5 years ago, that is, quineless languages.
23:40:57 <Taneb> It is impossible to write a quine in Piet, as the source is an image, and the output is text.
23:41:22 <graue> what if the source was an .xpm?
23:41:27 <elliott> The output is binary data, is it not?
23:41:38 <zzo38> graue: Then you had better learn your IRC client
23:41:42 <elliott> I doubt Piet uses Unicode output with unspecified encoding or whatever.
23:43:16 <Taneb> It is not part of Piet's specification to convert the binary data into an image.
23:43:57 <graue> yeah, but your program can print out the binary data corresponding to an image of itself
23:44:22 <Taneb> It prints binary data which can be converted into an image; it does not print out an image
23:44:45 <elliott> By that argument, brainfuck prints binary data which can be converted into a program file; it does not print out a program.
23:45:00 <elliott> A Piet program can perfectly well output a .png bit-identical to the one you run it with.
23:45:25 <Taneb> It was just a thought
23:45:42 <graue> a quineless language seems kinda trivial to me
23:45:56 <Taneb> Yeah, there's loads of them
23:46:08 <graue> just specify that all source code files have to begin with a #, and all programs output a ! when they start, or something
23:46:22 <Taneb> This was all thought out in 2007
23:46:51 <elliott> the problem is that everyone gives trivial counterexamples to the wrong theorem :P
23:47:01 <graue> what's the right theorem?
23:47:41 <elliott> well, there's a theorem that amounts to "anything TC can compute its own source code", basically formally saying that every TC language has a quine
23:48:06 <elliott> but it doesn't say "every TC language has a program that outputs the ASCII source code of itself and nothing else" :P
23:48:19 -!- calamari has joined.
23:50:45 <Friendship> That theorem is either incorrect, or so broadly stated as to be uninteresting ...
23:50:51 <elliott> See http://www.madore.org/~david/computers/quine.html#sec_fp
23:52:14 <Friendship> "This is very simple: for a given program t, consider the program h(t) that prints the listing of t. Obviously this h is computable." <-- wrong
23:52:33 <Friendship> "printing" and "computable" are orthogonal concerns.
23:53:24 <Sgeo> I remember seeing a language designed to trivially disprove the quine thing, or at least violate an assumption that a naive statement of it might make
23:53:26 <graue> it's true; a universal turing machine can't "print" anything
23:53:47 <Friendship> You could probably make some statement about a clearly-non-TC transform over some broad notion of output state, but you'd end up with a theory that's very uninteresting.
23:53:54 <Sgeo> A language that, if the first character is ", prints the rest of the code, and if it's not ", just runs as though it's a certain non-I/O TC language
23:53:58 <elliott> but you don't need a notion of "printing" for it to work
23:54:07 <elliott> define "print" as "leave on the tape" or whatever
23:54:34 <Friendship> Yeah, my argument is just that if you do that, then you need a transformation from state to source, and once you define that transformation, everything becomes boring.
23:54:45 <graue> so how do you write a quine in Fractran?
23:54:55 -!- MoALTz_ has joined.
23:55:39 <elliott> graue: by choosing an appropriate encoding for the final result. (Obviously "appropriate encoding" is the problematic thing there)
23:55:44 -!- MoALTz has quit (Ping timeout: 240 seconds).
23:55:54 <elliott> it would be nice to have a more useful theorem, i agree
23:56:01 <elliott> but (afaik) nobody has formally defined "IO-complete" yet
23:56:14 <graue> i mean... i guess if you could define some sort of 1:1 mapping between fractran programs and single integers, that holds for all valid fractran programs
23:56:41 <Taneb> That's fairly simple to do
23:56:42 <elliott> i am fairly confident there exists a bijection between lists of pairs of integers and integers :P
23:56:43 <graue> and then write a program P that leaves n=mapping(P)
23:56:58 <graue> so you could consider that a quine sort of
23:57:00 <Friendship> The problem is that once you have a mapping, you can game your mapping to make it dull.
23:57:09 <Friendship> I map all output states to the original program HAHA I WIN
23:57:22 <graue> well that's not a bijection
23:57:24 <Taneb> Friendship, that's a silly mapping
23:57:30 <elliott> but you could still cheat by swapping out certain "easy" pairs
23:57:36 <Friendship> OK, OK, you define a simple bij---yeah.
23:57:36 <elliott> what you want is some kind of notion of "uniform bijection"
23:57:42 <elliott> which doesn't treat any input specially
23:58:41 <elliott> which is where things get tricky :p
23:58:56 -!- Friendship has changed nick to RocketJSquirrel.