00:06:57 <oerjan> the pooch-turtle theory of gravitational collapse
00:10:20 -!- hppavilion[2] has joined.
00:14:55 -!- tromp has joined.
00:18:01 <hppavilion[2]> Marketing seems like it would be less fun than engineering
00:18:24 <hppavilion[2]> In marketing, the phrase "what if we just...?" is not applicable nearly as often
00:19:42 -!- tromp has quit (Ping timeout: 260 seconds).
00:19:51 <boily> hppavilion[2]: hppavellon[1]. please github me your username. your codoctor is particularly nasty hth
00:21:37 -!- hppavilion[2] has changed nick to hppavilion[1].
00:22:31 <shachaf> in soviet russia, the evidence codoctors you hth
00:24:24 <oerjan> `le/rn soviet russia/¯\(°_o)/¯ soviet russia?
00:24:53 <HackEgo> wisdom/brontosaurus \ wisdom/lystrosaurus \ wisdom/russell's teapot \ wisdom/russia \ wisdom/rust \ wisdom/soviet russia \ wisdom/the torus \ wisdom/torus
00:24:58 <boily> hppavilion[1]: you are the one who added the codoctorwisdom. you are responsible for it.
00:25:00 <shachaf> Taneb: how do you feel about about being confused with a jackal twh
00:25:09 <HackEgo> wisdom/soviet russia \ wisdom/soviet union
00:25:57 <shachaf> boily: i've always assumed so
00:26:05 <shachaf> since the hebrew word for jackal is "tan"
00:26:20 <shachaf> but i didn't realize i'd always assumed so until just now
00:26:25 <hppavilion[1]> boily: You're welcome. Maybe you should stop using LaTeX because of Knuth's stupid crusade against Blackboard Bold and use some more good format
00:26:26 <boily> and -eb is is a Hebrew suffix for "like a jackal"?
00:26:44 * boily thwacks hppavilion[1] for spouting heresies
00:27:22 <oerjan> what crusade, i've use blackboard bold in LaTeX many times
00:27:46 <lambdabot> KOAK 142253Z 29017KT 10SM FEW025 FEW200 18/07 A3013 RMK AO2 SLP204 T01780072 PNO
00:28:37 <hppavilion[1]> oerjan: I mean blackboard bold beyond \mathbb C, R, Z, Q, and A (I think A is an option)
00:28:39 <oerjan> might require a package.
00:28:40 <lambdabot> PANC 142253Z 16003KT 10SM FEW065 SCT120 SCT200 11/M01 A2961 RMK AO2 SLP026 SH DSNT N T01111011
00:29:00 <oerjan> hppavilion[1]: pretty sure N is included.
00:29:03 <hppavilion[1]> oerjan: AMS math includes it (much to Knuth's dismay, I imagine), but only the common ones
00:29:04 <shachaf> Ted Stevens Anchorage International Airport
00:29:06 * boily sings to some cute touhou remix ”la la la la la ♪“
00:30:26 <hppavilion[1]> I HAVE TRAVELED TO THE ENDS OF THE EARTH TO CONCEAL MYSELF and it was just a coincidence, wasn't it?
00:30:28 <shachaf> why does everything have to be about you
00:30:45 <boily> hppavilion[1]: what am I not?
00:30:47 <shachaf> Actually I got it from your Github profile.
00:31:19 <oerjan> hppavilion[1]: it could have had _something_ to do with your mention that you're in anchorage.
00:31:22 <boily> oh, github! plase to gib me hppavilion[1]username for graet good!
00:32:19 <hppavilion[1]> I'll change it to East Virginia if that's possible
00:32:43 <shachaf> Did you know Ted Stevens or something?
00:33:38 <oerjan> is that a murder confession.
00:33:55 <hppavilion[1]> Needless to say, they are still trying to figure out how I convinced air traffic control I was a pilot.
00:34:15 <boily> . o O ( hmm... should I put "deniability" in the things chapter, or the tanebventions one... )
00:34:45 <HackEgo> Deniability was not invented by Taneb.
00:35:04 <HackEgo> I must confess, I know not of what you are speaking.
00:37:04 <shachaf> When I played Worms when I was young, when one side would win, its worms would say "Victory!".
00:37:22 <shachaf> But I thought they were talking about Queen Victoria.
00:37:58 <oerjan> `learn Victoria was the most victorious queen the world has ever known.
00:38:05 <HackEgo> Learned 'victoria': Victoria was the most victorious queen the world has ever known.
00:39:21 <hppavilion[1]> `le/rn victoria/Queen Victoria is the most victorious queen the world has ever known, even having won at the not dying contest.
00:40:09 <boily> please refrain from learning things while I update the PDF hth.
00:40:27 <hppavilion[1]> boily: I'm sorry, I cannot properly integrate that information for some reason.
00:40:46 <boily> if you give me your github username, it'll help the matter hth
00:40:47 <oerjan> hppavilion[1]: it feels like a reference to something i have never seen.
00:41:24 -!- p34k has quit.
00:41:35 <hppavilion[1]> oerjan: The closest thing to a reference it is is the idea of being able to play a game against death where the stakes are mortality
00:41:45 <boily> hppavilion[1]: YES, AND IT DIDN'T WORK. *mumble grumble*
00:41:57 <shachaf> @google hppavilion[1] github
00:41:58 <lambdabot> https://github.com/cmatsuoka/codecgraph/blob/master/samples/hp-pavilion-dv7.txt
00:42:04 <shachaf> @google hppavilion[1] github account
00:42:05 <lambdabot> https://github.com/magento/magento2/issues/3407
00:42:12 <shachaf> @google "hppavilion[1]" on github
00:42:13 <lambdabot> https://github.com/ZodiacWorkingGroup/TaurusVM/blob/master/README.md
00:42:19 <shachaf> @google who is "hppavilion[1]"
00:42:20 <lambdabot> http://www.reddit.com/user/hppavilion
00:42:28 <hppavilion[1]> boily: Hint: When I first joined #esoteric, I didn't have the brackets
00:42:55 <boily> everybody's on reddit.
00:42:59 <hppavilion[1]> boily: Though I have a feeling you've already found me
00:43:51 <boily> especially fungot.
00:43:52 <oerjan> no, fungot is just on twitter.
00:44:03 <boily> fizzie: FUNGOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOŐOOOOOOOOOT!
00:45:22 <hppavilion[1]> And what is the standard entertainingness of normal a got?
00:45:58 * oerjan feels like giving hppavilion[1] a CAPTCHA.
00:47:01 <oerjan> . o O ( we need a bot to send HackEgo commands so it stays responsive )
00:47:11 <HackEgo> lingpoirt dely horney atorbyllico saary foder hize kaisat reedici reba clar craw pably reuthesin gefa poassion ancr age latum scure
00:47:34 <hppavilion[1]> oerjan: But what happens when PokeEgo starts to lag?
00:47:36 <HackEgo> merintcoin kaycoin forcoin beartrovcoin xxvicoin concoin mechocoin crarcoin ]coin cadmiruntcoin mixingcoin lazcoin rocercolahcoin friecoin slycoin byterivincoin rffcoin brazempocoin 39.3coin attacoin
00:48:04 <oerjan> hppavilion[1]: shouldn't be a problem if we just avoid cloudatcost
00:48:41 <hppavilion[1]> shachaf: What about cloudisomorphictobutnotequivalenttocost?
00:48:49 <oerjan> hmph privileged commands don't get spell corrected i think
00:49:01 <shachaf> i don't know what isomorphism of cost is
00:49:10 <lambdabot> Maybe you meant: pointful pointless pointy join
00:49:21 <hppavilion[1]> shachaf: I don't know what isomorphism is strictly, so I'm going to go google it
00:49:35 <oerjan> oh it was corrected but too far
00:50:11 <lambdabot> Enigmagic says: this calls for mfix and some tequila
00:50:24 <hppavilion[1]> shachaf: Well, an isomorphism is a type of homomorphism
00:50:35 <hppavilion[1]> shachaf: And homomorphisms map between algebraic structures
00:52:31 <hppavilion[1]> Wait, cryptocurrency is crypto- as in cryptography, not crypto- as in cryptozoology
00:55:16 <hppavilion[1]> A currency where units are higher-order functions rather than integers?
00:57:48 <HackEgo> infuckcoin rntnacoin raysnaircoin oriconcoin giblecoin wtfcoin xsmcoin judecoin bincoin flabtycoin 2-illumcoin msitiocoin stantioncoin rincoin alemichinercoin condiacoin kelectcoin blaugyonemibblinel-peturesparcoin jothenameofthecoin norcoin
00:57:58 <boily> ♪ DING ♪ D, E, and F!
01:08:10 <\oren\> i want a currency fixed to the value of plutonium
01:08:35 <\oren\> for mythological reasons
01:09:16 <hppavilion[1]> \oren\: Though would prefer rikj ("Rick J.") currency.
01:09:26 <boily> \oren\: he\\oren\.
01:09:35 <boily> \oren\: why mythological system, and why?
01:10:31 * oerjan thinks infuckcoin could catch on.
01:11:26 <hppavilion[1]> A cryptography system where a message is encrypted in such a way that the output message is variable by key used, so you plug in two messages (m, n) and two public keys (k, l) and it produces a cyphertext which when decrypted with k produces message m and when decrypted with l produces message n
01:12:19 <hppavilion[1]> WITH the property that one message can't be used to decrypt other messages
01:12:27 <hppavilion[1]> Preferably, you could have an infinite number of messages assigned to keys
01:13:18 <hppavilion[1]> This would be useful somehow and for some reason, I'm sure
01:15:14 <hppavilion[1]> \oren\: Any idea what commutative bihashing could be useful for?
01:19:44 <shachaf> oerjan: how about jothenameofthecoin
01:20:17 <boily> norcoin: Nortti's Coin.
01:20:32 <oerjan> jothenameofthecoin is pretty good.
01:21:53 <hppavilion[1]> boily: norcoin is based on NOR as its encryption algorithm
01:22:33 <HackEgo> cat: nooodlcoin: No such file or directory
01:22:46 <pikhq> That sounds like an exceptional crypto algorithm.
01:22:49 <HackEgo> cat: waaaalrus: No such file or directory
01:23:05 <pikhq> Almost as good as 2ROT13.
01:23:41 <pikhq> 2 rounds of ROT13, of course.
01:23:57 <oerjan> . o O ( time to start going back to `run )
01:24:00 <hppavilion[1]> pikhq: NOR is actually better because many messages are undecipherable
01:24:33 <HackEgo> cat: echo: No such file or directory
01:24:40 <HackEgo> cat: bin/echo: No such file or directory
01:25:03 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: `cat: not found
01:25:09 <HackEgo> âELF............>.....¤@.....@.......b..........@.8..@.........@.......@.@.....@.@.....ø.......ø....................8......8@.....8@............................................@.......@.....W......W........ ............à]......à]`.....à]`.....°......`........ ...........ø]......ø]`.....ø]`.....à.......à................
01:25:23 <shachaf> `` echo -n 'noo' > /tmp/file; echo 'dl' > /tmp/file; cat /tmp/file
01:25:32 <shachaf> `` echo -n 'nooo' > /tmp/file; echo 'dl' >> /tmp/file; cat /tmp/file
01:25:36 <shachaf> `` echo -n 'nooo' > /tmp/file; echo 'dl' >> /tmp/file; cat /tmp/file
01:25:43 <shachaf> `` echo -n 'nooo' > /tmp/file; echo 'dl' >> /tmp/file; cat /tmp/file
01:26:25 <HackEgo> \ /bin/echo: file format elf64-x86-64 \ \ \ Disassembly of section .init: \ \ 0000000000400ff8 <.init>: \ 400ff8:48 83 ec 08 sub rsp,0x8 \ 400ffc:e8 cf 07 00 00 call 4017d0 <__ctype_b_loc@plt+0x530> \ 401001:48 83 c4 08 add rsp,0x8 \ 401005:c3 ret \ \ Disassembly of s
01:26:34 <HackEgo> File: `/bin/echo' \ Size: 27008 Blocks: 56 IO Block: 1024 regular file \ Device: bh/11dInode: 393111 Links: 1 \ Access: (0755/-rwxr-xr-x) Uid: ( 0/ UNKNOWN) Gid: ( 0/ UNKNOWN) \ Access: 2016-04-14 17:00:49.000000000 +0000 \ Modify: 2013-01-26 21:07:42.000000000 +0000 \ Change: 2014-01-29 02:35:46.000000000 +0000
01:27:05 <shachaf> just looking for the mtime
01:28:02 <shachaf> `` echo "random nooodl: $NOOODL"
01:28:22 <HackEgo> grep: wisdom/le: Is a directory \ grep: wisdom/¯\(°_o): Is a directory \ grep: wisdom/¯\(°_o): Is a directory \ wisdom/noooooodl:noooodl is the correct spelling \ wisdom/pho:Phở is a Vietnamese soup invented by noooooodl to stress-test implementations of Unicode combining characters. \ Binary file wisdom/reflection matches
01:28:25 <HackEgo> /hackenv/bin/roll: line 17: ((: 0 < : syntax error: operand expected (error token is "< ") \ 0
01:29:10 <shachaf> `` cat wisdom/reflection /tmp/nooodl
01:29:11 <HackEgo> cat: /tmp/nooodl: No such file or directory \ cat.wisdom/reflection./tmp/nooooooooodl.
01:30:53 <oerjan> shachaf: i think hppavilion[1] may have passed on to the next subject
01:31:50 <hppavilion[1]> If one were to make a super-TC ASM, what kinds of instructions would need to be added?
01:32:13 <oerjan> shachaf: it happened _again_. marvelous, isn't it.
01:32:23 <hppavilion[1]> Where "take a program stored in memory and jump if it halts for a given input" is against the rules
01:32:32 <shachaf> i think oerjan may be making fun of you hth
01:33:19 <hppavilion[1]> oerjan: Basically, what is the simplest ASM instruction that /isn't/ dirty and over-specified that makes that ASM super-TC?
01:33:21 * boily prods oerjan with his mapole
01:33:28 <oerjan> i'm also making fun of shachaf's futile attempts at demonstrating the answer to the previous subject hth
01:33:46 <hppavilion[1]> (I formally defined "dirty and over-specified" yesterday for the folks on ##math, but I seem to have misplaced the link)
01:34:39 <oerjan> hppavilion[1]: DOESITHALT hth
01:35:39 <hppavilion[1]> oerjan: "Dirty and overspecified" is defined as "solves a single high-level decision problem and closely related problems instantly"
01:36:12 <hppavilion[1]> oerjan: So BUSYBEAVER and DOESITHALT are both D&OS
01:36:37 <oerjan> hppavilion[1]: what about twoducks-like time travel, then.
01:37:51 <oerjan> returns to a previous time
01:38:17 <oerjan> i suppose it should also give a result there, like a continuation
01:39:16 <oerjan> hm not quite sure if that's super-TC
01:39:27 <oerjan> might just be feather-like
01:39:54 <shachaf> Someone in another channel reminded me of Vortex Math.
01:39:57 <shachaf> https://www.youtube.com/watch?v=zhBymLCRIU8
01:40:31 <boily> oerjan: come come, don't be afraid of links!
01:40:33 <shachaf> oerjan: but it's so wonderful
01:41:39 <hppavilion[1]> oerjan: I don't think it's super-TC, because you could just record the program state at every moment in time up until now.
01:42:08 <hppavilion[1]> oerjan: What you need for super-TC is one that can jump into the future (without doing the computation in between)
01:43:33 <hppavilion[1]> oerjan: If the FUCKAROUND command can deal with program-that-has-halted, it may be super-TC
01:43:38 * oerjan gets bored and quits before getting to actual "math"
01:43:57 <shachaf> oerjan: so you're saying you watched it to the end?
01:44:24 <oerjan> i put the quotes on on purpose.
01:44:27 <hppavilion[1]> oerjan: Wait, WINDBACK doesn't work, but SENDBACK does
01:44:57 <hppavilion[1]> SEND v a t sets the value at address a to v at the t'th execution step
01:45:33 <shachaf> oerjan: ok maybe i didn't make it clear what kind of video it was when i linked it
01:46:09 <oerjan> hppavilion[1]: https://esolangs.org/wiki/TwoDucks
01:46:43 <hppavilion[1]> oerjan: WINDBACK is just Feather, but SENDBACK can set a value before it has been computed
01:47:12 <hppavilion[1]> oerjan: WINDBACK just needs you to save the current program state at every point in execution
01:47:50 <hppavilion[1]> oerjan: Speaking of super-TCness, I had an awesome idea. Did I tell you about it?
01:48:04 <oerjan> yes, then i promptly forgot.
01:48:09 <hppavilion[1]> (No, I'm not becoming a crank. This isn't about making a super-TC machine)
01:48:30 * oerjan prepares the amnesiac machine
01:49:14 <hppavilion[1]> Design and implement a relatively simple (but, for one not exposed to esolangs in prior, novel and interesting and seemingly useful) programming language
01:49:55 <hppavilion[1]> oerjan: It should be based off of a carefully-designed abstract machine, perhaps one that seems almost TC but isn't
01:50:04 <hppavilion[1]> Phase 2 is to devise a solution to the halting problem for this machine,
01:50:08 <boily> oerjan: hppavilion[1]'s a class D?
01:50:51 <oerjan> boily: no no, i mean to use it on myself, so i can forget it again
01:51:11 <hppavilion[1]> It should be rolled into a compiler for the language, because it's a simple enough language to justify compilation
01:51:13 * boily still suspects hppavilion[1] to be class D...
01:51:22 <oerjan> boily: that does explain so much
01:51:40 <oerjan> boily: either that or class Euclid
01:51:47 <hppavilion[1]> The compiler should, given a program, print an unassuming message saying "This program [will|won't] halt"
01:52:04 <hppavilion[1]> It should be part of a list of messages, so you don't see it immediately
01:52:43 <hppavilion[1]> Phase 3 is to give this compiler to first-year CS students under the pretense of them testing the language and looking for flaws, careful not to tell them any of this
01:53:14 <hppavilion[1]> oerjan: Then you wait for them to encounter a bug and read the compiler printout for guidance, and see this unassuming little message that just doesn't fit.
01:54:24 <hppavilion[1]> (And since the machine is NTC, it can be 100% accurate, but the machine has to /look/ TC, albeit some fudging with the documentation would be required)
01:55:10 -!- heroux has quit (Ping timeout: 244 seconds).
01:55:14 <oerjan> hppavilion[1]: problem: halting depends on input, which is not known at compile time.
01:55:47 <hppavilion[1]> oerjan: Probably we just say the language doesn't have proper IO yet, so you need to give it batch input before it compiles
01:56:01 -!- heroux has joined.
01:56:12 <hppavilion[1]> (I trust that your average CS student won't question that)
01:56:21 <oerjan> also, if a language is "almost TC", then deciding halting will likely be a > lifetime-of-universe task.
01:56:56 <oerjan> because it's easy to create terminating languages that still take enormous resources.
01:58:11 <HackEgo> [wiki] [[MDPN]] M https://esolangs.org/w/index.php?diff=46779&oldid=11116 * LegionMammal978 * (+13) /* External resources */
01:58:17 <oerjan> oh total functional programming
01:58:22 <hppavilion[1]> oerjan: Total Functional Programming. An area of reasearch for languages that are not TC, rather being decidable
02:02:47 <shachaf> That was Knuth's instruction, right?
02:05:50 <HackEgo> [wiki] [[DumbScript]] M https://esolangs.org/w/index.php?diff=46780&oldid=9317 * LegionMammal978 * (+27) /* Download */
02:06:22 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
02:08:39 <HackEgo> [wiki] [[WILSON]] M https://esolangs.org/w/index.php?diff=46781&oldid=35507 * LegionMammal978 * (+13) /* External resources */
02:09:38 <HackEgo> [wiki] [[BrainFNORD]] M https://esolangs.org/w/index.php?diff=46782&oldid=21781 * LegionMammal978 * (+13)
02:10:22 -!- Phantom_Hoover has quit (Remote host closed the connection).
02:26:09 -!- boily has quit (Quit: STEREOSCOPIC CHICKEN).
02:31:45 -!- tromp has joined.
02:36:57 -!- tromp has quit (Ping timeout: 276 seconds).
02:38:07 -!- Elronnd has changed nick to earenndil.
02:38:21 -!- earenndil has changed nick to Elronnd.
03:04:22 -!- hppavilion[1] has joined.
03:06:52 <hppavilion[1]> shachaf: Did you ever figure out left-associative SK?
03:07:04 <shachaf> no i hppavilion[1]ed it hth
03:07:47 <oerjan> i'm still thinking a bit about it
03:08:00 <hppavilion[1]> shachaf: Did you consider the tree representation?
03:08:19 <oerjan> in particular, whether you can do it with only initial (.) combinations
03:09:04 <hppavilion[1]> shachaf: Apparently, CL isn't supposed to be written with parentheses or `s, it's supposed to be drawn out as a tree
03:09:06 <oerjan> also, that okasaki paper solves the general problem
03:09:25 <hppavilion[1]> shachaf: Where the the child of a node is its arguments
03:10:18 <hppavilion[1]> shachaf: So it might just be a problem of "can a singly-linked list where the child of a node is its arguments represent anything of use
03:10:44 <oerjan> http://www.westpoint.edu/eecs/SiteAssets/SitePages/Faculty%20Publication%20Documents/Okasaki/jfp03flat.pdf
03:10:47 <shachaf> "Flattening combinators"! That was the name.
03:11:04 <hppavilion[1]> shachaf: Wait, wouldn't cxyzabcdef be (((((((((c x) y) z) a) b) c) d) e) f)?
03:11:50 <hppavilion[1]> shachaf: So it seems like what you're looking for is a way to encode a program in unary, then you stick that in a combinator where the number of arguments is the program
03:13:28 <hppavilion[1]> shachaf: But I have a feeling the proof is going to be "nothing interesting is possible"
03:17:19 <hppavilion[1]> What happens when you do purely-functional stack programming?
03:17:37 <oerjan> shachaf: i haven't yet been able to prove that you _cannot_ use just dot and (dot dot). not been trying that hard, mind you.
03:19:22 <hppavilion[1]> ((call/cc call/cc) (call/cc call/cc)) ;; Story of my life ;-;
03:23:16 -!- hppavilion[2] has joined.
03:23:16 <oerjan> hppavilion[1]: you get underload, or slightly more mainstream, joy
03:26:07 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
03:26:07 -!- newsham has quit (Ping timeout: 252 seconds).
03:52:36 <oerjan> incidentally S and K alone don't work. i suspect adding I doesn't help.
03:53:18 <FreeFull> Maybe you could add something that forces things to associate differently
03:53:50 <oerjan> because Sabc = ac(bc). if a is K that gives nothing new. is a is S you end up in a recursion that eventually gives nothing new.
03:54:08 <oerjan> FreeFull: that's cheating
04:00:53 <HackEgo> [wiki] [[Special:Log/upload]] overwrite * Kaynato * uploaded a new version of "[[File:Daoyu Level Table.png]]": SWAPS is now a NOP at level 1.
04:01:15 -!- centrinia has quit (Quit: Leaving).
04:01:55 <oerjan> hm I might mess up the argument
04:09:21 -!- centrinia has joined.
04:18:45 -!- lambda-11235 has joined.
04:18:57 <\oren\> I am considering making an implementation of brainfuck in kOS, so m space probes can be controlled with brainfuck
04:19:39 -!- iconmaster has quit (Ping timeout: 276 seconds).
04:22:13 -!- newsham has joined.
04:26:33 -!- devhydraz has joined.
04:26:34 -!- devhydraz has quit (Changing host).
04:26:34 -!- devhydraz has joined.
04:27:39 -!- yorick__ has joined.
04:27:39 -!- yorick__ has quit (Changing host).
04:27:39 -!- yorick__ has joined.
04:28:10 -!- nortti_ has joined.
04:30:22 -!- tromp has joined.
04:32:35 -!- hydraz has quit (*.net *.split).
04:32:35 -!- earendel has quit (*.net *.split).
04:32:35 -!- lambdabot has quit (*.net *.split).
04:32:35 -!- yorick has quit (*.net *.split).
04:32:35 -!- lifthrasiir has quit (*.net *.split).
04:32:35 -!- nortti has quit (*.net *.split).
04:42:12 -!- lifthrasiir has joined.
04:46:45 <\oren\> kerbal operating system is a mod that lets you program arbitrary actions into your probes
04:47:58 <\oren\> e.g "if we are below a certain altitude, lower landing legs and blast until speed is less than blah
04:49:10 <\oren\> using a programming language similar to BASIC
04:50:17 <\oren\> so even if you're using RemoteTech, you don't need your probes to have signal at all times
04:52:37 <\oren\> (i'm interested in using it to provide stationkeeping)
04:53:51 -!- hppavilion[2] has quit (Ping timeout: 264 seconds).
05:02:06 <\oren\> I'm also working on a parts pack mod for ksp
05:08:13 -!- lambdabot has joined.
05:25:49 <\oren\> is "Watson Aerospace" a good name for a mod? or too generic
05:30:34 -!- shikhin_ has changed nick to shikhin.
05:34:27 -!- tromp has quit (Remote host closed the connection).
05:37:03 -!- copumpkin has joined.
05:42:26 -!- zgrep has quit (Excess Flood).
05:43:41 -!- zgrep has joined.
06:00:58 -!- fowl has joined.
06:03:02 -!- oerjan has quit (Quit: Nite).
06:07:30 -!- hppavilion[2] has joined.
06:17:10 -!- hppavilion[2] has quit (Ping timeout: 252 seconds).
06:19:09 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
06:19:42 -!- earendel has joined.
06:24:52 -!- centrinia has quit (Ping timeout: 260 seconds).
06:26:10 -!- Sgeo__ has joined.
06:27:28 -!- j-bot has quit (Ping timeout: 264 seconds).
06:28:05 -!- heroux has quit (Ping timeout: 264 seconds).
06:28:05 -!- Sgeo_ has quit (Ping timeout: 264 seconds).
06:28:05 -!- erdic has quit (Ping timeout: 264 seconds).
06:28:05 -!- deltab has quit (Ping timeout: 264 seconds).
06:29:21 -!- deltab has joined.
06:29:29 -!- erdic has joined.
06:29:54 -!- heroux has joined.
06:35:06 -!- tromp has joined.
06:39:43 -!- tromp has quit (Ping timeout: 252 seconds).
06:42:38 -!- hppavilion[2] has joined.
07:07:13 <hppavilion[2]> Apparently, YouTube stores their views using signed integers
07:08:48 <pikhq> Not sure why they went with signed but w/e.
07:08:59 <pikhq> An int64_t is probably plenty.
07:09:28 <pikhq> At the very least, I think we've got other, more important engineering issues to worry about if an int64_t view count wraps around.
07:29:15 <HackEgo> olist 1033: shachaf oerjan Sgeo FireFly boily nortti b_jonas
07:34:38 <FireFly> I think that was olist'd yesterday
07:39:46 <b_jonas> (we'll need to make hackego track this or something)
07:49:34 -!- hppavilion[2] has quit (Ping timeout: 252 seconds).
07:50:06 <lifthrasiir> probably the most surprising entry (to me) for recent years
07:50:42 <lifthrasiir> nobody will realize that this is an RFC 1321 implementation.
07:51:59 -!- rdococ has joined.
07:54:29 -!- rdococ_ has joined.
07:55:21 -!- Sgeo_ has joined.
08:00:56 <pikhq> That is quite surprising.
08:01:14 <pikhq> Unsurprising that it requires IEEE compliant floats though.
08:02:17 -!- Nithogg has quit (Ping timeout: 250 seconds).
08:03:03 -!- Nithogg has joined.
08:04:04 -!- rdococ has quit (*.net *.split).
08:04:04 -!- Sgeo__ has quit (*.net *.split).
08:04:04 -!- zgrep has quit (*.net *.split).
08:04:10 <b_jonas> lifthrasiir: oh great, the winners are out
08:04:15 <b_jonas> um, the source codes I mean
08:04:46 <lifthrasiir> b_jonas: yeah, quite delayed but it's now there
08:11:15 -!- lambda-11235 has quit (Quit: Bye).
08:11:18 -!- J_Arcane has quit (Ping timeout: 244 seconds).
08:13:00 <lifthrasiir> pikhq: it does detect the faulty (well, x87) float ops though
08:13:19 -!- zgrep has joined.
08:17:41 <pikhq> I suspect it doesn't detect other brain damaged floats, but that *is* the most likely one to hit people.
08:18:00 <pikhq> (well, okay, x87 itself isn't brain damaged. Just not quite what you want here.)
08:19:38 <lifthrasiir> pikhq: yeah, to be exact it is "unexpected". but the risk of double rounding makes it a faulty decision nevertheless...
08:25:45 -!- rdococ_ has quit (Quit: Leaving).
08:29:08 -!- heroux has quit (Ping timeout: 250 seconds).
08:29:54 -!- heroux has joined.
08:30:13 <b_jonas> lifthrasiir: it's not that delayed. compared to some previous ioccc that is.
08:35:05 -!- tromp has joined.
08:40:24 -!- tromp has quit (Ping timeout: 250 seconds).
08:58:49 -!- atehwa_ has changed nick to atehwa.
09:06:15 -!- AnotherTest has joined.
09:22:54 -!- j-bot has joined.
09:23:29 -!- singingboyo has joined.
11:04:17 -!- ^v has quit (Ping timeout: 260 seconds).
11:06:46 -!- ^v has joined.
11:08:58 <Taneb> I have an exam this afternoon
11:09:15 <Taneb> On linear optimization and its applications
11:18:45 -!- boily has joined.
11:30:26 <Taneb> boily, can you help me boost my confidence
11:43:28 -!- ais523 has joined.
11:48:20 <boily> Tanelle. I can try.
11:48:34 <boily> Taneb: what confidence do you need a boost with?
11:48:54 <boily> (please note that I'll only be available for confidence boosting for the next twelve minutes.)
11:49:37 <Taneb> boily, I have an exam at 2PM UK time
11:49:51 <lambdabot> Local time for Taneb is Fri Apr 15 11:49:33
11:50:00 <boily> math exam, I presume?
11:50:33 <Taneb> Yeah, linear optimization and its applications in game theory and network optimization
11:50:41 <Taneb> Except I have no idea what network optimization is
11:52:00 <Taneb> I'm fairly sure I can get 70%, which is what I need to get the top grade in this module
11:52:11 <Taneb> But I'd like to do better than that so I can get the top grade overall
11:52:19 <Taneb> (I dropped a fair bit back in January)
11:53:19 <boily> well, when panicking take deep breathes, relax your shoulders, and try to edge your answer in according to the _intent_ of the question, not the question itself.
11:53:54 <boily> I doubt network optimization can be learned in a single hour. it sounds scary.
11:56:05 <Taneb> I might be able to learn it well enough to pretend I know it for the exam
11:56:09 <Taneb> It might not even come up!
11:57:58 <boily> follow the intents.
11:59:39 <boily> time for a shower, then second day of formattage. formatting. formationnery?
12:00:11 <boily> Taneb: good luck, optimize the fungot out of your exam, and may the tea flow freely in your veins!
12:00:18 -!- boily has quit (Quit: MASTER CHICKEN).
12:00:31 <Taneb> ...I don't drink tea
12:14:50 <Taneb> I'm going to get some water, though
12:14:58 <Taneb> Don't want to sit an exam dehydrated
12:22:39 -!- Vorpal has quit (Ping timeout: 264 seconds).
12:29:16 -!- Vorpal has joined.
12:47:15 -!- ^v has quit (Ping timeout: 264 seconds).
12:47:55 -!- ^v has joined.
12:55:41 <FireFly> I usually buy a bottle of cola for my exams
12:56:02 <FireFly> Keeps me hydrated *and* acts as a caffeine boost
13:00:47 <shachaf> Taneb: whoa whoa whoa, don't drink tea?
13:23:51 -!- ^v has quit (Ping timeout: 264 seconds).
13:24:35 -!- p34k has joined.
13:25:30 -!- ^v has joined.
13:29:52 -!- j-bot has quit (Ping timeout: 264 seconds).
13:30:28 -!- singingboyo has quit (Ping timeout: 264 seconds).
13:33:27 -!- dancek has quit (Ping timeout: 276 seconds).
13:36:25 -!- singingboyo has joined.
14:00:34 -!- Sgeo_ has quit (Ping timeout: 244 seconds).
14:02:30 -!- nortti_ has changed nick to nortti.
14:25:11 -!- ais523 has quit.
14:25:30 -!- J_Arcane has joined.
14:29:19 -!- spiette has joined.
14:37:29 -!- picobit has joined.
14:48:06 -!- picobit has quit (Ping timeout: 244 seconds).
14:54:20 -!- tromp has joined.
14:58:34 -!- tromp has quit (Ping timeout: 252 seconds).
15:02:37 -!- ^v has quit (Ping timeout: 250 seconds).
15:03:41 -!- ^v has joined.
15:15:16 -!- jaboja has joined.
15:19:55 -!- j-bot has joined.
15:31:22 <fizzie> Didn't I just bring the got back.
15:32:15 <fizzie> Hmm. Neither of the two Freenode servers I typically use is answering.
15:32:26 <fizzie> (fungot can't do DNS, you have to point it at an address.)
15:35:44 -!- fungot has joined.
15:39:03 -!- infinitymaster has joined.
15:39:14 -!- infinitymaster has quit (Client Quit).
15:42:32 <fungot> b_jonas: so add " 1-" there which takes two arguments
15:43:45 -!- rdococ has joined.
15:52:49 <zgrep> fungot: You mean you're subtracting DNA from 1? How does that work?
15:52:49 <fungot> zgrep: let's vote for the picture language, is there a " kernel"
15:53:02 <zgrep> fungot: Yes, it's just a dot.
15:53:02 <fungot> zgrep: i'm not aware of that one up? i'm working with a language that can be communicated between two human beings is fnord, fnord
15:55:54 -!- lambda-11235 has joined.
16:04:34 -!- J_Arcane has quit (Ping timeout: 244 seconds).
16:06:12 -!- jaboja has quit (Ping timeout: 276 seconds).
16:08:23 -!- devhydraz has changed nick to hydraz.
16:11:29 -!- ocharles_ has quit (Ping timeout: 260 seconds).
16:11:54 -!- haavardp has joined.
16:12:04 -!- haavard has quit (Ping timeout: 260 seconds).
16:12:40 -!- mbrcknl has quit (Ping timeout: 260 seconds).
16:12:40 -!- bb010g has quit (Ping timeout: 260 seconds).
16:12:54 -!- picobit has joined.
16:13:14 -!- sewilton has quit (Ping timeout: 260 seconds).
16:13:15 -!- Lord_of_Life has quit (Ping timeout: 260 seconds).
16:13:16 -!- Xe has quit (Ping timeout: 260 seconds).
16:18:28 -!- j-bot has quit (Ping timeout: 264 seconds).
16:18:53 -!- ocharles_ has joined.
16:19:24 -!- Xe has joined.
16:20:16 -!- lambda-11235 has quit (Ping timeout: 264 seconds).
16:22:26 <HackEgo> [wiki] [[Special:Log/newusers]] create * Sesshomariu * New user account
16:25:20 -!- mbrcknl has joined.
16:25:41 -!- Lord_of_Life has joined.
16:25:46 -!- vifino- has joined.
16:25:52 -!- fungot has quit (*.net *.split).
16:25:52 -!- spiette has quit (*.net *.split).
16:25:52 -!- p34k has quit (*.net *.split).
16:25:52 -!- nortti has quit (*.net *.split).
16:25:52 -!- acertain has quit (*.net *.split).
16:25:53 -!- cnr has quit (*.net *.split).
16:25:53 -!- vifino has quit (*.net *.split).
16:26:19 -!- staffehn has quit (Quit: No Ping reply in 180 seconds.).
16:27:27 -!- staffehn has joined.
16:27:33 -!- nortti has joined.
16:28:47 -!- cnr has joined.
16:28:51 -!- jaboja has joined.
16:29:00 -!- acertain has joined.
16:29:47 -!- ocharles_ has quit (Ping timeout: 260 seconds).
16:30:49 -!- spiette has joined.
16:32:56 -!- sewilton has joined.
16:37:32 -!- Reece` has joined.
16:39:53 -!- ocharles_ has joined.
16:40:13 -!- J_Arcane has joined.
16:41:02 -!- bb010g has joined.
16:52:34 <HackEgo> [wiki] [[AssemblerFuck]] N https://esolangs.org/w/index.php?oldid=46784 * Sesshomariu * (+1943) Created page with "'''AssemblerFuck''' is a language made by [[User:Sesshomariu|User:Sesshomariu]] and is a version of [[brainfuck]] that uses assembler-like words instead of symbols. == Specif..."
16:53:23 <rdococ> is it really that rare for someone's first esoteric language to not be a derivative of bf?
16:53:50 <Xe> my first esolang was lolcode
16:53:50 <HackEgo> [wiki] [[Language list]] https://esolangs.org/w/index.php?diff=46785&oldid=46777 * Sesshomariu * (+20) /* A */
16:53:58 <Xe> i ended up getting it running on a robot
16:54:18 <rdococ> do you mean you created lolcode or do you mean you used it?
16:54:32 <rdococ> I was talking about creating them
16:54:56 <rdococ> e.g. AF that Sesshomariu just made
16:55:56 -!- tromp has joined.
17:00:44 -!- tromp has quit (Ping timeout: 268 seconds).
17:13:47 -!- sebbu has quit (*.net *.split).
17:14:17 -!- sebbu has joined.
17:16:26 <lifthrasiir> rdococ: not sure what was my first esolang *exposed*, but Befunge-93 was the first esolang I really tried to write code in
17:17:52 <rdococ> lifthrasiir, what's the first esolang you *created*?
17:18:00 -!- lambda-11235 has joined.
17:23:27 <lifthrasiir> (I was also deeply related to the development of Aheui though)
17:25:30 -!- bb010g has quit (Ping timeout: 276 seconds).
17:32:34 -!- bb010g has joined.
17:43:16 -!- centrinia has joined.
17:45:19 -!- J_Arcane has quit (Ping timeout: 244 seconds).
17:46:57 -!- ocharles_ has quit (Ping timeout: 276 seconds).
17:49:32 -!- ocharles_ has joined.
18:10:07 -!- dingbat_ has joined.
18:13:40 -!- hppavilion[2] has joined.
18:15:11 -!- Reece` has quit (Quit: Alsithyafturttararfunar).
18:22:24 -!- deltab_ has joined.
18:22:48 -!- yorick has joined.
18:22:48 -!- yorick has quit (Changing host).
18:22:48 -!- yorick has joined.
18:22:48 -!- mbrcknl has quit (Ping timeout: 250 seconds).
18:23:15 -!- sewilton has quit (Ping timeout: 250 seconds).
18:25:07 -!- dingbat__ has joined.
18:25:24 -!- jaboja has quit (Ping timeout: 250 seconds).
18:26:45 -!- mbrcknl has joined.
18:26:52 -!- dingbat_ has quit (*.net *.split).
18:26:54 -!- ocharles_ has quit (*.net *.split).
18:26:54 -!- bb010g has quit (*.net *.split).
18:27:46 -!- hppavilion[2] has quit (*.net *.split).
18:27:46 -!- centrinia has quit (*.net *.split).
18:27:47 -!- lambda-11235 has quit (*.net *.split).
18:27:48 -!- acertain has quit (*.net *.split).
18:27:50 -!- Xe has quit (*.net *.split).
18:27:50 -!- rdococ has quit (*.net *.split).
18:27:51 -!- heroux has quit (*.net *.split).
18:27:51 -!- deltab has quit (*.net *.split).
18:27:51 -!- yorick__ has quit (*.net *.split).
18:27:51 -!- hydraz has quit (*.net *.split).
18:27:51 -!- newsham has quit (*.net *.split).
18:27:51 -!- singingboyo has quit (*.net *.split).
18:27:52 -!- hppavilion[wc] has joined.
18:28:07 <hppavilion[wc]> For reference, while(x --> y) {...} is the "goesto" troll, where y usually equals 0. It is, of course, just while((x--) > y) {...}, which means it doesn't work if x < y (instead looping forever (in theory, though over/underflow fixes it in a hacky way)). It's a nice little readhack with potentially useful semantics, but it isn't intuitive in some cases.
18:28:15 -!- singingboyo has joined.
18:29:40 -!- zzo38 has joined.
18:31:07 <hppavilion[wc]> x 🔫(0..3)= y means "x had better equal y by the time I count to 3, or else"
18:31:42 -!- mbrcknl has quit (Ping timeout: 260 seconds).
18:32:20 -!- jaboja has joined.
18:33:29 <picobit> what's the oldest esolang in existence?
18:34:12 <hppavilion[wc]> picobit: INTERCAL is the canonical grandfather of Esolangs
18:37:23 <b_jonas> picobit: see http://esolangs.org/wiki/Prehistory_of_esoteric_programming_languages
18:38:38 -!- hppavilion[wc] has quit (Ping timeout: 250 seconds).
18:38:50 -!- Nithogg has quit (Ping timeout: 250 seconds).
18:39:15 -!- Nithogg has joined.
18:39:47 <picobit> buddy of mine called Forth an esolang.
18:41:44 -!- hppavilion[wc] has joined.
18:43:01 -!- sewilton has joined.
18:45:45 -!- Xe has joined.
18:46:03 -!- lambda-11235 has joined.
18:46:25 -!- acertain has joined.
18:46:47 <picobit> huh, I didn't know that L6 existed.
18:49:11 -!- bb010g_ has joined.
18:52:11 -!- ocharles_ has joined.
18:56:30 -!- jaboja has quit (Ping timeout: 276 seconds).
18:59:12 -!- mbrcknl has joined.
18:59:25 -!- hydraz has joined.
18:59:25 -!- hydraz has quit (Changing host).
18:59:25 -!- hydraz has joined.
18:59:39 -!- Phantom_Hoover has joined.
19:00:33 -!- jaboja has joined.
19:05:16 -!- heroux has joined.
19:09:46 -!- hppavilion[wc]_ has joined.
19:09:50 -!- hppavilion[wc] has quit (Ping timeout: 250 seconds).
19:21:20 <HackEgo> [wiki] [[Piet]] https://esolangs.org/w/index.php?diff=46786&oldid=21614 * 185.33.209.16 * (-262) /* Computational class */
19:24:53 -!- newsham has joined.
19:27:10 -!- hppavilion[wc]_ has quit (Ping timeout: 250 seconds).
19:28:21 -!- jaboja has quit (Ping timeout: 276 seconds).
19:32:28 -!- hppavilion[wc] has joined.
19:33:37 -!- dingbat__ has changed nick to dingbat.
19:33:53 -!- centrinia has joined.
19:49:30 -!- jaboja has joined.
19:50:02 -!- jaboja has quit (Remote host closed the connection).
19:51:49 -!- jaboja has joined.
19:59:33 -!- spiette has quit (Ping timeout: 276 seconds).
20:00:27 -!- centrinia has quit (Ping timeout: 264 seconds).
20:10:39 -!- jaboja has quit (Ping timeout: 264 seconds).
20:12:40 -!- Reece` has joined.
20:15:44 -!- gremlins has joined.
20:16:15 -!- jaboja has joined.
20:17:45 -!- Reece` has quit (Ping timeout: 276 seconds).
20:18:24 -!- sebbu has quit (Ping timeout: 276 seconds).
20:19:54 -!- rdococ has joined.
20:21:00 -!- jaboja has quit (Ping timeout: 276 seconds).
20:22:04 -!- dingbat_ has joined.
20:22:40 <rdococ> hppavilion[wc], I love your username, do you use it when you're on the toilet?
20:22:49 -!- dingbat has quit (Ping timeout: 276 seconds).
20:22:50 -!- yorick has quit (Quit: No Ping reply in 180 seconds.).
20:22:50 -!- ocharles_ has quit (Ping timeout: 276 seconds).
20:23:00 -!- yorick has joined.
20:23:00 -!- yorick has quit (Changing host).
20:23:00 -!- yorick has joined.
20:23:48 -!- dingbat_ has changed nick to dingbat.
20:24:45 -!- jaboja has joined.
20:26:17 <rdococ> hppavilion[wc], oh LOL I thought it meant water cabinet as in toilet
20:27:43 <int-e> wc = wrong channel
20:28:43 -!- ocharles_ has joined.
20:33:38 <int-e> the water cabinet is where most important decisions of the parliament are made
20:57:54 -!- tromp has joined.
20:58:43 <zzo38> How would that work? I am not sure I see the point
20:59:49 <hppavilion[wc]> [xyz<ab>]* matches a repetition of x's, y's, z's, a's, and b's, but every time you hit an a the next a|b must be a b, then the next must be an a, then the next must be a b, ad infinitum
21:00:58 <hppavilion[wc]> You could do [^xyz{ab}] or something, which would be a way to not match ab (or x, y, or z)
21:01:11 <hppavilion[wc]> zzo38: Is there a more straightwforward way to do this
21:02:34 -!- tromp has quit (Ping timeout: 260 seconds).
21:05:32 -!- hppavilion[wc] has quit (Ping timeout: 250 seconds).
21:07:07 <zzo38> O, OK I can understand what what you meant I suppose
21:08:35 -!- iconmaster has joined.
21:13:19 -!- lambda-11235 has quit (Max SendQ exceeded).
21:13:46 -!- lambda-11235 has joined.
21:20:09 -!- rdococ_ has joined.
21:22:04 -!- mbrcknl has quit (Ping timeout: 264 seconds).
21:23:17 -!- rdococ has quit (Ping timeout: 264 seconds).
21:23:17 -!- heroux has quit (Ping timeout: 264 seconds).
21:25:24 -!- mbrcknl has joined.
21:29:44 -!- heroux has joined.
21:32:16 -!- Reece` has joined.
21:33:09 -!- gremlins has quit (Ping timeout: 276 seconds).
21:39:29 -!- deltab_ has changed nick to deltab.
21:40:39 -!- rdococ_ has changed nick to rdococ.
21:52:45 -!- spiette has joined.
22:16:28 -!- sebbu has joined.
22:32:35 -!- jaboja has quit (Ping timeout: 244 seconds).
22:42:34 -!- spiette has quit (Quit: :qa!).
22:48:22 -!- Reece` has quit (Ping timeout: 260 seconds).
22:52:06 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:53:06 <HackEgo> partial order/A partial order is just a small thin skeletal category.
22:53:32 <picobit> anybody here ever work with flow based programming?
22:53:55 <HackEgo> `mk/Everything's better with `mk.
22:55:23 <Taneb> FireFly, I've been trying to give up cola after making myself sick on it a couple of months ago
22:56:01 <b_jonas> what will you replace it with?
22:57:04 <Taneb> b_jonas, I was mostly drinking it for the liquid and calories, so I've been going for water and actual food
22:57:12 <Taneb> And I've never really liked tea
22:57:34 <FireFly> Maybe I stole your taste for tea
22:57:57 <shachaf> FireFly: What kind of tea should I drink?
22:58:24 <b_jonas> I drink some coke and milk, but mostly I drink water and the sort of tea that's just empty colored warm water with no active ingredients.
22:58:51 <FireFly> I mostly drink black tea, like earl grey
22:59:16 <shachaf> I liked this oolong tea with ginseng that I had.
22:59:26 <shachaf> I had earl grey this morning.
23:00:26 <shachaf> But what other sort of tea should I get?
23:00:27 -!- picobit has quit (Read error: Connection reset by peer).
23:03:07 <FireFly> Maybe you could try rooibos
23:03:13 <FireFly> It's not really tea per se
23:03:28 <shachaf> I don't think I'm a big fan.
23:04:02 -!- hppavilion[1] has joined.
23:04:40 -!- picobit has joined.
23:04:45 <hppavilion[1]> I have found a feature that haskell /should/ have but doesn't, and isn't emulatable AFAICT
23:05:14 <hppavilion[1]> Templatized functions (not like C++'s templates for polymorphism; more like C++'s templates with constants)
23:05:58 <FireFly> What about Template Haskell?
23:06:07 <FireFly> (disclaimer: I don't know much about Template Haskell)
23:06:19 <hppavilion[1]> FireFly: I mean "maybe what I'm talking about is a thing in that"
23:06:34 <hppavilion[1]> Say you have an Int^n list and function trans :: Int -> t
23:07:08 <hppavilion[1]> You want to map trans over the individual bottom-level elements
23:07:56 <hppavilion[1]> The simplest solution is, of course, where n=2 tmapper2 = map (map trans)
23:08:17 <b_jonas> In rust, is there a way to convert an int32 to the float32 with the same bit pattern, or backwards, that is fast (doesn't require to call a non-inlinable function, preferably something the llvm can directly optimize away) and doesn't invoke undefined behavior? As a bonus, one that doesn't call unsafe stuff?
23:08:50 <hppavilion[1]> This is straightforward, but a little hard to read sometimes, and a bit crufty
23:09:17 <hppavilion[1]> What'd be nice if you could just say tmapper[n] = map[n] trans
23:10:01 <hppavilion[1]> map[n] func arr maps func over the elements of arr at the nth nesting level
23:10:46 <b_jonas> I'm not sure how the semantic rules of rust about undefined behavior work. Can I just ptr.write or ptr.copy from an int32 to a float32 and read the float32 without invoking undefined behavior?
23:11:05 <hppavilion[1]> It'd make the syntax of the language a little less pure, but it'd make code look better
23:11:08 <coppro> b_jonas: what language?
23:11:47 <hppavilion[1]> (Which is weird, given that it seems that x => y -> bad x => bad y, but it isn't true here)
23:12:48 <coppro> b_jonas: http://stackoverflow.com/questions/26163272/strict-aliasing-in-rust
23:13:15 <shachaf> FireFly: template haskell is a bit scow
23:13:32 <coppro> I still don't know what scow means, but I agree
23:13:44 <lambdabot> https://en.wikipedia.org/wiki/Garbage_scow
23:14:07 <coppro> hppavilion[1]: that sort of thing is what control.monad.*.class is for
23:14:13 <pikhq> I agree, template Haskell is a bit scow.
23:14:29 <coppro> pikhq: i'm a lens maintainer now. help.
23:14:44 <coppro> hppavilion[1]: you could also do it with a newtype
23:14:45 <b_jonas> coppro: I really don't want to break aliasing, I think getting or setting the representation of IEEE floats should be a builtin (but possibly rarely used) arithmetic op that the float32 module of the standard library should just export, but alas, it seems there's no such function.
23:15:22 <coppro> b_jonas: sounds like transmute can do it
23:15:28 * pikhq is curious if rust has reasonable floating point semantics.
23:15:31 <b_jonas> coppro: even this way, the rust standard library functions for float32 look way saner than the obsolate nonsense some languages try to provide, with no frexp or an exception when you divide on zero.
23:15:51 <pikhq> The *most* reasonable being "literally IEEE", of course.
23:15:59 <shachaf> coppro: Are you a maintainer or do you just have a commit bit?
23:16:08 <pikhq> Though I'll accept ISO C's semantics (as opposed to GNU C's).
23:16:24 <shachaf> Will you accept gnusto semantics?
23:16:24 <coppro> I don't consider myself actively responsible for it
23:16:29 <coppro> pikhq: what are the differences?
23:17:21 <pikhq> coppro: When using x87, GNU C will flush intermediate values from floating point computations to the stack by storing a double or float representation on the stack. Which imposes double rounding.
23:17:23 <Taneb> pikhq, iirc, Rust has a very cautious IEEE
23:17:54 <coppro> pikhq: why does that double round?
23:18:13 <b_jonas> pikhq: which iso C semantics? the c89 or the c99 ones? and with which settings if the latter?
23:18:26 <pikhq> Because all floating point operations are rounded, and on x87 the only precision it has is 80-bit float.
23:18:44 <pikhq> b_jonas: ISO C99 with the semantics in the amendment defining IEEE semantics..
23:18:52 <coppro> is that not ISO C semantics?
23:19:01 -!- p34k has joined.
23:19:06 <coppro> have to match the abstract machine
23:19:26 <pikhq> ISO C semantics say that the result of an operation on doubles is a double_t.
23:19:39 <pikhq> And on x86 a double_t is an 80-bit float.
23:19:47 <pikhq> (or "long double")
23:20:04 <pikhq> GCC implement it this way if you pass -std=c99.
23:20:05 <b_jonas> sorry, it's too late for me to think deep about floating point semantics. I did the research once, and wrote it down on a dense ugly handwritten paper which doesn't cover even half of it.
23:20:06 -!- Sgeo_ has joined.
23:20:11 <pikhq> But not -std=gnu99.
23:20:43 <pikhq> In GNU C you get double rounding *basically* when the optimizer sees fit.
23:22:47 <b_jonas> I re-read what the docs says
23:23:17 <b_jonas> and it seems to me that the rust rules do permit to copy the memory from an int32 to a float32 or back
23:23:49 <b_jonas> which is also why mem::transmute (which coppro kindly pointed me to) should work
23:24:05 <b_jonas> and that can probably be optimized fine
23:24:24 <b_jonas> so I can wrap that to define the four float-int reinterpret functions
23:24:32 <b_jonas> coppro: thanks for the nudge
23:24:36 <pikhq> http://port70.net/~nsz/c/c99/n1256.html#5.2.4.2.2 Here's the relevant part of ISO C99 describing float_t etc.
23:24:59 <pikhq> *This* bit is independent of whether or not you implement IEEE floats.
23:25:31 <pikhq> double_t is in math.h, sorry.
23:25:46 <coppro> pikhq: oh, I see, FP_CONTRACT
23:26:02 <b_jonas> (obviously rust still has a lots of rules about what you're permitted to do with pointers, but accessing memory that you're normally permitted to read as some other type is allowed, as long as you only write allowed values, but any bit pattern is allowed for an u32 so that's fine)
23:26:44 <pikhq> FLT_EVAL_METHOD describes the actual behavior of the floats, though.
23:27:58 <coppro> FP_CONTRACT is a pragma
23:28:28 <pikhq> GCC's implementation of floating point is slightly off. For instance, it apparently doesn't do that pragma.
23:28:51 <b_jonas> pikhq: no compiler does that pragma, neither gcc, nor msvc. both have some other ways of controlling the same thing though, in later versions
23:29:16 <pikhq> It's a shame. The ability to get floating point stuff working reasonably is, uh, why science people still use Fortran.
23:29:19 <b_jonas> pikhq: the problem is, the gcc equivalent can't be changed as quickly in blocks, but only to function level
23:29:56 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
23:30:05 <b_jonas> pikhq: sure, but you can get them to work reasonably in gcc and msvc, you just have to know the magic compiler-specific incantations, and also the _default_ settings are sane for both
23:30:19 <b_jonas> (at least if you use at least -std=c99 as a base, and not an old compiler)
23:30:45 <pikhq> Yes, the default settings *in -std=c99 on recent compiler versions* are at least sane.
23:30:47 <b_jonas> those magic incanatations are part of my handwritten paper, which incidentally I really should make a photo and backup of now
23:30:54 <pikhq> Sufficiently so that for 99% of things they're what you actually want.
23:31:23 <pikhq> The problem being, of course, that -std=c99 isn't default, and getting the other things you might want aren't supported.
23:31:26 <coppro> pikhq: to be fair, the choice of a pragma is a stupid design
23:31:42 <pikhq> Not gonna disagree.
23:32:02 <b_jonas> coppro: what? why is that a stupid design?
23:32:08 <coppro> b_jonas: what is float f = a + \\ #pragma SOMETHING \\ b;
23:32:11 <b_jonas> coppro: at least in C99, where you have _Pragma
23:32:33 <b_jonas> coppro: no, but you can put _Pragma in brace blocks locally, even in a macro
23:32:47 <b_jonas> coppro: not in the middle of an expression, but in a brace block between statements
23:33:30 <coppro> b_jonas: yes, _Pragma statement makes sense, except that it's defined in terms of preprocessor
23:34:06 <pikhq> And ostensibly the preprocessor is a phase independent of the rest of compilation.
23:34:10 <pikhq> Except of course it isn't.
23:36:03 <b_jonas> coppro: no, that's just a historical accident, where improving the language is important, but everyone's lazy to rewrite the standard to use a more readable terminology, so the preprocessor is brought into the picture mostly unnecessarily. It happens all the time with changing M:tG rules too, but it's worse with the C and C++ standards.
23:36:06 <coppro> pikhq: of course it is
23:36:11 <coppro> pikhq: haven't you heard of _Generic?
23:36:21 <coppro> b_jonas: C is *really* bad
23:36:24 <coppro> C++ is not nearly so bad
23:36:45 <coppro> at least in this regard. C++ has other issues.
23:36:59 <coppro> I have friends who've been to both committees though
23:37:06 <coppro> C++ committee is awesome
23:37:23 <b_jonas> pikhq: also, because of historical reasons, the defaults even with -std=c99 aren't entirely reasonable, because they default to math functions setting errno, which is a complete waste, but in gcc you can -fno-math-errno to get the saner behavior.
23:38:41 <coppro> b_jonas: that's standard though, isn't it?
23:38:56 <b_jonas> coppro: C99 allows either, and defines a macro to tell you
23:39:30 <b_jonas> coppro: but I for one don't want to have the compiler emit an expensive conditional set for a thread-local variable every time I lrint an number.
23:39:45 -!- p34k has quit.
23:41:04 <b_jonas> coppro: the C++ committee hasn't caught up with the improvements in C. They're reluctant to take the changes because half of them is good (eg. floating point stuff) and half of them is bad (variadic arrays, and that "safe" standardd library stuff). But in practice that doesn't matter, because gcc still implements this stuff for C++ too (except there are a few conflicts, like how complex is a macro in C but an identifier in C++, etc), and even msvc is slo
23:41:07 -!- hppavilion[wc] has joined.
23:42:06 <b_jonas> Also, I'd like an lrint and lrintf variant that returns int32_t instead of a long
23:44:06 <b_jonas> I should make a slow interpreter for a high-level language that exposes ALL the sane integer and floating point and complex floating point operations on all types there are, because I've had enough of no language exporting the full set, even though C comes quite close.
23:44:12 <b_jonas> By the way, as for floating point stuff,
23:45:08 <b_jonas> I understand why the C++ committee added an extra function (not in C) that returns the squared norm of a complex number. But for the love of HNA, WHY DID THEY HAVE TO NAME IT norm?
23:45:53 <b_jonas> That's just so confusing! There are numerics-connected libraries that use the identifier norm to mean a non-squared norm, and when I use norm in two such clashing meanings in the same program it just gets horrible.
23:46:00 <b_jonas> WHY COULDN'T THEY FIND A BETTER NAME?
23:48:19 <pikhq> coppro: I suspect a lot of this has to do with a lot of the C committee pretending that certain vendors' opinion on things matter even when they haven't even bothered implementing C99.
23:48:53 <pikhq> For instance, the "safe" standard library stuff comes courtesy of Microsoft, because Microsoft is on the committee even though to this day they haven't implemented the *17 year old* C99 spec.
23:49:18 <pikhq> (and they have some pretty notable violations of C90 as well...)
23:50:20 <coppro> but I wouldn't be surprised if it wasn't a little like hardware standardization
23:50:33 <coppro> which is a competitive, rather than collaborative, process
23:50:33 <pikhq> It's honestly worse than IBM's presence on the C++ committee because, while they insist on some frankly silly things sticking around because of mainframe, at least they *implement* the damned thing on the systems they want to keep supporting.
23:50:38 -!- oerjan has joined.
23:50:45 <coppro> pikhq: trigraphs are gone
23:50:58 <pikhq> In the next revision of C++, but not the current one.
23:51:14 <shachaf> C++17 is going to be great.
23:51:14 <pikhq> Giving IBM time to stop using trigraphs.
23:52:09 <coppro> shachaf: file system library!
23:52:16 <pikhq> Are they just replacing them with digraphs?
23:52:24 <shachaf> coppro: Variadic fold expressions will be good.
23:52:26 <coppro> pikhq: digraphs don't cover everything trigraphs did
23:52:27 <pikhq> Ah, yes, it seems they are.
23:52:29 <shachaf> Or whatever they end up with.
23:52:31 <coppro> shachaf: yeah, those are sweet too
23:52:42 <pikhq> Yes, but digraphs cover everything that IBM needs.
23:52:44 <coppro> pikhq: basically IBM said "ok, fine, whatever, we'll just maintain our own compiler"
23:52:49 <shachaf> coppro: Writing variadic template code is such a mess.
23:53:14 <pikhq> The only *actual* problem is some of the digraph-encoded characters on EBCDIC codepages vary encoding depending on the codepage.
23:53:16 <shachaf> Do you have any fun variadic template puzzles?
23:53:25 <pikhq> But they all exist in real-world EBCDIC codepages.
23:53:34 <coppro> shachaf: tbh if they were redesigning templates they'd probably do it very different
23:54:27 <b_jonas> pikhq: yes, but funnily, I think the floating point control pragmas come from microsoft too
23:54:51 -!- HackEgo has quit (Ping timeout: 276 seconds).
23:55:45 <coppro> parallel STL is sweet too
23:56:16 <b_jonas> pikhq: also, in msvc 2015, they actually implement once-init local statics and constexpr and alignas and alignof and a lot of other C++ stuff (but not everything).
23:56:18 <shachaf> coppro: Why doesn't std::tuple expose a tail tuple explicitly?
23:56:26 <shachaf> Wouldn't that be a better API? HList-style.
23:56:30 -!- boily has joined.
23:56:36 <shachaf> std::tuple is already pretty much HList, I guess.
23:56:48 <b_jonas> I still really don't like their compiler, but it's at least getting less bad. It's just that it's still like five years obsolate compared to gcc or something.
23:56:52 <coppro> shachaf: because it would require explicit construction
23:57:06 <coppro> b_jonas: MS is moving to clang
23:57:15 <b_jonas> So like the msvc five years into the future will be able to compile all my code.
23:57:20 <shachaf> Maybe I should look at how it's implemented.
23:58:09 <b_jonas> coppro: so I've been told, but I don't buy it. just look at it, the original reasoning was that they'd have to rewrite half of msvc just to implement constexpr. but now they support constexpr in msvc 2015. so what gives?
23:58:43 <coppro> b_jonas: are you sure that the frontend you're using there isn't clang?
23:58:44 <b_jonas> coppro: if "moving" means they'll use clang to compie their stuff instead of the shit they sell, then sure
23:59:18 <coppro> b_jonas: no, visual studio is moving to clang as its frontend.
23:59:26 -!- Warrigal has changed nick to tswett.
23:59:38 <tswett> So let me see if I can come up with an ordinal number notation.
23:59:47 <b_jonas> coppro: no way... if it is, then it's a modified version of clang that gives worse error messages than gcc 1.95 gave
23:59:53 <coppro> https://blogs.msdn.microsoft.com/vcblog/2015/05/01/bringing-clang-to-windows/
23:59:59 <coppro> b_jonas: ah, then I can't explain it