←2014-12-23 2014-12-24 2014-12-25→ ↑2014 ↑all
00:01:20 * int-e wonders how horrible a shakespeare style for fungot would be
00:01:20 <fungot> int-e: that is just a value of type is created containing the syntax for mark if he was really gonna ' let' me keep. i will walke my selfe, richard. then, heaven, i love thee well; and, by my friend, c
00:02:09 -!- scarf has joined.
00:02:19 -!- scarf has changed nick to ais523.
00:02:50 <fizzie> int-e: That's 'ss'.
00:03:01 <int-e> ^style ss
00:03:01 <fungot> Selected style: ss (Shakespeare's writings)
00:03:08 <int-e> fungot: sing?!
00:03:09 <fungot> int-e: enter eglamore, siluia. i to beare this away, where my hogshead of wine is, or any such proverb so little kin to the purpose?
00:03:33 <int-e> fungot, hmm
00:03:33 <fungot> int-e: rich. and shall do so: go all which way it will: if we draw lots, he fnord not me. i cut off's head, and follies doth emmew as falcon doth the fowle, is yet in keeping. what she is i' the hams?
00:03:53 <int-e> emmew?!
00:04:01 <int-e> fungot: pray tell us more
00:04:01 <fungot> int-e: alo. irreparable is the losse, i cannot take peace with: no more
00:04:13 <int-e> fungot: I said more, not less!
00:04:22 <int-e> perfect.
00:04:32 <fizzie> That was all.
00:04:40 <int-e> fungot
00:04:50 <int-e> sniff.
00:04:55 <boily> fungot: please answer sir int-e
00:04:55 <fungot> boily: por. in tearmes of friendship with thine enemies. pardon me, cobham, and the cheefe head of this most pompous fnord. the canons haue their bowels full of wrath, and sullen
00:05:14 <fizzie> Ominous.
00:05:23 <boily> Pompous fnord.
00:05:30 <int-e> Oh well, it's not the worst fungot style.
00:05:30 <fungot> int-e: third fisherman. what say you of this man. sirha, i say good queene, possest him with a stake, stood famous edward, still expecting when those dogs of france would fasten on his flesh. anon the death procuring knell begins: off go the cannons, that with some mixtures powerful o'er the blood, yet hath he in him such a minde of honor, truth, nor woman-hood in me else
00:05:41 <int-e> (sms clearly wins *that* title)
00:05:53 <int-e> ^style
00:05:53 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss* wp youtube
00:05:56 -!- callforjudgement has quit (Ping timeout: 264 seconds).
00:06:43 <int-e> "possest him with a stake"
00:06:45 <oerjan> boily: it does not help at all that the colloquial terms for members of the class Bivalvia are en:clam and no:musling
00:06:55 <fizzie> I think that depends on how you define 'worst'; technically speaking, sms works pretty well.
00:07:45 <int-e> fizzie: but it hurts my brain to read any of the results
00:07:47 <boily> oerjan: indeed. tdnhat.
00:08:01 <int-e> that did not help at t?
00:08:10 <boily> all. not t. a.
00:08:30 <boily> (I keep saying “a tall” in my head, instead of “at all”.)
00:11:47 <zzo38> ^style the_worst_style
00:11:47 <fungot> Not found.
00:12:18 <ais523> how often does fungot's fungot style get updated?
00:12:18 <fungot> ais523: demetrius. is caesar yet gone to the hedge for shade, when in the streets he meetes such golden gifts: ile to dinner, and they were left neglected on the quay for more than i'll speak of.
00:13:04 <oerjan> irc and fungot both
00:13:04 <fungot> oerjan: ros. neuer talke to me, master shallow, deepe maister shallow, that no enemy shall euer take aliue the noble brutus is ascended. silence!
00:13:14 <oerjan> (my guess: never happened)
00:13:20 <int-e> ^style oots
00:13:20 <fungot> Selected style: oots (Order Of The Stick)
00:13:36 <int-e> fungot: more?
00:13:37 <fungot> int-e: so, i know, i was, uh, as a provider, i would be as another sword arm this deadly but well-hidden booby trap, goblin friend, and she won't give the their holy power that i now fully believe that ' s, then and told me
00:15:04 <boily> fungot: update, I say!
00:15:04 <fungot> boily: " the life and saving us from the orcs and told me what needed my strength. that now. get haley and i could bring to bear three degrees and... eight.
00:20:50 -!- MoALTz_ has joined.
00:23:45 -!- MoALTz has quit (Ping timeout: 244 seconds).
00:30:09 -!- Solace|zzz has quit (Quit: Connection closed for inactivity).
00:44:35 -!- vanila has joined.
01:01:45 -!- boily has quit (Quit: ELEMENTAL CHICKEN).
01:05:24 -!- callforjudgement has joined.
01:09:25 -!- ais523 has quit (Ping timeout: 265 seconds).
01:30:55 -!- Solace|zzz has joined.
01:32:57 -!- callforjudgement has quit (Read error: Connection reset by peer).
01:33:02 -!- scarf has joined.
01:33:53 -!- G33kDude has joined.
01:34:23 -!- nys has quit (Ping timeout: 240 seconds).
01:37:03 -!- GeekDude has quit (Ping timeout: 272 seconds).
01:38:07 -!- G33kDude has quit (Read error: Connection reset by peer).
01:39:52 -!- dianne has quit (Ping timeout: 256 seconds).
01:40:06 -!- GeekDude has joined.
01:40:13 -!- GeekDude has quit (Changing host).
01:40:14 -!- GeekDude has joined.
01:41:47 -!- dianne has joined.
01:42:48 -!- nys has joined.
01:43:43 <zzo38> Do you have a Christmas tree with birds?
01:45:25 -!- mihow has quit (Quit: mihow).
01:47:55 -!- tswett__ has joined.
01:48:31 -!- mihow has joined.
01:50:32 -!- tswett__ has quit (Client Quit).
01:51:57 -!- mihow has quit (Client Quit).
02:05:27 -!- oren has joined.
02:05:41 <oren> elliott: ever since i learned pinyin i pronounce "xor" as 'shor' hthyh
02:05:52 <elliott> xor's algorithm
02:06:03 -!- arjanb has quit (Quit: zzz).
02:11:40 <oren> aldo in pinyin x normally only appears in cluster "xi"
02:14:18 <oren> or u, like xue "snow" for example
02:17:33 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
02:19:32 -!- nys has quit (Ping timeout: 250 seconds).
02:19:54 -!- nys has joined.
02:20:49 <oerjan> xure thing
02:31:00 <Melvar> I pronounce it /ksoɹ/ or so.
02:31:04 <oren> it also helps for pronouncing "words" like "x11"->'sheleven', "xinit"->'shinit' "xfce"->'shifke'
02:31:41 <oren> "xargs"->'shargs'
02:31:58 <Melvar> That’s easy enough to do if you pronounce it /ks/, unless you don’t speak a language that allows that cluster initially.
02:32:24 <oren> yeah i dunno, not many languages allow that...
02:32:48 <Melvar> German and Greek do.
02:34:57 -!- tswett has joined.
02:34:59 <tswett> Ahoy.
02:35:02 <tswett> So.
02:35:36 <tswett> Intuitively, one would expect that, given any statement in number theory (which is to say, a statement where quantifiers range over the integers), the statement is either provable or non-provable.
02:35:58 <tswett> After all, any given thing is either a valid proof or not a valid proof, right?
02:36:38 <tswett> Except that proofs inevitably rely on axioms.
02:37:39 <Jafet> Is your intuition really that for any bunch of weird symbols, there is another bunch of weird symbols that satisfies one of two complicated relations
02:37:40 <tswett> Some axioms are obviously "true", such as, say, all the axioms of first-order Peano arithmetic.
02:37:58 <tswett> Jafet: not really.
02:38:17 <tswett> Heck, leave off the quotation marks. All the axioms of first-order Peano arithmetic are certainly true.
02:38:20 <oren> "xcalc" i think /kskalk/ would be a lot more brutal than /ʃkalk/
02:38:38 <zzo38> They are true by definition.
02:38:41 <tswett> And then some axioms are "not obviously true", such as the axiom of choice.
02:38:58 <tswett> zzo38: depends on your definition of the integers, I'd say.
02:39:02 <Jafet> The axioms of Peano arithmetic are true in Peano arithmetic
02:39:16 <tswett> If you define them via the axioms of FOPA, then yeah, the axioms of FOPA are obviously true.
02:39:31 <zzo38> The exception if it is inconsistent in which case, everything is valid and it is not proper mathematicals.
02:40:21 <Melvar> oren: Most of the X Window System things I actually pronounce using the name of the letter, /ɛks/.
02:40:29 <vanila> look up godel theory
02:40:53 <Melvar> xargs on the other hand is /ksaɹgz/.
02:41:26 <vanila> just because something is true doens't meant you can prove it
02:41:51 <zzo38> Yes, I know Godel's theory
02:41:52 <oren> vanila: depends on your epistemology
02:42:05 <vanila> zzo38, i wasnt meaning you
02:42:17 <tswett> vanila: right.
02:42:19 <Jafet> tswett: then you cannot have such an intuition about Peano arithmetic either, because you can Gödel-encode any bunch of weird symbols into it
02:42:54 <vanila> oren, re. epistemology take the true natural numbers to start with
02:43:52 <tswett> So what I'm trying to figure out is whether or not there exists some sort of "standard theory of number theory", such that our intuitive notion of provabilty in number theory coincides with provability in STNT.
02:46:27 <Taneb> Jet lag
02:48:18 <quintopia> ?
02:48:40 <Taneb> That was meant to have a :( after it
02:48:49 <Taneb> I just woke up at quarter to three in the morning
02:48:54 <quintopia> i was ? the fact that i had been pinged
02:49:16 <oren> how much state does a finite-state matchine have to have to be useful
02:49:31 <Jafet> What is our intuitive notion of provability?
02:49:33 <vanila> oren, you can recognize binary strings in 2 states
02:49:48 <vanila> hm you could do it in 1 state actually
02:50:01 <vanila> you can recognize (charset)* in one state X
02:50:06 <vanila> with arcs X -> X for each char
02:50:17 <Taneb> quintopia, unless you get pinged by "jet lag" I have no idea
02:50:37 -!- tswett has quit (Ping timeout: 240 seconds).
02:50:49 <elliott> zero states is enough to sit there uselessly
02:50:55 <quintopia> my log window is filled with reconnection attempts and lastlog revealed no clue
02:51:14 <Jafet> I'm a zero-state machine
02:51:16 <oren> isn't intuition more the province of psychology ?
02:51:23 <Taneb> elliott, doesn't a FSA need an initial state?
02:51:49 <J_Arcane> hahahahahahaha cant sleep because wife snores but at least i know how to do my random genrator now
02:52:06 <Taneb> @time J_Arcane
02:52:07 <lambdabot> Local time for J_Arcane is Wednesday, December 24, 2014 4:52:11 AM
02:52:17 <Taneb> J_Arcane, you're in a better position than me
02:52:32 <Taneb> I can't sleep because jet lag, and I'm two hours behind you
02:52:45 <Taneb> And I have no idea how to do your RNG
02:52:54 -!- tswett has joined.
02:52:54 <oren> so for example, suppose i made a language for programming arbitrary FSA's with exactly N bits of state. would 8 bits be useful?
02:53:33 <vanila> no
02:53:48 <vanila> someone might need 9bits
02:54:00 <J_Arcane> Taneb: Racket has continuation-based generators.
02:54:10 <Taneb> Woo
02:54:15 <vanila> hey J_Arcane good work on the BASIC LISP
02:54:18 <J_Arcane> I was too tired to figure out how to use them last night.
02:54:42 <J_Arcane> But I think I can make RANDOMIZE return or define a local generator RND to act as the random number generator.
02:55:08 <J_Arcane> It's not the strictest purity, but at least it's not full of ugly set! statements.
02:55:43 <quintopia> given that experiments have shown that therea are no hidden quantum states, could a true quantum computer be considered a stateless machine?
02:59:27 <zzo38> What does "hidden quantum states" mean and how does an experiment show there aren't any?
02:59:57 <Jafet> If you consider a classical computer stateless, yes
03:00:59 <vanila> isn't a quantum computer just a quantum version of a normal computer
03:01:18 <vanila> like you have the same state - but instead of 1,0 you have compelx linear combinations
03:02:17 -!- tswett has quit (Ping timeout: 240 seconds).
03:10:50 -!- tswett has joined.
03:13:24 -!- tswett has quit (Client Quit).
03:21:03 <oerjan> vanila: there's a lot in that "just". for one thing, it's reversible so you cannot simply delete/overwrite state
03:21:49 <vanila> thats really interesting and important and I wonder how I never really caught onto that before
03:24:01 <J_Arcane> Sweet. I have an xorshift* generator.
03:24:11 <oerjan> and whether you keep a copy of temporary state around can affect the final observed result in the _other_ bits.
03:24:36 <J_Arcane> Now to make some syntax decisions.
03:24:53 <oerjan> (because it prevents different computation paths with the same final result but different temporary state from interfering)
03:27:46 -!- scarf has changed nick to ais523.
03:28:32 <quintopia> anyone want a hat for christmas. i will send you a hat or two.
03:29:21 * oerjan looks at Gregor
03:30:03 <zzo38> quintopia: What color of hats?
03:30:04 <quintopia> gregor is too stylish for outlandish party hats and baseball caps
03:30:15 <oerjan> ah
03:30:43 <quintopia> zzo38: they are mostly dark-coloured. blue and black. there's some yellow and white. some are woven from straw.
03:31:03 <quintopia> these ones are woven from straw and garlanded with silk flowers
03:31:14 <quintopia> (100% genuine polyester silk)
03:31:51 <oerjan> from genuine japanes polyester silk worms
03:31:54 <oerjan> *+e
03:32:27 <vanila> IDEA: Brainfuck + goto
03:32:30 <vanila> should be very easy to program in
03:32:42 <quintopia> brainfuck already has goto
03:32:48 <quintopia> it's called [ and ]
03:33:00 <vanila> lol
03:33:16 <Jafet> What if you removed [ and ] and added goto
03:33:16 <quintopia> vanila: would you like an embroidered baseball cap from the albuquerque balloon festival
03:33:19 <oren> those are strictly nesting, gotos arent
03:33:20 <Jafet> Would it still be turing complete???
03:33:31 <quintopia> only if it were computed goto
03:33:36 <oerjan> Jafet: um no branching?
03:33:36 <vanila> thats ok, thanks though!
03:33:51 <vanila> ooh computed goto
03:33:55 <vanila> I like that!
03:34:19 <vanila> that is both conditional and jump in one go
03:34:25 <vanila> I mean this is like subleq isnt it?
03:34:27 <quintopia> OREN: YOU CAN NONETHELESS USE THEM LIKE GOTOS sorry caps lock accidental press
03:34:48 <quintopia> IDEA: brainfuck - brainfuck
03:34:49 <oerjan> goto and comefrom are so mundane these days. we need govia
03:35:26 <quintopia> it's just like brainfuck except that all the brainfuck commands are replaced with other unrelated ones
03:35:50 <oerjan> or passthrough
03:36:34 <quintopia> oerjan: or pass-go-collect-$200
03:36:39 <oerjan> it's like goto and comefrom except you have no idea _when_ you're going to pass through the label - it may already have happened, or may happen in the future
03:36:45 <vanila> how about this
03:36:50 <vanila> + - < > *
03:36:56 <vanila> same as brainfuck except * is computed goto
03:37:26 <zzo38> CLC-INTERCAL even has computed NEXT FROM
03:37:27 <Jafet> journeythither
03:37:28 <vanila> thats TC isnti t?
03:37:43 <ais523> zzo38: so does C-INTERCAL
03:38:06 <oerjan> quintopia: what about garfield minus brainfuck wth
03:38:10 <vanila> lol
03:38:43 <quintopia> oerjan: i was already thinking about square root of minus brainfuck
03:38:55 <oerjan> good, good
03:39:02 <oerjan> quintopia: sounds quantum
03:39:28 <zzo38> Other idea, make a esoteric programming language involving astronomy and astrology, somehow. (I don't know how.)
03:40:09 -!- Solace|zzz has quit (Quit: Connection closed for inactivity).
03:40:13 <zzo38> And, the other other idea, is make a esoteric programming language that is allow to make types subtraction and division by types, rather than only addition and multiplications.
03:40:45 <vanila> oh wow that sounds mad!
03:41:11 <zzo38> (I don't know how to do that either.)
03:41:16 <Jafet> Subtypes and quotient types
03:41:27 <Jafet> You could try to invent remainder types
03:41:34 <elliott> there was a paper about doing that
03:41:36 <elliott> it was very esoteric
03:41:43 <elliott> edwardk said it was nonsense or something :p
03:41:47 <zzo38> There is? I didn't see any such papers.
03:42:09 <copumpkin> you mean amr sabry's one?
03:42:49 <elliott> I can try and find it, I guess.
03:43:14 <elliott> copumpkin: uhh, maybe.
03:43:15 <elliott> link?
03:43:29 <elliott> it involved time travel or something
03:43:34 <elliott> it was kind of ridiculous
03:44:18 <vanila> hey copumpkin
03:44:21 <copumpkin> http://www.cs.indiana.edu/~sabry/papers/rational.pdf
03:44:23 <copumpkin> hi vanila
03:44:32 <vanila> joyal species is the thing i think
03:44:36 <elliott> yes
03:44:37 <elliott> it is this type
03:44:39 <elliott> er, *this paper
03:44:54 <elliott> read it if you like having fun, breaking rules, and showing it to the man
03:45:04 <elliott> I skate on the road and I divide my types
03:45:06 <copumpkin> misandry!
03:45:09 <vanila> anything by Amr Sabry is going to be gold
03:48:21 <elliott> reading that paper basically felt like being trolled really effectively
03:48:34 <elliott> like, this is obviously total nonsense. but it does kinda work.
03:49:23 <elliott> it involves reversible stuff so vanila will love it
03:50:21 <oerjan> <oren> but can an abrtriay txet be srcewd up and rbleessad? <-- *rbleeessmad hth
03:50:22 <vanila> ill start at the end
03:50:27 <elliott> haha
03:51:19 <shachaf> oerjan: u rbleeessmad?
03:51:25 <shachaf> hi copumpkin
03:51:38 <shachaf> did you read that thing
03:51:45 <shachaf> would the world be an overall better place if i stopped asking about it
03:51:50 <elliott> webcomics have trained me to be pretty good at following narratives backwards
03:51:57 <elliott> not sure it'd work for papers
03:51:57 <oerjan> shachaf: not ralley
03:52:36 <oerjan> elliott: you do the catchups starting from the end?
03:52:56 <oerjan> (i only do that for smbc which doesnt really have narrative)
03:53:10 <vanila> when i see a webcomic I go to the start
03:53:15 <vanila> and usually its not so good soi dont read it more
03:53:30 <elliott> oerjan: I see a random webcomic and start going backwards
03:53:35 <elliott> but yeah sometimes I do catchups from the end
03:53:50 <shachaf> whoa, i always thought "catsup" was a british but apparently it's american??
03:53:52 <elliott> it works better with comics that don't have continuity. backwards dinosaur comics is just dinosaur comics
03:53:52 <oerjan> vanila: that's a little stupid if it's improved a lot...
03:53:57 <vanila> yes
03:54:11 <elliott> vanila's strategy sounds good because you don't have to remember a lot of webcomics to follow
03:54:24 <oerjan> tru dat
03:55:17 <Taneb> shachaf, I don't actually know what catsup is
03:55:35 <shachaf> Taneb: a bizarre spelling of ketchup hth
03:55:39 <oerjan> it's a chinese fish sauce hth
03:56:03 <oerjan> ketsjup
03:56:27 <Taneb> Well, I don't apply condiments often, so neither of those definitions make me inclined to apply catsup
03:56:42 <shachaf> ketszjup is a polish condiment that goes well with gazspacho
03:57:00 <shachaf> oops, gaszpacho
03:57:19 <vanila> I think hte only webcomics ive read fom start to finish are XKCD and ozzy and millie
03:57:43 <oerjan> vanila: xkcd hasn't finished hth
03:57:53 <vanila> there was only about 100 when i read it
03:58:59 <shachaf> oerjan: https://twitter.com/mikko/status/506433143822630912 hth
03:59:14 -!- CrazyM4n has quit (Quit: so that's how you do quit messages).
03:59:38 <vanila> what webcomic would i like to read?
04:00:38 <Taneb> vanila,
04:00:58 <Taneb> I was going to something than I get distracted by a thingy
04:01:51 <oerjan> shachaf: that comment about the hover text is something. also i wonder what the question was.
04:02:12 <oerjan> i think Taneb may be easily distracted
04:02:30 <Taneb> oerjan, the outside is scary
04:02:32 <shachaf> oerjan: which comment and what question twh
04:02:35 <elliott> vanila: http://supermegacomics.com/
04:02:44 <elliott> (rip)
04:02:44 <vanila> I love that one!!!!!!!!!!!!!
04:02:46 <vanila> Omg I read it all
04:02:51 <vanila> htat's the 3rd ive read
04:02:51 <oerjan> shachaf: from your link hth
04:03:05 <shachaf> oerjan: oh from twitter replies
04:04:22 <shachaf> oerjan: i was hoping for a reply involving more hyphen-minuses and octothorpes hth
04:05:30 <oerjan> oh. i didn't notice that.
04:07:53 <copumpkin> shachaf: hi! no! and no!
04:08:06 <Taneb> I wonder if there's any stew left
04:08:07 <vanila> copumpkin, do you have a blog
04:08:17 <copumpkin> nope :(
04:08:23 <Taneb> copumpkin, is there any stew left?
04:08:25 <vanila> what is up
04:08:33 <oerjan> copumpkin: wat
04:08:35 <copumpkin> I'm doing some duolingo and waiting for my nix build to complete
04:08:37 <vanila> whats been happening
04:08:44 <shachaf> copumpkin: which lingo
04:08:44 <copumpkin> Taneb: not that I know of
04:08:51 <oerjan> how can there be anyone other than me who doesn't have a blog
04:08:54 <copumpkin> shachaf: brushing up on some old french
04:09:02 <vanila> oerjan, You can start a blag.txt
04:09:03 <Taneb> oerjan, I only have like half a blog
04:09:05 <copumpkin> oerjan: sorry! I'll try to get one
04:09:22 <Taneb> Although it says at the top "Taneb's blog"
04:09:31 <oerjan> vanila: you seem to have misunderstood my question hth
04:09:36 <vanila> http://mumble.net/~campbell/blag.txt
04:09:45 <copumpkin> oh I know him
04:09:54 <shachaf> Taneb: is it http://nclk620tab.blogspot.com/
04:10:09 <Taneb> shachaf, yes
04:10:11 <shachaf> Riastradh is great
04:10:16 <vanila> oerjan, I can help you set it up just make a text file hth
04:10:29 <Taneb> shachaf, isn't that the capital of Saudi Arabia?
04:10:40 <copumpkin> lol
04:10:43 <copumpkin> not quite
04:12:31 <vanila> haha he wrote aobut decompression quines
04:12:33 <vanila> cool
04:12:42 <vanila> oerjan, looking forward to reading it!
04:14:14 <oerjan> Taneb: i'm going to assume that's not actually your blog because that way i don't have to kill you for your font and text color choices hth
04:14:26 <Taneb> It is definitely not my blog
04:15:03 <oerjan> good, good
04:15:17 <Taneb> oerjan, do you reckon there is any stew left?
04:16:21 <oerjan> i cannot answer that because i cannot find the pun hth
04:17:01 <Taneb> There is no pun to my knowledge
04:17:12 <Taneb> But we had stew here last night but I went to bed early due to jet lag
04:17:13 <shachaf> oerjan: the pun is in the oy of the beholder hth
04:17:24 <Taneb> Now it's like quarter past 4 in the morning and I am hungry
04:17:37 <Taneb> But I am also undressed and upstairs
04:17:51 <Taneb> So I don't want to go to get stew if it's gonna turn out there is no stew
04:18:13 <shachaf> what if there's a salad
04:18:20 <shachaf> you only need to be as dressed as the salad hth
04:18:20 <oerjan> oy vey
04:19:06 <elliott> fizzie: https://esolangs.org// this is a bit weird
04:19:17 <elliott> the redirect should probably be ^/*$ in the nginx config or such
04:19:38 <shachaf> oerjan: i was amused by the finnish for "oh no" hth
04:21:08 <oerjan> elliott: this won't break /// ?
04:21:12 <elliott> no
04:21:40 <oerjan> oh hm /wiki/
04:22:10 <oerjan> shachaf: oy key
04:25:35 -!- nys has quit (Quit: quit).
04:47:01 -!- Solace|zzz has joined.
04:47:24 <J_Arcane> ugh. i just want to fucking sleep
04:53:18 <Solace|zzz> Bless your frail heart
04:53:27 <Solace|zzz> Go to sleep J_Arcane
04:53:41 <J_Arcane> my wife snores.
04:53:45 <J_Arcane> enough to wake the dead.
04:54:19 <J_Arcane> and because I have an ear infaction probably caused by wearing them in the first place, i'm not able to wear my ear plugs.
04:54:51 <Solace|zzz> Sleep on the couch
04:55:00 <Solace|zzz> Snoring is bad though also
04:55:04 <Solace|zzz> Wake her up
04:55:17 <Solace|zzz> She could stop breathing ;-;
04:55:41 <vanila> :C
04:57:37 <oren> put on headphones and play white noise
05:00:33 <oren> cat /dev/urandom | aplay
05:01:05 <oren> turn volume just high enough to block out other sounds
05:03:05 <J_Arcane> I need to get to the shops anyway before they close for Christmas eve.
05:03:07 <elliott> I don't think waking up chronic snorers constantly is a good course of action :p
05:03:26 <J_Arcane> I'd never get any sleep. I snore too.
05:05:57 <Solace|zzz> Those scientist who calculated what white smell is
05:06:08 <Solace|zzz> Just math no machine does it though
05:06:19 -!- Solace|zzz has changed nick to Solace.
05:10:10 <oren> png compressed images sound almost, but not quite, like white noise
05:11:56 <oren> whereas executables sound like a dialup modem
05:14:36 <Solace> Oh god
05:14:42 <Solace> Dialup modems
05:37:06 <HackEgo> [wiki] [[Deadfish]] http://esolangs.org/w/index.php?diff=41534&oldid=41533 * Oerjan * (+0) /* Pascal */ Missed one
05:38:27 <vanila> lol oren thats so weird
05:38:34 <vanila> you can hear the difference in files..
05:38:37 <vanila> can you tell apart a jpg and a png?
05:38:45 <oren> haven't tried
05:38:47 <vanila> what about XML vs lisp
05:40:25 <oren> yknow i have a screwed up synthesizer language... i oughta loom thru my old files more often
05:41:20 -!- Sprocklem has quit (Ping timeout: 264 seconds).
05:41:22 -!- MoALTz has joined.
05:41:34 <oerjan> a good compression _should_ sound like white noise, surely
05:41:57 <vanila> ideally!
05:42:01 <vanila> and encryption
05:42:51 -!- GeekDude has quit (Ping timeout: 244 seconds).
05:44:06 -!- MoALTz_ has quit (Ping timeout: 256 seconds).
05:45:07 <HackEgo> [wiki] [[Ante]] http://esolangs.org/w/index.php?diff=41535&oldid=40778 * * (+100) New interpreters and URLs
05:51:36 -!- MDude has changed nick to MDream.
05:51:47 <Solace> Whats your favourite food?
05:52:03 <Solace> XML vs lisp?
05:52:14 <Solace> Lisp probably would win
05:52:23 <Solace> Depending on whos battling who?
05:52:33 <Taneb> Solace, my favourite food is the singapore noodles recipe we have here, but I am currently in the mood for stew
05:52:53 <Taneb> XML vs lisp is like comparing Denmark to geometry
05:53:01 <Taneb> They are different sorts of things
05:53:20 <oerjan> Taneb: http://www.irregularwebcomic.net/961.html
05:53:45 <Taneb> oerjan, I will go downtairs soon to see if there is any stew
05:54:03 <Taneb> If there is I will microwave-heat it then take a photo to show you guys then eat it
05:54:15 <Taneb> My mum made it so it probably has actual meat (beef, apparently)
05:57:31 <newsham> xml encoded json
05:58:58 <lifthrasiir> newsham: http://www-01.ibm.com/support/knowledgecenter/SS9H2Y_6.0.0/com.ibm.dp.xi.doc/json_jsonx.html
05:59:01 <Solace> How about a turkish game hen wrapped in a seasoned wrap of fine picked herbs with some cherry drizzle wrapped around the sides?
05:59:16 <Taneb> I think I prefer singapore noodles
05:59:24 <Taneb> Although I once had this really nice kangaroo steak
05:59:59 <Solace> Amaze
06:00:01 <quintopia> i also
06:00:07 <quintopia> at bondi beach
06:00:17 <quintopia> had raspberry glaze or something
06:00:18 <quintopia> mmmmm
06:00:32 <oerjan> i never had kangaroo but i mentioned i've had ostrich
06:00:52 <vanila> that joke was o stretch
06:00:53 -!- dts|pokeball has quit (Ping timeout: 240 seconds).
06:00:56 <Taneb> quintopia, this was in a restaurant in Melbourne, a few years ago
06:01:02 <Taneb> It had quite a gamey taste
06:01:07 <Taneb> Reminded me of partridge
06:01:11 <oerjan> vanila: what joke it's a simple fact hth
06:01:14 <Taneb> Another thing which I have eaten precisely once
06:01:50 <vanila> that helped thanks
06:01:57 <Solace> Kangaroo is tough for me
06:02:02 <Solace> Shant eat again
06:02:09 <Solace> I like softer meats and the like
06:02:11 <Taneb> Solace, that sounds like it was poorly cooked
06:02:18 <oerjan> Taneb: did you also get the accompanying pear tree twh
06:02:26 <Taneb> oerjan, I don't know, it was in a pie
06:02:32 <oerjan> ah
06:02:33 <Solace> Probably
06:02:47 <Solace> The resturaunt looked trashy tbh
06:02:58 <Taneb> I once had a really poorly cooked steak, but that was beef and I cooked it myself
06:03:22 <Solace> Amaze
06:03:37 <Solace> So xml parsing
06:03:52 <Solace> Isnt that a horrifying subject for kids nowadays
06:04:09 <Solace> I had to learn xml in my class last year
06:04:44 <vanila> XML parsing is easy isnt it?
06:04:51 <oerjan> i thought the point of xml parsing was that you used a readymade parser for it
06:04:57 <vanila> it's just <open> </open>
06:05:16 <vanila> or is XML some ridiculously complex thing with a million exceptional cases
06:05:23 <elliott> yes
06:05:26 <elliott> well it's not that complex
06:05:37 <elliott> but it's complex enough that the annoyance in parsing and emitting it is the nibbly bits
06:05:46 <elliott> emitting is the bigger problem I think
06:05:53 <elliott> since it is easy to fuck up and produce invalid output
06:05:58 <lifthrasiir> vanila: also <![CDATA[]]>
06:06:01 <lifthrasiir> also <open />
06:06:13 <elliott> also if you implement doctypes
06:06:18 <lifthrasiir> also <가나다 라마바="asdf"></가나다>
06:06:18 <elliott> then it's hideously, ridiculously complex
06:06:23 <oerjan> <open> </close>
06:06:30 <vanila> damn
06:06:31 <lifthrasiir> also <!DOCTYPE ... [ ... ]>
06:06:39 <vanila> it keeps happening
06:06:43 <elliott> https://en.wikipedia.org/wiki/Billion_laughs XML!
06:06:50 <lifthrasiir> also a CFG-inspired language for defining the schema
06:07:01 <lifthrasiir> only to be replaced via another XML-based schema language
06:07:02 <vanila> ive decided that XML is bad
06:07:12 <lifthrasiir> also %entity; and &entity;
06:07:15 <vanila> oh my god
06:07:17 <vanila> thre's more and more
06:07:32 <elliott> I think people hate doctypes these days though
06:07:33 <lifthrasiir> also <?processing instruction ?> (okay, this is the least concern)
06:07:36 <elliott> so it's okay to just ignore them
06:07:47 <lifthrasiir> but if you want to hear about XSLT...
06:08:27 -!- adu has joined.
06:08:39 <elliott> XSLT is a functional language, it must be good
06:09:23 <adu> elliott: are you for srsly?
06:09:32 <elliott> no :p
06:09:46 <elliott> but I suspect XSLT would be significantly less unbearable if its syntax wasn't XML
06:09:51 <adu> I would classify XSLT as a declarative language
06:10:06 <elliott> I'm pretty sure it's even intended to be a purely functional language
06:10:15 <elliott> instead of being accidentally that way like C++ templates
06:10:38 <adu> hmm, I wonder what AWK is classified as...
06:10:51 <adu> "data-driven" according to wp
06:11:49 <Solace> How to keep the last doughnut
06:11:52 <Solace> Hold the doughnut aloft And announce "This is the last doughnut, Does anyone wish to split this with me" Then proceed to touch as many sides of the doughnut as possible
06:11:54 <adu> XSLT is classified as "declarative" according to wp
06:12:03 <vanila> We extend Pi our reversible programming language of type isomorphisms
06:12:09 <vanila> is this an esolang?
06:12:19 <elliott> yes :p
06:12:28 <vanila> Dagger Traced Symmetric Monoidal Categories and Reversible Programming
06:12:32 <elliott> any sufficiently useless type theory paper is an esolang
06:12:55 <vanila> We develop a reversible programming language from elemen-
06:12:55 <vanila> tary mathematical and categorical foundations.
06:13:08 <Solace> XML was made to make kids hate code
06:13:09 <Solace> Imo
06:13:25 <vanila> An implementation of the language along
06:13:25 <vanila> with several programming examples are available for download from
06:13:25 <vanila> http:
06:13:25 <vanila> /www.cs.indiana.edu/
06:13:25 <vanila> ~
06:13:26 <vanila> sabry/papers/reversible.tar.gz
06:13:28 <oerjan> plausible
06:13:43 <vanila> www.cs.indiana.edu/~sabry/papers/reversible.tar.gz
06:14:21 <Solace> Omfg why is called a billion laughs
06:14:27 <Solace> Why am i laughing
06:14:34 <Solace> Make it end
06:14:51 * oerjan hits Solace with the saucepan ===\__/
06:15:36 <Solace> Thanks
06:15:43 <Solace> But the name
06:15:45 <oerjan> you're welcome
06:15:53 <vanila> its funny :)
06:15:56 <Solace> A billion laughs is a dos attack
06:16:04 <oerjan> Solace: it's explained...
06:16:09 <Solace> I know
06:16:13 <adu> dos attack?
06:16:20 <lifthrasiir> denial of service
06:16:23 <Solace> But its so funny to me
06:16:33 <adu> what name?
06:16:41 <Solace> A billion laughs
06:16:50 <adu> is that a name?
06:16:51 <Solace> XML bomb
06:17:00 <vanila> Solace, A billion laughs
06:17:01 <Solace> Give him the link
06:17:12 <vanila> How about this
06:17:20 <vanila> A billion Symmetric Monoidal Categories
06:17:26 <Solace> When i discover funny things in xml i kinda cry
06:17:56 <Solace> Cuz i had to use it to pass an MIT class in sophtmore year
06:18:16 <Solace> I should've used it on them ;-;
06:18:24 <adu> vanila: do you have any documentation?
06:18:46 <vanila> you need to see my driving liscnece?
06:18:52 <adu> no
06:19:04 <adu> like about Pi
06:19:06 <vanila> http://www.cs.indiana.edu/~sabry/papers/cat-rev.pdf
06:19:34 <adu> thanks :)
06:21:55 <vanila> omg this is beautiful
06:22:10 <vanila> all those arrows
06:25:31 <Solace> I always read buffer overflow as butter overflow
06:25:35 <Solace> Im silly
06:29:50 <elliott> deriving license
06:29:56 <elliott> also known as degree
06:29:59 <elliott> *as a degree
06:30:35 <Solace> Deriving?
06:30:41 <Solace> Or driving
06:31:06 <elliott> deriving
06:31:40 <oren> so apparently i made an esolang at least a few years ago, which is for composing music
06:32:05 <oren> by some miracle the code still works
06:35:22 <oren> at the time i thought that this what a perfectly readable syntax: http://pastebin.com/qBCPGLyy
06:35:58 <oren> s/what/was
06:35:58 <vanila> that looks very songlike!
06:36:26 <Solace> Its amazing
06:37:00 <oren> http://www.speedyshare.com/hRBMt/temp.min <-- play with aplay -fS16_LE -r20000 temp.min
06:37:26 <oren> thatis what comes out of the crawling horror of a compiler that i wrote
06:37:33 <vanila> haha
06:37:58 <oren> seriously play it, it is music.
06:38:42 <vanila> Pi^o is really hard to understand
06:38:43 <oren> the compiler is made of a mix of shell, C and perl.
06:39:22 <vanila> "all expressible computations are reversible." wow
06:39:53 -!- Patashu has joined.
06:43:54 -!- Patashu has quit (Disconnected by services).
06:43:54 -!- Patashu_ has joined.
06:44:54 <Solace> Snatches head phones from brother
06:57:08 -!- ais523 has quit (Read error: Connection reset by peer).
06:57:20 -!- ais523 has joined.
06:57:54 <zzo38> Do you have the documentation of that music program?
07:01:01 -!- drdanmaku has quit (Quit: -).
07:02:14 <oren> There was none. here is the source code, an ode to the ire of pitiless gods: https://gist.github.com/orenwatson/95550bb34b4c8cc2e155
07:02:49 <vanila> This is awesome!
07:03:33 <oren> basically you do ./acfplayer.sh foo.acf to comile and play a music
07:04:52 <oren> i think this is porbably from my freshamn year
07:06:48 <oren> ok so essentially, i think i figured out how it works
07:06:50 <zzo38> There are also several MML compilers for composing music though, and there is also Csound.
07:07:59 <oren> it uses sscanf... wait WTF!?!?
07:08:13 <lifthrasiir> scanf is a fine parsing tool
07:08:16 <oren> "sscanf(line,"%lf %lf %lf %lf %lf %d %lf %lf &lf""
07:08:30 <lifthrasiir> provided that you actually check the return value
07:08:41 <oren> "&lf"... "&lf" god damn it it still works despite that
07:08:42 <lifthrasiir> oren: wait, &lf?
07:08:45 <lifthrasiir> lol
07:09:13 <lifthrasiir> oren: ah, no it would work
07:09:26 <lifthrasiir> oren: it has eight %s and eight arguments
07:10:03 <oren> oh why the hell, past me, what the hell wre you thinking
07:10:58 <oren> see it is a rolling horror
07:11:08 <lifthrasiir> the trailing ` &lf` will be consumed if there is
07:11:18 <lifthrasiir> but does not affect any output (including the return value, afaik)
07:11:39 <lifthrasiir> I guess scanf(" "); can be used to skip whitespaces
07:13:48 <zzo38> Yes, why is there "&lf" in there, it contain many things aren't so good in this program, such as it require four files; it also just doesn't seems to do much even important things compared with most other software.
07:15:20 <oren> zzo38: i told you it is a rolling horror...
07:15:39 -!- shikhin has joined.
07:15:39 <oren> i forgot entirely about it until i found it today
07:16:38 <zzo38> Well, next time you can use a MML compiler if you want to, it will work better. (Such as, using ppMCK can make up a .NSF music.)
07:17:00 <oerjan> l'horreur qui chante
07:18:15 -!- ais523 has quit (Ping timeout: 252 seconds).
07:18:36 <Solace> So smart l - l
07:19:49 <oren> Actaully the final language after going thru all steps is similar to MML. consider: 2+2, the 2 indicates a 1/2 note, the +2 indicated two semitones above the base tone for the track
07:21:18 <oren> N1 2+0 2+2 2+6 2+2 2 2+6 2+2 2+0
07:21:29 <oerjan> (inspired by vaguely remembering https://en.wikipedia.org/wiki/L%27Homme_qui_marche_I)
07:21:32 <oren> that is 4 bars of music
07:21:49 <oren> so the 2 without a pitch is a rest of course
07:22:19 <zzo38> OK, I can see that
07:22:34 <oren> to me numbering the semitones made for sense than the inconsistent letter system
07:25:49 <oren> oh no i'm reading it wrong. 0 is a whole rest, 1 is a 1/2 rest 2 is a 1/4 rest and so one
07:26:26 <oren> this line: $length=60.0/$tempo/(2.0**$1);
07:26:32 <zzo38> This is one file for ppMCK http://2a03.free.fr/dl.php?file=4228 It uses a few commands that I have added in to the program myself such as * ? ' commands.
07:28:13 <zzo38> Document of ppMCK: http://vgmrips.net/wiki/PpMCK
07:29:37 <zzo38> The "n" command can still be used to specify number of semitone like you have
07:34:42 <oren> hmm, no named macros?
07:35:40 <zzo38> That is correct; you can only use numbers (or, for text macros, you can use any single character to identify it).
07:36:06 <zzo38> For example I defined text macro *+ for major chords and *- for minor chords; but, it is possible to define them however you want.
07:37:35 <oren> that's kind of primitive. even my rolling horror has macros with names
07:38:19 <zzo38> Yes, although I have never needed macros with names.
07:38:35 <oren> then again the macros.pl could be usedwith almost any language
07:42:02 <oren> that is the advantage of making something as several separate modules. you can reuse them for a different purpose
07:44:10 <zzo38> Yes, it can help with many things, if you can use pipes and such.
07:44:31 <zzo38> So if you want you could use a preprocessor with ppMCK and other MML compilers too.
07:49:40 -!- adu has quit (Quit: adu).
08:04:50 <mroman> good morning
08:07:04 <oren> 早安, mroman
08:10:01 <oren> it's 3 am, barely morning
08:19:54 <elliott> it's 8 am, late night
08:27:05 -!- Patashu_ has quit (Remote host closed the connection).
08:27:15 -!- Patashu has joined.
08:40:08 <mroman> well
08:40:14 <mroman> you're in the wrong time-zone then!!!
08:40:39 <lifthrasiir> 5:40 pm
08:40:50 <lifthrasiir> it's a good day to work and I'm not working now
08:42:01 <J_Arcane> 10:41 here, but I finished this at around 5am: https://github.com/jarcane/heresy/blob/494bc39cb0c77f0fdba4e3cbd12e382cf1a3027d/private/random.rkt
08:42:56 <oerjan> lifthrasiir: working, on 5:40 pm christmas eve? silly koreans.
08:43:16 <lifthrasiir> oerjan: and I'm on the vacation next week
08:43:38 <oerjan> OKAY
08:49:12 <J_Arcane> dammit. This is what I get for using tab instead of spaces. The indentation on the y-combinator factorial example in Heresy's docs is broken.
08:57:42 <J_Arcane> http://ws.apache.org/xmlrpc/apidocs/org/apache/xmlrpc/server/RequestProcessorFactoryFactory.html
09:08:05 <J_Arcane> https://plus.google.com/+JeanBaptisteQueru/posts/9oHHUMpwYhG
09:14:20 <Vorpal> oerjan, God jul
09:14:46 <Vorpal> Or do you say something else in Norway?
09:15:12 <oerjan> exactly the same words
09:15:18 <oerjan> God jul
09:15:25 <Vorpal> Same spelling too? Nice
09:15:44 <fizzie> Hyvää joulua from the country who's not in the language club.
09:15:56 <fizzie> I guess "joulua" is from the same roots.
09:16:25 <fizzie> (Partitive form of "joulu".)
09:17:01 <fizzie> As for "hyvä"... "From Proto-Finnic *hüvä, from Proto-Uralic *šeŋä. Cognates include Estonian hea and Veps hüvä and Sami savvit or Erzyan чив (čiv). Possibly of Indo-Iranian origin."
09:17:08 <shachaf> imo why wouldn't jul be in july
09:17:58 <Vorpal> shachaf, well it is jul as in the (old?) English yule.
09:18:14 <Vorpal> I think it has a different origin than July (juli in Swedish)
09:18:17 <shachaf> yule forgive me for not making the connection
09:18:40 <oerjan> Vorpal: july is from julius caesar
09:18:54 <fizzie> And Yule is "either cognate with[1][2][3] or from[4][5] Old Norse jól".
09:18:56 -!- roasted42 has joined.
09:19:22 <Vorpal> shachaf, but every summer some company tend to make some ad with Father Christmas in it just to try to be funny. Probably funny the first time, but not any longer.
09:20:16 <Vorpal> oerjan, makes sense
09:21:17 <Vorpal> oerjan, Speaking of Caesar and months, wasn't it he who screwed up the calendar so that December is no longer the 10th month as the name would imply? Same goes for September and forwards even
09:21:46 <oerjan> Vorpal: iirc that screwing up was done before his reform
09:21:52 <Vorpal> Ah
09:22:14 <oerjan> someone linked a nice overview here, let me see if i can find it again
09:24:51 <oren> メリークリスマス
09:26:18 <oren> the japanese were not creative
09:27:51 <Vorpal> Is lambdabot broken? It told me I had one new message in /msg, but when I asked it for it, I didn't get anything
09:28:05 <oerjan> gah too many sites i cannot recognize which it was
09:28:43 <lifthrasiir> 明けましておめでとうございます
09:28:54 <oerjan> grmble google doesn't seem to have crawled that date
09:29:00 <oerjan> Vorpal: ask int-e
09:29:21 <Vorpal> lifthrasiir, which language is that?
09:30:18 <Vorpal> oerjan, strange, I can't do a double-whois on int-e to get his/her idle time. Maybe pending netsplit is the cause of both of these issues?
09:30:30 <oerjan> > 2+2
09:30:30 <lambdabot> 4
09:30:43 <Vorpal> Wow that is some lag, lambdabot just answered
09:30:44 <oerjan> @messages?
09:30:44 <lambdabot> Sorry, no messages today.
09:30:49 <Vorpal> like 5 seconds ago
09:30:59 <oerjan> he's recently changed the saving mechanism, to help against data not being saved properly
09:31:27 <Vorpal> <lambdabot> oerjan said 25d 57m 24s ago: <Vorpal> Is there a way to say to cabal "fix mixed versions"? I.e rebuild any packages depending on different versions of a package so that everything just works, and I don't get weird errors. <-- apart from the sandbox thing, i vaguely think that if you install all the packages as _one_ cabal install command it will
09:31:28 <Vorpal> Hm
09:31:56 <Vorpal> Okay, thanks for the tip, sadly I installed haskell-platform using my package manager. So that will be fun to deal with...
09:33:18 <Vorpal> oerjan, yeah there seems to be some major lag issues atm
09:34:38 <lifthrasiir> Vorpal: Japanese, "happy new year"
09:34:38 <lifthrasiir> akemashite omedeto gozaimasu
09:35:45 <oerjan> but that used to lose messages and resend old ones, not forget things one moment to the next
09:35:45 <oerjan> Vorpal: um from my point of view lambdabot answered immediately.
09:35:46 -!- roasted42 has quit (Changing host).
09:35:46 -!- roasted42 has joined.
09:35:46 -!- roasted42 has changed nick to TheM4ch1n3.
09:35:46 <oerjan> Vorpal: hm that sounds like the old problem
09:35:46 <oerjan> unless you actually haven't spoken since then
09:35:47 <oerjan> all tests so far imply it's you who are lagged relative to me, lambdabot and int-e
09:35:47 <oerjan> actually irssi refuses to ping lambdabot
09:35:47 <oerjan> @do hi
09:35:47 <lambdabot> hi
09:35:47 <TheM4ch1n3> lo
09:35:47 <oerjan> Vorpal: if you are responding to pings, you are horribly lagged because you haven't responded yet :P
09:36:07 <oerjan> there it arrived
09:36:24 <oerjan> 10:34 CTCP PING reply from int-e: 0.284 seconds
09:36:24 <oerjan> 10:35 CTCP PING reply from Vorpal: 267.534 seconds
09:37:05 <Vorpal> oerjan, I'm not lagged relative the server I'm connecting to according to znc
09:37:15 <Vorpal> oerjan, but yes I'm lagged relative some other persons
09:37:55 <Vorpal> oerjan, anyway it seems to be lag bursts, sometimes lambdabot pings directly, sometimes it doesn't
09:39:36 <oerjan> Vorpal: changing server often helps
09:39:49 -!- TheM4ch1n3 has quit (Ping timeout: 265 seconds).
09:40:09 -!- Solace has quit (Quit: Connection closed for inactivity).
10:01:48 -!- oren has quit (Ping timeout: 258 seconds).
10:42:17 -!- MoALTz has quit (Quit: Leaving).
11:01:33 <J_Arcane> hmm. I think my math is all wrong.
11:04:17 -!- shikhin has quit (Ping timeout: 258 seconds).
11:07:12 <J_Arcane> Converting my 64-bit integer down into a fraction that can then fulfill the expected usecase of int(rnd * n) + 1
11:10:08 <oerjan> the quick and dirty method is to use modulo n
11:10:24 <oerjan> it will not be entirely uniform if n isn't a power of 2, though.
11:11:23 <oerjan> and will be very skewed if n is close to 64 bits large
11:12:05 <J_Arcane> The algo I'm using does in fact spit out a 64-bit number.
11:12:40 <oerjan> i'm not talking about the number spit out, i'm talking about the n in your int(rnd * n) + 1
11:14:18 <oerjan> hm...
11:14:50 <oerjan> i guess there's also a problem if lower bits are less random than higher
11:15:53 <oerjan> hm
11:16:15 <oerjan> from the other end, divide 2^64 by n
11:16:41 <oerjan> then divide your spit out number by the result of that.
11:17:07 <oerjan> rounding down in both cases, i think.
11:17:37 <oerjan> if the result is n, pick a new number and retry.
11:19:56 <oerjan> third method, look up how this is actually supposed to be done.
11:20:13 * oerjan helpful
11:21:19 <J_Arcane> Yes.
11:21:24 <J_Arcane> This is probably a smart option.
11:21:33 <Jafet> That's the hardest method though
11:21:50 <oerjan> ain't it always
11:22:17 <oerjan> especially if the people giving stupid answers give a lot of google hits :P
11:23:05 <J_Arcane> It seems there's trickier math involved in getting a fraction that will be in a range such that (* (rnd) 6) actually spits out something between 0 and 5.
11:25:48 <oerjan> oh hm wait that's easy enough
11:26:21 <oerjan> x * 6 `div` (2^64)
11:26:39 <oerjan> that will be somewhat skewed though
11:27:31 <J_Arcane> Very skewed: that's basically the first thing I tried.
11:27:34 <oerjan> by which i mean, not all numbers 0..5 equally "likely"
11:28:09 <oerjan> for a non-skewed version, you _have_ to throw away some cases.
11:28:16 <oerjan> (see my second option above)
11:28:54 <oerjan> it shouldn't be _very_ skewed mind you - some of the numbers will have 1 more 64-bit number giving them than the others.
11:31:33 <oerjan> different way of doing the second method: let y = 2^64 - (2^64 % 6). throw away every number >= y (at most 5), for the rest do x * 6 `div` y
11:32:03 <oerjan> mixing C and haskell is so useful
11:32:44 <J_Arcane> well, see, I'm trying to implement (rnd) itself, according to the BASIC spec, ie. a random number between 0 and 1. I won't necessarily know n, so I can't write that factor into the implementation easily (unless I divert from spec and just add an argument to RND)
11:33:20 <J_Arcane> But at the moment, it consistently produces numbers which are far too small to use for that use case.
11:33:44 <oerjan> well rnd = x / (2^64) is basically the way to go if your spit-out numbers are 64-bits...
11:34:20 <int-e> oerjan: what...
11:34:40 <oerjan> int-e: what what?
11:34:51 <Jafet> Or 2^64-1
11:35:29 <oerjan> you want to include 1 as a possibility? ok but that'll complicate choosing integers again later
11:35:36 <int-e> oerjan: wondering about the ping. and what do you mean by "irssi refuses to ping lambdabot"? I don't see why it would do that; it's just that lambdabot won't reply :P
11:36:04 <J_Arcane> Which is what I've been trying to do, and getting weird results.
11:36:26 <oerjan> int-e: when i do /ping lambdabot irssi doesn't say that it sent any ctcp
11:36:43 <oerjan> unlike for the rest of you
11:37:02 <oerjan> oh hm
11:37:07 -!- Phantom_Hoover has joined.
11:37:13 <oerjan> int-e: i'm stupid
11:37:19 <J_Arcane> For example, given the numbers I'm getting over (2^64), doing (for/list ([x (in-range 100)]) (add1 (truncate (* (rnd) 6)))) gives me a list composed almost entirely of 1s and 2s.
11:37:22 <oerjan> forgot i have a lambdabot query window
11:37:32 <int-e> heh
11:37:36 <J_Arcane> correction: entirely 1s and 2s.
11:37:39 <oerjan> and for some reason those messages don't mark the window as active
11:38:23 <oerjan> int-e: i was pinging you because Vorpal said you were unwhoisable
11:38:41 <Jafet> Perhaps you should try debugging that program
11:39:52 <int-e> oerjan: I figured it out. It's just that I saw the ping completely out of context. My active channel was #ghc...
11:41:11 <int-e> oerjan: (Which has not seen any activity in the last two hours, just some people joining and leaving. So it looked like a recent thing until I looked at the time stamp.)
11:44:18 <oerjan> Jafet: that would seem to imply that your fractions are between 1/6 and 1/3 the size they should be...
11:44:25 <oerjan> oops
11:44:32 <oerjan> J_Arcane: ^
11:44:38 <J_Arcane> oerjan: Well, ditching the float technique and doing result % n does indeed give a 0 to n range it looks like. But visibly irregular results.
11:45:10 <J_Arcane> (and very weighted to the bottom)
11:45:20 <oerjan> the result % n thing might be too sensitive to patterns in the formula
11:45:33 <oerjan> modulo n
11:47:03 <oerjan> in the "low bits", vaguely speaking
11:48:56 <J_Arcane> Maybe I should just accept I don't know what I'm doing and fall back to Racket's built-ins. XD
11:49:19 <oerjan> shocking
11:50:12 <J_Arcane> I can *easily* rewrite the code in place without breaking the semantics.
11:50:28 <J_Arcane> And it's all git-versioned so if I want to come back to it the code's around somewhere ...
11:55:08 <int-e> oerjan: Oh http://golf.shinh.org/p.rb?One+Point is a bit frustrating. First I took ages to figure out what sequence that is... and now I have 74 characters for Haskell where henkma has 70...
11:56:17 <int-e> And I still don't know whether "One Point" is supposed to be a hint.
12:00:08 * oerjan checked oeis
12:01:18 <oerjan> https://oeis.org/A030303
12:02:00 <oerjan> it's the points where there are ones...
12:03:41 <int-e> ah. why did OEIS fail me...
12:04:11 <oerjan> i dunno, did you use spaces instead of commas?
12:04:34 <int-e> because ... yeah that.
12:08:45 <J_Arcane> This is not quite the only channel I watch that's not dead, but it's pretty close.
12:17:34 <int-e> oerjan: (one of the annoying little details is that the bits are only collected up to 254. 255 instead would help me...)
12:18:12 <oerjan> heh
12:18:57 -!- Patashu has quit (Ping timeout: 240 seconds).
12:23:24 <int-e> interesting... dc makes 0^-1 = 0.
12:23:31 <int-e> (wtf)
12:26:24 <J_Arcane> blargh. wtf doesn't racket's make-random-generator take a seed argument?
12:29:26 <int-e> because you can use random-seed followed by current-pseudo-random-generator?
12:29:45 <int-e> but more likely nobody really thought about this.
12:31:00 <fizzie> `run echo '0^(-1)' | bc
12:31:00 <HackEgo> Runtime error (func=(main), adr=4): divide by zero
12:31:20 <int-e> J_Arcane: and there's the vector->pseudo-random-generator thing.
12:31:57 <fizzie> `run echo '0 _1 ^ p' | dc
12:31:57 <HackEgo> 0
12:32:05 <J_Arcane> I suppose as long as the current-generator parameter obeys scope it's OK ish.
12:32:08 <int-e> in other news I think that racket looks a bit like scheme ;-)
12:34:28 <J_Arcane> Well, it did start out as a Scheme, and it's mostly still one at heart. IT was just a matter of them not wanting to be bound by the standard or expectations anymore.
12:35:14 <int-e> J_Arcane: Actually I'd sort of expect there to be potential races with other threads. Actually it's even unclear whether random-seed makes a new RNG or just replaces the state...
12:36:03 <int-e> (mutable data is so annoying.)
12:36:18 <J_Arcane> int-e: Indeed it is.
12:37:08 -!- oerjan has quit (Quit: leaving).
12:37:30 <fizzie> That's curious, because GNU dc is built on bc. (dc ^ is using the same bc_raise as bc ^.)
12:39:42 <J_Arcane> int-e: Also annoying is that the value range for the seed is 32-bits, but the timer is 64-bits. So it actually uses some internal derivation when seeding from (current-milliseconds) that I thus have to account for somehow, and that means I may have to rewrite my spec anyway ... :/
12:41:11 <int-e> (with-current-time 12345678901234578 (random-seed))
12:42:21 <int-e> once you have mutable data, time travel looks almost sane :P
12:45:08 <J_Arcane> I had defined a syntax for a BASIC-style "timer" var, but since (curr-ms) is 64-bits, you can't actually use it with randomize. I will have to derive some formula that turns any 64-bit number into a 32-bit that's valid for a seed.
12:46:52 <int-e> (lambda (x) 42)
12:47:25 <J_Arcane> :D
12:48:39 <J_Arcane> I suppose I could just bitmask the first half of the number ...
12:55:40 * int-e sees #include "schmach.h" and goes looking for "schande.h"
12:55:57 <J_Arcane> Yes, that works. Just bit-shift off 32 digits and bam, 32-bit number. :D
12:56:06 * J_Arcane is not a hacker, just a hack ...
12:57:16 <int-e> J_Arcane: you know, the lower bits will vary much faster than the upper bits. You could even take the number modulo 2^32-5 or so.
12:58:02 <J_Arcane> Hmm. I didn't think about doing it with modulo.
12:58:14 <J_Arcane> I just did (arithmetic-shift seed -32).
12:58:30 <J_Arcane> But your way makes more sense.
13:01:52 <int-e> ah, better make that modulo 2^31-1: if (scheme_get_int_val(o, &i)) { if (i > 2147483647) i = -1; }
13:05:10 <J_Arcane> Good point. I did: (modulo seed (sub1 (expt 2 31)))
13:17:34 <int-e> anyway, random-seed will destroy the current RNG state, and current-prng obviously can't make a copy.
13:21:49 <J_Arcane> Next: I must figure out which racket function works best for basic's int().
13:22:34 <J_Arcane> int-e: This is what I did: https://github.com/jarcane/heresy/blob/master/private/random.rkt
13:28:14 <int-e> J_Arcane: I'm not sure whether I can read this. Does rnd re-seed every time its called?
13:28:33 <J_Arcane> int-e: No, or at least, it shouldn't if I've understood generators correctly.
13:29:52 <J_Arcane> Generators are continuations. IIUC, the computation should remain inside loop after first run. So it just keeps taking new numbers from the current PNRG.
13:31:13 <int-e> pseudo-number random generator, hmm
13:31:19 <J_Arcane> XD
13:31:48 <J_Arcane> brain is tired. weeks of insomnia and sleep problems and also trying to emergency thaw a ham.
13:31:50 <int-e> Anyway, all I'm saying is you're on your own there; I don't know Racket.
13:32:02 <J_Arcane> :D No worries.
13:55:50 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
14:13:42 -!- S1 has joined.
14:21:30 -!- shikhin has joined.
14:29:53 -!- vanila has quit (Ping timeout: 240 seconds).
14:33:05 -!- boily has joined.
14:35:08 <Taneb> Good afternoon
14:39:19 <int-e> `` dc <<<125P
14:39:20 <HackEgo> ​}
14:39:30 <int-e> `` dc <<<122P
14:39:30 <HackEgo> z
14:50:03 -!- tswett has joined.
14:54:17 -!- tswett has quit (Ping timeout: 240 seconds).
14:55:42 -!- coppro has quit (Ping timeout: 245 seconds).
15:02:33 -!- vanila has joined.
15:26:42 <int-e> `` dc <<<[1xp]x
15:26:42 <HackEgo> No output.
15:26:57 <int-e> `` dc <<<1xp
15:26:58 <HackEgo> 1
15:27:27 <int-e> `` dc <<<[[1x]xp]x
15:27:28 <HackEgo> 1
15:29:08 <int-e> (Of course, if one were to believe the documentation, 1x should have the same effect as just 1: push 1 on the stack. It does not mention that x on a number exits one level of macro execution.)
15:32:23 -!- GeekDude has joined.
15:43:18 -!- coppro has joined.
15:48:47 -!- scoofy has joined.
15:55:11 -!- tswett has joined.
15:55:16 <tswett> Ahoy.
15:55:39 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).
15:55:51 <tswett> Is there a largest ordinal number A such that the set of all ordinal numbers below A has computable arithmetic?
16:02:03 <tromp_> what operations do you require in arithmetic?
16:03:19 <Jafet> The answer may strongly depend on what representation you use for computation
16:06:54 <tromp_> if A is a limit ordinal, then you can just add it, along with A*0=0,A+0=A*1=A, anything else with A is out of range
16:07:17 -!- tswett has quit (Ping timeout: 240 seconds).
16:07:52 <tromp_> and it seems that ordinals below A cannot be combined to get to A
16:08:33 <tromp_> wait, that's not true
16:09:02 <tromp_> e.g. A=2*w = w+w
16:09:43 <tromp_> or is that w*2 ?
16:10:28 <int-e> it's w*2
16:12:53 <tromp_> ok, so 2*w=w
16:19:50 <Jafet> `? tswett
16:19:51 <HackEgo> tswett is livin' it up with the penguins
16:23:42 <nyuszika7h> ooh, dc
16:24:19 <nyuszika7h> int-e, yeah, I noticed strange behavior with doing x on a number too
16:24:25 <int-e> https://en.wikipedia.org/wiki/Recursive_ordinal , hmm. Unfortunately, deciding the well-order is not sufficient for arithmetic, or is it?
16:28:35 <Jafet> https://en.wikipedia.org/wiki/Kleene%27s_O
16:28:55 <Jafet> Apparently arithmetic is computable but equality is not??
16:28:56 <int-e> Oh weait. w_1^CK is just a supremum. Of course there is a supremum for the ordinals with computable arithmetic as well. All I'm really looking for is a proof that this supremum itself does not have computable arithmetic.
16:30:44 <int-e> Hmmmm.
16:32:43 <int-e> Oh it's just data Ord = Zero | Succ Ord | Lim (Nat -> Ord), where the Nat -> Ord function is computable.
16:35:05 <int-e> So right, if you forgo equality tests then that will work.
16:36:24 -!- arjanb has joined.
16:36:55 -!- Phantom_Hoover has joined.
16:39:00 -!- silverstream has joined.
16:42:18 -!- MDream has changed nick to MDude.
16:58:11 -!- drdanmaku has joined.
16:59:10 -!- S1 has quit (Quit: S1).
17:20:04 <J_Arcane> Damn you people, there's too many fun languages to learn!
17:31:46 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
17:34:35 -!- shikhin_ has joined.
17:35:26 -!- dts|pokeball has joined.
17:37:23 -!- shikhin has quit (Ping timeout: 240 seconds).
17:49:23 -!- roasted42 has joined.
17:54:29 -!- roasted42 has quit (Remote host closed the connection).
17:58:36 -!- oren has joined.
17:59:13 <oren> my power is back on
17:59:14 -!- boily has quit (Quit: COMESTIBLE CHICKEN).
18:01:55 -!- roasted42 has joined.
18:04:20 <oren> when i was a kid it used to snow on christmas eve. what is this "freezing rain", "sleet" crap?
18:04:41 <vanila> yeah seriously, who is evn in charge anymore?
18:05:24 <int-e> oil companies
18:05:29 <oren> apparently not santa claus
18:06:09 -!- roasted42 has quit (Ping timeout: 252 seconds).
18:09:05 <zzo38> Santa Claus is dead by now.
18:10:09 <scoofy> at least, your heating bills are low
18:10:41 <oren> we are using a wood stove this morning cause the hydro was out
18:11:14 <oren> (in Ontario the electric power is refered to as "the hydro")
18:12:28 <scoofy> do you heat with electricity?
18:13:41 <oren> i am at my grandparents' house. they have electric and wood. my house in toronto has gas everything
18:15:27 <oren> gas stoves are way easier to cook on than electric
18:18:44 -!- dts|pokeball has quit (Read error: Connection reset by peer).
18:19:26 -!- dts|pokeball has joined.
18:19:40 <elliott> `addquote <oren> when i was a kid it used to snow on christmas eve. what is this "freezing rain", "sleet" crap? <vanila> yeah seriously, who is evn in charge anymore? <oren> apparently not santa claus <zzo38> Santa Claus is dead by now.
18:19:44 <HackEgo> 1227) <oren> when i was a kid it used to snow on christmas eve. what is this "freezing rain", "sleet" crap? <vanila> yeah seriously, who is evn in charge anymore? <oren> apparently not santa claus <zzo38> Santa Claus is dead by now.
18:20:00 <elliott> santa ist tot
18:20:03 -!- nys has joined.
18:22:28 <int-e> I thought that was Nietzsche.
18:23:04 <vanila> oh no, Nietzsche is alive and well
18:23:15 <scoofy> just met him recently, he's definitely doing fine
18:23:49 <elliott> nietzsche is the new santa
18:26:25 -!- roasted42 has joined.
18:26:54 <silverstream> he's fine when with his mother
18:30:52 -!- roasted42 has quit (Ping timeout: 240 seconds).
18:36:33 <zzo38> Nietzsche is dead too.
18:39:08 -!- shikhin_ has changed nick to shikhin.
18:40:57 -!- roasted42 has joined.
18:41:49 <silverstream> you have googled this!
18:43:14 <zzo38> No I have not
18:43:45 <zzo38> I looked it up in Wikipedia
18:44:04 <silverstream> hipster
18:45:07 <elliott> hi silverstream! how did you find this channel?
18:45:17 -!- roasted42 has quit (Ping timeout: 240 seconds).
18:45:51 <silverstream> /list
18:46:31 <elliott> `relcome silverstream
18:46:32 <HackEgo> silverstream: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/>. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
18:46:33 <silverstream> but while you asK: i'm looking for a channel with database pros.. any suggestions?
18:46:37 <silverstream> thank you
18:46:52 <silverstream> likw database theory in general
18:47:21 <vanila> #sql
18:48:49 <zzo38> What database implementation are you using specifically? There are many such as SQLite and MySQL and others.
18:49:00 <zzo38> (And a few which aren't based on SQL.)
18:49:04 <silverstream> that's undecided yet
18:49:21 <silverstream> i'm playing with the thoughts to use nosql.. actually
18:49:52 <silverstream> i would like to know what architecture to use for a fast tag engine
18:51:23 <silverstream> haaaving "element" as the basic object from which everything else derives.. while elements can be tagged
18:52:14 <vanila> what's nosql exactly?
18:52:53 <silverstream> they key value revolution ..pushed by google..memcache..mongo etc.. google
18:53:13 <silverstream> it's fast and ..scalable
18:53:34 <int-e> the fun part being that the nosql databases tend to acquire query languages over time.
18:57:42 <zzo38> I suppose it also depend what you are making, what help the most.
18:57:48 <zzo38> I happen to like SQLite.
18:58:48 <int-e> sqlite is somehow the opposite of the nosql databases.
18:59:26 <zzo38> SQLite does not have stored procedures, although I do not believe stored procedures are useful. It does allow triggers on views though, and I find that a very useful feature. SQLite also supports recursive WITH, and virtual tables, extension loading, and a few other things which are pretty useful really.
18:59:35 <int-e> local, often exclusive access to a (often small) database vs. shared, distributed, huge databases.
19:01:35 <int-e> sqlite has a fairly powerful query language, while nosql started out with simple key -> value lookups.
19:02:03 <int-e> also sqlite is not a buzzword, nosql is.
19:02:38 <zzo38> Yes, they can help for different purposes.
19:03:29 <silverstream> how is sqlite a buzzword? it's a valid solution in some cases
19:03:48 <int-e> silverstream: "not"
19:04:31 <silverstream> cu ..and thanks
19:04:33 -!- silverstream has left.
19:04:37 -!- ChanServ has set channel mode: +o elliott.
19:04:41 -!- elliott has set channel mode: +b $a:silverstream.
19:04:46 -!- elliott has set channel mode: -b *!*@koln*.pool.mediaWays.net.
19:04:47 <int-e> that was weird.
19:04:54 <elliott> let's leave his ISP unbanned so it's easier to tell next time
19:04:55 -!- elliott has set channel mode: -o elliott.
19:05:08 <elliott> (I talked to him in /msg.)
19:05:51 <int-e> I admire your persistence.
19:06:06 <elliott> thankfully his typing style is so distinctive and he tends to talk about the same random off-topic things right after joining
19:06:17 <elliott> int-e: I admire his :P
19:06:37 <elliott> it's like the world's most boring game of cat and mouse -_-
19:06:46 <int-e> Even in my most active times as #math (now ##math) op I never bothered to identify ban evaders before they actually misbehaved again.
19:07:52 <elliott> well, I don't want to encourage people who have been banned for repeatedly being horrible jerks to people to get their one free asshole card every time they switch to a new name :/
19:07:56 <zzo38> SQLite is a full programming language and you do not need to deal with file formats since SQLite will do those things automatically for you; so you can extend a table by using ALTER TABLE and add triggers by using CREATE TRIGGER and change the indexing and still the file format is the same format and you don't need to worry about it.
19:08:08 <elliott> if I recall correctly he even ban evaded the first time he got a _temporary_ ban for that
19:08:31 -!- roasted42 has joined.
19:08:50 <int-e> elliott: but holding grudges takes so much energy.
19:09:15 <elliott> meh, it's like an exciting rivalry
19:09:26 <elliott> except it's just my boredom vs. a really persistent jerk
19:09:43 <int-e> Oh it's a hobby, why didn't you say so.
19:09:50 <elliott> ehe
19:10:01 <oren> My favorite database format is the flat binary file.
19:10:23 <elliott> well, it's more like I tend to be pretty good at recognising typing styles and the like, so once someone talks a bit my brain usually fires off the signal and it's easier to deal with it than ignore it :/
19:10:25 <scoofy> mine is the rounded. that is better than the flat.
19:11:06 <int-e> /dev/null is nice and round.
19:11:24 <elliott> (maybe if he didn't ban evade immediately after getting permabanned he'd actually get a second chance, but it's pretty clear by now he just wants to keep trying so he can continue the behaviour he got banned for...)
19:11:40 <elliott> (well... more like fourth or fifth chance, he got kicked/banned a bit before it actually became permanent.)
19:11:43 <zzo38> oren: If you do not need it to be extensible or user programmable then a flat binary file will work
19:13:07 -!- roasted42 has quit (Remote host closed the connection).
19:13:24 <oren> zzo38: and i maintain that that is true in most applications
19:13:45 <zzo38> Maybe.
19:14:25 <oren> but i find people using XML or SQL or CSV all the time when a flat serialization would work fine
19:15:35 <zzo38> Even for text I prefer tab-separated-values rather than comma-separated values.
19:16:00 <oren> in CSV the C stands for "character"
19:16:44 <elliott> it does...?
19:16:48 <elliott> are you sure it isn't comma
19:16:48 <oren> it does
19:16:59 <elliott> https://en.wikipedia.org/wiki/Comma-separated_values says comma
19:17:17 <J_Arcane> My Christmas eve dinner: http://imgur.com/gallery/XRzUX/new
19:17:48 <int-e> hehe. what is golf? http://golf.shinh.org/reveal.rb?Base+37/hebiyan_1418620884&hs
19:18:44 <elliott> J_Arcane: what's the finnish equivalent of lutefisk or surströmming?
19:19:03 <elliott> int-e: they left out the spaces before the import lists, it's all good
19:19:05 <J_Arcane> elliott: They do have lutefisk here.
19:19:11 <elliott> also the type signatures
19:19:25 <J_Arcane> lipeäkala.
19:20:15 <J_Arcane> We declined that option (it's more of a Norwegian/Swedish thing) and instead snacked on gravlax for late lunch while the food cooked.
19:20:17 -!- roasted42 has joined.
19:21:24 <zzo38> Also, if SQL is used it allow to deal with it externally using SQLite command-line program and also you do not need to define another embedded scripting language to deal with the data since SQL already does so.
19:22:28 -!- singingboyo has quit (Ping timeout: 255 seconds).
19:34:40 -!- roasted42 has quit (Remote host closed the connection).
19:48:14 -!- Lorenzo64 has joined.
20:04:51 -!- mitchs has joined.
20:10:14 -!- roasted42 has joined.
20:22:39 -!- roasted42 has quit (Ping timeout: 265 seconds).
20:26:34 -!- roasted42 has joined.
20:27:37 <Jafet> Amazingly, the bct interpreter for eodermdrome seems to work
20:31:38 -!- roasted42 has quit (Remote host closed the connection).
20:34:22 -!- Lorenzo64 has quit (Read error: Connection reset by peer).
20:34:38 -!- roasted42 has joined.
20:39:40 <coppro> `unidecode 13
20:47:22 -!- FreeFull has quit (Ping timeout: 245 seconds).
20:49:28 -!- FreeFull has joined.
20:58:48 <oren> There are wide versions of all the latin characters.
21:00:00 <oren> is this worse or better than allcaps?
21:00:13 <scoofy> kewl
21:00:44 <oren> !@#$%^&*()<>?:”{}
21:01:16 <oren> \/+-=_~
21:07:53 <oren> does elliott get pinged if i say his name like this?
21:10:01 -!- MDude has quit (Ping timeout: 255 seconds).
21:10:27 <oren> ヤッパリ elliott ピング シナカッタ ナ~。
21:18:16 -!- spiette has quit (Quit: :qa!).
21:20:07 <scoofy> lel
21:22:13 -!- roasted42 has quit (Ping timeout: 258 seconds).
21:22:27 -!- Patashu has joined.
21:23:47 <Taneb> Have an esoteric christmas, everyone
21:24:14 -!- roasted42 has joined.
21:34:37 <oren> damn! 88 bytes
21:38:15 -!- oerjan has joined.
21:39:36 <int-e> oerjan: GG was updated really early today.
21:39:51 <oerjan> i know
21:39:57 <oerjan> i got it before going to bed
21:41:22 <int-e> now waiting for the collatz parity revelation
21:42:04 <oerjan> oh they're both revealed today?
21:42:12 <int-e> yes.
21:42:34 <oren> i was only able to do 86 bytes of C
21:43:26 <oren> so i want to know what sorcery they sorcered
21:43:45 <vanila> how about the IOCCC when is tha revealed?
21:43:51 <int-e> Did you try calling functions without arguments, hoping the right values are already on the stack?
21:43:59 <oerjan> that's funny, not a single character difference between our and henkma's base 37 solutions :P
21:44:17 <int-e> oerjan: yes. I was surprised, henkma doesn't usually submit one-liners like that.
21:44:59 <vanila> oerjan, I wrote that too
21:45:07 <vanila> same exact length program
21:45:18 <oren> int-e: mine involves terible abuse of ? and :
21:45:23 <vanila> i idny submit bcecause i didnt win
21:45:24 <oerjan> vanila: length is easy if you're trying to compete...
21:45:52 <int-e> oren: if you mean x?:y = x if x is true, that's actually documented for gcc.
21:45:59 <oerjan> but having the exact same choice of everything... although i guess there wasn't much choice, using m@ is sort of "standard"
21:46:18 <vanila> I used m@ too
21:46:43 <oerjan> using newline instead of ; could have happened, but didn't
21:46:43 -!- roasted42 has quit (Ping timeout: 272 seconds).
21:47:04 <int-e> oerjan: I'm curious about henkma's solution, but obviously even more curious about tails' dc one :)
21:47:13 <oerjan> in theory putStr.($"\n") would have worked, but no one ever does that :P
21:47:43 <oerjan> int-e: ok i'm just looking at the haskell ones usually
21:48:11 <int-e> oerjan: actually I have a variant of the same length in my file: import Numeric;m@main=do n<-readLn;putStrLn$showIntAtBase 37((['0'..'9']++['a'..'z']++"A")!!)n"";m
21:48:33 <oerjan> ah ok so do notation is the same?
21:48:37 <vanila> yes
21:48:37 <int-e> yes
21:48:41 <int-e> had to be tried ;)
21:48:42 <vanila> i compared both
21:48:52 <oerjan> usually it's a little longer if you don't _need_ to define a name
21:49:10 <oerjan> but i guess the ($ ...) section compensates
21:49:26 <int-e> (because I can't do the arithmetic in my head reliably - three more there, two less there, one less there, plus/minus one :)
21:49:34 <oerjan> right
21:49:41 <oerjan> i may have tried it too
21:49:56 <vanila> I want to win a golf
21:49:58 <vanila> but im tnot good
21:50:01 <oerjan> yep it's there in my file
21:50:03 <oren> i might as well submit my best shot
21:50:33 <oren> no one else got 86 anyway
21:50:40 <int-e> oerjan: what about collatz parity, what's your best shot?
21:50:57 <oerjan> oh wait hm mine is one char longer than yours
21:52:02 <oerjan> oh i should have used !! as a section, i used it prefix and got a useless $
21:52:27 <int-e> oh, henkma had a different variant of the formula, so that's where he found the extra spaces.
21:53:14 -!- Solace has joined.
21:53:24 <int-e> So I was worried for no reason at all.
21:53:30 <Solace> Help
21:53:38 <Solace> Hello*
21:54:02 <oren> never mind my output is very slightly wrong
21:54:16 <oerjan> int-e: i didn't get it below 91
21:55:32 <oerjan> i assume i didn't find the actual clever trick, now to peek ->
21:56:07 <Solace> Night~
21:56:19 <oerjan> that hebiyan guy is also one of those weird "golfing? what's that" guys
21:57:58 <int-e> oerjan: main=putStr$[-256..256]>>=(64?);0?_="|\n";n?k|t<-mod k 2=" #"!!t:(n-1)?div(3^t*k)2 <-- I didn't think this required much cleverness. The last 2 characters were tricky though.
22:03:02 <oerjan> my brain must have been off because i never realized 3^t
22:03:13 <oerjan> so i kept having two branches
22:03:48 <int-e> oerjan: I had (2*t+1)*k at some point.
22:03:52 -!- Lymia has quit (Ping timeout: 256 seconds).
22:04:01 <int-e> but ok, missing that explains a lot
22:07:30 -!- Lymia has joined.
22:07:30 -!- Lymia has quit (Changing host).
22:07:30 -!- Lymia has joined.
22:08:57 <int-e> so easy, tails just did things modulo 2^64 ...
22:09:17 <int-e> which is wrong in the long term, but works for the first 64 bits.
22:10:52 <oren> lol what is golf?
22:14:32 <oren> I should rename all my files to the widechar versions
22:16:14 <oren> why can’t i put widechars in my nick?
22:16:17 <oerjan> obviously inferior, doesn't trigger myndzi |o|
22:16:17 <myndzi> |
22:16:17 <myndzi> /<
22:17:05 <oren> /nick oren
22:17:29 <scoofy> cos... nick chars are like... limited?
22:17:40 <oren> why are they limited?
22:17:42 <scoofy> you cannot just use random chars...
22:17:49 <scoofy> cos that's what the RFC defines
22:18:08 <scoofy> well you can make your own irc server
22:18:11 <scoofy> and allow wide chars
22:18:11 <zzo38> If you rename your files to widechar versions then it will cause a lot of problems, so you should not do that.
22:18:13 -!- oren has changed nick to {\[oren]|}.
22:18:28 <{\[oren]|}> close enough
22:19:12 <oerjan> oh well, as long as or<tab> still expands to the right one...
22:19:37 <scoofy> {<tab> expands t
22:19:39 <scoofy> {\[oren]|},
22:19:40 <{\[oren]|}> zzo38:it will cause problems by being hilarious
22:27:22 <{\[oren]|}> http://ctrlv.in/478265 see,funny right?
22:28:56 <myname> interesting, it filters your backslash
22:29:57 <{\[oren]|}> that is just from using japanese font
22:30:23 <{\[oren]|}> small \ is yen sign
22:30:48 <oerjan> i predict this will eventually be hilarious by getting you kicked hth
22:30:51 <scoofy> lol
22:30:57 <scoofy> for the yen sign
22:31:33 <{\[oren]|}> new esolang: C but all characters wide
22:31:53 <scoofy> what's the point of that
22:31:59 <scoofy> at least if you used japanese chars...
22:32:24 <{\[oren]|}> yeah! C with all things replaced with kanji
22:32:34 <scoofy> sounds better!
22:32:42 <scoofy> imagine some 'obfuscated C contest' entries in that
22:32:53 <scoofy> 'only kanji allowed'
22:33:03 <myname> well, just write a bunch of macros
22:33:50 <oerjan> {\[oren]|}: also change your text color to blue. then you can program in the wide blue C
22:34:14 <{\[oren]|}> 数 本(){書く(「こんにちは」);}
22:34:23 <scoofy> eh
22:34:30 <scoofy> hardcore
22:34:38 <scoofy> LEVEL: asian
22:35:11 <{\[oren]|}> using kanji that mean basically the right thing
22:35:26 <int-e> oerjan: have you seen http://golf.shinh.org/reveal.rb?Base+37/_1418756541&cs ... it has a comment in the list initializer!
22:35:34 <{\[oren]|}> and then use 「」 for quotes
22:35:43 <coppro> `addquote <{\[oren]|}> zzo38:it will cause problems by being hilariou
22:35:44 <HackEgo> 1228) <{\[oren]|}> zzo38:it will cause problems by being hilariou
22:36:31 <Jafet> You probably also need to return a value in 本
22:36:43 <int-e> `cat bin/addquote
22:36:43 <HackEgo> ​#!/bin/sh \ [ "$1" ] || exit 1 \ printf "%s\n" "$1" >>quotes \ printf "%d) %s" $(qc | cut -d' ' -f1) "$1"
22:36:54 <int-e> `` tail -1 quotes
22:36:54 <HackEgo> ​<{\[oren]|}> zzo38:it will cause problems by being hilariou
22:37:06 <scoofy> wide 's' missing
22:37:18 <scoofy>
22:37:24 <coppro> oops
22:37:28 <{\[oren]|}> Jafet: oh right, unless we define 空 本 instead
22:37:33 <int-e> `` sed -i -e '1228s/$/s/' quotes
22:37:34 <HackEgo> No output.
22:37:37 <int-e> `` tail -1 quotes
22:37:38 <HackEgo> ​<{\[oren]|}> zzo38:it will cause problems by being hilarious
22:37:39 <{\[oren]|}> but void main is not standard
22:37:45 <oerjan> int-e: now i have hth
22:37:51 <elliott> c99 does not require return in main
22:38:43 <int-e> #include <stdlib.h>\nint main() { exit(1); } should be valid.
22:38:56 <elliott> int main() {} is valid
22:38:57 <scoofy> isn't exit an implied 'return' also?
22:39:14 <int-e> scoofy: not really.
22:39:16 <zzo38> The exit() function never returns, it just exist.
22:39:22 <zzo38> s/exist/exits/
22:39:24 <{\[oren]|}> in gcc exit has the no return attribute
22:39:25 <scoofy> why do you pass '1' to it then
22:39:31 <scoofy> if it does not 'return' anything
22:39:40 <scoofy> in fact you can check the return value after you call the program
22:39:45 <scoofy> normally
22:39:45 <{\[oren]|}> it returns it to the calling contextof the shole program
22:39:50 <int-e> scoofy: It sets the program's exit code. That's not a return value.
22:39:56 <scoofy> yep. to me, that's a 'return' value.
22:40:07 <scoofy> after all, you can simply do main() {return 1;} // does the same
22:40:14 <zzo38> It is the return value of the entire program, not of main.
22:40:15 <scoofy> except you don't need #include <stdlib.h>
22:40:19 <scoofy> exactly.
22:40:19 <int-e> scoofy: On the other hand, the return value of main() will be the exit code of the program.
22:40:25 <zzo38> However the return value of main is used as the return value of the program.
22:40:25 <scoofy> exactly.
22:40:30 <scoofy> exactly.
22:40:31 <int-e> scoofy: it's a case of an A that's a B, where B is not an A.
22:40:44 <scoofy> to me, that's a 'return value'.
22:40:54 <scoofy> you cannot convince me otherwise :)
22:40:55 <oerjan> <zzo38> s/exist/exits/ <-- i think i prefer it without the substitution hth
22:41:09 <int-e> scoofy: You made that clear. But it should be obvious by now that we don't agree on this.
22:41:14 <scoofy> that is the value that will be in the EAX register (in case of x86) after the main() function gets called.
22:41:15 <{\[oren]|}> so i have a program that converts unicode C to regular C, then i'll add some #defines for all the kanji
22:41:32 <scoofy> so ... just to be precise, we're taling about a value in a register
22:41:36 <scoofy> after a function call
22:41:44 <scoofy> and whether we should call that 'return value' or 'exit value'
22:41:47 <scoofy> it's just a value in a register
22:41:49 <scoofy> basically
22:42:03 <{\[oren]|}> C doesn't assume registers exist
22:42:07 <zzo38> How exactly the program returns to the operating system depends on the system.
22:42:09 <int-e> scoofy: Well exit(1); does not return and still sets the exit code.
22:42:25 -!- Phantom_Hoover has joined.
22:42:28 <scoofy> well, code after 'exit(1)' does not executed so.. yes it does return.
22:42:30 <elliott> do I have to teach scoofy out of thinking about C in terms of x86 assemly too?
22:42:33 <scoofy> you cannot run C on a computer that has no registers.
22:42:37 <elliott> yes you can, wtf
22:42:46 <elliott> *assembly
22:42:53 <scoofy> well, you can simulate a stack machine with a machine that has registers.
22:43:06 <elliott> scoofy: the only reason returning from main exits in real implementations is because it does the equivalent of exit(main(argc, argv))
22:43:07 <scoofy> and compile your C code to code for that stack machine. except, no one does that.
22:43:10 <zzo38> C has a "register" command, but on computers without registers it will just act the same as if "register" is not specified.
22:43:21 <elliott> if I do f(g()) and g calls f, that's not g "returning".
22:43:22 <scoofy> exactly.
22:43:27 <scoofy> so it *knows* about registers.
22:43:30 <zzo38> Even on computers that do have registers, the optimizer might get rid of the "register" specification.
22:43:36 <elliott> what
22:43:41 <zzo38> If it knows a better way.
22:43:53 <scoofy> well 'register' is a C keyword. isn't?
22:43:55 <elliott> iirc gcc and clang both just totally ignore the "register" declaration
22:43:56 <Jafet> You can run C on a machine that runs only brainfuck
22:44:02 <int-e> scoofy: which compilers tend to ignore
22:44:04 <scoofy> Jafet: proof?
22:44:05 <elliott> I don't think the C standard mentions registers when defining it, though I may be wrong
22:44:09 <scoofy> i mean, have you actually done it?
22:44:17 <elliott> there are multiple C->BF compilers...
22:44:22 <elliott> BF is turing complete, what more proof do you need?
22:44:27 <int-e> scoofy: in any case the only implication of that keyword is that it's illegal to take an address of that value. No more, no less.
22:44:28 <scoofy> ok,.
22:44:29 <vanila> proof of what
22:44:32 <scoofy> it's still a "Return value".
22:44:32 <scoofy> :)
22:44:45 <scoofy> dont' change the topic, please
22:44:47 <elliott> vanila: running C in BF, I guess...?
22:44:50 <Jafet> https://svn.code.sf.net/p/brainfuck/code/c2bf/trunk
22:44:56 <scoofy> that's bfc
22:44:57 <scoofy> not Ansi C
22:45:06 <elliott> ais523 has an incomplete brainfuck backend for gcc
22:45:10 <scoofy> i never saw an ANSI C -> BF compiler
22:45:21 <vanila> it's really hard to run C is brainfuck
22:45:23 <elliott> I don't believe you actually don't believe it's possible, it's just a bunch of work nobody wants to do, why is that relevant to what Jafet said...?
22:45:28 <vanila> the speed of the code will suffer
22:45:33 <scoofy> yeah, 'incomplete'.
22:45:40 -!- {\[oren]|} has changed nick to oren{[\afk|}].
22:45:41 <vanila> it's important to separate theory and practice
22:45:43 <Jafet> Ok, well this is pointless
22:45:48 <vanila> just because something is possible in theory doesn't mean you can actually do it
22:45:54 <vanila> e.g. it might be too difficult
22:46:06 <Jafet> Github also does some pretty pointless things
22:46:08 <int-e> Oh well. Let's relax and enjoy https://xkcd.com/386/ ;-)
22:46:10 <Jafet> “Great repository names are short and memorable. Need inspiration? How about drunken-octo-wallhack.”
22:46:48 <zzo38> Still it doesn't matter if the C standard mentions registers or not because computers without registers can just treated it as if it doesn't say register on it. However, it makes it known that the address is not taken, therefore if the compiler cannot figure it out by itself for some reason, it will know due to that; one thing that can be done if address is not taken, is storing in a register instead of in RAM.
22:47:03 <int-e> Jafet: not short, but certainly memorable
22:47:03 -!- oerjan has set topic: The channel of returning trolls | but often spelled correctly. | https://dl.dropboxusercontent.com/u/2023808/wisdom.pdf http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/.
22:47:09 <oerjan> oops
22:47:22 <int-e> oerjan: that's not too bad :)
22:47:31 <oerjan> ...i guess it's better that way.
22:47:47 <vanila> scoofy, what is your question?
22:48:10 <scoofy> me? nope, no question.
22:48:13 <vanila> ok
22:54:46 <scoofy> by the way, in a bash shell, you can check the return value of a program by this:
22:54:48 <scoofy> echo $?
22:54:51 <vanila> yes
22:55:06 <vanila> ive used this feature in bash
22:55:07 <scoofy> main() {return 42;}
22:55:17 <scoofy> gcc ret.c -o ret
22:55:18 <scoofy> ./ret
22:55:20 <scoofy> echo $?
22:55:22 <scoofy> ---> 42
22:55:33 <scoofy> same thing with exit():
22:55:46 <scoofy> #include <stdlib.h>
22:55:51 <scoofy> main() {exit(42);}
22:55:56 <scoofy> gcc ret2.c -o ret2
22:55:57 <oerjan> @tell tswett <tswett> Is there a largest ordinal number A such that the set of all ordinal numbers below A has computable arithmetic? <-- my hunch is no: whatever computation system you use, you can _always_ adjust it to handle one more level.
22:55:57 <lambdabot> Consider it noted.
22:55:57 <scoofy> ./ret2
22:55:58 <scoofy> echo $?
22:55:59 <scoofy> ---> 42
22:56:01 <scoofy> same result
22:56:20 <vanila> scoofy, that's right
22:56:47 <scoofy> you can try it to confirm yourself, that the effect of 'return' and 'exit' is the same
22:57:01 <vanila> its not the same
22:57:07 <scoofy> semantics.
22:57:09 <vanila> would you like to see a situation where they act differently?
22:57:13 <scoofy> please.
22:57:25 <scoofy> well, there's 1 different case: when you call main() yourself from the program.
22:57:32 <scoofy> unless you do that - no difference.
22:57:34 <scoofy> in main()
22:57:40 <oerjan> @tell tswett Now, if you change the question to "Is there a largest ordinal number A such that for each ordinal number B < A, the set of all ordinal numbers below B has computable arithmetic?" then the answer becomes "yes".
22:57:40 <lambdabot> Consider it noted.
22:57:47 <vanila> int f() { return 42; } main() { return 1+f(); }
22:58:00 <vanila> int f() { return exit(42); } main() { return 1+f(); }
22:58:05 <scoofy> lol
22:58:06 <scoofy> i said
22:58:08 <scoofy> IN MAIN
22:58:14 <scoofy> not IN ANOTHER function
22:58:21 <vanila> you're right about in main
22:58:25 <scoofy> of course that will exit the program in f()
22:58:30 <vanila> yes
22:58:35 <scoofy> i meant: exit() and return have the same role IN MAIN function *only*.
22:58:44 <scoofy> (and, not other functions.)
22:58:46 <vanila> correct
22:58:53 <scoofy> i'm glad we agree.
22:58:57 <oerjan> scoofy: i don't believe anyone here disagrees with you on a matter of fact, just terminology.
22:59:06 <vanila> do you have any more questions about beginner level C?
22:59:08 <scoofy> okay, just clarified that.
22:59:18 <scoofy> do you have any?
22:59:22 -!- roasted42 has joined.
23:00:44 <vanila> scoofy, you can read assembly code can't you?
23:00:50 <scoofy> i can.
23:01:01 <vanila> what about comparing the assembly code for ret and ret2?
23:01:08 <scoofy> they will likely be different.
23:01:12 <scoofy> so what's your point?
23:01:34 <vanila> its just a learning exercise, but looks like you already understand
23:01:40 <scoofy> in assembly, there are usually at least 10 ways of doing something.
23:02:07 <scoofy> dude, i create virtual machines and write assemblers myself
23:02:18 <scoofy> but thanks for your 'basic learning tips'
23:02:36 <vanila> oh sorry
23:02:39 <scoofy> no problem
23:02:47 <vanila> i didn't realize
23:02:52 <vanila> im just a beginner at assembly
23:03:04 <scoofy> it is fun! ;)
23:03:19 <vanila> yea him enjoying learning about it but its so painstakingly slow
23:03:33 <scoofy> why so?
23:03:45 <vanila> im used to high level languages
23:03:51 <vanila> so asm is like building brick by brick
23:03:57 <scoofy> indeed.
23:03:58 <vanila> but i want to get good at it so i can write a compiler
23:04:04 <scoofy> that's a good excercise.
23:04:12 <scoofy> one of the best, actually.
23:04:15 <vanila> :D
23:04:42 <scoofy> a side effect of learning assembly deeply, is that you will never look at the 'higher level' languages the same way
23:04:58 <scoofy> because after writing a compiler, you will realize that everything translates to registers and operations on them
23:05:06 <vanila> yeah I know what you mean!
23:05:12 <scoofy> however high level abstractions you start from
23:05:23 <oerjan> <int-e> Oh it's just data Ord = Zero | Succ Ord | Lim (Nat -> Ord), where the Nat -> Ord function is computable. <-- i think that's essentially the representation that was used by whoever here implemented the goodstein sequence in System F after it was pointed out this should be possible
23:05:42 <oerjan> i think it may have been impomatic
23:05:42 <vanila> data Ord = Zero | Succ Ord | Lim (Nat -> Ord) seems awfully small
23:05:44 <vanila> what about
23:05:54 <vanila> data Ord2 = Zero2 | Succ2 Ord2 | Lim (Ord -> Ord2)
23:06:39 <oerjan> vanila: possibly Ord -> Ord2 functions are hard to construct?
23:06:50 <zzo38> I once wrote a compiler that compiles the OASYS source format into OASYS binary format; it has no registers it is only stack base operation.
23:07:05 <zzo38> So, not everything translates to registers and operations on them, due to this.
23:07:08 <oerjan> i don't really understand this representation myself, anyway
23:07:52 <vanila> oerjan, well 'Lim' means the limit of the infinite sequence of ordinals
23:08:07 <vanila> so Lim natToOrd would be omega
23:08:22 <oerjan> i understand that, i don't quite understand how that allows you to calculate with them.
23:08:41 <oerjan> it seems very non-canonical, at least
23:08:47 <vanila> I think that the only thing that really matters is doing structural recursion on them
23:08:56 <vanila> to get your induction power
23:09:11 <oerjan> yeah that would be enough for the goodstein sequence at least
23:10:43 <vanila> conways one is really good
23:10:55 <vanila> but it requires you to build everything mutually
23:13:08 -!- roasted42 has quit (Ping timeout: 264 seconds).
23:13:13 <oerjan> vanila: do you have a link?
23:13:24 <vanila> sorry, its in the surreal numbers book
23:13:28 <oerjan> ah
23:14:46 <elliott> <scoofy> well, there's 1 different case: when you call main() yourself from the program.
23:14:47 -!- roasted42 has joined.
23:14:49 <elliott> this is actually illegal btw
23:15:11 <coppro> elliott: legal in C, illegal in C++ iirc
23:15:19 <elliott> C allows it, really?
23:15:44 <coppro> yes
23:15:49 <elliott> okay yeah, seems so
23:15:52 <elliott> ...why does C++ disallow it?
23:16:03 <elliott> something with static initialisation or constructors or whatever or the like?
23:16:05 <coppro> yeah
23:16:20 <Jafet> Some compilers put those into main
23:16:21 <coppro> the compiler can put static init code in main
23:17:00 <vanila> I thought _start was used for that
23:17:07 <coppro> vanila: in some ABIs it is
23:17:08 <scoofy> i see recursive main() sometimes in nasty code (mostly in obfuscated C contests)
23:17:13 <zzo38> Calling main() should be allowed; any other initialization should go in a separate function that calls main
23:17:27 <zzo38> And then the compiler can inline main if it is found to be safe to do so.
23:17:29 <Jafet> https://github.com/Jafet/drunken-octo-wallhack
23:17:58 <elliott> Jafet: does this do the fancy efficient stuff?
23:18:44 <Jafet> It manages to run the one extant eodermdrome program
23:18:54 <Jafet> Also, computers are fast dude
23:19:58 <oerjan> ooh
23:20:18 <int-e> computers are fast but always too slow
23:20:41 <Jafet> For most programs you can get a big speedup by first checking the graph nodes that changed in the previous step
23:20:52 <Jafet> ("most" ie. 1 out of 1 existing programs)
23:21:17 <oerjan> yay
23:21:51 <oerjan> well it _is_ designed to be deterministic, so that's obvious
23:24:04 <oerjan> in hindsight
23:26:46 -!- dts|pokeball has quit (Read error: Connection reset by peer).
23:27:16 <oerjan> @metar ENVA
23:27:16 <lambdabot> ENVA 242250Z 12011KT CAVOK M15/M18 Q1015 RMK WIND 670FT 15007KT
23:27:21 <oerjan> eek
23:27:54 <oerjan> i guess it _is_ after midnight
23:28:30 -!- dts|pokeball has joined.
23:29:06 <int-e> @metar LOWI
23:29:06 <lambdabot> LOWI 242320Z AUTO 24003KT 9999 NCD M03/M05 Q1025
23:29:27 <int-e> honestly? that's cold enough.
23:29:53 <oerjan> at least we have snow on the ground this year
23:30:18 * oerjan was commenting on oren{[\afk|}]'s complaints, but he seems afk
23:34:29 -!- shikhin_ has joined.
23:34:35 -!- oren{[\afk|}] has changed nick to oren.
23:35:22 <oren> oerjan: yeah, i guess one day we'll all be living under domes
23:35:52 <oren> holy crap did I miss some discuassion of C?
23:36:32 <oren> not every C program begins at main y'know
23:37:30 <vanila> yes it does ?
23:37:31 -!- shikhin has quit (Ping timeout: 244 seconds).
23:37:39 <int-e> oren must be a fan of free-standing implementations, or looking under the hood (dynamic linker, libc, elf format, etc)
23:38:02 <oren> nope, on win32 it begins at WinMain()
23:39:04 -!- copumpkin has joined.
23:39:23 <vanila> ogh
23:39:37 <elliott> WinMain is just like the SDL_main nonsense I think
23:39:42 <elliott> i.e. it's specific to doing graphical stuff
23:39:57 <elliott> (you're effectively linking with a library that has a main() that calls WinMain, I think?)
23:40:01 * oerjan read that as SDL_main_nonsense for a subsecond
23:40:30 <Jafet> SDL is very modular and allows you to load auxiliary nonsense.
23:41:11 <oren> elliott: i dunno. the MSDN doesn't mention there being a main that calls WinMain
23:41:17 <fizzie> elliott: I seem to recall the "pre-main" startup code does call WinMain directly. But it's all very platform-specific.
23:41:20 -!- roasted42 has quit (Ping timeout: 244 seconds).
23:41:21 <elliott> fizzie: right.
23:41:38 <elliott> well windows has lots of opinions on what C code should look like and they are all vaguely horrific
23:41:59 <fizzie> Arguably, a program with an entry point called something else than "main" is not a C program at all, or at least not a hosted one.
23:42:27 -!- roasted42 has joined.
23:43:09 <fizzie> C11 "The function called at program startup is named main." (It can be defined in some implementation-defined manner even in hosted implementations, but the name's not negotiable.)
23:43:12 <oren> bah... why is DWORD any worse than int32_t
23:43:32 <fizzie> One is in the standard and the other is not.
23:43:33 <elliott> fizzie: it's ~as if~ you linked to a main() that calls WinMain, good enough, right?
23:43:51 <fizzie> I guess you could use that cop-out.
23:44:39 <fizzie> (Although even then you could claim what you have is just a fragment of a program, not a complete thing.)
23:45:17 <zzo38> If you have a C program without main() then it is a C program that cannot start by itself.
23:45:19 <fizzie> WinMain is kind of funny in that it has the command line intact in a single string.
23:46:18 <oren> zzo38: no program in any language can do that
23:46:37 <int-e> fizzie: I believe they stole that idea from DOS, which got it from CP/M ;)
23:47:41 <fizzie> (There's a "CommandLineToArgvvW" function in the API to deal with what GetCommandLineW returns.)
23:48:25 <oren> basically MS thinks standard compliance is less important than backward compatibility
23:48:47 <oren> which is, from a business point of view, the right thing
23:48:55 <fizzie> If you write a console subsystem application, you get to use a regular main.
23:49:39 <elliott> https://stackoverflow.com/questions/11785157/replacing-winmain-with-main-function-in-win32-programs/11785733#11785733
23:50:25 <elliott> "hPrevInstance is always NULL." god bless america
23:50:47 <scoofy> thanks Obama
23:50:54 <fizzie> Right; "mainCRTStartup" is the entry point that calls regular main, and WinMainCRTStartup is the other one.
23:51:35 <fizzie> (And the mingw toolchain adds its own little peculiarities in there.)
23:55:21 -!- contrapumpkin has joined.
23:55:38 -!- vanila has quit (Quit: Leaving).
23:57:05 -!- copumpkin has quit (Ping timeout: 258 seconds).
←2014-12-23 2014-12-24 2014-12-25→ ↑2014 ↑all