< 1564444854 251877 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :so basically, the United Kingdom now has to sacrifice three or four prime ministers every year in order to be able to delay the Brexit forever and have someone to blame for it < 1564444882 913830 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :if only they could start a Ministry of Brexit, so that they only had to sacrifice the Brexit minister, rather than the prime minister < 1564445761 393644 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :but maybe the political dragon specifically demands prime ministers < 1564446448 549739 :Phantom__Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Quit: Leaving < 1564446949 504960 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Sgeo: Yes, Microsoft's reverse WINE runs in the kernel and does trickery. < 1564446964 631571 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But I imagine you could implement it with a debugger or something. < 1564447048 442125 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :you mean WSL? < 1564447189 559301 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :Sgeo: nah, I think if there was a need to emulate windows syscalls by catching the actual syscall, then the linux kernel would just grow an api for user processes to do exactly that < 1564447202 362327 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :to catch the syscall that is, not to do the whole emulation < 1564447210 285991 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :how does UML work by the way? < 1564447456 583243 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :b_jonas: ptrace is already an API to catch syscalls < 1564447473 69232 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :and UML is a different architecture from x86 or whatever < 1564447482 388519 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :kmc: yeah, ordinary linux syscalls (all flavors of them), but I don't know if it would catch windows syscalls < 1564447491 5000 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :so I think the "syscalls" are implemented as userspace calls into the user mode linux kernel < 1564447496 729901 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :hmm < 1564447505 979125 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :you can't run ordinary linux binaries in UML, I don't think < 1564447512 590547 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :oh! < 1564447521 60809 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :so that's why it didn't work when I just tried to copy an x86 binary? < 1564447522 645986 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :`file /bin/ls < 1564447523 247642 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :​/bin/ls: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=3c233e12c466a83aa9b2094b07dbfaa5bd10eccd, stripped < 1564447533 388121 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :`uname < 1564447533 930158 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :Linux < 1564447534 329963 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :but that would make UML all but useless < 1564447541 921568 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :b_jonas: no because we have these things called compilers < 1564447543 268502 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :because nobody would actually compile programs for it < 1564447554 36192 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :I don't think it's a different architecture though < 1564447554 337770 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :most of the software people want to run on linux is open source < 1564447558 980383 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :``` uname -a < 1564447559 604214 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :Linux (none) 4.9.82 #6 Sat Apr 7 13:45:01 BST 2018 x86_64 GNU/Linux < 1564447573 954575 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :well, I might be wrong, it's been forever since I played with uml < 1564447589 333448 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :maybe it does use ptrace for syscall emulation < 1564447594 907740 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :i know it uses it for some weird pagetable manipulation stuff < 1564447605 535502 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :maybe there's some interface other than ptrace < 1564447617 175673 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I mean WSL 1, yes. < 1564447668 864436 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric < 1564447934 928722 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :shachaf: ham radio : communication :: esoprogramming : programming < 1564447935 398841 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :? < 1564447946 889056 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :no, I don't think so < 1564447958 891356 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :https://old.reddit.com/r/amateurradio/comments/8lpk45/moon/dzhpm4k/ "the military spent some time and money on this Back In The Old Days, but they stopped doing it because it's dumb as dog shit and horrifically inefficient, which means it is absolutely irresistible for amateur radio operators." < 1564447959 561535 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :but maybe I'm taking metaphors too seriously < 1564449526 984211 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :kmc: Update: Now "/lib64/ld-linux-x86-64.so.2 ./out.a" runs successfully but just running the program fails. < 1564449531 446750 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :huh < 1564449588 312163 :int-e!~noone@int-e.eu PRIVMSG #esoteric :hmm, "out.a" < 1564449619 667044 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I previously called it "out" but that was either too confusing or not confusing enough. < 1564449636 587595 :int-e!~noone@int-e.eu PRIVMSG #esoteric :out.exe ;-) < 1564449659 334125 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :why not call it a.out < 1564449695 271412 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It's not an a.out file. < 1564449703 738413 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I guess, if I called it a.out, it would be an a.out file. < 1564450593 318682 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I built a debug musl loader and it's more helpful. < 1564450787 899103 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I have plenty of ELF files called a.out. < 1564450813 96411 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :shachaf: does it also crash? < 1564451031 77595 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It's already crashed in several different ways. < 1564451057 305197 :int-e!~noone@int-e.eu PRIVMSG #esoteric :does the kernel say anything about it? < 1564451075 18932 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It says things like "segfault at 8" < 1564451086 739294 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :fun < 1564451156 259021 :int-e!~noone@int-e.eu PRIVMSG #esoteric :So, maybe some symbol didn't get resolved (relocated) properly :) < 1564451168 675165 :int-e!~noone@int-e.eu PRIVMSG #esoteric :ACTION is so smart. < 1564451265 352066 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I do wonder how hard it would be to transplant the kernel code into user spaces so it could be traced... < 1564452223 630168 :doesthiswork!~doesthisw@98.125.182.9 JOIN :#esoteric < 1564452296 567890 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :int-e: you can emulate a whole virtual machine and debug the kernel that way < 1564453226 72380 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, my PT_PHDR header was wrong, that's why. < 1564453308 437156 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :what's that one < 1564453557 272219 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It tells the dynamic linker where to find the segment headers. < 1564453620 835021 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :oh < 1564453624 564049 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :that sounds pretty important < 1564454177 835367 :Sgeo!~Sgeo@ool-18b98455.dyn.optonline.net QUIT :Ping timeout: 258 seconds < 1564454503 946740 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu QUIT :Quit: leaving < 1564454510 461581 :Sgeo!~Sgeo@ool-18b98455.dyn.optonline.net JOIN :#esoteric < 1564455000 433802 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I guess? < 1564455025 169249 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It seems kind of silly because it's the first segment itself. < 1564455036 894433 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Well, some segment header, maybe not the first. < 1564460410 701815 :int-e!~noone@int-e.eu PRIVMSG #esoteric :it tells tyhe kernel what to map into memory in the first place < 1564460411 355594 :FreeFull!~freefull@defocus/sausage-lover QUIT : < 1564460448 573605 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(which /may/ explain the difference between executing the thing and asking ld.so to load it for you...) < 1564460479 378302 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(all AFAIUI, which isn't very far.) < 1564460554 309992 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :int-e: No, those are the LOAD segments. < 1564460589 776416 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Someone posted this method for 2-out-of-3 secret sharing with xor: https://github.com/wybiral/tshare/blob/master/tshare.go < 1564460602 502060 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I feel like there should be a simpler way than that. < 1564460728 648388 :doesthiswork!~doesthisw@98.125.182.9 QUIT :Ping timeout: 268 seconds < 1564460823 713436 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Hmm, https://eprint.iacr.org/2008/409.pdf < 1564461013 396374 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Maybe not. < 1564462017 791154 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What's the simplest possible 2-of-3 sharing scheme? Say for sharing 1 bit. < 1564462125 301201 :int-e!~noone@int-e.eu PRIVMSG #esoteric :The natural thing to my mind is interpolating a linear polynomial over GF(2^2). < 1564462286 840321 :int-e!~noone@int-e.eu PRIVMSG #esoteric :But it ends up being more complicated than what you get if you mask part of the messages: http://paste.debian.net/1093525/ < 1564462365 285581 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Say the bit is b (0 or 1) and we flip a 3-sided coin to a random value r (0 or 1 or 2). We give person p the value (b + r + p) % 3 < 1564462378 504054 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Wait, that doesn't even let you recover the message, what am I saying. < 1564462402 744925 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I was thinking of a different scheme and I obviously simplified it too much. < 1564462675 868865 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Ah, of course working modulo 3 works. Distribute r, m+r, 2m+r to the parties. < 1564462712 804511 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(m is the secret message to be shared; r is random modulo 3) < 1564462763 746033 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, that's better than the scheme I wrote out. < 1564462780 655257 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :(I mean, the working scheme I wrote in a text file here, not the one I wrote above which was nonsense.) < 1564462843 119822 :int-e!~noone@int-e.eu PRIVMSG #esoteric :this is dual to the polynomial interpolation (the message is in the linear term now, not the constant term). < 1564463670 124606 :int-e!~noone@int-e.eu PRIVMSG #esoteric :shachaf: http://paste.debian.net/1093526/ ... so this can be thought of as polynomial interpolation over GF(2^2) :-) < 1564463731 13532 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Neat. < 1564464194 333194 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Hah I'm missing a ' at the end. < 1564464702 557000 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :i,i but what's x'? < 1564464916 868174 :int-e!~noone@int-e.eu PRIVMSG #esoteric :x comes from the representation of GF(2^2). < 1564464956 368534 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(polynomials in x over GF(2) modulo x^2+x+1) < 1564464991 329182 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That's x, not x' < 1564465074 195090 :int-e!~noone@int-e.eu PRIVMSG #esoteric :meh < 1564465096 545266 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I see what you did there. I don't approve. I should've written "near the end". < 1564470821 253744 :cpressey!~cpressey@5.133.242.4 JOIN :#esoteric > 1564471526 664667 PRIVMSG #esoteric :14[[07Talk:An Odd Rewriting System14]]4 10 02https://esolangs.org/w/index.php?diff=64792&oldid=64778 5* 03Chris Pressey 5* (+361) 10I admit defeat < 1564471868 815001 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Design for a pathological language, take 3: Fix an enumeration Tn of TMs and an enumeration of sentences Sn in Presburger Arithmetic. Input is . Check if Sn is valid (V) or invalid (I). If it matches 2nd element of pair, simulate Tn, else nop. < 1564471936 612242 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :There's still a problem: you want the two enumerations to be "different enough" from each other, but how do you guarantee that? < 1564472008 626411 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Maybe every 100th n there's an instance of PresA that's easy, and a TM that's useful. < 1564472120 423415 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :But I guess the bigger question is: if I'm so bad at math, why do I even try to do it? < 1564472485 490195 :Frater_EST!~adrianbib@wsip-68-15-198-210.ok.ok.cox.net JOIN :#esoteric < 1564472494 355985 :Frater_EST!~adrianbib@wsip-68-15-198-210.ok.ok.cox.net PART :#esoteric < 1564472942 572865 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I'm bad at software too, because to be good at software, you need to be charismatic and live in California. < 1564473698 979180 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 248 seconds < 1564473775 587504 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric < 1564473891 849330 :rodgort!~rodgort@static.38.6.217.95.clients.your-server.de QUIT :Quit: Leaving < 1564474200 879991 :rodgort!~rodgort@static.38.6.217.95.clients.your-server.de JOIN :#esoteric > 1564474716 142589 PRIVMSG #esoteric :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=64793&oldid=64783 5* 03PCC 5* (+99) 10 < 1564474836 608357 :heroux!sandroco@gateway/shell/insomnia247/x-igrwvuapzenxmbay QUIT :Ping timeout: 272 seconds < 1564475933 588104 :b_jonas!~x@catv-176-63-24-71.catv.broadband.hu JOIN :#esoteric < 1564475957 491685 :b_jonas!~x@catv-176-63-24-71.catv.broadband.hu PRIVMSG #esoteric :shachaf: for secret sharing, see David Madore's program with which he has unknowingly won the IOCCC: ftp://ftp.madore.org/pub/madore/misc/shsecret.c > 1564476161 452336 PRIVMSG #esoteric :14[[07What Mains Numbers?14]]4 N10 02https://esolangs.org/w/index.php?oldid=64794 5* 03PCC 5* (+682) 10what is What Mains Numbers and how to can you program with it? < 1564476186 227347 :user24!~user24@p4FCA30BF.dip0.t-ipconnect.de JOIN :#esoteric > 1564476387 187202 PRIVMSG #esoteric :14[[07Language list14]]4 10 02https://esolangs.org/w/index.php?diff=64795&oldid=64785 5* 03PCC 5* (+26) 10/* W */ < 1564478492 230248 :arseniiv!~arseniiv@136.169.210.134 JOIN :#esoteric < 1564478969 860157 :b_jonas!~x@catv-176-63-24-71.catv.broadband.hu QUIT :Quit: leaving < 1564479272 912297 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Apparently, version 1.0 of the Haskell Report was published on the first of April 1990 < 1564479282 218716 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Maybe it's been an elaborate April Fools' joke that got out of hand < 1564480478 602153 :shachaf!~shachaf@unaffiliated/shachaf QUIT :Ping timeout: 245 seconds < 1564480960 530606 :shachaf!~shachaf@unaffiliated/shachaf JOIN :#esoteric < 1564482997 254904 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 JOIN :#esoteric < 1564483027 382062 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :Taneb: it certainly got out of hand, but I think it wasn't a joke < 1564483203 787512 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :It was an April Fool's Serious < 1564483219 720581 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Like GMail < 1564483243 948122 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :hmm < 1564483263 509584 :heroux!sandroco@gateway/shell/insomnia247/x-kvxckugusmtmacpz JOIN :#esoteric < 1564484222 313212 :sebbu!~sebbu@unaffiliated/sebbu QUIT :Quit: reboot < 1564485588 385879 :user24!~user24@p4FCA30BF.dip0.t-ipconnect.de QUIT :Quit: Leaving < 1564485834 198329 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric < 1564485842 498611 :oklopol!~androirc@91-159-237-4.elisa-laajakaista.fi JOIN :#esoteric < 1564485894 883763 :FreeFull!~freefull@defocus/sausage-lover QUIT :Client Quit < 1564485959 289580 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :$ ldd out.a statically linked < 1564485968 574555 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :$ file out.a < 1564485982 103353 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :out.a: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, not stripped < 1564486054 508989 :int-e!~noone@int-e.eu PRIVMSG #esoteric :so what does ldd do? collect the shared objects linked in and spout that message if it comes up with nothing? < 1564486059 991906 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :shachaf: try objdump -x < 1564486088 447345 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'm not sure what ldd does. < 1564486132 249279 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric < 1564486153 547413 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :whoa, I didn't know about pldd < 1564486157 639303 :int-e!~noone@int-e.eu PRIVMSG #esoteric :"ldd invokes the standard dynamic linker with the LD_TRACE_LOADED_OBJECTS environment variable set to 1." < 1564486163 847314 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :note that objdump is a cross-utility, it can read the executables of any platform on any platform < 1564486221 512404 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :...I also didn't know that ldd was a shell script. < 1564486243 156672 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Or that it used that mechanism. < 1564486253 794683 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Only platforms it knows about. < 1564486262 541110 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :huh, didn't ldd use to use a more esoteric interface to communicate with the dynamic linker, where instead of an env-var, it invoked the program with argc being zero? < 1564486271 835638 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :objdump won't tell me anything I don't already know, since I generated this ELF file myself byte by byte. < 1564486299 22054 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :oh < 1564486301 546528 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I mean, it won't tell me anything about my program. < 1564486318 112390 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :well, it could tell you something if you don't fully understand how the ELF format works < 1564486319 158397 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The idea was to learn what wasn't compliant about it. < 1564486363 742751 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Man, using ld.so totally messes up my nice strace output. < 1564486371 595852 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :like if you made a mistake or something < 1564486382 586302 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`` strace -fo tmp/OUT /bin/true < 1564486383 458819 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :No output. < 1564486420 535433 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`url tmp/OUT < 1564486421 320436 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :https://hack.esolangs.org/tmp/OUT < 1564486439 609157 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What! That's a lot nicer than I get on my system. < 1564486465 814407 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :$ strace /bin/true |& grep 'ld\.so\.nohwcap' | wc -l < 1564486465 991103 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :5 < 1564486712 954214 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :are they both x86_64? < 1564486759 370428 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Mine is. < 1564486773 327110 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :$ strace /bin/true |& wc -l < 1564486773 466237 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :60 < 1564486794 391232 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Anyway I guess I should try calling into libc and then ldd will probably call it dynamic. < 1564486816 328351 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But for that I'd need a bunch of things like a PLT and real relocations or something. < 1564486828 908247 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :My "assembler" has very primitve fixups for local jumps but that's it. < 1564486856 98853 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :``` objdump -x /bin/true # x86_64 here too < 1564486856 860195 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :​ \ /bin/true: file format elf64-x86-64 \ /bin/true \ architecture: i386:x86-64, flags 0x00000150: \ HAS_SYMS, DYNAMIC, D_PAGED \ start address 0x0000000000001670 \ \ Program Header: \ PHDR off 0x0000000000000040 vaddr 0x0000000000000040 paddr 0x0000000000000040 align 2**3 \ filesz 0x00000000000001f8 memsz 0x00000000000001f8 flags r-x \ INTERP off 0x0000000000000238 vaddr 0x0000000000000238 paddr 0x0000000000000238 align 2**0 \ < 1564486927 32022 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Man, you need a hash table and GOT and probably a GNU hash table and all sorts of things. < 1564486983 311989 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :shachaf: maybe they differ in /proc settings about address randomizatio or something? < 1564486984 590465 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, running ld.so directly tells me what's wrong: < 1564486991 132608 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :uh, sysctl knobs < 1564487004 327808 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :"error while loading shared libraries: [...]: ELF load command address/offset not properly aligned" < 1564487024 751201 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That's a very legitimate complaint, ld.so. < 1564487091 608516 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, no, that's what it says on the *statically linked* file. < 1564487366 661394 :Sgeo!~Sgeo@ool-18b98455.dyn.optonline.net QUIT :Read error: Connection reset by peer < 1564487391 319765 :Sgeo!~Sgeo@ool-18b98455.dyn.optonline.net JOIN :#esoteric < 1564487568 746050 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, what do you know, it's not properly aligned. < 1564487569 27083 :int-e!~noone@int-e.eu PRIVMSG #esoteric :shachaf: do you have an LD_LIBRARY_PATH set? I get strace /bin/true 2>&1 | wc -l => 73 and LD_LIBRARY_PATH= strace /bin/true 2>&1 | wc -l => 25... < 1564487680 299820 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh! < 1564487690 544525 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I have an LD_PRELOAD, courtesy of Ubuntu. < 1564487693 412466 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :oh yeah, and unset LD_PRELOAD too < 1564487706 876063 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Because Ubuntu is ridiculous in many ways. < 1564487716 761759 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I've probably mentioned how bad this LD_PRELOAD is before. < 1564487718 947200 :int-e!~noone@int-e.eu PRIVMSG #esoteric :really, what does Ubuntu deam important enough to LD_PRELOAD? < 1564487725 565068 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I missed it. < 1564487730 3384 :int-e!~noone@int-e.eu PRIVMSG #esoteric :*deem < 1564487745 922196 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I feel left out. I'm running Ubuntu and I don't have a LD_PRELOAD. < 1564487750 293044 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :So GTK or GNOME decided to switch to drawing decorations in the client and requesting borderless windows from the WM at one point. < 1564487751 985923 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :int-e: some graphics toolkit thing < 1564487787 731631 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :This only works particularly well if you're running GNOME. And there's no configuration to disable it. So if you don't run GNOME, they set you up with an LD_PRELOAD that forces GTK to use the old behavior. < 1564487813 24304 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Fancy. And awkward. < 1564487829 861042 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :This is definitely the most reasonable way to do things, rather than, say, patching the source to check an environment variable for using the old behavior. < 1564487846 778968 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Or patching the source in any other way. That's not Ubuntu's business. < 1564487878 786138 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Anyway I'm stuck with this LD_PRELOAD which constantly makes things fail in annoying ways. < 1564487909 629477 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :For example Nix programs run with a different library path so they can't find the GTK wrapper and they print an error message whenever I run them. < 1564488056 44670 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :This must be an Ubuntu 18.04 thing, I'm still running 16.04. What happens if you override LD_PRELOAD? < 1564488084 574559 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Maybe I don't actually want to know < 1564488102 70104 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Could this be specific to Unity (and hence primarily Ubuntu)? < 1564488146 940179 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I don't remember whether Ubuntu uses Unity or GNOME by default? < 1564488159 518704 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Unity, I thought. < 1564488162 228847 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But I think this is a GTK-wide or GNOME-wide decision. < 1564488171 257467 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :https://wiki.gnome.org/Initiatives/CSD < 1564488212 685853 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :cpressey: If I override LD_PRELOAD then most things work slightly better except for GTK programs which work quite a bit worse. < 1564488231 599681 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :shachaf: I see. < 1564488255 870804 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :what if you use wrappers for GTK programs that restore the LD_PRELOAD? < 1564488280 593475 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That's an option. < 1564488280 852344 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Ubuntu uses Gnome3 by default in recent versions < 1564488290 151216 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But who can know what programs are GTK programs? < 1564488300 567881 :int-e!~noone@int-e.eu PRIVMSG #esoteric :shachaf: Ah so it's a nasty surprise still in the making. < 1564488335 14023 :int-e!~noone@int-e.eu PRIVMSG #esoteric :firefox, thunderbird, emacs, inkscape, gucharmap... are my main gtk apps? < 1564488397 419258 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(Emacs has several frontends but I'm pretty sure the gtk one is what I'm using. I expect it's still gtk2 and won't be affected for a while yet.) < 1564488407 214494 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :shachaf: ask the package manager what programs it would uninstall if you decided to uninstall gtk < 1564488436 88674 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Also GTK is a mess in many other ways. < 1564488456 363963 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It does theming in a particular way, but if you run something called a settings-daemon then it starts doing theming in a completely different way. < 1564488459 591040 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :They can't even decide what the G stands for < 1564488476 289382 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :And half of your programs work well with a high-DPI screen one way, and half the other way. < 1564488486 842549 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Oh, gimp of course. Forgetting about that one is embarrassing. :) < 1564488520 101788 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I tried running a settings-daemon not long ago and it was so terrible that I stopped. < 1564488532 351337 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Despite it being the only way to make something work. < 1564488545 743956 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The year of Linux on the desktop is now. < 1564488577 197078 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But don't worry. As soon as I write this compiler I'll write some good GUI programs with it. < 1564488587 796356 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Sure you will. < 1564488619 930266 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Any day now! < 1564488641 666685 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :OK, there's no definite compiler planned. But I did write some UI programs using plain X11+OpenGL. < 1564488708 951315 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :They're surely way better than some kind of GTK nonsense that prints a bunch of dbind-warnings whenever you run it. < 1564488816 137766 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :At least it's not kbuilding any sycocas. < 1564488899 568920 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1564488964 308798 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric : "PEXT Parallel Extract Bits \ Copies bits from the source operand, based on a mask, and packs them into the low-order bits of the destination. Clears all bits in the destination to the left of the most-significant bit copied." < 1564488974 440858 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :… < 1564489002 560430 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :did they seriously add select from INTERCAL to the x86 instruction set? < 1564489019 951052 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although this version is 32-bit or 64-bit, rather than 16-bit or 32-bit < 1564489053 478895 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's part of the BMI2 instruction set, which my processor apparently supports < 1564489071 915779 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ACTION has an urge to feature-test this during C-INTERCAL's build process and use the asm instruction if supported < 1564489087 722284 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: yes. some call it sheep and goats. < 1564489104 575850 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: you can use the 32-bit one to emulate the 16-bit one though < 1564489130 583359 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yes < 1564489138 212927 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: you can probably use a gcc intrinsic and an MSVC instrinsic, with ifdefs, rather than an inline asm < 1564489146 974815 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :oh wait < 1564489155 344887 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :that's a compiler < 1564489160 416280 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :that doesn't apply then < 1564489177 37356 :heroux!sandroco@gateway/shell/insomnia247/x-kvxckugusmtmacpz QUIT :Read error: Connection reset by peer < 1564489193 35125 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :inline asm is more fun < 1564489197 501443 :heroux!sandroco@gateway/shell/insomnia247/x-jpcxqydtxpoprjui JOIN :#esoteric < 1564489225 277855 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Microsoft doesn't support inline assembly on x64. < 1564489307 838316 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that doesn't really matter, C-INTERCAL has a really robust autoconf/automake setup and this is the sort of random thing autoconf is designed for < 1564489347 340260 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Does autoconf even work on Windows? < 1564489374 299091 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :autoconf is awful and I hate its ./configure scripts. < 1564489399 938222 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Most of what it does isn't useful and hasn't been useful for decades, and it has real and significant costs. < 1564489401 4045 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it works about as well as sh and friends do < 1564489416 496152 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :fwiw, I agree with you about autoconf solving entirely the wrong problem < 1564489428 53898 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but for C-INTERCAL in particular this felt like an upside rather than a downside < 1564489431 571825 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :If they cared, autoconf people could at least make the configure scripts much faster, but I don't imagine they do, or maybe there just are no autoconf people. < 1564489437 988185 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it is not the most serious of projects < 1564489455 213522 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Sure, for C-INTERCAL you can get an exception. < 1564489473 320122 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Though I feel like autoconf isn't even the enjoyable kind of esocomplexity. < 1564489480 36631 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It's just nonsense complexity that makes things bad. < 1564489514 248356 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: https://docs.microsoft.com/en-us/cpp/intrinsics/x64-amd64-intrinsics-list?view=vs-2019 suggests that _pext_u64 is the intel-standard intrinsic, though I'll have to check that in the intel architecture manual < 1564489540 929630 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :if that's right, then that will work the same on gcc and msvc, because gcc has headers implementing all that stuff based on gcc builtins < 1564489541 908832 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :tbh I'm not sure if C-INTERCAL even compiles on Windows < 1564489548 36526 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I got it compiling on /DOS/ once but that's different < 1564489548 856866 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :shachaf: https://github.com/GregorR/autoconf-lean < 1564489572 122119 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :By a person who used to hang out here frequently once < 1564489610 463524 :j-bot!eldis4@firefly.nu QUIT :Ping timeout: 244 seconds < 1564489622 294960 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :yeah, the intel architecture reference confirms that _pext_u32 and _pext_u64 are the functions corresponding to the PEXT instruction < 1564489641 798820 :int-e!~noone@int-e.eu PRIVMSG #esoteric :cpressey: He still turns up once every blue moon. > 1564489643 59991 PRIVMSG #esoteric :14[[07Language list14]]4 10 02https://esolangs.org/w/index.php?diff=64796&oldid=64795 5* 03Hanzlu 5* (+10) 10 < 1564489654 385395 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :it's probably still worth to test for this in the autoconf, but it should work < 1564489701 798797 :int-e!~noone@int-e.eu PRIVMSG #esoteric :cpressey: and of course umlbox is still actively used < 1564489711 716230 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :the gcc headers even define these so that they emulate the same operation even if you compile to older instruction sets or non-x86 cpu < 1564489720 985442 :int-e!~noone@int-e.eu PRIVMSG #esoteric :and hackbot < 1564489800 612991 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ugh, is it correct to write this instruction as asm or as machine code? < 1564489816 376065 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I guess it has to be asm so that gcc can participate in register allocation < 1564489864 222609 :int-e!~noone@int-e.eu PRIVMSG #esoteric :That's certainly the preferable way, if you want to shun the compiler intrinsic. < 1564489885 753635 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It's possible to prefer it, but not mandatory. < 1564489939 376322 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yes, but this is INTERCAL, so I have to give at least passing thought to the idea that writing it as raw bytes would mean you didn't have to worry about what syntax the assembler used < 1564489960 530296 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wob_jonas: what header files are those even in? < 1564489976 262380 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :tbh checking for inline asm support in autoconf is probably easier than checking for a specific header file < 1564490010 410238 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: look up the header file name and the type of the function at https://docs.microsoft.com/en-us/cpp/intrinsics/x64-amd64-intrinsics-list?view=vs-2019 < 1564490023 121553 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric : < 1564490045 263766 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, neat, seems like both gcc and clang support it < 1564490062 69460 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that'd clearly be the better way to do things, which gives a reason to avoid it < 1564490126 405001 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: yes, this happens to most of the new x86 instructions; it's only old instructions BSF and BSR that fall through the cracks and have like three different sets of compiler intrinsics that you have to ifdef between, because neither msvc supports the gcc builtins nor backwards < 1564490164 206128 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I contributed the parts of http://software.schmorp.de/pkg/libecb.html where it can use the MSVC wrappers for BSF and BSR, which is why I know < 1564490175 875812 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :is fused multiply-add broken the same way? it's the instruction that's different between Intel and AMD due to a lack of coordination < 1564490217 78619 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :you should note that even though msvc and gcc both support this, the semantics differ: on msvc, the intrinsic will just emit that instruction even if you're compiling for an older cpu, < 1564490266 118315 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :for gcc it emits something that gives the same computation result as that instruction would perform, which for such new instructions won't actually call that instruction, unless you're explicitly compiling with a high -march < 1564490289 300805 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I don't know, I don't follow how the fused multiply-add and all that neural network nonsense worked, sorry < 1564490395 790425 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wob_jonas: it's a silly history < 1564490408 417297 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :AMD and Intel came out with incompatible implementations of the same instruction > 1564490421 951779 PRIVMSG #esoteric :14[[07Special:Log/newusers14]]4 create10 02 5* 03RetroBug 5* 10New user account < 1564490427 289367 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :then both dropped their own version of it and implemetend the other's, so they're still incompatible but in the other direction > 1564490556 206729 PRIVMSG #esoteric :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=64797&oldid=64793 5* 03RetroBug 5* (+68) 10 < 1564490585 608164 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :One fun fact about ELF is that the ELF 64 standard says hash table entries are 64 bits, but most implementations use 32 bits. < 1564490602 762568 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think that means the standard is wrong rather than the implementations. < 1564490858 364097 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, I suspect this inline asm version may actually be substantially faster than what was there before; performance improvements are great! < 1564490862 597494 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :now, I wonder how best to do mingles < 1564490889 363292 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :AVX and friends have mingle instructions, but sadly they only mingle at the byte level < 1564490940 768839 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What's mingle? < 1564491071 592698 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: that's what the opposite instruction PDEP is for. if you have PEXT, you also have PDEP. < 1564491100 45809 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: alternates bits in two operands to form a combined operand of twice the width < 1564491108 315330 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wob_jonas: right, two PDEPs and an OR would do it < 1564491199 176911 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: but intercal code often uses mingle followed by an intercal bitwise followed by selecting the odd or even bits, which you can optimize to just a bitwise op < 1564491217 265247 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :or a bitwise op and a shift < 1564491243 507033 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yes, C-INTERCAL does that optimisation already < 1564491287 797544 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I mentioned at some point that I think intercal code could use that redundant representation of integers that's base 2 but digits go from -2 to 1, because you can do arithmetic on that representation with the intercal ops faster < 1564491309 135468 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :no wait < 1564491314 388854 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :the digits go from -1 to 1 < 1564491319 914636 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :inclusive < 1564491333 216985 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yes but it's way harder to store in memory < 1564491385 300101 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I feel like there are very limited uses for inline assembly nowadays. < 1564491393 775633 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Almost everything is covered by either top-level assembly or intrinsics. < 1564491413 53257 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :So Microsoft's decision is perhaps reasonable. < 1564491423 789089 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What are uses for inline assembly? < 1564491493 197160 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: out-optimising the compiler is one thing < 1564491505 609719 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :accessing some specific instructions < 1564491529 263480 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: no it's not. you just store it as two integers, and they represent their difference < 1564491537 155419 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :hmm wait < 1564491539 342645 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I'm confusing this up < 1564491539 565262 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :like rdrand or rdtsc or... < 1564491540 937763 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this morning, I was curious about the following problem: suppose you have a function that generates a sequence of ints and can't be parallelised < 1564491554 162352 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I'll have to clear this up at some point, but now I don't know how they work < 1564491555 786821 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :what's the fastest way to store the generated ints into memory, assuming that there are too many to fit into the L2 cache? < 1564491584 202342 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But at what point do you need to out-optimize the compiler within a function? < 1564491620 337157 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think in most such cases you end up wanting to write the whole function in assembly. < 1564491620 521683 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :gcc's and clang's approaches were utterly different, but very comparaible in speed; I tried a few other things on my own, and eventually found one that was slightly but consistently faster < 1564491626 718924 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Specific instructions sounds like what intrinsics are for. < 1564491648 656175 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :@time < 1564491651 497197 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Local time for shachaf is Tue Jul 30 06:00:49 2019 < 1564491652 564834 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Time to go to sleep. < 1564491665 881355 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: well, in my case, the loop was still written in C < 1564491796 274147 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :funnily enough, I decided to use a repeated rotate-left as a standin for the "function that generates a sequence of ints and can't be parallelised" (yes, I know you can parallelise that in practice) < 1564491826 559216 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and the compiler didn't recognise it, so I ended up writing the "add %0, %0\n\tadc $0, %0" manually < 1564492085 633383 :sebbu!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1564492125 213343 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :actually my experience is that even modern compilers are fairly bad at micro-optimisation, they're just good at knowing about more long-range optimisations that humans don't often think of > 1564492200 290114 PRIVMSG #esoteric :14[[07ACL14]]4 10 02https://esolangs.org/w/index.php?diff=64798&oldid=64789 5* 03Hanzlu 5* (+204) 10 > 1564492320 769384 PRIVMSG #esoteric :14[[07ACL14]]4 10 02https://esolangs.org/w/index.php?diff=64799&oldid=64798 5* 03Hanzlu 5* (-2) 10 > 1564492555 810332 PRIVMSG #esoteric :14[[07What Mains Numbers?14]]4 M10 02https://esolangs.org/w/index.php?diff=64800&oldid=64794 5* 03A 5* (+166) 102019 esolang > 1564492646 334469 PRIVMSG #esoteric :14[[07What Mains Numbers?14]]4 M10 02https://esolangs.org/w/index.php?diff=64801&oldid=64800 5* 03A 5* (+18) 10No < 1564492847 581803 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :OK, C-INTERCAL repo updated with the use of inline asm for PEXT < 1564492893 633554 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :that was quick < 1564492910 245843 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :does it also do PDEP for mingle? < 1564492940 116249 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :not yet < 1564492947 309696 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :our exiting mingle is fairly optimised as it is < 1564492979 318425 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ok > 1564493006 99887 PRIVMSG #esoteric :14[[07What Mains Numbers?14]]4 M10 02https://esolangs.org/w/index.php?diff=64802&oldid=64801 5* 03A 5* (+159) 10 < 1564493009 232451 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that said, it's still a /lot/ of instructions < 1564493068 800272 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, I wonder how you ask gcc to pick an arbitrary temporary for you < 1564493077 545542 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: you know that Warren's "Hacker Delight" talks about the mingling (shuffling) and selecting, right? I don't recall what it says, but it definitely talks about them. > 1564493082 61 PRIVMSG #esoteric :14[[07What Mains Numbers?14]]4 M10 02https://esolangs.org/w/index.php?diff=64803&oldid=64802 5* 03A 5* (-22) 10 < 1564493083 496801 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :maybe just say "register int temp;" and assign to it without reading it < 1564493116 691653 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: I don't think you even need "register" if it's arbitrary < 1564493129 920129 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oh, duh, you just do it one instruction at a time < 1564493155 718620 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wob_jonas: well, it has to actually /be/ a register, although gcc's =r hint is sufficient to teach it about that < 1564493174 525104 :j-bot!eldis4@firefly.nu JOIN :#esoteric < 1564493183 972197 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :make the asm clobber it? < 1564493189 651560 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :rather than write into it < 1564493203 858846 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :as in, fourth argument or something < 1564493205 46577 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :clobbers have to be fixed in the source code, though > 1564493219 143578 PRIVMSG #esoteric :14[[07What Mains Numbers?14]]4 10 02https://esolangs.org/w/index.php?diff=64804&oldid=64803 5* 03A 5* (+133) 10 < 1564493221 990343 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :hmm < 1564493223 828610 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think the correct thing to do is to just make the temporary visible to gcc explicitly so that it can do SSA and friends on it < 1564493226 278072 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and spills, and the like > 1564493316 936703 PRIVMSG #esoteric :14[[07What Mains Numbers?14]]4 M10 02https://esolangs.org/w/index.php?diff=64805&oldid=64804 5* 03A 5* (-3) 10 > 1564493431 270542 PRIVMSG #esoteric :14[[07What Mains Numbers?14]]4 M10 02https://esolangs.org/w/index.php?diff=64806&oldid=64805 5* 03A 5* (+19) 10 < 1564493432 576693 :oklopol!~androirc@91-159-237-4.elisa-laajakaista.fi PRIVMSG #esoteric :ais: about compilers being bad about micro-optimization, https://m.youtube.com/watch?v=bSkpMdDe4g4 < 1564493509 28611 :oklopol!~androirc@91-159-237-4.elisa-laajakaista.fi PRIVMSG #esoteric :I found some of those impressive, sums compressed to formulas, multiplication turned differently into combinations of bit shifts etc. < 1564493527 225388 :oklopol!~androirc@91-159-237-4.elisa-laajakaista.fi PRIVMSG #esoteric :(probably very basic stuff, I'm no expert) < 1564493528 254304 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 QUIT :Ping timeout: 245 seconds < 1564493634 516929 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 JOIN :#esoteric > 1564493678 363928 PRIVMSG #esoteric :14[[07What Mains Numbers?14]]4 10 02https://esolangs.org/w/index.php?diff=64807&oldid=64806 5* 03A 5* (+22) 10 < 1564493747 910898 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :ais523: you should mark it "volatile volatile" < 1564493798 747776 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but it isn't volatile < 1564493840 999233 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oklopol: AMD's optimisation guide has a list of constants for which it's worth using alternative code to multiply by them < 1564493856 493978 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the smallest nonnegative integer for which IMUL is the fastest way to multiply by that integer is 22 < 1564493864 942496 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :for every smaller integer, there's some trick < 1564493878 125 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(disappointingly, they didn't even bother to list the tricks for multiplying by 0 or 1) < 1564493907 604224 :oklopol!~androirc@91-159-237-4.elisa-laajakaista.fi PRIVMSG #esoteric :ais: yes that sort of stuff, optimizing mul by constant to shifts, and also vice versa if you try to be clever :P < 1564493940 875367 :oklopol!~androirc@91-159-237-4.elisa-laajakaista.fi PRIVMSG #esoteric :And differently based on what you're compiling for < 1564494065 541191 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :optimising to shifts is boring, the /real/ trick on x86 is to use the AGU to do multiplications by unexpected numbers < 1564494107 42702 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :e.g. for multiply by 9, AMD suggests "lea reg1, [reg1 + reg1 * 8]" < 1564494108 793591 :oklopol!~androirc@91-159-237-4.elisa-laajakaista.fi PRIVMSG #esoteric :This is also shown on the vid iiuc < 1564494124 564604 :oklopol!~androirc@91-159-237-4.elisa-laajakaista.fi PRIVMSG #esoteric :Yes that's automatically done by optimizers < 1564494125 372303 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :btw, LEA is still a total hack :-) < 1564494135 694355 :oklopol!~androirc@91-159-237-4.elisa-laajakaista.fi PRIVMSG #esoteric :Yes < 1564494140 608963 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'd expect any compiler developer who cares about optimization to have read this document already > 1564494142 513274 PRIVMSG #esoteric :14[[07What Mains Numbers?14]]4 M10 02https://esolangs.org/w/index.php?diff=64808&oldid=64807 5* 03A 5* (+228) 10 > 1564494236 780120 PRIVMSG #esoteric :14[[07What Mains Numbers?14]]4 10 02https://esolangs.org/w/index.php?diff=64809&oldid=64808 5* 03A 5* (-34) 10An infinite loop in a language that only provides finite loops! < 1564494292 650161 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 QUIT :Ping timeout: 272 seconds > 1564494386 169460 PRIVMSG #esoteric :14[[07What Mains Numbers?14]]4 M10 02https://esolangs.org/w/index.php?diff=64810&oldid=64809 5* 03A 5* (+43) 10/* Infinite loop */ > 1564494612 955481 PRIVMSG #esoteric :14[[07What Mains Numbers?14]]4 10 02https://esolangs.org/w/index.php?diff=64811&oldid=64810 5* 03A 5* (+61) 10 < 1564494700 958955 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :OK, mingles are now also hardware-accelerated > 1564494848 502105 PRIVMSG #esoteric :14[[07What Mains Numbers?14]]4 10 02https://esolangs.org/w/index.php?diff=64812&oldid=64811 5* 03A 5* (-27) 10/* What Mains Numbers? */ > 1564494947 230373 PRIVMSG #esoteric :14[[07What Mains Numbers?14]]4 10 02https://esolangs.org/w/index.php?diff=64813&oldid=64812 5* 03Ais523 5* (+124) 10Mixed undo revisions 64809, 64810 by [[Special:Contributions/A|A]] ([[User talk:A|talk]]): not an infinite loop, it just allocates so much memory that it'll probably thrash nearly-indefinitely < 1564494965 269631 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :A should stop jumping to assumptions :-( < 1564494999 330316 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :btw, I had a great idea about how pointers should work < 1564495024 275136 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :instead of pointing to the start or end of an object, they should point to the middle (this means adding an extra bit so you can point into the middle of a byte) < 1564495053 855838 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this assumes that all your allocations are power-of-2-sized and aligned, otherwise there's no real gaini < 1564495068 196805 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 JOIN :#esoteric < 1564495070 556768 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :nice < 1564495086 296013 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :exactly in the middle of objects? hmm < 1564495097 98292 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but if you have that, then the middle-pointer uniquely specifies both the memory you're accessing and the width of it, which should make things like hardware bounds checking efficiently possible < 1564495135 104012 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :How does it store the width? < 1564495137 2418 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :what? < 1564495147 722106 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :on x86_64 you could make up for the extra bit at the end by dropping bit 62, it's never going to get used anyway < 1564495153 476860 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Taneb: count the number of trailing zeroes < 1564495179 437396 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :objects are power-of-2-sized and aligned, thus the middle is aligned with respect to half the object's size but misaligned with respect to the object's full size < 1564495211 891555 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :thus, you can use the alignment to determine the size, without ever having a pointer that's randomly more aligned than it should be < 1564495243 417387 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :that won't give exact bounds checks though, only bounds checks rounded up to a power of two or something close < 1564495257 710146 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well, you only allocate objects in power-of-2 sizes < 1564495265 264518 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(there are good reasons for a malloc to do that anyway) < 1564495273 329912 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :sure < 1564495274 968778 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the main issue is structs, I think < 1564495278 456049 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :binary buddy block allocator < 1564495304 324145 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :you can also do a fibonacci version of this alignment scheme, just to screw with people < 1564495317 696111 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Or you can add 3*2^k into the mix for fun. < 1564495326 527242 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the algorithm of "just allocate in the first available aligned address of the appropriate size" is great, when you use power-of-two sizes only it actually works < 1564495332 11005 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(That seems easier than fibonacci.) < 1564495344 209674 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(Also Fibonacci seems awful for alignment.) < 1564495345 417878 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :allocate only objects of fibonacci size, at addresses whose address in zeckendorf end with as many zeroes < 1564495354 884623 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yes, the fibonacci version is definitely in the screwing-with-people realm < 1564495367 57310 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :int-e: only on current cpus, which use 64-byte 64-aligned cache lines < 1564495390 660945 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I have a suspicion that 64-byte will be the correct size for a cache line for the foreseeable future < 1564495397 490437 :int-e!~noone@int-e.eu PRIVMSG #esoteric :When will we move to 128? Also, RAM rows enter the picture as well at some point. < 1564495439 123990 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :just like my tests indicate that 16 bytes is the correct size for a bulk write to memory (if you're getting the data as individual ints rather than a bulk read) < 1564495473 933793 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :int-e: cache lines are weird, ideally you'd want them to be /smaller/, the only reason to have them that large is to reduce the amount of bookkeeping you have to do < 1564495502 655221 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :a larger cache line would mean that you had so many of the things that you could afford to often waste data space in the L1 cache, but were very tight on bookkeeping cache < 1564495510 48992 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which seems implausible with modern processor designs < 1564495539 646447 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I guess maybe L2 would benefit from longer cache lines? < 1564495540 241741 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :int-e: in a hypothetical cpu that has 55 and 89 byte cache lines, aligned to fibonacci round addresses < 1564495546 601009 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but there are obvious reasons to want them the same size as L1 < 1564495554 818904 :oklopol!~androirc@91-159-237-4.elisa-laajakaista.fi QUIT :Ping timeout: 258 seconds < 1564495556 632710 :int-e!~noone@int-e.eu PRIVMSG #esoteric :wob_jonas: I'm not going there. < 1564495656 569390 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I wonder what the performance of a malloc that, for large objects, just maps a ridiculous amount of memory as MAP_NORESERVE and relies on the kernel to do the actual allocations when page faults happen < 1564495689 121885 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(the page faults were going to happen anyway, so there seems to be no particular reason to do anything at other times) < 1564495724 559525 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the huge advantage of this is that realloc becomes a nop, which helps make your write loops tighter < 1564495746 9097 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: yeah, but that doesn't work too well when you allocate a lot of small objects, which is a common case < 1564495754 965268 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :also you don't have infinite address space < 1564495758 37261 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you need a different algorithm for small objects, yes < 1564495765 362225 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so that they don't need a separate page < 1564495772 857603 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but you do pretty much have infinite address space < 1564495773 503729 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :right < 1564495786 316838 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :64 bits is a /lot/ < 1564495795 187083 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :you don't have 64 bits, < 1564495797 578418 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :but even without that < 1564495798 5531 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you can allocate 4 GiB for every object and still have 32 bits left < 1564495808 33536 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :the kernel has to do bookkeeping for what you allocate < 1564495822 374699 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :no, you don't have 64 bits of virtual address space < 1564495828 995246 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yes, sadly < 1564495835 989022 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's, what, 48 bits on modern processors? < 1564495842 9804 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :that's just what the architecture allows us to expand the address space without breaking binary compatibility < 1564495854 712767 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wait, 47 < 1564495870 738590 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :because half the virtual address space is reserved for kernel-internal use < 1564495882 960705 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :(and that too only if people don't start using high bits for tag bits when they have perfectly usable low bits instead, like they did in the 32-bit era and ended up with a prolog interpreter that couldn't use more than 256 megabytes of memory) < 1564495906 17697 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :even so, that's still 32767 self-reallocing objects, there are plenty of programs that are unlikely to use anywhere near that many < 1564495930 954483 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wob_jonas: they can't, x86_64 actually intentionally crashes if it sees a high bit used as a tag bit < 1564495933 137011 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I don't know how many bits we have now, they keep changing that every decade or so, I'm not following < 1564495942 190904 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: only if you don't mask it < 1564495947 1762 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :same as with the 32-bit things < 1564495959 396041 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :if you explicitly mask it off before using it as an address, it will work < 1564495978 390279 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :right, because the processor can't see how the value was derived < 1564495991 630180 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :but low bits is still easier, because if you know all the low bits, you can usually remove them by just using the right offset < 1564496015 477315 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :most people do get this right though, so it's not much of a worry < 1564496034 809812 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :that one prolog interpreter was more just an unfortunate exception < 1564496043 639018 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :anyway, one thing that's really annoying is that malloc() is not async-signal-safe < 1564496060 201883 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the first-power-of-2 technique can be implemented lock-free, I think < 1564496077 981311 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in which case it probably should be, so that people can allocate memory in their signal handlers without deadlocks < 1564496114 558338 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :yeah, you're right, 48 bits of virtual address space now, I think < 1564496232 68700 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: really? do you mean even without a small performance penalty for the common case of sane programs that don't try to alloacte from a signal handler? < 1564496270 49227 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :if you really want to allocate from a signal handler, then use a custom more expensive allocator for those parts of the code that may run from a signal handler < 1564496286 639863 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wob_jonas: well you need to use a lock or atomic /somewhere/ < 1564496309 452223 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :but I think it's usually better to just not do anything fancy from a signal handler < 1564496309 986294 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think there's debate about which is faster in the common, non-contended case, but I'm guessing they're much the same < 1564496338 389154 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and when there's no contention the algorithm runs quickly (unless there's /so much/ contention that the processor starts predicting the branch as taken, which is likely to be the least of your issues) < 1564496441 550121 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net JOIN :#esoteric < 1564496495 917458 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :Anyone know any good FPGAs? I need one for my esoteric computer. < 1564496570 697077 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in my experience, FPGA toolchains are really terrible < 1564496578 431145 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :`? rnoodle < 1564496579 483542 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :rnoodle? ¯\(°​_o)/¯ < 1564496580 529913 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :`? rnooodle < 1564496581 631202 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :rnoooodle? ¯\(°​_o)/¯ < 1564496584 866829 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :`? rnoooodle < 1564496585 898311 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :rnoooodle? ¯\(°​_o)/¯ < 1564496587 459331 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :`? rnooooodle < 1564496588 588771 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :rnooooodle? ¯\(°​_o)/¯ < 1564496589 586492 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :`? rnoooooodle < 1564496590 765148 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :rnoooooodle? ¯\(°​_o)/¯ < 1564496595 846672 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :`? rnooooooodle < 1564496595 871618 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :as for the FPGAs themselves, for the majority of tasks, either most FPGAs will be good enough or affordable FPGAs won't b e good enough < 1564496596 854363 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :rnooooooodle? ¯\(°​_o)/¯ < 1564496597 806333 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net QUIT :Remote host closed the connection < 1564496603 363715 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :`? rnodle < 1564496604 442008 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :rnodle? ¯\(°​_o)/¯ < 1564496607 859582 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so the main difficulty is finding a way to wire them up to your computer < 1564496658 701452 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :why? don't those FPGAs have IO devices built in? < 1564496724 549638 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net JOIN :#esoteric < 1564496750 523428 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :You need to do it in a field. < 1564496758 16931 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :They're field programmable, you see. < 1564496784 780127 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :If you happen to be in a forest, tough luck. < 1564496790 536005 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :I was thinking of using an Altera cyclone ii mini to use, but I heard that the Spartan series is good too < 1564496927 225602 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :One of the main problems is, how would I get it to display items on the screen? VHDL really doesn't make this any easier, as it's not be most consice of languages < 1564496992 715802 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net QUIT :Remote host closed the connection < 1564497112 390445 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :https://github.com/stacksmith/fpgasm < 1564497146 281857 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, so in a quick test, Linux was quite happy to allocate me 16 GiB of address space in one large mapping < 1564497178 289828 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :even though I don't have that much memory in physical or swap space or both combined < 1564497192 144052 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :well sure, many computers these days have 16 GB physical memory < 1564497208 980224 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and I could read/write random addresses in it without any obvious performance issues < 1564497276 803077 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :but won't the kernel still need to keep about 1/1000 the size of that virtual memory for administration? < 1564497282 668149 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this leads me to suspect that the most efficient way to deal with memory, if you don't care about getting segfaults for wild accesses, is to only ask the kernel for memory once in the lifetime of the program, and use writes to memory to allocate it and madvise to free it < 1564497298 578722 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wob_jonas: page caches have multiple levels nowadays < 1564497302 84522 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :unless you use large pages that is, but large pages would defeat the problem < 1564497315 438004 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: sure, but ... I don't know how that works in the kernel < 1564497317 302024 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :maybe < 1564497330 471280 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also I don't see how the same problem doesn't happen even if you allocate a bit at a time and use brk and mmap and whatever to request more as you need it < 1564497341 352744 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :err, "a small amount at a time", not a literal bit :-) < 1564497379 518638 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :sorry, I was trying to argue against the method you mentioned above, of allocating 4G for every large object < 1564497385 451559 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :does MADV_REMOVE work with anonymous mappings, I wonder? < 1564497396 39075 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wob_jonas: ah, I see < 1564497516 139784 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, I wonder if any memset implementations use madvise to zero memory? I'm guessing not, it'd be insane < 1564497525 253329 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but memset is the sort of function where insane optimisations can make sense < 1564497537 676571 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :dunno < 1564497550 690348 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(the idea would be to swap out the page backing the memory you're trying to zero for a freshly zeroed page) < 1564497570 120685 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I don't know whether Linux has a background memory zeroing daemon (or equivalent); I know Windows does < 1564497577 897438 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I don't think it would help much, in the long run, as long as you're using memset for memory you want to use later, because the kernel has to zero the page eventually < 1564497606 987760 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Windows has a supply of pre-zeroed physical memory pages that it hands out to applications, and zeroes pages in the background after they're unmapped < 1564497637 997309 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :yeah. I think linux has something like that too < 1564497720 289173 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :kswapd, apparently < 1564497738 807503 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it doesn't run constantly, only when the number of zeroed pages is low < 1564497747 113531 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if it gets very low the kernel foregrounds the page-zeroing task so that it never runs out < 1564497877 734096 :ais523!~ais523@unaffiliated/ais523 QUIT :Remote host closed the connection < 1564497890 530468 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1564498167 291106 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Should I learn LLVM assembly or should I not bother < 1564498249 137792 :oklopol!~androirc@85-76-162-9-nat.elisa-mobile.fi JOIN :#esoteric < 1564498276 193622 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 QUIT :Ping timeout: 246 seconds < 1564498296 575728 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :cpressey: that's up to you < 1564498380 915718 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'd say, only if you want to use it for something < 1564498394 163799 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :or if you're interested in SSA-based languages in general < 1564498413 506361 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's really a multiple-level language, though, it can express a lot of different levels of abstraction and is designed to compile into lower abstraction levels of itself < 1564498421 77838 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(this is a common property for compiler intermediate representations) < 1564498430 212415 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so really, "learning LLVM" is about learning a specific subset of it < 1564498508 39837 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :whatever you need for whatever it is you're doing < 1564498549 652946 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I have two compiler projects that became dead ends because I tried to generate C and it just got frustrating and boring and I abandoned them. < 1564498600 372623 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think generating C is generally easier than generating LLVM, also less platform-specific > 1564498609 968863 PRIVMSG #esoteric :14[[07ACL14]]4 10 02https://esolangs.org/w/index.php?diff=64814&oldid=64799 5* 03Hanzlu 5* (+1117) 10 < 1564498615 512349 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(LLVM is slightly platform-specific, enough so that you can't really generate "portable LLVM") < 1564498634 740778 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :OK, then "no" I guess < 1564498635 872153 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :perhaps WebAssembly would be an interesting target to use instead, that's fairly regular as ASMs go < 1564498660 395988 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I'll just leave them as dead ends < 1564498673 501980 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Bye. < 1564498675 4600 :cpressey!~cpressey@5.133.242.4 QUIT :Quit: WeeChat 1.4 < 1564498937 93885 :ais523!~ais523@unaffiliated/ais523 QUIT :Quit: quit < 1564499766 818499 :doesthiswork!~doesthisw@98.125.182.9 JOIN :#esoteric < 1564500030 123688 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 JOIN :#esoteric < 1564500083 585241 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I was in London for the weekend. It seems that the stores sell milk in both one liter size and a size slightly larger than one liter, the latter is apparently somewhat round in some non-metric measurement unit. < 1564500141 786521 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :Also they sell half liter and two liter bottles. I still find that strange. Half liter milk bags used to exist here, but only a very long time ago, and I've only ever seen ones larger than one liter abroad. < 1564500495 582439 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :I sometimes buy the half-litre bottles if I'm thirsty when I'm out and about < 1564501106 254316 :lldd_!~atrapado@unaffiliated/atrapado JOIN :#esoteric < 1564501335 407490 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :drinking milk as a beverage is weird to me < 1564501408 485504 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :It's weird to a lot of people < 1564501424 575855 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :kmc: is that because you live in a place where you can't easily buy fresh milk, only < 1564501460 357481 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :UHT milk? because fresh milk tastes much better, but I know it's not available everywhere < 1564501481 798438 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :But like, it's cheaper and healthier (here at least) than soft drinks < 1564501577 317472 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :...now I'm thirsty < 1564501690 672510 :FreeFull!~freefull@defocus/sausage-lover QUIT : < 1564501870 920064 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 QUIT :Remote host closed the connection < 1564502906 387071 :FireFly!znc@freenode/staff/firefly PRIVMSG #esoteric :we do 1l and 1.5l here < 1564502982 248329 :oklopol!~androirc@85-76-162-9-nat.elisa-mobile.fi PRIVMSG #esoteric :We have 1.75 < 1564503158 103220 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :UHT milk isn't common in the USA < 1564503173 48903 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :we mostly have regular pasteurized milk < 1564503177 906595 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :which needs to be refridgerated < 1564503202 447433 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :I bought some lemonade the other day, didn't notice it was unpasteurized... within less than a week the bottle had puffed up to almost a round cylinder < 1564503219 217258 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :I started unscrewing it in the sink and the cap came off with a bang < 1564503462 280904 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :probably the "slightly larger than one liter" was 2 imperial pints? < 1564503480 223270 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :it's great how the UK's non-metric unit isn't even the same as the US's non-metric unit of the same name < 1564503498 146042 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :2 imperial pints is a bit more than 1L but 2 US pints is a bit less than 1L < 1564503512 619467 :xkapastel!uid17782@gateway/web/irccloud.com/x-qtaiqicavfltyvgb JOIN :#esoteric < 1564503611 700756 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Someone once taught me a rhyme, "A litre of water is a pint and three quarter" < 1564503644 867310 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :I didn't realise the US pint was different < 1564503668 919438 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :that rhyme doesn't even rhyme very well < 1564503682 829306 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :a litre of wuarter < 1564503686 501677 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :It rhymes almost perfectly to me < 1564503703 682616 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :You must talk weirdly < 1564503712 684324 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :(or, like, have a rhotic accent) < 1564503955 436150 :Sgeo_!~Sgeo@ool-18b98455.dyn.optonline.net JOIN :#esoteric < 1564503966 422560 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :I like phonology < 1564504153 296502 :Sgeo!~Sgeo@ool-18b98455.dyn.optonline.net QUIT :Ping timeout: 245 seconds < 1564506396 905922 :adu!~ajr@pool-173-73-86-191.washdc.fios.verizon.net PRIVMSG #esoteric :I live in the US and I have no idea what a pint is < 1564506781 540146 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu JOIN :#esoteric < 1564508013 919552 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :kmc: yes, probably < 1564508028 689735 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :I didn't much pay attention right there, and I don't have the bottles or photos of them anymore < 1564508036 45879 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :mm < 1564508042 597587 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :wb_jonas < 1564508240 376332 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :still no IOCCC source codes < 1564508275 113677 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric ::( < 1564510572 750717 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :so the Giant says that the end of the sixth OotS book is in sight. and there will only be seven books. we must be two thirds ratio into the story by now. < 1564510598 578785 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :I presume the last book will be the thickest, because that's how these series usually go, but still. > 1564510738 878681 PRIVMSG #esoteric :14[[07ACL14]]4 10 02https://esolangs.org/w/index.php?diff=64815&oldid=64814 5* 03Hanzlu 5* (-178) 10 < 1564510877 51507 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :can you imagine living in a time when everyone knows OotS as an epic that is already complete, and we tell children about how we had to wait ten days (uphill both ways) for the next strip to appear, over and over again for each strip? < 1564511100 237398 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :although I guess we can already tell them about when Harry Potter wasn't yet complete < 1564511271 549492 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net JOIN :#esoteric < 1564511327 279755 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :Ubuntu came out with the 19.04 version < 1564511338 391362 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :I almost installed 18.04 < 1564511350 323287 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PART :#esoteric < 1564511409 677001 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :and #esoteric is logged way back so we can even prove it < 1564513129 935701 :lldd_!~atrapado@unaffiliated/atrapado QUIT :Quit: Leaving < 1564513768 153431 :arseniiv!~arseniiv@136.169.210.134 PRIVMSG #esoteric : although I guess we can already tell them about when Harry Potter wasn't yet complete => was it too published strip by strip? < 1564514113 689675 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :arseniiv: no, but we had to wait for the last three books < 1564515105 32334 :arseniiv!~arseniiv@136.169.210.134 PRIVMSG #esoteric :it would be quite interesting if Harry was originally a comic series < 1564515255 548966 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :dunno. that would make the books more expensive, I think, so it would get to fewer people < 1564515310 942044 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :the way they are, with books, I can have the complete story in seven books. in comics, I could only have slices. < 1564515352 414850 :arseniiv!~arseniiv@136.169.210.134 PRIVMSG #esoteric :b_jonas: agree < 1564515361 878218 :arseniiv!~arseniiv@136.169.210.134 PRIVMSG #esoteric :unfortunately < 1564515385 127201 :arseniiv!~arseniiv@136.169.210.134 PRIVMSG #esoteric :hm, there are some prose/comic hybrids out there, maybe it’s a good format < 1564515399 175706 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :illustrated books, yes < 1564515403 992500 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :they can be good < 1564515422 473888 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :I have Matilda by Roald Dahl on my bookshelf, but that one is short < 1564515471 144283 :arseniiv!~arseniiv@136.169.210.134 PRIVMSG #esoteric :oh, I didn’t know that’s illustrated originally (I only have seen a film) < 1564515490 947738 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :I also have some of the Kästner books < 1564515512 686052 :arseniiv!~arseniiv@136.169.210.134 PRIVMSG #esoteric :also, is it translated, I mean Matilda? < 1564515532 198550 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :there is a translation, and I've read it, but in this case, I have the original English version of Matilda on my shelf < 1564515541 69968 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :the Kästner books I only have in translation < 1564515553 62590 :arseniiv!~arseniiv@136.169.210.134 PRIVMSG #esoteric :thanks < 1564515572 806854 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :Matilda is one of the books I've met when I was very young, but only got the original more recently < 1564515667 430069 :arseniiv!~arseniiv@136.169.210.134 PRIVMSG #esoteric :BTW I don’t like very much how it ends, “and she didn’t need to use her telekinesis almost ever”, is it a tad boring < 1564515687 233954 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :no no, it ends by Matilda _losing_ her telekinesis < 1564515692 228641 :arseniiv!~arseniiv@136.169.210.134 PRIVMSG #esoteric :oh < 1564515696 42044 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :there's some speculation too on why < 1564515700 978540 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :but that's not even the important point < 1564515703 389609 :arseniiv!~arseniiv@136.169.210.134 PRIVMSG #esoteric :the movie guys lied to me < 1564515733 740425 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :the more important is that it ends by Matilda living happily ever after with her teacher Ms Honey in the house that she inherited, instead of with the parents who don't care much about her < 1564515766 84552 :arseniiv!~arseniiv@136.169.210.134 PRIVMSG #esoteric :I understand what is it she didn’t have is a loving family, yeah, I agree it’s greater, but still < 1564515882 756637 :arseniiv!~arseniiv@136.169.210.134 PRIVMSG #esoteric :it’s like there can only be one thing more important that all the others, and it doesn’t ring too true, even when I was a kid and saw the movie version the first time < 1564515907 363727 :arseniiv!~arseniiv@136.169.210.134 PRIVMSG #esoteric :anyway the story is good < 1564515951 163630 :arseniiv!~arseniiv@136.169.210.134 PRIVMSG #esoteric :and I can also say if Matilda is okay with no superpowers, then so am I :D < 1564515978 963903 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :why wouldn't she be okay? she didn't ask for them anyway, and she was never dependent on them < 1564516108 410721 :arseniiv!~arseniiv@136.169.210.134 PRIVMSG #esoteric :right < 1564516241 285826 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :@tell ais523 this new smb3 tas is even super cooler than last time thx < 1564516241 522991 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Consider it noted. < 1564516644 457123 :xkapastel!uid17782@gateway/web/irccloud.com/x-qtaiqicavfltyvgb QUIT :Quit: Connection closed for inactivity < 1564516993 752659 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric < 1564517016 665672 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 272 seconds < 1564517156 389232 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 NICK :Lord_of_Life < 1564523506 911234 :xkapastel!uid17782@gateway/web/irccloud.com/x-oxcbrfeijqeimtfw JOIN :#esoteric < 1564523858 405704 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :`? union < 1564523859 441839 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :An union is the opposite of an ion. < 1564523862 796529 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu PRIVMSG #esoteric :`q < 1564523863 410788 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :1288) (btw, "q = 1-p" should be the standard definition of q, IMO) < 1564527107 336455 :b_jonas!~x@catv-176-63-24-222.catv.broadband.hu QUIT :Quit: leaving < 1564528178 333035 :MDude!~MDude@76.5.108.106 QUIT :Ping timeout: 245 seconds > 1564529064 315135 PRIVMSG #esoteric :14[[07ACL14]]4 10 02https://esolangs.org/w/index.php?diff=64816&oldid=64815 5* 03Hanzlu 5* (+439) 10 > 1564529452 513435 PRIVMSG #esoteric :14[[07ACL14]]4 10 02https://esolangs.org/w/index.php?diff=64817&oldid=64816 5* 03Hanzlu 5* (+479) 10 < 1564529461 219730 :MDude!~MDude@76.5.108.106 JOIN :#esoteric > 1564529636 356386 PRIVMSG #esoteric :14[[07ACL14]]4 10 02https://esolangs.org/w/index.php?diff=64818&oldid=64817 5* 03Hanzlu 5* (+32) 10 > 1564530835 389158 PRIVMSG #esoteric :14[[07ACL14]]4 10 02https://esolangs.org/w/index.php?diff=64819&oldid=64818 5* 03Hanzlu 5* (+118) 10