00:02:59 -!- mtm has quit (Ping timeout: 260 seconds). 00:05:44 -!- mtm has joined. 00:34:26 -!- amby has quit (Quit: so long suckers! i rev up my motorcylce and create a huge cloud of smoke. when the cloud dissipates im lying completely dead on the pavement). 00:35:48 -!- Argorok has quit (Ping timeout: 245 seconds). 00:38:25 -!- Argorok has joined. 00:39:08 -!- dnm has quit (Ping timeout: 245 seconds). 00:42:13 -!- dnm has joined. 01:11:33 [[User talk:Guy Fawkes Rep]] https://esolangs.org/w/index.php?diff=138656&oldid=90556 * Tommyaweosme * (+408) 01:32:00 [[User talk:Guy Fawkes Rep]] https://esolangs.org/w/index.php?diff=138657&oldid=138656 * Ais523 * (-408) Undo revision [[Special:Diff/138656|138656]] by [[Special:Contributions/Tommyaweosme|Tommyaweosme]] ([[User talk:Tommyaweosme|talk]]) offtopic, and trying to communciate with banned users is potentially directly counterproductive 01:33:02 [[Special:Log/delete]] revision * Ais523 * Ais523 changed visibility of a revision on page [[User talk:Guy Fawkes Rep]]: content hidden: safety concerns wrt trying to contact a banned user offwiki 01:36:02 [[Blip]] M https://esolangs.org/w/index.php?diff=138658&oldid=129298 * Ais523 * (+0) fix formatting apparently that template combination is broken if they're written in the wrong order 01:37:42 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:Guy Fawkes Rep]]": old-fashioned revision delete 01:38:28 [[Special:Log/delete]] restore * Ais523 * undeleted "[[User talk:Guy Fawkes Rep]]": restoring revisions prior to the ones that needed to be deleted 01:39:28 [[Special:Log/protect]] protect * Ais523 * protected "[[User talk:Guy Fawkes Rep [edit=sysop] (indefinite)[move=sysop] (indefinite)]]": talk page of banned user, currently being misused 01:54:58 -!- wryl has quit (Ping timeout: 245 seconds). 01:58:11 -!- wryl has joined. 02:22:28 -!- pikhq has quit (Ping timeout: 245 seconds). 02:26:22 -!- pikhq has joined. 02:46:30 -!- craigo has joined. 03:03:18 -!- yuu has quit (Ping timeout: 245 seconds). 03:06:29 -!- yuu has joined. 03:30:10 -!- Lord_of_Life_ has joined. 03:30:33 -!- Lord_of_Life has quit (Ping timeout: 246 seconds). 03:31:35 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 03:53:03 Sgeo: Biological metaphors might help. Kay was fascinated by what's known as the "central dogma" of genetics: a strand of DNA is encoded instructions to a certain kind of protein. 03:53:48 It turns out that there's more than one encoding and also that DNA isn't the only encoding medium. I imagine Kay was thinking of the same sort of change-of-encoding situation. 05:27:57 [[Special:Log/move]] move_redir * Unname4798 * moved [[Gd auto level]] to [[GD auto level]] over redirect: Correct captalisation 05:27:57 [[Special:Log/delete]] delete_redir * Unname4798 * Unname4798 deleted redirect [[GD auto level]] by overwriting: Deleted to make way for move from "[[Gd auto level]]" 05:30:02 -!- Sgeo has quit (Read error: Connection reset by peer). 05:32:18 [[GD auto level]] M https://esolangs.org/w/index.php?diff=138662&oldid=138660 * Unname4798 * (+0) correct captalisation, punctuatiom 05:47:56 -!- tromp has joined. 05:58:30 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 06:00:48 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138663&oldid=138647 * Ractangle * (-9) 06:32:46 [[Kava]] https://esolangs.org/w/index.php?diff=138664&oldid=138036 * Ractangle * (+1) /* Truth-machine */ 06:36:33 -!- X-Scale has quit (Quit: Client closed). 06:42:56 -!- X-Scale has joined. 07:00:53 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138665&oldid=138663 * Ractangle * (-2) /* Truth-machine */ 07:01:25 [[Truth-machine]] https://esolangs.org/w/index.php?diff=138666&oldid=138648 * Ractangle * (-2) /* How dare you fuck the brain */ 07:06:17 -!- tromp has joined. 07:07:28 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138667&oldid=138665 * Ractangle * (+31) /* Examples */ 07:11:10 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138668&oldid=138667 * Ractangle * (+21) /* Disan Count */ 07:13:38 [[Comment]] https://esolangs.org/w/index.php?diff=138669&oldid=138644 * Ractangle * (+8) /* C */ 07:18:14 [[Comment]] https://esolangs.org/w/index.php?diff=138670&oldid=138669 * Ractangle * (+150) /* C/C++ */ 07:19:11 [[Comment]] https://esolangs.org/w/index.php?diff=138671&oldid=138670 * Ractangle * (+32) /* C# */ 08:42:01 -!- X-Scale has quit (Quit: Client closed). 08:57:46 -!- wib_jonas has joined. 08:59:10 HTML question. Do browsers these days have some built-in CSS stuff to make the column widths of a table resizable by the user, such as by dragging the borders in the header row, or is this only available as client-side scripts? 09:02:02 hmm, there's a CSS property called resize. I'll have to test that. 09:23:55 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 09:38:21 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=138672&oldid=138621 * B4k3d * (+262) 09:40:10 [[User talk:B4K3D]] N https://esolangs.org/w/index.php?oldid=138673 * B4k3d * (+39) Created page with "Hi can't wait to sumbit my eso-slang ;D" 09:45:04 [[User:B4k3d]] N https://esolangs.org/w/index.php?oldid=138674 * B4k3d * (+112) Created page with "> Refining syntax > formal specification > custom interpreter or compiler for programs > will provide examples" 09:52:40 -!- tromp has joined. 10:00:12 -!- __monty__ has joined. 10:01:49 [[Special:Log/move]] move * Unname4798 * moved [[GD auto level]] to [[GD Auto level]] 10:02:12 [[Gd auto level]] https://esolangs.org/w/index.php?diff=138677&oldid=138661 * Unname4798 * (+0) fix double redirect 10:26:44 -!- m5zs7k has quit (Quit: m5zs7k). 10:27:08 -!- m5zs7k has joined. 10:58:08 [[User:B4K3D]] N https://esolangs.org/w/index.php?oldid=138678 * B4k3d * (+2) Created page with "hi" 11:06:18 -!- X-Scale has joined. 11:13:33 -!- X-Scale has quit (Ping timeout: 256 seconds). 11:22:20 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 11:24:47 -!- tromp has joined. 11:37:11 [[User:None1/InDev]] https://esolangs.org/w/index.php?diff=138679&oldid=131181 * None1 * (+159) 11:38:41 [[Special:Log/move]] move * None1 * moved [[Project Euler]] to [[Project Euler (language)]]: Move project euler language to another page so that project euler problems can have its page properly 11:38:41 [[Special:Log/move]] move * None1 * moved [[Talk:Project Euler/1]] to [[Talk:Project Euler (language)/1]]: Move project euler language to another page so that project euler problems can have its page properly 11:41:29 [[Special:Log/move]] move_redir * None1 * moved [[Talk:Project Euler (language)/1]] to [[Talk:Project Euler/1]] over redirect: Move accidentally moved page back 11:41:29 [[Special:Log/delete]] delete_redir * None1 * None1 deleted redirect [[Talk:Project Euler/1]] by overwriting: Deleted to make way for move from "[[Talk:Project Euler (language)/1]]" 11:42:11 [[Project Euler]] M https://esolangs.org/w/index.php?diff=138686&oldid=138681 * None1 * (-7) Changed redirect target from [[Project Euler (language)]] to [[User:ProjectEuler]] 11:43:04 [[Scratch]] N https://esolangs.org/w/index.php?oldid=138687 * None1 * (+26) Redirected page to [[User:Scratch]] 11:43:56 [[Talk:Project Euler (language)/1]] M https://esolangs.org/w/index.php?diff=138688&oldid=138685 * None1 * (-34) Blanked the page 11:45:36 [[User:ProjectEuler]] https://esolangs.org/w/index.php?diff=138689&oldid=125477 * None1 * (+75) 11:46:55 [[User:None1/InDev]] M https://esolangs.org/w/index.php?diff=138690&oldid=138679 * None1 * (+26) 11:47:55 [[User:None1/InDev]] https://esolangs.org/w/index.php?diff=138691&oldid=138690 * None1 * (+86) 11:55:27 [[User:None1/InDev]] https://esolangs.org/w/index.php?diff=138692&oldid=138691 * None1 * (+501) 11:56:18 [[User:None1/InDev]] https://esolangs.org/w/index.php?diff=138693&oldid=138692 * None1 * (+20) /* Parts of a pinyin */ 12:04:00 -!- mtm has quit (Ping timeout: 246 seconds). 12:06:58 -!- mtm has joined. 12:12:29 [[User:None1/InDev]] https://esolangs.org/w/index.php?diff=138694&oldid=138693 * None1 * (+681) /* Parts of a pinyin */ 12:19:12 -!- amby has joined. 12:23:05 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 12:26:57 -!- tromp has joined. 12:52:32 -!- wWwwW has joined. 13:11:15 -!- SGautam has joined. 13:16:20 [[Comment]] https://esolangs.org/w/index.php?diff=138695&oldid=138671 * None1 * (+59) /* C/C++ */ 13:18:22 [[Comment]] https://esolangs.org/w/index.php?diff=138696&oldid=138695 * None1 * (+64) /* C# */ C# has document comments (I think they are almost useless anyway) 13:21:08 [[Comment]] M https://esolangs.org/w/index.php?diff=138697&oldid=138696 * None1 * (+13) /* /// */ 13:24:45 [[Expansion]] M https://esolangs.org/w/index.php?diff=138698&oldid=123856 * None1 * (-7) /* A+B Problem */ Formatting does not work in pre 13:25:10 [[Comment]] M https://esolangs.org/w/index.php?diff=138699&oldid=138697 * None1 * (+119) /* /// */ 14:01:49 -!- lisbeths has joined. 14:12:30 [[BIO]] https://esolangs.org/w/index.php?diff=138700&oldid=85448 * Yayimhere * (-13) if there is a non userpage it should be linked to 14:14:55 [[GD Auto level]] https://esolangs.org/w/index.php?diff=138701&oldid=138675 * Tommyaweosme * (+0) stop it now unname4798 14:15:54 [[Gd auto level]] https://esolangs.org/w/index.php?diff=138702&oldid=138677 * Tommyaweosme * (-27) Blanked the page 14:18:00 [[GD Auto level]] https://esolangs.org/w/index.php?diff=138703&oldid=138701 * Tommyaweosme * (-1131) Replaced content with "{{Lowercase}} im sorry, you must mean [[gd auto level|this]]" 14:18:11 [[Gd auto level]] https://esolangs.org/w/index.php?diff=138704&oldid=138702 * Tommyaweosme * (+1191) 14:21:34 [[Talk:Scratch is dumb]] https://esolangs.org/w/index.php?diff=138705&oldid=138611 * Xyzzy * (+405) 14:22:36 [[Talk:Ting Vit]] https://esolangs.org/w/index.php?diff=138706&oldid=138592 * Xyzzy * (+152) 14:25:06 [[Talk:5iasm]] https://esolangs.org/w/index.php?diff=138707&oldid=137331 * Xyzzy * (+133) 14:25:21 [[Akdrfsbathnede knem]] https://esolangs.org/w/index.php?diff=138708&oldid=135677 * Qawtykit * (+42) 14:26:29 [[Talk:ETA]] N https://esolangs.org/w/index.php?oldid=138709 * Xyzzy * (+166) Created page with "suprised no one has talked yet --~~~~ - the person behind the instruction table on this page" 14:26:50 [[Talk:5iasm]] https://esolangs.org/w/index.php?diff=138710&oldid=138707 * Yayimhere * (+136) 14:28:16 -!- FreeFull has quit. 14:28:31 [[Main Page]] https://esolangs.org/w/index.php?diff=138711&oldid=136214 * Xyzzy * (+78) 14:39:53 [[Main Page]] https://esolangs.org/w/index.php?diff=138712&oldid=138711 * PkmnQ * (-78) Answer: Both links were removed on July 3, 2024 14:45:13 -!- gkgoat1 has quit (Quit: Client closed). 14:45:19 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138713&oldid=138668 * Xyzzy * (+882) 14:45:45 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138714&oldid=138713 * Xyzzy * (+19) 14:45:52 [[Akdrfsbathnede knem]] https://esolangs.org/w/index.php?diff=138715&oldid=138708 * Qawtykit * (+2) 14:46:18 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138716&oldid=138714 * Xyzzy * (+22) 14:46:38 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138717&oldid=138716 * Xyzzy * (-2) 14:50:57 i had an idea to make a esolang based on turnabelism 14:54:04 Sure. Have you seen the various notations that have been invented in the past couple decades? 14:54:43 its a pretty weird idea 14:55:25 you have too tapes or whatever 14:55:31 with looping marks n' stuff 14:55:58 and recors onto another tape 14:59:40 and if there becomes an over record(so we dont stop in time) we will rterecord 14:59:42 that my idea 15:05:11 korvo now 15:05:19 *no 15:07:52 wWwwW: One notation is DJ Radar's notation; I gather that it's used to teach at Berklee but can't find any details online. 15:07:58 Another is S-notation: https://www.tenor-conference.org/proceedings/2016/07_Sonnenfeld_tenor2016.pdf 15:09:11 i would like to make mi own(cuz i hate myself) but oh well 15:09:52 -!- FreeFull has joined. 15:10:46 wWwwW: Well, what's the goal? 15:11:59 It might surprise you to learn that many of us have specific aims when creating new languages. For example, I do PLT research and I call some projects "esoteric" so that I don't have to argue about what's "practical" or "marketable". 15:12:33 Several folks are working on fundamentals of computability theory. Some folks want to make languages that are difficult to use. Some folks are making art. 15:12:40 my goal is to have something to do cuz im always bored cuz im a loner:( 15:12:56 my goal is to keep myself sane ig:) 15:12:58 this is the way 15:13:12 lol 15:13:26 Oh! Try Touhou. You will not be bored but you might lose some sanity. 15:14:00 oh no im not a gamer 15:14:08 also i cant play it cuz i use old puter 15:14:09 There's nothing wrong with recreational conlangs, but keep in mind that languages are for *communicating*. It might not be the best solo activity. 15:14:41 for me no 15:14:46 for me esolangs are 15:14:51 to experiment 15:14:56 do special stuff 15:14:59 do new stuff 15:15:38 but non esolang's are like that yea 15:17:40 No worries. As long as you're having fun and following community guidelines, we invite folks to make art and experiment. 15:17:54 k 15:17:55 thx 15:19:57 * sprout idly wonders what a recreational conlang is 15:35:02 anyway is my esolang idea good korvo 15:35:09 and can i get some help 15:36:01 wWwwW: That's why I asked what your goal is. 15:36:15 oh 15:36:39 well now you know ig:) 15:38:25 I don't see why an esolang would need a goal? 15:39:10 idk 16:04:39 wWwwW: my only advice is to start with something tiny 16:04:51 ok 16:05:20 since it probably won't be used by anyone it's usually not worth the effort to invest a lot of time into a language 16:06:28 idc 16:06:36 time doest matter to me lol 16:38:29 [[How dare you fuck the brain]] M https://esolangs.org/w/index.php?diff=138718&oldid=138717 * PythonshellDebugwindow * (-2) /* Erase data in a cell */ Header, formatting 16:44:09 what would happen ona computer if you fr just adeed two things that are underfined together? 16:44:12 like just did that 16:44:16 with no care in the world 16:44:24 WHAT WOULD HAPPEN? 16:49:36 ask chatgpt 16:49:49 gud idea lol 16:49:51 How do you have something undefined on a computer? 16:50:18 like lets say python where you do a + b but none of them are defined?? 16:50:25 BUT YOU JUST LET IT HAPPEN 16:50:28 sor for caps 16:50:36 without gigving an error? 16:50:38 *giving 16:54:20 -!- wib_jonas has quit (Quit: Client closed). 17:12:33 asked chatgpt 17:12:36 no gud answer 17:12:56 what a twist 17:13:30 lol 17:18:48 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 17:24:55 im so bored idk what to do 17:32:34 -!- tromp has joined. 17:39:37 -!- SGautam has quit (Quit: Connection closed for inactivity). 17:54:00 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138719&oldid=138718 * Ractangle * (-102) /* Interpreter */ 17:55:04 wWwwW: It might be hard to think about, but technically a CPU never has undefined behavior. Similarly, every Python name refers to some object, and Python's VM defines their interactions. 17:55:21 interesting 17:55:30 so what would happen 17:55:35 wouæd i just get garbage? 17:55:46 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138720&oldid=138719 * Ractangle * (+17) /* Syntax */ 17:56:19 wWwwW: I'm asking you how the situation arises in the first place. 17:59:54 well i said. but now when you say that 18:00:00 it wouldnt be undefined 18:00:44 In Python, it's not possible to get into this situation without manually writing bytecode. The VM will LOAD_FAST both `a` and `b`, then BINARY_OP them with `+`. 18:01:08 oh 18:01:09 kk 18:01:17 The typical CPU can't really do this either. If you ask it to ADD two registers, then it'll do that regardless of whether you put values into those registers. 18:02:06 When folks say that a behavior is undefined, they are usually being *epistemic*, not *ontic*. They're talking about *what we know* about the CPU, not *what it actually does*. 18:03:14 [[Comment]] https://esolangs.org/w/index.php?diff=138721&oldid=138699 * Ractangle * (+55) /* Languages with halting instructions/infinite loops */ 18:05:05 [[Comment]] https://esolangs.org/w/index.php?diff=138722&oldid=138721 * Ractangle * (+35) /* ////Thue/Expansion */ 18:07:05 [[Comment]] https://esolangs.org/w/index.php?diff=138723&oldid=138722 * Ractangle * (+9) /* ////Thue/Expansion/A=B */ 18:07:19 well 18:07:22 i have an answer 18:08:37 and another question 18:08:39 [[Comment]] https://esolangs.org/w/index.php?diff=138724&oldid=138723 * Ractangle * (+17) /* Languages with halting instructions/infinite loops */ 18:10:25 and that is what if you just let the CPU do whatever 18:12:07 I think some instructions in 6502 are unstable, although this is different from the undefined behaviour in programming languages such as C. 18:17:22 [[Comment]] https://esolangs.org/w/index.php?diff=138725&oldid=138724 * Ractangle * (+161) /* ////Thue/Expansion/A=B */ 18:19:00 wWwwW: Then you get what we call a "weird machine": https://en.wikipedia.org/wiki/Weird_machine 18:19:19 Even here, though, we see that the CPU tends to enter stable "weird states" which are programmable with "weird instructions". 18:19:48 oooo 18:20:02 i would like to see a esolang like dis 18:20:42 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138726&oldid=138720 * Ractangle * (+66) 18:21:57 imma make a weirdmachie rn 18:22:01 idk how 18:22:03 but i will 18:26:13 plz help 18:26:24 how would you do it? 18:28:26 -!- craigo has quit (Remote host closed the connection). 18:29:41 -!- wWwwW83 has joined. 18:33:17 -!- wWwwW has quit (Ping timeout: 256 seconds). 18:34:52 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138727&oldid=138726 * Ractangle * (+34) /* Interpreter */ 18:35:11 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138728&oldid=138727 * Ractangle * (+8) /* Interpreter */ 18:36:19 [[Talk:Triforce]] N https://esolangs.org/w/index.php?oldid=138729 * Yayimhere * (+124) Created page with "a space is not a triangle(lol) -x-~~~~" 18:42:42 wWwwW83: Weird machines usually arise from security vulnerabilities. To start building an understanding, maybe look up heap-spraying attacks in Web browsers: https://en.wikipedia.org/wiki/Heap_spraying 18:43:05 im not trying to hack lol 18:43:19 The instructions normally would be interpreted as allocating objects in a loop. But they are actually weird instructions for confusing the underlying garbage collector. 18:44:50 wouldnt that be [-] for currentm cell in bf(lol?) 18:44:53 sounds like it 18:44:55 but idk 18:46:53 wait 18:47:07 i think ive made one 18:47:08 idk 18:53:15 i did it it think 18:53:17 less gooo 18:59:24 -!- wWwwW83 has quit (Quit: Client closed). 19:10:52 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138730&oldid=138728 * Ractangle * (+229) /* Examples */ 19:11:02 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138731&oldid=138730 * Ractangle * (+1) /* Hello, world! */ 19:11:08 -!- lisbeths has quit (Quit: Connection closed for inactivity). 19:12:57 [[Hello world program in esoteric languages (H-M)]] https://esolangs.org/w/index.php?diff=138732&oldid=136081 * Ractangle * (+242) /* Homespring */ 19:18:52 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138733&oldid=138731 * Ractangle * (+114) /* Examples */ 19:19:01 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138734&oldid=138733 * Ractangle * (+1) /* =Move data from a cell to an another cell */ 19:19:10 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 19:23:18 -!- tromp has joined. 19:50:42 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138735&oldid=138734 * Ractangle * (+75) /* Truth-machine */ 19:54:07 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138736&oldid=138735 * Ractangle * (+1) /* Hello, world! */ 19:54:13 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138737&oldid=138736 * Ractangle * (+1) /* Hello, world! */ 19:54:30 [[How dare you fuck the brain]] https://esolangs.org/w/index.php?diff=138738&oldid=138737 * Ractangle * (-1) /* Hello, world! */ 19:56:04 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 19:57:24 -!- tromp has joined. 20:29:45 [['interbasic]] https://esolangs.org/w/index.php?diff=138739&oldid=136454 * Ractangle * (-3) /* Truth-machine */ 20:32:00 [[FlipFlop]] https://esolangs.org/w/index.php?diff=138740&oldid=135022 * Ractangle * (-8) 20:33:16 [[FlipFlop]] https://esolangs.org/w/index.php?diff=138741&oldid=138740 * Ractangle * (+1) 20:34:17 [[Old Branjunk]] https://esolangs.org/w/index.php?diff=138742&oldid=137710 * Ractangle * (-1) /* Syntax */ 21:16:52 -!- __monty__ has quit (Quit: leaving). 21:23:03 -!- X-Scale has joined. 21:25:18 [[Special:Log/move]] move * Ais523 * moved [[GD Auto level]] to [[Gd auto level]]: history merge to revert pagemove vandalism 21:25:18 [[Special:Log/delete]] delete * Ais523 * deleted "[[Gd auto level]]": Deleted to make way for move from "[[GD Auto level]]" 21:25:33 [[Special:Log/delete]] restore * Ais523 * undeleted "[[Gd auto level]]": history merge 21:25:58 [[Gd auto level]] https://esolangs.org/w/index.php?diff=138744&oldid=138743 * Ais523 * (+1131) set top revision after history merge 21:26:41 [[Special:Log/protect]] protect * Ais523 * protected "[[Gd auto level [move=sysop] (indefinite)]]": move warring lock this at the name the creator of the language chose 21:27:14 [[GD auto level]] https://esolangs.org/w/index.php?diff=138746&oldid=138676 * Ais523 * (+0) fix double redirect after move war 21:30:04 [[User talk:Tommyaweosme]] https://esolangs.org/w/index.php?diff=138747&oldid=138563 * Ais523 * (+654) /* gd auto level */ new section 21:38:18 [[User talk:Unname4798]] https://esolangs.org/w/index.php?diff=138748&oldid=138277 * Ais523 * (+1107) warning for move warring, and a reminder about what changes are acceptable to pages about esolangs other people created 21:39:06 -!- amby has quit (Read error: Connection reset by peer). 21:39:23 -!- amby has joined. 21:40:45 -!- ais523 has joined. 21:42:02 wWwwW: It might be hard to think about, but technically a CPU never has undefined behavior. ← I'm not convinced I agree – many CPUs have instructions documented as having behaviour that isn't defined in all circumstances, and in some cases (e.g. the 6502) the behaviour is not consistent in practice either 21:43:46 although there are also cases where the behaviour is documented as undefined, but is in fact 100% consistent, and the manufacturer has kept it consistent for compatibility reasons even though it would be more efficient to change it 21:44:20 e.g. on x86/x86-64, BSF on a register holds 0 (documented as undefined by Intel, and as leaving the register unchanged by AMD – Intel's behaviour in practice is the same as AMD's) 21:44:49 -!- X-Scale has quit (Ping timeout: 256 seconds). 21:44:51 but there are plenty of cases where the behaviour depends on analog effects, and those in turn can depend on noise 21:46:43 also I think most CPUs can't get into a state where a register doesn't have a value – but it's quite common to get "open bus" behaviour when older CPUs attempt to read a memory address that doesn't correspond to physical memory 21:47:44 which typically returns some value that was recently read or written using the same wires, or some default value if they weren't recently used, but in between you get a mix and the length of time it takes to go from one state to the other varies based on analog factors 22:24:41 -!- X-Scale has joined. 22:28:46 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 22:31:02 -!- Sgeo has joined. 23:13:38 Yeah. Also, not undefined behavior, but x86 has a bunch of cases for old instructions where the documentation says that some or all of the arithmetic FLAGS bits are left with an undefined value. This can happen with at least AND, OR, XOR, TEST; SHR, SAL, SAR, ROL, ROR, RCL, RCR; MUL, IMUL, DIV, IDIV; BT, BTR, BTS, BTC; BSF, BSR; AAA, AAS, AAD, AAM, DAA, DAS. That's almost every old instruction that can 23:13:44 modify the arithmetic bits in the flags, except for ADD, ADC, SUB, SBB, CMP, INC, DEC; CMC, CLC, STC; SAHF, and the ones that load the entire FLAGS or EFLAGS. Newer instructions usually avoid this sort of undefined result. 23:14:45 I actually don't know what those instructions do to the flags in practice, nor whether or not it's consistent 23:14:57 I don't know either 23:15:27 BSF leaving the register unchanged is an interesting problem for compiler writers, though, because if you choose to rely on that behaviour you can make the asm considerably simpler and less branchy 23:15:35 but, it's relying on UB 23:15:46 LLVM chooses not to rely on the UB, at least when compiling Rust 23:17:45 -!- X-Scale has quit (Ping timeout: 256 seconds). 23:19:57 ais523: wait, that is UB? I thought that was documented, but I also thought it was usually not worth to use on modern CPUs, which specifically add a prefixed variant for BSF and BSR with very different opcodes that does not do that to avoid the extra dependency on the old value of the register 23:21:23 [[Talk:Scratch is dumb]] https://esolangs.org/w/index.php?diff=138749&oldid=138705 * None1 * (+266) 23:22:48 or do you mean using the undefined behavior offered by the source language (eg. C) low-level function? 23:22:50 b_jonas: it's UB on Intel but not AMD, according to the docs 23:23:22 on modern CPUs, you just use lzcnt and tzcnt, yes, but current compilers aren't by default generating code that assumes they're available 23:23:53 huh, you're right, the Intel docs says that the destination register gains undefined value after BSF and BSR with 0 input operand 23:23:58 I hadn't known that 23:24:26 although, they get interpreted as their older equivalent on older CPUs, which is useful in the case of tzcnt because the results are the same for all arguments except 0 23:24:46 so you can just set the result register to 64 and then tzcnt, and you get the right result on both new and old CPUs 23:25:02 this doesn't work with lzcnt becaue the return values are different 23:25:33 it doesn't work with LZCNT? interesting, I never noticed that 23:26:03 because LZCNT counts 0 = most significant and the old instruction counts 0 = least significant 23:26:18 so you can't interpret the return value without knowing which instruction you used 23:26:49 when were these instructions added? between SSE4.2 and AVX with the marketing bit-manipulation instructions like BLSI? or earlier? 23:28:11 it isn't obvious because they have their own feature flag, so it might not even be monotonically increasing 23:29:02 oh, Wikipedia says it's part of BMI1 and just has the feature flags done weirdly 23:29:03 sure 23:29:49 oh, and AMD got there first 23:29:55 which nearly *always* screws up the feature flags 23:30:31 or, well, LZCNT is by AMD and TZCNT by Intel, just to make things as thoroughly confusing as possible 23:30:44 rofl 23:31:20 that sounds like a mess 23:32:18 so the ABM flag (which AMD invented) reflects LZCNT support, and BMI1 reflects TZCNT support, on both AMD and Intel processors; but all Intel processors that set either set both 23:32:45 -!- FreeFull has quit. 23:33:39 it looks like TZCNT and LZCNT were added roughly at the same time as AVX2, so later than I thought 23:34:33 Intel added them at the same time as the BMI2 instructions (which include the select operator from INTERCAL) 23:37:08 and that was around AVX2, rather than before AVX like I implied earlier. ok. 23:37:52 AVX confuses me because I can never remember which instructions it does 23:37:54 then it's not that surprising that compilers can often still not use it if you don't specifically target a later processor 23:38:19 IIRC it was a more efficient API and more consistent encodings for the existing SSE instructions, plus a few 256-bit instructions but not very many of them? 23:38:39 hmm, is there an equivalent of caniuse.com but for processor instructions? 23:39:09 I'm mostly interested in whether targeting AVX2/BMI2 by default is reasonable nowadays or whether there are likely to be users who don't have support 23:39:17 what do you mean? AVX contains vector instructions similar to SSE2, but they're encoded in a very different way, and the floating-point ones can be either 32 byte wide (on the newly introduced YMM registers) or 16 bytes wide, while the integer ones can only be 16 byte wide, right? 23:39:39 oh, is it just a float/int split? 23:39:50 I thought it implemented a few of the instructions at 32 but most at 16 23:40:28 this might explain why LLVM prefers to use floating-point instructions for memcpy, if they were added before the equivalent integer instructions 23:40:31 it also has lots of new vector instructions for integers, but I think the 32 bytes is just floating points 23:41:28 although, I think the general performance advice with vector registers is "you can use the 16-byte ones for occasional use without trouble but the 32-byte ones only help if you use them heavily" 23:41:45 but this later got fixed by AVX2 which I think added 32 byte long versions for all the integer vector AVX instructions (except that some of the shuffling instructions shuffle only within a 16 byte block and there are new possibly slower shuffler instructions for the full 32 bytes wide) 23:42:21 calling conventions for AVX2 are a mess – it doesn't mix well performance-wise with SSE-encoded vector instructions 23:42:25 also all the AVX vector instructions have a name starting with V and they clear the top half of the YMM registers even if they only do a 16 byte operation -- the existing SSE2 instructions couldn't be modified this way because of ABI compatibility 23:42:38 yep 23:43:02 yes, but I think that's s/calling conventions for AVX2/calling conventions for AVX/ 23:43:25 I think the ABI requires a vzeroupper before calling or returning from a function, if you use the high half of a vector 23:43:40 so that if the other function uses SSE there isn't a performance penalty 23:44:26 yes, but this is becoming less of a problem on later processors 23:45:49 the ABI incompatibility is real and can't be fixed without defining a whole new incompatible ABI for which you have to recompile every user-level library, but the penalty almost never applies to recent CPUs because the processors are better optimized to handle this 23:51:16 also AVX adds some new floating-point vector instructions, and some non-vector instructions, and it does *not* add many new integer vector arithmetic instructions despite what I said 23:55:24 the new integer vector instructions are added by SSE3 and SSE4_2 (which precede AVX) and then AVX512, with only a few in AVX and AVX2 23:55:30 or at least few that I care about 23:59:34 the ABI incompatibility is real and can't be fixed without defining a whole new incompatible ABI for which you have to recompile every user-level library, but the penalty almost never applies to recent CPUs because the processors are better optimized to handle this ← IIRC the modern processors are actually worse-optimised to handle all the combinations, some optimisations were removed to simplify the situations where they weren't neeed 23:59:38 *needed