< 1684542858 495942 :bgs!~bgs@212-85-160-171.dynamic.telemach.net JOIN #esolangs bgs :bgs > 1684543754 922127 PRIVMSG #esolangs :14[[07Esolang talk:Sandbox14]]4 10 02https://esolangs.org/w/index.php?diff=109336&oldid=109327 5* 03Ais523 5* (-58136) 10this page is not a sandbox it's for discussing the sandbox > 1684543814 193834 PRIVMSG #esolangs :14[[07Welcome To...14]]4 M10 02https://esolangs.org/w/index.php?diff=109337&oldid=96972 5* 03Ais523 5* (+21703) 10Reverted edits by [[Special:Contributions/Ais523|Ais523]] ([[User talk:Ais523|talk]]) to last revision by [[User:Page crapper from explain xkcd|Page crapper from explain xkcd]] > 1684543848 657199 PRIVMSG #esolangs :14[[07Welcome To...14]]4 10 02https://esolangs.org/w/index.php?diff=109338&oldid=109337 5* 03Ais523 5* (-21703) 10Undo revision 109337 by [[Special:Contributions/Ais523|Ais523]] ([[User talk:Ais523|talk]]) rv misclicked rollback button < 1684543877 791646 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :the thing about being able to undo vandalism in one click is that sometimes you misclick, and end up redoing vandalism in one click instead < 1684543888 582196 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :should be fixed now though < 1684544274 619854 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :What are some interesting esoteric computer architectures that exist as far as memory models/memory ordering sorts of things? < 1684544309 238066 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :The DEC alfalfa is well-known for being a bit ridiculous, with its split caches and probe queues and things. < 1684544335 478050 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :I think there's some nice example of a POWER thing without multicopy atomicity which behaves surprisingly. < 1684544343 756224 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :What are other fun examples? < 1684544644 247971 :bgs!~bgs@212-85-160-171.dynamic.telemach.net QUIT :Remote host closed the connection < 1684544658 958461 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :I don't know the details of how those ones are working, and cannot think of another examples at this time either < 1684544699 515258 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :x86-64 has some memory write instructions that are less atomic than usual < 1684544717 816567 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :…meaning that the sfence instruction actually has a use, even though it's normally implied < 1684544750 756409 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :I think they bypass the cache altogether and just write the cacheline to memory directly once its contents are known, so maybe they don't update the cache coherence mechanism either < 1684544789 488237 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :although I have the opposite problem with x86, I find it hard to remember precisely what guarantees it actually gives < 1684544850 384761 :int-e!~noone@int-e.eu PRIVMSG #esolangs :hmm is it because the answer changes every decade? < 1684544895 999201 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Yes, streaming stores are good, but I don't think they make x86 weirder than other architectures. < 1684544908 828929 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :ooh! GPUs have lock-step memory writes available, in which under certain circumstances multiple threads will all happen to start writing to memory at the exact same time, meaning you can get away without synchronization primitives even though it looks like they should really be required < 1684544954 759684 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :so, e.g., you can have writes from thread 1 and 2 appear as an atomic block to reads from threads 1025 and 1026 < 1684544961 930001 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Oh, that reminds me, I saw something about the Nvidia Grace/Hopper CPU/GPU memory architecture being a little bizarro. < 1684544976 100149 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :In the way they provide coherence across CPU and GPU. < 1684544982 882266 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :I tried to figure out what was going on with it but I couldn't find a clear explanation. < 1684545026 930313 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :now that I think about it, it's kind-of mindblowing to imagine an atomic operation being cooperatively carried out by multiple threads < 1684545065 266456 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Are these actual threads, running on different cores? < 1684545086 910404 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :I've done very little GPU programming but I think sometimes they refer to different SIMD lanes as "threads". < 1684545095 462185 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :"core" is hard to define when it comes to GPUs, it's internally somewhat SIMDy < 1684545171 727374 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :they have "blocks" which are logically like software threads, in that multiple different blocks can run concurrently and one block can run while another is suspended/blocked, but each block is made out of multiple threads < 1684545200 686516 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :and the low-level execution units handle multiple threads at the same time, but only those for which the IP is in the same position, and they don't handle a whole block at a time, just a portion of it < 1684545238 595336 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :so the data flow, arithimetic, register values, etc. are all unique to the thread, but the IP is shared even though the control flow isn't necessarily shared < 1684545293 97686 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :(you can write an if statement, but both the "then" branch and the "else" branch ends up running unless all the threads that are simultaneously executing make the same choice, and threads to which the current branch doesn't apply just wait for the IP to reach the point where they can continue to run) < 1684545329 954722 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :also I suspect that for branch-prediction reasons, even if all the threads do make the same choice, both branches end up running unless the amount of skipped code is very large, but I don't know that for certain < 1684545399 711228 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :anyway, because of this sort of thing, GPUs can work well even on problems that aren't embarrassingly parallel, but optimising for their actual execution model is weird and can be hard to get right < 1684545417 131108 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Are there any CPU architectures in common use that don't have coherent caches? < 1684545429 594303 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :I should say, that have incoherent caches. < 1684545458 623650 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :I think the least coherent caches have mostly died out at this point < 1684545492 120945 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :there's a commonly used RISC processor which has a release-bit and an acquire-bit on every instruction, which implies some amount of incoherence, but probably not very much < 1684545522 672095 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :err, every instruction that accesses memory < 1684545527 352170 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :also I forget which one < 1684545559 438530 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :acquire-release doesn't imply incoherence, does it? < 1684545566 715399 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Unless it's different from the usual meanings? < 1684545608 141805 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :I guess not, it could just act as a reordering barrier < 1684545623 69205 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :with the actual memory accesses always being coherent, but potentially reordered < 1684545667 32601 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :I think "reordering" is a misleading name for the ways that CPUs can behave with memory things. < 1684545673 555811 :wpa!~wpa@dynamic-046-114-105-061.46.114.pool.telefonica.de JOIN #esolangs WeepingAngel :wpa < 1684545680 424989 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :I meant reordering as in out-of-order execution with a reorder buffer < 1684545698 342883 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Oh, I see. < 1684545778 323310 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :I guess one issue with actually incoherent caches is how you make them coherent again in order to implement an atomic operation < 1684545866 333089 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :for incoherent writes, I guess you can just pick a write arbitrarily and set. in every cache, the value that was written by that write? from the other CPUs' points of view, it'll be as though the write arrived at that moment < 1684545889 955417 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :(this isn't sequentially consistent but works fine with acquire and release) < 1684545933 946001 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :or, hmm < 1684546019 276202 :ais523!~ais523@31.94.16.171 PRIVMSG #esolangs :it's too late for me to figure this out, I think – non-atomic memory behaviour is unintuitive enough that I have trouble working it out even when I'm properly awake < 1684546221 728683 :ais523!~ais523@31.94.16.171 QUIT :Quit: quit < 1684550029 165447 :int-e!~noone@int-e.eu PRIVMSG #esolangs :`? life < 1684550032 280864 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :​‘Life,’ said Marvin, ‘don't talk to me about life.’ < 1684553757 516130 :bgs!~bgs@212-85-160-171.dynamic.telemach.net JOIN #esolangs bgs :bgs < 1684560652 10944 :sam!~sam@lullcec.org QUIT :Quit: Lost terminal < 1684568173 520684 :wpa!~wpa@dynamic-046-114-105-061.46.114.pool.telefonica.de QUIT :Ping timeout: 268 seconds < 1684568254 586330 :wpa!~wpa@dynamic-046-114-111-093.46.114.pool.telefonica.de JOIN #esolangs WeepingAngel :wpa < 1684571141 293601 :river!river@tilde.team/user/river PRIVMSG #esolangs :https://www.youtube.com/watch?v=0aJ9dAOWKYk < 1684572002 910555 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User < 1684572528 628802 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Ping timeout: 240 seconds < 1684572587 44485 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord < 1684575649 386344 :Sgeo!~Sgeo@user/sgeo QUIT :Read error: Connection reset by peer < 1684576611 397323 :b_jonas!~x@89.134.29.97 PRIVMSG #esolangs :"memory write instructions that are less atomic than usual" => hmm, aren't all memory write instructions non-atomic if they need to cross a page boundary, only you don't notice that when working at C level because at C level writing words unaligned is already UB? < 1684576651 234318 :b_jonas!~x@89.134.29.97 PRIVMSG #esolangs :at instruction level, writing and especially reading unaligned is allowed and occasionally useful, though you do have to keep in mind that it comes with a penalty < 1684576703 674462 :b_jonas!~x@89.134.29.97 PRIVMSG #esolangs :and yes, there's also the new scatter and gather vector instructions that do multiple writes and reads resp in a way that's even more non-atomic in that it's not only non-atomic wrt other threads but also to interrupts < 1684576707 707432 :b_jonas!~x@89.134.29.97 PRIVMSG #esolangs :and faults < 1684576800 583058 :b_jonas!~x@89.134.29.97 PRIVMSG #esolangs :" hmm is it because the answer [x86 guarantees] changes every decade?" => it changed in an incompatible way exactly once I think, between 286 and 386, when 386 declared that you need a taken branch between writing and executing a self-modifying instruction < 1684577147 694293 :b_jonas!~x@89.134.29.97 PRIVMSG #esolangs :shachaf: oh don't worry, we now have powerful enoguh machines that we can just implement incoherence in very high level software if we need to. I think git can do it out of the box if you generate some sha-1 collisions, and their support for any checksum algorithm other than sha-1 is experimental. and my co-workers insist on storing lots of data not suitable for git in git repositories, though the sha-1 < 1684577153 697678 :b_jonas!~x@89.134.29.97 PRIVMSG #esolangs :collisions bother me less than that they have huge repositories and the git software makes it hard to partially clone them, unlike svn. < 1684577196 784777 :b_jonas!~x@89.134.29.97 PRIVMSG #esolangs :and lest you say that sha-1 collision is too much here, memory also only becomes incoherent when you have an address collision. < 1684577218 175392 :b_jonas!~x@89.134.29.97 PRIVMSG #esolangs :sure, memory addresses are shorter than sha-1 checksums, but still < 1684579441 529118 :wpa!~wpa@dynamic-046-114-111-093.46.114.pool.telefonica.de QUIT :Ping timeout: 240 seconds < 1684580136 558527 :[!~noisytoot@sourcehut/user/noisytoot QUIT :Quit: ZNC 1.8.2 - https://znc.in < 1684580327 139967 :Noisytoot!~noisytoot@sourcehut/user/noisytoot JOIN #esolangs Noisytoot :Ron > 1684581990 13268 PRIVMSG #esolangs :14[[07Listack14]]4 M10 02https://esolangs.org/w/index.php?diff=109339&oldid=107713 5* 03McChuck 5* (+174) 10/* Listack: A symmetric, stackless, stack-based, concatenative language */ < 1684584218 728508 :Noisytoot!~noisytoot@sourcehut/user/noisytoot QUIT :Quit: ZNC 1.8.2 - https://znc.in < 1684584403 664137 :Noisytoot!~noisytoot@sourcehut/user/noisytoot JOIN #esolangs Noisytoot :Ron < 1684585145 806807 :Noisytoot!~noisytoot@sourcehut/user/noisytoot QUIT :Ping timeout: 240 seconds < 1684585190 999296 :b_jonas!~x@89.134.29.97 PRIVMSG #esolangs :so I'm watching Technology Connections' video on CED https://www.youtube.com/playlist?list=PLv0jwu7G_DFVP0SGNlBiBtFVkV5LZ7SOU , and I realized something interesting. if you want to design a disk format, you want it fixed rotation speed so each track encodes the same amount of data, and you have a fixed minimal density that you can fit that data into (as opposed to a compromise where, say, most games are < 1684585196 964569 :b_jonas!~x@89.134.29.97 PRIVMSG #esolangs :320K long, but you can go past the limit to make 360K long games they just give read errors way more often), then the inner radius of your data must automatically be exactly half the outer radius of the data. < 1684585383 838144 :b_jonas!~x@89.134.29.97 PRIVMSG #esolangs :unrelated but heck I'm not supposed to get this strong allergic symptoms until later in the summer, this very warm winter sucks < 1684585495 706462 :Noisytoot!~noisytoot@sourcehut/user/noisytoot JOIN #esolangs Noisytoot :Ron < 1684585823 308111 :ais523!~ais523@31.94.72.130 JOIN #esolangs ais523 :(this is obviously not my real name) < 1684586172 989419 :ais523!~ais523@31.94.72.130 QUIT :Read error: Connection reset by peer < 1684586282 616707 :ais523!~ais523@31.94.72.130 JOIN #esolangs ais523 :(this is obviously not my real name) < 1684586998 733405 :river!river@tilde.team/user/river PRIVMSG #esolangs :hi > 1684587550 235260 PRIVMSG #esolangs :14[[07Listack14]]4 M10 02https://esolangs.org/w/index.php?diff=109340&oldid=109339 5* 03McChuck 5* (+1) 10/* Listack: A symmetric, stackless, stack-based, concatenative language */ > 1684587747 570893 PRIVMSG #esolangs :14[[07Listack14]]4 M10 02https://esolangs.org/w/index.php?diff=109341&oldid=109340 5* 03McChuck 5* (+84) 10/* Listack: A symmetric, stackless, stack-based, concatenative language */ < 1684589071 494626 :bgs!~bgs@212-85-160-171.dynamic.telemach.net QUIT :Ping timeout: 240 seconds < 1684590140 305239 :bgs!~bgs@212-85-160-171.dynamic.telemach.net JOIN #esolangs bgs :bgs < 1684592243 22934 :test!~test@69.110.139.250 JOIN #esolangs * :[https://web.libera.chat] test < 1684592327 8676 :test!~test@69.110.139.250 NICK :CreeperBomb < 1684593580 430374 :CreeperBomb!~test@69.110.139.250 PART :#esolangs < 1684595314 385822 :ais523!~ais523@31.94.72.130 QUIT :Quit: quit > 1684596975 912339 PRIVMSG #esolangs :14[[07Talk:Marble Machine14]]4 N10 02https://esolangs.org/w/index.php?oldid=109342 5* 03CreeperBomb 5* (+1748) 10Created page with "Alright I'm going to try to explain how this works without knowing for sure how it works, to add information, destub the article, and make it so that others can use it. All of the info comes from the presented programs. The "marble" starts in the top le < 1684599552 828713 :b_jonas!~x@89.134.29.97 PRIVMSG #esolangs :fungot, are deciduous trees the ones that are green 12 (deci-duo) months a year? < 1684599553 469877 :fungot!~fungot@2a01:4b00:82bb:1341::a PRIVMSG #esolangs :b_jonas: too bad the upgrade page is 404 and the messenger site doesn't mention the d option to ps. anmaster < 1684601681 993142 :wpa!~wpa@dynamic-046-114-109-189.46.114.pool.telefonica.de JOIN #esolangs WeepingAngel :wpa < 1684604383 990937 :wpa!~wpa@dynamic-046-114-109-189.46.114.pool.telefonica.de QUIT :Ping timeout: 250 seconds > 1684605618 377996 PRIVMSG #esolangs :14[[07Befunge-with-graphics14]]4 10 02https://esolangs.org/w/index.php?diff=109343&oldid=72635 5* 03KingJellyfish 5* (+9) 10/* Graphics implementation */ > 1684605781 39552 PRIVMSG #esolangs :14[[07Befunge-with-graphics14]]4 10 02https://esolangs.org/w/index.php?diff=109344&oldid=109343 5* 03KingJellyfish 5* (+294) 10/* Virtual Jumps */ > 1684605799 967122 PRIVMSG #esolangs :14[[07Befunge-with-graphics14]]4 10 02https://esolangs.org/w/index.php?diff=109345&oldid=109344 5* 03KingJellyfish 5* (+1) 10/* Future features and bug fixes */ > 1684605834 329170 PRIVMSG #esolangs :14[[07Befunge-with-graphics14]]4 10 02https://esolangs.org/w/index.php?diff=109346&oldid=109345 5* 03KingJellyfish 5* (+7) 10/* Virtual Jumps */ > 1684606531 203857 PRIVMSG #esolangs :14[[07Var=Bar14]]4 M10 02https://esolangs.org/w/index.php?diff=109347&oldid=109305 5* 03Kaveh Yousefi 5* (+34) 10Improved the diction and formatting of a few command table entries and added a hyperlink to the truth-machine article. > 1684609528 929946 PRIVMSG #esolangs :14[[07Talk:Cedar--14]]4 N10 02https://esolangs.org/w/index.php?oldid=109348 5* 03Joaozin003 5* (+116) 10Created page with "== The syntax is good, to be honest! == Yeah. Pretty normal syntax, although exclude is a bit unusual." > 1684609536 605963 PRIVMSG #esolangs :14[[07Talk:Cedar--14]]4 10 02https://esolangs.org/w/index.php?diff=109349&oldid=109348 5* 03Joaozin003 5* (+88) 10/* The syntax is good, to be honest! */ > 1684611442 69070 PRIVMSG #esolangs :14[[07Befunge-with-graphics14]]4 10 02https://esolangs.org/w/index.php?diff=109350&oldid=109346 5* 03KingJellyfish 5* (-145) 10/* Event handling */ > 1684611480 921667 PRIVMSG #esolangs :14[[07Befunge-with-graphics14]]4 10 02https://esolangs.org/w/index.php?diff=109351&oldid=109350 5* 03KingJellyfish 5* (+33) 10/* Event handling */ < 1684614551 709094 :Sgeo!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname < 1684614613 93922 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :When, exactly, is (a^b)^c = a^(b*c) valid and when is it invalid? It's certainly invalid for b=1/2 and c=2 when a is negative < 1684616193 634771 :ais523!~ais523@31.94.18.198 JOIN #esolangs ais523 :(this is obviously not my real name) > 1684616362 62641 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=109352&oldid=88046 5* 03RocketRace 5* (+92) 10Disambiguate! < 1684616528 64996 :ais523!~ais523@31.94.18.198 QUIT :Read error: Connection reset by peer < 1684616602 493518 :ais523!~ais523@31.94.18.198 JOIN #esolangs ais523 :(this is obviously not my real name) > 1684616751 576005 PRIVMSG #esolangs :14[[07User:RocketRace14]]4 10 02https://esolangs.org/w/index.php?diff=109353&oldid=100136 5* 03RocketRace 5* (+0) 10TFLite is actually pretty fun < 1684616814 906563 :ais523!~ais523@31.94.18.198 QUIT :Read error: Connection reset by peer < 1684616922 875605 :ais523!~ais523@31.94.18.198 JOIN #esolangs ais523 :(this is obviously not my real name) < 1684617722 815564 :bgs!~bgs@212-85-160-171.dynamic.telemach.net QUIT :Remote host closed the connection < 1684621959 33461 :Guest5!~Guest91@host86-180-37-15.range86-180.btcentralplus.com JOIN #esolangs * :[https://web.libera.chat] Guest91 < 1684622789 43884 :Guest5!~Guest91@host86-180-37-15.range86-180.btcentralplus.com QUIT :Ping timeout: 245 seconds