00:00:16 <Bike> according to the article on comoving distance, the "actual" distance "right now" is the proper distance, not the comoving
00:00:23 <Fiora> ohhh. the 13 billion is "light travel distance"
00:00:25 <oerjan> <tswett> Maybe instead of writing a Hylisk-to-C compiler in Hylisk, I should write it in a language that already exists. <-- i wonder how many people have written the first compiler for X in X, and then compiled it by hand to get the first actual implementation
00:00:38 <shachaf> kmc: i hope geofft isn't talking about guests staying over..............
00:00:50 <Bike> probably just knuth and some older people
00:00:55 <zzo38> oerjan: Yes, I also want to wonder about such thing
00:00:59 <kmc> shachaf: ?
00:01:03 <zzo38> I have thought of it too
00:01:17 <shachaf> (that was another pointless pun??)
00:01:41 * Fiora tries to figure this out >_<
00:01:44 <kmc> ooh wikipedia links to wikisky.org
00:01:49 <kmc> not to be confused with wikiwhisky.org
00:02:05 <Bike> i've done the same thing in my head, at least
00:02:10 <Bike> for very simple compilers
00:02:31 <oerjan> this sky is smoky with a mild aftertaste
00:03:28 <Bike> the comoving distance of the farthest known object is 32 billion light years
00:03:30 <Bike> that's pretty far
00:04:04 <Fiora> Bike: "Comoving distance and proper distance are defined to be equal at the present time hence the ratio of proper distance to comoving distance now is 1."
00:04:19 <Fiora> so comoving distance is just proper distance scaled to "how big the universe is now", I think?
00:05:18 <Fiora> http://en.wikipedia.org/wiki/UDFj-39546284 @_@
00:05:35 <Jafet> Buddhist physics "the universe is one"
00:06:03 <Bike> Fiora: right, though i don't really understand that so well
00:06:17 <Bike> wow, what a useless thing to say, bike
00:06:49 <Fiora> http://upload.wikimedia.org/wikipedia/commons/2/22/Hubble_Extreme_Deep_Field_%28full_resolution%29.png
00:07:18 <Fiora> 23 day exposure time...
00:07:53 <kmc> nobody sneeze
00:08:04 <elliott> I like the deep field images because they look like a collage or a bad artist's impression or something
00:08:09 <elliott> because there's just so much stuff piled together
00:08:57 <Fiora> I like all the colors...
00:09:05 <kmc> colors are great
00:10:34 <oerjan> <tswett> I wonder if there's a way to set vim to treat the file as being an infinite plane. <-- are you familiar with :set virtualedit?
00:11:38 <Sgeo> Infinite with or without an edge?
00:11:52 <oerjan> it only works rightwards, i guess.
00:11:53 <Sgeo> Come to think of it, you could have three edges
00:13:22 <Fiora> Bike: http://en.wikipedia.org/wiki/Diffraction_spikes oohhhhhh that's why there's always those spikes on stars in astronomical photos
00:13:35 <Fiora> "They are artifacts caused by light diffracting around the support vanes of the secondary mirror. Refracting telescopes and their photographic images do not have the same problem."
00:15:03 <elliott> I prefer to believe it's because stars are sparkly
00:15:15 <oerjan> <Ghoul_> and then it wins in line count on all the challenges. <-- iirc the benchmarks game compares _compressed_ source size, which i doubt befunge will do particularly well on
00:15:16 <Bike> yeah geez fiora, next you'll be saying stars don't actually twinkle.
00:15:31 <Fiora> I I just thought it was interesting :<
00:15:32 -!- yorick has quit (Read error: Connection reset by peer).
00:15:35 <oerjan> @tell Ghoul_ <Ghoul_> and then it wins in line count on all the challenges. <-- iirc the benchmarks game compares _compressed_ source size, which i doubt befunge will do particularly well on
00:16:16 <Sgeo> So wait, it elides much boilerplate?
00:18:49 <Bike> i am filled with a sudden urge to read His Master's Voice again
00:18:54 <Bike> astronomy always makes me think of that.
00:21:40 <zzo38> Sorry I still don't quite understand how to make that encoding of less cost efficiently, for some reason, even though you explained it to me.
00:24:04 <zzo38> I thought I understood but somehow I don't.
00:25:15 <zzo38> Do you have a example of an existing program which includes such an algorithm?
00:25:33 <oerjan> no, i have just thought up the algorithm right now
00:26:35 <zzo38> Sometimes it can be easier to understand some things if it is written like a computer program, since that is more precise than ordinary words.
00:31:19 <Fiora> "Cygnus X-1 was discovered using X-ray instruments that were carried aloft by a sounding rocket launched from White Sands Missile Range in New Mexico. As part of an ongoing effort to map these sources, a survey was conducted in 1964 using two Aerobee suborbital
00:31:23 <Fiora> rockets. The rockets carried Geiger counters to measure X-ray emission in wavelength range 1–15 Å across an 8.4° section of the sky. These instruments swept across the sky as the rockets rotated, producing a map of closely spaced scans."
00:31:45 <Fiora> x-ray astronomy started with /carefully aiming geiger counters on top of a sounding rocket/
00:34:50 <zzo38> oerjan: Maybe someone else knows a similar thing though?
00:37:01 <zzo38> (Many algorithms are try to explain like a pseudo code, which often works better than the explanation just by only English sentences. Sometimes it is even done both, and if it is a real code then it might be literate programming.)
00:37:59 <zzo38> oerjan: If you just made up now, do you know that it is correct? (If not, then maybe it isn't me that isn't understanding it.)
00:39:19 -!- hr_ has joined.
00:39:28 <kmc> hi Sgeo, how's it going
00:39:41 <Sgeo> Solve my puzzles!
00:39:42 <kmc> i like that this is a thing http://en.wikipedia.org/wiki/Liquid_mirror_telescope
00:39:43 <zzo38> Do you have the pseudo code of it?
00:39:54 <zzo38> Sgeo: You have some puzzle?
00:39:56 <kmc> Sgeo: are they crypto puzzles?
00:40:10 <Sgeo> http://creaturescaves.com/index.php?view=1134
00:40:56 <shachaf> Sgeo: why does a mirror reflect things left-to-right but not up-to-down
00:41:37 <Sgeo> Because left and right are relative to orientation whereas up and down are not?
00:42:21 <zzo38> I have a different answer to that question; I have also seen some others too but mine is different to that too.
00:42:25 <Sgeo> Turn. Left and right have changed. Stand on your head. Up and down have not changed.
00:42:38 <Bike> "Isaac Newton noted that the free surface of a rotating liquid forms a circular paraboloid and can therefore be used as a telescope, but he could not actually build one because he had no way to stabilize the speed of rotation" newton you freak
00:42:39 <Sgeo> zzo38: I'm not fully sure if my answer is accurate
00:42:53 <shachaf> Sgeo: That sounds like a thing which has to do more with your definitions than with anything else.
00:43:12 <shachaf> Forget about gravity etc., and say that up is the direction your head is pointing. Or something.
00:43:30 <shachaf> You still have this issue. I have a shirt with some text on it, I step in front of a mirror, the text is flipped right/left.
00:43:54 <Fiora> "However, research is underway to develop telescopes that can be tilted." out of context this is actually hilarious XD
00:44:27 <kmc> how stable does it need to be? big flywheel is no good?
00:44:30 <Bike> some things are just beyond human knowledge
00:44:59 <Bike> how would you use a flywheel to keep liquid rotating around a nongravitational axis?
00:45:14 <kmc> i meant re: Newton
00:45:27 <Fiora> I guess newtn didn't really have motors
00:45:40 <Bike> i think it needs to be pretty darn stable to be better than mirrors
00:46:36 <oerjan> :t let states = [0..2]; addCharCost charCostMap costs ch = [ minimum [ costs !! s1 + charCostMap s1 s2 ch | s1 <- states ] | s2 <- states ] in addCharCost
00:46:36 <lambdabot> (Num t, Ord t) => (Int -> Int -> t1 -> t) -> [t] -> t1 -> [t]
00:47:24 <kmc> that is one of the proposals yeah
00:47:26 <Jafet> Well, if you had an electrically charged liquid you could make a spherical mirror
00:47:44 <Fiora> I wonder if you could do um... a ferrofluid mirror?
00:48:20 <Jafet> If you want mirrors shaped like http://en.wikipedia.org/wiki/File:Ferrofluid_Magnet_under_glass_edit.jpg
00:48:29 -!- sprocklem has quit (Remote host closed the connection).
00:48:32 <Fiora> http://en.wikipedia.org/wiki/Ferrofluid_mirror
00:48:39 <zzo38> The mirror also reflects forward/backward because each thing has the same distance to the mirror in the image (presumably), such as a paper placed at a right angle to the mirror. If you then stand backward, it is rotated to how it looks correctly, just as if you look through a paper to the words on the other side, or if you have in front of you correctly then the mirror of the other side is also the correct order!
00:48:51 <Fiora> they're apparently used in adaptive optics?
00:49:05 <zzo38> But if you put a mirror above you, then the "forward" is actually up/down, so it will be apparently "up/down" reversed instead. See?
00:49:10 <Bike> yay ferrofluids :D
00:49:28 <zzo38> This is what I think is the reason for the mirror reflect things left-to-right but not up-to-down. Do you think so, or not?
00:50:23 -!- ^v has joined.
00:51:39 <zzo38> Because if you look at the back of a paper and with enough light you can see the words on the other side through it, then it is also mirrored. Just like, if you look through something it is the other side, but you are looking at it through the other side through the axis of the mirror.
00:52:01 <Jafet> "Ferrofluid mirrors are commonly used" -- there exists one research group doing it
00:52:11 <kmc> i love ferrofluid
00:52:19 <kmc> and magnets and monoids and hugz
00:52:22 <^v> ferrofluid = fun
00:52:38 <oerjan> :t let states = [0..2]; addCharCost charCostMap costs ch = [ minimum [ costs !! s1 + charCostMap s1 s2 ch | s1 <- states ] | s2 <- states ]; stringCost charCostMap startState (c:cs) = foldl' (addCharCost charCostMap) [charCostMap startState s c | s <- states] cs in stringCost
00:52:39 <lambdabot> (Num t, Ord t) => (Int -> Int -> b -> t) -> Int -> [b] -> [t]
00:52:51 <kmc> :D *hugs back*
00:53:00 <kmc> it's awkward when you hug someone and they don't hug back...........
00:53:07 <^v> i remember lambdabot :D
00:53:11 <zzo38> oerjan: O, thank you.
00:53:26 -!- douglass_ has quit (Ping timeout: 240 seconds).
00:53:49 <Fiora> that's why it's good to hug huggy people!
00:53:51 <oerjan> zzo38: was a bit awkward to get it started because the costs from a state to another are not well defined for an empty string
00:54:03 <kmc> is that new?
00:54:08 * kmc hugs lambdabot back
00:54:54 <oerjan> zzo38: also that's probably not optimal haskell (e.g. !!) so consider it like a pseudocode
00:55:47 <zzo38> oerjan: Yes, that's OK. My program is in C anyways; I just wanted a code because it might be understandable better than something that isn't. So, a code in Haskell is OK too.
00:58:06 <shachaf> "There was an old woman who swallowed a spider, / That wriggled and jiggled and tickled in cider"
00:58:14 <zzo38> So thank you for that I will use that.
00:58:46 <shachaf> zzo38: Did you mean to put some punctuation in that sentence? E.g. "So thank you for that. I will use that."
00:58:54 <shachaf> Otherwise it's kind of hard to to read.
00:59:44 <zzo38> shachaf: I suppose so.
01:05:30 -!- conehead has quit (Quit: Computer has gone to sleep.).
01:08:00 <oerjan> shachaf: as zzo38 mentions, a mirror actually reflects forward/backward. it's just that the human mind reanalyzes this as a rotation about a vertical line through the mirror (which is a physically plausible thing to do) followed by a left/right reflection (which is not physically plausible, but probably because of human body left/right symmetry still an intuitive operation.)
01:09:25 <shachaf> oerjan: imo that's true but incomplete
01:09:29 <oerjan> basically, a human image in the mirror looks _almost_ like it's just a human standing rotated around a mirror vertical "axis".
01:09:38 <kmc> the elevators in this building are covered in mirrors and have super unflattering light and the only way to avoid staring at yourself is to stare at the advertising screen
01:09:43 <kmc> well played elevator people
01:10:20 <shachaf> oerjan: that puzzle is this: i'm wearing a shirt with some text on it. i stand in front of the mirror. the picture i see in the mirror is definitely reflected left/right
01:10:37 <shachaf> i.e. if i refect it along that axis i'll be able to read it
01:10:51 <shachaf> kmc: imo defeat them with narcissism
01:11:39 <oerjan> shachaf: well but you cannot read your shirt _without_ a mirror, right? without a mirror you would want to take it off to read it easily, essentially performing the rotation.
01:12:40 <shachaf> oerjan: ok let's keep my shirt on for this exercise
01:12:56 <kmc> http://en.wikipedia.org/wiki/Bummer_and_Lazarus famous dogs of san francisco
01:13:09 <shachaf> oerjan: let's say we have a sign
01:13:28 <oerjan> that is, the picture you see is definitely reflected left/right corresponding to what an actual person in front of you would look like - but an actual person in front of you looks approximately like you rotated around the vertical axis between you (but unreflected)
01:13:47 <shachaf> it says IO. i put it up to the mirror and i read OI.
01:13:50 <kmc> As a team they turned out to be exceptional, once finishing off 85 rats in 20 minutes
01:14:38 <^v> oerjan, you dont say?
01:14:40 <Bike> the way i've heard it explained is that it's not really a left right rotation,a s you can tell from making "L"s with your fingers
01:14:53 <shachaf> oerjan: actually i think you have m. or l. the same answer in mind as i do
01:14:58 <shachaf> but are expressing it differently?? maybe
01:15:05 <oerjan> ^v: i do. now i just have to get shachaf to understand it :P
01:15:50 <shachaf> ok i guess oerjan is saying approximately the truth
01:16:44 -!- CADD has joined.
01:17:42 <shachaf> Bike: i like to thin of a cut out sign, rather than a sign printed on paper or something
01:17:48 <shachaf> which is p. much the same thing
01:19:08 <oerjan> oh wtf there is too much log to read today.
01:19:22 <shachaf> what if there was an olist update
01:19:47 <oerjan> then it would have to have been hid inside your quoerjans, i assume
01:20:01 <zzo38> Actually I think the reason for the left/right reflection is simply because it follows the rotation about a vertical line; symmetry of your body doesn't necessarily have anything to do with it (although I suppose it helps with the "illusion").
01:20:02 <oerjan> since that was all i could find searching for my nick.
01:20:18 <HackEgo> 1036) <oerjan> i vaguely thought sigbovik was all jokes? <Bike> oerjan: jokes written by CS people, so none of it's funny, just sad
01:20:31 <shachaf> that's not even a good quote
01:20:39 <shachaf> also it's more of a quike than a quoerjan
01:20:44 <oerjan> indeed, you should stop doing `quoerjans hth
01:20:56 <HackEgo> 531) <shachaf> elliott: GHC bug? Come on, it's the parentheses. <shachaf> The more parentheses you add, the closer it is to LISP, and therefore the more dynamically-typed. \ 605) <shachaf> VMS Mosaic? <shachaf> I hope that's not Mosaic ported to VMS. <shachaf> Hmm. It's Mosaic ported to VMS. \ 615) * Sgeo|web wants to see elliott be wrong about
01:20:59 <kmc> oerjan: Bike: harsh
01:21:05 <kmc> I think SIGBOVIK is pretty funny
01:21:19 <oerjan> kmc: hey i wasn't the one saying it wasn't funny
01:22:44 <shachaf> kmc: how long do you have to not write any rust before you can say you're """"""""rusty"
01:23:48 <kmc> should I write a JIT for FRACTRAN
01:24:37 <shachaf> it's like a JIT but for FRACTRAN
01:24:45 <Jafet> Why not write an EARLY instead
01:25:35 <elliott> CLC-INTERCAL uses a just-too-late compiler
01:25:35 <kmc> a day late and dollar short compiler
01:25:38 <elliott> or some variation on that name
01:26:00 <elliott> it's this incomprehensible mix of perl and bootstrapped compiler involving weird bytecode and stuff
01:26:40 <shachaf> kmc: imo you should write a jit that jumps to unmapped pages and then compiles code into them in the page fault handler
01:28:33 <shachaf> CADD: How did you come across this channel?
01:29:01 <CADD> shachaf: magic :)
01:29:57 <kmc> more magic
01:30:03 <CADD> Of my interest in esolangs.
01:30:21 <CADD> and search engines
01:31:02 <zzo38> Even if you use a camera which is capable to picture a mirror then according to the orientation of the camera it will be a picture of the camera with the X coordinate reversed, regardless how the camera is pointing.
01:32:04 <zzo38> The picture can then be easily reversed again to the correct orientation using the computer, so you will have the proper picture of the camera.
01:40:45 <tswett> My answer to the question of why mirrors flip things left-to-right is that they don't.
01:41:07 <shachaf> tswett: that answer is correct but incomplete
01:41:22 <tswett> If you're wearing a T-shirt, how come the beginning of the text appears to be on your right in the mirror, and the end of the text appears to be on your left? Because the beginning of the text really is on your right, and likewise.
01:43:56 <zzo38> I have explained all of these thing too.
01:44:11 <tswett> So currently I'm trying to implement Hylisk in too many languages at once.
01:44:18 <tswett> Haskell, Idris, and Hylisk.
01:44:42 <tswett> I think I'll switch to doing it in Idris only.
01:46:48 <zzo38> CADD: Which esolangs interested you, or in general, or ?
01:48:29 <CADD> zzo38: oh man, there are so many
01:49:54 <zzo38> CADD: That is correct. But do you know what things resulted in your interested in esolangs?
01:50:22 <CADD> zzo38: it is a general interest, seeing how far you can push the idea of what it means to be a language.
01:50:58 <CADD> well there are all the standard esolangs like BF and unlambda, thats what originally got me interested
01:51:23 <CADD> after that it was really all over the place, i think the esolang wiki is a great resource
01:52:29 <zzo38> I also like INTERCAL.
01:52:59 <zzo38> Duff also write a article about prehistory of esoteric programming.
01:53:20 <CADD> im actually on the wiki right now, let me see if i can find some of my favorites..
01:53:34 <CADD> ive heard a tiny bit about intercal
01:53:39 <CADD> what is it about?
01:56:02 <CADD> oh man, im reading the wiki page
01:56:07 <CADD> it looks pretty bad
01:56:15 <Fiora> it's a very polite language! you have to say please.
01:56:22 <Fiora> I think it also had COME FROM
01:56:59 <CADD> wow, apparently google even has a style guide for it?
01:57:49 -!- conehead has joined.
02:00:41 <Bike> it's an old joke.
02:04:02 <HackEgo> 2013-07-26 16:33:46: <ion> Oh, wasn’t #esoteric-nonblah for that?
02:05:18 <shachaf> Useless. It should tell you *how long ago*.
02:09:44 <Sgeo> We forgot to welcome CADD
02:09:53 <HackEgo> CADD: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
02:11:24 -!- Bike has quit (Ping timeout: 240 seconds).
02:13:53 -!- Bike has joined.
02:15:26 <HackEgo> 2013-07-27 02:10:13: <shachaf> Sgeo: I didn't.
02:45:15 <zzo38> What is the minimum number of clues that has to be selected in Jeopardy! before your score is unrecoverably non-positive?
02:47:02 <zzo38> (Assuming only one player (you) ever does anything, you give incorrect responses for the first N clues, you give correct responses for the rest of the clues, and you always bet the maximum allowed for daily doubles)
02:47:29 -!- Bike has quit (Ping timeout: 246 seconds).
02:49:38 -!- Bike has joined.
02:56:16 -!- CADD has quit (Ping timeout: 264 seconds).
03:01:43 -!- sacje has joined.
03:02:13 <shachaf> 20:01 <dmwit> No, that doesn't look right. Fix it, please.
03:02:30 -!- hr_ has quit (Remote host closed the connection).
03:19:10 -!- doesthiswork has joined.
03:20:02 -!- carado has quit (Ping timeout: 246 seconds).
03:21:52 -!- doesthiswork has quit (Quit: Leaving.).
03:22:24 -!- sprocklem has joined.
03:22:29 -!- sprocklem has quit (Remote host closed the connection).
03:26:49 -!- carado has joined.
03:30:15 -!- nooodl has quit (Ping timeout: 268 seconds).
03:34:44 -!- carado has quit (Ping timeout: 246 seconds).
03:39:04 <zzo38> oerjan: It is the optimal list of state transitions I want to calculate, not the cost, though.
03:44:54 <oerjan> zzo38: very well then, keep the list of transitions with the minimum cost to get there...
03:46:54 -!- sacje has quit (Ping timeout: 240 seconds).
03:47:59 -!- sacje has joined.
03:48:59 <oerjan> or, for each step n, as you calculate the cost for each state, include the previous state in the optimal path to it.
04:01:01 <^v> its now my birthday
04:02:23 <oerjan> `run echo HAPPY BIRTHDAY ^v | colorize
04:02:24 <HackEgo> bash: colorize: command not found
04:02:34 <oerjan> what did they rename it again
04:02:52 <HackEgo> bin/rainbow \ bin/rainwords
04:03:03 <oerjan> `run echo HAPPY BIRTHDAY ^v | rainbow
04:06:17 <kmc> that's a sad rainbow
04:06:27 <kmc> but irregardless, happy birthday ^V!
04:19:30 <Fiora> I think I'm losing track of all the acronyms
04:20:51 <Bike> i've never had track
04:20:56 <Bike> just been imitating them markov-style
04:23:56 <kmc> i'm drinking ``ChocoVine''
04:24:04 <kmc> it's a mixture of red wine and chocolate syrup
04:24:26 <Bike> "I bought something called Choco-rite Protein and you know that's good because the name sounds like a parody of food"
04:24:31 <kmc> it's........... better than you would expect
04:24:41 <shachaf> how do you know what i'd expect
04:24:48 <kmc> DOGTV - Welcome to DOGTV The First Television Channel for dogs
04:24:58 <shachaf> i've never even had wine (should i have wine (i like grapes and stuff is that like wine))
04:25:00 <Bike> because of the river hu
04:25:09 <Bike> except i forget the name of the river and also how that actually goes.
04:25:18 <mnoqy> have you ever had fruit thats gone fermented
04:25:39 <mnoqy> grapes, pomegranate,
04:25:46 <shachaf> i've had grapes and pomegranates
04:25:47 <Bike> darn, hao, not hu.
04:25:52 <shachaf> i don't think they were fermented
04:26:01 <kmc> you lived in israel for n years and you never had wine?
04:26:05 <Jafet> That apple you forgot to put in the fridge for a month
04:26:13 <kmc> anyway you should try wine sometime, it's p. good
04:26:26 <shachaf> i did turn wine down at various occasions including the celebratory kind
04:26:29 <kmc> tomorrow we could buy a bottle of wine and split it, it's a friendly thing to do
04:26:33 <kmc> cathy doesn't like wine :/
04:26:45 <shachaf> is that a euphemism for breaking the glass
04:26:51 <shachaf> is splitting the bottle like splitting the atom
04:27:05 <Bike> you just break the glass and then try to kill each other with the shards.
04:27:13 <Jafet> shachaf is splitting hairs.
04:27:22 <kmc> Bike: never bring a gun to a wine fight
04:27:56 <shachaf> Jafet didn't acknowledge my pun :'(
04:28:02 <shachaf> 20:06 * dmwit looks forward to the blog post: "My bug cost my company $300 of prototyping plastic"
04:28:05 <shachaf> 20:06 <Jafet> Is that, like, a few pounds of plastic
04:28:08 <shachaf> 20:07 <cads> about ten kilograms
04:28:10 <shachaf> 20:07 <shachaf> Jafet: It's 195.02 pounds of plastic at the current exchange rate.
04:28:13 <shachaf> is that because it was bad
04:29:24 <Jafet> I'm afraid it was such a good pun that I didn't notice it
04:29:51 <shachaf> you're such a good pun that i didn't notice you :'(
04:30:07 <kmc> GBP ain't what it used to be
04:30:21 <shachaf> USD ain't what it used to be, neither
04:30:42 <Bike> oh! mass or money
04:31:53 <kmc> your GP or your HP!
04:33:36 <Jafet> Now CNY, that's how you fly
04:34:08 <Jafet> Some keep XAU, that's fine too
04:44:33 <Sgeo> Tremulous vs Natural Selection 2
04:44:38 <Sgeo> I feel kind of torn
04:45:06 <Sgeo> NS2 has a commander on each team, reminds me a bit of Allegiance
04:45:43 <zzo38> oerjan: Thank you it works!
04:49:27 -!- CADD has joined.
04:52:01 * oerjan swats Jafet for comparing PHP with NOK -----###
04:52:54 <^v> i will never use php again
04:53:01 <^v> lua webservers > all
04:53:42 <CADD> ^v: lolol haskell webservers > lua webservers > all
04:53:50 -!- conehead has quit (Quit: Computer has gone to sleep.).
04:53:58 <zzo38> ^v: The HTTP service included in Synchronet uses JavaScript for server-side programs (Synchronet also uses JavaScript for BBS door programs, and for other things)
04:54:52 <zzo38> But I suppose with the correct software, you can make a server which is using Lua scripting, Forth, C, C++, or whatever.
04:54:55 <^v> asshell isnt as good as lua
04:55:17 <CADD> is that the best joke you could come up with? :P
04:56:15 <zzo38> (Synchronet can also use DOS programs and native programs for BBS door programs, but I think server-side scripting of webpages in Synchronet is JavaScript only.)
04:56:32 <CADD> haskell blows lua out of the water.
04:56:39 <^v> ive made with lua: irc bot, irc server, http server, minecraft rcon, pretty much everything possible in computercraft, making a unnecicarily powerful love2d script to controll random things in MC
04:56:47 <CADD> both in language merits and community size.. ;)
04:56:57 <oerjan> hey now no troll flame wars
04:57:07 <zzo38> Sure you can make many things, with many programming languages.
04:57:09 <Jafet> My community is bigger than yours
04:57:35 <zzo38> Haskell and Lua are for different ways so they are good for different purpose; Lua may be good for imperative and Haskell for functional, for example.
04:57:42 <CADD> true facts: http://sogrady-media.redmonk.com/sogrady/files/2013/02/lang-rank-Q113-big.png
04:57:58 <CADD> but ok, i wont stir anything up
04:58:35 <CADD> i really love that chart, its probably one of my favorite visualizations.
04:59:08 <Bike> i wonder what would cause a language to deviate from the line a lot.
04:59:22 <CADD> well i have my own theories
04:59:35 <CADD> so the bottom half have more code than people talking about them
04:59:44 <CADD> and the top has more people talking than coding
04:59:56 <CADD> so you have the far outliers like vimL
05:00:05 <CADD> which are "utility" langs
05:00:15 <CADD> same with elisp
05:00:52 <zzo38> Common Lisp is very down too though.
05:00:58 <CADD> yes, i pulled that one right out of my ass. :) but i think it is an apt description.
05:01:12 <CADD> right, the further down you go the less that correlation holds
05:01:15 <Jafet> Bike: the fact that the two rankings don't match linearly
05:01:35 <CADD> that is treu too
05:02:21 <zzo38> Also, this scale is only for Stack Overflow and GitHub. For example, on OpenCores there is probably a lot more Verilog and VHDL programs than C programs and so on.
05:03:06 <CADD> well, yeah thats opencores for you. you would expect that
05:03:25 <zzo38> Yes, it is expected.
05:03:33 <CADD> you can say haskell is underrepresented because of the heavy use of hackage and cabal
05:03:45 <zzo38> Yes, things like that too.
05:03:53 -!- oerjan has quit (Quit: Eine kleine Nachtmusik).
05:04:03 <CADD> but i think the neatest thing about the graph is the 3 clusters
05:04:30 <CADD> to make an analogy to the situaion in the 1st, 2nd, and 3rd world countries, the same goes for languages
05:04:33 <zzo38> Yes, I guess probably it is.
05:04:55 <CADD> this graph just really shows it very well
05:05:11 <Jafet> I'm not sure if I want to live in a first-world language.
05:05:21 <CADD> lol, yeah they are all boring
05:07:32 <zzo38> There are some other programming languages I sometimes use and didn't see in there, such as Csound and SQL, and it says "Assembly" but doesn't really mean for what computers it is an assembly language of.
05:08:40 <CADD> right, since its based on githubs language categorization
05:08:46 <zzo38> There are no dots next to the words.
05:09:55 <zzo38> CADD: How good is GitHub's language categorization?
05:09:59 <CADD> shachaf: do you think that would that be vertical or horizontal categorization?
05:10:15 <CADD> zzo38: you can see for yourself.
05:10:48 <CADD> lol i dont mean that in a snarky way, just a sec. im pulling up a page
05:10:50 <zzo38> Also, there is Visual Basic Classic and Visual Basic .NET; they didn't mention that either.
05:11:05 <zzo38> CADD: I didn't expect you to mean that in a snarky way.
05:11:14 <zzo38> (It just says "Visual Basic".)
05:11:40 <CADD> hmm, i remember there being a page with all the languages github supports..
05:11:55 <CADD> https://github.com/languages
05:11:57 <zzo38> But it doesn't suppport SQL?
05:12:15 <CADD> i dont think so
05:12:56 <Jafet> You can't put SQL on that chart, because it would overlap with the PHP label.
05:13:13 <CADD> shachaf: we were talking about githubs "language categorization".
05:13:44 <zzo38> Jafet: Overlap how much? I don't really expect it to.
05:14:04 <zzo38> (especially since there is two axis.)
05:16:11 <zzo38> Jafet: Do you even have the data? Would the number of programs and number of discussions both match that of PHP?
05:23:59 <zzo38> OK, then, because I didn't believe it anyways.
05:26:53 <Jafet> The github ranking is based on what language a github program thinks a subset of your repository is written in
05:28:43 <zzo38> That question I asked of oerjan, it is about encoding text in Z-machine format. Infocom never implemented this algorithm (and instead used only temporary shifts), leading Graham Nelson to believe that there are no permanent shifts in version 3. But I know how the Z-machine really works and implemented it properly.
05:29:29 <zzo38> Jafet: Still, they have a lot of programming langauges and yet they still forgot SQL?
05:33:23 <shachaf> zzo38: What do you think of hugs?
05:34:03 <zzo38> shachaf: I don't know?
05:35:27 <shachaf> kmc: so do you have any tomorrowplanz
05:35:28 -!- doesthiswork has joined.
05:35:48 <shachaf> otherwise i'll p. show up in sf "sometime"
05:35:48 <kmc> not really
05:35:52 <kmc> yes that's fine
05:36:06 <shachaf> i have some computerthings to do sometime during the day but i d. think it matters exactly when
05:37:29 <shachaf> so i could presumably show up in sf and stare at a laptop screen for a bit (seems to be a popular thing to do around where you live) and see
05:44:59 <fizzie> Show up in science-fiction.
05:45:38 <kmc> yeah it's a popular activity
05:45:45 <kmc> you can say that you're ``co-working''
05:49:12 -!- sprocklem has joined.
05:50:45 <shachaf> is that the dual of working
06:02:48 <Jafet> When founding a startup, remember the most important thing: colocation, colocation, colocation
06:19:50 <shachaf> kmc: remember when were all, like, "you probably all think i'm a huge stoner but really i only [inhale the fumes of a burning cannabis plant] once every few months"
06:20:13 -!- ^v has quit (Read error: Connection reset by peer).
06:20:26 <kmc> that might say something about me
06:20:38 <shachaf> it was a while ago. in #-blah, i think
06:20:46 <shachaf> i might not be remebering the exact quote
06:21:04 <shachaf> maybe it was "a few times this year" or something
06:21:10 <kmc> I prefer to inhale the fumes extracted by passing hot air over a cannabis plant which is not actually burning
06:21:46 <kmc> I didn't smoke weed very often from 2008 to last month
06:21:50 <kmc> mostly on some visits to Caltech and SF
06:22:24 <kmc> most days?
06:23:25 <Bike> http://www.youtube.com/watch?v=QEzhxP-pdos high
06:28:08 <shachaf> kmc: how high are you right now on a scale of dead sea to mt everest
06:28:22 <shachaf> «Euophrys omnisuperstes, a minute black jumping spider, has been found at elevations as high as 6,700 metres (22,000 ft), possibly making it the highest confirmed non-microscopic permanent resident on Earth.»
06:29:38 <Bike> «In 2008 a colony of bumble bees were discovered on Mount Everest at more than 5,600 metres above sea level,»
06:29:59 <kmc> shachaf: I drank some ChocoVine, that's all
06:32:17 -!- mnoqy has quit (Quit: hello).
06:37:23 <Fiora> Bike: http://arxiv.org/abs/1307.1409 okay these are awesome and amazing wow
06:37:30 -!- conehead has joined.
06:37:54 <Fiora> so like, the equation of state for neutron stars basically lets them be a little bit more massive without collapsing, as long as they're rotating
06:38:00 <Fiora> but magnetic braking will cause them to slow down
06:38:32 <Fiora> so neutron stars in that mass range will one day slow down just enough that an event horizon forms at their core...
06:38:37 <Fiora> and 0.15 milliseconds later, disappear
06:41:00 <Fiora> but magnetic field lines can't cross the event horizon
06:41:08 <Fiora> so suddenly the neutron star magnetic field is caught without, um, a neutron star
06:41:34 <Fiora> so while the neutron star will disappear silently, you have like, a field of a billion or more tesla snapping
06:41:59 <Fiora> which produces this super short but rather loud radio burst
06:43:17 <Bike> does it sound like a numbers station
06:43:23 <kmc> fucking universe
06:43:28 <Fiora> I think it sounds like a boop with a quick ringdown afterwards?
06:43:41 -!- sprocklem has quit (Remote host closed the connection).
06:43:48 <Bike> boop *volume larger than planet earth disappears*
06:44:03 <Fiora> but the neutron star is only like, 15km in radius!
06:44:06 <Fiora> that's not that big.
06:48:54 <Bike> So only everybody I've interacted with in the last several months.
06:49:08 <Bike> I guess that's ok then
06:49:09 <shachaf> Bike: imo move to california
06:51:07 * kmc -> bike -> pointless
07:04:48 <Fiora> http://en.wikipedia.org/wiki/Shapiro_delay oh wow. they can use this to measure the mass of neutron stars
07:08:27 <Fiora> http://arxiv.org/abs/1010.5788 eeee oh gosh now I want to spend all night reading these
07:09:26 <Bike> i'm spending the night reading scp foundation articles apparently
07:09:34 <Bike> i think you may have made the superior decision
07:10:22 <elliott> does supramassive mean the same as supermassive or really small or what? latin prefixes are hard
07:10:39 <Bike> "not very massive, honestly"
07:10:53 <Fiora> it means supermassive, i.e. above the limit?
07:12:31 <elliott> okay, I just sort of vaguely remembered that supra was the opposite of super but I guess I misremembered
07:12:42 <Bike> i thought the same thing
07:12:44 <Fiora> I just know what it meant in the article
07:13:04 -!- doesthiswork has quit (Quit: Leaving.).
07:13:19 <elliott> well if they're not opposites then that's good. because "supermassive" and "supramassive" meaning the opposite thing despite being spelled and pronounced really similarly would just be ridiciulous.
07:13:48 <Bike> @wn supramassive
07:14:51 <Bike> oh, it's "above"
07:22:03 <kmc> glaciers melting in the dead of night
07:22:20 <kmc> my previous ACTION is a lie; I have been detoured to lexande's apartment
07:23:13 <kmc> it's called "convox"
07:24:47 -!- zzo38 has quit (Remote host closed the connection).
07:36:02 -!- MindlessDrone has joined.
07:55:01 -!- conehead has quit (Quit: Textual IRC Client: www.textualapp.com).
08:01:14 -!- Taneb has joined.
08:03:17 -!- Bike has quit (Ping timeout: 248 seconds).
08:08:25 -!- dessos has joined.
08:13:52 -!- douglass has joined.
08:29:09 <Taneb> shachaf, am I allowed to just start reading OotS from where it is now without bothering to read the archives?
08:29:47 <shachaf> Taneb: Probably not the best way to do it.
08:29:51 <shachaf> I mean, you're allowed to.
08:30:00 <Taneb> Because I tried to read it before and couldn't get into it
08:30:15 <shachaf> The beginning is very different.
08:30:22 <shachaf> It started out as D&D jokes.
08:31:07 <shachaf> Maybe the first 50-100 strips or something?
08:32:12 <shachaf> I might have some completionist tendencies, though, so probably adjust what I say to account for that.
08:38:40 <kmc> http://boingboing.net/2013/07/26/uk-censorwall-will-also-block.html UK censorware will block "esoteric material"
08:43:15 <Taneb> That seems ridiculously broad
08:43:18 <Lymia> "web blocking circumvention tools'
08:43:22 <Lymia> You mean like ssh?
08:49:30 -!- epicmonkey has joined.
08:53:20 <shachaf> yay, i have a new ""profile picture""
08:59:19 <Gracenotes> hm. funny, though. the usual story is that, once a blocking infrastructure is in place for naughty (or even illegal) things, it's just a hop, skip, and a jump to general censorship.
09:09:03 <Taneb> "suicide related websites" like suicide support charities?
09:10:03 <shachaf> Hmm, where should I change my profile picture to make it visible?
09:10:23 -!- douglass has quit (Ping timeout: 240 seconds).
09:44:54 -!- CADD has quit (Quit: Lost terminal).
09:45:54 -!- MBEFDC has joined.
09:46:48 -!- MBEFDC has quit (Remote host closed the connection).
09:52:14 -!- epicmonkey has quit (Ping timeout: 240 seconds).
09:52:55 -!- mnoqy has joined.
09:59:43 <Vorpal> Deewiant, I'm looking at the TURT test output, is it supposed to set the background to #000001??
10:02:31 <Vorpal> Deewiant, because that is what I'm seeing in the N call
10:03:29 -!- MBEFDC has joined.
10:04:52 <Vorpal> Deewiant, makes it very hard to check that it works correctly, especially if you don't output vector graphics like I do (and thus can just open it up in inkscape and remove the background)
10:04:59 <Vorpal> Deewiant, since the pen colour is the same!
10:07:19 -!- MBEFDC has quit (Remote host closed the connection).
10:08:52 -!- Sgeo has quit (Read error: Connection reset by peer).
10:09:52 -!- Sgeo has joined.
10:14:01 <ion> hi shachaf. hachaf.
10:14:18 <ion> I’ll be back in a bit.
10:27:22 -!- CADD has joined.
10:27:37 -!- CADD has changed nick to Guest31302.
10:28:06 -!- Guest31302 has quit (Client Quit).
10:34:13 -!- sacje has quit (Ping timeout: 248 seconds).
10:41:36 -!- sacje has joined.
10:48:01 <Deewiant> Vorpal: Yeah it seems to call everything with (the appropriate number of) 1s on the stack to check that they pop the right amount of values
10:49:26 -!- sacje has quit (Ping timeout: 246 seconds).
10:51:38 <Vorpal> Deewiant, might be worth considering changing that, it would be horrible to check the current output if you use bitmap graphics
10:52:10 <Vorpal> Deewiant, might even help ensure someone doesn't mix up RGB if you use some other colour than #001
10:52:34 <Deewiant> Yeah, it's kinda crap right now
10:53:55 -!- sacje has joined.
11:06:07 -!- clog has joined.
11:12:38 -!- carado has joined.
11:12:52 -!- carado has quit (Client Quit).
11:17:25 -!- carado has joined.
11:36:46 <Vorpal> Played around a bit with LTO. No measurable speed difference that I can see in my case. About 2-10% smaller executable for an LTO build compared to a non-LTO build with otherwise the same flags
11:37:02 <Vorpal> About 2% with -O3 and about 10% with -Os
11:42:58 -!- yorick has joined.
11:45:14 <Jafet> Clearly your enterprise library interfaces were not nested deeply enough
11:46:30 <Vorpal> Jafet, quite so, I only use libc, librt, libncurses. All of them linked dynamically
11:47:43 <Vorpal> Jafet, also the executable is still below 200 K in all cases.
11:48:13 <Vorpal> Unless I enable debug info of course
12:00:08 -!- carado has quit (Ping timeout: 246 seconds).
12:02:19 <Taneb> Isn't 200 K like -73 degrees celsius
12:02:34 <Vorpal> Taneb, yeah my software is really cool
12:08:02 <Taneb> In other news, I think now may be a good time to get dressed
12:08:10 <Taneb> Before I have to use any of Vorpal's software
12:09:55 -!- Taneb has quit (Quit: Leaving).
12:12:54 <Deewiant> mushspace pretty much needs LTO because it doesn't use macros for even the smallest things unless necessary
12:13:32 <Deewiant> So it has functions like add(int x, int y) { return (int)((unsigned)x + (unsigned)y); }
12:14:06 <Vorpal> Oh? What are your plans for it?
12:14:23 <Vorpal> I mean, what to use it for
12:14:30 <Deewiant> It's pretty much the one in CCBI2 translated to C and improved in lots of ways
12:15:00 <Deewiant> When it's done I'll write a new interpreter, probably also in C
12:15:52 <Deewiant> Anyway, I should see at some point just how much faster it'll be without LTO if I turn that kind of stuff into macros
12:16:17 <Vorpal> Deewiant, Also I found a somewhat serious bug by fuzz testing, I seem to not properly handle at least one case of malloc returning NULL.
12:16:28 <Vorpal> Not sure where yet, it is somewhat tricky to debug
12:17:26 -!- FreeFull has quit (Quit: rebooting).
12:20:49 -!- FreeFull has joined.
12:21:46 <Vorpal> Deewiant, with ulimit + fuzz test script that invokes valgrind as one step
12:22:16 <Vorpal> I have a define that enables an alarm()-call in main() to handle terminating the program after 3 seconds.
12:22:39 <Deewiant> Oh, ulimit in linux makes malloc return null?
12:22:54 <Vorpal> Deewiant, yes, at least in some cases
12:23:18 <Deewiant> Do you use random ulimits or do you just have some known small value
12:24:16 <Vorpal> Deewiant, atm I just assign 128 MB to the various memory limits, since I was actually trying to test STRN rather than malloc, it just happened to hit some sort of massive stack it appears in the randomly generated program.
12:24:30 <Vorpal> I have used random values in ranges for it before though
12:24:54 <Vorpal> (Since there is a minimum that makes sense, if ld.so fails to load stuff due to memory limits, that is of no interest)
12:26:33 <Vorpal> Deewiant, Right, fixed that memory leak. Turned out to be a realloc call assigning without checking for NULL first, leading to a memory leak detected by valgrind
12:27:12 <Vorpal> Anyway, I haven't figured out a good way to not also apply the ulimits to valgrind as well, I guess I could add them into the cfunge main() though...
12:31:12 <fizzie> Can't you just have valgrind run a shell script that sets ulimits and exec's cfunge?
12:31:29 <Vorpal> fizzie, Does valgrind follow that hm
12:31:51 <Vorpal> I don't want stuff from the shell messing up
12:31:54 <fizzie> I'd think it follows exec's, given that it follows forks too.
12:32:09 <Vorpal> fizzie, so I won't get leak reports from the shell?
12:32:38 <fizzie> Apparently you need a --trace-children=yes for it to follow across exec.
12:33:11 <Jafet> Or you could make a program that calls setrlimit and runs cfunge.
12:33:13 <fizzie> There's also a --trace-children-skip which "can be useful for pruning uninteresting branches from a tree of processes being run on Valgrind".
12:33:44 <fizzie> I guess that doesn't work, though, since it wouldn't follow the children of the skipped shell.
12:33:50 <Vorpal> Jafet, or since I have an alarm() call inside an ifdef in it anyway I could just add the setrlimit call there
12:34:31 <Jafet> You just need a small perl script to prune the reports about the shell process
12:35:30 <Vorpal> I mean you can use a shell script to do it
12:36:03 <Jafet> Any shell script that parses text is, by construction, going to be a wrapper around another script
12:37:10 <Vorpal> Hm when I set the rlimit in main() it still seems to affect valgrind???
12:37:16 <Vorpal> That will need some investigation
12:40:00 <Jafet> If you set a limit on your executable's process, which is the valgrind process, it affects the valgrind process, which is your executable's process.
12:41:19 <Vorpal> Jafet, oh right, valgrind runs the instrumented process inside itself, doesn't it...
12:41:54 <Vorpal> I guess I will just put it at a sufficiently high number to not make a mess of the system if it runs out of control
12:42:36 <fizzie> For purely the malloc-returns-NULL testing, you can always opt for a wrapper malloc.
12:42:48 <Vorpal> Well yes, but that is somewhat more annoying
12:42:57 <Vorpal> Anyway I use mmap directly in a couple of places iirc
12:46:05 <Jafet> It's conceptually simple, valgrind/memcheck is just a virtual machine for malloc.
13:04:06 <fizzie> ...I was preparing for an automated testing system that'd use a fixed random seed and try to get fungot-babble to misbehave, and testing with nc -l 6667 about what sort of interaction I'd need to provide... when I got the bug to manifest, with a random seed of 0, on my first comment.
13:04:06 <fungot> fizzie: there is an html file
13:04:15 <fizzie> I should probably see if that's repeatable.
13:05:49 <Vorpal> fizzie, oh did you do that now?
13:06:19 <fizzie> It is indeed repeatable.
13:06:39 <Vorpal> Well then, should be somewhat easy to debug.
13:07:08 <fizzie> And if I skip one completely inconsequential line (a ^style without arguments) it no longer happens; probably because it changes the state of the input buffer.
13:07:25 <Vorpal> And I just got it to segfault somehow
13:07:39 <Vorpal> I have a NULL stackstack
13:07:47 <olsner> fungot: where's the html file?
13:07:47 <fungot> olsner: when we told him that ' fnord by the odd syntax i just invented
13:12:27 <Jafet> fnord fungot fnord fungot fnord
13:12:27 <fungot> Jafet: that would be of no use to anyone. and i also share some ideas with italian fascism but those generally also fall under the term marxism...
13:13:49 <Vorpal> Right, something goes wrong when I have >3300 threads, then I end up with a NULL stackstack on IP 3320 or so
13:18:33 <Jafet> Having three thousand (nptl) threads does tend to coincide with being wrong
13:18:42 <Vorpal> Jafet, these are user space threads
13:19:02 <Vorpal> Jafet, Having 3000 funge threads is pretty wrong too though
13:19:49 <Vorpal> Jafet, but it is a randomly generated program from fuzz testing, so these things shouldn't be surprising
13:19:59 <Vorpal> Besides I should be able to handle malloc returning NULL
13:20:23 <Jafet> Your funge program can malloc?
13:20:30 <Deewiant> No ATHR so no actual threads :-/
13:20:33 <Vorpal> Jafet, no my funge interpreter does
13:20:45 <Vorpal> Deewiant, there is some experimental support for it in efunge
13:21:10 <Deewiant> Don't you implement the malloc fingerprint
13:21:30 <Vorpal> I didn't know that existed. RCfunge one?
13:21:37 <Vorpal> I'm pretty sure I don't implement it
13:21:40 <Jafet> That sounds like something you can detect with grep.
13:21:44 <Deewiant> Yeah, I forget what it's called
13:22:01 <Vorpal> I do of course have some fingerprints that need to malloc internally, but none that is explicitly for mallocing
13:22:11 <Vorpal> Nope, don't implement that
13:22:32 <Vorpal> Why is the stackstack 0 when the *stack* is non-zero
13:22:38 -!- sacje has quit (Ping timeout: 240 seconds).
13:23:07 <Vorpal> (the ip contains a direct pointer to the active stack
13:23:12 <Jafet> echo **/*.c | grep malloc -A1 | grep -v NULL
13:23:33 <Vorpal> Jafet, might me a realloc that is failing, I don't know
13:24:23 <Vorpal> Hm the stack is 23268 entries. Not bad
13:26:18 <Vorpal> I found a memory leak though, but it doesn't explain what I'm seeing
13:26:43 -!- nooodl has joined.
13:30:32 -!- sacje has joined.
13:31:36 <Vorpal> Deewiant, I have been thinking about another possible pseudo-async-threads idea that would be easier to implement btw. Basically have a fingerprint that modifies stuff like SOCK that can block so that other concurrent-funge threads will continue to run while that is blocked.
13:31:57 <Vorpal> I believe it is similar to what python ends up doing
13:41:10 <Vorpal> Deewiant, hm, if t fails due to out of memory, should the program just exit? I seem to remember it something was supposed to reflect on OOM but I can't find it in the spec atm
13:42:02 <Vorpal> Oh it was { that could do that
13:54:30 <fizzie> From some preliminary investigations, it would seem that the babbling code -- occasionally, when the generated string is overlong -- accidentally pops off the "current position in input buffer" value.
13:54:35 <fizzie> Though for some reason there's the value "1730" under it, I don't know what that number is.
13:56:23 <fizzie> A real debugger to run this in would be nice.
13:56:33 <Vorpal> fizzie, it is also 2*5*173
13:56:55 <fizzie> I guess, but a more funge-oriented one would still be better.
13:57:08 <Vorpal> fizzie, etc/example.gdbinit has some helpful stuff
13:57:36 <Vorpal> fizzie, or you could use the debugger in ccbi, as far as I remember it was kind of okayish, though far less useful than gdb in general
13:58:13 <fizzie> Hmm, I suppose brkcell would be mostly what I need. Or I guess the brkinst also works for undefined instructions?
13:58:35 <Vorpal> fizzie, Pretty sure it does, remember you need debug symbols
13:59:00 <Vorpal> fizzie, anyway did you actually end up executing an undefined instruction?
13:59:41 <Vorpal> fizzie, you can also use -W and -E to cfunge to show warnings and non-fatal errors
13:59:57 <Vorpal> Not enabled by default since they would affect standard conformance
14:00:24 <fizzie> Vorpal: No, I was just thinking of using an undefined instruction as a "source breakpoint" thing with that gdb brkinst.
14:00:34 <Vorpal> fizzie, oh yeah that would work
14:00:42 <fizzie> (Since then I don't have to compute the y offsets manually.)
14:03:35 <fizzie> Actually, I think I'll just use 'z', since I don't have any real z's.
14:04:46 <Vorpal> I'm having a very strange memory leak here on OOM
14:05:51 <Vorpal> I'm leaking exactly 1 stack, 3 opcode stacks and one stackstack. Very strange
14:06:21 <Deewiant> Vorpal: I'd reflect whenever possible, including on OOM
14:07:00 <Vorpal> Deewiant, Hm. I went with the fatal error instead in this case
14:07:44 <Deewiant> I don't think the interpreter should ever die if it can avoid it
14:08:24 <Vorpal> In this case, it is hard to avoid, I tried doing that before which caused a sigsegv a bit later instead
14:08:48 <Deewiant> Why would you segfault because of that?
14:09:48 <Vorpal> In this case because the IP list had already been extended but the IP ended up with an invalid stackstack. I can try to handle all these yes, but it would be really annoying.
14:10:50 <fizzie> Huh, seems that the 1730 is from a mostly-benign stack bug, where a no-argument ^style leaves an extra "1730" on the stack, under the current-input-buffer-index that's supposed to stay there.
14:10:54 <Deewiant> Yes, doing things correctly can be annoying :-P
14:11:07 -!- Nisstyre-laptop has joined.
14:11:14 <fizzie> I think I should perhaps fix that first, before proceeding on the babble-bug.
14:11:18 <Vorpal> Deewiant, in most languages you wouldn't have the option not to exit
14:11:19 <Deewiant> It doesn't /really/ matter though, feel free to fail, I just don't think it's the best way
14:11:26 <Vorpal> Deewiant, thinking of most high level languages here
14:11:50 <Deewiant> Vorpal: Lots of them have out of memory exceptions or whatever
14:11:53 <Vorpal> fizzie, Isn't it the 1730 that is causing the issue?
14:12:22 <Vorpal> I didn't know haskell had that for example.
14:12:40 <Vorpal> Very much doubt erlang has it, though I am not sure.
14:12:43 <Deewiant> Vorpal: You said "most languages", I'm just saying there are lots of counterexamples
14:13:05 <Deewiant> Functional languages tend to be the type that don't have it in their spec, yes
14:13:09 <fizzie> Vorpal: No, the issue is that the whole current-input-buffer-index value has been popped off the stack accidentally by the babble code. (The 1730 is related in the sense that it's what is then used as the input buffer index, breaking things badly.)
14:13:24 <Vorpal> Deewiant, Well I said most high level languages. Which means something a bit above C++'s OOM exception
14:13:27 <Deewiant> In GHC they could add an out of memory exception for everything if they wanted, I guess
14:13:41 <fizzie> But the ^style handler is a lot smaller than the babbling code, so I'll fix that first.
14:15:23 <fizzie> Oh, it's just the number of the line after the last style.
14:15:37 <Deewiant> Vorpal: Shrug, lots of languages have it and I guess lots don't, but you could also add it as an option (custom exception type or a special handler that is used only if the user defines it, or the like) in lots of the ones that don't...
14:15:40 <fizzie> The list of available styles has apparently been loaded at y=1728.
14:15:50 <fizzie> (Because "ccc**" is easy to spell, and quite out of the way.)
14:16:00 <Deewiant> Vorpal: Befunge has the nice generic "instruction failed" error in the form of reflection, so I think it should be used whenever possible
14:16:18 <Vorpal> Deewiant, that doesn't work for t though, since the parent thread reflects anyway
14:16:24 <Vorpal> Deewiant, and the issue in this case was in t
14:16:44 <Deewiant> Vorpal: Sure it works, the parent thread can wait for the child to confirm that it exists
14:16:59 <Vorpal> Most programs probably don't though
14:17:11 <Vorpal> IIPC, which I don't implement
14:17:15 <Deewiant> Sure, most programs don't check for malloc(1) failing either
14:17:36 <Deewiant> Or it's 3 only isn't it, mmap is both
14:18:18 <Deewiant> Point being that I think the option should be there even if nobody actually uses it
14:19:41 <fizzie> Vorpal: How do I ask gdb for the character at (x,y) in fungespace?
14:20:15 <Jafet> You write the C expression that produces the character at (x,y) in fungespace
14:20:29 <FreeFull> You write a befunge plugin for gdb
14:20:37 <Vorpal> fizzie, call fungespace_dumparea(minx,miny,maxx,maxy)
14:20:57 <Vorpal> fizzie, there is also fungespace_dump and fungespace_dump_sparse
14:21:34 <Vorpal> Deewiant, sure, but that takes a struct funge_vector
14:21:35 <Jafet> cfunge, a gdb plugin
14:21:47 <Vorpal> Deewiant, which is somewhat annoying to invent on the command line iirc
14:21:51 <Vorpal> I never figured it out anyway
14:22:15 <Jafet> You just need a make_funge_vector
14:22:32 <Vorpal> fizzie, I also have stack_dump(funge_stack*) (if you have the IP you could do stack_dump(ip->stack)
14:22:51 <Vorpal> Jafet, vector_create_ref is a macro alas
14:22:58 <Vorpal> #define vector_create_ref(a, b) (& (funge_vector) { .x = (a), .y = (b) })
14:23:12 <Deewiant> This is why you make everything a function instead of a macro!
14:23:13 <Vorpal> Last I tried (over a year ago) that syntax didn't work in gdb
14:23:13 <fizzie> Okay, that's also slightly nicer than my current manual looking at ->top and ->entries[0].
14:23:24 -!- doesthiswork has joined.
14:23:34 <Deewiant> And then say "unless your compiler has good LTO the end result will be unusably slow"
14:23:36 <Jafet> That's a good way to get a pointer to a funge_vector.
14:23:42 <Vorpal> fizzie, there is a stack_print_top that prints the top 5 elements as well
14:23:59 <Vorpal> fizzie, anyway entires[0] would be the bottom of the stack.
14:24:05 <Vorpal> fizzie, it grows up not down
14:24:21 -!- stuntaneous has quit.
14:24:35 <Vorpal> fizzie, you know, adding a debugger is on my TODO, just never got around to it
14:24:48 <Vorpal> I won't make any promises either. But maybe at some point yes
14:25:18 <Vorpal> Would mean adding readline/libedit and what not (I couldn't live without line editing personally).
14:27:17 <Vorpal> Deewiant, doesn't actually work that well in my experience. Nothing close to the real deal.
14:27:26 -!- doesthiswork has quit (Ping timeout: 240 seconds).
14:27:46 <Deewiant> Shrug, I haven't had any problems
14:28:15 <Deewiant> Maybe I'm not a heavy enough readline user :-P
14:32:15 <fizzie> Vorpal: Oh, seems that the extra 1730 was actually my fault; had forgotten that the styles.list needs to be terminated by a line that has a single \0 at start. (Now it tried to STRN/G an empty line, and that reflected, and I hadn't expected that G to reflect.)
14:32:38 <fizzie> Vorpal: (If you want to keep that fungot testing environment you did, you should probably also append a \0 at the end of the styles.list I described.)
14:32:38 <fungot> fizzie: direct your self-loathing elsewhere!
14:32:50 <fizzie> (And yeah, it's kind of brittle code.)
14:33:00 <Deewiant> (See? Nobody does error checking)
14:33:09 <fizzie> Oh well, back to actually figuring out the real problem.
14:33:22 <Vorpal> fizzie, can you still reproduce the real issue?
14:34:14 <fizzie> It might reproduce a bit differently, but it should still get confuzzled.
14:34:16 <Vorpal> fizzie, I will be pushing a bunch of minor fixes (mostly fixing clang warnings and OOM handling) shortly btw.
14:34:55 <Vorpal> Also LARGE_IPLIST will now be default.
14:34:56 <Deewiant> Vorpal: Are you building with -Weverything?
14:35:15 <Vorpal> Deewiant, Is that a real clang option? I think I'm building with -Wall or some such
14:35:38 <fizzie> Aww, it no longer actually crashes. But it still does a wrong.
14:35:39 <Deewiant> Vorpal: -Wall is like GCC's -Wall in that it enables a large set of common and useful warnings or whatever
14:35:46 <Deewiant> Vorpal: -Weverything enables every single -Wfoo option
14:36:02 <Deewiant> I like to use -Weverything and then -Wno-foo the ones I don't care about
14:36:05 <fizzie> I think I'll stick a fixed big number under the current-input-index value so that the crash is more spectacular, for debugging.
14:36:06 <Vorpal> I don't do anything special for clang wrt. warnings. Only for GCC
14:36:23 <Vorpal> Mostly because there is no built in cmake define to check if you use clang
14:37:10 <Deewiant> -Weverything will probably give you a huge pile of warnings but after a few -Wno-foos for the super-common and not-too-problematic ones you might be left with just some useful ones that -Wall missed
14:37:28 <Vorpal> Deewiant, huge pile is an understatement XD
14:37:55 <Deewiant> Probably more than it's willing to output, I guess it stops printing them after 100 or whatever
14:38:06 <Deewiant> -Wsigned-conversion or something like that tends to fire a lot
14:38:14 <Vorpal> Deewiant, Also I get some warnings from a really common header. For every file. Oh well
14:38:24 <fizzie> Vorpal: It's a bit annoying for debugging that with the brkinst 'z' breakpoint in place, generating one line of babble takes half a minute.
14:38:47 <Vorpal> fizzie, that is due to how gdb does it I'm afraid
14:38:57 <Vorpal> fizzie, which is breaking, checking and continuing
14:39:36 <Vorpal> fizzie, you could add a check in the code, or break on the line where z is handled (interpreter.c, function execute_instruction, for me it is line 179)
14:39:55 <Vorpal> fizzie, so that "case 'z'" there would work if you broke on that
14:40:00 <Vorpal> should be a lot faster
14:40:31 <Vorpal> fizzie, other than that, there is little that can be done to fix gdb
14:41:38 <fizzie> Yes, I guess I could do that.
14:42:28 <Vorpal> fizzie, other than optimize the code so you have fewer instructions being executed of course
14:43:02 <fizzie> The breakpoint-on-the-"break;"-line is blazing fast.
14:43:47 <Vorpal> fizzie, well of course, it doesn't have to break and switch to gdb on every executed funge instruction
14:50:02 <Vorpal> Deewiant, you know, for me using ninja is almost less efficient than using make.
14:51:05 <Vorpal> Deewiant, The reason is that the build time is so low anyway, and typing make is faster (one letter shorter and alternating hands for the letters), than typing ninja in the terminal (all but one letter of ninja is with the same hand)
14:52:14 <Vorpal> Deewiant, I need at least mak<tab> or nin<tab>, and then we get back to the alternating hand issue again
14:52:56 <Vorpal> Of course typing make is just as fast as mak<tab>, if not faster
14:53:02 <Deewiant> "nin" is pretty easy with one hand IMO, since you can keep one finger at n
14:53:29 <fizzie> I told gdb to break execute_instruction if (ip->stack->top < 2), let's see if it finds me the instruction responsible for popping off the input position value.
14:53:37 <fizzie> (It's been running for two minutes or so.)
14:53:39 <Deewiant> "tup upd" is the worst, of course
14:53:47 <Vorpal> Deewiant, depends on the keyboard I guess, a bit harder with an ergonomic one for it to not end up shifted away. I have a MS Natural keyboard
14:54:02 <Vorpal> fizzie, that will be slow for the reason mentioned before yes
14:54:12 <Vorpal> Deewiant, yes that is pretty bad indeed
14:54:46 <Vorpal> Deewiant, anyway that is why I think darcs never got popular. svn, git, bzr, cvs and even more so hg are all easier to type
14:54:55 <Vorpal> darcs is all left hand
14:55:26 <Vorpal> Deewiant, and don't even speak about monotone
14:56:45 <Deewiant> That's why it changed to arch then, I guess
14:57:21 <Vorpal> A wise decision (that I didn't know about)
14:57:40 <fizzie> position = {x = 57, y = 232} aha, there's the culprit.
14:58:23 <fizzie> Well, I don't know *that* yet, of course, just the particular instruction removing that value.
14:58:45 <fizzie> Which is... a $ in the code shared for all output, so I suppose I need to dig deeper to find the actual cause.
14:59:21 <Vorpal> fizzie, you should be able to break on funge space access too btw, though it would suffer the same slowness (if not worse): break fungespace_get if position-> == 123 && position->y == 345
15:00:07 <Vorpal> fizzie, if that value below the input buffer is accessed, I guess that would help? Unless you mean that it was on the stack?
15:00:28 <fizzie> It's on the stack, yes.
15:00:31 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube
15:00:58 <Vorpal> fizzie, I guess you could set a watch-point on the address in ip->stack->entries? Maybe?
15:01:16 <Vorpal> ip->stack.entries[n] that is
15:02:53 <Vorpal> fizzie, actually you would need to set two breakpoints I believe... fungespace_get and fungespace_get_offset, the latter taking two vectors (you would thus need to check on the sum, or put the breakpoint after the sum has been calculated already)
15:03:03 <fizzie> Well, I mean, I did already find the instruction that is responsible for dropping it, with that top < 2 break; just have to figure out why. Presumably at the $ there should be something *else* on the stack that has been accidentally dropped by an earlier instruction, which I could catch by watching for top < 3 after it's been put on.
15:03:03 <Vorpal> I have no idea why one doesn't just call the other
15:03:13 <fizzie> Assuming I can just figure out from the code what should be on stack there.
15:04:02 <fizzie> I just keep getting interrupted here.
15:04:42 <fizzie> (I mean, here at home.)
15:05:09 <Vorpal> fizzie, calling signal(SIGINT, SIG_IGN) might help
15:06:50 <fizzie> According to my documentation, the purpose of this one variable the code is looking at is "temp". So helpful.
15:07:38 <Vorpal> funge really is a write-only language
15:09:28 <fizzie> Oh, hey. I think I might have found the culprit. This code that checks for an overlong message (and truncates it) looks like it has a different stack effect for the "is too long" path than the "is okay" path.
15:09:57 <fizzie> It'd be nice if it's here, because this is a reasonably small piece of code. I didn't really relish the thought of trying to read the babble generator.
15:11:51 <Deewiant> Write-only is fine, just rewrite the program when you find a bug
15:14:18 -!- fungot has quit (Remote host closed the connection).
15:14:46 -!- fungot has joined.
15:15:20 <fizzie> The "replies even when not spoken to sometimes" bug, yes.
15:15:49 <fizzie> fungot: You've just had a virtu-lobotomy; how do you feel?
15:15:49 <fungot> fizzie: the reason that your expression evaluates to a list then call/ cc becomes fnord, not about the blood that doesn't have bachelor's degrees?
15:16:23 <fizzie> If you're having a blood transfusion, remember to check that the blood has at least a bachelor's.
15:17:41 <Vorpal> Hm, is there a way to basically do #define x constant ## VALUE_OF_OTHER_DEFINE?
15:20:13 <Vorpal> Deewiant, that did not work hm
15:21:28 <Vorpal> Deewiant, so it it actually possible?
15:28:37 <Deewiant> That thing which you said yesterday that nobody needs or something ;-P
15:28:57 <Vorpal> Deewiant, was it? I thought it was a bit different, but oh well XD
15:33:47 -!- doesthiswork has joined.
15:37:30 <Vorpal> doesthiswork, it doesn't
15:45:42 -!- sacje has quit (Ping timeout: 264 seconds).
15:53:40 -!- sacje has joined.
15:55:55 <Deewiant> Vorpal: Anything interesting from -Weverything?
16:17:18 -!- mnoqy has quit (Quit: hello).
16:17:39 <Vorpal> Deewiant, not really, just implicit casts mostly
16:18:01 <Vorpal> Deewiant, and all of them were intended
16:20:14 -!- sacje has quit (Ping timeout: 240 seconds).
16:20:44 -!- sacje has joined.
16:21:49 -!- epicmonkey has joined.
16:23:31 <doesthiswork> The fixedpoint theorem in lambda calculus seems false
16:25:34 <doesthiswork> it says that for every function a fixed point exists, but if for many functions there is no constant fixed point
16:33:35 <doesthiswork> yes I know the fixed point combinator. but I get contradictions when I try and use the resulting fixed point as a constant
16:34:13 -!- stuntaneous has joined.
16:35:28 -!- zzo38 has joined.
16:43:43 <doesthiswork> for example \.a(a \.b( \.c( c ) ) \.d( \.e( d ) ) )
16:44:13 <doesthiswork> it has no fixed fixed point. so when I at like it does, strange things happen
16:47:03 <Jafet> That's because it's not scott continuous, duh
16:48:05 -!- conehead has joined.
16:51:38 <kmc> it finds you the least fixed point where "least" is defined in a lattice of progressively more-defined values
16:51:45 <kmc> sometimes the least fixed point is ⊥
16:52:01 <Gracenotes> there are standard notational grouping rules
16:58:21 <Gracenotes> in either case, a reason why this fixoint is ⊥ is because it never produces any value, or any expression spine, so to speak...
16:59:20 <Gracenotes> where something like factorial, it at least yields an if statement before immediately jumping into a recursive call.
17:01:24 <kmc> what kind of expression is that
17:02:53 <Jafet> A rightwards double arrow
17:03:20 <elliott> I know what it means in logic
17:03:27 <elliott> but what are you using it to mean in the lambda calculus?
17:03:36 <elliott> there is no primitive notion of ⇒, you have to define it
17:03:45 <Gracenotes> lambda calculus isn't being used computationally, I don't think
17:03:49 <elliott> (and if you take it as a primitive, of course results for the standard lambda calculus might not apply to your system)
17:04:50 <Gracenotes> people love it because beta-reduction either diverges or is strongly normalizing, although maybe not in the face of all of these extensions... dunno
17:05:25 -!- Bike_ has joined.
17:06:52 <Fiora> bike / kmc: here is a cool thing! http://arxiv.org/pdf/1306.6047v1.pdf
17:06:57 <Gracenotes> you still need a way of reducing ⇒, where it be for computing or proving
17:06:59 -!- Bike_ has changed nick to Bike.
17:07:07 <Fiora> it's a paper where they analyze why interpreting python is hard/slow and some ways to speed it up and a custom python interpreter
17:07:25 <Jafet> There is no problem with unlimited fixed points at all, well, unless you don't really want to prove false
17:07:44 <Jafet> Proving false is pretty great though, you should try it
17:08:05 <Fiora> "However, due to the possibility of encountering an overloaded __add__ method, no assumptions can be made about the behavior of BINARY_ADD. In the general absence of type information, almost every instruction must be treated as INVOKE_ARBITRARY_METHOD"
17:08:23 <Jafet> But I can still make fun of python gil right
17:08:37 <olsner> yes, you can *always* do that
17:08:40 <Jafet> I want a grandfathered license to make fun of python
17:09:09 <Fiora> they do all kinds of super cool things like the whole direct-interretation looping and recompiling the code to work on a register machine
17:09:51 <Jafet> Basically, they take advantage of the fact that most python code is actually java.
17:09:54 <doesthiswork> Elliott: I got it from john shutt's blog. He's using lambda calculus to manipulate symbols and then using the results.
17:10:43 <elliott> that quote about __add__ reminds me of scheme
17:11:00 <Bike> shutt has a blog?
17:11:53 <doesthiswork> http://fexpr.blogspot.com/2013/07/bypassing-no-go-theorems.html
17:12:17 <elliott> I wonder how this relates to PyPy
17:12:22 <elliott> maybe the paper would tell me
17:12:40 <Jafet> That would involve reading it right
17:12:53 <Fiora> the difference they explain is that basically the big problem is that the cpython API (used to make extensions, I think), exposes a huge amount of the interpreter's internals
17:13:01 <Fiora> and like, you can't even change the memory layout of objects without breaking source compatibility
17:13:10 <Fiora> so like, pypy is fast, but it can't be used with those extensions
17:13:18 <Fiora> and if you want to make the extensions work, your hands are kinda tied?
17:13:36 <Fiora> (so their paper is about like, I think "what we can do if we don't break compatibility"?)
17:13:43 <elliott> yeah I read the first page... so I guess the problem is essentially "python's extension API is really awful"
17:13:48 <kmc> one of the main strategies for dealing with this is just rewriting your extensions in pure Python
17:13:53 <Bike> yeah sounds like the API here is bad
17:14:04 <kmc> because they were written in C originally only for speed
17:14:07 <Gracenotes> pypy kind of makes a deal with the devil, in that sense
17:14:11 <Fiora> yeah, the problem is they explain the API is one of the main reasons people use python >_<
17:14:30 <kmc> "Fry, it's time for you to make a metaphorical deal with the devil. And by devil I mean robot devil, and by metaphorical I mean get your coat."
17:15:24 <elliott> I wonder if you could do something really ridiculous like sort of translate C extensions back into Python with FFI calls automatically so that they're fiddling with the objects on a language level
17:15:36 <elliott> okay that sounds impractical
17:15:50 <Bike> JIT everything forever
17:18:35 <Jafet> Still waiting for JTL compilers
17:19:11 <Deewiant> Jafet: http://etoileos.com/news/archive/2009/07/23/2218/
17:19:14 <kmc> elliott: that sounds reasonable
17:19:26 <kmc> basically you make the JIT itself take on the burden of translating to the legacy CPython API
17:19:55 <kmc> I have used ctypes to call the CPython API from Python before
17:20:03 <kmc> /it's/ /the/ /best/
17:20:20 <Jafet> Pythons all the way down
17:20:48 <kmc> ride the snake seven miles
17:21:03 <olsner> maybe you could combine it with one of those things that takes python code and automatically generates C extensions for it
17:22:04 <elliott> kmc: well, the idea is like, the problem is that all the pokey stuff you can do to the object model requires things to be inefficient to support it especially because it seems like you're accessing struct fields of the objects directly and stuff?
17:22:25 <Jafet> But your python code is fast, so it evens out
17:22:27 <elliott> so if you instead turn that into Python code which messes with __dict__ and stuff then you alleviate the problem because you no longer have to keep the exact same memory layout
17:22:37 <elliott> and then "hopefully" the JIT can smooth out the horribly inefficient stuff it wants to do
17:22:44 <elliott> but it sounds like you'd probably run into a lot of problems
17:23:48 <kmc> hm I didn't know about this attack until today http://stackoverflow.com/questions/3008139/why-is-using-a-non-random-iv-with-cbc-mode-a-vulnerability
17:24:00 <Jafet> You could just compile the C code into python
17:24:18 <kmc> CBC mode sux :<
17:29:21 <Jafet> Best use for sequential IVs?
17:30:32 <Jafet> What if the state wants to get you
17:30:48 <shachaf> ecb mode might be less great in that case
17:31:17 <Jafet> What if the state considers you a problem
17:34:10 <kmc> what if the snake considers you a problem
17:35:55 <Deewiant> What if the snake considers you a program
17:38:59 -!- Nisstyre-laptop has quit (Quit: Leaving).
17:40:38 <Gracenotes> deterministic encryption algorithms are insecure
17:41:07 <Bike> all an attacker has to do is determine the intiial conditions of the universe! come ON, people
17:44:48 <Bike> probably at least like, twelve??
17:46:08 <Gracenotes> of course, block ciphers are deterministic (they have inverses)
17:51:06 -!- FreeFull has quit (Remote host closed the connection).
17:53:28 -!- FreeFull has joined.
18:04:48 <zzo38> You assume the universe is deterministic. I am not so sure.
18:05:30 <kmc> WEP uses only a 24-bit IV.....
18:06:41 <kmc> yeah CTR mode is good; it makes one wonder why we bother with making these block ciphers invertible anyway
18:06:51 <kmc> djb also wondered that and invented Salsa20
18:08:51 <shachaf> hard to do disk encryption with ctr mode
18:09:04 -!- Bike_ has joined.
18:09:15 -!- Bike_ has quit (Client Quit).
18:09:32 -!- Bike_ has joined.
18:10:44 <zzo38> (But even if the universe is deterministic, it takes too much time to recover the result you are looking for anyways.)
18:11:53 -!- Bike has quit (Ping timeout: 240 seconds).
18:11:54 <kmc> shachaf: v. true
18:13:23 -!- Bike_ has changed nick to Bike.
18:19:32 <lambdabot> oerjan said 2d 20h 9m 15s ago: i do not think it is always possible to find the contents of a backflip program by running it from chosen edges. in particular if you have a region bounded entirely by
18:19:32 <lambdabot> inwards pointing arrows you will never be able to say anything about its interior.
18:19:32 <lambdabot> oerjan said 2d 20h 6m 10s ago: well, ignoring output.
18:21:27 <zzo38> Yes it does looks like it; there is an ambiguous. But, you can't win them all.
18:23:42 <zzo38> If you are told the number of mirrors, arrows, and outputs, then it may help a little bit but is still ambiguous.
18:41:10 -!- MindlessDrone has quit (Quit: MindlessDrone).
18:44:53 -!- kmc has set topic: Sponsored by hexagons of increasing dimension | jsvine is doing an esolang survey!: https://docs.google.com/forms/d/1OvEsdBioOFcXFAiscO34kctUWKs3dWQs5-ZouXdwy9Q/viewform | logs: http://codu.org/logs/_esoteric & http://tunes.org/~nef/logs/esoteric/.
18:45:36 <zzo38> When do you expect oerjan on today?
18:56:44 <HackEgo> olist (905): shachaf oerjan Sgeo FireFly
18:56:47 <shachaf> zzo38: Thanks for reminding me!
19:03:49 <kmc> ##crypto-drugz
19:04:01 <kmc> what's to expect re: ørjan
19:05:05 <shachaf> zzo38: fizzie can surely make you graphs and compute averages of oerjan's average connection time and so on
19:05:20 <shachaf> So now we've reduced the problem to "When do you expect fizzie on today?".
19:15:17 <fizzie> I think I have already made that graph.
19:15:47 <fizzie> http://zem.fi/ircvis/esoteric/people_tod.html and then select only oerjan.
19:16:42 -!- mnoqy has joined.
19:16:44 <fizzie> It would seem that oerjan's usual time of arrival is in approximately 19-20 UTC, from which I deduce he should be arriving any moment now.
19:17:42 <fizzie> Then again, last time he came in it was at 21 UTC, so YMMV.
19:19:49 <fizzie> I guess if I select only the year 2013, that matches reasonably well.
19:21:07 <fizzie> (It might be that weekends are different; unfortunately, that particular graph does not really account for it.)
19:21:37 <elliott> I thought we'd established that oerjan is on a 25-hour schedule
19:28:14 -!- sacje has quit (Ping timeout: 240 seconds).
19:29:06 -!- carado has joined.
19:29:28 -!- sacje has joined.
19:33:41 <Vorpal> fizzie, could we get a 3D plot with number of messages, time of day, and year?
19:34:14 <fizzie> I'd just plot that as a shaded 2D surface.
19:34:24 <Vorpal> fizzie, So we could see, as a HTML5-rotatable canvas fancy thingy of course, how the time of day behavior changed over time
19:34:44 <fizzie> WebGL thing, then it's very future.
19:36:27 <Vorpal> fizzie, I guess that is too much work
19:36:28 <fizzie> I've recently taken a peek at some WebGL things, they have this thing where they write the (OpenGL ES) shaders with <script type="x-shader/x-fragment"> and <script type="x-shader/x-vertex"> and then have their JavaScript WebGL thing go and extract those shader sources out of the DOM.
19:36:57 <fizzie> Because that's what WebGL spec refers to.
19:37:07 <Vorpal> Why on earth not use the full OpenGL?
19:37:08 <fizzie> Not that the GLSL side has any differences, I think.
19:37:22 <Vorpal> Sure? What about geometry shaders?
19:37:37 <Vorpal> Or tessellation shaders (or whatever the name was)
19:38:09 <fizzie> Well, I mean, differences to some version of OpenGL; didn't ES X.0 lift GLSL from regular OpenGL Y.0? Or maybe it's more complicated than that.
19:38:15 <fizzie> As to why ES, presumably because it's simpler.
19:38:44 <fizzie> It's also OpenGL ES 2.0, not 3.0.
19:39:00 <Vorpal> I really don't talk as much as I did in say 2010 or so hm
19:39:01 <fizzie> (I think ES 3.0 includes a newer version of GLSL.)
19:39:09 <Vorpal> Guess that is the effect of having a job
19:39:49 -!- epicmonkey has quit (Ping timeout: 248 seconds).
19:40:56 <Vorpal> fizzie, is "number of characters" per message or in total?
19:41:28 <Vorpal> I would be interested to see if there was any statistically significant change in letters per line for the time of day
19:45:30 <fizzie> I don't think I track "number of characters per message at different times of day" at the moment.
19:45:38 <fizzie> There are so many possible combinations of things.
19:46:56 <fizzie> There's the "number of characters per message" graphs, but those are per person.
19:47:33 <Vorpal> fizzie, do you compute any statistical significances anywhere?
19:47:55 <fizzie> That's so frequentist. :p
19:49:01 <fizzie> Also I see these haven't been updated since last April; I think it's time to rerun.
19:50:41 -!- nooodl_ has joined.
19:53:59 <fizzie> Heh, my unfortunate "internet broke at home the day I left for vacation" event is quite visible in the general activity statistics for early June.
19:54:06 -!- nooodl has quit (Ping timeout: 264 seconds).
19:54:53 <Vorpal> fizzie, If you just look at 2013, the group of people who speaks most is FAR less than it used to be compared to [other]
19:55:38 <elliott> fizzie: I like how I'm special enough to be selected by default.
19:56:11 <elliott> also the plot doesn't seem to work here :(
19:56:27 <Vorpal> fizzie, I'm updating the ChangeLog for cfunge, and I'm looking at "Removed scaling of coordinates from TURT." and have no idea what that is about
19:56:34 <fizzie> elliott: It's a completely objective selection, not contrived at all, and I just happened to be included.
19:56:56 <fizzie> elliott: (You'd be included by any metric, I think.)
19:59:08 <fizzie> I still haven't made a proper color selection for that handcrafted canvas graph. It's just evenly spaced hues *in order* at the moment, which doesn't make all that much sense, since it puts similar colors next to each other.
19:59:38 <elliott> fizzie: especially the "coolest people" metric.
20:00:46 <fizzie> There's a rather big shachaf component in the time-of-day graph if you turn on "normalized" and look only at 2013. I suppose that's partly the time zone aspect, but it's still quite an increase over time.
20:01:45 <fizzie> (Same applies to kmc.)
20:02:14 <elliott> do I need anything special to see the graphs?
20:02:27 <Vorpal> elliott, works in chromium for me
20:02:53 <fizzie> elliott: It *should* be just regular javascript and canvas, but the time-of-day thing is not really built on any libraries, so I could've easily done something non-compatible.
20:03:51 <elliott> I just see blankness, using whatever the latest stable Chrome is
20:04:26 <fizzie> Anything in the inspect-element/console tab?
20:04:45 <elliott> huhhh going back to the page fixed it
20:04:46 <fizzie> It's an ircnet channel for our... uh, what's the English word for first-year university students?
20:05:25 <elliott> it would be nice to have something to see how the schedule changes over time more fluidly than just clicking the years
20:05:36 <elliott> like a continuous animation where one frame is a day or something
20:05:56 <fizzie> Anyway, our freshpeople were divided into reasonably-sized groups with a couple of senior "mentor" sort of people assigned; our group had an IRC channel.
20:06:02 <Vorpal> <elliott> it would be nice to have something to see how the schedule changes over time more fluidly than just clicking the years <-- I suggested a rotatable WebGL 3D-graph for it above
20:06:10 <Vorpal> Plotting it as a surface
20:06:11 <zzo38> I think ircnet support more channel types, so if you don't want netsplit channel takeovers then don't use # type channels (all other types are safe, for different reasons).
20:07:42 <fizzie> zzo38: I think the channel might predate ircd 2.10, though I'm not sure.
20:07:43 <zzo38> Vorpal: Perhaps better would be, download the database and plot it using the software on your own computer to make whatever graph you want, in whatever format you want.
20:07:59 <zzo38> fizzie: Ah, maybe.
20:08:32 <fizzie> I don't really make downloadable "raw" dumps at the moment, primarily because no-one's asked.
20:09:05 <fizzie> The database where those activity-per-time-of-day and other such statistics are aggregated is, I think, on a month level.
20:09:13 <fizzie> (It's a sqlite thing.)
20:10:17 <fizzie> (Well, sqlite thing with nasty binary blobs in one column, it's not terribly user-friendly.)
20:10:21 <zzo38> Well, a SQLite database is the thing I was going to suggest anyways, so that works. (And then the only next thing to make, is a SQLite extension library for plotting graphics. I already made one having some useful mathematical stuff)
20:10:33 <Vorpal> fizzie, looking at the changelog I might do a release, though since it has been so long I'm not sure I can remember where exactly I uploaded all the stuff
20:10:39 <zzo38> fizzie: What data is stored in the binary blobs?
20:11:40 <Vorpal> zzo38, given the amount of data I would suggest using postgresql or such instead
20:11:55 <fizzie> Vorpal: This is aggregated statistics, it's not all that much data.
20:12:22 <fizzie> (It's generated from the PostgreSQL log db.)
20:13:43 <zzo38> But don't all the other SQL databases use a server?
20:14:44 <fizzie> zzo38: Well, different things, in different tables. But e.g. in the "time-of-day statistics", the binary blob for one month is a 24*60*2*(n+1)-element vector of integers that basically forms a (24*60)x2x(n+1) three-dimensional structure, where one dimension (the one sized 24*60) is minute-of-day, one (sized n+1) is the "nickname" dimension (there are n nicks, plus "other"), and the 2-sized one ...
20:14:50 <fizzie> ... selects whether the stored integer is a count of messages or a count of characters.
20:15:26 <zzo38> I suppose you could still read them using a virtual table module, possibly.
20:16:13 <Vorpal> fizzie, why sql at all
20:17:40 <fizzie> Vorpal: It was a convenient place to store all those blobs, is about all. (E.g. the "tod" table has one such vector for each month, with key "YYYY-mm", and also the precalculated sum with key "YYYY", which is where the JSON files for the web plots are generated from.)
20:17:53 <Vorpal> What good open source hosting for hg is there btw?
20:18:01 <Vorpal> Is bitbucket any good?
20:18:03 <fizzie> (Also the plots generated with RRDtool use RRDtool's own database files.)
20:18:08 <fizzie> I know people who like bitbucket.
20:18:27 <fizzie> We used it (some years ago) for a university project, and it was quite okay.
20:18:38 <fizzie> Did they support Git too these days?
20:18:52 <Vorpal> I think they do yes, but I have no personal interest in git
20:19:10 <Vorpal> All I want is some decent hg hosting, on par or better than launchpad is for bzr
20:19:26 <fizzie> Huh, Atlassian bought Bitbucket in 2010? News to me.
20:19:28 <zzo38> With a few additional functions beyond the basic SQLite, you could probably use it for statistics very good even. (In some cases, you don't even need such extra functions.)
20:21:06 <Vorpal> fizzie, wow looking at postgresql here in aptitude, there is a whole lot of extension modules for it, adding gmp style integers as a native data type and what not
20:21:06 <fizzie> Wasn't there also someone (Gregor? Some open-source project?) who used GitHub for "primary" hosting with that hg-git bridgery thing?
20:21:19 <zzo38> (There are other extensions of SQL, such as procedural SQL, but I don't find procedural SQL to be at all useful. A more useful extension might be first-class database objects.)
20:21:51 <Gregor> fizzie: I use bitbucket primarily and then GitHub is a mirror of that.
20:22:53 <Vorpal> Gregor, so what are your opinion of those two services?
20:22:55 <elliott> I forget which way around catseye does it
20:23:07 <elliott> github sort of officially support that hg-git thing, I think.
20:23:43 <Vorpal> Not sure if all hg features can be mapped to git and vice versa?
20:23:44 <Gregor> Both are fine and dandy, but since git is one of the worst pieces of software I've ever had the mispleasure of using, I use bitbucket.
20:24:29 <Vorpal> I'm used to using MQ a *lot* for organizing what I'm working on at work. But I guess that is just local stuff really hm, so that should work fine
20:24:54 <Gregor> And hg-git is very, very good.
20:25:02 <Gregor> It's certainly a better git client than git, but that's not saying much.
20:25:11 <Vorpal> Gregor, I read something exciting in some recent hg changelog about versioned history editing.
20:25:19 <Vorpal> Haven't tried it yet, looked interesting
20:29:00 -!- Taneb has joined.
20:29:33 <Taneb> Aah I have had too much alcohol
20:29:33 <zzo38> fizzie: Have you used any extensions to SQLite or just the basic program?
20:30:34 <Taneb> I think this is the first time I've been REALLY drunk
20:31:06 <kmc> how do you like it
20:31:16 <Taneb> kmc, two hours ago it was great
20:31:29 <fizzie> zzo38: I have just used the basic SQLite.
20:32:50 <zzo38> fizzie: The basic SQLite functions cannot easily deal with binary blobs and so on, and some kinds of statistics don't work very well either with the basic SQLite. Which features of SQLite did you use?
20:32:54 <kmc> Taneb: make sure to drink a lot of water
20:32:56 <olsner> Taneb: it may be even better tomorrow
20:32:59 <kmc> what's not-great about it now?
20:34:57 <zzo38> In SQLite, triggers always run in the reverse order that they were defined, as far as I can tell, and I do not know if this is documented. However, this is a very useful feature, I think, that triggers do run this way; I think it is more useful than running them in forward order. It means you can run a base SQL file and then add another file with overrides a few cases. And if you do want to be able to add triggers afterward, you can do that too!
20:35:53 -!- atriq has joined.
20:36:15 -!- Taneb has quit (Disconnected by services).
20:36:21 -!- atriq has changed nick to Taneb.
20:36:25 <Taneb> I am going to be hung over I can tell
20:36:41 -!- Taneb has changed nick to atriq.
20:37:01 <atriq> @tell Taneb check the logs for about half 9 last night, you were drunk as a skunk
20:37:48 <kmc> atriq: drinking a lot of water is the way to avoid / mitigate that
20:38:00 <atriq> Yeah, drank two pints
20:38:11 <atriq> Think I threw most of that up again
20:39:51 <fizzie> zzo38: I really just use SQLite for storage. The blobs are manipulated by Python scripts that update them (based on logs) or read them (and generate JSON objects of selected data).
20:40:21 -!- copumpkin has quit (Ping timeout: 264 seconds).
20:40:41 <fizzie> atriq: If you retain 95% of the water you drink, you just need to repeat the procedure 20 times.
20:40:52 <fizzie> Er, I mean, throw up 95%.
20:40:58 -!- copumpkin has joined.
20:41:12 <fizzie> I'm not drunk at all (well, at least not noticeably), and still can't count.
20:41:55 <atriq> I feel like I am going to throw up again, brb
20:43:52 -!- douglass has joined.
20:44:16 -!- doesthiswork has quit (Quit: Leaving.).
20:44:53 <Vorpal> atriq, did you learn to not drink as much from this?
20:45:00 <kmc> atriq: oh dear
20:45:06 <kmc> well just keep drinking water, its cheap
20:45:10 <Vorpal> atriq, If so it has been a valuable lesson in your life.
20:45:20 <elliott> glad we have Vorpal to moralise on this and every occasion vaguely relating to everything intoxicating
20:45:34 <Vorpal> elliott, it is my job,
20:45:37 <kmc> should i do bonghits to annoy Vorpal
20:45:38 <atriq> elliott, you are practically me
20:45:54 <Vorpal> Btw, someone who has PHP installed, can they confirm this evaluates to "b": <?php echo (TRUE ? "a" : TRUE ? "b" : "c")."\n"; ?>
20:46:01 <kmc> atriq: so what were you up to earlier tonight
20:46:06 <Vorpal> I'm not sure I believe PHP is *that* stupid
20:46:06 <fizzie> If elliott drinks water, will it help atriq's future hangover?
20:46:11 <Vorpal> someone I know claimed that
20:46:16 <Vorpal> don't have it installed of course
20:46:25 <elliott> atriq: am I theoretically you
20:46:27 <fizzie> Vorpal: It evaluates to b.
20:46:35 <Vorpal> fizzie, how the hell does it end up as that
20:46:38 <atriq> kmc, well it started as a Marie Curie Foundation/whatever picnic
20:46:39 <Vorpal> it makes no bloody sense
20:46:39 <fizzie> Vorpal: http://sprunge.us/UZRg
20:46:53 <atriq> Then we stole/won all the wine from the tombola and headed to the pub
20:46:55 <comex> Vorpal: precedence
20:47:01 <comex> (TRUE ? "a" : TRUE) ? "b" : "c"
20:47:01 <atriq> elliott, I don't think so
20:47:03 <fizzie> Vorpal: It's (TRUE ? "a" : TRUE) ? "b" : "c".
20:47:20 <fizzie> Arguably, associativity more than precedence.
20:47:53 <atriq> After we got to the pub I had two glasses of Pepsi and a pint of Stella
20:48:07 <atriq> Then between the five of us we drank 3 bottles of wine
20:48:22 <atriq> Everyone else had some Bucks' Fizz or whatever
20:48:31 <atriq> But I didn't because it was orange flavoured
20:48:35 <atriq> Not keen on orange
20:48:43 <fizzie> "Gin Fizz" is my favourite dickbutt (slang for cocktail) because it's like my nickname.
20:49:44 <kmc> hehe dickbutt
20:50:14 <atriq> I don't deserve to read all my webcomics right now
20:50:24 <atriq> Because I don't know if I will remember them
20:50:28 <atriq> I will wait until morning!
20:51:29 <atriq> I am glad I didn't bring ID otherwise I would have drank more
20:52:38 <atriq> I am eight months older than you elliott
20:54:05 <atriq> Which means you are 17 but almost 18
20:55:12 <atriq> Future Taneb! Do jsvine's survey when you are sobre!
20:55:41 <lambdabot> monochrom says: I am 17-ary, going on 18-ary, I can take curry of you
20:56:08 -!- atriq has quit (Quit: Leaving).
21:08:41 -!- oerjan has joined.
21:09:08 <fizzie> It seems that the speculations about oerjan's time of arrival were more or less correct.
21:13:26 <zzo38> fizzie: So have you not written programs in SQL then? If you don't write the programs in SQL then why do you need SQL?
21:14:11 <fizzie> zzo38: I don't think I "need" SQL, but it was a convenienter way to store the blobs than individual files.
21:14:31 <kmc> sqlite is the missing datastructures library for C
21:14:33 <fizzie> (Also I think very many people use SQL databases in conjunction with programs not written in SQL.)
21:14:44 <zzo38> Yes, it does help with that purpose, at least.
21:17:05 <zzo38> I, however, tend to use SQL databases with programs written in SQL, although it may just be a file of data and then I can write queries on it, or it may be a more sophisticated thing, such as the Z-Comp database; all the statistics, formatting, and logic to read the fields of a ifMUD object and make them into the database format, are all written in SQL.
21:18:25 <fizzie> Vorpal: Incidentally, here's a quick sketch of how the overall "messages per time of day" total has evolved as a function of time: https://dl.dropboxusercontent.com/u/113389132/Misc/20130727-tmp.png
21:18:28 <zzo38> So I suppose you aren't using triggers and views and that stuff?
21:18:29 <fizzie> Vorpal: (The X axis is minute-of-day from 0 to 24*60; the Y axis, from bottom to top, is index of month, starting from 0 = '2002-12' up to 127 = '2013-07'.)
21:18:32 <fizzie> Vorpal: (It would be possible to do the JavaScript-driven "select people" kind of thing, but one problem there is data sparsity; there's already not all that much per-minute-of-day-per-user samples for robust statistics at the year level, let alone months.)
21:21:51 <fizzie> There seem to be some peaks in the "morning" around what seem to be close to summers of 2011 and 2013, but other than that there aren't any terribly clear patterns.
21:22:59 <fizzie> (Oh, forgot to mention that it's normalized so that the value for each month's highest-activity minute equals 1.)
21:24:42 <zzo38> If you only need to make a database and don't need to write any program in SQL, then using SQL seems to be too much for what is being done.
21:27:25 <fizzie> I didn't really feel any pressing need to use something like BDB here. Besides, it's convenient in the stats-generating program to be able to do things like for date, blob in db.execute("SELECT date, blob FROM tod WHERE length(date) = 4 ORDER BY date DESC"): ... to iterate over blobs corresponding to years, in order.
21:28:28 <zzo38> Yes, you can do things like that, too
21:30:30 <zzo38> But if you are using in another program (such as a C program), I would think using SQL for its databases then becomes useful if it can take queries from the user or programs from the user so that the user can define the database file with views/triggers in it; this can be used as a way to extend programs using databases.
21:30:36 <Vorpal> fizzie, why not do it for a longer period of time?
21:30:44 <ion> http://www.reddit.com/r/knives
21:31:47 <Vorpal> ion, that is obviously a joke given that almost all images are the same, and the one that isn't is a spoon
21:32:04 <zzo38> It seems to me that SQL is not a bad programming language for things using a lot of database, and it is ideal for some kinds of computer RPG style games.
21:32:26 <zzo38> SQL can be good for a lot of other things too.
21:32:28 <fizzie> Vorpal: What longer period of time?
21:32:52 <fizzie> Vorpal: Oh, you mean instead of minute?
21:32:59 <Vorpal> fizzie, 2012 is not that different from 2013 I think
21:33:05 <Vorpal> I would like to see from say 2007 or so
21:33:18 <fizzie> Vorpal: Uh... that's 2002 to 2013.
21:33:24 <fizzie> I don't have data for longer than that.
21:33:26 <olsner> Vorpal: someone got unfairly banned from /r/knives, so the whole of reddit is pitching in to make justice
21:34:01 <Vorpal> fizzie, oh 2002 I read it as 2012
21:34:12 <Bike> operation iraqi freedom?
21:35:44 <fizzie> On another channel, where there's a guy who says always the same thing every morning when he arrives at work, and another thing when he leaves, I make a periodically updating graph of the timing of that; it's kind of funky-silly: http://users.ics.aalto.fi/htkallas/myllymaa.png
21:36:32 <olsner> did you have a graph over "hi" in #esoteric too?
21:36:38 <Vorpal> fizzie, nice, I hope he has the humor to take that
21:37:09 <fizzie> olsner: I don't think I have. Greetings are less structured here, I think.
21:41:07 <HackEgo> fizzie: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
22:11:44 <fizzie> Vorpal: Here's another random plot: https://dl.dropboxusercontent.com/u/113389132/Misc/20130727-presence-vorpal.png
22:16:05 <fizzie> Each pixel corresponds to a 3-minute segment of the last 1800 days (about five years), so that X coordinate gives the day (yesterday at right edge), Y coordinate the time-of-day (UTC midnight at edges, morning on the top side); and it's white if you said something during that 3-minute interval, black otherwise.
22:24:48 <fizzie> For comparison purposes:
22:24:50 <fizzie> https://dl.dropboxusercontent.com/u/113389132/Misc/20130727-presence-fizzie.png
22:24:54 <fizzie> https://dl.dropboxusercontent.com/u/113389132/Misc/20130727-presence-elliott.png
22:24:58 <Vorpal> fizzie, So, you would think that the point of #pragma STDC/compilername ... would be that other compilers would ignore it, right?
22:25:02 <fizzie> (The latter is especially worth a view.)
22:25:08 <Vorpal> not so for pathscale's compiler
22:25:13 <Vorpal> ../lib/fungestring/funge_strstr.c:60: error: #pragma GCC diagnostic not allowed inside functions
22:26:31 <Vorpal> fizzie, there are clear patterns in there
22:26:33 <kmc> what's that pragma do
22:26:35 <Vorpal> fizzie, also what about me?
22:26:46 -!- JesseH has quit (Ping timeout: 268 seconds).
22:26:51 <Vorpal> kmc, in my case, just disable a warning that was a false positive in that case
22:27:24 <Vorpal> kmc, it has the syntax GCC diagnostic [warning|error|ignored] "-Wwhatever" OR GCC diagnostic [pop|push]
22:27:47 <kmc> i love it when things are stack based
22:27:50 <Vorpal> kmc, I guess I could use some macros and _Pragma
22:28:04 <kmc> hm is _Pragma a decl for pragmas or something?
22:28:12 <kmc> useful 'cause you can't produce a #pragma from a macro
22:28:28 <Vorpal> kmc, see section 6.10.9 in ISO/IEC 9899
22:28:54 <kmc> i don't have a copy handy :/
22:29:15 <Vorpal> A unary operator expression of the form:
22:29:15 <Vorpal> _Pragma ( string-literal )
22:29:15 <Vorpal> is processed as follows: The string literal is destringized by deleting the L prefix, if
22:29:15 <Vorpal> present, deleting the leading and trailing double-quotes, replacing each escape sequence
22:29:15 <Vorpal> \" by a double-quote, and replacing each escape sequence \\ by a single backslash. The
22:29:16 <Vorpal> resulting sequence of characters is processed through translation phase 3 to produce
22:29:18 <Vorpal> preprocessing tokens that are executed as if they were the pp-tokens in a pragma
22:29:20 <Vorpal> directive. The original four preprocessing tokens in the unary operator expression are
22:29:30 <Vorpal> A directive of the form:
22:29:30 <Vorpal> #pragma listing on "..\listing.dir"
22:29:30 <Vorpal> can also be expressed as:
22:29:32 <Vorpal> _Pragma ( "listing on \"..\\listing.dir\"" )
22:29:48 <Vorpal> The latter form is processed in the same way whether it appears literally as shown, or results from macro
22:29:49 <Vorpal> #define LISTING(x) PRAGMA(listing on #x)
22:29:49 <Vorpal> #define PRAGMA(x) _Pragma(#x)
22:29:49 <Vorpal> LISTING ( ..\listing.dir )
22:29:56 -!- variable has quit (Ping timeout: 260 seconds).
22:29:56 <Vorpal> kmc, there is the entire section
22:30:02 <Vorpal> kmc, without formatting making it hard to read
22:30:28 <Vorpal> btw, what the hell is a pp-token? I haven't really read that part of the spec I think
22:30:32 <kmc> is that new in C99?
22:30:42 <Vorpal> kmc, no clue, I don't care about anything older anyway
22:31:07 <fizzie> Vorpal: Yours was the first link.
22:31:17 <Vorpal> fizzie, oh missed that somehow
22:31:51 <Vorpal> fizzie, the lines in elliott's image, how far apart are they? Hard to tell
22:32:14 <fizzie> I'd guesstimate some weekly periodicity.
22:32:20 <Vorpal> It varies a bit yes but hm
22:33:07 <fizzie> That'd be somewhere in 2010, I think.
22:33:10 <Vorpal> fizzie, in my case you can easily see when I booted to windows, it is almost completely black then. Do you merge my nick VorpalPhone btw?
22:34:06 <Vorpal> fizzie, your sleep schedule was usually very good, only breaking down a day here or there
22:34:42 <Vorpal> Even mine broke down a bit more than your
22:34:58 <fizzie> I think it'd be worse if the graph went more than ten years back (and used other channels, since #esoteric wasn't so active then); I've been sleeping reasonably regularly lately.
22:35:19 <elliott> although I don't know what it means
22:35:22 -!- carado has quit (Ping timeout: 246 seconds).
22:36:00 <Vorpal> fizzie, what about ais?
22:36:03 <fizzie> And I don't seem to merge VorpalPhone in this; it's just ['anmaster_ipv6', 'anmaster', 'vorpal']. (I think I took some top-activity names and merged duplicates there, I guess VorpalPhone hadn't said all that much.)
22:36:03 <elliott> pretty interesting although frankly I can't figure out what mine means
22:36:07 <elliott> other than "I sleep all fucked"
22:36:20 <Vorpal> elliott, looks like you had a weekly cycle or such quite often
22:36:22 <elliott> sort ofi nteresting that I apparently slept for a while
22:36:27 <elliott> and then gave up sleeping for a bit
22:36:34 <elliott> and then disappeared (uh, I guess that was the unit stuff)
22:36:48 <Vorpal> fizzie, also anmaster_ and vorpal_
22:36:53 <elliott> this needs year markings I think :P
22:37:04 <Vorpal> elliott, you can measure the pixels
22:37:06 <fizzie> Vorpal: That goes automatically in this framework.
22:37:20 <fizzie> Vorpal: I'll generate ais523 now, but it'll take a few minutes.
22:37:31 <zzo38> I think not making macros with macros is rather a problem with the macro system in C, so instead of adding _Pragma I would have improve the preprocessor. (I wrote a proposal on how this can be done.)
22:37:42 <Vorpal> fizzie, oh? You should add a suitable index for this then I guess to the database
22:38:27 <elliott> fizzie: it would be interesting if you could merge the windows into general periods of activity
22:38:33 <elliott> fizzie: so that you could estimate actual blocks of awakeness and sleep
22:38:39 <fizzie> Vorpal: I think it's mostly because I wrote the quick script so that it asks for logs one day at a time. Getting all messages of a particular person at a time on one go would probably be reasonably fast.
22:39:17 <elliott> I dunno, it would just be sort of interesting to analyse my sleep -- if there are any patterns that would be valuable information for me (perhaps I should start logging it, although I guess I already do with irssi /aways).
22:40:12 <fizzie> Also I'll try to polish up a version (maybe something scrollable, and with axis labels, and perhaps that merging of regions client-side) for all the nicks in the existing graphs integrated with the usual graph updates.
22:40:19 <fizzie> (It's at 2012-09-01 now.)
22:41:03 <fizzie> Phew, I think all this computing raises the temperature here.
22:42:42 <fizzie> https://dl.dropboxusercontent.com/u/113389132/Misc/20130727-presence-ais523.png
22:42:49 <fizzie> That's quite a lot sparser.
22:43:01 <Vorpal> does anyone know if string merging ("foo" "bar") takes place inside of _Pragma()?
22:43:10 <Vorpal> It would be really convenient if it did
22:43:31 <fizzie> The translation phases list probably knows.
22:44:11 <fizzie> "_Pragma unary operator expressions are executed" in phase 4, while "adjacent string literal tokens are concatenated" in phase 6, so probably not.
22:44:17 -!- carado has joined.
22:44:45 <Vorpal> fizzie, ouch, so no way to do this then:
22:44:48 <fizzie> Unless _Pragma handling explicitly does it, let's check.
22:44:49 <Vorpal> # define FUNGE_WARNING_IGNORE(warning) \
22:44:49 <Vorpal> _Pragma("GCC diagnostic push") \
22:44:49 <Vorpal> _Pragma("GCC diagnostic ignored \"" warning "\"")
22:45:53 <fizzie> "A unary operator expression of the form: _Pragma ( string-literal ) --" it does not appear so.
22:46:40 <fizzie> There's an example which sort of suggests that you might be able to accomplish that with a clever enough use of macro expansion and stringizing.
22:47:44 <Vorpal> #define LISTING(x) PRAGMA(listing on #x)
22:47:44 <Vorpal> #define PRAGMA(x) _Pragma(#x)
22:47:44 <Vorpal> LISTING ( ..\listing.dir )
22:47:58 <fizzie> Well, the general idea would be to use a S(foo bar baz) macro in place of a "foo bar baz" string literal, but the "s in the string could be a problem.
22:48:32 <Vorpal> #pragma GCC diagnostic push
22:48:32 <Vorpal> #pragma GCC diagnostic ignored "-Wcast-qual"
22:48:33 <Vorpal> #pragma GCC diagnostic pop
22:48:42 <Vorpal> is what the original code might look like
22:49:08 <fizzie> You probably can't have a " preprocessing token all alone in there to be stringized.
22:49:33 <Vorpal> Guess I need a unique macro for each one I want to ignore
22:51:08 <fizzie> If you don't mind including the quotes in the macro parameter -- as in, FUNGE_WARNING_IGNORE("foo") -- I think it can work.
22:51:14 <zzo38> It would be more useful if macros are also allowed to define macros.
22:51:28 <fizzie> http://sprunge.us/aVQW
22:51:51 <fizzie> If you just remove the ""s around "_Pragma(" and ")" I think that should expand to a _Pragma operator with the contents you need.
22:51:56 <fizzie> (Disclaimer: may not work.)
22:52:55 <fizzie> It also sort of relies on nobody #defining any macros called "GCC", "diagnostic" or "ignored", since those will get expanded too as they're not safely inside a string literal. :p
22:53:23 <Vorpal> /home/arvid/src/own/cfunge/trunk/lib/fungestring/funge_strchr.c: In function ‘funge_strchr’:
22:53:23 <Vorpal> /home/arvid/src/own/cfunge/trunk/lib/fungestring/funge_strchr.c:31:0: warning: ignoring #pragma S [-Wunknown-pragmas]
22:53:23 <Vorpal> /home/arvid/src/own/cfunge/trunk/lib/fungestring/funge_strchr.c:33:11: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
22:53:37 <Vorpal> (just used your names directly for testing)
22:54:15 <fizzie> Hrmm, in that case I think it needs a slight change: make it #define S(x) _Pragma(#x) instead, and remove the _Pragma() from W.
22:54:59 <Vorpal> #define S(x) _Pragma(#x)
22:54:59 <Vorpal> #define W(w) S(GCC diagnostic ignored w)
22:55:14 <fizzie> Yes. And possibly it will need the usual extra level of indirection, as in #define S(x) _Pragma(#x) #define T(x) S(x) #define W(w) T(GCC diagnostic ignored w)
22:55:24 <fizzie> Was too tired to actually think it through. :p
22:55:28 <Vorpal> fizzie, well I had a level of indirection anyway
22:55:35 <Vorpal> #define S(x) _Pragma(#x)
22:55:36 <Vorpal> #define W(w) S(GCC diagnostic ignored w)
22:55:36 <Vorpal> #if defined(CFUNGE_COMP_PATHSCALE)
22:55:36 <Vorpal> # define FUNGE_WARNING_IGNORE(warning) /* NO-OP */
22:55:36 <Vorpal> # define FUNGE_WARNING_RESTORE() /* NO-OP */
22:55:37 <Vorpal> #elif defined(CFUNGE_COMP_GCC) || defined(CFUNGE_COMP_CLANG)
22:55:38 <Vorpal> # define FUNGE_WARNING_IGNORE(warning) \
22:55:40 <Vorpal> _Pragma("GCC diagnostic push") \
22:55:44 <Vorpal> # define FUNGE_WARNING_RESTORE() _Pragma("GCC diagnostic pop")
22:55:50 <Vorpal> I will clean that up, figuring out how many levels
22:56:00 <Vorpal> yeah that level is needed
22:58:42 <Vorpal> fizzie, interesting thing:
22:59:10 <Vorpal> fizzie, how do you think that will behave?
22:59:27 <Vorpal> will the if statement properly "parent" the foo() or not?
22:59:35 <Vorpal> My tests shows that it doesn't.
23:02:19 <fizzie> Huh; I would've thought that it should.
23:02:38 <Vorpal> but moving that pragma up one line made the code work
23:02:41 <Vorpal> thus I presume it doesn't
23:03:01 <Vorpal> fizzie, if it matters that #pragma ... was actual two pragmas (push warnings, and then ignore a warning)
23:03:31 <Vorpal> Really? Then what on earth was going on
23:03:45 <fizzie> Preprocessing directives should all be deleted at the end of phase 4, which is well before tokens get turned into statements.
23:03:50 <fizzie> Something strange, presumably.
23:05:23 <Vorpal> fizzie, so, pathscale should now work. If anyone uses it. Doubtful
23:05:32 <Vorpal> Project on github seems mostly dead
23:05:37 <fizzie> Of course the way #pragma is specified -- "causes the implementation to behave in an implementation-defined manner" -- makes it legal to do whatever.
23:06:06 <Vorpal> fizzie, what about #pragma STDC?
23:06:11 <Vorpal> that is not implementation defined
23:06:27 <fizzie> That, I think, should never affect parsing of statements.
23:06:41 <zzo38> O, so does clang support GCC pragmas?
23:07:14 <Vorpal> zzo38, these ones at least yes
23:07:39 <Vorpal> zzo38, or at least it didn't complain, and everything seemed to work
23:07:48 <fizzie> http://sprunge.us/MCOY -- that seems to work as expected.
23:08:06 <Vorpal> If the preprocessing token STDC does immediately follow pragma in the directive (prior
23:08:06 <Vorpal> to any macro replacement), then no macro replacement is performed on the directive, and
23:08:06 <Vorpal> the directive shall have one of the following forms
23:08:21 <Vorpal> Interesting, that "no macro replacement"
23:08:44 <Vorpal> fizzie, hm, what about a GCC diagnostic pragma?
23:09:04 <zzo38> O, so if it isn't STDC, then it might or might not be macros, because it is implementation-defined, I suppose.
23:09:08 <kmc> clang is nearly bug-for-bug compatible with GCC
23:09:20 <kmc> they have -fheinous-gnu-extensions
23:09:32 <Vorpal> kmc, true, I did hit a few issues at some point I remember
23:09:39 <kmc> "error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions"
23:09:44 <fizzie> Vorpal: It indeed behaves differently: http://sprunge.us/YYBC
23:09:45 <Vorpal> kmc, is it documented exactly what it does?
23:10:05 <fizzie> Vorpal: You could perhaps even call that a QoI issue. (It perhaps doesn't quite merit the word "bug".)
23:10:21 <fizzie> Quality-of-Implementation.
23:10:57 <fizzie> Presumably there's something about the GCC diagnostic pragmas -- perhaps in the way they're stored in the resulting IR representations -- that make them count as a statement for the if.
23:12:22 <fizzie> Also, I added https://dl.dropboxusercontent.com/u/113389132/Misc/20130727-presence-oerjan.png which looks kinda patterny too. (The actual polished for-everyone implementation will still have to wait for some other day, though.)
23:12:25 <Vorpal> fizzie, the problem with the __has_feature and __has_builtin of clang is that nothing else supports that
23:14:36 <fizzie> http://gcc.gnu.org/onlinedocs/gcc-4.8.1/gcc/Diagnostic-Pragmas.html -- see the example given for #pragma message at the end, with the DO_PRAGMA(x) _Pragma(#x) macro -- seems that it's "common practice" (FSVO common) to do the concatenation like that.
23:15:31 <fizzie> (Though their example has actual string literals concatenated somewhere in the macro expansion process, I'm not terribly sure that should work.)
23:16:20 <fizzie> Maybe it's part of the handling of #pragma message in particular, since it says "string" in it, and has that #pragma message "Compiling " __FILE__ "..." too.
23:16:55 <Vorpal> fizzie, this looks cool http://clang.llvm.org/docs/AddressSanitizer.html
23:17:05 <Vorpal> Also that output looks so similar to valgrind
23:17:42 <fizzie> I've heard people praise the clang FooSanitizers.
23:17:50 <Vorpal> they have more of them?
23:17:53 <Vorpal> I need to look at that
23:18:08 <fizzie> They have a MemorySanitizer and a ThreadSanitizer, at least.
23:18:32 <fizzie> (I don't know which ones are good and/or actively developed.)
23:19:43 <fizzie> I also remember hearing they included some of those sanitizers in some other thing recently, but not what.
23:21:57 <fizzie> Right, GCC 4.8 includes copies of AddressSanitizer and ThreadSanitizer.
23:22:56 <Vorpal> Really? Straight copies?
23:23:01 <fizzie> And tsan is based on valgrind? Something like that.
23:23:13 <Vorpal> So how does one enable them in GCC 4.8?
23:23:44 <fizzie> Oh, an old version of tsan was based on Valgrind, but the new LLVM-based one isn't.
23:24:40 <Vorpal> gcc-4.8: error: -fsanitize=thread linking must be done with -pie or -shared
23:26:06 <Vorpal> Well cfunge doesn't use threads anyway, so I'll drop that
23:26:33 <Vorpal> And the address one doesn't detect anything
23:26:37 <Vorpal> Nor does valgrind of course
23:27:11 -!- carado has quit (Ping timeout: 246 seconds).
23:27:47 <Vorpal> fizzie, should mess with clang static analysis tomorrow as well, good night
23:28:11 <fizzie> Incidentally, have you compiled cfunge with "-Wsuggest-attribute=stuff" flags?
23:28:43 <Vorpal> fizzie, I have, and I added a bunch of pure and const, I had the old format one for ages (missing-format or whatever)
23:28:51 <Vorpal> does clang have that too?
23:29:26 <fizzie> (Apparently -Wsuggest-attribute=format is a modern-style alias for -Wmissing-format-attribute.)
23:29:55 <Vorpal> yay I added -fsanitize=memory for clang and cfunge just segfaults right away
23:30:06 <Vorpal> Program received signal SIGSEGV, Segmentation fault.
23:30:06 <Vorpal> 0x0000555555579184 in __sanitizer::internal_mmap(void*, unsigned long, int, int, int, unsigned long long) ()
23:30:19 <fizzie> It's so sanitized it doesn't even run.
23:31:18 <Vorpal> $ ./cfunge ../mycology/mycology.b98
23:31:18 <Vorpal> =================================================================
23:31:18 <Vorpal> ==2668==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x000000000000 sp 0x7fffa7db9bb8 bp 0x7fffa7db9bf0 T0)
23:31:19 <Vorpal> AddressSanitizer can not provide additional info.
23:31:38 <Vorpal> gdb suggests it segfaults in 0x0 called by clock_gettime()
23:32:41 <oerjan> <fizzie> (It might be that weekends are different; unfortunately, that particular graph does not really account for it.) <-- more seriously, my moving has shifted things a bit because the nearby restaurant now has later opening hours
23:34:08 <fizzie> Vorpal: Well, they're slightly experimental still, I think.
23:34:30 <Vorpal> fizzie, the gcc ones doesn't crash at least
23:36:48 <Vorpal> fizzie, what is the practical use of the static assert of C11?
23:36:54 <Vorpal> I really need to read up on C11
23:38:18 <Vorpal> Ooh the generic selector thingy looks fancy
23:38:19 <oerjan> <elliott> I thought we'd established that oerjan is on a 25-hour schedule <-- that is also approx. true but although i can wake up at wildly varying times, the time i leave the house is still mostly eveningish
23:38:50 <oerjan> which means that the time i log on after coming back is more stable than my actual sleeping rhythm.
23:40:29 <zzo38> oerjan: The algorithm you told me works; I made it to keep track of the states in the Haskell program, and then I made a C program, and it works. Also, the reason I asked is this is the encoding used for Z-machine texts. Infocom did not know the algorithm and didn't implement it (instead using always state 0), making Graham Nelson believe there is no permanent shifts in version 3.
23:41:07 <oerjan> unless i am actually sleeping throughout the evening, which happens on occasion.
23:41:18 <oerjan> zzo38: what are permanent shifts?
23:41:48 <fizzie> Vorpal: I guess testing for things you can't do on the preprocessor, like ones involving enums or sizeof.
23:41:59 <fizzie> Vorpal: (I think they perhaps got it from C++, where it might have more uses, since there are a lot more constant expressions on that side.)
23:42:01 <zzo38> oerjan: There are two shift codes, and depending on the current state they are temporary (for the next character only), or permanent (until it is changed again).
23:42:15 <Vorpal> fizzie, yeah I can definitely see the point in C++
23:43:25 <fizzie> oerjan: Your plot seems to have some sort of diagonal-like patterning, which I guess would indicate some kind of drifting.
23:43:33 <zzo38> (Graham Nelsons called them shifts and shiftlocks, and said that there are no shiftlocks in version 3. I now know this to be wrong, because I found Infocom's documentation.)
23:43:53 <Vorpal> fizzie, where is oerjan's plot?
23:44:15 <oerjan> fizzie: also the last year has been insane so don't expect patterns to last longer than a couple months or so.
23:44:17 <fizzie> Vorpal: I think I pasted a link; the same naming scheme, anyway.
23:46:12 -!- variable has joined.
23:46:12 <oerjan> fizzie: the interpretation is rather hard without beginning and ending dates hth
23:46:52 <oerjan> i am guessing each vertical line is 24 hours, at least
23:48:42 <fizzie> oerjan: There's an explanation in the logs.
23:48:53 <fizzie> oerjan: It's approx. last 5 years, anyway.
23:49:36 <fizzie> oerjan: (And each column is indeed 24 hours; each pixel is 3 minutes; top/bottom edge is UTC midnight.)
23:49:40 -!- CADD has joined.
23:49:49 <Vorpal> top being the morning side right?
23:51:52 <zzo38> oerjan: You said that a BackFlip program with arrow surrounding some area, makes it not deduce what is inside. Yes, I think that is true, but you can't win them all; that's OK.
23:52:49 <Vorpal> fizzie, I might consider moving to C11 with cfunge, some of the stuff looks really cool
23:55:02 <oerjan> zzo38: yes, and elliott suggested that you could instead of checking if a solution is exactly what you want, check if it has the same effect in all cases. although i thought that would require players to give directions, too. simon tatham's black box puzzle works similarly. although that doesn't have changing internal state.
23:56:54 <oerjan> come to think of it, the changing internal state might make it computationally expensive to check whether a solution really is equivalent, in all cases.
23:57:49 <zzo38> Yes, that is one of the reasons why I just leave it how it is; it is possible that you cannot always earn the maximum score.