< 1418947215 985773 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It's missing the "non-trivial zeroes" part. < 1418947217 589858 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :oh yeah, all solutions rather than all 'nontrivial' < 1418947234 294922 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :cluid: send it in and get your fere pen < 1418947237 917390 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*free < 1418947257 402953 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :kind of unreasonable that they end the offer in 2018 < 1418947261 456518 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :fungot: how would one prove the Riemann? < 1418947261 927462 :fungot!fis@selene.zem.fi PRIVMSG #esoteric :boily: fun fact: sisc is a subclass of a, but 5.25" on the abacus to any position in the argument < 1418947262 975663 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :can't spare a pen after that < 1418947268 243786 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :imagine if you really prove the RH, and they reject it beacuse you didn't prove their false mistatement of the theorem < 1418947282 2012 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :that would be annoying < 1418947323 685035 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :haha < 1418947342 865286 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I also note they don't give a pen for proving ~RH < 1418947595 805 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :does 'nontrivial' have a real definition < 1418947636 131705 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It has a conventional definition in this context, at least. < 1418947644 532883 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :fizzie: are you sure the multiplication by Gamma(s/2) doesn't take care of the trivial zeros? < 1418947658 717465 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :So-called "trivial zeros" occur at all negative even integers s=-2 , -4 , -6 , < 1418947675 342108 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :er and pi^(-s/2) < 1418947684 21216 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :actually no, not that < 1418947731 859677 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :what does everyone use for 2D programming? < 1418947743 986485 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :im finding it quite hard to do it in a plain text editor :/ < 1418947768 591516 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :I think crazym4n has an ide for you. < 1418947781 341465 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric ::3 < 1418947800 23882 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :https://gist.github.com/CrazyM4n/d02380667be743be1310 < 1418947827 568710 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :oerjan: I was wondering about that, but it seemed like too much thinking to think it through. < 1418947858 757311 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :fizzie: the graph on https://en.wikipedia.org/wiki/Gamma_function shows that it's infinite at the right points, at least < 1418947877 768130 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :erm < 1418947899 476430 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :actually what about odd negative integers < 1418947910 31638 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :this is awy cool < 1418947919 497613 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric : i need something a bit different sorry to say! < 1418947928 894069 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :i havet o drag boxes around and connect them with wires < 1418947937 295122 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :http://lpaste.net/116828 < 1418947995 718098 :mitchs!~canissimi@unaffiliated/canissimia QUIT :Ping timeout: 265 seconds < 1418948015 831284 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm indeed the zeta function isn't zero at those < 1418948019 786921 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :cluid: Hmm, what you're doing seems cool < 1418948019 996808 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :What is it? < 1418948037 36439 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :cluid: use a UML tool :P < 1418948056 858827 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :ACTION mapoles elliott “No UML. Bad UML.” < 1418948077 720219 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :CrazyM4n, this is called 2D, I found it inside someones UMIX directory inside the file that codex.umz produces when run http://www.boundvariable.org/task.shtml < 1418948100 260009 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :i have to program some things in 2D to get a code < 1418948120 779313 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :hmm < 1418948123 312919 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :interesting < 1418948177 944628 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :http://lpaste.net/116836 < 1418948302 619556 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :plaintext highlighted as a programming language, reminds my of those awful sites where random words are double-underlined red links < 1418948510 121457 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :although i haven't seen those since i switched from my XP box. where did they go? < 1418948696 300265 :mitchs!~canissimi@unaffiliated/canissimia JOIN :#esoteric < 1418948792 350519 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :are you sure you didn't have malware < 1418948815 702531 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :elliott: i am sure i had everypossible malware < 1418948834 548508 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I see those too < 1418948846 984612 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I don't know what they are, but I haven't seen them since switching to linux < 1418948852 417436 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :are they caused by malware? < 1418948854 87974 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I see them on the school computers occasionally < 1418948862 584231 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Probably, they are probably from MITM attacks < 1418948885 893478 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :All my not-technologically-advanced friends have crap tons of those red links < 1418948916 360602 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :maybe it was one of those toolbars doing it < 1418948931 56581 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :You know, I never really put two and two together to realize that it was probably a MITM attack and not just invasive ad thingy < 1418948946 67017 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :It's not from a toolbar, I wouldn't have let that happen < 1418948969 478560 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :yeah, googling it indicates there are spyware thingies that do the redlinks < 1418948993 189016 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :but i never realized it wasn't just the sites < 1418949017 931974 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Yeah < 1418949389 606621 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :http://i.imgur.com/11ht8ig.png < 1418949393 974116 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :ive pushed all 3switches finally < 1418949483 276715 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :i cannto get the flashy diamond since the path is blocked.. < 1418949505 195227 :mitchs!~canissimi@unaffiliated/canissimia QUIT :Ping timeout: 245 seconds < 1418949535 921436 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Then you did something wrong you need to plan ahead to not move around stuff so that the path gets blocked. < 1418949627 899804 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :The chest is not pushable, nor is the small slime blob. Therefore, they can block things. (The sliders can also block some things.) < 1418949673 645323 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Learn the numbers "1" and "2" they will help too. < 1418949843 671968 :MoALTz_!~no@user-164-126-31-182.play-internet.pl JOIN :#esoteric < 1418950001 133152 :MoALTz!~no@user-164-126-31-182.play-internet.pl QUIT :Ping timeout: 250 seconds < 1418950006 827496 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :5thanks zzo38 I will try! < 1418950012 790772 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :It is a very interesting game < 1418950022 952543 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :and extremly difficult :D < 1418950232 532038 :mitchs!~canissimi@unaffiliated/canissimia JOIN :#esoteric < 1418950412 607845 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :http://esolangs.org/wiki/Ragaraja this could be the most devoted brainfuck derivative? < 1418950808 735729 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :not very devoted, they didn't finish it < 1418950937 943309 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Seems kind of pointless < 1418951074 288021 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Though, the biological references seem kind of interesting < 1418951099 39209 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :There should be a language that is completely comprised of G, C, A, and T < 1418951118 796042 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :And it splits the code into 3-length codons < 1418951126 537016 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :And parses the codons as instructions < 1418951133 364952 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :http://esolangs.org/wiki/NucleotideBF_(nBF) same author < 1418951183 949092 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I saw that, but it has a bunch of other random different letters, isn't parsed like how I suggested, and is generally kind of useless - all it can do is <>+- and . < 1418951209 172290 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :http://esolangs.org/wiki/DNA-Sharp < 1418951218 685631 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :this one uses ascii art of DNA strange < 1418951250 36318 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :http://esolangs.org/wiki/DNA < 1418951256 295375 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :It also has 4 letter codons ;~; < 1418951275 362568 :dianne_!~diannes@unaffiliated/dianne JOIN :#esoteric < 1418951357 568784 :dianne!~diannes@unaffiliated/dianne QUIT :Ping timeout: 272 seconds < 1418951404 540686 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Hmm < 1418951465 543491 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I'm going to set up a google spreadsheet and start typing out commands < 1418952044 115194 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Hmm, it exists < 1418952044 562726 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :http://esolangs.org/wiki/RNA < 1418952048 321862 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :But it's not done < 1418952135 643618 :bb010g!uid21050@gateway/web/irccloud.com/x-hwllragvhziustfp QUIT :Quit: Connection closed for inactivity < 1418952665 971788 :AndoDaan!~AndoDaan@188.188.66.35 JOIN :#esoteric < 1418953034 910609 :mihow!~mihow@108.30.58.169 JOIN :#esoteric < 1418953127 203387 :mihow!~mihow@108.30.58.169 QUIT :Client Quit < 1418953608 496399 :Guest82803!~shikhin@120.59.108.144 QUIT :Ping timeout: 245 seconds < 1418954080 307074 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Okay, I have 20 instructions and need to know what to do with them < 1418954090 507913 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :If amino acids were a language they'd be functional < 1418954097 450589 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Therefore, this is gonna be a functional language :P < 1418954108 135286 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Maybe it'll be APL-esq? I'd like to make that < 1418954112 406989 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :You don't believe in hidden variable theory? < 1418954164 245034 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I'm saying metaphorically < 1418954197 660126 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :AKA I'm using this as an excuse to try to write a functional language < 1418954207 821003 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Because stack languages can get boring, you know < 1418954448 579675 :AndoDaan!~AndoDaan@188.188.66.35 PRIVMSG #esoteric :There was a DNA/amino accid language in Hofstadter's Godel, Escher, Bach. < 1418954530 351520 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Well, while thinking of commands, I'm going to install windows on my newfound HDD < 1418954549 638393 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :are there any truly *completely* context-free languages? < 1418954579 811881 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :diginet, Can you define what you mean by that exactly? < 1418954581 479568 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :Maybe fungot knows one. < 1418954581 838469 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :obviously, there are some variations, Perl being the prototypical example of a highly context-sensitive language < 1418954581 953641 :fungot!fis@selene.zem.fi PRIVMSG #esoteric :Jafet: so you just subclass game and override fnord, while at the same time? if not, it was the ms messenger protocol... but i thought both would be pretty sweet as well :) < 1418954609 725828 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: I think DNA would do well as an encoding of binary lambda calculus < 1418954641 471694 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :diginet: I noticed that too, but I don't actually *know* binary lambda calculus (and it's been done many times) < 1418954642 628157 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :cluid: I mean, like. . .are there any languages which could be parsed with only EBNF I guess (informally speaking) < 1418954653 98496 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I'd like to program in my language, tbh :) < 1418954664 702776 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: doesn't unlambda have four symbols? < 1418954681 905249 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :`SKI IIRC < 1418954697 290189 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: SKI: not found < 1418954698 483809 :tromp_!~tromp@rtc35-154.rentec.com PRIVMSG #esoteric :that's LazyK < 1418954702 656709 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :oh right < 1418954705 693151 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I'm not using the 4 symbols < 1418954706 278426 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :well LazyK then < 1418954709 126728 :tromp_!~tromp@rtc35-154.rentec.com PRIVMSG #esoteric :unlambda has a bunch more < 1418954713 667625 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I'm parsing them down to the amino acids they represent < 1418954721 150287 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: hmm < 1418954721 769272 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :So I have 20 possible instructions < 1418954733 96301 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: yeah but there's more than 20 codons, right? < 1418954746 714954 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :On an unrelated note, my DVD drive stopped working on the only day I've needed it < 1418954761 39061 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :This is what I have so far: http://i.imgur.com/IuVFISF.png < 1418954770 956291 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :you could use each codon as a separate symbol. Thought I don't believe there are 4^3 different codons < 1418954777 159501 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :*though < 1418954778 74066 :tromp_!~tromp@rtc35-154.rentec.com PRIVMSG #esoteric :BLC sort of has four symbols: LAM, APP, ZERO, SUCC < 1418954791 483993 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :There are 64 possible combinations, but only 20 distinct ones < 1418954802 497836 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :tromp_, why is it zero nd suc rather than binary? < 1418954829 518784 :tromp_!~tromp@rtc35-154.rentec.com PRIVMSG #esoteric :to fit the distribution of variable indices likely to occur in practice < 1418954838 35751 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :wait hold on, I thought there were 20 amino acids < 1418954841 422886 :tromp_!~tromp@rtc35-154.rentec.com PRIVMSG #esoteric :basically a huffman encoding < 1418954846 31400 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :use a universal code, clearly :) < 1418954849 85227 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :ah clever < 1418954853 325091 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :with some amino acids having multiple codons assigned to them < 1418954857 42861 :tromp_!~tromp@rtc35-154.rentec.com PRIVMSG #esoteric :and to simplify parsing:) < 1418954857 490649 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :I read a cool fact today < 1418954858 936179 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :i.e. DNA is a degenerate code < 1418954866 154999 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :Base e is optimal if you are trying to minimize length of number * number of possible digits. A base with many different prime factors is optimal if you want to be able to write many kinds of numbers with the normal digit notation. Base 2 is optimal if you want to minimize the number of possible digits. < 1418954881 810233 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :cluid: so BLC in phinary? < 1418954883 65708 :tromp_!~tromp@rtc35-154.rentec.com PRIVMSG #esoteric :also see http://esolangs.org/wiki/Real_Fast_Nora%27s_Hair_Salon_3:_Shear_Disaster_Download, which makes those 4 tokens explicit < 1418954884 407144 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :err < 1418954886 452799 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :Base E < 1418954893 27899 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :the de brjuin indices are unary < 1418954925 424714 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :base 47 is optimal because that's the biggest number I can imagine < 1418954928 224772 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I still want this to be a usable language < 1418954931 162491 :AndoDaan!~AndoDaan@188.188.66.35 PRIVMSG #esoteric :https://archive.org/stream/GEBen_201404/GEBen_djvu.txt search for "Typogenetics < 1418954931 252220 :AndoDaan!~AndoDaan@188.188.66.35 PRIVMSG #esoteric :We are now about" < 1418954936 870521 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :So I'll make one of them define a function < 1418954955 7046 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: maybe a better option would be to define an ISA with 20 different instructions < 1418954961 798478 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :and then compile languages to that < 1418954966 541067 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :ISA? < 1418954977 500173 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :instruction set architecture < 1418954985 809298 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :e.g. x86, MIPS, ARM < 1418954989 10477 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :Can you make it more biological? < 1418954991 947376 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :it should act like real RNA < 1418955001 38550 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I was doing that, diginet < 1418955001 842974 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: I actually like the idea a lot though < 1418955003 305530 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :emit acids which form proteins < 1418955006 228369 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :That's what I'm trying to think of < 1418955010 199447 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :and the protiens act together in some way < 1418955018 305254 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :cluid: Yeah, it actually synthesizes the acid chains in your CPU < 1418955018 428837 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: oh, I thought you said earlier you wanted something functional language-y < 1418955018 543157 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :it could be strochastic < 1418955038 599826 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :diginet: I do, but I don't know how far I'm going to be able to take it < 1418955058 693806 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: I feel like a concrete ISA and functional programming are orthogonal ideas < 1418955094 58796 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: are you trying to implement this in practice, or is this just an idea for a language particularly suited to encoding in DNA? < 1418955104 143600 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :You know, the more I think of it, the more I agree that amino acid chains would be more suited to an ISA < 1418955104 592710 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :like are you trying to physically compute with DNA < 1418955115 923317 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :If only I had the technology for that :P < 1418955125 153864 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: yeah, that was my thought, find 20 different basic instructions < 1418955129 607203 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :also a stack machine would be best < 1418955129 681915 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I'm making it for fun, because I think that DNA is rather cool < 1418955142 80277 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I really don't like the idea of a stack for this < 1418955165 672071 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: how are you going to encode registers then with only 20 different possible instructions, or is it going to be variable length? < 1418955168 347312 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Maybe a pool and registers < 1418955189 749704 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :or will instructions be encoded in multiple codons? < 1418955196 433062 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Well, each register could be referenced with a specific codon < 1418955214 225189 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :As in, lets say "UUU" is "access from register, just for sake of conversation < 1418955217 398514 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :" < 1418955218 115779 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :so are you going to use all 64 possible ones? < 1418955221 24103 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :No < 1418955233 612561 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :But, maybe I could make instructions take arguments < 1418955262 19083 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :I guess I misunderstood, I thought each three DNA base pairs were going to be atomic operations < 1418955269 848733 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :As in, "UUUGACGGA" would take a value from the register at GAC GGA < 1418955275 700039 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :You didn't misunderstand < 1418955290 770560 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :But I am just trying to figure out how I could actually make this usable without a stack < 1418955296 705909 :AndoDaan!~AndoDaan@188.188.66.35 PART #esoteric :"Leave channel" < 1418955300 101586 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :. . .how can you possibly encode a register based ISA into 20 different ops? < 1418955304 51554 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :So I'm just throwing out ideas < 1418955311 114505 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :there's not a large enough coding space < 1418955322 710551 :AndoDaan!~AndoDaan@188.188.66.35 JOIN :#esoteric < 1418955329 317960 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Hm < 1418955355 445107 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :you could use an accumulator architecture < 1418955366 416283 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I could make instructions take arguments of other codons, but that would be really awkward to read and write < 1418955383 437696 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :so each instructions would be multiple codons long? < 1418955386 543989 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :that's what I was asking < 1418955408 542841 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :You know, maybe that is a good idea < 1418955424 136771 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :I tried to design an 8-bit RISC a few months ago. I wanted an 8-bit fixed length design. It was *incredibly* difficult to design anything useful < 1418955425 62183 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :So now we have 400 instructions to work with < 1418955431 279500 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :and that's with 256 to work with < 1418955433 550647 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :not 20 < 1418955456 814231 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :where is the page that shows how to encode brainfuck into binary brainfuck? < 1418955462 119643 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :I ended up dumping the idea of fixed-length < 1418955480 573252 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :What about one codon that changes the operation of the next codon < 1418955506 963315 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :That could work, and it allows us 39 arguments < 1418955513 600183 :AndoDaan!~AndoDaan@188.188.66.35 PRIVMSG #esoteric :http://samuelhughes.com/boof/ < 1418955530 843797 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :that's effectively a variable length encoding < 1418955534 560342 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :We could string together arbitrary amounts of those codons to get an infinite instruction space < 1418955540 202080 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :(instruction space?) < 1418955544 807268 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :sounds VAXy < 1418955546 470530 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :http://esolangs.org/wiki/Brainfuck_bitwidth_conversions this is kinda related < 1418955560 35326 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :thanks AndoDaan ! < 1418955578 222306 :AndoDaan!~AndoDaan@188.188.66.35 PRIVMSG #esoteric :np :) < 1418955638 379998 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Brainfuck derivatives14]]4 M10 02http://esolangs.org/w/index.php?diff=41517&oldid=41510 5* 03Cluid Zhasulelm 5* (+356) 10Slight improvements and added MIBBLLII < 1418955644 906697 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :BLC is the most elegant language of all time < 1418955648 670099 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :So how many registers could there be < 1418955651 891270 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :I'm not even kidding < 1418955657 892925 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: hold on < 1418955660 320637 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :let me think < 1418955662 149565 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Well, actually, I got something < 1418955666 894048 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Let me type this out < 1418955668 375425 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Wait < 1418955670 740671 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :sure < 1418955755 105422 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : base 47 is optimal because that's the biggest number I can imagine <-- oh come on, even grothendieck new a prime bigger than that hth < 1418955772 470654 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :(I'm typing it in a spreadsheet < 1418955772 589248 :boily!~alexandre@96.127.201.149 QUIT :Quit: MURIATIC CHICKEN < 1418955774 864370 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :) < 1418955776 483981 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: it was indeed a new prime -- nobody else had ever heard of it... < 1418955795 536257 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :diginet: no love for BCT? < 1418955813 854748 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :elliott: what's that? < 1418955822 884118 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :https://esolangs.org/wiki/Bitwise_Cyclic_Tag < 1418955829 34082 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(has oerjan proved self-BCT TC yet :p) < 1418955940 935595 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :elliott: that sounds similar to an OISC/ZISC < 1418956025 925418 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*knew < 1418956052 672719 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: no. as i said recently, it seems to be in an awkward class. < 1418956077 743501 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh it came up recently? < 1418956089 390880 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it sort of seems conceptually similar to /// to me < 1418956097 355207 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :maybe. < 1418956102 395842 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you have program matching and program modification :p < 1418956112 890795 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :cyclic tag things are very weird < 1418956117 304450 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :but nothing large-scale! < 1418956120 506834 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :i dont know how to understand them < 1418956126 669481 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: yeah it is not easy < 1418956145 37039 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but emulating a cyclic tag system or such seems not unthinkable? < 1418956153 364071 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :http://esolangs.org/wiki/BF_instruction_minimalization the three symbol version would be nice for a ternary machine < 1418956181 45929 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(maybe interleaving its program and data string, or such) < 1418956188 309378 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :heck, even implementing BCT itself in it :P < 1418956205 689265 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :you go right ahead < 1418956208 357878 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :diginet: How about something like http://i.imgur.com/AtfAch4.png ? < 1418956218 39458 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :diginet: most of those languages are very ad ho :/ < 1418956218 936904 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*hoc < 1418956228 994664 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :elliott: true < 1418956230 937783 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: hold on < 1418956238 250584 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: good luck! < 1418956267 308906 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: I'm a little confused < 1418956278 428992 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: i think you misread a pronoun hth < 1418956280 37175 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Okay < 1418956290 759000 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :So pretty much what I'm trying to say < 1418956303 246711 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :are you saying that when a codon is prefaced by another it changes its function? < 1418956307 404988 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :is that "UUU" (phenylalanine) is a modifier of sorts < 1418956309 309977 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :also i'm vaguely working at the mcculloch 2 machine, which came up in the same discussion < 1418956335 6207 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :So, let's say you ran "UUU UUU CUG" < 1418956349 565538 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :so basically when prefaced by UUU the op that a codon performs changes? < 1418956358 784084 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :The first UUU modifies the second one into meaning "Change the next Op to its get" < 1418956359 232278 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :yeah < 1418956363 440806 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :so it's basically a variable length code? < 1418956364 611476 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :good luck with mcculloch < 1418956378 961087 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :and then that UUU changes the CUG (leucine) into a get Op < 1418956384 232478 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Which gets from register 1 < 1418956385 614694 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :what's mcculloch? < 1418956397 612126 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :where are the arithmetic operations? < 1418956398 433252 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :https://esolangs.org/wiki/McCulloch%27s_second_machine < 1418956421 281 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: is this an 1-operand arch? < 1418956423 629554 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :*a < 1418956427 253389 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Hm? < 1418956440 690272 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Sorry, I'm not too well versed in computer jargon < 1418956442 141719 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :D: < 1418956448 987319 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :I mean is there an implied operand, like an accumulator? < 1418956465 576284 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :where is the data coming from that gets or sets the registers? < 1418956624 476324 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: you deserve wolfram's money too for all your work :) < 1418956666 905449 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :diginet: That's what I'm still trying to figure out < 1418956674 742834 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Maybe I should do it deadfish style < 1418956683 153861 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Accumulator and square-er < 1418956689 239883 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :And subtractor < 1418956701 723224 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: I still think a stack machine would be vastly more suited to what you are trying to accomplish < 1418956721 837298 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :diginet: I completely agree, but stack machines are so boring :( < 1418956730 872173 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: not necessarily! < 1418956739 303699 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :their minimalism is intriguing < 1418956739 638887 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I guess... < 1418956759 798247 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :We also have around 35 instructions to do < 1418956762 585252 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Hm. < 1418956771 911631 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :if you want my advice < 1418956786 413754 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :I would do something like this, 20 registers, 20 instructions, with one accumulator < 1418956790 913074 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :each instruction is two codons wide < 1418956826 253436 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :all operations use the accumulator as an implied operand, and a then specify the register with the second < 1418956850 200564 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :how is switch/case done in brainfuck < 1418956857 255188 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :how many bits wide do you want th registers to be? < 1418956875 85735 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :That might be a good idea < 1418956881 46246 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :if you make everything a single bit, you could do some interesting things < 1418956908 626343 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: OKAY < 1418956914 423563 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I honestly want to keep each instruction one codon wide, the one thing I'm completely opposed to doing is changing the instruction length < 1418956928 291554 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :It is an esolang, after all. There's bound to be some challenges along the way. < 1418956939 63017 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :cluid: nested []s, basically < 1418956942 286092 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: well okay, I'll be honest, I don't think a register machine is possible with only 20 possible instructions < 1418956949 659837 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :damn < 1418956959 279690 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I think there was an article on the wiki about how to do BF switches < 1418956962 311393 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :I don't see how you could possible encode that much data < 1418956969 657733 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :80 instructions including the modifier instruction < 1418956972 62519 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :if you wanted to use all 64 possible codons, it *might* be < 1418956978 948434 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :http://lpaste.net/116837 < 1418956979 820097 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :20 registers < 1418956987 106779 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :How many registers do I really *need*? < 1418956992 626350 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :do you think this is right to visit every node (of the left tree at least) in Treehugger < 1418956995 360689 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :no no you're missing the point < 1418956999 240728 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Okay < 1418957008 49135 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :you want each instruction to one codon wide, right? < 1418957024 135050 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Yeah, but remember, I have that one modifier codon which allows for a whole nother set of instructions < 1418957031 632712 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :then it's not one codon wide < 1418957038 895644 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :as I said earlier, that's a variable length code < 1418957051 349361 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Okay, that's fine I guess < 1418957073 852677 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :if you're fine with a variable length code I don't see how what I'm suggesting is different < 1418957080 93663 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :it just happens to be fixed-length < 1418957083 547924 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :but hey, your project < 1418957085 906484 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I'd rather have it be variable length than an explicit codon length greater than one < 1418957092 382853 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :fair enough < 1418957096 788446 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Structured_program_theorem that's interesting < 1418957099 833914 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Well, I thought it'd be interesting to do. That's the reason why. < 1418957103 581209 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :yeah < 1418957120 31975 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: okay so with one modifier codon, that means you have 38 possible instructions < 1418957145 2703 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :well, 39 I guess < 1418957151 316149 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Minus two for methionine, minus one for the stop codon's first function < 1418957193 786553 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :what do you need a "begin script" codon? < 1418957209 237625 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :This is RNA, remember < 1418957215 127112 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :AUG begins a strand of RNA < 1418957218 113049 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :oh right < 1418957267 260773 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :wher is the article about bf switches? < 1418957283 432947 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :I did come up with a way in a bf program I wrote before but it wasnt good < 1418957343 40428 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :I needed an extra cell < 1418957356 450790 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :i dont have hthat luxury here.. < 1418957462 950634 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :It is very very difficult to write a program that visits every node in treehugger < 1418957473 331652 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :maybe noteven possible, what do you think? < 1418957552 921925 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :okay fair enough, that means we have let's see. . .37 possible ops < 1418957552 965142 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :so are you going to use an additional codon to specify the register? < 1418957553 297837 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :hmm ooh, idea, you could use a pointer register, similar to the RCA 1802 to specify the operands < 1418957555 426340 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :"INC P1" and "INC P2" and let's just say the pointer registers overflow so we don't need to waste an operand for DEC of both < 1418957558 512602 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :oops disconnected for a second < 1418957559 534807 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :what did you last get? < 1418957561 666436 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: what ALU ops do you want? < 1418957583 886017 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :ooooohhhh better idea < 1418957604 323558 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :have a circular register wing with a two-register window, with a instruction to shift the window by one register < 1418957618 378436 :Sgeo!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :`olist 970 < 1418957619 96530 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :olist 970: shachaf oerjan Sgeo FireFly boily nortti < 1418957621 319891 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :cluid: it must be possible I think < 1418957643 486032 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you do have as much storage as you want below your current location that you can haul around < 1418957649 210834 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that's just really awkward < 1418957667 662486 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :ive had a very different idea than thie 'recursive' approach < 1418957668 770166 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh you even specified Integer cells right < 1418957677 476024 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :yes i want to make this easy as possible < 1418957717 483042 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :cluid: i think line 7 of your paste should be at x we change it to a (<-) then go ^ < 1418957729 762206 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :thanks < 1418957733 8528 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Sgeo: is that thog? < 1418957738 15836 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :but i also think it may be hard to do that with brainfuck looping < 1418957742 842704 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :diginet: Sorry, was in the bathroom < 1418957746 82209 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :it's been so long that i've forgotten what last happened to thog hth < 1418957754 130831 :Sgeo!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :shachaf: there's speculation, but a lot of people don't think so because why would he glare at Haley+Elan? < 1418957754 243454 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: np < 1418957755 26882 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I got all the messages < 1418957759 501422 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: great < 1418957773 752475 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: I think the window idea is the most plausible < 1418957775 475441 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Well, I will worry about the ALU next, right now I'm just adding basic accumulator manipulation < 1418957776 493958 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :cluid: maybe you can use bijective base 2 for the paths or something < 1418957778 285167 :Sgeo!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :shachaf: I think he was buried under rubble after Roy tricked Thog into knocking down columns < 1418957787 955581 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :elliott, that was my new idea! < 1418957788 167794 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :cluid: to make it work properly with brainfuck looping, i think you need to have some close-by cells that you know are 0 < 1418957789 913819 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :And adding ops to move things around < 1418957794 128601 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :cluid: ehe < 1418957803 683794 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: yeah but we have limited opcodes, you need to plan out what you are going to allocate them to < 1418957806 325104 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :cluid: basically just store "next path to visit" at the current position < 1418957819 849872 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: I think the window idea is the most plausible, you won't even need to specify registers < 1418957823 819595 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :oerjan, that's an issue though because you have to visit every cell, that made me worry maybe this isnt possible < 1418957828 166263 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I suppose it should be a path from the current position < 1418957832 89546 :Sgeo!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :shachaf: Also, Prismata kickstarter seems to be picking up < 1418957833 430321 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and then it's a simple matter of annoying calculations to split that into (next step, path from next step) < 1418957846 126614 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :then you take that step, copying the resulting path with you, and loop < 1418957851 482938 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :diginet: I don't quite get what you mean by that, though < 1418957858 939537 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :actually it would be bijective base 3. < 1418957862 262017 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :since you can go up as well < 1418957866 687937 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: let me try to draw a diagram < 1418957870 479745 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Okay. < 1418957873 503669 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :elliott, I think the program would be in two parts: One following the path (pushing outwards), and another pulling everything back in before finally incrementing the path.. and repeat < 1418957873 852257 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :elliott: bijective bases are interesting < 1418957911 254896 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :elliott: I was working with a bijective base 23 based on the tradt'l latin alphabet (i.e. no J W or U) < 1418957919 300321 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :to convert latin words to numbers < 1418957944 189798 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :cluid: maybe I should draw out the state as I see it < 1418957951 573302 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :is there anything nice I can use to draw a tree < 1418957958 495005 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :or do I have to manually space it out myself and not leave enough room in my text editor < 1418957968 721273 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :i drew a tree earler in gimp, if i hadn't close it you could have it < 1418957980 976777 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I was thinking something that would let me add text labels and stuf < 1418957981 648435 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :f < 1418957986 115016 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :http://i.imgur.com/CzY4c6D.png This is what I have so far < 1418957991 948114 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :inkscape is probably best < 1418958001 12500 :MDude!~fyrc@67.235.2.71 PRIVMSG #esoteric :Dia? < 1418958006 840795 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :doesn't dia have ascii syntax < 1418958008 784584 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :kind of defeats the point < 1418958020 265748 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :whatever I'll just use a text file and draw the tree on its side < 1418958032 528901 :MDude!~fyrc@67.235.2.71 PRIVMSG #esoteric :It uses a gui. < 1418958085 939054 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh < 1418958086 618777 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :then maybe < 1418958105 398720 :MDude!~fyrc@67.235.2.71 PRIVMSG #esoteric :Graphiz is what hqas a scripting basef system. < 1418958109 351039 :MDude!~fyrc@67.235.2.71 PRIVMSG #esoteric :*has < 1418958157 53103 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :cluid: ah, now that I actually read your paste I see that it's quite elegant < 1418958163 987624 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :is the problem that it's hard to implement, or that it doesn't cover the whole tree? < 1418958185 127164 :MDude!~fyrc@67.235.2.71 PRIVMSG #esoteric :I have a cat on one hand, it's not great for my typing. < 1418958187 898925 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :the problem with that is that I cannot really do the switch/case, since I don't have free memory cells around < 1418958191 661183 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :cluid: one problem is that [^] will fail < 1418958197 507895 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :because the top of the tree will be non-0 at some point < 1418958199 854483 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so you'll die < 1418958205 459953 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :sure you have free memory cells around < 1418958208 401550 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :they're to your < and > < 1418958208 732908 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh < 1418958212 204631 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but not if you're revisiting < 1418958216 236349 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: you don't need to do [^] ever < 1418958222 809101 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: cluid's paste has it, but yeah < 1418958238 442713 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh hm it does < 1418958241 813498 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :cluid: okay well the requirement is only to touch every cell right < 1418958242 260542 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i read that as ^ < 1418958244 847670 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :cluid: then let's cheat < 1418958260 578168 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :cluid: my correction of line 7 was assuming line 1 was ^ not [^] < 1418958263 173065 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :cluid: go two layers at a time, touching the other children < 1418958269 722177 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :also you need a special value at the root < 1418958272 264556 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :then you have scrap cells free everywhere < 1418958277 692271 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :if you get what I mean < 1418958285 710650 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :instead of trying to pack the directions, go by twos, so you have free space < 1418958346 619000 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :basically instead of covering the tree with path symbols you cover it with path symbols + adjacent scratch space < 1418958590 5518 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :if you do 3 layers at a time, i think you have enough room to use just bit values... < 1418958604 847016 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :too crazy! < 1418958613 79162 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it'd be easier < 1418958640 699975 :yonkie!~yonkie@82.144.205.57 JOIN :#esoteric < 1418958678 983961 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: still working on the picture hold tight < 1418958691 819192 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Okay, I'm working on the ALU functions < 1418958715 871458 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I think we have enough instruction space just here in order to define a whole language < 1418958983 304776 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :[-<[-]+<+^^]<<[-^^+<<]^^ < 1418959002 873331 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :here's code to leave a cell intact using << as tmp, putting 0 or 1 in < depending on whether this cell is 0 < 1418959082 844506 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :CrazyM4n: http://i.imgur.com/PAZFRvP.png < 1418959094 230418 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :the red is the implied first operand, the green is the implied second < 1418959113 807930 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :you would shift the window, then "0" would become red, and "1" would become green < 1418959115 712244 :diginet!~diginet@107.170.146.29 PRIVMSG #esoteric :make sense? < 1418959132 36702 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Yes < 1418959154 632710 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Hm, maybe < 1418959255 839209 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I've been writing more of the spec also < 1418959256 142787 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :http://i.imgur.com/vcWHr7u.png < 1418959291 173858 :cluid!~cluid@unaffiliated/cluid PART #esoteric :"Leaving" < 1418959294 817880 :cluid!~cluid@unaffiliated/cluid JOIN :#esoteric < 1418959312 337070 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :i cant work out how to go from having n to having < with ceil n/2 and > with floor n/2 < 1418959324 285267 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I don't know how practical the window idea is going to be < 1418959382 958063 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :diginet: So far, most of this is rather self explanatory. I'm just not sure how intuitive the windows will be. < 1418959412 186980 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :http://spth.virii.lu/main.htm < 1418959575 745056 :yonkie!~yonkie@82.144.205.57 PART :#esoteric < 1418959668 964884 :atslash!~atslash@broadband-46-188-0-82.2com.net JOIN :#esoteric < 1418959746 706994 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :cluid: if you can ensure n is even, then it is easy < 1418959771 679282 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :do you need arithmetic like that if you have as many scratch cells as you want? < 1418959771 790304 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :ill make n even, and put that bit in the riht placebeforehand < 1418959814 435134 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :also if n is a power of 2, you can just store the exponent < 1418959872 407087 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess there's two approaches < 1418959879 716524 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :at least! < 1418959881 567743 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :one, store the path spread across the tree with scratch cells < 1418959894 389699 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :two, store the path all in one cell, so that it's okay to scribble over used cells when processing it < 1418959900 518977 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(because the only state you care about is in the current cell) < 1418959909 15821 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :the former seems easier to me < 1418959925 231153 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :since it is just a simple branch, flip, move sequence at each stop < 1418959970 250302 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :this is so hard to program in omg < 1418960117 208563 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so is bf :P < 1418960154 435224 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I do think oerjan's idea of just using bits for state is ideal < 1418960169 622247 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that way you could completely eliminate anything but branching and flipping and moving < 1418960184 411886 :tromp!~tromp@ool-18be0b4d.dyn.optonline.net PRIVMSG #esoteric :did someone have a question for me? < 1418960310 504890 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I don't think so < 1418960503 40863 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :I made an 'evenness' detector, but it is extremely long < 1418960530 259793 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :47 chars < 1418960545 882281 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :this can be done much better < 1418960550 957122 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :im sure < 1418960567 618095 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Okay, can someone help here < 1418960579 282000 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :I think that this is turing-complete: http://i.imgur.com/Lf24Tnh.png < 1418960585 563597 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :But I'm not sure < 1418960690 351385 :FireFly!~firefly@oftn/member/FireFly QUIT :Ping timeout: 244 seconds < 1418960808 832247 :cluid!~cluid@unaffiliated/cluid PRIVMSG #esoteric :CrazyM4n, yes looks TC < 1418960836 274105 :FireFly!~firefly@firefly.xen.prgmr.com JOIN :#esoteric < 1418960910 901328 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :cluid: Success! < 1418960924 378740 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net PRIVMSG #esoteric :Now to write an interpreter < 1418961059 361294 :bb010g!uid21050@gateway/web/irccloud.com/x-rmbpumpsnygvihhd JOIN :#esoteric < 1418961103 557693 :cluid!~cluid@unaffiliated/cluid QUIT :Remote host closed the connection < 1418961848 164729 :CrazyM4n!~CrazyM4n@ip70-162-52-61.ph.ph.cox.net QUIT :Quit: ("sleep for finals") < 1418962123 125492 :GeekDude!~GeekDude@unaffiliated/g33kdude QUIT :Ping timeout: 255 seconds < 1418962256 137576 :MDude!~fyrc@67.235.2.71 NICK :MDream < 1418962441 265096 :Sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1418962444 591094 :J_Arcane!~chatzilla@dsl-trebrasgw1-50dff2-22.dhcp.inet.fi PRIVMSG #esoteric :Hah hah. My Collatz search is still running this morning. < 1418962482 757809 :glguy!~glguy@unaffiliated/glguy PRIVMSG #esoteric :What's it searching for? < 1418962523 167314 :J_Arcane!~chatzilla@dsl-trebrasgw1-50dff2-22.dhcp.inet.fi PRIVMSG #esoteric :Euler #14; longest sequence for a seed under a million. Think I need a more efficient program. < 1418962667 175442 :glguy!~glguy@unaffiliated/glguy PRIVMSG #esoteric :Are you doing it in a normal language or in something like BF? < 1418962689 639853 :J_Arcane!~chatzilla@dsl-trebrasgw1-50dff2-22.dhcp.inet.fi PRIVMSG #esoteric :I'm doing it in Heresy, which is my own language built on-top of Racket. < 1418963581 31660 :drdanmaku!uid17782@gateway/web/irccloud.com/x-bvfrajilaxwhgxkd QUIT :Quit: Connection closed for inactivity < 1418966150 958741 :hjulle_!~hjulle@ankadagen.vth.sgsnet.se JOIN :#esoteric < 1418966151 56953 :hjulle!~hjulle@ankadagen.vth.sgsnet.se QUIT :Read error: Connection reset by peer < 1418966766 339202 :Sgeo!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :`slist < 1418966767 258533 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :slist: Taneb atriq Ngevd Fiora Sgeo ThatOtherPerson alot < 1418966788 86589 :Sgeo!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :J_Arcane: is Heresy a real Racket language, or just interpreted ala Arc? < 1418966910 254152 :J_Arcane!~chatzilla@dsl-trebrasgw1-50dff2-22.dhcp.inet.fi PRIVMSG #esoteric :Sgeo: Basically a big pile of macros. < 1418966940 300703 :J_Arcane!~chatzilla@dsl-trebrasgw1-50dff2-22.dhcp.inet.fi PRIVMSG #esoteric :so the former, i think? it's implemented to use #lang s-exp < 1418967023 820724 :hjulle_!~hjulle@ankadagen.vth.sgsnet.se QUIT :Ping timeout: 264 seconds < 1418967098 555131 :Sgeo!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :I'd say that counts < 1418967122 453340 :Sgeo!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :I just think straightforward interpretation is boring < 1418968977 935849 :atslash!~atslash@broadband-46-188-0-82.2com.net QUIT :Remote host closed the connection < 1418969256 418925 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :I'm going to make a scrip7 compiler in scrip7. < 1418970742 360791 :AndoDaan_!~AndoDaan@188.188.66.35 JOIN :#esoteric < 1418970922 438531 :AndoDaan!~AndoDaan@188.188.66.35 QUIT :Ping timeout: 258 seconds < 1418971781 775436 :J_Phone!~J_WPhone@85-76-35-212-nat.elisa-mobile.fi JOIN :#esoteric < 1418971820 663870 :J_Phone!~J_WPhone@85-76-35-212-nat.elisa-mobile.fi QUIT :Read error: Connection reset by peer < 1418971996 375261 :oerjan!oerjan@sprocket.nvg.ntnu.no QUIT :Quit: leaving < 1418972148 122221 :J_Phone!~J_WPhone@85-76-35-212-nat.elisa-mobile.fi JOIN :#esoteric < 1418972166 440144 :J_Phone!~J_WPhone@85-76-35-212-nat.elisa-mobile.fi PRIVMSG #esoteric :Moi. < 1418972465 161567 :J_Phone!~J_WPhone@85-76-35-212-nat.elisa-mobile.fi QUIT :Read error: Connection reset by peer < 1418972831 412353 :Sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Ping timeout: 258 seconds < 1418973832 825238 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :"Subject: magic rod factory supplying from China" < 1418973853 213920 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :"We mainly produces PET woven nylon hair thick stick, ever-changing magic rod, a whirlwind speed, snail, TV curlers, automatic curl bar, HDMI cable network weaving, snakeskin nets, mesh casing, scalable network management, tin plated copper woven nets, shielding line, all kinds of wire and wire processing woven cotton and so on." < 1418973879 379274 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :fizzie: that makes perfect sense < 1418973895 97963 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :The "ever-changing magic rod" makes perfect sense? Well, I guess. < 1418973958 723125 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :it probably means a continuously casted plastic < 1418973998 468938 :Patashu!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au JOIN :#esoteric < 1418974059 301982 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :fizzie: they make nylon line by continuous extrusion < 1418974106 247764 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :so i think this is a factory that does the copper wire and the plastic cover in one continuous process < 1418974147 786320 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :fizzie: I read that as “snake's oil and tin plated copper woven hairnets that shield your brain from mind control satellites as much as tinfoil hats” < 1418974251 933348 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I'm just wondering about the "whirlwind speed", which (based on the commas) seems to be an item in its own right, unless the following comma is misplaced, and it's a whirlwind speed snail. < 1418974273 77176 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :oh! maybe the magic rod menas the one from Hitachi? < 1418974300 250909 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :that would make whirlwind speed make some sense < 1418974341 54949 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :"The product is as seen on TV", if that helps. < 1418974370 239135 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :fizzie: so yeah definitely hitachi. < 1418975189 996593 :MoALTz_!~no@user-164-126-31-182.play-internet.pl QUIT :Quit: Leaving < 1418975364 253763 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :I thought more about and figure out things about how Aberration Hater Card Game can be working. The card can consist of (name,tags,actcost,rescost,type,hitpoints,move,text). An expansion set consists of multisets of card IDs for each rarity. Rarities should be assigned based on what makes a draft more interesting. < 1418975495 909709 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Is it OK so far do you think so? < 1418975499 921711 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :That sounds really cool, zzo38. < 1418975533 638318 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :I am not sure quite yet the pack distributions. However, note that Limited format is the main format so it would be designed around that mainly. < 1418976154 600945 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Cards can be played in front or in back and if you have any cards in front then only those cards can attack, defend, and be attacked (regardless of their type; even attachments can be attacked). The card can cost action points and/or resource points to play them. Cards can be switched front/back by their move cost in action points (unless it is either immovable or has an infinite move cost). < 1418976209 609391 :Sgeo!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :shachaf: Prismata is ~2k away from getting funded < 1418977007 926080 :mitchs!~canissimi@unaffiliated/canissimia QUIT :Ping timeout: 272 seconds < 1418977449 797053 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It will surely make it. < 1418977472 519180 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :I made idea for Magic: the Gathering cards one is "All permanents gain cumulative upkeep {0}." < 1418977527 698724 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :zzo38: Is the idea that if you forget to do the thing you sacrifice it? < 1418977542 988799 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It seems like a big hassle, putting age counters on every permanent. < 1418977549 441954 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :shachaf: Well, one idea is that if you don't want that card anymore you can sacrifice it during your upkeep. < 1418977551 810147 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, maybe you mean that it interacts with other cumulative upkeep things. < 1418977560 582852 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Because age counters are age counters. < 1418977570 131129 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :The other idea is it causes extra counters on other cards that already have cumulative upkeep. < 1418977571 28032 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, that also works. < 1418977696 530227 :mitchs!~canissimi@unaffiliated/canissimia JOIN :#esoteric < 1418977773 770519 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :#define brase break;case < 1418977853 319023 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :#define brefault break;default < 1418977869 706509 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :#define break return < 1418977921 390843 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :#define tldr } < 1418977940 953387 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Are those the kind of macros you like to define in a C program? < 1418977973 365734 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :zzo38: pretty much. my favorite is #define loop for(;;) < 1418978005 456020 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`quote 181 < 1418978006 675407 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :181) Invent the game called "Sandwich - The Card Game" and "Professional Octopus of the World" (these names are just generated by randomly) < 1418978016 112935 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :zzo38: I'd like to learn more about those games. < 1418978026 507865 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Other ideas related to Magic: the Gathering cards, including cards creating non-creature tokens, as well as "Target spell gains Epic" and one card "Epic Fail" which does nothing except it has Epic. < 1418978047 441563 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :shachaf: They don't exist as far as I know; if they do, ask someone else please. < 1418978048 458789 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :There are already cards creating non-creature tokens. < 1418978072 829832 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :zzo38: What is the point of Epic Fail? < 1418978097 448275 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Nothing...it is just full of the epic failure... < 1418978160 441185 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :idea: cards which are typeless. < 1418978168 851144 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Yes I thought that too < 1418978233 876321 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Is there a card which exiles all indestructible permanents? < 1418978259 861583 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :And no other ones? < 1418978263 952129 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Yes < 1418978277 725212 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I don't think so. < 1418978310 237964 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But searching Google for that phrase finds IRC logs of this channel. < 1418978329 180877 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :oh boy i was such a jerk < 1418978637 864721 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Some of the existing rules I find klugy and I don't like much, one is including the rule for card types and I would like to perhaps change it to: Any card can be played onto the stack during your main phase if the stack is empty by paying its mana cost (you can't if it doesn't have a mana cost); all instants have Flash; lands can be played directly into play during your main phase if stack is empty by costing a land drop ... < 1418978674 937900 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :oh dear, M:tG rules discussions < 1418978679 321907 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :I'll have to read this later < 1418978682 247617 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What would the changes be compared to the current rules? < 1418978689 273151 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :... if instants and sorceries would be put into play from anywhere it remains where it is; if something resolves and then remains on the stack it is discarded instead. < 1418978739 829158 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'm not sure about that last pair of rules. < 1418978761 20306 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :So, under these rules it would mean, if a land actually has a mana cost then you can either play it as a land, or play it as not a land onto the stack by paying its mana cost. < 1418978770 503664 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :lol "Epic Fail" < 1418978782 509504 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :(And while it is on the stack it can be countered and that stuff too) < 1418978812 195097 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Are there any lands with mana costs? < 1418978828 463420 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: whoa... I'd prefer if you always played lands like now, you just had to play their mana cost if they have one, < 1418978834 679816 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :shachaf: Not as far as I know. < 1418978850 319381 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Using the existing rules you could just give a land an ability that functions in your hand: "{3}: Put this card from your hand onto the battlefield". < 1418978852 12883 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :in which case we could have a Spire with a mana cost of {1} < 1418978871 767196 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :b_jonas: Maybe, but I still think the way I mentioned is more sensible, to me at least < 1418978873 223446 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Or maybe you mean that it wouldn't use the stack, which would be slightly more difficult to make work, I guess. < 1418978884 925508 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: dunno < 1418978938 398499 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: would that make lands that are sort of like the Borderposts? < 1418978947 630347 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :only not quite < 1418978957 582758 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :mind you, we still have cycling and morph lands < 1418978991 510044 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Also these rules I specified would make it so that a typeless card acts mostly like a global enchantment card. < 1418979825 465256 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: actually, I was thinking about what you said < 1418979849 272768 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :and being able too cast lands with mana costs like a normal spell would indeed make sense < 1418979861 749849 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :though it has some slight implications: < 1418979898 326402 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :like you could then probably cast lands as spells (without land drop, even in an opponent's turn) using effects that make you cast a card without paying its mana cost < 1418979926 878977 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: a typeless card already acts much like a global enchantment card, it's just that I think a typeless card can currently only exist on the battlefield < 1418979930 799589 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Yes, assuming that the card worked with lands otherwise < 1418979944 770105 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :(If it doesn't say card types, it would indeed work with lands.) < 1418979948 255215 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: yep. < 1418979958 703749 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :those cards currently say "play that card without paying its mana cost" < 1418979988 463926 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :an example is the hdieaway lands < 1418980023 556492 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :hideaway lands < 1418980083 773400 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :I don't think this is very abusable though < 1418980123 858171 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :occasionally casting a land on the opponent's turn that way doesn't seem an effect that can break much < 1418980204 727468 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :hmm wait < 1418980211 619662 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :no < 1418980223 766323 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :I would change a lot of other rules too < 1418980238 496022 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :right, it wouldn't come up much anyway, because most lands don't have mana costs < 1418980259 455163 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Some of these changes would suggest that other cards should be changed < 1418980303 369167 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :what does "all instants have flash" change? < 1418980306 807119 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Rules for damaging Planeswalkers are too klugy. I also don't like the rule that makes auras and equipments that are also creatures to become not attached; I would remove those rules. < 1418980333 431137 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :b_jonas: It would be an alternative to the normal rule. I don't know exactly what it would change. < 1418980342 833861 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: such auras die anyway, it only matter for equipments < 1418980360 114125 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :and for equipments, I think it's better if they remain in play unattached so you can have animated swords < 1418980363 114852 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :and animated hammers < 1418980373 950998 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :b_jonas: Yes I know, but I would delete those rule anyways so it is still allowed to be aura and equipment being attached. < 1418980445 599678 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :as for changing rules, some people have suggested changing the combat damage order rules so you can assign non-fatal damage to any number of creatures later in the order than all creatures to which you assign fatal damage < 1418980487 680301 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :of course that's less important now that we have a rule that damage from creatures with deathtouch counts as fatal, but it would still be nicer for combat tricks < 1418980491 239620 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Other rules I would change a lot too < 1418980584 757862 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :and did I mention I still don't understand why Spreading Seas was printed without a remainder text? I hate how they did that < 1418980595 326172 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :They should have known after Sea's Claim < 1418980610 242411 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :and this is despite that I like the flavour text of these cards < 1418980641 674855 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :but my rules and cards knowledge is very stale right nwo < 1418980657 747185 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :I don't follow M:tG much these days < 1418980751 621881 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :I would also get rid of the rule causing tokens to cease to exist in not play zones and replace it with another one causing objects to cease to exist if they would be reset to their initial state but don't have one and then make tokens don't have any initial state and moving between zones resets an object. < 1418980784 393530 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Therefore, copies of spells or anything even placed on the stack also are tokens, so if a creature spell is copied the copy is also a token, and remains a token when it comes into play. < 1418980837 241839 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :b_jonas: How can a typeless card exist on the battlefield? < 1418981256 165399 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :I saw it once how but now I forgot. < 1418981613 889637 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :I would also make loss of game due to inability to draw a card to become immediate instead of state-based. Therefore you can lose all life and still win if the same effect that caused it also causes your opponent to draw more cards than they have before state-based-effects are checked. < 1418981644 972651 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That seem pretty ad-hoc. < 1418981673 734575 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :And also I will reintroduce mana burn for strategic purposes. < 1418981766 534567 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :shachaf: neurok transmuter and march of the machines < 1418981834 310996 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :and already, typeless permanents are a lot like global enchantments, just without the enchantment bit < 1418981857 779078 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :shachaf: yes, what coppro says < 1418981879 7470 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :OK. < 1418981889 906047 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :If they were revising the rules from the get-go, they would quite possibly make Instant a supertype < 1418981909 409363 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think a typeless permanent is slightly different from a typeless card. And I guess cards aren't on the battlefield at all, only permanents represented by cards, or something like that. < 1418981913 472403 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I don't remember. < 1418981915 972045 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :coppro: I don't think so. Instant is fine as a type. < 1418981939 322029 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Everyone argue differently about how the rules ought to be changed into. < 1418981939 657456 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :b_jonas: it could become "instant sorcery" < 1418981950 294047 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :coppro: yes, it could, but I don't think it would be a good idea < 1418981955 91812 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :They're talked about the Instant Sorcery thing in various places before. < 1418981968 303696 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :b_jonas: in any event, it doesn't make sense to have two ways to accomplish the exact same thing < 1418982013 943778 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :typeless cards aren't possible < 1418982015 725746 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :coppro: there are more Instants than Sorceries printed. you'd have that ugly typeline on lots of cards unnecessarily. Instants are such a common case that they're worth a rule. < 1418982039 978023 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :It's like how all portal cards have "Summon Creature" printed on them. It's ugly. < 1418982064 474548 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :Mind you, you could argue that they changed from "Enchant Creature" to "Enchantment - Aura" with an ability < 1418982076 306412 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :yes < 1418982089 239094 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :and there are lots of Auras too < 1418982092 236274 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :you may notice that Magic cares about form, but only after function. Function is first. < 1418982104 510855 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :and the care with which the modern function is designed means that sometimes it gets in the way of form < 1418982114 71352 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :However, there are some auras with crazy restrictions < 1418982119 250268 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :backwards compatibility > function > form hth < 1418982128 515660 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :like coral net < 1418982136 686026 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :animate dead? < 1418982138 63862 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :mind you, that's just printed as "Enchant Creature" on the card < 1418982166 44241 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :uh... no, Animate Dead is a separate category < 1418982260 261820 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :sure, function and form, but I don't see anything wrong with the function of instants < 1418982325 953097 :PinealGlandOptic!~PinealGla@82.144.205.57 JOIN :#esoteric < 1418982357 315457 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :hmm, wasn't there one card that specifically cared about... something about "instant or card with flash", searching them or cast trigger or something < 1418982396 180475 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :If the rule was the one I wanted to change it to, then "card with flash" would include instants. < 1418982429 397517 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: I don't think that's worth: it affects only one card, possibly zero because I might have just dreamt this < 1418982437 8793 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :so it would need remainder text on that one card < 1418982449 273061 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :it's better to just write "instant or card with flash" in that one case < 1418982456 961213 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :does that card exist? or was I just dreaming? < 1418982458 721330 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :I can't find it < 1418982460 907429 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :That isn't the reason I wanted that rule though < 1418982480 793541 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ah, found it < 1418982484 113188 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :Mystical Teachings < 1418982511 622060 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :and it searches < 1418982516 931236 :PinealGlandOptic!~PinealGla@82.144.205.57 QUIT :Client Quit < 1418982529 434315 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :(guess which set it is in) < 1418982542 675288 :PinealGlandOptic!~PinealGla@82.144.205.57 JOIN :#esoteric < 1418982604 983309 :PinealGlandOptic!~PinealGla@82.144.205.57 QUIT :Client Quit < 1418982626 745151 :PinealGlandOptic!~PinealGla@82.144.205.57 JOIN :#esoteric < 1418984437 565537 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :`relcome PinealGlandOptic < 1418984460 115878 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :​04PinealGlandOptic: 07Welcome 08to 09the 02international 06hub 13for 04esoteric 07programming 08language 09design 02and 06deployment! 13For 04more 07information, 08check 09out 02our 06wiki: 13. 04(For 07the 08other 09kind 02of 06esoterica, 13try 04#esoteric 07on 08irc.dal.net.) < 1418985023 682407 :AndoDaan_!~AndoDaan@188.188.66.35 QUIT :Ping timeout: 250 seconds < 1418985145 543927 :AndoDaan!~AndoDaan@188.188.66.35 JOIN :#esoteric < 1418988062 142448 :boily!~alexandre@96.127.201.149 JOIN :#esoteric < 1418989385 426393 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :My GTK theme is done! < 1418989431 928505 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :It's neat how the theming is done with CSS for gtk3 < 1418989966 843678 :mroman!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :data Tuple :: (*,*) -> * where Tuple :: a -> b -> Tuple '(a,b) < 1418989973 806249 :mroman!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :how do you match against that in patterns? < 1418989986 559661 :mroman!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :let foo (Tuple a b) = (a,b) < 1418989989 322536 :mroman!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :doesn't work < 1418990347 81828 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :you can have 'where' clauses in data declarations? < 1418990475 884884 :mroman!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :yes < 1418991629 182976 :boily!~alexandre@96.127.201.149 QUIT :Quit: TELLURIC CHICKEN < 1418991836 753757 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :http://snag.gy/BqAlC.jpg <-- how does this red and white color scheme look? < 1418992167 691114 :AndoDaan!~AndoDaan@188.188.66.35 PRIVMSG #esoteric :I'd not vouce for my sense of estetics, but it looks clear, and cool, to me. < 1418992222 52867 :Patashu!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au QUIT :Ping timeout: 264 seconds < 1418992224 144821 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :I can;t get a picture of it for some reason, but the buttons and menu options turn red when they are moused over. < 1418992367 737046 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :I like red. There is too much blue on computers. < 1418992692 378034 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Grasp14]]4 10 02http://esolangs.org/w/index.php?diff=41518&oldid=39081 5* 03210.9.139.234 5* (+189) 10/* External resources */ < 1418993047 730516 :J_Arcane!~chatzilla@dsl-trebrasgw1-50dff2-22.dhcp.inet.fi QUIT :Read error: Connection reset by peer < 1418993096 447824 :J_Arcane!~chatzilla@dsl-trebrasgw1-50dff2-22.dhcp.inet.fi JOIN :#esoteric < 1418993254 682283 :relrod!~relrod@redhat/relrod QUIT :Ping timeout: 255 seconds < 1418993265 571961 :quintopia!~quintopia@unaffiliated/quintopia QUIT :Ping timeout: 265 seconds < 1418993320 825585 :quintopia!~quintopia@unaffiliated/quintopia JOIN :#esoteric < 1418993325 530807 :relrod_!~relrod@redhat/relrod JOIN :#esoteric < 1418993406 69328 :AndoDaan_!~AndoDaan@188.188.66.35 JOIN :#esoteric < 1418993646 961911 :AndoDaan!~AndoDaan@188.188.66.35 QUIT :Ping timeout: 256 seconds < 1418995547 460632 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :oren: a monospace font? nice < 1418996188 377596 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :b_jonas: yes but that setting isn't part of the theme. I'm now trying to make the theme consistent for gtk2 and gtk3 < 1418996430 253003 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :Ideally there should be a way to convert the two programmatically, but we do not live in that world < 1418997554 442994 :copumpkin!~copumpkin@unaffiliated/copumpkin QUIT :Quit: My MacBook Pro has gone to sleep. ZZZzzz… < 1419000202 840299 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: as for changing the rules so that copies of spells count as tokens, I was trying to imagine how very broken Doubling Season would be if it doubled copies of spells. it wouldn't, of course, because its rules text explicitly mentions only tokens put into play, but still. < 1419000221 944484 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :It would be very broken, because it would double the already crazy storm and isochron scepter effects. < 1419000466 592208 :shikhin!~shikhin@120.57.239.151 JOIN :#esoteric < 1419000470 796239 :shikhin!~shikhin@120.57.239.151 QUIT :Changing host < 1419000470 839400 :shikhin!~shikhin@unaffiliated/shikhin JOIN :#esoteric < 1419001152 34841 :J_Arcane!~chatzilla@dsl-trebrasgw1-50dff2-22.dhcp.inet.fi PRIVMSG #esoteric :http://pasterack.org/pastes/24833 < 1419002169 172482 :`^_^v!~nycs@gw.hq.meetup.com JOIN :#esoteric < 1419002785 184827 :mroman!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :@tell boily You might want to have a look at GADTs < 1419002785 497018 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :Consider it noted. < 1419002812 684984 :mroman!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :@tell boily https://downloads.haskell.org/~ghc/6.6/docs/html/users_guide/gadt.html < 1419002812 783693 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :Consider it noted. < 1419002964 35418 :S1!~S1@pD9FCA91D.dip0.t-ipconnect.de JOIN :#esoteric < 1419003028 853130 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :fungot, do you sometimes find irc very annoying, given that you're forced to sit on this channel and have to listen? < 1419003029 522848 :fungot!fis@selene.zem.fi PRIVMSG #esoteric :b_jonas: let me find it), scsh aligns the cwd that the os thinks the process is actually stored. when we were evaluating the expression a little. < 1419003045 719542 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :oh < 1419003092 455201 :MDream!~fyrc@67.235.2.71 NICK :MDude < 1419003101 488429 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :fungot: oh, but what if I call unshare(CLONE_FS) in the thread? < 1419003102 62473 :fungot!fis@selene.zem.fi PRIVMSG #esoteric :b_jonas: i would like to get past this error. i corrected it. the problem rather seems to be helping with mz. < 1419004333 683503 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1419004449 356467 :Sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1419004969 165148 :PinealGlandOptic!~PinealGla@82.144.205.57 QUIT :Ping timeout: 256 seconds < 1419005121 988704 :GeekDude!~GeekDude@unaffiliated/g33kdude JOIN :#esoteric < 1419005353 186966 :hjulle!~hjulle@ankadagen.vth.sgsnet.se JOIN :#esoteric < 1419005569 982171 :drdanmaku!uid17782@gateway/web/irccloud.com/x-eeqrhclwdwrefrww JOIN :#esoteric < 1419005746 983650 :spiette!~spiette@2607:fad8:4:6:224:a5ff:feaf:f0af JOIN :#esoteric < 1419005997 948755 :GeekDude!~GeekDude@unaffiliated/g33kdude QUIT :Ping timeout: 258 seconds < 1419006433 447276 :FireFly!~firefly@firefly.xen.prgmr.com PRIVMSG #esoteric :That's good to hear, fungot < 1419006433 992856 :fungot!fis@selene.zem.fi PRIVMSG #esoteric :FireFly: cool widgets crammed contiguously in the newspace one in the parrot distribution, but that only applies to channels that only accept bald < 1419006528 735016 :Melvar!~melvar@dslb-088-077-173-086.088.077.pools.vodafone-ip.de PRIVMSG #esoteric :So, how should I time a certain section of process in a C program these days? < 1419006590 74667 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :fungot: how should Melvar time a certain section of process in a C program these days? < 1419006590 415547 :fungot!fis@selene.zem.fi PRIVMSG #esoteric :b_jonas: you can? :) htmlprag? < 1419006614 135020 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :fungot: with a pointer to const void? < 1419006614 469228 :fungot!fis@selene.zem.fi PRIVMSG #esoteric :b_jonas: s/ to/ too/ ei fnord < 1419007036 621629 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :Your pointers need to be less const void. < 1419007057 971407 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :Uhh... use gprof < 1419007298 51587 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :unless you mean doing it in C code. then you can use microtime or nanotime < 1419007358 66342 :Melvar!~melvar@dslb-088-077-173-086.088.077.pools.vodafone-ip.de PRIVMSG #esoteric :I was thinking either times or getrusage. < 1419007466 795430 :Gregor!dlopen@libdl.so PRIVMSG #esoteric :b_jonas: I don't think I can recommend unsharing in a thread. < 1419007478 297302 :Gregor!dlopen@libdl.so PRIVMSG #esoteric :That's what forks are for(k). < 1419007608 285557 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :Melvar: hmm, well those are essentially the same, they just have different extra fields < 1419007669 698808 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :you're choosing between tms.tms_utime+tms.tms_stime and ru.ru_utime+ru.ru_stime < 1419007697 392570 :Melvar!~melvar@dslb-088-077-173-086.088.077.pools.vodafone-ip.de PRIVMSG #esoteric :oren: Except that times gives me clockticks, and getrusage gives me seconds+microseconds. < 1419007742 617809 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :do you care about exact units or about comparison between runs? < 1419007764 675261 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :if it is about compariosn then clockticks is fine right? < 1419007770 87435 :Melvar!~melvar@dslb-088-077-173-086.088.077.pools.vodafone-ip.de PRIVMSG #esoteric :I want to plot the results and would prefer if my axis labels were in seconds. < 1419007857 491070 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :Not processor cycles? < 1419007876 973089 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :getrusage is better then, and it allows you to easily add memory usage graphs. < 1419007887 672353 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :if you ever wanted that? < 1419007897 521209 :Melvar!~melvar@dslb-088-077-173-086.088.077.pools.vodafone-ip.de PRIVMSG #esoteric :So I guess I’ll go with getrusage right now just to avoid having to put extra effort into translating. < 1419007987 418995 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :processor cycles is kind of a useless metric. one processor cycle on a different processor can be longer or shorter and do less or more work. < 1419008013 247406 :Melvar!~melvar@dslb-088-077-173-086.088.077.pools.vodafone-ip.de PRIVMSG #esoteric :I don’t expect I want memory usage for this particular thing, since that section is not supposed to allocate. < 1419008045 471566 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :Melvar: does it do any syscalls? < 1419008082 640513 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :if it doesn't then you don't need the stime it will probably be almost zero. < 1419008092 522949 :Melvar!~melvar@dslb-088-077-173-086.088.077.pools.vodafone-ip.de PRIVMSG #esoteric :I don’t expect so, it’s a blas routine which I mainly want to subtract from the stuff I’m doing around it. < 1419008118 723281 :nys!~nysnamovo@blk-215-85-138.eastlink.ca JOIN :#esoteric < 1419008194 169335 :Melvar!~melvar@dslb-088-077-173-086.088.077.pools.vodafone-ip.de PRIVMSG #esoteric :oren: So, thanks for helping me decide here. < 1419008662 493661 :Sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Ping timeout: 272 seconds < 1419008944 77360 :mitchs!~canissimi@unaffiliated/canissimia QUIT :Ping timeout: 250 seconds < 1419009120 360067 :Sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1419009621 915529 :callforjudgement!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1419009655 733431 :mitchs!~canissimi@unaffiliated/canissimia JOIN :#esoteric < 1419009736 697301 :bb010g!uid21050@gateway/web/irccloud.com/x-rmbpumpsnygvihhd QUIT :Quit: Connection closed for inactivity < 1419009853 847467 :ais523!~ais523@unaffiliated/ais523 QUIT :Ping timeout: 265 seconds < 1419010985 568683 :AndoDaan!~AndoDaan@188.189.68.249 JOIN :#esoteric < 1419011006 328407 :AndoDaan_!~AndoDaan@188.188.66.35 QUIT :Ping timeout: 245 seconds < 1419011617 381615 :GeekDude!~GeekDude@unaffiliated/g33kdude JOIN :#esoteric < 1419012368 961446 :scarf!~ais523@cpc6-king9-2-0-cust765.perr.cable.virginm.net JOIN :#esoteric < 1419012379 930369 :scarf!~ais523@cpc6-king9-2-0-cust765.perr.cable.virginm.net QUIT :Changing host < 1419012379 973833 :scarf!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1419012586 965840 :callforjudgement!~ais523@unaffiliated/ais523 QUIT :Ping timeout: 255 seconds < 1419012621 239027 :shikhout!~shikhin@120.59.229.60 JOIN :#esoteric < 1419012641 321456 :shikhout!~shikhin@120.59.229.60 QUIT :Changing host < 1419012641 420776 :shikhout!~shikhin@unaffiliated/shikhin JOIN :#esoteric < 1419012651 387301 :shikhin!~shikhin@unaffiliated/shikhin QUIT :Disconnected by services < 1419012656 345115 :shikhout!~shikhin@unaffiliated/shikhin NICK :shikhin < 1419012681 151576 :scarf!~ais523@unaffiliated/ais523 NICK :ais523 < 1419012944 999389 :MoALTz!~no@user-164-126-31-182.play-internet.pl JOIN :#esoteric < 1419014084 430102 :Sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Ping timeout: 245 seconds < 1419014797 551577 :idris-bot!~ircslave@dslb-088-077-173-086.088.077.pools.vodafone-ip.de QUIT :Quit: Terminated < 1419014814 404810 :idris-bot!~ircslave@dslb-088-077-173-086.088.077.pools.vodafone-ip.de JOIN :#esoteric < 1419014984 402328 :relrod_!~relrod@redhat/relrod NICK :relrod < 1419015608 579153 :GeekDude!~GeekDude@unaffiliated/g33kdude QUIT :Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com) < 1419016150 774819 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :Should scrip7 allow division by a pointer or of a pointer? < 1419016183 601304 :quintopi1!~quintopia@74.117.159.204 JOIN :#esoteric < 1419016185 633341 :lambdabot!~lambdabot@silicon.int-e.eu QUIT :Ping timeout: 244 seconds < 1419016185 897626 :diginet!~diginet@107.170.146.29 QUIT :Ping timeout: 244 seconds < 1419016186 157594 :quintopia!~quintopia@unaffiliated/quintopia QUIT :Ping timeout: 244 seconds < 1419016208 64306 :diginet_!~diginet@107.170.146.29 JOIN :#esoteric < 1419016224 23041 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oren: I can't think of a situation where dividing pointers makes sense; dividing pointer /differences/ makes sense, though < 1419016235 69353 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(pointer - pointer) / 4 is an operation that, say, NetHack actually does < 1419016245 578694 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but the difference between two pointers is a ptrdiff_t, not a poitner < 1419016344 699425 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :ais523: dividing pointers makes sense if you want to check alignment. < 1419016354 534106 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :pointer modulo makes sense, I guess < 1419016375 383080 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :ok so i should disallow / but not % < 1419016407 250813 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ptr % ptrdiff_t makes sense < 1419016409 638853 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :not ptr % ptr < 1419016417 173415 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :i right now attempting to make the semantics of scrip7 fully defined in all situations < 1419016439 248373 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: (...are pointers a vector space or something?) < 1419016441 968858 :S1!~S1@pD9FCA91D.dip0.t-ipconnect.de QUIT :Quit: S1 < 1419016443 464857 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :(or an error) < 1419016452 896198 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: they're an affine scale < 1419016460 878476 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :they're an affine space, right < 1419016472 617305 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :is affine scale something in particular? < 1419016491 288 :lambdabot!~lambdabot@silicon.int-e.eu JOIN :#esoteric < 1419016519 302927 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :does bitwise operations on a pointer make sense? < 1419016523 143715 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so what do you call an affine space that has modulo? < 1419016563 182588 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :well, I guess ptr divmod ptrdiff_t gives you (ptr rounded down to nearest diff, distance between that and ptr)? < 1419016572 729606 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :no, that first result can't be right < 1419016589 513928 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oren: for pointer tagging and stuff, sure < 1419016592 91714 :AndoDaan_!~AndoDaan@188.189.68.249 JOIN :#esoteric < 1419016602 637390 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :the point is that operations on pointers aren't symmetrical in the sense that it's ptr + ptr < 1419016635 479011 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it's ptr + offset => ptr, ptr - offset => ptr, ptr - ptr => offset < 1419016644 250227 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(ptr + ptr doesn't make sense) < 1419016665 444419 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :but offsets have to be the same binary length as the pointer < 1419016670 353326 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :https://en.wikipedia.org/wiki/Affine_space#Definition so it is an affine space < 1419016673 880433 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oren: yes, but they are not pointers < 1419016698 105553 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :well, yes but scrip7 is pretty much typeless < 1419016709 232869 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :operations have types not data < 1419016710 19015 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :then sure, just allow every arithmetic operation < 1419016728 881194 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: this is actually really elegant and nice < 1419016736 60046 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: I want a language that represents pointer operations like this now < 1419016742 167897 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(with strong typing of it) < 1419016774 647343 :AndoDaan!~AndoDaan@188.189.68.249 QUIT :Ping timeout: 264 seconds < 1419016792 682916 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :elliott: i have been toying with building a better version of C (with strong typing and no undefined behaviour) on top of scrip7 < 1419016814 357368 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :uhh, script7 is an interesting choice of base for that but sure < 1419016847 959650 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :well scrip7 is a "portable assembler" to an extent < 1419016858 453967 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :an interpreted portable assembler < 1419016866 547378 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :you could compile it < 1419016927 860431 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :but the main thing is that like C it allows direct memory access, but unlike C there is (will be) no undefined behaviour < 1419017024 303329 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :really < 1419017031 597323 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so what is the defined behaviour of accessing some memory you haven't allocated < 1419017145 728761 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :the defined behaviour of any memory access such as x=0 is that it: takes address in register 4, and places the 4 bytes representing a ieee 32 bit floating point number "0" into the four bytes of memory following that address < 1419017259 908246 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :if the program crashes due to trying to do that, that is fine. the mian thing is that it will try. < 1419017347 350015 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: fwiw, my thesis is about (a subset of) affine programming languages < 1419017354 334419 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :scrip7 has allocation primitives but these are not essential. < 1419017361 648556 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oren: so you define the behaviour as undefined < 1419017376 938839 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: I guess the language's effect on the processor is defined < 1419017381 791432 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :just you also refuse to perform optimisations based on this undefined behaviour, so your programs will be slow < 1419017382 367727 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but not the processor's interpretation of that < 1419017385 494 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ok! cool < 1419017388 200652 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oren: how do you do things like SMP memory barriers? < 1419017389 515546 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :elliott: i refer the definition to the processor and OS < 1419017398 488699 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ahhh < 1419017402 560801 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so your language has no definition < 1419017406 897067 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and therefore all behaviour is undefined < 1419017495 990231 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :it is defined to the extent that it will try to do what you have specified. it will not, for example, attempt to steal your bank account, as a C program may legally do. < 1419017533 253250 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it will if the OS tries to < 1419017610 977301 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :That is the OS's fault not mine. All i promise is if the value of O is 0, and you write u=0, i will attempt to write to the address 0. < 1419017630 404609 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :I won't cut out that part pf the code < 1419017655 391169 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :all I can say is that you're going to make a cutting-edge language perfectly suited for the computers, speed and software engineering practices of the 80s < 1419017770 413156 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :elliott: this has real implications. suppose you have a function which allocates memory, performs some cryptography, and then clears the memory and frees it. if such program is written in C, the compiler may optimize it by omitting the "clear memory" part. scrip7 promises not to. < 1419017785 867019 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :please stop trying to educate me about the implications of undefined behaviour < 1419017801 985411 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :the other way around would be more reasonable... < 1419017812 773965 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that doesn't actually have anything to do with UB though < 1419017820 82092 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that's literally just dead code elimination < 1419017827 175059 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :have fun writing a compiler that doesn't optimise anything at all < 1419017837 844165 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you also can't optimise division into bitshifts because it'd change how it uses the CPU I suppose! < 1419017860 836343 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :elliott: that is the point. dead code elimination can create security holes < 1419017868 865262 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :agreed. < 1419017871 148647 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :your solution sucks though < 1419017881 774517 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :what's yours? < 1419017889 953570 :callforjudgement!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1419017889 996747 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(and crypto is hard. and its requirements are hard. and you probably won't satisfy them) < 1419017892 95102 :GeekDude!~GeekDude@unaffiliated/g33kdude JOIN :#esoteric < 1419017894 25236 :callforjudgement!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :* oren: did you know that all modern kernels with any level of popularity for modern consumer desktops/laptops zero deallocated memory maps? < 1419017905 65821 :ais523!~ais523@unaffiliated/ais523 QUIT :Read error: Connection reset by peer < 1419017909 58825 :callforjudgement!~ais523@unaffiliated/ais523 NICK :ais523 < 1419017913 468663 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oren: my solution is to try being less naive and acknowledge complexity and reasons for things < 1419017916 499057 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Windows actually has a background process that does the zeroing < 1419017924 131495 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I support languages that don't let you do things like dereference invalid pointers at compile time, anyway. < 1419017943 438170 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :meanwhile, Linux (on systems with an MMU) will map all zeroed memory against the same page (full of zeros) until it gets written to < 1419017960 385896 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(I also support unsafe escape hatches for when things like that are necessary (rarely), and for the behaviour of those escape hatches to be regulated by undefined behaviour to some degree to allow optimisation.) < 1419017966 32326 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: now I'm interested, what languages /do/ let you dereference invalid pointers at compile time < 1419017973 152945 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: misparse :) < 1419017975 501509 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :BASIC < 1419017976 960405 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Perl does, I believe? at least it does if you're allowed to use the FFI < 1419017998 182607 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :POKE 0 1 < 1419018002 398044 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that's not compile time. < 1419018007 437224 :mitchs_!~canissimi@unaffiliated/canissimia JOIN :#esoteric < 1419018013 371976 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(overall I support hardware and software systems that are built to not require such unsafety, to as great an extent as possible. but that is a pipe dream.) < 1419018036 255514 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(I also think 95% of programs just shouldn't be touching raw pointers or anything at all.) < 1419018048 158330 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(life is too short for that) < 1419018055 963075 :callforjudgement!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1419018168 256278 :callforjudgement!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :$ perl -e 'BEGIN { print +(unpack "p", 10000000), "\n"; }' < 1419018169 765744 :callforjudgement!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Segmentation fault (core dumped) < 1419018175 153852 :callforjudgement!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :took a ton of tries to find an actual invalid pointer, though < 1419018183 892988 :mitchs!~canissimi@unaffiliated/canissimia QUIT :Ping timeout: 240 seconds < 1419018192 466879 :callforjudgement!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :apparently someone had mapped a bunch of zeroes over the bottom of the address space < 1419018213 394154 :ais523!~ais523@unaffiliated/ais523 QUIT :Disconnected by services < 1419018215 30022 :callforjudgement!~ais523@unaffiliated/ais523 NICK :ais523 < 1419018246 265442 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oh, and proof it's compile-time: < 1419018248 766036 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :$ perl -ce 'BEGIN { print +(unpack "p", 10000000), "\n"; }' < 1419018250 258037 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Segmentation fault (core dumped) < 1419018253 214841 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Bottom as in page 0? What OS are you running? < 1419018262 898400 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Linux, x86_64 < 1419018269 721086 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and bottom as in when I tried to dereference small integers < 1419018277 325420 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :interpreted as null-terminated strings < 1419018280 949967 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I got zero-length strings back < 1419018298 950785 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :what about an actual zero pointer? < 1419018309 326732 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that's a special case, it doesn't even try to dereference it < 1419018311 444977 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it just returns undef < 1419018323 112277 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :because NULL is 0 on this platform < 1419018331 620502 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :You got that behavior for e.g. 1? < 1419018342 166531 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :maybe a zero pointer is the internal repr. of undef in PERL < 1419018369 94850 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think that page shouldn't be mappable by default usually. < 1419018371 449341 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: yes, 1's the first thing I tried < 1419018376 211244 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oren: no, it isn't < 1419018393 793352 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :undef has its own type then? < 1419018398 765181 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What's `sysctl vm.mmap_min_addr`? < 1419018412 447499 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I say this as someone who a) has dealt with Perl's memory management internals quite extensively, and b) has read the docs for pack which /specifically say 0 is a special case/ < 1419018432 341801 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: I'm guessing that it's the minimum address at which memory maps will be placed when the kernel's asked to choose an address < 1419018477 361106 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :now that there are three main ways to allocate memory (stack, brk, mmap), it's become hard giving them all their own address spaces < 1419018505 632087 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in the old days, before OSes started to really exploit what the MMU could do (and before that, before MMUs existed), it was quite simple: stack grows down, heap grows up, they both grow into the same space < 1419018517 991446 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that guarantees that you never have problems due to failing to guess which will grow larger < 1419018521 336445 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fuck.c:1:5: error: size of array ‘fuck’ is too large < 1419018521 379694 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : int fuck[(unsigned long) -1]; < 1419018521 379836 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : ^ < 1419018522 960046 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :awwwww < 1419018527 128523 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that kind of thing used to segfault gcc < 1419018540 653524 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :nowadays, you still have stacks growing down and heaps growing up, but the maps have to be placed somewhere in between < 1419018544 371072 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and it's not quite obvious where < 1419018553 671762 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: isn't the stack usually allocated with mmap < 1419018556 23079 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so it's really only two < 1419018576 208250 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: yes except it's a special case of mmap, there are a bunch of flags; also that's an implementation detail < 1419018580 364818 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :how can it segfault the compiler? the compiler doesn't allocate the array... < 1419018592 620586 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: was that inside a function? < 1419018600 576641 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: no, top-level < 1419018601 172142 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if not, the compiler really does allocate the array < 1419018610 695296 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oren: what do you think a .exe file is? < 1419018610 771556 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :but in a file, right? < 1419018616 430518 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :ais523: I meant what is it set to on your system. < 1419018621 363790 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and yes, it's allocating space to it in a file < 1419018624 610343 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :maybe you should learn how C compilers work before redesigning them :p < 1419018638 744187 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: all I remember is it used to segfault gcc if you had a huge array < 1419018644 70501 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :ais523: But I get the same behavior -- I don't think the page is mapped, at any rate. < 1419018646 87625 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: 65536; an address of 1 million (in decimal) worked and read NUL < 1419018689 42971 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: out of interest, have you read http://nethack4.org/blog/building-c.html ? oren: read http://nethack4.org/blog/building-c.html < 1419018700 432726 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :elliott: are you telling me it builds the whole binary file in memory? i dunno how comoilers like gcc work but we made one in one of my classes and it didn't do that. < 1419018709 138173 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oren: see my link < 1419018728 946297 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that doesn't really explain how a compiler works, but it does explain what it does < 1419019013 191417 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :i don't see how it can crash gcc (or any component of gcc.) < 1419019076 833758 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :shouldn't it just output a big file? < 1419019092 414720 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: I found a reasonably reliable way to segfault mingw ld.exe < 1419019113 446962 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :at least, I assume segfault, hard to tell from the generic Windows dialog box < 1419019146 537712 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :GNU ld is a piece of crap < 1419019155 405312 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :at least, without gold < 1419019186 892994 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :given any valid .o file (say test.o), run: "gcc test.o -Wl,-t,--whole-archive,--allow-multiple-definition" < 1419019205 191846 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :coppro: I've tested aimake with both ld.bfd and gold < 1419019218 867192 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I was unaware that gold was a GNU ld derivative, I thought it was a rewrite < 1419019223 805212 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :it is < 1419019238 462524 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :what's the main difference between them? < 1419019243 194258 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :but it now ships with ld and there's a flag to pick < 1419019275 960499 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :gold is faster, less memory intensive, and supports plugins < 1419019280 450846 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :those are the three I care about < 1419019291 157166 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :and I don't *really* care about plugins < 1419019293 833509 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and slightly less featureful because not all the ld.bfd features have been reimplemented in it yet < 1419019307 380331 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :ais523: how come my gcc hasn't got those flags available? < 1419019326 667385 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oren: which gcc is it? (gcc --version) < 1419019339 549041 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also, pretty much every gcc supports -Wl, which just passes flags to the linker < 1419019342 48424 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :4.8.2 < 1419019345 894455 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :less featureful but also more < 1419019347 461255 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :maybe you're using a weird linker < 1419019352 109577 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :for instance llvm lto uses gold plugins < 1419019356 305057 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :yep < 1419019368 230118 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :assuming you don't just compile to bitcode and do the LTO on that < 1419019369 686840 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :did you copy and paste, or try to retype? < 1419019372 262622 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that's a lowercase l < 1419019372 490623 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :which is iirc better anyway < 1419019386 462030 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :gcc's LTO works by placing its internal representation in the .o file < 1419019402 878876 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :coppro: that's how clang LTO works < 1419019408 423651 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :meanwhile, clang's internal representation is just LLVM, isn't it? < 1419019412 64769 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :GNU ld 2.24 < 1419019418 364188 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :coppro: it "links" the LLVM bitcode files along with any native .o files with gold + a plugin < 1419019428 442241 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :s/clang LTO/LLVM LTO/, really < 1419019436 213141 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(IIRC) < 1419019451 489396 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :distinguishing between clang and LLVM is useful, but I suspect the LTO is mostly an LLVM feature here < 1419019454 588188 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: clang has an intermediate representation before it emits IR, I think < 1419019461 53925 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I mean, of course it does < 1419019463 305492 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it needs an AST if nothing else < 1419019492 276784 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: right, but the question is as to how much it uses those intermediate representations < 1419019496 193718 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :coppro: http://llvm.org/docs/LinkTimeOptimization.html goes into how it benefits from getting information from the linking phase < 1419019504 540398 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :something isn't really a real IR unless you heavily process it < 1419019505 770222 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: I think clang is relatively simple as these things go < 1419019535 26127 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :in that it's mostly a command-line driver, and a relatively simple frontend that just emits fairly naive IR, letting LLVM do all the hard work < 1419019535 129116 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :is clang a completely separate codebase from llvm-gcc, btw? or is llvm-gcc just a wrapper around clang? or something else? < 1419019538 100549 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"fairly simple" being relative, of course < 1419019545 377908 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :llvm-gcc is gcc frontend + llvm backend < 1419019556 876425 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it's also kind of dormant because of licensing stuff? < 1419019560 250083 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :dragonegg is the new version of that idea < 1419019564 805170 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :hmm, my ld doesn't crash with thatinput < 1419019570 661323 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I don't know how it differs < 1419019575 212111 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess by being a gcc plugin rather than a fork or something? < 1419019591 68780 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, I wonder what licensing problems that could have, given that gcc alone is fine with licensing and LLVM stuff is permissively licensed < 1419019604 106629 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :maybe it's not licensing < 1419019605 115478 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I don't know < 1419019615 701637 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it might just be that apple didn't want to update it because they don't want GPLv3 < 1419019619 953763 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and nobody else cared enough about it < 1419019658 561874 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm not sure why you'd even use dragonegg though. I guess for languages that clang doesn't support? < 1419019658 798754 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which reminds me, the GPL2 actually went to court recently, but I don't know the details < 1419019666 477277 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I mean, gcc is still a little better at code generation. < 1419019678 678793 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so replacing the backend is kind of what you don't want. < 1419019761 509266 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :wait: elliott i was wrong! on clang you can set optimization level for one function at a time. so my solution isn't needed < 1419019778 204361 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh lord < 1419019779 430247 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oren: you can do that on gcc too < 1419019783 842298 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that's not really a solution, dude. < 1419019787 195164 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :probably also MSVC < 1419019805 568639 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm wondering what sort of problem you might be having that needs a solution like this < 1419019812 532672 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :note that even -O0 has many optimizations < 1419019827 177891 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :ais523: I vaguely recall on MSVC you just have a pragma for it, so it's really more of a "per region of source" than "per function", but (a) I might be wrong, and (b) it of course can be used to do per function. < 1419019828 857803 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I assume, because gcc's internal representation destroys information that would be needed to replicate the original code in asm perfectly < 1419019855 502749 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :-O-1 that just bundles a C interpreter with your source code < 1419019862 408246 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :I don't have the problem, but here is someone who explains it: http://pdos.csail.mit.edu/papers/stack:sosp13.pdf < 1419019936 2248 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hi fizzie it's undefined behaviour hour again < 1419019944 381372 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :except this time it's dead code elimination hour. dead code elimination is also evil now < 1419019977 596606 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :it isn;t dead when you don read the result but you want an adversary to < 1419019978 949459 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :elliott: Oh, would you look at the time, I think I need to be going. < 1419019997 923321 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm going to be dead if this nonsense keeps happening < 1419020001 83128 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :please eliminate me < 1419020113 504038 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :http://www.viva64.com/en/d/0208/ < 1419020178 534841 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :RtlSecureZeroMemory(). for when the memory really must be zero! < 1419020197 383791 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :for when your effect model includes things that C regards as implementation details < 1419020232 647717 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :btw, it's weird to me that you think presenting evidence that C is an unsuitable language for secure systems programming is some kind of gotcha. like, you realise I hate C, right? < 1419020248 959685 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :C is one of my least favourite languages for precisely that reason. < 1419020285 877500 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :oh i know you do. but it doesn't have to be that way if compiler writers had different goals in mind < 1419020329 463563 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :e.g. "do what the programmer meant" rather than " do the fastest possible interpretation" < 1419020351 236705 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :no < 1419020367 652949 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :just no? < 1419020376 875225 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"C is bad and it is incredibly difficult to use it correctly" is right. everything else you think is wrong < 1419020408 971489 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :C suffers from being too high-level to do the job for which it was designed, while being too low-level for everything else < 1419020416 367563 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :oren, oh? Using PVS Studio? How do you find it? < 1419020459 507487 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oren: by the way, it is impossible to securely zero memory retrospectively < 1419020468 130813 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you have to announce that you plan to eventually securely zero it in advance < 1419020484 41941 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :otherwise it might get swapped out and swapped back in and you're not going to be able to find the place where it was on disk to zero it < 1419020499 923845 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also, many OSes have a pretty small limit on the amount of memory you can designate as unswappable < 1419020509 212604 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :because you can use that for denial of service attacks < 1419020520 192536 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: the language should disable swap < 1419020521 420525 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and the MMU < 1419020525 65506 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, Unless you are root of course < 1419020532 288364 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Vorpal: right < 1419020535 984977 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :pft, just allocate a huge page < 1419020539 792452 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :elliott: it should provide the option < 1419020540 127952 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: to Do What The Programmer Wants < 1419020544 766229 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and come to think of it, most things that legitimately need to ask for passwords do run as root < 1419020548 172014 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oren: to disable swap and the MMU? < 1419020548 970362 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :nice < 1419020556 788085 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :unless their only purpose is to send it over a network < 1419020558 788043 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :system("swapoff -a"), a valuable missing C feature < 1419020569 184470 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in which case, you have bigger problems than just zeroing memory < 1419020599 354415 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :how are you supposed to write kernel code without the ability to do lowest-level stuff? < 1419020605 799056 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :What are you trying to achieve? < 1419020655 505356 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: arguments < 1419020665 175936 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oren: well, swap is a kernel feature < 1419020669 958186 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so the kernel knows how to turn it off, obviously < 1419020671 114195 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :oh, run in real mode, write to VGA memory, the usual < 1419020674 685700 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :elliott, always fun < 1419020677 450170 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :as for things like MMU management < 1419020685 637360 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that differs by platform to the extent that it cannot be done portably < 1419020691 563761 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: reminds me of the good old days with us < 1419020712 930934 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Hah < 1419020727 27736 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :elliott, you didn't appear to find them fun back then < 1419020749 436577 :J_Arcane!~chatzilla@dsl-trebrasgw1-50dff2-22.dhcp.inet.fi PRIVMSG #esoteric :A language usage analysis of the Linux kernel. http://gooby.naurunappula.com/org/36/26/3626c2b7abe07458/0/1240811.png < 1419020773 297257 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: IRC is wearying as ever, and yet I never quit < 1419020782 942901 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Hah < 1419020824 332050 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :the linux kernel is compiled with -fwrapv. < 1419020836 738924 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :elliott, You know... That sounds almost exactly like a World of Warcraft player I knew < 1419020843 305887 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ostriches can't fly < 1419020845 73378 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Just replace IRC with WoW < 1419020856 976762 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*states random facts in an attempt to prove a point I'm not even sure of to someone who disagrees with something else entirely* < 1419020866 944131 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :heh < 1419020868 423589 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: such is addiction < 1419020879 161196 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :does that not imply that the linux kernel is not written in standard C < 1419020881 369393 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Of course, I know < 1419020881 753057 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'd prefer a heroin habit < 1419020883 540005 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oren: of course < 1419020894 529580 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :the linux kernel does all kinds of unportable things and even gets bit by UB quite a lot (IIRC) < 1419020915 409600 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :The kernel is full of GCC specific code too. Well GCC + Clang these days I guess < 1419020918 76594 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :-fwrapv is a perfectly reasonable dialect of C and it's fine and proper that the kernel uses it but it still suffers immensely from C's inadequacy for the task < 1419020922 202373 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yeah < 1419020927 948327 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :still gcc-only, clang requires patches still < 1419020947 734728 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Oh okay < 1419020957 175781 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :elliott: of you were making a new linux kernal what language would youuse < 1419020961 765095 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :*if < 1419020971 244826 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :What does -fwrapv mean? < 1419020978 112403 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :zzo38: defines wrapping as overflow < 1419020987 646517 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oren: if I made a new kernel I sure as hell wouldn't emulate linux < 1419020990 10544 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Assume signed two complement overflow < 1419020996 911598 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :I just looked it up myself < 1419021011 355519 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oren: the field of C replacements is undeveloped but there are compelling options, some new, some older -- Rust, ATS, D, blah blah blah < 1419021019 452508 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Speaking of that, how well does FreeBSD Linux emulation work these days? < 1419021026 7931 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Can you still run real programs with it? < 1419021056 622788 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oren: using C for a kernel reliably isn't impossible, though. you just have to be principled and careful < 1419021072 649899 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and drop down to assembly (inline or otherwise) for truly unportable operations rather than trying to hack them with C that sort of looks like it should do the right thing < 1419021097 86721 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I think the task of writing correct C isn't one humans are capable of, though. < 1419021099 223017 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :elliott, well obviously. Linux and *BSD managed it. Probably Windows and OS X too < 1419021116 930794 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ideally you write as little as possible in C to support a higher-level language that you write the bulk of the kernel in, if you're going down that route. < 1419021120 116084 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: not really < 1419021126 939844 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :they're not robust in terms of undefined behaviour etc. < 1419021128 487621 :nycs!~nycs@gw.hq.meetup.com JOIN :#esoteric < 1419021135 808463 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :anyway, http://openmirage.org/ is very cool < 1419021154 536461 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :elliott, well, they use implementation specific behaviour yes. And extensions. < 1419021159 209925 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Like inline assembly < 1419021162 259717 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: UB is not implementation-specific behaviour < 1419021175 252528 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I am pretty sure there have been linux exploits due to UB relating to null pointers and the like < 1419021184 733522 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Hm true < 1419021204 200144 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(of course dereferencing memory address zero is actually potentially perfectly okay in kernel mode -- another deficiency of C for the task) < 1419021206 936881 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Pretty sure the zero page is always unmapped these days because of that < 1419021213 780359 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: not any more, the gcc devs implemented compiler flags for them to not optimize out null checks < 1419021229 599709 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: makes sense; clang too, I guess? < 1419021237 522616 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :not sure about clang < 1419021249 270483 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :basically fixing the codebase up after-the-fact to be a kind of ill-specified dialect of C slightly more suitable for kernel code < 1419021251 294839 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I didn't think it could build the kernel yet < 1419021256 920515 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it has been able to for years, with patches < 1419021258 824425 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :they're trying to get it to, but it's hard because the kernel's so gcc-specific < 1419021259 600137 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :the patches are rather minor these days < 1419021265 232689 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :right < 1419021267 28431 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and they keep getting folded in < 1419021273 190894 :`^_^v!~nycs@gw.hq.meetup.com QUIT :Ping timeout: 250 seconds < 1419021275 430377 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it's basically just stuff like random gcc extensions like VLAs in structs now < 1419021306 149057 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :i've never found VLA's at all useful < 1419021312 189891 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :how do VLAs in structs even worK? does it have to be a local struct definition? < 1419021317 527645 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oren: OK, now you've offended me < 1419021328 800082 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and I have another link for you to read: http://nethack4.org/blog/memory.html < 1419021333 705665 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :i mean in cbviously < 1419021342 371041 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, VLA is not flexible array member is it? I forget... < 1419021343 278546 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :maybe that'll explain why VLAs are so useful (more so than pretty much every other way to allocate memory in C) < 1419021348 498878 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :I used both < 1419021353 50073 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Vorpal: no, flexible member is flexible member < 1419021357 802391 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Right < 1419021361 495701 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but flexible member is C99 so no way clang doesn't impl it < 1419021365 743459 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it isn't even an extension < 1419021367 943438 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Indeed < 1419021376 638566 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :And VLA is C99 too iirc? < 1419021393 120746 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yes < 1419021396 508271 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :what was wrong with alloca? < 1419021398 523357 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :https://github.com/mirage/mirage-platform/tree/master/xen/runtime/xencaml I think this is the majority of kernel C code in openmirage < 1419021402 571773 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :well, plus the ocaml runtime < 1419021429 93907 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, Also I found VLAs to be less than useful, since they allocate on the stack. Either your allocation is large enough that it can smash the stack, or it is small enough that you can just use the max size always < 1419021440 184827 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :in any case stack space is less than heap so you want to use heap space < 1419021457 547346 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Vorpal: what about for holding strcat returns? < 1419021459 793844 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :of course it's designed to run under xen so it can be a bit simpler than a bare metal OS < 1419021462 55709 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you don't want an outright max size there < 1419021475 206633 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :because if you have any specific max, people can create a string that's slightly longer < 1419021480 480149 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :however, you also don't expect it to be long < 1419021492 970920 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oren: lol, yeah, let's just use the heap constantly in all our low-level systems applications and kernels and avoid the efficient, simple reliability of stack allocation < 1419021495 562698 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, and if I don't specify a max size, they can smash the stack instead, which crashes < 1419021497 754190 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :ais523: use strncat and chop the string < 1419021498 871969 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Which is worse < 1419021509 77772 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and VLA's reaction on memory exhaustion (segfault) is pretty much the same as malloc's; you can install a handler for malloc failure but nobody ever does anything but effectively ending the program anyway < 1419021519 714350 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :either not checking and segfaulting on null read; or checking, printing "out of memory", and exiting < 1419021525 995959 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which is basically the same as a segfault but harder to debug < 1419021552 510776 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :install a handler? you can just check the return value < 1419021558 920547 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :also, no, aborting is far better < 1419021571 378843 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :elliott: i agree < 1419021576 125256 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, I do real time programming these days. That has given me a different outlook on things like these. "Works most of the time" is never an option < 1419021579 882222 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :the fewer segfaults the less you have to worry about bizarre exploits < 1419021595 50830 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :except in kernel code where there is no way to abort < 1419021596 207237 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: well it's good to distinguish between a clean segfault, and a dirty segfault < 1419021614 247366 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :a clean segfault is something that always segfaults no matter what, like dereferencing null (given that null page mapping is disallowed in-kernel nowadyas) < 1419021616 487496 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :but malloc isn't available inside the kernel iirc < 1419021620 871840 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: well you're dereferencing a null pointer < 1419021623 707766 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :there's nothing clean about that < 1419021627 998732 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :a dirty segfault is something that happens to have been caught, like dereferencing uninitialized memory < 1419021628 155885 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, I would verify the input to ensure it is not larger than allowed size. Because if the program crashes that means the machine stops and that is bad. < 1419021635 816149 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: it might even skip the dereference you have there; you know this < 1419021636 824968 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that happened to form an invalid poitner < 1419021651 366278 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: oh I was talking about asm level, rather than C level < 1419021651 633886 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :Vorpal: strncat! < 1419021659 739168 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you have to check the return value of malloc because (a) it can, in fact, fail in practice; and (b) if it does, you're going to trigger UB < 1419021681 32476 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :oren, nope. wcsncat. Probably < 1419021694 117698 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :You have to support non-ASCII remember < 1419021712 430577 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Proper software design :P < 1419021741 721151 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: fair enough < 1419021741 840077 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :(And working directly with UTF-8 data in a char* is just painful. UTF-8 is painful) < 1419021755 473812 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :malloc is part of libc, though :p < 1419021759 22283 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I agree about wanting a malloc wrapper, though < 1419021759 410130 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :anyway, how is it harder to debug? < 1419021767 782536 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the message doesn't tell you where the allocation failed, doesn't have a stacktrace, etc. < 1419021837 287369 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, It certainly does in gdb < 1419021866 220556 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the most common reason to run out of memory on a modern computer (other than running aimake) is that your program is stuck in a tight loop that allocates memory < 1419021875 721934 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the stacktrace is typically very useful to see what happened there < 1419021881 184958 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :abort() and run gdb on the core dump? < 1419021881 419341 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that's what they're /for/ < 1419021892 276133 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :getting a malloc wrapper to abort on OOM is actually a really good idea < 1419021892 605051 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :#define safalloc(n) ({void *p=malloc(n);if(p==0)abort();p;}) < 1419021894 568950 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :most of the wrappers I've seen call exit instead < 1419021896 51916 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :you want a core dump < 1419021898 197003 :AndoDaan_!~AndoDaan@188.189.68.249 QUIT :Read error: Connection reset by peer < 1419021899 139533 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :is there an mbscat? < 1419021899 490045 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, anyway a program that crashes is a broken program. What you really should do is use Erlang and use supervisor trees to restart components on failure. < 1419021900 767578 :AndoDaan!~AndoDaan@188.189.68.249 JOIN :#esoteric < 1419021901 355622 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :% cat blah.c < 1419021901 398918 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :#include < 1419021901 399045 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :#define safalloc(n) ({void *p=malloc(n);if(p==0)abort();p;}) < 1419021901 458326 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :int main() { int p = 123; safalloc(p); } < 1419021901 853242 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :% clang blah.c < 1419021901 896543 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :blah.c:3:36: warning: incompatible pointer to integer conversion passing 'void *' to parameter of type 'unsigned long' [-Wint-conversion] < 1419021901 939904 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :int main() { int p = 123; safalloc(p); } < 1419021901 940030 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : ^ < 1419021902 8154 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :blah.c:2:38: note: expanded from macro 'safalloc' < 1419021902 51472 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :#define safalloc(n) ({void *p=malloc(n);if(p==0)abort();p;}) < 1419021902 51598 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : ^ < 1419021902 140639 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/stdlib.h:152:20: note: passing argument to parameter here < 1419021902 183957 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :void *malloc(size_t); < 1419021902 184094 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : ^ < 1419021902 262372 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: oh right, unhygenic macro < 1419021902 305755 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :1 warning generated. < 1419021902 305894 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :try again < 1419021902 305969 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(okay, s/int/size_t/) < 1419021902 370247 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :there is a gcc extensions to fix this < 1419021902 479699 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but I don't know how to use it, looking it up now < 1419021902 523203 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: there is a C standard feature to fix this < 1419021902 523383 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it's called a function. < 1419021902 585387 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: I know < 1419021902 628690 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but this is #esoteric < 1419021902 701202 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yeah iirc gcc has some kind of gensym < 1419021902 744580 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but I forget how it works < 1419021902 813592 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I remember it being weird < 1419021902 857010 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if someone does something the wrong way, am I allowed to have fun trying to make the wrong way work? < 1419021902 857137 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I bet clang doesn't support it < 1419021913 954246 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Because making a c program that doesn't crash is not easy < 1419021957 346105 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :elliott, __COUNTER__? < 1419021961 998937 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: btw, I suspect #define xmalloc(n) (malloc(n) ?: abort()) works < 1419021963 811631 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Or is that MSVC? < 1419021970 436314 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :which is not actually that bad < 1419021975 320068 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: it has __COUNTER__ but that's not a perfect gensym < 1419021979 928759 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Oh? < 1419021992 232455 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :well you can always just do p_123 < 1419021995 32846 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :when __COUNTER__ will be 123 < 1419021996 605113 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it still generates a symbol that could potentially be used elsewhere < 1419022003 751408 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and no, ?: is gcc for the defined-or < 1419022012 714280 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :err, no < 1419022018 742530 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's Perl/Python || < 1419022022 535955 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :a ?: b is a ? a : b without evaluating a twice < 1419022025 233627 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so it should be correct for this < 1419022031 121395 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :elliott, Anyway ({}) introduces a scope, so what is the issue? < 1419022033 564524 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :since we want p = malloc(n); if (p) p else abort() < 1419022040 246142 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: did you see my program or not < 1419022053 500412 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Vorpal: lack of hygiene < 1419022054 333852 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Yes I looked at it and it appears to work? < 1419022057 661781 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Hm < 1419022066 906666 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, All C macros have that issues? < 1419022067 66328 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: did you see my compiler warnings..... < 1419022067 851652 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it confused me for a moment before I saw that elliott had used the same identifier for two different purposes < 1419022075 358224 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's the sort of thing which would work really well in the UCC < 1419022079 148723 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and yes, all C macros have that issue < 1419022082 607352 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :if you don't think not being able to use the variable name p is an issue then, uhhh < 1419022091 464189 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(this is exactly what lexical scope is for!) < 1419022095 522993 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric : blah.c:3:36: warning: incompatible pointer to integer conversion passing 'void *' to parameter of type 'unsigned long' [-Wint-conversion] < 1419022097 647579 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :That is weird < 1419022101 825769 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :no it's not < 1419022106 544978 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it expands to void *p = malloc(p); < 1419022106 593820 :diginet_!~diginet@107.170.146.29 QUIT :Quit: diginet has quit! < 1419022111 618100 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :what do you expect? < 1419022134 581150 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :elliott, "p shadows p in outer scope" < 1419022142 289913 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Or something like that < 1419022145 490386 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: fwiw I don't think you can make that work with dynamic scope either < 1419022145 833412 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: you can use p inside the definition of p < 1419022152 630301 :diginet!~diginet@107.170.146.29 JOIN :#esoteric < 1419022155 133352 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :char *foo = malloc(123 * sizeof *foo); < 1419022157 637693 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :is a common idiom < 1419022164 543329 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :maybe that has to be sizeof(*foo), I forget < 1419022169 65402 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: it doesn't < 1419022182 519459 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :does void *p = evil(&p) work < 1419022183 791590 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :sizeof needs parens on types, but not on expressions unless it'd associate incorrectly < 1419022186 647121 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Hm < 1419022187 257358 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :sizeof with brackets is just common convention < 1419022189 198745 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and there is only one way to associate there < 1419022190 540850 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess maybe yes as long as evil never dereferences its argument? < 1419022197 650818 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: I think yes too, not 100% sure though < 1419022208 251166 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Parentheses on expressions for sizeof is misleading. < 1419022228 796460 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: what if void *evil(void *p) { *p = malloc(123); return malloc(456); } < 1419022235 657083 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess that's probably okay too? it's very weird < 1419022244 876690 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :maybe some weirdness with sequence points < 1419022249 296503 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :er < 1419022250 867814 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: that doens't work < 1419022250 980034 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*void **p < 1419022253 793298 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :sorry < 1419022258 335915 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and then doing void *p = evil(&p); < 1419022261 29898 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yeah, was going to say it had to be a void** < 1419022280 61503 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and no, I don't think there's sequence point weirdness there < 1419022280 622855 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :btw if you find the gcc gensym thing I'm interested in a link to documentation, since I wanted to look it up recently but couldn't find it again < 1419022293 687619 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :To put the scope thing more formally, "Any other identifier has scope that begins just after the completion of its declarator", which means before the initializer. < 1419022301 743885 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :And all I can remember is the counter approach. < 1419022305 441580 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you have a sequence point between the two mallocs inside the function, and a function call can't violate sequence point restrictions in its own right < 1419022323 290190 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I remember some weird thing, like it was a built-in macro-y function or something, or something involving $ in variable names? < 1419022327 337230 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I was definitely very surprised that gcc had gensym. < 1419022328 382785 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(i.e. in foo(x)+foo(y), the two calls can happen in either order but must happen in some order) < 1419022334 625632 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :maybe I exclaimed as much in the logs and could look it up. < 1419022339 182174 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: I couldn't find it in the list of extensions < 1419022341 204179 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Yes, there was some weird thing. < 1419022345 270926 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :now I'm reading through them individually < 1419022353 141302 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fizzie: okay, I'm glad we agree the weird thing exists, at least < 1419022357 384479 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: IIRC it's none of them < 1419022393 820323 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :2011-04-29 23:06:44 monqy: istr the gcc manual saying they were planning to add gensym or whatever to use with statement expressions in macros < 1419022408 304722 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :maybe they actually did it since then?? < 1419022435 670116 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html doesn't mention any gensym plans, at least < 1419022452 991208 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: also $ is a letter as far as gcc is concerned, but it warns that some assemblers may disagree < 1419022471 978347 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :why can't we all jsut get along? < 1419022486 72653 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :and not argue about what a letter is? < 1419022494 264432 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :You could argue that combining the $ extension and the __COUNTER__ extension is more or less a gensym for non-extension-dependent problems, since they won't be using $. < 1419022513 433166 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"If you use some other kind of statement last within the braces, the construct has type void" hmm, is there any way to get a value of type void in C? < 1419022521 13771 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you're not actually allowed to dereference a (void *), right? < 1419022526 229756 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :is that a GNU C innovation? :) < 1419022530 204881 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :fizzie, what is the $ extension? < 1419022530 374058 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that's UB, possibly even a constraint variation < 1419022539 277465 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :GNU C allows arithmetic on a void * < 1419022539 390210 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh, maybe function_returning_void() has type void < 1419022541 764698 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but yes < 1419022545 789920 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Vorpal: That it's a valid character in identifiers. < 1419022546 349460 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you can just return void values from a function < 1419022549 614554 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Ah < 1419022552 175164 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Vorpal: You can pretend you're writing BASIC. < 1419022556 207039 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :can't you just cast any type to void? < 1419022565 290061 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :(void)34; < 1419022566 418212 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oh yes, that too < 1419022576 722324 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess that's an expression, yeah < 1419022577 619000 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and this is a common way to tell linters to shut up about you not using the return value < 1419022592 230629 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :void main(void) { main(main()); } /* troll C program */ < 1419022601 254509 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*"C" "program" < 1419022610 348716 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :fizzie, basic uses $? < 1419022615 287997 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :int main(void x) { ... } < 1419022618 955858 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :fizzie, I would assume perl or shell < 1419022637 757514 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :it uses $ at the end of words < 1419022637 800903 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: that troll program is beautiful < 1419022646 13712 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Vorpal: It's a typical suffix for strings. < 1419022651 599869 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ah < 1419022666 605668 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Vorpal: See "Data-Type Suffixes" at http://gamma.zem.fi/~fis/qbc.html#QEw4MDA4 < 1419022669 453738 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: it's great because every time you think of something to nitpick about it, a far more glaring problem comes up < 1419022671 692570 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Vorpal: In some dialects, they're optional. < 1419022674 604570 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :some BASIC impls had 26 float variables, 26 int variables ending in %, and 26 string variables ending in $ < 1419022699 492665 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: OK, you're right < 1419022701 776190 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: "that prototype for main is wrong" "main can't call itself" "you... you're passing a void argument in. what is wrong with you." < 1419022703 491360 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :elliott, pretty sure that won't compile to to main() not returning int? < 1419022706 342689 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I only saw two, but when you said that, I saw a third < 1419022712 674083 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :what were they? < 1419022723 978442 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Or is that C89 and C++ only? < 1419022730 228649 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :inner call to main has the wrong number of args, but that isn't actually a problem < 1419022733 27895 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :because it doesn't take args < 1419022738 999726 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I just assumed it did because the outer call did take args < 1419022740 10588 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: that's one of the many things wrong with it, yes < 1419022744 954834 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: haha < 1419022748 103452 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :main can have any signature you want on non-posix i thing < 1419022750 514630 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: fix(main); < 1419022752 184153 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oren: no < 1419022763 777488 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oren: on freestanding, it can have any signature that the impl supports < 1419022770 839575 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it's true that you can use whatever main signature you want in freestanding up to the impl, IIRC < 1419022773 789221 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yeah < 1419022775 246740 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :on hosted, there are only three portable signatures, I think < 1419022778 271050 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :most platforms aren't freestanding, though. < 1419022782 416649 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :depending on how you count < 1419022790 590640 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: gcc -ffreestanding works on a bunch of platforms < 1419022795 670931 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :on Windows iirc void main works < 1419022800 196250 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: void main(void) { void *x = &main(*x); } < 1419022800 985862 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :ais523: "what the impl supports" works on hosted too, because it implies "not portable". < 1419022805 650880 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oren: it "works" on gcc, but it complains < 1419022806 277141 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric : some BASIC impls had 26 float variables, 26 int variables ending in %, and 26 string variables ending in $ <-- oh god, so limited < 1419022808 332971 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: void main(void x) { x = main(&x); } < 1419022817 925255 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :this program is wonderful, it has so many great variations < 1419022824 706400 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :err, x = main(x); } rather < 1419022828 179931 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*{ x = < 1419022842 360756 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :On a hosted implementation, "[main] shall be defined [in the two portable ways]; or in some other implementation-defined manner." < 1419022844 599474 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: I'm actually disappointed that you can't declare void variables for their addresses < 1419022854 545234 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :(C11 5.1.2.2.1p1) < 1419022860 290802 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fizzie: hmm, is the environ argument unportable? < 1419022863 403767 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Yes. < 1419022863 688434 :GeekDude!~GeekDude@unaffiliated/g33kdude NICK :GeekAfk < 1419022865 942782 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm also disappointed that you can't portably malloc 0 or realloc 0 < 1419022867 846809 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: I think gcc supports "extern void x;" or something? < 1419022873 515318 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and then you can use a linker script to give it an address < 1419022875 757085 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Also there's a really silly related argument there. < 1419022894 314863 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :float main(float argc, char(*argv)()){return main(M_PI,&argv())} < 1419022895 894489 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :elliott, isn't there yet another argument after environ? < 1419022902 56425 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: hmm, can you do "struct foo; extern struct foo x"? < 1419022904 264541 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Some ELF vector or something < 1419022905 268479 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I don't see any reason why that wouldn't work < 1419022911 101038 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :apart from the missing semicolon < 1419022914 285647 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Or is that _start only? < 1419022920 302029 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: maybe? might x be an incomplete type? < 1419022922 468543 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*have an < 1419022925 573367 :diginet!~diginet@107.170.146.29 QUIT :Quit: diginet has quit! < 1419022931 362923 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :x /does/ have an incomplete type < 1419022933 198821 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but it's extern < 1419022933 536590 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :right < 1419022934 992204 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess that's fine < 1419022938 802021 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :float main(float argc, char(*argv)()){return main(M_PI,&argv());} < 1419022943 529757 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hmm, I wonder what kind of error message you get for sizeof on that < 1419022951 229222 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :`! c int main() { printf("%d\n", sizeof(*stdout)); } < 1419022957 415892 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :Does not compile. < 1419022960 612222 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :thanks < 1419022961 956263 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :`! c float main(float argc, char(*argv)()){return main(M_PI,&argv());} < 1419022962 980126 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :thanks a bunch < 1419022963 76530 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :Does not compile. < 1419022965 878390 :diginet!~diginet@107.170.146.29 JOIN :#esoteric < 1419022966 925890 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :`runc int main() { printf("%d\n", sizeof(*stdout)); } < 1419022968 132923 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :No output. < 1419022986 634805 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :The exact text is: "It shall be defined with a return type of int and with no parameters: int main(void) { /* ... */ } or with two parameters --: int main(int argc, char *argv[]) { /* ... */ } or equivalent;" -- and some people, who want to argue against a *definition* of "int main() { ... }" hinge their reasoning on the fact that they parse the "or equivalent" to apply only to the argc-and-argv form, based on where it is in the text. < 1419023003 924947 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: there was an argument about this in comp.lang.c semi-recently < 1419023006 488732 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: in fact, "extern struct foo x;" works < 1419023008 724552 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :without the struct declaration < 1419023028 745518 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :excellent! < 1419023032 211241 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :apparently, C99 requires sizeof(FILE) to work, and C11 doesn't, but nobody noticed until the thread started because the definition of FILE hadn't changed at all < 1419023037 137802 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :rather, they redefined some of the words in it < 1419023039 924231 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :elliott, surely if you try to do something with x though it won't? < 1419023044 80757 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(in the definition, that is) < 1419023052 933041 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :% cat hmm.c < 1419023053 458838 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :extern struct foo x; extern struct foo y; int main() { return &x == &y; } < 1419023056 153890 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Either that or get a link error depending on what < 1419023057 599959 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :% clang -Wall hmm.c && ./a.out; echo $? < 1419023057 643551 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :0 < 1419023058 835928 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and everywhere else in the standard, they updated things to the new definitions, but not with FILE < 1419023060 392167 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Which is patently silly, because there's a footnote explaining that the "or equivalent" means stuff like "int can be replaced by a typedef name defined as int" and it makes no sense that "typedef int q; q main(void) { ... }" would not be legal, but "typedef int q; q main(q argc, char **argv) { ... }" would. < 1419023062 295303 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :taking its address woudl work < 1419023068 340573 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess that program is allowed to compile and do that? < 1419023070 919385 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :nice gotcha that they're equal < 1419023084 293291 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric : % clang -Wall hmm.c && ./a.out; echo $? < 1419023084 486298 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric : 0 < 1419023088 903533 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :The fuck < 1419023092 400743 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :How? < 1419023095 288355 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that means they aren't equal < 1419023097 422042 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :What does GCC do? < 1419023106 697624 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :% cat hmm.c && clang -Wall hmm.c && ./a.out < 1419023106 829955 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :#include < 1419023106 873182 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :extern struct foo x; extern struct foo y; int main() { printf("%p %p\n", &x, &y); } < 1419023109 736776 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Undefined symbols for architecture x86_64: < 1419023110 70148 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :it optimizes out the whole thing < 1419023112 198499 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hah < 1419023114 382690 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if they were equal, it'd have returned 1 < 1419023115 836819 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: err, right < 1419023123 524916 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I like how it starts breaking as soon as I try printffing it < 1419023129 11635 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think oren's explanation is right, though < 1419023133 826137 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the &x == &y got optimized out < 1419023135 926288 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yeah < 1419023140 401172 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :then there were no undefined symbols left < 1419023158 872849 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :inb4 oren whines about compilers < 1419023169 647836 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :there was a separate argument on comp.lang.c semi-recently about compilers being inconsistent as to whether two pointers were equal < 1419023169 700691 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :i'm done with that < 1419023170 767883 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :bonus, this wasn't with -O < 1419023182 932931 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: yes, I remember you mentioning something like that < 1419023196 557344 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it was code of the form "uint32_t x; uint32_t y; return (&x)[1] == &y" < 1419023204 689942 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fizzie: hah < 1419023210 671261 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fizzie: do people really advance that argument in seriousness? < 1419023213 250492 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and various variations on that < 1419023219 168010 :diginet!~diginet@107.170.146.29 QUIT :Client Quit < 1419023221 471735 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :elliott, does clang optimize by default then? < 1419023231 758807 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :order of things on stack is undefined < 1419023240 158180 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oren: yes < 1419023248 69986 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :however, the point is, if the two pointers randomly happen to be equal < 1419023250 533105 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :when in doubt assume C the code never happened < 1419023250 646567 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: the results are the same for -O0. (I don't think it does, no.) < 1419023255 844620 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Hm < 1419023257 641552 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which is quite likely for either that way round, or for y and x < 1419023258 209894 :diginet!~diginet@107.170.146.29 JOIN :#esoteric < 1419023266 586287 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :elliott, So what does GCC do with that exact program? < 1419023269 918442 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :can they subsequently stop being equal if you use them in a different expression < 1419023279 645250 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oren: btw, C has a rule that specifically destroys any kind of implementation guarantees or machine correspondence you might expect, on purpose < 1419023282 704376 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it's called the as-if rule < 1419023295 484429 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :elliott, anyway surely x and y can be equal? Depending on the linker script < 1419023306 435307 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :the compiler is allowed to do absolutely anything to a program and compile it in any way whatsoever, with any semantics and any strategy, so long as the observable effects (as specified by the standard) are the same < 1419023310 312614 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :So that is a premature optimization < 1419023316 635672 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :implementations don't actually have to do what the rest of the standard says < 1419023317 927821 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Well not in the usual sense < 1419023329 874127 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I like the as-if rule < 1419023334 414586 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :elliott, heh nice < 1419023337 524959 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :they just have to do things that are indistinguishable from that when considering the operation of the program by a definition that excludes things like whether some random memory is zero or not < 1419023338 979405 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and don't understand why any language /wouldn't/ want it < 1419023353 282483 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :however, the more that's specified by the language, the less the as-if rule can do < 1419023354 179626 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: I like it too, but it's further proof that C is unsuitable for what people try to use it for < 1419023364 593007 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(the problem is more that the definition of equivalence is too loose for that) < 1419023367 729045 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(rather then the as-if rule itself) < 1419023373 907663 :Sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1419023383 490111 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: well it depends on what you use it for < 1419023386 304615 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(a language focused on safe crypto would include timing and other such side-channels as part of its as-if rule, making it rather less useful for compilers) < 1419023389 741434 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I don't think it's a terrible language for writing kernels, for instance < 1419023392 555945 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :elliott: is C suitable for anything < 1419023399 247671 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oren: not really < 1419023402 720213 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :k < 1419023408 323856 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's possible to do better, but there haven't been many attempts to do better < 1419023411 853412 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :elliott: I've seen it used. A more credible argument is perhaps that "or equivalent" does not apply, because while a definition with an empty () is defined merely to "specif[y] that the function has no parameters", but that's nowhere explicitly stated to be "equivalent" to a (void). (And indeed, they're inherently different forms.) < 1419023412 516328 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it's suitable for the 70s < 1419023435 531653 :GeekAfk!~GeekDude@unaffiliated/g33kdude NICK :GeekDude < 1419023437 683868 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm really happy at Rust partly just because it's actively trying to displace C in fields where C is traditionally good < 1419023448 302037 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :really, C is suitable for things that are already written in C that are not about to be rewrited, and things for which there is not yet a production-ready alternative to C < 1419023461 935869 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :those make up a huge subset of programs just by themselves, though < 1419023472 69097 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fizzie: isn't (void) and () the same by C99 or something < 1419023472 739248 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Heh < 1419023477 276332 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: no, they're the same by C++ < 1419023480 151417 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :they're different in C89 due to some kind of varargs bullshit or something I think < 1419023482 548345 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :is there a C alternative that interoperates with C libraries? < 1419023483 555010 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: ah, okay < 1419023484 8096 :SopaXorzTaker!~ItsLuke@unaffiliated/sopaxorztaker QUIT :Ping timeout: 265 seconds < 1419023487 774180 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :they're different in C99 and also in C11 < 1419023494 721368 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and the difference is default argument promotions < 1419023502 41887 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oren: rust, ocaml, haskell, ats, d, whatever < 1419023503 905759 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :ais523: They're not that much different, when you're talking about definitions. < 1419023512 747115 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it really depends on what you're doing, what counts as an "alternative" < 1419023519 715181 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :ais523: In a declaration that is not part of a definition, they're indeed quite different. < 1419023523 276394 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :most programs written in C don't need to be written in a language anywhere near as low-level as C < 1419023542 71158 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :brb learning rust < 1419023546 247120 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :some people even still write entire mundane end-user applications in C! < 1419023548 54810 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well my problem is that most high-level languages suck too < 1419023552 71814 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :even ones that require high levels of security! < 1419023564 37529 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: I'll take programs written in them over C running on my box any day < 1419023567 992919 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, um doesn't C11 require prototypes already?!? < 1419023579 939360 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Vorpal: No. < 1419023582 508124 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so here's a question to you (that I've been thinking a bunch about): if you rewrote NetHack, what language would you rewrite it in? < 1419023582 567942 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Wow < 1419023593 571981 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :"An empty list in a function declarator that is part of a definition of that function specifies that the function has no parameters. The empty list in a function declarator that is not part of a definition of that function specifies that no information about the number or types of parameters is supplied." (C11 6.7.6.3p14) < 1419023598 424452 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm annoyed that I can't find the gensym thing < 1419023612 782949 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :maybe they removed it < 1419023614 688705 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :maybe the gcc people went sane < 1419023618 719365 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, the problem is using ncurses from anything but C/C++ is fucking annoying. So is there an alternative to ncurses? < 1419023621 234686 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :what? gensym is useful < 1419023624 37198 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Whether the former case is "the same" as foo(void) is up to your definition of "the same". < 1419023633 516639 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Vorpal: you do realise I /wrote/ an alternative to ncurses, right? < 1419023639 26391 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: does it need to be as portable or as fast? < 1419023641 602987 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although, due to being an alternative to ncurses, it has mostly the same API < 1419023656 338973 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, nope I didn't know, give me a link < 1419023657 903531 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :I want this < 1419023663 71557 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i.e. do I still need to be able to run it on my commodore 64 at full speed :P < 1419023675 950834 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: it needs to run on all commonly used OSes but not really niche ones, and it has to be as fast as the original from a user's point of view, but if it's orders of magnitude that doesn't matter so long as it's not human-perceptible < 1419023690 28565 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: it depends on my mood then, I guess < 1419023692 173 :SopaXorzTaker!~ItsLuke@ipv6.lukej.ovh JOIN :#esoteric < 1419023694 586730 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(all this is negotiable, but if you want a starting point) < 1419023703 591133 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: picking a favourite language is hard but I don't see any reason to discard any of them < 1419023713 939332 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this isn't so much favourite language, as most appropriate language < 1419023714 722384 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :maybe an ML family language, maybe learn rust or something < 1419023718 713776 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :IMO, most of them would work < 1419023720 345567 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I think they're pretty much all appropriate < 1419023723 684636 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but none are really ideal < 1419023726 166136 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :any memory safe language that supports a good level of abstraction < 1419023743 998349 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it would probably come down to "what language do I feel like playing with and getting to know better?" < 1419023749 372606 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this is what inspired me to start writing TCTOE, incidenally, which also isn't ideal due to being eso < 1419023758 741053 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I just tried to figure out what features I'd want that no existing language had < 1419023760 542457 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm convinced that C is pretty much the worst common language to write NetHack in :) < 1419023761 784269 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :then, working out what those were < 1419023762 213810 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :I still happen to like C < 1419023769 996299 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :probably even C++ would be better < 1419023771 339831 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Another alternative is to write it in LLVM with macros < 1419023776 953199 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Although, LLVM doesn't have macros. < 1419023783 834921 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :what, LLVM IR!? < 1419023791 791310 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Yes < 1419023793 914893 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :decided to make an esolang with /just/ those features < 1419023795 56487 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Ouch < 1419023813 535637 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: hmm, I haven't heard of TCTOE before, go on < 1419023815 15902 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :LLVM IR is so phi. < 1419023823 981494 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: I'm still working on it, it's an ais523 vaporware esolang < 1419023842 157357 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but luckily, the core mostly works designwise, just some of the details are giving me problems and I only have a vague idea how to impl it < 1419023848 217379 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: I was asking for a description :) < 1419023850 54579 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shall I just pastebin what i have so far < 1419023859 36308 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :might be easier than trying to describe over IRC < 1419023860 622825 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :sure < 1419023878 813090 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :http://sprunge.us/Wcbd < 1419023928 774269 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, speaking of which, what happend to Feather? Gave up on it? < 1419023944 943785 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, anyway what is this ncurses alternative? < 1419023956 728369 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Presumably it supports reading terminfo? < 1419023957 949299 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Vorpal: http://nethack4.org/blog/portable-terminal-codes.html to the last question < 1419023988 781621 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I hope you can guess why I didn't answer the others < 1419023993 360744 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and no, it doesn't use terminof < 1419023995 191566 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :*terminfo < 1419023997 501294 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that's the whole point < 1419024030 786575 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :Secretary of the Supreme Soviet, Georgiy Terminoff < 1419024037 988107 :Patashu!~Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au JOIN :#esoteric < 1419024050 891451 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :*not a real person < 1419024097 784216 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, oh? My problem with ncurses is the API, unprefixed lower case macros and crap like that < 1419024117 438251 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :what's wrong with them? < 1419024122 264386 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :sadly, this is the same because I wanted to be able to swap it out behind daniel_t's nethack interface without a lot of rewriting < 1419024125 513932 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oren: namespace pollution < 1419024145 120533 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :isn't memcpy and crap also macros? < 1419024164 652258 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Vorpal: I've been considering putting a prefix on the identifiers in the ABI, then allowing a customizable or no prefix on the identifiers in the header < 1419024174 762530 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but I'm not sure that's technically possible in the C preprocessor < 1419024186 155477 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: why wouldn't it be? < 1419024189 418529 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :it is, it just needs a lot of directives < 1419024199 916937 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: you need #define X Y when X is the result of a macro expansion < 1419024206 497378 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh, for #defines too < 1419024209 175747 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :no hope then < 1419024219 287566 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :* of a token paste < 1419024219 624675 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, well also it doesn't do what I need of ncurses. Which is basically ncurses with prefixed ABI and non-macro API so I can access it via FFI from a high level language < 1419024223 470802 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :try not using cpp, then < 1419024226 212566 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :perhaps you could do a wrapper function or the like < 1419024237 491810 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :non-macro ABI may be possible, at least < 1419024243 305936 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :most of the macros are thin wrappers anyway < 1419024249 171213 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, I still want full 256 color support if the terminal has that and so on < 1419024261 479474 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :I'm not interested in the replay feature for my needs < 1419024282 569972 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well, libuncursed doesn't do that (the 256 color support), but in my defence, curses doesn't really either < 1419024305 533770 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :Vorpal: why not use a graphics library and sprites that look like letters < 1419024327 42388 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :What and doing a GUI program? < 1419024334 236398 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Useless over ssh for example < 1419024342 704466 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :ssh -XC < 1419024347 979546 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :oren, the lag < 1419024359 20845 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Also it needs working X11 < 1419024370 844587 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Which may not exist on the remote server < 1419024371 198344 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oren: libuncursed can also do that (the graphics library + sprites) < 1419024430 451708 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :hmm ok what about using your own client server model < 1419024462 90838 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :oren, well, that still assumes a working X11 on the local end. < 1419024473 622280 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :no it doesnt? < 1419024495 653393 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :I still need to deal with ncurses at the local end? < 1419024497 796312 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :you just write the whole thing in Python on server and Javascript < 1419024510 187611 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :oren, what I'm looking for is a general purpose ncurses replacement that has a sane API < 1419024520 11346 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :For use in all my projects < 1419024525 169237 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :i have never heard of one < 1419024555 419864 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Which includes stuff running on machines without X, stuff written in high level languages where ncurses is a pain to use and so on < 1419024570 928941 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :um, google says termbox? < 1419024663 270135 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Well that looks limited < 1419024690 576331 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Also it is python?? < 1419024704 91396 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :i dunno man 256 colors is really the point at which i'd just write a graphics program < 1419024705 420590 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Wait no, the build system is < 1419024729 398168 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :oren, I also want the terminal mouse support thing if it exists < 1419024740 333904 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Like with xterm or a linux vt with gpm < 1419024766 382453 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :really how many real programs even use 256 colors? < 1419024771 583319 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, does your library support that btw? < 1419024777 121925 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, I assume not? < 1419024800 162910 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Vorpal: mouse? it supports mouse but with a different API to ncurses < 1419024807 719197 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and better one, IMO < 1419024818 109075 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :basically, being mouse-sensitive is like a font style or a colour < 1419024831 821006 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and mouse-sensitive text is translated into a keypress of your choice when clicked < 1419024837 121437 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Ah ok, that is nice < 1419024853 451683 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :including nonexistent keycodes, say if you want coordinates from a map directly < 1419024857 944578 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :ais523 that is an amazing idea < 1419024859 613959 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, so you can't get x,y though? < 1419024886 168918 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Just clicked area? < 1419024907 814387 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Vorpal: you can get x,y by using a different keypress for every square, if that's what you need < 1419024910 402690 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :make one clickable area on every character on screen < 1419024914 95765 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :different "keypress" < 1419024929 354186 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I also support right clicks and the mousewheel < 1419024930 96523 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, can I tell key presses apart from actual key presses though? < 1419024942 462915 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :not if you specify the same code < 1419024947 968279 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but you have a whole int's worth of codes to use < 1419024951 884840 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Ah < 1419024953 678897 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :put the codes out of range < 1419025032 704244 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :oh i see Vim has 256 color support < 1419025042 35582 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :or rather can use it < 1419025149 682613 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, what about setting the terminal title for X-based terminals? < 1419025160 260737 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :I know gnome-terminal and konsole supports this < 1419025161 400336 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :not supported yet, and I don't think you can do that portably < 1419025182 162787 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Ah < 1419025184 603944 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :as in, not without producing junk on at least some terminals < 1419025210 218903 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, why not do the replays pre-rendering instead? < 1419025227 119447 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I do, but postrendering is common in actual practice < 1419025232 315689 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so I wanted it to work < 1419025232 414338 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Ah < 1419025511 79953 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, what about windows? Doesn't that cmd.exe work completely differently? < 1419025548 930981 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Vorpal: cmd.exe is not a terminal renderer, it runs /in/ a terminal, it isn't one < 1419025558 382014 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but the Windows terminal does work completely differently < 1419025563 251167 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :uncursed has a separate backend for it < 1419025577 507667 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but the Windows terminal also has terrible performance, so I normally use the oren method of just rendering a terminal myself < 1419025586 852605 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, ah, so that polyglot didn't work in the end then < 1419025620 445650 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, if someone records cmd.exe it can't be replayed (assuming you can even record that) < 1419025645 422481 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Vorpal: the windows terminal's basically impossible to record < 1419025680 359815 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's so separate from the rest of the system that Microsoft couldn't get drag-and-drop to work in it, at all < 1419025715 832474 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :basically, it makes more sense to consider it part of the kernel than it does to consider it part of userspace < 1419025724 315314 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it isn't strictly part of the kernel, but it's that sort of distance from everything else < 1419025731 359684 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, I have dragged and dropped paths into it and it worked, assuming it isn't running as admin, but drag and drop to programs running as admin doesn't work anyway < 1419025742 841045 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Vorpal: on XP? < 1419025748 383863 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, oh, 7 < 1419025754 66309 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oh < 1419025756 461511 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it shouldn't work on 7 < 1419025761 787313 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :maybe Microsoft finally found a way < 1419025784 404404 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :It does, drag and drop a file into it and it works, assuming it isn't running with elevated privileges < 1419025830 961750 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, why is it not a normal user space program? < 1419025850 77911 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :because everything is 100% more complex on Windows than it should be < 1419025883 109277 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you won't believe how hard it is to accomplish this task: "wait for user input on standard input or incoming network packets on a network socket" < 1419025888 125672 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :the GUI is still like half in the win32 subsystem right < 1419025896 615759 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :not quite kernel code but not quite userspace either... < 1419025907 216980 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the console has its own subsystem, AFAIK < 1419025909 378894 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: even with threads? < 1419025920 233854 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's much easier with threads < 1419025925 523384 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that's the solution I used eventually < 1419025976 741406 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but the basic problem is that Windows has multiple equivalents of select() and they all only wait on a subset of waitable things < 1419026015 544567 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Heh < 1419026085 477613 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, btw it turns out gcc as cross compiler is not quite the same as gcc as native compiler < 1419026119 184142 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :specifically __attribute__((weak,visibility("hidden"))) doesn't work if it is a cross compiler. Which breaks lttng-ust < 1419026125 74871 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Just a fun fact < 1419026394 145755 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :gah. http://lttng.org/ ... why does this little information take up 3 screens worth of space? < 1419026426 521532 :J_Arcane!~chatzilla@dsl-trebrasgw1-50dff2-22.dhcp.inet.fi PRIVMSG #esoteric :int-e: welcome to the new world of 'design languages'. < 1419026434 576364 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :because graphic designers like to eat your screen < 1419026443 42815 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :and your brain < 1419026451 528105 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm annoyed that styling is still normally done server-side < 1419026460 470352 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :maybe I should see if I can just turn off CSS altogether in the browser < 1419026463 557148 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :like I did with JS < 1419026468 562613 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Heh < 1419026477 742828 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :use w3m < 1419026482 106820 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :well it is basically kernel and user space low overhead tracing < 1419026496 129266 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Useful for real time system programming < 1419026499 356885 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :(Which is my job) < 1419026525 16166 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :I used it to debug a priority inversion last week for example. < 1419026556 882491 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :they need to hire a better web designer < 1419026575 106292 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :that site is very advanced but stillusgly < 1419026576 367281 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :We have a really good proprietary program at work to analyze the trace logs < 1419026581 487215 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I do use w3m sometimes < 1419026586 113853 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Vorpal: the "documentation" page is a bit better, and with CSS disabled the information density is quite reasonable. Unfortunately, that destroys the diagrams on the page. < 1419026625 383787 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Heh < 1419026629 146786 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(with CSS we have a navigation bar on the side and it doesn't use the whole screen width ... I can almost excuse the latter but not the former.) < 1419026753 80924 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :int-e, using the entire screen isn't always good, text is harder to read if it is too wide. That is one reason why you use multiple columns on paper. A bit harder to do that on a web page < 1419026793 122225 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :i wish websites would let me be their pro-bono eeb designer < 1419026802 366854 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Vorpal: as I said I can almost excuse the latter. < 1419026817 322785 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Vorpal: But having the text not centered because of the navigation bar is annoying. < 1419026846 505692 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Vorpal: also I use windows; if the text is too wide I'll make the window smaller :P < 1419026878 115593 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :int-e, what if the user is on a tablet? < 1419026886 898512 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :(in landscape mode) < 1419026907 714019 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :so many people run browsers fullscreen by default that web disgners forget that windows existed < 1419026908 216251 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Vorpal: What saddens me is that these low information density designs (I'm not back to the starting page) are also being used on pages who are targeted at programmers, people who < 1419026918 591730 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :'re used to dealing with lots of information. < 1419026937 217551 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :int-e good point. < 1419026964 943233 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :source code (in the best languages) has a lot of information density < 1419027000 525300 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :and people usually don't put one statement every page < 1419027005 244865 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :oren, I tend to use one window full screen on each monitor for the simple reason that I like my IDE and text editor and so on large. I generally have a terminal with several tabs on one monitor. Sublime on one display and a a browser / whatever on the third monitor < 1419027029 263886 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :(Yes I use 3x 24" 16:10 displays) < 1419027034 45346 :nycs!~nycs@gw.hq.meetup.com QUIT :Quit: This computer has gone to sleep < 1419027057 436625 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :i just down the font size when i want more density < 1419027088 687381 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :I have been considering switching to a tiling WM < 1419027119 514968 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :the first version on windows was one, i read that somewhere < 1419027130 600737 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :and win8 is basically one < 1419027175 453884 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Actually http://lttng.org/features/ is not too bad (the oversized icons add little information, but at least there is some usefuly information there). But it should be the starting page. < 1419027206 127171 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :oren, not a good one though < 1419027248 713272 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :int-e, anyway I don't care about the page design. I care that it produce useful trace data < 1419027328 36001 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Vorpal: I'm not blaming you. I simply wanted to figure out what lttng *is*, and that lead me to the website, which at first didn't tell me anything useful at all. That's the complaint. < 1419027343 205401 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :let me just say that I find the lttng site far more readable and accessible for me than the average programming tool's website. < 1419027375 530975 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :because you like it, or because the average programming tool's website is even worse? < 1419027394 371710 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also that page is using some sort of common framework, I think < 1419027398 840264 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I've seen many that look almost exactly like it < 1419027414 172599 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: just because it is better than average, for me. < 1419027424 151611 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :yeah the real problem is these cookie cutter designs that everyone slaps up < 1419027427 988033 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :int-e, well there is always wikipedia < 1419027432 714034 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Special:Log/upload14]]4 upload10 02 5* 03Tastyfish 5* 10uploaded "[[02File:Flow chart math library example.png10]]" < 1419027442 800892 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so you don't want pages to have custom styles but you also don't want them to have standard styles? < 1419027458 857296 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :github, that's what it reminds me of < 1419027464 800199 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Vorpal: true. didn't think of that, wikipedia is a secondary resource. < 1419027470 454167 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :or you want them to have standard styles as long as they're how browsers happened to render things circa the 90s that is kept for backwards compatibility < 1419027476 999330 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :int-e, it tends to show up in google results < 1419027480 597503 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: I think it's bootstrap or something. < 1419027481 43478 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I don't mind the concept of standard styles, I just want control over which standard style it is < 1419027482 515154 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it doesn't look like github < 1419027484 809095 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :github is much less flat < 1419027485 593991 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :we want the styling to be user-specified hth < 1419027500 728941 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I just loaded github to compare < 1419027503 39631 :Sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Ping timeout: 264 seconds < 1419027506 310065 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :int-e, anyway for my particular needs lttng is far superior to systemtap, perf, ftrace and so on < 1419027515 103445 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :they look similar in style, but github's breaks under noscript and lttng's doesn't < 1419027519 668664 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so they must be different frameworks < 1419027755 682247 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Fuck pulseaudio < 1419027880 804563 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :I need to do "pactl load-module module-bluetooth-discover" every time to get my bluetooth headset to be work. And then manually enable the output < 1419027887 447491 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Why does it need to be so complicated < 1419027906 420338 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Vorpal: I need to do "sudo killall pulseaudio" to get sound output to work at all < 1419027912 140467 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ouch < 1419027912 347257 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's fine after I've killed it and it's automatically reloaded once < 1419027922 696255 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so I'm guessing a missing boot-time dependency or similar < 1419027929 343673 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Is it running as user as opposed to root then? < 1419027973 485216 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :audio on linux has always been a trainwreck < 1419027981 701679 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :it's better now < 1419027987 504237 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :not really < 1419027988 636792 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I guess it's running as not-me, because I need sudo to kill it < 1419028012 368423 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :ais523: can't you uninstall pulseaudio... < 1419028022 389175 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :int-e: well pulse is handling my sound right now < 1419028029 539627 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :killing it just causes the process to restart < 1419028033 360620 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but in a way that actually works < 1419028054 354741 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(I have done that, not looking back. Plain alsa works fine for me.) < 1419028086 703586 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :And bluetoothd crashed... < 1419028155 80834 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(Otoh I'm not using any USB or Bluetooth or whatever devices; the sound setup is static, always going through the same audio device(s).) < 1419028198 348467 :azazel_!uid52684@gateway/web/irccloud.com/x-ibtfqhgbavwotusu JOIN :#esoteric < 1419028209 391874 :azazel_!uid52684@gateway/web/irccloud.com/x-ibtfqhgbavwotusu NICK :Solace < 1419028231 622869 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :my dad says he once had to compile alsa 10 times befroe it actually worked < 1419028247 214244 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Heh < 1419028249 554575 :Solace!uid52684@gateway/web/irccloud.com/x-ibtfqhgbavwotusu PRIVMSG #esoteric :Your dad sounds awesome < 1419028255 645279 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :presumably not with the same setup < 1419028262 584681 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Solace, agreed < 1419028295 33295 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, some issues... I swear recompiling it on a configuration you tested earlier suddenly works... < 1419028301 481843 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Flow chart14]]4 10 02http://esolangs.org/w/index.php?diff=41520&oldid=41460 5* 03Tastyfish 5* (+749) 10 < 1419028304 918802 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :he says it was different build options. back then autodetecting your hardware was... screwed < 1419028311 385063 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Not with alsa as such < 1419028346 682545 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if it's any help, I had severe audio problems with early windows XP < 1419028391 723171 :Solace!uid52684@gateway/web/irccloud.com/x-ibtfqhgbavwotusu PRIVMSG #esoteric :Ok so like i want to be able to actually know how to use haskell, but im a bit lazy also any recomendations on a new language i should try? < 1419028401 909507 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :I never had issues with jack on linux. But I never used it with bluetooth so not sure < 1419028420 481344 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :my problems with winXP were purely a result of downloading and running any damn thing < 1419028439 829550 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Solace: Did you try learning Forth programming, or 6502 assembly language programming? < 1419028449 864108 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Solace: esme < 1419028473 706165 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :Solace: racket < 1419028486 335776 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :no wait, heresy < 1419028489 87063 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, what is NHGPL? < 1419028491 502649 :Solace!uid52684@gateway/web/irccloud.com/x-ibtfqhgbavwotusu PRIVMSG #esoteric :no i havent tried learning those. Do i need any skiol requirements to learn them? < 1419028492 166604 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Solace: what sort of languages do you know atm? < 1419028499 476639 :GeekDude!~GeekDude@unaffiliated/g33kdude QUIT :Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com) < 1419028514 874957 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :not sure what skills are required to learn esme, but I certainly don't have them < 1419028518 702758 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if you want to learn Haskell but your thought processes are too far from it, I'd recommend OCaml as something that has the less controversial half of Haskell's features while remaining vaguely familiar < 1419028526 774650 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Vorpal: typo for NGPL, NetHack's license < 1419028536 865902 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(I think NHGPL is a better name, but NGPL is "official") < 1419028537 224256 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, so what is NGPL? < 1419028546 765315 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :What is the extension to GPL < 1419028573 343023 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it predates GPL < 1419028582 251455 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's the Bison license with one word changed < 1419028595 772601 :Solace!uid52684@gateway/web/irccloud.com/x-ibtfqhgbavwotusu PRIVMSG #esoteric :Java, C, Bash, Lua, XML, And python < 1419028596 924260 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :I'm not familiar with the bison license either < 1419028598 631446 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :GPL should be a programming language < 1419028600 417292 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric ::/ < 1419028604 447479 :Solace!uid52684@gateway/web/irccloud.com/x-ibtfqhgbavwotusu PRIVMSG #esoteric :I just want a harder thing to learn < 1419028605 991540 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :annoyingly, I haven't been able to find a copy of the Bison license to find out which word it is < 1419028609 721966 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but IIRC it was mostly irrelevant < 1419028611 149214 :Solace!uid52684@gateway/web/irccloud.com/x-ibtfqhgbavwotusu PRIVMSG #esoteric ::[ < 1419028615 827479 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Solace: I recommend OCaml, then < 1419028624 919895 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ais523, so what sort of license is it? < 1419028626 864398 :Solace!uid52684@gateway/web/irccloud.com/x-ibtfqhgbavwotusu PRIVMSG #esoteric :Ok ill go find it < 1419028632 278492 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Vorpal: the Bison license is basically the version of GPL before GPL1 < 1419028637 40689 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the GPL was based on it < 1419028664 903270 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :Heh < 1419028683 161832 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but the problem is, Bison doesn't use it any more, and so the only reason to keep it around is historical interest < 1419028796 608375 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :ah < 1419028972 134374 :boily!~alexandre@96.127.201.149 JOIN :#esoteric < 1419029298 82974 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :I am going to see Riot: Christmas Edition. < 1419029411 845129 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :pkill -9 firefox < 1419029415 388813 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :goddamnit < 1419029531 120192 :Solace!uid52684@gateway/web/irccloud.com/x-ibtfqhgbavwotusu PRIVMSG #esoteric :What is pkill < 1419029558 516576 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :killall with different option names < 1419029579 757248 :Solace!uid52684@gateway/web/irccloud.com/x-ibtfqhgbavwotusu PRIVMSG #esoteric :Cant you just have it close background/applications after its not used for like 5 min < 1419029636 127107 :Solace!uid52684@gateway/web/irccloud.com/x-ibtfqhgbavwotusu PRIVMSG #esoteric :Also im sad today ;( < 1419029738 786895 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :me too < 1419029739 460168 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :firefox basically starts freezing my computer every 8 hours < 1419029776 523709 :Solace!uid52684@gateway/web/irccloud.com/x-ibtfqhgbavwotusu PRIVMSG #esoteric :What why?! < 1419029814 410491 :Solace!uid52684@gateway/web/irccloud.com/x-ibtfqhgbavwotusu PRIVMSG #esoteric :Also one of the servers i ran off of was shut down cuz i didnt pay this month ;-; i was gonna do it < 1419031264 532209 :oerjan!oerjan@sprocket.nvg.ntnu.no JOIN :#esoteric < 1419031374 953308 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :`date < 1419031382 990347 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :Fri Dec 19 23:21:53 UTC 2014 < 1419031453 816587 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :`date < 1419031454 607775 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :Fri Dec 19 23:23:06 UTC 2014 < 1419031496 21209 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :@tell Gregor the codu log clock is about a minute late (curiously HackEgo is unaffected) < 1419031496 129645 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :Consider it noted. < 1419031584 607543 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well i guess not that curious, they are different servers < 1419031607 30188 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :didn't you already tell him that < 1419031615 816344 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i don't think i used @tell < 1419031624 402215 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :also i didn't check it properly then < 1419031739 414936 :S1!~S1@pD9FCA3CD.dip0.t-ipconnect.de JOIN :#esoteric < 1419031826 993640 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :what is tell? < 1419031850 652713 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :lambdabot's messaging service... < 1419031877 882260 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :isn't irc a messaging service? < 1419031847 631185 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :so it hold the message and repeats it later? < 1419031855 478488 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Not really < 1419031860 968640 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :irc's not very reliable for people not physically present < 1419031870 607780 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :uh... < 1419031871 622402 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :lambdabot saves the message for later < 1419031877 952338 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :they might ping out, not bother to check old backlogs... < 1419031880 414592 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I *have* talked to physically present people on IRC, but mostly not. < 1419031886 246379 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh, I guess you mean physically present at their computers. < 1419031891 411017 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yes :P < 1419031901 456365 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :I've talked to physically present people on IRC a lot < 1419031906 83348 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I've talked to people in the same real-life room over IRC, but mostly when there was a reason not to make audible noise < 1419031920 259018 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and experience has told me that Gregor tends to be away for longs periods, especially in weekends < 1419031920 338648 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :I have a house IRC channel < 1419031929 502037 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :AOL IM is what we used in high school < 1419031935 549109 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :for studyperiods < 1419031977 47049 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :is AIM still available? < 1419032012 33746 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :ais523: You can use sign language not make noise even not making noise of typing on the computer. < 1419032024 871471 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :zzo38: that requires both people to know sign language < 1419032027 621895 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Or if you can't use sign language, writing on the paper < 1419032048 159574 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :don't let teacher catch you passing notes < 1419032097 552074 :Sgeo!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :shachaf: funded < 1419032105 741385 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :Some people have passed notes by using a calculator link cable, but then someone might trip over it. < 1419032166 208291 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :oh yeah i remember those ridiculous TI calculators! < 1419032180 121502 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :like why not just use a computer?! < 1419032188 305510 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*-s < 1419032196 452016 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :what _is_ with my spelling these days... < 1419032223 542027 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :scrwe spling! < 1419032227 908106 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :A computer is certainly faster but the calculator is more portable and will turn on more quickly than most computers, the battery also last longer. < 1419032254 967565 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :I have a TI-92 calculator. < 1419032266 507699 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :zzo38: good point about the battery and startup time < 1419032284 267361 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :nowadays do they at least have color screens? < 1419032293 717370 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :Sgeo: is there a celebration? < 1419032297 811197 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :^celebrate < 1419032297 923781 :fungot!fis@selene.zem.fi PRIVMSG #esoteric :\o| c.c \o/ ಠ_ಠ \m/ \m/ \o_ c.c _o/ \m/ \m/ ಠ_ಠ \o/ c.c |o/ < 1419032298 127458 :myndzi!myndzi@kingofstackers.com PRIVMSG #esoteric :69 | c.c.c |  ¯|¯⌠ `\o/´69   | c.c.c |   `\o/´69  ¯|¯⌠ | c.c.c | < 1419032298 197607 :myndzi!myndzi@kingofstackers.com PRIVMSG #esoteric :69 |\ c.c  >\ /´\|   |    /<  c.c /|     |    /`\| |\ c.c /< < 1419032299 258770 :myndzi!myndzi@kingofstackers.com PRIVMSG #esoteric :69                  /'\              (_|¯´¯|_) < 1419032299 322405 :myndzi!myndzi@kingofstackers.com PRIVMSG #esoteric :69                (_| |_)                  < 1419032299 417460 :AndoDaan_!~AndoDaan@188.189.68.249 JOIN :#esoteric < 1419032309 784952 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :TI-92 doesn't have a color display, at least. < 1419032315 942003 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :But I think some do. < 1419032323 892850 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ACTION swats AndoDaan_ for ruining myndzi's graphics -----### < 1419032366 939919 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :for me it is full of yen signs < 1419032414 673537 :AndoDaan!~AndoDaan@188.189.68.249 QUIT :Ping timeout: 245 seconds < 1419032418 154764 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :A color display would be helpful for plotting multiple functions at the same time, you can tell the difference by colors; it also help for telling the difference of the data and the axis, and possibly some kinds of game programming might also be help by color graphics too. < 1419032543 684774 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :TI-92 is capable of doing 3D graphics; if you have a color display then possibly it can even be made to work by colored glasses red and blue. < 1419032588 431913 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :so it is like a tiny matlab! and its syntax can't possibly be any worse than matlab < 1419032640 958329 :zzo38!~zzo38@24-207-58-35.eastlink.ca PRIVMSG #esoteric :It does 3D graphics pretty slowly though < 1419032650 856704 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :so it is like matlab < 1419032708 357997 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :or at least like the version of matlab i am familiar with < 1419032771 301069 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :They made a "TI-84 Plus C SE" with a color screen, yes. < 1419033026 96009 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :(It is an upgrade of the "TI-84 Plus SE". I think it's the only color screen in the series so far.) < 1419033033 353554 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :does it cost less than matlab? < 1419033056 339350 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :or is it comparable < 1419033091 524020 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :why does wikipedia have all information on a product except its price? < 1419033138 112226 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Because who would keep that up to date? Anyway, yes. < 1419033222 396844 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :MATLAB individual license is 2000/500 eur (normal/academic), the calculator is around 120 maybe. Depends on where you get it. < 1419033346 651563 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I wonder if I should get the free MATLAB now that I'm still employed by the university for a few more days. I hear it'll keep working for a year or two. < 1419033361 199240 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :matlab stinks why bother < 1419033421 373527 :AndoDaan_!~AndoDaan@188.189.68.249 QUIT :Ping timeout: 250 seconds < 1419033423 486140 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :wow compiling the rust compiler is taking a long time < 1419033423 747486 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It stinks less than Octave in some contexts. < 1419033497 668440 :oren!~oren@TOROON0949W-LP140-1-1176000251.dsl.bell.ca PRIVMSG #esoteric :well actually it's about average for a large C++ program < 1419033511 436877 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :(And also sometimes less than some other comparable tools, like SciPy. Depending, of course.) < 1419033598 913723 :GeekDude!~GeekDude@c-73-31-240-150.hsd1.wv.comcast.net JOIN :#esoteric