< 1636675289 711926 :rodgort!~rodgort@static.38.6.217.95.clients.your-server.de JOIN #esolangs * :rodgort < 1636675591 3903 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :hello < 1636676578 397448 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :? < 1636676804 198202 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Ping timeout: 246 seconds < 1636676879 727823 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord < 1636677428 719134 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 QUIT :Quit: Client closed < 1636677430 15745 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :Twingamerdudes: Hi. < 1636677433 495910 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :Drat, too slow. > 1636678632 60835 PRIVMSG #esolangs :14[[07Bedtime14]]4 10 02https://esolangs.org/w/index.php?diff=89564&oldid=89249 5* 03PixelatedStarfish 5* (+94) 10/* Operation Codes */ < 1636678824 918371 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 JOIN #esolangs * :[https://web.libera.chat] Twingamerdudes < 1636678833 400023 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :hello > 1636678855 754609 PRIVMSG #esolangs :14[[07Bedtime14]]4 10 02https://esolangs.org/w/index.php?diff=89565&oldid=89564 5* 03PixelatedStarfish 5* (+64) 10/* Grammar */ < 1636678866 315109 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :Twingamerdudes: Hi. Sorry to miss you the last couple times. What's up? < 1636678877 730245 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :I'm pretty good < 1636678886 618329 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :I made a esolang and published it on the wiki today < 1636678899 755953 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :here is is right here https://esolangs.org/wiki/Mash < 1636678906 38667 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :how about how < 1636678909 710210 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :*you > 1636678920 399220 PRIVMSG #esolangs :14[[07Bedtime14]]4 10 02https://esolangs.org/w/index.php?diff=89566&oldid=89565 5* 03PixelatedStarfish 5* (+64) 10/* Grammar */ > 1636678945 473719 PRIVMSG #esolangs :14[[07Bedtime14]]4 10 02https://esolangs.org/w/index.php?diff=89567&oldid=89566 5* 03PixelatedStarfish 5* (+0) 10/* Grammar */ > 1636678971 333328 PRIVMSG #esolangs :14[[07Bedtime14]]4 10 02https://esolangs.org/w/index.php?diff=89568&oldid=89567 5* 03PixelatedStarfish 5* (+4) 10/* Grammar */ > 1636678998 992467 PRIVMSG #esolangs :14[[07Bedtime14]]4 10 02https://esolangs.org/w/index.php?diff=89569&oldid=89568 5* 03PixelatedStarfish 5* (+1) 10/* Grammar */ < 1636679072 159321 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :Trying to figure out unfolds in Cammy. Been stuck on it for a couple days now. < 1636679141 186815 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :oof, hope you fix it < 1636679324 564344 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :No worries. It's not broken; languages like Cammy haven't been explored much, so I don't know how to express common algorithms and data structures yet. < 1636679335 518600 :imode!~imode@user/imode PRIVMSG #esolangs :unfolds? < 1636679410 184198 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :ah ok < 1636679491 627504 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :Like, on lists. Cammy has folds; given f : 1 -> X and g : Y × X -> X, we have (fold f g) : [Y] -> X. Classic simple recursion on lists. < 1636679531 60357 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :But Cammy is total, and that makes unfolding harder to express, because traditional unfolds are not total; they can diverge and create infinitely-long lists. < 1636679564 931517 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :alr, I can't understand any of that code above lol, but I can understand the concept I think < 1636679598 811157 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :No worries. https://esolangs.org/wiki/Cammy might help, but probably will just be more confusing. It's okay. < 1636679623 903947 :imode!~imode@user/imode PRIVMSG #esolangs :I'm still not familiar with what an unfold is. < 1636679684 682653 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :imode: An unfold, or anamorphism, takes a seed value and a function, and generates the (infinite) list built by repeatedly applying the function to the seed value. < 1636679723 64727 :imode!~imode@user/imode PRIVMSG #esolangs :oh, huh. that's intuitive. < 1636679732 103817 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :ok < 1636679741 713035 :imode!~imode@user/imode PRIVMSG #esolangs :if it's total you really do have a problem. < 1636679810 228218 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :Yep. My recent plan is to take a natural number and use it for the length of the list. Then the unfold will only take a fixed number of steps. < 1636679819 282480 :imode!~imode@user/imode PRIVMSG #esolangs :that makes sense. < 1636679830 748311 :imode!~imode@user/imode PRIVMSG #esolangs :what is `pr`. < 1636679866 728305 :oerjan!oerjan@sprocket.nvg.ntnu.no JOIN #esolangs oerjan :Ørjan Johansen < 1636679903 73554 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :`pr` is primitive recursion on natural numbers. Given f : 1 -> X and g : X -> X, (pr f g) : N -> X takes a natural number, creates a seed value from f, and then applies g repeatedly to build a value. < 1636679907 390971 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :pr`? No such file or directory < 1636679918 388408 :FreeFull!~freefull@user-5-173-24-13.play-internet.pl QUIT : < 1636679921 27756 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 QUIT :Quit: Client closed < 1636679924 5840 :imode!~imode@user/imode PRIVMSG #esolangs :ah. < 1636679927 452618 :imode!~imode@user/imode PRIVMSG #esolangs :that makes sense. < 1636680029 970679 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :Yeah, one bite at a time, it's not so bad. < 1636680624 912364 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 JOIN #esolangs * :[https://web.libera.chat] Twingamerdudes < 1636680740 29076 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :hello < 1636680748 643947 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :Welcome back. < 1636680839 699413 :ais523!~ais523@213.205.200.54 JOIN #esolangs ais523 :(this is obviously not my real name) < 1636680841 479175 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :I somehow managed to update my esolang 3 times today lol < 1636680852 269632 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :and not for bug fixes < 1636680875 871547 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :`asm pcmpeqb mm0, mm0 < 1636680877 507052 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :0: 0f 74 c0 pcmpeqb mm0,mm0 < 1636680883 477417 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :? < 1636680896 311069 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :are you guys just spamming] < 1636680898 117215 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :that's another solution to setting a 64-bit register to -1 in three bytes < 1636680906 261242 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :ok < 1636680909 500760 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :(referring to an older conversation) < 1636680927 524659 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :so it turns out to be doable for both scalar and vector registers < 1636680949 174738 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :alr < 1636680955 252795 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :hmm, I wonder if the push-and-immediately-pop method hits that stall bug on Intel processors < 1636680959 854333 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :might be interesting to benchmark it < 1636680984 990118 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :well, idk if it does, I don't focus on stuff like that < 1636681111 651413 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :hmm, I wonder how long it takes with LEA < 1636681127 880927 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :`asm lea (-1), %rax < 1636681129 322978 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :0: 48 8d 04 25 ff ff ff ff lea 0xffffffffffffffff,%rax < 1636681153 845653 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :oh right, the bitwidths are the wrong way round > 1636681158 182465 PRIVMSG #esolangs :14[[07Mash14]]4 M10 02https://esolangs.org/w/index.php?diff=89570&oldid=89563 5* 03Twingamerdudes 5* (+0) 10/* Tips */ > 1636681205 641825 PRIVMSG #esolangs :14[[07Mash14]]4 M10 02https://esolangs.org/w/index.php?diff=89571&oldid=89570 5* 03Twingamerdudes 5* (+1) 10/* Tips */ < 1636681255 633609 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :I am also reminded of in Z-machine (which works with 16-bit numbers), there is a way to set a register to -1 with three bytes, but Infocom didn't use it and used five bytes instead. (The way with three bytes uses the BCOM (bitwise complement) instruction. I don't know enough about 64-bit x86 to know how many bytes it is on 64-bit x86, though) < 1636681290 157146 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :ok < 1636681392 376852 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs : the six bytes {0xFC, 0122, 0131, 0xF3, 0xA4, 0xC3} are sufficient for memcpy ← on modern processors, the REP MOVSB near the end there is actually implemented by the processor using an incredibly complicated microcode function that works like standard library memcpys, switching between various algorithms based on what gives the best performance for the copy size, alignment, etc. < 1636681423 684675 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :although, it's still sometimes slower than the standard library version because the processor's branch prediction mechanism doesn't work on microcode, which slows down the startup a lot < 1636681447 450060 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :zzo38: on x86-64, most instructions take at least one more byte than they really should :-( < 1636681487 351588 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :I do not understand a single bit hereXD < 1636681502 12065 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :XD < 1636681544 135588 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :a quick summary is that it's quite similar to 32-bit x86, except that the bytes 0x48-0x4f are all prefixes that make an instruction 64-bit (the bottom three bits are used to change which register you're using for various fields of the instruction, doubling the number of registers available) < 1636681549 393752 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :so, e.g. < 1636681558 745679 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :`asm mov %ebx, %eax < 1636681559 995087 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :0: 89 d8 mov %ebx,%eax < 1636681565 539323 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :`asm mov %rbx, %rax < 1636681567 68002 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :0: 48 89 d8 mov %rbx,%rax < 1636681570 301236 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :`asm mov %rbx, %r8 < 1636681571 483207 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :0: 49 89 d8 mov %rbx,%r8 < 1636681572 589742 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :ok < 1636681574 205732 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :like that < 1636681602 990129 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :if you don't have the prefix, you get 32-bit instructions which zero the top half of every register they write to (for performance reasons) < 1636681619 835555 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :this means that in 64-bit code, basically every instruction starts with a 4 nybble < 1636681620 186074 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :ok < 1636681653 918025 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :(0x40-0x47 are also prefixes, they give you the extra registers while leaving the instruction 32/16/8-bit) < 1636681756 95725 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :this is why the solution for setting the register to -1 used push/pop, because those are 64 bits by default < 1636681838 307198 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :ais523: Insightful. Well golfed. < 1636681897 979371 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :I think I generally prefer the vector unit instruction set to the scalar unit instruction set (although it's a bit odd that they're different) < 1636681925 399797 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :vector comparisons don't use flags, they return the comparison result in a vector, and they use the convention of true = -1, so you can zero a vector register by comparing it with itself < 1636681941 539488 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :fortunately, the 64-bit vector registers are the ones that don't use the prefix (because they got added first) < 1636682085 520402 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :`asm pcmpeqb %mm5, %mm5; pcmpeqb %xmm5, %xmm5; vpcmpeqb %xmm5, %xmm5, %xmm5; vpcmpeqb %ymm5, %ymm5, %ymm5; vpcmpeqb %xmm5, %xmm5, %k5; vcmpeqb %ymm5, %ymm5, %k5; vcmpeqb %zmm5, %zmm5, %k5 < 1636682086 717743 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :​/tmp/asm.s: Assembler messages: \ /tmp/asm.s:1: Error: no such instruction: `vcmpeqb %ymm5,%ymm5,%k5' \ /tmp/asm.s:1: Error: no such instruction: `vcmpeqb %zmm5,%zmm5,%k5' \ /tmp/asm.s: Assembler messages: \ /tmp/asm.s:1: Error: operand size mismatch for `vpcmpeqb' \ /tmp/asm.s:1: Error: no such instruction: `vcmpeqb %ymm5,%ymm5,%k5' \ /tmp/asm.s:1: Error: no such instruction: `vcmpeqb %zmm5,%zmm5,%k5' < 1636682097 871599 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :`asm pcmpeqb %mm5, %mm5; pcmpeqb %xmm5, %xmm5; vpcmpeqb %xmm5, %xmm5, %xmm5; vpcmpeqb %ymm5, %ymm5, %ymm5 < 1636682099 119071 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :0: 0f 74 ed pcmpeqb %mm5,%mm5 \ 3: 66 0f 74 ed pcmpeqb %xmm5,%xmm5 \ 7: c5 d1 74 ed vpcmpeqb %xmm5,%xmm5,%xmm5 \ b: c5 d5 74 ed vpcmpeqb %ymm5,%ymm5,%ymm5 < 1636682106 740952 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :asm code lol < 1636682148 700998 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :I wonder whether the AVX-512 instructions aren't programmed into `asm, or whether I got the syntax wrong < 1636682150 762667 :sprout_!~quassel@2a02:a467:ccd6:1:9825:20f3:f69:55d5 PRIVMSG #esolangs :ACTION looks up < 1636682164 368951 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :(I'm not very familiar with them, I don't have an AVX-512 processor) < 1636682169 687929 :sprout_!~quassel@2a02:a467:ccd6:1:9825:20f3:f69:55d5 PRIVMSG #esolangs :hmm, I am in the company of real men. maybe listen < 1636682204 735001 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :ok < 1636682518 890272 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :`asm .byte 0x62, 0x01, 0x55, 0x08, 0x74, 0xed < 1636682520 131286 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :0: 62 01 vpcmpeqb %xmm29,%xmm5,(bad) \ 2: 55 push %rbp \ 3: 08 .byte 0x8 \ 4: 74 ed je 0xfffffffffffffff3 < 1636682536 953138 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :oh right < 1636682551 846445 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :`asm .byte 0x62, 0x01, 0x55, 0x0d, 0x74, 0xed < 1636682553 98596 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :0: 62 01 vpcmpeqb %xmm29,%xmm5,(bad){%k5} \ 2: 55 push %rbp \ 3: 0d .byte 0xd \ 4: 74 ed je 0xfffffffffffffff3 < 1636682558 980142 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :getting closer < 1636682597 703899 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :or, less close < 1636682628 712838 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :also that is some very weird error recovery from the disassembler < 1636682646 980614 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :`asm vpcmpeqb %xmm5, %xmm5, %k5 < 1636682648 354900 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :0: 62 f1 55 08 74 ed vpcmpeqb %xmm5,%xmm5,%k5 < 1636682657 753696 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :ah, there we go < 1636682662 845884 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :six bytes! < 1636682700 544672 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :`asm vpcmpeqb %ymm5, %ymm5, %k5 < 1636682702 398523 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :0: 62 f1 55 28 74 ed vpcmpeqb %ymm5,%ymm5,%k5 < 1636682706 656056 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :`asm vpcmpeqb %xmm5, %xmm5, %k5 < 1636682707 831195 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :0: 62 f1 55 08 74 ed vpcmpeqb %xmm5,%xmm5,%k5 < 1636682712 114824 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :`asm vpcmpeqb %zmm5, %zmm5, %k5 < 1636682713 411265 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :0: 62 f1 55 48 74 ed vpcmpeqb %zmm5,%zmm5,%k5 < 1636682728 926588 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :a complete set of set-register-to--1 instructions, probably < 1636682732 499852 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :why is this account hackeso printing some output thing of your asm code < 1636682734 852649 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :(allowing for the ones we wrote earlier) < 1636682740 624018 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :because I asked it to < 1636682743 862414 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :it's a bot < 1636682748 818938 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :I felt like it < 1636682748 984175 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :`echo Hello. world! < 1636682749 798948 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :Hello. world! < 1636682753 784353 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :cool < 1636682760 645044 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :`rev abcde < 1636682761 910666 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :rev: cannot open abcde: No such file or directory < 1636682762 908989 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :err < 1636682763 24057 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :`echo Hello. world < 1636682764 368066 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :Hello. world < 1636682773 85184 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :`` echo abcde | rev < 1636682774 158656 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :edcba < 1636682794 410287 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :`echo I am a bot! < 1636682795 234583 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :I am a bot! < 1636682817 567049 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :it's a useful addition to conversations because it can be used to quickly test things, or to demonstrate a point < 1636682837 367187 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :also it's better at encoding AVX-512 instructions than I am, apparently < 1636682851 177220 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :ok < 1636683017 212888 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :I should get an up-to-date copy of AMD manuals, if/when they implement AVX-512; they're generally easier to read, especially when it comes to instruction encodings < 1636683022 403022 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :ok < 1636683051 429050 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :`` echo ko | rev < 1636683052 434657 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :ok < 1636683060 154219 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :I love playing with this bot lol < 1636683306 766302 :ais523!~ais523@213.205.200.54 QUIT :Quit: quit < 1636683753 942493 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 PRIVMSG #esolangs :` echo I am a bot < 1636683754 759453 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :​? Permission denied < 1636683867 559550 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:acda:ce3f:8e54:eb9 QUIT :Quit: Client closed < 1636684116 74337 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :ais523: Not including VEX instructions, which encode the REX bits more efficiently, if I remember correctly. < 1636684302 727949 :ais523!~ais523@213.205.200.54 JOIN #esolangs ais523 :(this is obviously not my real name) < 1636684350 734516 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :shachaf: the VEX/EVEX prefixes come with an implied 4, i.e. you don't need (and can't use) a separate REX prefix because you have 4 bits for that purpose dedicated in the VEX/EVEX < 1636684403 309011 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :although, there are two VEX prefixes, a long and a short one – only the long version has room for all four of the REX prefix bits, the other one only has one (plus one more that has a similar purpose but affects the "v" register which non-vector instructions don't have) < 1636684404 623748 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Right. I guess it's not exactly "more efficient", it's just "not even less efficient". < 1636684431 349138 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :so if you happen to need one of the remaining bits of the REX prefix, that can force you from the short to the long VEX prefix and cost you just as much < 1636684444 817348 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :When I was encoding x86 instructions I stopped before VEX. < 1636684454 491172 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :How many registers should an instruction set have? < 1636684476 713706 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :and EVEX is sort-of like a superprefix that can handle any other combination of prefixes plus a lot more of its own, at the cost of being four bytes long < 1636684513 263972 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :register count is an interesting problem because modern processors have a lot more registers internally than the instruction set supports < 1636684534 876780 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :so what you actually need isn't so much a count of registers, but a method of specifying which instructions should connect to which other instructions < 1636684562 208699 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Sure, I mean register names. < 1636684577 286113 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :on most processors you do that by specifying the same register number in the two instructions, but I'm not convinced that that's the best option – in many cases it doesn't matter whether they both name %rcx or both name %rdx < 1636684582 150242 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Unless you do something entirely different like the Mill. < 1636684608 336596 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :right, the Mill has the right general idea (although I think they should have explicit outputs and implicit inputs rather than the other way round) < 1636684609 465096 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Which seems pretty nice to me but I don't know about the details of implementing it. < 1636684634 245103 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Ah, interesting, what would that look like? < 1636684634 641211 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :the Mill's approach doesn't scale < 1636684663 416311 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :each instruction would specify the number of instructions after which the result would be used < 1636684699 377814 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :so they don't specify inputs (other than memory inputs), only where the outputs go < 1636684701 495376 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :And if an instruction takes multiple inputs it would have multiple previous instructions pointing to it? < 1636684705 332803 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :right < 1636684722 250711 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :although, you probably want to explicitly say which argument you're pointing to < 1636684730 912077 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :That sounds kind of awful to write for, even more than the Mill. < 1636684735 437553 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :By hand, I mean. < 1636684735 703748 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :the biggest downside of this is that you need some way to explicitly copy an output that's going to be used more than once < 1636684748 571013 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :What's the benefit? That you don't have to emit things if you don't use them? < 1636684750 251513 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :the upside is that it scales really well, supporting pretty much arbitrary distances < 1636684770 67777 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :because the processor doesn't need fast codepaths for all possible distances, only for the small ones < 1636684775 548341 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :err, fast datapaths < 1636684789 13104 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Hmm. < 1636684791 120747 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :if an instruction says "use the result 100 instructions later" then it probably doesn't matter if that's implemented in a really slow way, it'll still get tehre in time < 1636684823 6135 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :in the Mill, though, if it says "use the result from 100 instructions ago" then the processor would either need to speculatively execute a very long way forwards, or else stall in order to find the value from wherever it was < 1636684846 562243 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Or you'd need to have occasional forwarding instructions as it's about to fall off the belt. < 1636684853 664594 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :because you can't realistically connect every execution unit to 100 different input sources within a single cycle < 1636684853 962699 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Which I think is what they do? < 1636684884 771125 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :I think that they've described a technique for bumping values to keep them on the belt, but AIUI their prototype compiler always spills to memory instead. < 1636684890 237740 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :I think they use either registers or temporary memory for that, otherwise all the forwarding instructions would slow things down too much < 1636684925 505368 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :ISTR that the Mill specifies fast scratch memory ("scratchpad") of some sort, so spills aren't as expensive as on x86/ARM. < 1636684933 440024 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :my mental model of my antibelt is to have fast interconnects for small values, some sort of shift register for medium values, and an L1-cache-like thing for large values < 1636684950 402146 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :where by "values" I mean distances < 1636684966 647486 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :spills aren't expensive even on x86 < 1636684988 918075 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :Huh. How does that sort of p-adic connectivity come about? That is pretty interesting. < 1636685019 411166 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :the AMD Zen 2 has memory spills that are as fast as registers are; it's widely speculated that it has some sort of cache for spilled registers < 1636685029 637002 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :although, the AMD Zen 3 doesn't, probably because it isn't worth the transistors < 1636685034 457606 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :Nifty, TIL. < 1636685065 250685 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Is this the thing people call "memory renaming"? < 1636685083 602853 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :Intel has a three-cycle lockout for spills, if you spill a register you can't read the memory you spilled it to for three clock cycles (although the spill is done in the background so your program can do the rest of its execution during that time) < 1636685104 207002 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :shachaf: I haven't heard of that, but it would be an obvious parallel with register renaming < 1636685150 193192 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :the main drawbacks of spills are a) the instruction needed to spill, b) the memory read/write port usage which prevents you doing memory accesses in parallel, c) polluting the L1 cache < 1636685168 861752 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :(although spills to the stack don't pollute the L1 cache much, because that gets accessed all the time anyway so it tends to naturally be in L1) < 1636685345 608653 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :anyway, if you are using the register-names method of linking instructions, x86-64's 16 seem to generally be enough in my experience, just about < 1636685366 690172 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :the main time you run low is during procedure calls, due to calling conventions being inflexible < 1636685400 838080 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :and spills by their nature tend to be in the outer loops (which generally aren't performance-sensitive) as opposed to the inner loops (which are) < 1636685413 414386 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :x86's 8 is not enough < 1636685482 850607 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :although, in order to make some loops work, it's useful to have a very cheap MOV instruction available < 1636685525 421228 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :register-register MOV is very cheap on modern processors, it takes up resources in fetch and decode but not anywhere else, the instruction's handled by the register renamer rather than the normal execute units < 1636685563 504273 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :4/cycle throughput, 0-cycle latency < 1636685640 601095 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :that compensates for one of the issues that registers have (that if you want to be able to assign to a particular register but still have the old value around, you need a MOV – often you need to do this because registers need to have the same name on every iteration of a loop, forcing you to use a particular register for something) < 1636685734 923054 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :like, say I have a loop where, on every iteration, I call a function, then write the sum of the five most recent return values of the function into an array < 1636685760 663086 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :unless I unroll it, this is going to need a ridiculous amount of MOV to keep the register names the same on every iteration < 1636685797 589798 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :because "most recent value" and "second-most recent value" and "third-most recent value" and "fourth-most recent value" and "fifth-most recent value" all need to be in registers, and need to be moved from one of those registers to another every iteration < 1636686239 80283 :Spikeheron!~DutchIngr@user/dutch QUIT :Quit: WeeChat 3.3 < 1636686362 83594 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :hmm, I decided to code it to see what a compiler did with it: https://godbolt.org/z/MossdKGeo < 1636686456 736095 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :even with 16 registers, it has to spill two, because there are only 6 call-preserved registers in the x86-64 ABI (and it needs uses three of them to remember the array length, the array location, and the loop counter) < 1636686510 651880 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :…that's clearly beatable, you could store the array end location and current array position using just two registers and save a spill < 1636686553 884360 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :actually this code is amazingly optimizable < 1636686561 550200 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :let me try it in C, to see if the compilers do any better with that < 1636686610 323812 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Do calling conventions need to be inflexible? < 1636686661 45606 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Could a compiler easily just annotate each function with some extra metadata about how many registers it wants, so callers can save fewer registers? < 1636686751 845197 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Also, this vaguely reminds me of https://cr.yp.to/qhasm/20050210-fxch.txt which is kind of neat. < 1636686780 34638 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :I wonder what happens with various alternatives to registers in these sorts of situations. < 1636686839 727703 :dutch!~DutchIngr@user/dutch JOIN #esolangs DutchIngraham :dutch < 1636686916 96551 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :looks like gcc can save the spill, but clang can't (which explains why rustc couldn't, it uses the same backend as clang): https://godbolt.org/z/6End4sY7a < 1636686956 796581 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :although, gcc makes stack space for a second spill despite not actually doing the spill < 1636686991 461603 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs : Do calling conventions need to be inflexible? Could a compiler easily just annotate each function with some extra metadata about how many registers it wants, so callers can save fewer registers? ← I think compilers could and ought to do that, but in practice they don't < 1636686996 94144 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :I've actually been really tempted to write my own that does < 1636687194 984772 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :one interesting thing that both compilers did was to zero %rax (a call-clobbered register) before making the function call < 1636687222 102869 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :there's got to be a good reason for that, if both clang and gcc are doing it, but I don't offhand know what it is < 1636687230 280489 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :That's the varargs convention, right? < 1636687238 618905 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :rax stores the number of floating point registers used, or something? < 1636687241 17582 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :oh, duh, I just realised that < 1636687243 965075 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :and then saw your comment saying it < 1636687249 39747 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :I guess f isn't varargs. < 1636687265 146600 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :it is, I forgot to put "void" in the arguments list < 1636687274 611931 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :I think a "()" function pointer can't be used for varargs, but I'm not sure. < 1636687280 904884 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :if I do, the zeroing of %rax disappears < 1636687317 239649 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :or, well, it might not be varargs, but the compiler doesn't have any proof it isn't varargs < 1636687328 146524 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :I thought it was allowed to assume that in this situation. < 1636687336 36710 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :At least someone told me that once. < 1636687375 625329 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :even with --std=c11 the compiler doesn't assume it isn't varargs unless I put an explicit 'void' in there < 1636687408 102903 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :maybe this is backwards compatibility with the pre- varargs mechanism? < 1636687447 885989 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :I guess any "()" function is sort of using a deprecated mechanism so who knows. < 1636687540 945289 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs : For calls that may call functions that use varargs or stdargs (prototype-less calls or calls to functions containing ellipsis (...) in the declaration) %al is used as hidden argument to specify the number of vector registers used. < 1636687632 85726 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :so I guess it's required by the standard, due to the possibility of calling a non-stdarg varargs function < 1636687734 450954 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :btw, in addition to varying the calling convention per-function to change which registers are call-preserved, I think it's useful to change it per-function in other ways < 1636687806 565259 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :such as stack alignment, and even the representation of data types (e.g. if a function is going to start by sign-extending its 16-bit arguments to 32 bits regardless, it makes sense to ask the caller to do that in case the caller can do it as a side effect of another instruction rather than needing a separate movsx instruction) < 1636687942 544583 :ais523!~ais523@213.205.200.54 PRIVMSG #esolangs :although you probably need a consistent convention for function pointers < 1636688077 406181 :ais523!~ais523@213.205.200.54 QUIT :Quit: quit < 1636688681 766051 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :A "() function" pointer can indeed not be used to call a varargs function. < 1636688740 613577 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :C11 6.5.2.2p6: "If the expression that denotes the called function has a type that does not include a prototype -- [and if] the function is defined with a type that includes a prototype, and -- the prototype ends with an ellipsis `(, ...)` -- the behavior is undefined." < 1636688782 848010 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :I guess C11 and the System V ABI disagree on this. < 1636688830 953217 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :It also can't be used to call a non-varargs function that has parameters with types that are changed by default argument promotions, but that's more obvious. < 1636690161 752540 :delta23!~delta23@user/delta23 JOIN #esolangs delta23 :delta23__ < 1636690439 832454 :Melvar!~melvar@dslc-082-082-054-043.pools.arcor-ip.net QUIT :Quit: WeeChat 3.2 < 1636692231 444362 :citrons!~citrons@alt.mondecitronne.com QUIT :*.net *.split < 1636692504 702085 :citrons!~citrons@alt.mondecitronne.com JOIN #esolangs citrons :citrons < 1636697472 573529 :Melvar!~melvar@dslc-082-082-054-043.pools.arcor-ip.net JOIN #esolangs Melvar :melvar < 1636698300 547602 :oerjan!oerjan@sprocket.nvg.ntnu.no QUIT :Quit: Nite < 1636701144 101458 :Sgeo!~Sgeo@user/sgeo QUIT :Read error: Connection reset by peer < 1636702916 672091 :b_jonas!~x@catv-176-63-3-164.catv.broadband.hu PRIVMSG #esolangs :ais523: would it be against the spirit of that exercise to store some of those five values in an xmm register, both because then you have extra call-preserved space, and because you can shift four ints in it with a shufps instruction? < 1636703122 723988 :b_jonas!~x@catv-176-63-3-164.catv.broadband.hu PRIVMSG #esolangs :oh yeah, you also get to use the phadd instruction to add the five numbers with just three instructions instead of four < 1636703145 951839 :b_jonas!~x@catv-176-63-3-164.catv.broadband.hu PRIVMSG #esolangs :the phaddd instruction < 1636703243 510074 :b_jonas!~x@catv-176-63-3-164.catv.broadband.hu PRIVMSG #esolangs :(or with just paddd if you reuse both the shifted and the original version and you're writing avx2 code) < 1636704676 783967 :richbridger!~richbridg@089144202237.atnat0011.highway.a1.net QUIT :Ping timeout: 268 seconds < 1636704867 585656 :richbridger!~richbridg@089144202142.atnat0011.highway.a1.net JOIN #esolangs richbridger :realname < 1636705070 815997 :delta23!~delta23@user/delta23 QUIT :Quit: Leaving < 1636707990 341937 :arseniiv!~arseniiv@94.41.2.66.dynamic.ufanet.ru JOIN #esolangs * :the chaotic arseniiv < 1636708028 540328 :Koen!~Koen@58.167.9.109.rev.sfr.net JOIN #esolangs * :Koen < 1636708511 766924 :archenoth!~archenoth@2604:3d09:681:f00:2179:f42f:d06b:5392 QUIT :Read error: Connection reset by peer < 1636710247 785968 :earendel!uid498179@user/earendel QUIT :Quit: Connection closed for inactivity < 1636710776 471237 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu JOIN #esolangs b_jonas :[https://web.libera.chat] wib_jonas > 1636711759 843558 PRIVMSG #esolangs :14[[07Esolang:Sandbox14]]4 10 02https://esolangs.org/w/index.php?diff=89572&oldid=89333 5* 03AmNow 5* (+28) 10cool < 1636712217 916032 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu QUIT :Ping timeout: 256 seconds < 1636713454 639002 :wareya!~wareya@cpe-67-246-10-1.nycap.res.rr.com QUIT :Ping timeout: 260 seconds < 1636714184 200678 :Trieste!T@user/pilgrim QUIT :Ping timeout: 246 seconds < 1636714511 763477 :Trieste!T@user/pilgrim JOIN #esolangs pilgrim :T < 1636715206 755020 :APic!apic@apic.name PRIVMSG #esolangs :Moin < 1636715933 214248 :archenoth!~archenoth@2604:3d09:681:f00:383d:caef:6750:9914 JOIN #esolangs Archenoth :archenoth < 1636716778 463976 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu JOIN #esolangs b_jonas :[https://web.libera.chat] wib_jonas < 1636717606 115564 :arseniiv!~arseniiv@94.41.2.66.dynamic.ufanet.ru QUIT :Read error: Connection reset by peer < 1636717629 761297 :arseniiv!~arseniiv@94.41.2.66.dynamic.ufanet.ru JOIN #esolangs * :the chaotic arseniiv < 1636717663 316233 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu QUIT :Quit: Client closed > 1636718294 938328 PRIVMSG #esolangs :14[[07Special:Log/newusers14]]4 create10 02 5* 03CuFeNiCoZn 5* 10New user account > 1636718637 516844 PRIVMSG #esolangs :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=89573&oldid=89536 5* 03CuFeNiCoZn 5* (+188) 10/* Introductions */ > 1636718685 883173 PRIVMSG #esolangs :14[[07User:CuFeNiCoZn14]]4 N10 02https://esolangs.org/w/index.php?oldid=89574 5* 03CuFeNiCoZn 5* (+9) 10Created page with "test test" < 1636719037 506877 :Deewiant!~deewiant@2001:470:69fc:105::2fd3 QUIT :Quit: Bridge terminating on SIGTERM < 1636719038 153211 :craigo[m]!~craigover@2001:470:69fc:105::12bc QUIT :Quit: Bridge terminating on SIGTERM < 1636719038 499524 :jryans!~jryans@2001:470:69fc:105::1d QUIT :Quit: Bridge terminating on SIGTERM < 1636719039 1297 :msmith12[m]!~msmith12m@2001:470:69fc:105::bdfc QUIT :Quit: Bridge terminating on SIGTERM > 1636719247 745851 PRIVMSG #esolangs :14[[07Call/cc14]]4 10 02https://esolangs.org/w/index.php?diff=89575&oldid=71449 5* 03CuFeNiCoZn 5* (-285) 10Remove subjective wording < 1636720045 638969 :jryans!~jryans@2001:470:69fc:105::1d JOIN #esolangs jryans :@jryans:matrix.org < 1636720613 776797 :Noisytoot!~noisytoot@sourcehut/user/noisytoot QUIT :Quit: ZNC 1.8.2 - https://znc.in < 1636720679 498866 :Deewiant!~deewiant@2001:470:69fc:105::2fd3 JOIN #esolangs Deewiant :@deewiant:maon.fi < 1636720679 581875 :craigo[m]!~craigover@2001:470:69fc:105::12bc JOIN #esolangs * :@craigoverend:matrix.org < 1636720679 581915 :msmith12[m]!~msmith12m@2001:470:69fc:105::bdfc JOIN #esolangs * :@msmith12:matrix.org < 1636720809 839901 :Noisytoot!~noisytoot@sourcehut/user/noisytoot JOIN #esolangs Noisytoot :Ron < 1636721403 312496 :msmith12[m]!~msmith12m@2001:470:69fc:105::bdfc QUIT :Quit: Client limit exceeded: 20000 < 1636721429 478959 :jryans!~jryans@2001:470:69fc:105::1d QUIT :Quit: Client limit exceeded: 20000 < 1636721765 871461 :sunarch!uid526836@user/sunarch JOIN #esolangs sunarch :sunarch < 1636721778 81788 :riv!river@tilde.team/user/river PRIVMSG #esolangs :hey why dont people prove that some 1D CAs are turing complete without infinite input? < 1636721780 460389 :jryans!~jryans@2001:470:69fc:105::1d JOIN #esolangs jryans :@jryans:matrix.org < 1636721780 544032 :msmith12[m]!~msmith12m@2001:470:69fc:105::bdfc JOIN #esolangs * :@msmith12:matrix.org < 1636721785 297808 :riv!river@tilde.team/user/river PRIVMSG #esolangs :its about time right? < 1636722186 758874 :Koen_!~Koen@58.167.9.109.rev.sfr.net JOIN #esolangs * :Koen < 1636722330 611480 :Koen!~Koen@58.167.9.109.rev.sfr.net QUIT :Ping timeout: 260 seconds < 1636722763 303768 :int-e!~noone@int-e.eu PRIVMSG #esolangs :riv: It's boring at that level of generality; any TM can be implemented by a 1D CA < 1636722782 585159 :riv!river@tilde.team/user/river PRIVMSG #esolangs :i mean rule 30 and stuff < 1636722798 485493 :int-e!~noone@int-e.eu PRIVMSG #esolangs :so you mean a specific 1D CA. < 1636722804 621083 :riv!river@tilde.team/user/river PRIVMSG #esolangs :wait i forget is rule 30 the same as rule 110 < 1636722818 455887 :riv!river@tilde.team/user/river PRIVMSG #esolangs :yes a specific one, but it could be any of them - i think only rule 30 has been looked at < 1636722944 192558 :int-e!~noone@int-e.eu PRIVMSG #esolangs :I thought Wolfram (and probably others before him) looked at all of them and only a few of them showed chaotic enough behavior to be plausibly TC < 1636722968 622596 :riv!river@tilde.team/user/river PRIVMSG #esolangs :by looked at i mean.. someone actually showed its turing complete < 1636723098 372187 :int-e!~noone@int-e.eu PRIVMSG #esolangs :also rule 30 isn't the same as rule 110 < 1636723384 613196 :int-e!~noone@int-e.eu PRIVMSG #esolangs :riv: anyway, why don't you do it < 1636723399 159250 :int-e!~noone@int-e.eu PRIVMSG #esolangs :don't leave it to people < 1636723441 924280 :riv!river@tilde.team/user/river PRIVMSG #esolangs :i was thinking that it would be really difficult < 1636723500 519107 :riv!river@tilde.team/user/river PRIVMSG #esolangs :basically one needs to come up with predictable gadgets inside that random mess, that seems like the hard part. then (if you have enough) you can probably just combine them to make up a language < 1636725183 591029 :FanaticPL!~Thunderbi@apn-31-0-27-230.dynamic.gprs.plus.pl JOIN #esolangs FanaticPL :Szymon Kwiręg < 1636725206 627939 :FanaticPL!~Thunderbi@apn-31-0-27-230.dynamic.gprs.plus.pl QUIT :Client Quit < 1636725339 902288 :Trieste!T@user/pilgrim QUIT :Ping timeout: 256 seconds < 1636725587 349723 :Trieste!~T@user/pilgrim JOIN #esolangs pilgrim :T < 1636725994 479877 :riv!river@tilde.team/user/river PRIVMSG #esolangs :or there could be other ways? any ideas? < 1636726030 305192 :riv!river@tilde.team/user/river PRIVMSG #esolangs :I suppose you have a big problem of dealing with having to loop over 2^n cases, if you want to brute force search for stuff > 1636726273 619883 PRIVMSG #esolangs :14[[07Bedtime14]]4 10 02https://esolangs.org/w/index.php?diff=89576&oldid=89569 5* 03PixelatedStarfish 5* (-25) 10/* Grammar */ < 1636726847 567722 :scjosh!~scjosh@206.189.79.69 QUIT :Quit: The Lounge - https://thelounge.chat < 1636726893 426273 :scjosh!~scjosh@206.189.79.69 JOIN #esolangs scjosh :Josh < 1636726987 381147 :earendel!uid498179@user/earendel JOIN #esolangs earendel :AmoreFS < 1636727644 660364 :delta23!~delta23@user/delta23 JOIN #esolangs delta23 :delta23__ > 1636727887 429236 PRIVMSG #esolangs :14[[07KonamiCode14]]4 10 02https://esolangs.org/w/index.php?diff=89577&oldid=89537 5* 03GingerIndustries 5* (+397) 10Added Turing completeness > 1636727922 857250 PRIVMSG #esolangs :14[[07KonamiCode14]]4 M10 02https://esolangs.org/w/index.php?diff=89578&oldid=89577 5* 03GingerIndustries 5* (+12) 10/* Special numbers */ < 1636728040 118367 :riv!river@tilde.team/user/river PRIVMSG #esolangs :i guess you want some kind of memory cell that you can repeat < 1636728092 396705 :riv!river@tilde.team/user/river PRIVMSG #esolangs :so ideally you would want to find 2 patterns A,B sch that some X in L[AB]+R would eventually give you back X < 1636728416 510856 :riv!river@tilde.team/user/river PRIVMSG #esolangs :although it would be okay for these things to be sequences < 1636728435 591336 :riv!river@tilde.team/user/river PRIVMSG #esolangs :A_i becomes A_{i+1} < 1636728452 96318 :riv!river@tilde.team/user/river PRIVMSG #esolangs :i wonder if there are any completely different approaches < 1636728457 424706 :riv!river@tilde.team/user/river PRIVMSG #esolangs :maybe this kind of thing is too structural < 1636729725 790659 :arseniiv!~arseniiv@94.41.2.66.dynamic.ufanet.ru QUIT :Ping timeout: 256 seconds < 1636729941 584215 :arseniiv!~arseniiv@94.41.2.66.dynamic.ufanet.ru JOIN #esolangs * :the chaotic arseniiv > 1636731421 530028 PRIVMSG #esolangs :14[[07Language list14]]4 10 02https://esolangs.org/w/index.php?diff=89579&oldid=89550 5* 03PixelatedStarfish 5* (+16) 10 < 1636731720 729611 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine < 1636732232 417105 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord < 1636733509 135306 :Koen_!~Koen@58.167.9.109.rev.sfr.net QUIT :Remote host closed the connection < 1636735092 549174 :Koen!~Koen@58.167.9.109.rev.sfr.net JOIN #esolangs * :Koen < 1636735437 791077 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Ping timeout: 256 seconds < 1636735497 618113 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord < 1636736858 282365 :leah2!~leah@vuxu.org QUIT :Remote host closed the connection < 1636736974 770832 :leah2!~leah@vuxu.org JOIN #esolangs leah2 :Leah Neukirchen < 1636738125 665443 :Koen!~Koen@58.167.9.109.rev.sfr.net QUIT :Remote host closed the connection < 1636740206 732575 :Koen!~Koen@58.167.9.109.rev.sfr.net JOIN #esolangs * :Koen > 1636740560 754644 PRIVMSG #esolangs :14[[07Bedtime14]]4 10 02https://esolangs.org/w/index.php?diff=89580&oldid=89576 5* 03PixelatedStarfish 5* (+20) 10/* Operation Codes */ > 1636740577 548582 PRIVMSG #esolangs :14[[07Bedtime14]]4 10 02https://esolangs.org/w/index.php?diff=89581&oldid=89580 5* 03PixelatedStarfish 5* (-106) 10/* Error Messages */ > 1636742488 650694 PRIVMSG #esolangs :14[[07Bedtime14]]4 10 02https://esolangs.org/w/index.php?diff=89582&oldid=89581 5* 03PixelatedStarfish 5* (+12) 10/* Operation Codes */ < 1636742738 608503 :Sgeo!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname < 1636743687 821838 :FreeFull!~freefull@user-5-173-24-13.play-internet.pl JOIN #esolangs FreeFull :FreeFull < 1636744811 581671 :wareya!~wareya@cpe-67-246-10-1.nycap.res.rr.com JOIN #esolangs wareya :realname < 1636745623 633138 :Koen!~Koen@58.167.9.109.rev.sfr.net QUIT :Remote host closed the connection < 1636747763 360794 :delta23!~delta23@user/delta23 QUIT :Quit: Leaving < 1636748746 935902 :delta23!~delta23@user/delta23 JOIN #esolangs delta23 :delta23__ < 1636748840 912488 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:bc15:5f36:ff81:a4bc JOIN #esolangs * :[https://web.libera.chat] Twingamerdudes < 1636748845 20167 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:bc15:5f36:ff81:a4bc PRIVMSG #esolangs :hello < 1636748860 665176 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :Afternoon. < 1636748882 755514 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:bc15:5f36:ff81:a4bc PRIVMSG #esolangs :just came back from school, I'm just vibing rn < 1636749054 294042 :riv!river@tilde.team/user/river PRIVMSG #esolangs :hi < 1636749247 11334 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:bc15:5f36:ff81:a4bc PRIVMSG #esolangs :hello < 1636749474 913937 :earendel!uid498179@user/earendel QUIT :Quit: Connection closed for inactivity < 1636749763 7932 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :I had the complaint before about implicit token names in Magic: the Gathering, but it looks like they fixed this now (perhaps not in quite the same way that I did, but what they did works too). < 1636749787 932370 :Twingamerdudes!~Twingamer@2601:588:c505:ce40:bc15:5f36:ff81:a4bc PRIVMSG #esolangs :ok < 1636749864 929808 :riv!river@tilde.team/user/river PRIVMSG #esolangs :I don't know what implicit token names are < 1636750123 599546 :Koen!~Koen@58.167.9.109.rev.sfr.net JOIN #esolangs * :Koen < 1636750532 278863 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :When an effect creates tokens without specifying their names. < 1636750552 3895 :riv!river@tilde.team/user/river PRIVMSG #esolangs :and what is the problem with that? < 1636750562 748438 :riv!river@tilde.team/user/river PRIVMSG #esolangs :a name is desired? < 1636750626 992898 :riv!river@tilde.team/user/river PRIVMSG #esolangs :have you considered using 1D CA for computation? < 1636750636 33513 :riv!river@tilde.team/user/river PRIVMSG #esolangs :like rule 110 < 1636750752 788784 :riv!river@tilde.team/user/river PRIVMSG #esolangs :https://en.wikipedia.org/wiki/Elementary_cellular_automaton < 1636750956 157354 :Koen!~Koen@58.167.9.109.rev.sfr.net QUIT :Quit: Leaving... < 1636751072 23065 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :They already had names assigned automatically and still do, but befor, the names could previously match the names of cards even if they didn't specifically say a name of a card; now they won't match. < 1636751098 174521 :riv!river@tilde.team/user/river PRIVMSG #esolangs :OK < 1636751420 961554 :b_jonas!~x@catv-176-63-3-164.catv.broadband.hu PRIVMSG #esolangs :zzo38: how did they fix it? < 1636751426 336628 :b_jonas!~x@catv-176-63-3-164.catv.broadband.hu PRIVMSG #esolangs :oh < 1636751470 823301 :b_jonas!~x@catv-176-63-3-164.catv.broadband.hu PRIVMSG #esolangs :so the names made of subtypes no longer match the normal names? < 1636751473 353352 :b_jonas!~x@catv-176-63-3-164.catv.broadband.hu PRIVMSG #esolangs :good < 1636751526 776384 :b_jonas!~x@catv-176-63-3-164.catv.broadband.hu PRIVMSG #esolangs :Hollow Dogs still aren't skeletons apparently. that's the only fix I'd care about :-) < 1636751538 271380 :b_jonas!~x@catv-176-63-3-164.catv.broadband.hu PRIVMSG #esolangs :(not quite the only) < 1636751711 220006 :b_jonas!~x@catv-176-63-3-164.catv.broadband.hu PRIVMSG #esolangs :there's a certain rules change about multiplayer that I'd like, namely that if you resign, then you are immediately no longer allowed to make the decisions that the rules and cards call for, just like with the current rules, but most of the other effects of losing the game, like removing your cards from the game, don't happen immediately, but only the next time that state-based effects are processed < 1636751783 915752 :b_jonas!~x@catv-176-63-3-164.catv.broadband.hu PRIVMSG #esolangs :I'd like this because you can resign any time, which is reasonable because if the player person has to leave for some reason then there's no point the rules should pretend that that they can't do that, and it makes sense that they can no longer make decisions too, < 1636751806 52606 :b_jonas!~x@catv-176-63-3-164.catv.broadband.hu PRIVMSG #esolangs :but the part that moves objects between zones is awkward to process if it's allowed any time > 1636751873 462402 PRIVMSG #esolangs :14[[07Mash14]]4 10 02https://esolangs.org/w/index.php?diff=89583&oldid=89571 5* 03Twingamerdudes 5* (+56) 10Added new comparison and fixed a example < 1636751973 853318 :b_jonas!~x@catv-176-63-3-164.catv.broadband.hu PRIVMSG #esolangs :and state-based actions are designed for this: we don't want objects to move immediately any time when they have lethal damage, so we only move them at state-based action time. < 1636752120 778547 :earendel!uid498179@user/earendel JOIN #esolangs earendel :AmoreFS < 1636753087 722858 :delta23!~delta23@user/delta23 QUIT :Quit: Leaving < 1636753886 333838 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :How can I mirror a collection of documents from Wayback archive without the JavaScripts, CSS, and other HTML commands that have been added by Wayback archive? < 1636754924 244912 :int-e!~noone@int-e.eu PRIVMSG #esolangs :apparently you can append id_ to the timestamp and it'll do that... http://web.archive.org/web/20211112211213id_/https://example.com/ < 1636754942 447295 :int-e!~noone@int-e.eu PRIVMSG #esolangs :via https://github.com/hartator/wayback-machine-downloader/blob/master/lib/wayback_machine_downloader.rb#L271 < 1636754971 546945 :int-e!~noone@int-e.eu PRIVMSG #esolangs :https://archive.org/help/wayback_api.php doesn't say anything about that < 1636755095 921999 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :https://archive.org/post/1008502/faq-on-id_-wayback-toolbar-removal -- apparently it used to be in the FAQ, but disappeared. < 1636755130 42107 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :A more suspicious mind might think of some collusion with the third-party sites that, for a fee, "recover" your site from archive.org, that they do still link to. < 1636755202 515214 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Ah, it makes sense that wikipedia would want to document this kind of thing. < 1636755456 782783 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :OK, for downloading a single file, adding "id_" works. However, I want to download an entire set of files. < 1636756401 667267 :Soni!~quassel@autistic.space QUIT :Quit: http://quassel-irc.org - Chat comfortably. Anywhere. < 1636756557 796811 :Soni!~quassel@autistic.space JOIN #esolangs SoniEx2 :Genders: Autgender, 🟪⬜🟩; Soni L. < 1636760802 558223 :arseniiv!~arseniiv@94.41.2.66.dynamic.ufanet.ru QUIT :Ping timeout: 260 seconds