< 1419897830 812271 :shachaf!~shachaf@li227-219.members.linode.com PRIVMSG #esoteric :I've never heard of such a card. < 1419897900 92105 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :http://magiccards.info/query?q=!Sublime+Archangel seems to qualify, technically. < 1419897944 685062 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(but it's static, not triggered; not sure what zzo38 wants to do) < 1419897989 596374 :shachaf!~shachaf@li227-219.members.linode.com PRIVMSG #esoteric :Fair enough. < 1419898028 55297 :roasted42!~appleseed@41.50.16.48 QUIT :Ping timeout: 265 seconds < 1419898076 374502 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Well, I meant one that only applies to tapped creatures rather than all of them. < 1419898113 81519 :roasted42!~appleseed@41.50.16.48 JOIN :#esoteric < 1419898136 376968 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(the card is linked from http://mtgsalvation.gamepedia.com/Exalted ; I didn't remember what exaltation does) < 1419898249 607466 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :zzo38: I doubt that such ccards exist, but which do you want: "all tapped creatures gain exalted" or "whenever a creature is tapped, it gains "exalted"?" < 1419898547 256597 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :First one < 1419898651 268270 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :The other kind of card would be one causing all tapped creatures to lose exalted ability. < 1419898803 703010 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :http://gatherer.wizards.com/Pages/Search/Default.aspx?text=+[exalted] is short, doesn't look like it., < 1419899206 319432 :pikhq!~pikhq@deagol.pikhq.com PRIVMSG #esoteric :Feels like they didn't do enough with Exalted. < 1419899497 158227 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :wtf ... youtube's players shows static noise on errors?! < 1419899515 917690 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :U-S-E-L-E-S-S ! < 1419899924 55524 :MoALTz__!~no@user-46-112-9-246.play-internet.pl JOIN :#esoteric < 1419900077 80977 :MoALTz_!~no@user-46-112-9-246.play-internet.pl QUIT :Ping timeout: 240 seconds < 1419900326 746298 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Quit: Leaving < 1419900437 68997 :roasted42!~appleseed@41.50.16.48 QUIT :Ping timeout: 240 seconds < 1419900501 327271 :roasted42!~appleseed@41.50.16.48 JOIN :#esoteric < 1419900694 683466 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :int-e: It's supposed to have an explanation for the error on top of the noise. < 1419900730 328420 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :(Although that doesn't make the animated noise part any more useful, that's certainly true.) < 1419900733 477246 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :fizzie: yeah I was looking at the comments. < 1419900768 888675 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(I had downloaded the video separately) < 1419900798 351642 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :ACTION is a bit starved for bandwidth; 16 kB/s isn't much. < 1419901798 572609 :shachaf!~shachaf@li227-219.members.linode.com QUIT :Changing host < 1419901798 616211 :shachaf!~shachaf@unaffiliated/shachaf JOIN :#esoteric < 1419901995 357196 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1419902034 69908 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Client Quit < 1419902503 141449 :boily!~alexandre@modemcable184.4-177-173.mc.videotron.ca JOIN :#esoteric < 1419902970 364740 :roasted42!~appleseed@41.50.16.48 QUIT :Ping timeout: 250 seconds < 1419903358 597419 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :ACTION gives int-e some bandwidth < 1419903377 694821 :roasted42!~appleseed@41.50.16.48 JOIN :#esoteric < 1419903680 126829 :Sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1419904353 373638 :FreeFull!~freefull@defocus/sausage-lover QUIT :Ping timeout: 256 seconds < 1419905063 882292 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net JOIN :#esoteric < 1419905086 609794 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :So I think I found something interesting. < 1419905138 97901 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Define a "display" as a set of natural numbers, with the topology over displays being generated by the sets {s : s is a display containing n}, where n is a natural number. < 1419905197 795295 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Let ->> denote a continuous function. Then there's a certain "obvious" function encode :: (display ->> display) -> display, with a left inverse decode :: display -> (display ->> display). < 1419905267 292651 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Both encode and decode appear to be continuous. < 1419905315 922906 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric < 1419905353 768550 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :But lemme start over. < 1419905502 704525 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Define a "space" as a set of integers equipped with an equivalence relation. < 1419905513 807366 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Natural numbers, rather. < 1419905523 146408 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :We'll assume that each natural number can be interpreted as a computer program. < 1419905554 9568 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Define RE as the set of all computer programs that enumerate natural numbers, with the equivalence relation being that the two programs enumerate the same set. < 1419905558 683114 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :computer program = partial recursive function? < 1419905578 538607 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Something like that. < 1419905614 158384 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Given spaces A and B, define A ->> B as the set of all computer programs which take a program in A and return a program in B, respecting the equivalence relation. < 1419905661 260716 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Two elements of A ->> B are equivalent if, for every input, the resulting outputs are equivalent. < 1419905715 130641 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Then there is a computer program encode :: (RE ->> RE) ->> RE with a left inverse which is a computer program decode :: RE ->> (RE ->> RE). < 1419905764 672844 :roasted42!~appleseed@41.50.16.48 QUIT :Ping timeout: 245 seconds < 1419905890 394866 :roasted42!~appleseed@41.50.16.48 JOIN :#esoteric < 1419906121 286057 :Tod-Autojoined!Tod@50-198-177-186-static.hfc.comcastbusiness.net NICK :TodPunk < 1419906285 767701 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Ok, destroying the abstraction: encode takes a Gödel number g of a program transformation, and returns a program enumerating the singleton set { g }. Decode tkaes a program, runs it until the first element g is produced, then runs g as aprogram transformation. < 1419906369 170106 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Ah, I did not clearly separate "Gödel number of a program" from "program". < 1419906386 694796 :AndoDaan!~AndoDaan@188.188.88.163 JOIN :#esoteric < 1419906510 734470 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Your definition of encode doesn't respect the equivalence relation. < 1419906537 175393 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Since given different Godel numbers that encode the same function, it'll return different functions. < 1419906542 259252 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :true\u. < 1419906568 218947 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :what's a Gödel number? < 1419906607 103866 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :I think int-e is using "program" to mean what I'd call a computable function and "Godel number of a program" to mean what I'd just call a program. < 1419906639 497155 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :"Godel number of a program" just means a number which encodes a computer program, under a scheme such that every possible computer program is represented (in a computable way) by some number. < 1419906674 302961 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :no, a program transformation < 1419906697 823053 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :So lemme try to describe what encode and decode do, exactly. < 1419906764 288877 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :encode takes a computer program f :: RE ->> RE. It then performs a computation simultaneously for every natural number n. < 1419906801 104506 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :The computation begins by interpreting the number n as a pair (p, T), where p is a natural number and T is a finite set of natural numbers. < 1419906801 850818 :AndoDaan!~AndoDaan@188.188.88.163 QUIT :Ping timeout: 272 seconds < 1419906821 494381 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :tswett2: what is RE? < 1419906843 32294 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :RE is the set of all computer programs that enumerate natural numbers, with the equivalence relation being that the two programs enumerate the same set. < 1419906848 419677 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :oh < 1419906874 696043 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :sounds Turing-esque < 1419906891 386771 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :The computation then proceeds by running f on T. If f(T) ever lists p, then encode(f) lists n. < 1419906960 649706 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :"encode" is an injective function because every computer program RE ->> RE is defined entirely by its behavior on inputs which enumerate finite sets. < 1419907021 785397 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :I'm interested in an abstract and yet concrete definition of a thing that can represent threads, coroutines, and continuations all at the same time < 1419907039 218215 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :A Turing machine, perhaps? < 1419907044 46110 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :perhaps < 1419907050 112050 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Now, decode takes a computer program s :: RE, and returns a new computer program decode(s) which takes another computer program t and finally returns a computer program decode(s)(t). < 1419907051 336072 :nys!~nysnamovo@blk-215-85-138.eastlink.ca PRIVMSG #esoteric :continuations can represent threads, coroutines, and continuations all at the same time < 1419907063 335681 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :nys: I'm going to need a citation for that last one < 1419907068 923770 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :how can continuations represent threads? < 1419907087 954178 :nys!~nysnamovo@blk-215-85-138.eastlink.ca PRIVMSG #esoteric :i thought you could do cooperative threading <.< >.> < 1419907094 147947 :nys!~nysnamovo@blk-215-85-138.eastlink.ca PRIVMSG #esoteric :somehow < 1419907107 396000 :nys!~nysnamovo@blk-215-85-138.eastlink.ca PRIVMSG #esoteric :maybe i need to crack out the ol scheme again < 1419907132 631149 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :decode(s)(t) performs a computation simultaneously for all pairs (p, T), where p is a natural number and T is a finite set of natural numbers. < 1419907134 897567 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :the ol scheme? < 1419907145 186324 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :scheme is new, r7rs was just released < 1419907159 774903 :nys!~nysnamovo@blk-215-85-138.eastlink.ca PRIVMSG #esoteric :the brand spankin new scheme < 1419907164 702832 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Then, uh, lemme see. < 1419907241 774346 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Actually, lemme start over with this one. < 1419907244 867466 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :tswett2: I think we have to talk about termination a bit. < 1419907265 834212 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :decode(s)(t) performs a computation simultaneously for all numbers n enumerated by s. < 1419907274 416062 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :nah, the halting problem is so 20th century < 1419907305 1371 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :The computation consists of interpreting the number n as (p, T), then waiting for t to spit out all elements of T, then spitting out p. < 1419907309 751277 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :I think D. Knuth might be on to something with BDDs, it totally side-steps the halting problem < 1419907311 312456 :roasted42!~appleseed@41.50.16.48 QUIT :Ping timeout: 256 seconds < 1419907318 759827 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :int-e: do we? < 1419907327 987341 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :what is BDD? < 1419907338 669999 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :vanila: binary decision diagram < 1419907346 23669 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :also I don't think the halting problem is actually a problem < 1419907351 57 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :it's just a fact < 1419907354 34880 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :tswett2: a program that terminates without producing a number is equivalent to one that never terminates and never produces any number? < 1419907363 834837 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :vanila: essentially a binary tree representation of a map from [Bool] -> [Bool] < 1419907365 202342 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :int-e: yeah. < 1419907372 482108 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :hmm < 1419907386 472238 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :tswett2: ok. that part screws with my intuition. < 1419907395 237788 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :You may as well say that no program ever terminates. < 1419907406 982506 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :If a program would terminate, it instead hangs forever, spitting out nothing. < 1419907429 300771 :roasted42!~appleseed@41.50.16.48 JOIN :#esoteric < 1419907435 348160 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :D. Knuth, you know the guy who invented the arrow, tex, metafont, taocp, etc. < 1419907439 203627 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :and MMIX < 1419907442 288517 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :Knuth is good < 1419907446 783190 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :He invented some algorithms too < 1419907450 454380 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :one or two < 1419907461 653817 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :actually three, at least < 1419907470 439443 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :LR parsing, KMP string matching algorithm, dancing links < 1419907476 90136 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :tswett2: ok, back to your decocde(s)(t). < 1419907488 487310 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :https://en.wikipedia.org/wiki/Knuth%27s_up-arrow_notation < 1419907498 45710 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :he invented the arrow < 1419907534 133011 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Now we just have to invent up-bow notation so that we can perform up-archery notation. < 1419907544 904897 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :lolol < 1419907571 745018 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :tswett2: ++ < 1419907732 356420 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :tswett2: the main property that you're exploioting seems to be that RE ->> RE only allows monotone functions (in terms of the encoded sets), plus a compactness property. < 1419907782 629474 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Lessee. I'm exploiting the monotone thing, yeah. As for compactness, lemme think. < 1419907799 619920 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :I didn't notice any compactness going on here, but you probably know something I don't. < 1419907884 339014 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :RE is certainly compact, because the only open set containing the empty set is the universal set. < 1419907926 750823 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :tswett2++ < 1419907960 60916 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Look at me, I'm talking about the topology of RE without ever having defined a topology for RE. < 1419907988 337241 :nys!~nysnamovo@blk-215-85-138.eastlink.ca PRIVMSG #esoteric :i wasn't saying that < 1419907991 565044 :nys!~nysnamovo@blk-215-85-138.eastlink.ca PRIVMSG #esoteric :but i was thinking it < 1419908025 777409 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :One topology for RE is that topology I defined for "displays" above. < 1419908056 882338 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Namely, the topology for RE is generated by sets of the form {s : s is an element of RE enumerating n}. < 1419908063 105765 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Where n is a natural number. < 1419908272 284631 :shikhin_!~shikhin@unaffiliated/shikhin QUIT :Ping timeout: 255 seconds < 1419908326 40278 :boily!~alexandre@modemcable184.4-177-173.mc.videotron.ca QUIT :Quit: NERVOUS CHICKEN < 1419908834 77488 :scoofy!~spirit@catv-89-135-80-2.catv.broadband.hu QUIT :Ping timeout: 244 seconds < 1419909306 905763 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :tswett2: I'm just wrong. Continuity of the RE ->> RE part is what you need, for the claim that its determined by the behaviour on finite sets. < 1419909371 37231 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Right. < 1419909373 16059 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(rather, that *is* the claim, afaiui) < 1419909410 329320 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Claim: the behavior of a computer program RE ->> RE is determined by its behavior on finite sets. < 1419909478 508998 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Um, lemme think how to prove this. < 1419909550 738249 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Suppose f is a computer program RE ->> RE, s is a computer program RE, and f(s) enumerates the natural number n. < 1419909628 874526 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Claim: there exists a finite set S such that S is a subset of the set enumerated by s, and f(S) also enumerates the natural number n. < 1419909649 281913 :roasted42!~appleseed@41.50.16.48 QUIT :Ping timeout: 255 seconds < 1419909672 641329 :bb010g!uid21050@gateway/web/irccloud.com/x-fgcgpkuuohfvrljr QUIT :Quit: Connection closed for inactivity < 1419909693 497011 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Informal "proof": by something like Rice's theorem, the only way f can analyze its argument is by running it, and f(s) must enumerate n after running s for only finitely many steps. < 1419909759 310318 :roasted42!~appleseed@41.50.16.48 JOIN :#esoteric < 1419909872 988895 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Since f is in RE ->> RE, for every computer program s' in RE that enumerates the same set as s, f(s') must also enumerate n. < 1419909905 18938 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Ooh, where is this going. < 1419910072 289310 :AndoDaan!~AndoDaan@188.188.69.124 JOIN :#esoteric < 1419910194 256232 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :I need to prove that there's some computer program S in RE such that S enumerates a finite subset of the set enumerated by s, and S so closely matches some program s' that f can't tell the difference. < 1419910392 857531 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Let me start over. < 1419910407 525558 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Suppose that f is a computer program RE ->> RE, s is a computer program RE, and f(s) enumerates the natural number n. < 1419910445 51236 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Furthermore, assume that whenever t is a computer program in RE that enumerates a finite subset of the set enumerated by s, f(t) does not enumerate the natural number n. < 1419910458 437491 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Clearly s enumerates an infinite set. < 1419910470 685857 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Let M be an arbitrary Turing machine. < 1419910551 342313 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Ah. < 1419910559 202427 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Given any computer program u in RE, let stop(u, M) be the program that alternates between running u and running M, halting whenever either one halts. < 1419910569 460451 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :You're going to run s and T in parallel. Right. < 1419910602 828239 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :If M does not halt, then f(stop(s, M)) enumerates n, because stop(s, M) enumerates the same set that s does. < 1419910623 845017 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :If, on the other hand, M does halt, then f(stop(s, M)) does not enumerate n, by our assumption about t. < 1419910654 154748 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Right. Now a fixed point, and done. Thanks! < 1419910655 591519 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :So we can solve the halting problem by simultaneously running f(stop(s, M)) and M, and seeing which thing happens first: f(stop(s, M)) enumerates n, or M halts. < 1419911044 360854 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(and monotonicity works similarly: if U \subsetneq V are finite sets, then produce the elements of U, then run M, then product the remaining elements of V) < 1419911109 678185 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Oh, I meant to mention "the other topology" on RE. < 1419911194 598888 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Let the space Si be the set of all computer programs, with two programs being equivalent if and only if they both halt or neither one halts. < 1419911345 431761 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Then an open set of REs is defined by a function RE ->> Si; a RE is in the set if and only if its image halts. < 1419911365 25488 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Which isn't actually a topology, even though it's a lot like a topology. < 1419911412 845703 :scoofy!~spirit@catv-89-135-80-2.catv.broadband.hu JOIN :#esoteric < 1419911449 789557 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :You can't take the union of an arbitrary collection of those; you can only take the union of a recursively enumerable collection of them. < 1419911498 283633 :roasted42!~appleseed@41.50.16.48 QUIT :Ping timeout: 250 seconds < 1419911574 564956 :scoofy!~spirit@catv-89-135-80-2.catv.broadband.hu QUIT :Quit: Leaving < 1419911599 146048 :roasted42!~appleseed@41.50.16.48 JOIN :#esoteric < 1419912047 492244 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :hmm recursive topology < 1419912070 218568 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :tswett2: does "Si" have a meaning? < 1419912131 152212 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :It's the Sierpinski space. < 1419912189 517532 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Ah, forgetting about all this extra structure. Yes, of course. < 1419912309 63700 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :int-e: it also means yes in a couple languages < 1419912346 272491 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :adu: Really! But it seemed irrelevant to the discussion. < 1419912351 582624 :nys!~nysnamovo@blk-215-85-138.eastlink.ca PRIVMSG #esoteric :c'est si belle < 1419912351 798839 :incomprehensibly!sid3405@gateway/web/irccloud.com/x-bhntnxbrclkzmspk NICK :glowcoil < 1419912387 251464 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :да < 1419912443 129062 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :תודה < 1419912484 695841 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :I should try to relearn russian < 1419912557 95829 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net PRIVMSG #esoteric :нет < 1419913117 88775 :AndoDaan!~AndoDaan@188.188.69.124 QUIT :Ping timeout: 240 seconds < 1419913299 616141 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :adu: вы не понимаете. < 1419913310 45508 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :meh, even most of the grammar is gone. < 1419913347 6686 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(though there's little surprise there, russian has a lot of it) < 1419913949 97403 :roasted42!~appleseed@41.50.16.48 QUIT :Ping timeout: 265 seconds < 1419913991 46025 :roasted42!~appleseed@41.50.16.48 JOIN :#esoteric < 1419914887 807784 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net QUIT :Quit: adu < 1419915821 802150 :vanila!~vanila@unaffiliated/vanila QUIT :Quit: Leaving < 1419915837 70889 :tswett2!~tswett@c-98-243-16-185.hsd1.mi.comcast.net QUIT :Ping timeout: 240 seconds < 1419915995 296531 :GeekDude!~GeekDude@unaffiliated/g33kdude QUIT :Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com) < 1419916478 574187 :nys!~nysnamovo@blk-215-85-138.eastlink.ca QUIT :Quit: quit < 1419916745 259910 :Solace!uid52684@gateway/web/irccloud.com/x-rksrexhdrvtrtxor JOIN :#esoteric < 1419916869 425936 :Solace!uid52684@gateway/web/irccloud.com/x-rksrexhdrvtrtxor PRIVMSG #esoteric :hmmmm < 1419917009 52118 :roasted42!~appleseed@41.50.16.48 QUIT :Ping timeout: 264 seconds < 1419917116 87036 :roasted42!~appleseed@41.50.16.48 JOIN :#esoteric < 1419917151 8653 :Solace!uid52684@gateway/web/irccloud.com/x-rksrexhdrvtrtxor PRIVMSG #esoteric :How do you set ops/voiced and channel modes < 1419917341 154591 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Use the MODE command < 1419917353 247144 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :See HELP CMODE for descriptions. < 1419917621 404553 :augur_!~augur@c-71-57-177-235.hsd1.fl.comcast.net NICK :augur < 1419918675 65455 :AndoDaan!~AndoDaan@188.189.83.12 JOIN :#esoteric < 1419919287 592226 :tswett!~tswett@c-98-243-16-185.hsd1.mi.comcast.net JOIN :#esoteric < 1419919348 49224 :shikhin!~shikhin@unaffiliated/shikhin JOIN :#esoteric < 1419919475 351679 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net JOIN :#esoteric < 1419919662 162540 :roasted42!~appleseed@41.50.16.48 QUIT :Ping timeout: 265 seconds < 1419919757 951895 :roasted42!~appleseed@41.50.16.48 JOIN :#esoteric < 1419921015 121880 :MoALTz_!~no@user-46-112-9-246.play-internet.pl JOIN :#esoteric < 1419921157 395947 :MoALTz!~no@user-46-112-9-246.play-internet.pl JOIN :#esoteric < 1419921217 373291 :MoALTz__!~no@user-46-112-9-246.play-internet.pl QUIT :Ping timeout: 256 seconds < 1419921308 987587 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :I got Magic: the Puzzling for the Christmas present. < 1419921314 838579 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :I figured out a few of them so far. < 1419921315 171810 :MoALTz_!~no@user-46-112-9-246.play-internet.pl QUIT :Ping timeout: 244 seconds < 1419922527 230284 :roasted42!~appleseed@41.50.16.48 QUIT :Ping timeout: 258 seconds < 1419922673 589555 :roasted42!~appleseed@41.50.16.48 JOIN :#esoteric < 1419922706 261830 :oerjan!oerjan@sprocket.nvg.ntnu.no JOIN :#esoteric < 1419924549 403427 :dts|pokeball!~DTSCode@unaffiliated/dtscode QUIT :Ping timeout: 256 seconds < 1419924857 130473 :roasted42!~appleseed@41.50.16.48 QUIT :Ping timeout: 264 seconds < 1419924950 879584 :roasted42!~appleseed@41.50.16.48 JOIN :#esoteric < 1419925237 74830 :Sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Ping timeout: 240 seconds < 1419925272 219615 :Patashu!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au JOIN :#esoteric < 1419925684 990203 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: great < 1419925691 403306 :MoALTz!~no@user-46-112-9-246.play-internet.pl QUIT :Quit: Leaving < 1419927339 677386 :roasted42!~appleseed@41.50.16.48 QUIT :Ping timeout: 245 seconds < 1419927504 254694 :roasted42!~appleseed@41.50.16.48 JOIN :#esoteric < 1419928462 914732 :roasted42!~appleseed@41.50.16.48 QUIT :Ping timeout: 240 seconds < 1419928763 30721 :AndoDaan!~AndoDaan@188.189.83.12 QUIT :Ping timeout: 240 seconds < 1419928764 680261 :roasted42!~appleseed@41.50.16.48 JOIN :#esoteric < 1419929105 282840 :roasted42!~appleseed@41.50.16.48 QUIT :Ping timeout: 256 seconds < 1419929340 124597 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net QUIT :Quit: adu < 1419930120 737424 :AndoDaan!~AndoDaan@188.189.83.12 JOIN :#esoteric < 1419931497 336695 :ocharles_!sid30093@gateway/web/irccloud.com/x-vfkcldouquadgajq QUIT :Ping timeout: 258 seconds < 1419931546 866875 :ocharles__!sid30093@gateway/web/irccloud.com/x-yyvsrekkspfdebce JOIN :#esoteric < 1419932928 196504 :shikhin_!~shikhin@unaffiliated/shikhin JOIN :#esoteric < 1419933097 100011 :shikhin!~shikhin@unaffiliated/shikhin QUIT :Ping timeout: 240 seconds < 1419934327 936591 :supay_afk!sid47179@gateway/web/irccloud.com/x-gnvucmvnxgbrsmyc NICK :supay < 1419934853 342313 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :`echo hi < 1419934853 883856 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :hi < 1419934881 174150 :AndoDaan!~AndoDaan@188.189.83.12 PRIVMSG #esoteric :`echo `echo hi < 1419934881 735544 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :​`echo hi < 1419935044 35301 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :fizzie: the wiki - HackEgo link is broken < 1419935062 880441 :AndoDaan!~AndoDaan@188.189.83.12 PRIVMSG #esoteric :Oerjan, if I implement BCT in a language but hard code the instructions and init data-string instead of those being inputted, would that detract from its TC-ness? < 1419935080 791012 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :AndoDaan: no. that's what i did for /// < 1419935110 506536 :AndoDaan!~AndoDaan@188.189.83.12 PRIVMSG #esoteric :Okay. I figured, but wanted to make sure. < 1419935113 554285 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :Called a compiler? < 1419935139 634852 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :but i don't hold much with this idea some others have of separating input from program when defining TC-ness. < 1419935219 514200 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ACTION is wondering if that idiom he just used actually exists. < 1419935237 771734 :AndoDaan!~AndoDaan@188.189.83.12 PRIVMSG #esoteric :coined and minted. < 1419935251 624196 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :TC-ness is _always_ essentially about compiling < 1419935272 108722 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :it's just that you get to include the input as well as the program < 1419935310 824125 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :AndoDaan: this applies to all output-only languages, at least. < 1419935313 202788 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :oerjan: you must have some way to distinguish input and program, however < 1419935321 284133 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :coppro: no, you do not. < 1419935326 260638 :AndoDaan!~AndoDaan@188.189.83.12 PRIVMSG #esoteric :realtime event handling doesnt' change a language possibillities at all? < 1419935336 885514 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :you compile a _computation_, not program. < 1419935368 797346 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :AndoDaan: turing-completeness isn't about that. < 1419935373 862946 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :mm right the thing I was thinking when I said that is completely stupid < 1419935382 512876 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :the thing I was thinking before that is more right < 1419935384 696918 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :I will go with that < 1419935400 593219 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :Realtime weapon change < 1419935435 836284 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :it works because of the halting problem < 1419935441 638136 :AndoDaan!~AndoDaan@188.189.83.12 PRIVMSG #esoteric :^ very important, but not to TC-ness, i guess. < 1419935497 879497 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :No, I mean that the Halting Problem is what lets us ignore the machine/input distinction. < 1419935553 320763 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :A language is TC if, given a Turing machine with input, you can define some finite process which generates an instance of a program in that language, with input if applicable, which produces the same result. < 1419935568 709624 :AndoDaan!~AndoDaan@188.189.83.12 PRIVMSG #esoteric :Computer thrown toward the event horizon of a black hole. Time dilates to infinity, halting problem solved? < 1419935582 143595 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :You can't use the same definition for more restricted classes of computation, because you can always just run the computation and generate some other computation with the same result < 1419935625 991214 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :e.g. an NFA-plus-input can be transformed into a DFA-plus-input, because you can just run the NFA, get "accept" or "reject", and then create an accepting or rejecting DFA < 1419935640 778718 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :but a TM-plus-input can't be run < 1419935725 431100 :AndoDaan!~AndoDaan@188.189.83.12 PRIVMSG #esoteric :Non-Deterministic Finita Algorithm? < 1419935735 58105 :AndoDaan!~AndoDaan@188.189.83.12 PRIVMSG #esoteric :Automaton* < 1419935757 309560 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :Well, we're not talking about finite automata < 1419935810 820591 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :coppro: depends. NP-completeness works essentially the same way as TC, with "finite" replaced by "polynomial-time" or even "logarithmic space" < 1419935872 369099 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :it works as long as the resources used for "compiling" are less than what you need to solve the problem. < 1419935940 804692 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :on the other hand you have the circuit complexity classes, where you definitely need to distinguish the input. < 1419936016 852930 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(because you are trying to define classes that are _weaker_ than your compiler.) < 1419936135 23475 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :oerjan: right. < 1419936202 116237 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :btw, QTMs are shit < 1419936232 289845 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm? < 1419936262 857097 :AndoDaan!~AndoDaan@188.189.83.12 PRIVMSG #esoteric :Quantum Turing Machines? < 1419936280 175186 :ocharles__!sid30093@gateway/web/irccloud.com/x-yyvsrekkspfdebce QUIT :Changing host < 1419936280 218361 :ocharles__!sid30093@musicbrainz/user/ocharles JOIN :#esoteric < 1419936282 951588 :ocharles__!sid30093@musicbrainz/user/ocharles NICK :ocharles < 1419936307 888468 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i assumed so, i don't know why he thinks they are shit though. < 1419936365 195914 :AndoDaan!~AndoDaan@188.189.83.12 PRIVMSG #esoteric :First correct guess I made here. < 1419936392 617022 :AndoDaan!~AndoDaan@188.189.83.12 PRIVMSG #esoteric :I'm getting learn-ned. < 1419936429 626331 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ocharles: hey are you the ollie charles of 24 days of haskell fame? great series! < 1419936449 288995 :ocharles!sid30093@musicbrainz/user/ocharles PRIVMSG #esoteric :oerjan: that's me! < 1419936452 504492 :ocharles!sid30093@musicbrainz/user/ocharles PRIVMSG #esoteric :thank you :) < 1419936464 412811 :ocharles!sid30093@musicbrainz/user/ocharles PRIVMSG #esoteric :did you catch this year's series? < 1419936488 81432 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i am in the process, i have a bit of reddit catchup to do < 1419936549 296843 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i'm up to the template haskell one < 1419936637 315658 :ocharles!sid30093@musicbrainz/user/ocharles PRIVMSG #esoteric :ah < 1419936649 104037 :ocharles!sid30093@musicbrainz/user/ocharles PRIVMSG #esoteric :i might do 12 in future years, cause no one can read 24 :P < 1419936672 87490 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well maybe not if they're all as long as the TH one < 1419936710 765977 :ocharles!sid30093@musicbrainz/user/ocharles PRIVMSG #esoteric :yea, the guest posts are longer < 1419937232 39630 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :oerjan: Oh, right: it needs to be started manually, and Gregor started HackEgo last. < 1419937300 273065 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :oerjan: In theory, it should be on now. < 1419937313 633814 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :TOO LATE < 1419937317 934946 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :TOO LITTLE < 1419937336 666345 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(i already did today's edits) < 1419937914 251789 :zzo38!~zzo38@24-207-58-35.eastlink.ca QUIT :Ping timeout: 258 seconds < 1419938056 906545 :shikhin_!~shikhin@unaffiliated/shikhin NICK :shikhin < 1419938081 705741 :Solace!uid52684@gateway/web/irccloud.com/x-rksrexhdrvtrtxor PRIVMSG #esoteric :ah yes < 1419938091 511711 :Solace!uid52684@gateway/web/irccloud.com/x-rksrexhdrvtrtxor PRIVMSG #esoteric :I should use a VPS again < 1419939144 743591 :SopaXorzTaker!~Mark@87.228.105.48 JOIN :#esoteric < 1419939144 826748 :SopaXorzTaker!~Mark@87.228.105.48 QUIT :Changing host < 1419939144 826859 :SopaXorzTaker!~Mark@unaffiliated/sopaxorztaker JOIN :#esoteric < 1419939294 216677 :Patashu!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au QUIT :Ping timeout: 258 seconds < 1419940270 905383 :rade!~rade@unaffiliated/rade QUIT :Quit: Leaving < 1419940379 281030 :rade!~rade@unaffiliated/rade JOIN :#esoteric < 1419943756 238418 :coppro!raedford@taurine.csclub.uwaterloo.ca QUIT :Ping timeout: 258 seconds < 1419944692 676050 :tromp_!~tromp@rtc35-167.rentec.com JOIN :#esoteric < 1419944749 959482 :tromp__!~tromp@rtc35-167.rentec.com QUIT :Read error: Connection reset by peer < 1419944936 146822 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1419945766 268322 :AndoDaan!~AndoDaan@188.189.83.12 PRIVMSG #esoteric :Where on the body would a "save your GODDAMN CODE!" tattoo be the most effective? < 1419945911 890047 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :front of head hth < 1419946042 931886 :AndoDaan!~AndoDaan@188.189.83.12 PRIVMSG #esoteric :It does. In pointing out that Prison-Breaking it might be the way to go. < 1419946110 14813 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i don't believe putting a tattoo there is actually illegal in most western countries < 1419946207 339648 :shikhin!~shikhin@unaffiliated/shikhin QUIT :Ping timeout: 256 seconds < 1419946607 201927 :oerjan!oerjan@sprocket.nvg.ntnu.no QUIT :Quit: leaving < 1419947323 435270 :coppro!raedford@taurine.csclub.uwaterloo.ca JOIN :#esoteric < 1419948066 750734 :kallisti!~adam@h7.129.141.67.dynamic.ip.windstream.net JOIN :#esoteric < 1419949142 712524 :Lymia!~fujoshi@inportb/loli/cirno-chan QUIT :Ping timeout: 245 seconds < 1419949611 194274 :Sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1419950008 677275 :shikhin!~shikhin@unaffiliated/shikhin JOIN :#esoteric < 1419950842 86147 :boily!~alexandre@modemcable184.4-177-173.mc.videotron.ca JOIN :#esoteric < 1419951010 44577 :Solace!uid52684@gateway/web/irccloud.com/x-rksrexhdrvtrtxor QUIT :Quit: Connection closed for inactivity < 1419951057 743896 :nycs!~nycs@gw.hq.meetup.com JOIN :#esoteric < 1419951057 826696 :nycs!~nycs@gw.hq.meetup.com NICK :`^_^v < 1419951232 275421 :Lymia!~fujoshi@inportb/loli/cirno-chan JOIN :#esoteric < 1419951472 367966 :GeekDude!~GeekDude@unaffiliated/g33kdude JOIN :#esoteric < 1419952121 151270 :mitchs!~canissimi@unaffiliated/canissimia JOIN :#esoteric < 1419953490 668171 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Talk:Budget14]]4 N10 02http://esolangs.org/w/index.php?oldid=41560 5* 03AndoDaan 5* (+385) 10Asking if esolangs.org's the right place for budget. < 1419953855 972035 :SopaXorzTaker!~Mark@unaffiliated/sopaxorztaker QUIT :Remote host closed the connection < 1419953888 13404 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :2See. < 1419953893 417895 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :s/^2// < 1419955245 838354 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :fizzie, does a zero length write with W in SOCK make any sense ever? < 1419955271 297410 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :cfunge checks the length is zero or greater, but I think it should check it is 1 or greater < 1419955281 224065 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Going through bugs found with coverity < 1419955304 124116 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, your opinion would also be interesting ^ < 1419955489 919158 :rade!~rade@unaffiliated/rade PRIVMSG #esoteric :Anyone familiar with the CompCert C compiler? < 1419955490 286980 :rade!~rade@unaffiliated/rade PRIVMSG #esoteric :http://compcert.inria.fr/ < 1419955811 994319 :boily!~alexandre@modemcable184.4-177-173.mc.videotron.ca PRIVMSG #esoteric :I'm not, but it seems like a very interesting concept. < 1419955875 655769 :rade!~rade@unaffiliated/rade PRIVMSG #esoteric :I wonder if the CompCert C compiler addresses this issue: http://cm.bell-labs.com/who/ken/trust.html < 1419955937 407861 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :rade, do you trust your verification? < 1419955968 699768 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Do you trust that if what you are verifying is true then you can trust the compiler? < 1419955995 36222 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :The "I didn't read my compiler code" issue can only be solved by reading your compiler code < 1419956121 252014 :rade!~rade@unaffiliated/rade PRIVMSG #esoteric :Taneb, it's supposedly mathematically proved itself. I think this removes the need to trust it. Still, the design of the compiler's proof could be lacking, I guess. < 1419956134 996280 :rade!~rade@unaffiliated/rade PRIVMSG #esoteric :you have to choose what to prove in the design and implementation < 1419956140 976398 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :rade, there's still a LOT of things you need to trust < 1419956180 267225 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Like, do you trust the compiler you used to compile it CompCert? < 1419956208 377405 :rade!~rade@unaffiliated/rade PRIVMSG #esoteric :couldn't CompCert technically compile itself? < 1419956235 597798 :rade!~rade@unaffiliated/rade PRIVMSG #esoteric :I don't know if it does, though < 1419956246 327923 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :Yes, but you need to bootstrap it < 1419956250 306244 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :You'd have to bootstrap it from somewhere < 1419956259 601614 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :You have to trust even more things than the compiler source < 1419956261 796727 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :If not, you need to obtain the CompCert compiled pre-compiled already from somewhere < 1419956271 420497 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :Which of course means you need to trust that source < 1419956290 205409 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :s/the CompCert/& C compiler/ < 1419956306 431138 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Of course, how much do you trust your computer itself? < 1419956323 967370 :rade!~rade@unaffiliated/rade PRIVMSG #esoteric :there's always bitflips, right? < 1419956326 841677 :rade!~rade@unaffiliated/rade PRIVMSG #esoteric :I get your point < 1419956338 856217 :rade!~rade@unaffiliated/rade PRIVMSG #esoteric :well, it's a step in the right direction, at least < 1419956346 832399 :rade!~rade@unaffiliated/rade PRIVMSG #esoteric :the less you have to trust the better < 1419956351 166391 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :It's certainly a step in a direction < 1419956386 120829 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :You need to trust: the clight semantics, the cambridge x86/arm semantics, the coq binary you used to run the proof < 1419956398 533944 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :The coq specification of compcert < 1419956425 761211 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :depends on which computer < 1419956588 210873 :mihow!~mihow@108.30.58.169 JOIN :#esoteric < 1419956753 994029 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Vorpal: man 3p write says "If nbyte is zero and the file is not a regular file, the results are unspecified." man 3p send and sendto don't say anything about the zero-length case. SOCK.W is probably meant as a thin wrapper around one of these, and indeed RC/Funge-98 uses send(). Given that it seems to be unspecified I'd allow it; maybe the programmer knows something we don't, at least on the specific < 1419956755 950275 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :platform he's using, and expects a certain result. < 1419956793 333286 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, well it causes uninitialized memory in cfunge < 1419956809 32387 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :And the easiest way to fix it is to check for 1 or more rather than 0 or more < 1419956810 399897 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :If the "unspecified" means "error out" on the execution platform then your usual error checking should catch that and reverse the IP as usual. < 1419956869 723009 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Oh and I use send() as well < 1419956900 57781 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :Deewiant: that exception is probably there because some packet-based sockets or devices could conceivably allow sending zero-length sockets, even though udp in particular doesn't allow that < 1419957027 106659 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :zero length packets, not sockets < 1419957031 195845 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :But yeah probably < 1419957033 478013 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :yes, sorry < 1419957061 490651 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Vorpal: So send(some fd, null, 0, 0) is problematic, or what? < 1419957159 661826 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, well, first of all, I end up calling malloc(0), which is also implementation defined. On Linux that will in fact return a pointer (to 1 byte). Then I copy 0 bytes into that buffer from funge space. Which I then send with length 0. < 1419957178 526834 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :On some systems it will error out because malloc(0) can return NULL < 1419957198 339748 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :What will error out? < 1419957202 564677 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Copying 0 bytes out of NULL should be fine < 1419957228 434338 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Well, I check malloc return value. So it will error out because I check for successful allocation < 1419957251 48001 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Well you should check it only if len > 0 < 1419957334 97497 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Hm send() with length 0 is not even documented < 1419957347 130250 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :So that seems like undefined behaviour, not just implementation defined. < 1419957425 288150 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :On Windows it's ok: < 1419957427 985041 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Calling send with a len parameter of zero is permissible and will be treated by implementations as successful. In such cases, send will return zero as a valid value. For message-oriented sockets, a zero-length transport datagram is sent. < 1419957485 141254 :tswett!~tswett@c-98-243-16-185.hsd1.mi.comcast.net TOPIC #esoteric :oerjan doesn't hold much with that idea | but often spelled correctly. | https://dl.dropboxusercontent.com/u/2023808/wisdom.pdf http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/ < 1419957543 329172 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :https://bugzilla.kernel.org/show_bug.cgi?id=5731 is a bug about write() not writing a zero-length packet < 1419957574 14728 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, cfunge doesn't support native Windows anyway, so that seems irrelevant < 1419957626 840347 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :I'm just pointing out examples where this works or is expected to work < 1419957679 212359 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Hm < 1419957687 852278 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Makes sense < 1419957699 280983 :nys!~nysnamovo@blk-215-85-138.eastlink.ca JOIN :#esoteric < 1419957716 455356 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :You might be able to get away with not actually calling send() but not erroring either, if you want to be difficult about it < 1419957744 971351 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Hah < 1419957939 730156 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, what about the buffer in this case though? < 1419958074 532511 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :What about it? < 1419958149 333200 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Can it be null in this case? < 1419958218 193986 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :I don't see why not but I'd at least try it on Linux first < 1419958227 728873 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Right < 1419958268 658238 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Or check the source code of some libcs, etc < 1419958340 775990 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :who invents all these hundreds of crazy particles? < 1419958347 500000 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :um, sorry, wrong channel < 1419958418 817629 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, what do you use for randomness in CCBI(2) btw? < 1419958437 203973 :AndoDaan!~AndoDaan@188.189.83.12 QUIT :Read error: Connection reset by peer < 1419958461 223540 :AndoDaan!~AndoDaan@188.189.83.12 JOIN :#esoteric < 1419958464 636149 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Vorpal: Re. Coverity, did you do the whole signup process and whatnot that they at least used to require, or do you have (or is there nowadays) some easier way to access it < 1419958523 532516 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, well I had to login with my github login, add the project and provide some info about it, including an indication that I was related to the project in some way. < 1419958527 999084 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Looks like Mersenne Twister for randomness; I actually thought it was KISS < 1419958530 314807 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Then they had to verify it < 1419958539 795701 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Which took a couple of days, probably due to the holidays < 1419958556 683183 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :So in short it's still a hassle, ok. :-) < 1419958557 759304 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, it only supports C/C++, Java and C# though < 1419958568 560693 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :So CCBI won't have much use for it < 1419958572 286970 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Oh, they have C#, didn't know < 1419958577 223752 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :I thought it was only C, C++, Java < 1419958578 227211 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Apparently < 1419958592 284404 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Maybe it is new? Who knows < 1419958600 588303 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :But yeah, CCBI is pretty much frozen anyway, just wondering < 1419958611 551267 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, Anyway, KISS? As in keep it simple stupid? < 1419958624 553487 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Meaning random() from the standard library < 1419958637 926584 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Or is KISS a separate badly named algorithm? < 1419958684 424613 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Coverity complains that I use random(). So that was why I was wondering < 1419958697 464336 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :In other words: don't use cfunge to implement SSL? < 1419958722 993696 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Can't find a good source for it but it's a different generator, one of Marsaglia's < 1419958752 39766 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :I ran both CCBI and cfunge through the dieharder tests at some point and cfunge got pretty poor results, random() would explain that < 1419958872 143547 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Heh < 1419958886 777598 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, ? is even random() % 4 iirc < 1419958945 779104 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :The range of random() is probably a power of two so that % is probably fine < 1419959060 805848 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :17 defects in total. Quite a few edge cases (mostly related to improper error handling, such as not freeing memory when the second of a series of malloc fails or similar). No really big issues for normal usage though. Also 4 false positives (all "high impact"). Plus 3 instances of random() < 1419959109 482921 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, the random() % n in FIXP D is probably worse < 1419959109 633075 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Run the clang static analyzer and see if it catches the same ones (though I doubt it complains about random()) < 1419959118 310878 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Yeah that's not nice < 1419959124 684484 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :I have used clang static analyzer in the past < 1419959167 667911 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :In my experience it finds rather long and complicated chains of events mostly after the first time I used it. Most of them being impossible. < 1419959240 885599 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, but I don't have a modern llvm version on this machine I think, I might try it later though, but it should be clean from real defects at least as of clang a year or so ago < 1419959324 490664 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Odd if it misses all of those "missing free" cases < 1419959326 627900 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Hm also this is annoying, some weird issues in an implementation of strstr (I have copies of the glibc str* functions I need for funge-space sizes) < 1419959330 436826 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :But yeah it has false positives of its own < 1419959361 658949 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Well, it did back then at least. Coverity also missed at least one. Though perhaps it only report the first issue of a kind in a given function? < 1419959377 620455 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Could be < 1419959491 408881 :tswett!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :> iterate (\x -> ((x ^ 2) `div` 100) `mod` 10000) 7835 < 1419959492 817446 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : [7835,3872,9923,4659,7062,8718,35,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0... < 1419959541 847352 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Hm? < 1419959593 228114 :tswett!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :> iterate (\x -> ((x ^ 2) `div` 100) `mod` 10000) 7838 < 1419959594 447994 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : [7838,4342,8529,7438,3238,4846,4837,3965,7212,129,166,275,756,5715,6612,7185... < 1419959602 621680 :tswett!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :There we go. < 1419959666 186626 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :What is that sequence about? < 1419959697 890040 :tswett!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :Middle-square pseudorandom numbers. < 1419959729 638726 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Ah < 1419959795 928869 :tswett!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :> iterate (msq 100) 1234 < 1419959797 284890 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : [1234,5227,3215,3362,3030,1809,2724,4201,6484,422,1780,1684,8358,8561,2907,4... < 1419959805 713025 :tswett!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :> iterate (msq 10000) 12345678 < 1419959806 968893 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : [12345678,41576527,60759738,74576182,60692169,53937792,28540583,56487797,871... < 1419959813 279651 :tswett!~tswett@c-98-243-16-185.hsd1.mi.comcast.net PRIVMSG #esoteric :And so on and so forth. < 1419959947 58587 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, I did find an interesting issue actually, but again, if IP duplication fails, which requires OOM to happen. < 1419960075 381618 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Yeah it's too bad that never actually happens; all that code just waiting to be executed < 1419960113 449768 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Hah < 1419960121 461109 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, what should happen when t fails hm? < 1419960136 427099 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :The parent can hardly be reversed, that is undetectable from the child < 1419960152 293068 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Reverse the parent but don't create a child < 1419960164 809812 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Really? < 1419960168 733951 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Why not? < 1419960178 860094 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Well okay < 1419960181 208923 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :The program should notice that one of its threads is missing :-P < 1419960190 833717 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Not like that code will ever be hit anyway < 1419960500 991653 :nortti!nortti@nano.smar.fi NICK :lawspeaker < 1419960523 205953 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, not sure what to do about randomness though... Is it worth using urandom if that exists or something like that? < 1419960525 940045 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Hm < 1419960552 257028 :bb010g!uid21050@gateway/web/irccloud.com/x-bzsaaonucvubakdu JOIN :#esoteric < 1419960560 151670 :lawspeaker!nortti@nano.smar.fi NICK :nortti < 1419960579 560485 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :/dev/urandom is a bit slow if you don't need a CSPRNG < 1419960597 706004 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :True < 1419960634 721977 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :So what good options are there hm? Adding in another external library seems annoying < 1419960657 636356 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :And I don't know what algorithms are good < 1419960697 946551 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :I used to have the mersenne twister just rolled in as one file (since then it appeared in the standard library of the time) < 1419960706 966018 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Most RNG's aren't that big, you can just drop them in < 1419960718 883817 :myndzi!myndzi@kingofstackers.com QUIT :Quit: . < 1419960753 283958 :myndzi!~myndzi@cpe-24-55-54-148.austin.res.rr.com JOIN :#esoteric < 1419960816 668261 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :E.g. xorshift* is quite good and something like 10 lines: https://en.wikipedia.org/wiki/Xorshift#Variations < 1419960830 596451 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Why doesn't random() in libc use it then? < 1419960953 323433 :myndzi!~myndzi@cpe-24-55-54-148.austin.res.rr.com QUIT :Client Quit < 1419960956 261328 :myndzl!myndzi@198.58.96.39 JOIN :#esoteric < 1419960962 820309 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :man 3p random suggests that a specific algorithm is required < 1419961042 395323 :myndzl!myndzi@198.58.96.39 QUIT :Client Quit < 1419961052 27056 :myndzi!myndzi@2600:3c00::f03c:91ff:fedf:3d4e JOIN :#esoteric < 1419961055 156867 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Oh and there's arc4random in libbsd, which is good < 1419961072 166763 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :just use /dev/random and fuck everything < 1419961092 552017 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :But it's also a CSPRNG, I don't know how it compares to /dev/urandom in speed < 1419961125 731516 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Ah < 1419961259 497631 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, Well, libbsd is not universal (cfunge does optionally use strlcpy/strlcat from it, if not found it uses it's own copy of those instead) < 1419961286 867312 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Yes but you're allowed to depend on things :-P < 1419961312 488846 :nortti!nortti@nano.smar.fi NICK :lawspeaker < 1419961321 174070 :lawspeaker!nortti@nano.smar.fi NICK :nortti < 1419961331 874903 :myndzi!myndzi@2600:3c00::f03c:91ff:fedf:3d4e QUIT :Client Quit < 1419961349 283786 :myndzi!myndzi@198.58.96.39 JOIN :#esoteric < 1419961351 228495 :myndzi!myndzi@198.58.96.39 QUIT :Remote host closed the connection < 1419961360 929320 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Yes, but no reason to do it if I don't need to. Anyway I want a fast algorithm < 1419961376 209294 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Mersenne twister (while not a CSPRNG) is fast isn't it? < 1419961387 445836 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :and that xor thing < 1419961419 283577 :myndzi!myndzi@198.58.96.39 JOIN :#esoteric < 1419961431 764781 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: it's fast enough that openbsd could make random() use it < 1419961495 480477 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Yeah sure, /dev/random on Linux is the only thing that's actually "slow" in some absolute sense < 1419961508 211555 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh this is cfunge we're talking about :P < 1419961515 713348 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :better use xorshift for the speeeeeeeed < 1419961551 506565 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :/dev/urandom pushes some 17 MiB/s on this box and how likely is that to bottleneck even a randomness-heavy Funge program < 1419961552 333424 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Hm arc4random doesn't allow initializing with a fixed seed to cause a repeat? < 1419961606 628561 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :That is annoying, since I use that feature for fuzz testing (to ensure I test the same program when I run it normally and then under valgrind) < 1419961608 283921 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I guess if it doesn't slow down mycology or fungot he won't care < 1419961608 840713 :fungot!fis@selene.zem.fi PRIVMSG #esoteric :elliott: you probably want anyway) to find where the code is not. it just means that if your program uses them to debug a hq9+ program if he can't help you < 1419961632 464672 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :elliott, hah < 1419961634 739519 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Vorpal: You need to provide a dummy /dev/urandom for arc4random_stir :-P < 1419961642 680314 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :a dummy getentropy too < 1419961644 812671 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :if it's using that < 1419961647 975968 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :which I hope it is < 1419961659 241596 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, that sounds a lot more annoying than #define FUZZ_TESTING causing srandom() to use a static value < 1419961663 624594 :boily!~alexandre@modemcable184.4-177-173.mc.videotron.ca PRIVMSG #esoteric :@metar CYQB < 1419961664 46480 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :CYQB 301700Z 25012G17KT 25SM FEW040 FEW170 M17/M24 A3033 RMK SC1AC1 AC TR SLP277 < 1419961673 14787 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :elliott: The manpage just says "arc4random_stir() function reads data from /dev/urandom" < 1419961677 894566 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(it probably even calls it directly sine I don't think there's any libc wrapper yet) < 1419961678 568224 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :elliott, is that a system call? I don't have a man page for it < 1419961691 432531 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: yeah but the openbsd people wanted getentropy added specifically I think < 1419961694 952597 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :at least, it comes from openbsd < 1419961695 56709 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Vorpal: It's a rather recently added syscall < 1419961703 943652 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Depending on your kernel you might not have it yet < 1419961705 730328 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Oh that thing < 1419961708 830946 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :wasn't it openssl? < 1419961713 718648 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: it's /dev/urandom that works in a chroot etc. and doesn't use an fd and can block if the entropy pool hasn't been filled yet < 1419961715 137151 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :3.13, who knows < 1419961726 245247 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(not the same as /dev/random, /dev/random starts blocking again for ~no reason even once it has entropy) < 1419961727 423490 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Vorpal: Re. fuzz testing you can of course define your randomness function to use a different RNG when fuzzing < 1419961771 935745 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, well yeah that works I guess, just revert to the old random() with fixed srandom() in that case < 1419961788 907190 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :elliott: TBH I don't see why they didn't fix /dev/random instead < 1419961827 311365 :AndoDaan!~AndoDaan@188.189.83.12 QUIT :Quit: bbl < 1419961831 485909 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: that still doesn't work inside chroots (think containerisation) and uses an fd < 1419961842 576090 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, that could be missing in a chroot, or you could have used up all your file descriptors < 1419961846 724655 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :there are actual cases of programs falling back to bad entropy when they run out of fds that openbsd ran into IIRC < 1419961871 600156 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"bad entropy" is one of those "bad Xs" that means "not X" < 1419961873 779591 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :chroots could just populate their /dev appropriately... but yeah the fd issue is a good point < 1419961897 936311 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :also it's faster I think? < 1419961903 984796 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :since it skips a lot of overhead < 1419961911 394306 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Yeah it should be < 1419961918 922702 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I mean it's not like linux is exactly a paragon of syscall minimalism / everything is a file < 1419961923 561092 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Oh god, cmake I hate you. Never again will I use cmake for a project. < 1419961925 820035 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so they might as well just provide it this way < 1419961938 279275 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Vorpal: What's a good alternative? < 1419961946 613141 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, well that is the issue, there isn't one < 1419961950 27563 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :elliott: I still wonder about my question though, just without the "instead" < 1419961958 61364 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, autoconf + tup maybe? < 1419961971 717178 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Vorpal: auto* is not a good alternative in my mind :-P < 1419961986 759477 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, well it is easier to do some of the stuff I'm doing with that actually. < 1419961987 196524 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I don't know. I guess whoever's in charge of /dev/random doesn't understand information theory? < 1419962012 457847 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: it's probably easier to keep it broken and hope everyone forgets about it than to force programs to check whether /dev/random is okay or not < 1419962032 692258 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :elliott: I think it's pretty clear that wasn't the case originally but by now and especially with getentropy you'd think something would change... < 1419962046 848409 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Er, was the case* that that person didn't understand < 1419962048 224216 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :elliott, Why did it block even when there is entropy btw? < 1419962062 352279 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: because you can "run out of entropy" (you can't) < 1419962065 228034 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :elliott: I'd still fix it but call it deprecated, there are programs that read from only it < 1419962087 628035 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Although maybe all the major ones are switching to getentropy as soon as it's available < 1419962098 539061 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: (I've seen that analogised as "running out of key" when encoding a lot of messages with a stream cipher) < 1419962136 601362 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :elliott, didn't it use entropy to seed a generator? Or did it just return the entropy directly as the random data? < 1419962143 754397 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :I guess the latter case could break stuff < 1419962146 918020 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it feeds it through a CSPRNG yes < 1419962168 434488 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Then you can't run out as far as I understand indeed (though I'm no expert in this area) < 1419962169 930043 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it even keeps adding entropy later, which is harmless and sort of very minorly good but not really necessary at all < 1419962181 905745 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it's just its entropy estimate goes down when you read from /dev/random < 1419962183 89510 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :for some reason < 1419962202 185858 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Vorpal: http://www.2uo.de/myths-about-urandom/structure-no.png < 1419962214 251191 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :the problem with /dev/urandom is that it doesn't block when you *do* want it to (at boot, before there's a reasonable (~128 bits) amount of entropy) < 1419962231 392609 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but /dev/random blocks after that too < 1419962245 357475 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :on e.g. FreeBSD, /dev/{u,}random are the same and block at boot and never otherwise < 1419962253 424010 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :linux will never do that though because backwards compatibility >_< < 1419962262 539720 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Heh < 1419962298 704237 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, that looks like it sometimes just returns the entropy pool data raw? < 1419962299 122879 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Hmm, alias /dev/{u,}random to sockets that talk to /dev/random on a FreeBSD box? < 1419962306 824141 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, hah < 1419962339 416372 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :/dev/random does go through the CSPRNG do, or at least so I've heard... if that diagram suggests otherwise I'd be inclined to not believe it < 1419962344 795483 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*too < 1419962349 490833 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Vorpal: Oh whoops wrong one, http://www.2uo.de/myths-about-urandom/structure-yes.png < 1419962369 128788 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :The one I linked earlier was the "what you might think" version < 1419962401 700246 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :nice < 1419962402 66750 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Hm < 1419962408 539142 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :deliberately misleading diagram with no big red warning sign on it < 1419962419 718258 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :how many reddit/HN comments has it been linked from to support an argument < 1419962426 540089 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :It has "no" in the filename, you'd think that's enough < 1419962467 402314 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :It says "[a]n incorrect view" almost immediately before it on the HTML (in red, even) but yes, not in the image itself < 1419962498 216046 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I feel like if you show people the wrong version first it's the one they'll remember... < 1419962544 771350 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Maybe < 1419962638 115670 :Sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Ping timeout: 244 seconds < 1419962726 647783 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :"Counting entropy" < 1419962753 717707 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :there's a little gnome in the kernel who pushes a button whenever it sees a bit that surprises it <_< < 1419962796 11556 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :I really, really don't want gnome in the kernel < 1419963633 366123 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Jafet, don't worry, it will be systemd instead < 1419963841 359571 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, an issue with arc4random_uniform is that it is 32-bit, cfunge can have 64-bit cells. < 1419963902 837191 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :What would a good way to generate a 64-bit random value with arc4random be? For the case of whole bytes, arc4random_buf could be used. < 1419963914 641148 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :But I don't know for the case of [0,max] < 1419963926 936910 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :elliott, ^ < 1419963928 605031 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :arc4 is 8-bit < 1419963935 249395 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric : u_int32_t < 1419963935 402582 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric : arc4random_uniform(u_int32_t upper_bound); < 1419963940 718998 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Doesn't look like it? < 1419963950 124275 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Or the man page is lying < 1419963957 447386 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :I see < 1419963981 253546 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :You can, of course, construct a 64-bit random in parts < 1419964144 679487 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Jafet, what is a good way to do it though? For a specific upper bound between 2^32 and 2^64? < 1419964158 180566 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Vorpal: Use arc4random_buf to generate 64 bits in one go? < 1419964162 815828 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Sorry, for an arbitrary rather than specific < 1419964180 970385 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, But I don't want to do % after to limit it to an upper bound. I'm asking for that specific case. < 1419964200 32991 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :How do I best limit it to a a range [0,n] for any n < 1419964201 728953 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Well if your upper bound fits in less bytes then pass a smaller length to arc4random_buf < 1419964209 690629 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :And then you'll have to use % < 1419964223 882401 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, and if my n is a number that isn't a power of 2? < 1419964226 601538 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :I suspect that this arc4random_uniform uses rejection sampling < 1419964231 143179 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Ah < 1419964249 169469 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :So it takes an indeterminate amount of time perhaps. < 1419964258 991488 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric : arc4random_uniform() will return a uniformly distributed random number less than upper_bound. arc4random_uniform() is recommended over construc‐ < 1419964259 145090 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric : tions like “arc4random() % upper_bound” as it avoids "modulo bias" when the upper bound is not a power of two. < 1419964262 95777 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Vorpal: Then toss the result if it's in an uneven range < 1419964274 523277 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, fair enough < 1419964317 42828 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :(Is "rejection sampling" the fancy term for that?) < 1419964369 150061 :adu!~ajr@static-108-48-76-162.washdc.fios.verizon.net JOIN :#esoteric < 1419964556 679569 :dts|pokeball!~DTSCode@unaffiliated/dtscode JOIN :#esoteric < 1419964609 624282 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :If by "that" you mean rejection sampling, yes < 1419964676 658997 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :You could just write a uint64_t version of http://svnweb.freebsd.org/base/head/lib/libc/gen/arc4random.c?view=markup#l270 < 1419964738 23835 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :I'm surprised that they actually allow an infinite loop there < 1419964754 853141 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :That's a clever min < 1419964792 810456 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :(Or at least not-yet-known-to-be-finite, given that this is arc4 output.) < 1419964803 797456 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Yeah that seems bad < 1419964819 172728 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :For cfunge it won't matter, but imagine what that will do to a real time system < 1419964828 411845 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :But then again I doubt freebsd is a real time OS anyway < 1419964884 331975 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :I'm not sure if the kernel uses that function < 1419964911 425021 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :I think OpenBSD does at least < 1419964918 622008 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Or maybe not that function, but arc4 < 1419964927 655153 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Pretty sure /dev/random on OpenBSD is arc4-based < 1419965377 281733 :rade!~rade@unaffiliated/rade QUIT :Ping timeout: 255 seconds < 1419966289 653661 :kallisti!~adam@h7.129.141.67.dynamic.ip.windstream.net QUIT :Ping timeout: 245 seconds < 1419966857 364334 :Guest36924!~canaima@190.206.121.53 JOIN :#esoteric < 1419966911 86076 :Guest36924!~canaima@190.206.121.53 PRIVMSG #esoteric :hello < 1419966981 379185 :Guest36924!~canaima@190.206.121.53 PART :#esoteric < 1419967141 139759 :nycs!~nycs@gw.hq.meetup.com JOIN :#esoteric < 1419967239 629413 :`^_^v!~nycs@gw.hq.meetup.com QUIT :Ping timeout: 245 seconds < 1419967781 745360 :shikhin_!~shikhin@unaffiliated/shikhin JOIN :#esoteric < 1419967928 179926 :rade!~rade@unaffiliated/rade JOIN :#esoteric < 1419967970 322546 :shikhin!~shikhin@unaffiliated/shikhin QUIT :Ping timeout: 250 seconds < 1419969312 713007 :shikhin_!~shikhin@unaffiliated/shikhin NICK :shkhn < 1419969410 539031 :shkhn!~shikhin@unaffiliated/shikhin NICK :shikhin < 1419969970 814343 :nycs!~nycs@gw.hq.meetup.com QUIT :Quit: This computer has gone to sleep < 1419970195 121228 :nycs!~nycs@gw.hq.meetup.com JOIN :#esoteric < 1419972245 189371 :MoALTz!~no@user-46-112-9-246.play-internet.pl JOIN :#esoteric < 1419972676 370093 :oerjan!oerjan@sprocket.nvg.ntnu.no JOIN :#esoteric < 1419972877 122324 :augur!~augur@c-71-57-177-235.hsd1.fl.comcast.net QUIT :Ping timeout: 240 seconds < 1419973152 278102 :augur!~augur@c-71-57-177-235.hsd1.fl.comcast.net JOIN :#esoteric < 1419973283 661651 :augur_!~augur@c-71-57-177-235.hsd1.fl.comcast.net JOIN :#esoteric < 1419973404 967749 :nycs!~nycs@gw.hq.meetup.com NICK :`^_^v < 1419973504 283169 :augur!~augur@c-71-57-177-235.hsd1.fl.comcast.net QUIT :Ping timeout: 255 seconds < 1419973920 278963 :Patashu!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au JOIN :#esoteric < 1419974815 464824 :oerjan!oerjan@sprocket.nvg.ntnu.no QUIT :Quit: ZZZZ < 1419975720 82237 :zzo38!~zzo38@24-207-58-35.eastlink.ca JOIN :#esoteric < 1419976110 826782 :_2_Leenz2!~33810092@75-142-196-22.static.rvsd.ca.charter.com JOIN :#esoteric < 1419976114 246256 :_2_Leenz2!~33810092@75-142-196-22.static.rvsd.ca.charter.com PRIVMSG #esoteric :Haii < 1419976117 91209 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric : You could just write a uint64_t version of http://svnweb.freebsd.org/base/head/lib/libc/gen/arc4random.c?view=markup#l270 <-- that is rather interesting code < 1419976127 175660 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :I wonder why it works actually < 1419976132 523929 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Will have to look into that < 1419976140 334375 :_2_Leenz2!~33810092@75-142-196-22.static.rvsd.ca.charter.com PRIVMSG #esoteric :Hai :D < 1419976184 351582 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Jafet, specifically the claim that p > 0.5 < 1419976191 811344 :_2_Leenz2!~33810092@75-142-196-22.static.rvsd.ca.charter.com QUIT :Client Quit < 1419977216 215142 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Vorpal: simple math. if upper_bound <= 2^31 then min < 2^31 because min < upper_bound; otherwise, min < 2^31 becaues 2^32-upper_bound < 2^31. < 1419977265 825542 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :so (2^32-min) / 2^32 > 2^31/2^32 = 0.5 < 1419977297 620160 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Hm, that will scale to 64-bit I presume? I think it is way too late for me to implement this given that I can't figure this out < 1419977342 390026 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :sure. < 1419977352 750018 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Just replace u_int32_t, and then use arc4random_buf(&my64bitint, 2) instead of arc4random() < 1419977393 200223 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, btw did you test that randomness thing with efunge too? If so, how did it fair? < 1419977396 330684 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :looks plausible (didn't check the API) < 1419977414 764161 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Vorpal: Nah, only CCBI and cfunge < 1419977430 142522 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 265 seconds < 1419977438 408287 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, Do you still have the code for it? < 1419977461 686650 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1419977506 48506 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Not sure but it would be pretty easy to recreate anyway < 1419977560 486250 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :$ cat rng.b98 < 1419977563 8779 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :4v > 0v >$'@*\88+*+\4*++, < 1419977564 965357 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric : >#v? 1>\1-:!#^_ < 1419977567 6041 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric : > 2^ < 1419977568 984834 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric : > 3^ < 1419977571 28059 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :I think that's it < 1419977582 970530 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :Seems to generate something pretty random-looking at least < 1419977607 591386 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :What test did you use did you say? < 1419977612 313841 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :dieharder < 1419977628 335156 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :http://www.phy.duke.edu/~rgb/General/dieharder.php < 1419977742 133846 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Budget14]]4 10 02http://esolangs.org/w/index.php?diff=41561&oldid=41559 5* 03BCompton 5* (+10) 10Stub < 1419977788 964821 :adu!~ajr@static-108-48-76-162.washdc.fios.verizon.net QUIT :Quit: adu < 1419980002 22499 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :In file included from ../../src/prng.c:33:0: < 1419980002 213316 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric : void arc4random_addrandom(u_char *dat, int datlen); < 1419980005 72801 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Massive fail :P < 1419980010 302005 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :err < 1419980013 569337 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :/usr/include/bsd/stdlib.h:52:27: error: unknown type name ‘u_char’ < 1419980016 604149 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :That bit < 1419980063 53255 :^v!~notnot^v@c-71-238-153-166.hsd1.mi.comcast.net JOIN :#esoteric < 1419980135 240459 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Can't find a header with it either... < 1419980189 739561 :tswett!~tswett@c-98-243-16-185.hsd1.mi.comcast.net QUIT :Ping timeout: 245 seconds < 1419980622 242689 :`^_^v!~nycs@gw.hq.meetup.com QUIT :Quit: This computer has gone to sleep < 1419980687 25734 :^v!~notnot^v@c-71-238-153-166.hsd1.mi.comcast.net QUIT :Quit: Leaving < 1419980826 706829 :mihow!~mihow@108.30.58.169 QUIT :Quit: mihow < 1419981073 829939 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, arc4random is indeed very fast, I did some quick tests with it. It is slightly slower than the built in random() % 4 < 1419981091 525575 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :I basically did "build/release/cfunge examples/prng.b98 | wc -c & sleep 5; killall cfunge; sleep 0.1; echo" a few times over and averaged the results < 1419981150 982747 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :1548288.5 for arc4 (with 4 passed to proper modulo handling function) vs 1617920.9 for random() % 4 < 1419981162 683349 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :That is not too bad at all < 1419982136 248777 :adu!~ajr@c-69-243-56-49.hsd1.md.comcast.net JOIN :#esoteric < 1419982382 388248 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :When trying to edit c2 wiki I get "Suspicious source (tor.ahbl.org)". Do you know what that is? < 1419982465 561394 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :zzo38, Oh, fun... I heard about this. Basically tor.ahbl.org *was* a DNS blacklist for Tor exit nodes. But it shut down recently. The result is that it returns that all IPs are exit nodes... < 1419982480 8558 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :You need to contact the admin of that wiki I suspect < 1419982718 81721 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :SQLite uses ARCFOUR for random number generators. What do the numbers 1548288.5 and 1617920.9 mean exactly? < 1419982758 224550 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :zzo38, Should be obvious from the command line? < 1419982769 440782 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :build/release/cfunge examples/prng.b98 | wc -c & sleep 5; killall cfunge; sleep 0.1; echo < 1419982795 306392 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :It is the average of 5 runs of that < 1419982819 683637 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :You didn't tell me it is the average. < 1419982822 983595 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Highly unscientific measurement of course, but good enough to show that the performance is only slightly worse < 1419982829 344154 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :zzo38, I did < 1419982831 378880 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric : I basically did "build/release/cfunge examples/prng.b98 | wc -c & sleep 5; killall cfunge; sleep 0.1; echo" a few times over and averaged the results < 1419982837 68082 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :O, OK < 1419982854 404824 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :I didn't tell you it was 5 times < 1419982881 817705 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :The average of what, the output of wc -c or what, and what does prng.b98 do exactly? < 1419982928 24313 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :zzo38, that is the program Deewiant provided earlier < 1419982944 260963 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :OK < 1419982946 928945 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Just a few lines above < 1419982959 891090 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :zzo38, And yes the output of wc -c. < 1419982964 337743 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :What else is there? < 1419982967 911594 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :The job ID?! < 1419982973 607853 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Vorpal: funny, I'd always do it the other way around; output a fixed number of characters and time that. (either by putting a loop in the program or by using head -c) < 1419982982 721258 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :O, so is it checking how many characters it can output in 5 seconds? < 1419983001 760700 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :int-e, well that works too. Probably better too. Didn't want to rewrite the program though < 1419983014 742944 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :head -c would have worked yes < 1419983035 929496 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :int-e: That is what confused me too, although I would have done yet another different way < 1419983044 604760 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :int-e, except what does that do with full buffering? Pretty sure full buffering is going on < 1419983054 167671 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Err that was badly worded < 1419983097 17709 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Put the timing in the program itself or time how many times you can execute the program or something like that, is what I have done in my own cases < 1419983107 866794 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Vorpal: well, are you sure your program flushes its buffer when its killed? it comes down to that... in any case I'd make sure the count is not too small < 1419983122 655190 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :That is mainly the confusion I have had with it < 1419983147 440851 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Although it is obvious what you have done now, I just didn't notice quite at first < 1419983163 10664 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :int-e, well if it didn't I should get various multiples of fixed sizes every time, no? < 1419983192 596221 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Vorpal: perhaps. < 1419983292 244242 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Deewiant, dieharder does not run fast :/ < 1419983431 228047 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :If the range of the random numbers aren't a power of two then you need to do something else; what I have done in such case is to first take the number of bits needed, and then if the number is too big try again until it is not too big. < 1419983607 998798 :pallokolmio!vosalo@linux.utu.fi JOIN :#esoteric < 1419983612 521344 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :What is done by the card DIGGER in Pokemon cards is basically an optimization of this algorithm for the case: if random(0 to 2) < 2 then hits your own card else hits opponent's card. Since the bit1 is 0 then it is known true you needn't read the next bit.