00:02:26 [[(top, height)]] https://esolangs.org/w/index.php?diff=90107&oldid=90106 * Squidmanescape * (+116) 00:22:07 [[(top, height)]] https://esolangs.org/w/index.php?diff=90108&oldid=90107 * Squidmanescape * (+705) /* Instructions */ 00:24:32 -!- yuu_ has quit (Ping timeout: 240 seconds). 00:27:00 -!- yuu_ has joined. 00:27:08 [[Eek!]] https://esolangs.org/w/index.php?diff=90109&oldid=90042 * Zero player rodent * (+106) 00:33:16 -!- Argorok has quit (Ping timeout: 245 seconds). 00:33:29 [[Struffoli]] https://esolangs.org/w/index.php?diff=90110&oldid=90000 * Zero player rodent * (+23) 00:36:01 -!- Argorok has joined. 00:44:53 -!- u0_a3911 has joined. 00:48:41 -!- u0_a391 has quit (Ping timeout: 245 seconds). 00:54:53 [[(top, height)]] https://esolangs.org/w/index.php?diff=90111&oldid=90108 * Squidmanescape * (+344) 01:00:50 -!- Thelie has quit (Ping timeout: 260 seconds). 01:04:46 -!- imode has joined. 01:28:25 [[Eek!]] https://esolangs.org/w/index.php?diff=90112&oldid=90109 * Zero player rodent * (-18) 01:30:20 -!- u0_a3911 has quit (Quit: Melvar). 01:37:25 [[(top, height)]] https://esolangs.org/w/index.php?diff=90113&oldid=90111 * Squidmanescape * (+133) /* Instructions */ 02:03:23 -!- delta23 has quit (Quit: Leaving). 02:19:21 [[NLRNIS]] N https://esolangs.org/w/index.php?oldid=90114 * Fmbalbuena * (+756) NLRNIS 02:19:40 [[NLRNIS]] https://esolangs.org/w/index.php?diff=90115&oldid=90114 * Fmbalbuena * (+3) 02:20:09 [[NLRNIS]] https://esolangs.org/w/index.php?diff=90116&oldid=90115 * Fmbalbuena * (+18) 02:21:06 [[NLRNIS]] https://esolangs.org/w/index.php?diff=90117&oldid=90116 * Fmbalbuena * (-8) 02:27:02 [[Special:Log/newusers]] create * ProjectEuler * New user account 02:27:37 [[NLRNIS]] https://esolangs.org/w/index.php?diff=90118&oldid=90117 * Fmbalbuena * (+109) 02:31:14 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=90119&oldid=90091 * ProjectEuler * (+286) The main page was deleted so this user was created. 02:33:05 [[Esolang talk:Introduce yourself]] https://esolangs.org/w/index.php?diff=90120&oldid=89872 * ProjectEuler * (+213) 02:34:12 [[User:ColorfulGalaxy]] https://esolangs.org/w/index.php?diff=90121&oldid=83033 * ProjectEuler * (+38) 02:46:18 [[(top, height)]] https://esolangs.org/w/index.php?diff=90122&oldid=90113 * Squidmanescape * (+2816) /* Instructions */ 02:59:12 -!- dyeplexer has joined. 03:01:45 [[User:ProjectEuler/pagebar]] N https://esolangs.org/w/index.php?oldid=90123 * ColorfulGalaxy * (+200) Created page with "{|class="wikitable" ! < | [[Project Euler/1|1]] | ... | [[Project Euler/{{{1}}}|{{{1}}}]] | ... | [[Project Euler/6|6]] ! > |} [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=90124&oldid=89572 * ColorfulGalaxy * (+33) 03:02:47 [[(top, height)]] https://esolangs.org/w/index.php?diff=90125&oldid=90122 * Squidmanescape * (+350) 03:03:26 [[(top, height)]] https://esolangs.org/w/index.php?diff=90126&oldid=90125 * Squidmanescape * (-8) /* Instructions */ 03:13:36 [[Timers]] M https://esolangs.org/w/index.php?diff=90127&oldid=89632 * Rphii * (+0) change ` to ! in numbers 04:12:06 [[User:ProjectEuler]] N https://esolangs.org/w/index.php?oldid=90128 * ColorfulGalaxy * (+925) Chart 04:19:05 [[Truth Machine (language)]] https://esolangs.org/w/index.php?diff=90129&oldid=83981 * ColorfulGalaxy * (+40) 04:41:01 [[User:Squidmanescape]] https://esolangs.org/w/index.php?diff=90130&oldid=90101 * Squidmanescape * (+70) /* My Languages */ 04:44:01 [[(top, height)]] https://esolangs.org/w/index.php?diff=90131&oldid=90126 * Squidmanescape * (+178) Fixed Version Number, Explained Versions 05:01:40 -!- oerjan has joined. 05:23:10 https://tech.marksblogg.com/fastest-fizz-buzz.html <-- "I've been unable to uncover this person's real-life identity" hah 05:23:47 GNU yes was mentioned 05:24:01 printing y in a loop was considered not fast enough 05:25:54 admittedly i'm not sure how easy his real name is to find if you're not in one of those places he has revealed it. 05:26:21 but then i'm biased, i managed to find his _middle_ name. 05:28:32 I always wondered what the I stands for 05:30:30 iirc it was listed in the UK olympics maths team list, and on wikipedia when he had a page there 05:37:43 -!- LostLemon has joined. 05:37:48 heh the wikipedia info is still there, if you know how to look 05:37:49 -!- LostLemon has quit (Excess Flood). 05:38:50 -!- LostLemon has joined. 05:38:51 -!- LostLemon has quit (Excess Flood). 05:38:59 (it was turned into a redirect, but the history is still there) 05:39:05 -!- LostLemon has joined. 05:39:06 -!- LostLemon has quit (Excess Flood). 05:39:19 -!- LostLemon has joined. 05:39:20 -!- LostLemon has quit (Excess Flood). 05:39:34 -!- LostLemon has joined. 05:39:35 -!- LostLemon has quit (Excess Flood). 05:46:07 [[Special:Log/newusers]] create * YouHardDrive * New user account 05:49:37 [[Project Euler/1]] N https://esolangs.org/w/index.php?oldid=90132 * ColorfulGalaxy * (+2600) Created page with 05:52:16 [[FizzBuzz]] https://esolangs.org/w/index.php?diff=90133&oldid=89493 * ColorfulGalaxy * (+97) /* See also */ 05:59:43 [[Special:Log/delete]] delete * Ais523 * deleted "[[File:Cat.jpg]]": likely copyright violation 05:59:49 [[Special:Log/delete]] delete * Ais523 * deleted "[[File:Elephant.jpg]]": likely copyright violation 05:59:58 [[Special:Log/delete]] delete * Ais523 * deleted "[[File:Turtle.jpg]]": likely copyright violation 06:00:08 [[Special:Log/delete]] delete * Ais523 * deleted "[[File:Toucan.jpg]]": likely copyright violation 06:00:15 [[Special:Log/delete]] delete * Ais523 * deleted "[[File:Rabbit.jpg]]": likely copyright violation 06:00:22 [[Special:Log/delete]] delete * Ais523 * deleted "[[File:Lion.jpg]]": likely copyright violation 06:00:34 [[Special:Log/delete]] delete * Ais523 * deleted "[[File:Dog.jpg]]": likely copyright violation 06:00:39 [[Special:Log/delete]] delete * Ais523 * deleted "[[File:Chicken.jpg]]": likely copyright violation 06:13:12 [[User talk:ColorfulGalaxy]] https://esolangs.org/w/index.php?diff=90134&oldid=89783 * Oerjan * (+490) /* User:ProjectEuler */ new section 06:13:12 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=90135&oldid=90119 * YouHardDrive * (+206) /* Introductions */ 06:13:56 [[Icarus]] N https://esolangs.org/w/index.php?oldid=90136 * YouHardDrive * (+2197) Created page with "Icarus is an attempt at a completely typeless programming language. == Description == === Variables === Each variable does not really have a type. Instead, they have multipl..." 06:15:35 [[User talk:ColorfulGalaxy]] https://esolangs.org/w/index.php?diff=90137&oldid=90134 * ColorfulGalaxy * (+453) /* User:ProjectEuler */ 06:15:53 [[Icarus]] https://esolangs.org/w/index.php?diff=90138&oldid=90136 * YouHardDrive * (+58) 06:16:10 [[Icarus]] https://esolangs.org/w/index.php?diff=90139&oldid=90138 * YouHardDrive * (+4) 06:17:12 [[Icarus]] https://esolangs.org/w/index.php?diff=90140&oldid=90139 * YouHardDrive * (+45) 06:17:47 [[Project Euler/2]] N https://esolangs.org/w/index.php?oldid=90141 * ColorfulGalaxy * (+618) Created page with 06:17:56 [[Project Euler/2]] https://esolangs.org/w/index.php?diff=90142&oldid=90141 * ColorfulGalaxy * (+1) 06:19:56 [[Fibonacci sequence]] https://esolangs.org/w/index.php?diff=90143&oldid=66688 * ColorfulGalaxy * (+121) See also 06:20:06 [[Burn]] https://esolangs.org/w/index.php?diff=90144&oldid=90068 * Ais523 * (+2117) some other things I remember about Burn 06:20:10 ooh 06:22:51 i'd already guessed the 00 part 06:23:14 wow 06:23:28 -!- ais523 has joined. 06:23:32 you're welcome 06:23:49 some of it is pretty obvious, but stating the obvious is helpful when it comes to esolangs because they sometimes avoid it 06:25:08 there were some very strange guesses on the talk page 06:25:54 oh, and there was no I/O, I should probably mention that too 06:26:27 yes, it seemed like no one took the 2d CA info completely seriously 06:26:35 [[Burn]] https://esolangs.org/w/index.php?diff=90145&oldid=90144 * Ais523 * (+46) +no IO cat 06:26:54 i've been thinking about it, and also thinking that the 1-color containing parts looked like wires 06:27:01 -!- tromp has joined. 06:27:57 although my main intuition has been to take the _name_ of the language seriously... what you call flood fill i've been thinking of as burning fuel 06:29:13 and 0 as perhaps the absense of fuel 06:29:48 [[Project Euler/5]] N https://esolangs.org/w/index.php?oldid=90146 * ColorfulGalaxy * (+816) Created page with 06:31:09 btw, ColorfulGalaxy went and created a separate username so that they could create Project Euler spaces in that user's userspace (which is dubious enough as it is), and is now creating them in mainspace anyway for some reason 06:32:04 http://cheddarmonk.org/papers/laver.pdf 06:34:24 (also, Guy Fawkes Rep was obviously ColorfulGalaxy, right? I haven't checked, but it was obvious just based on behaviour and on ColorfulGalaxy getting caught up in the resulting autoblock) 06:34:26 laver was discussed here some years ago 06:34:45 ais523: i suspected but didn't bother to bother 06:35:56 i wasn't sure whether ColorfulGalaxy actually got blocked or just pretended as part of their game, but after that it seemed obvious they were just having fun 06:37:04 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 06:38:55 although if they're one person, and _expected_ to be blocked and to get hit by the autoblock, then it would explain Guy Fawkes Rep's last pre-blocking message 06:41:48 in some strange, crazy way. 06:42:44 * oerjan is confused by seeing a math paper on a darths & droids (fan) site 06:57:50 [[Project Euler/6]] N https://esolangs.org/w/index.php?oldid=90147 * ColorfulGalaxy * (+1988) Created page with 06:59:35 I think someone who'd been blocked that much would have an intuitive idea of how the autoblocker worked, even if some of the details were wrong 07:03:43 lol 07:03:54 what is a cheddar monk 07:04:00 [[Fairytale]] https://esolangs.org/w/index.php?diff=90148&oldid=90098 * Doubi * (+59) /* Print */ 07:04:03 -!- tromp has joined. 07:04:56 [[Fairytale]] https://esolangs.org/w/index.php?diff=90149&oldid=90148 * Doubi * (-4) /* Specification */ 07:06:30 riv: see darths & droids webcomic 07:06:40 i had alook 07:06:53 i haven't followed it in a while, though 07:06:57 it was a rhetorical question though 07:07:02 okay 07:08:02 [[Aheui]] https://esolangs.org/w/index.php?diff=90150&oldid=89788 * ColorfulGalaxy * (+454) More code 07:33:42 https://www.youtube.com/watch?v=JvhSRCfCHb4 fun game 08:01:50 ais523: "or maybe only ever increase, but decreasing seems more likely" <-- i'm going to disagree based on the simple observation that decreasing + 00 = unchangeable would make it impossible to have flood fill along 01 or 10 paths. 08:03:26 unless, hm, i suppose if 01/10 -> 00 if its number of non-00 neighbors _decrease_ 08:05:43 [[2Deadfish]] https://esolangs.org/w/index.php?diff=90151&oldid=90076 * Squidmanescape * (+99) 08:06:41 although that violates _my_ intuition of what the language does, it may not violate what you've said. 08:08:34 I think it was probably only ever decreasing 08:08:45 but it's hard to be confident about something I created in my head over 10 years ago without writing down any details 08:09:54 but, hmm, maybe it does increase? 08:10:11 perhaps I should have tried harder to remember / work out the details at the time 08:10:38 fwiw, the modification date on the file containing that program is Aug 9 2006 08:10:46 so over 15 years ago now 08:10:57 (and it's the only thing in the directory) 08:12:56 that's not very long after i got here 08:13:17 2006 was a good year for the channel 08:14:15 if it actually _is_ only decreasing, it may simplify things because it reduces the number of things that can happen with those 01 and 10 cells 08:18:37 you've really shaken my confidence now, I'm seriously considering the possibility that it's only increasing, and that could make more sense 08:18:47 another obvious thing given what it's supposed to compute: the program code given is probably a stable configuration that doesn't change without some kind of signal coming in. 08:19:11 right, in order for anything to happen you'd have to disrupt the tiling slightly (which I mentioned in my original set of hints) 08:19:46 rule 110 has 000 → 0 so a tiling of 0s would be stable 08:19:57 my guess is that what is disrupted, is the one non-00 cell at the top line 08:20:04 yes, that makes sense to me too 08:20:30 ooh… I don't think a channel value could change "past" the value of its neighbours, I'll add that to the list 08:20:41 huh 08:21:16 as in, any change would be to a value that was within the range of values that existed in its neighbours 08:21:26 i see 08:21:44 well you pretty much always have 0s nearby 08:22:21 [[Burn]] https://esolangs.org/w/index.php?diff=90152&oldid=90145 * Ais523 * (+266) another thing I remembered 08:22:37 I'm trying to remember whether or not 0 was a special case, but I can't remember 08:23:39 the fact that I mentioned "levels 0-3" in a comment implies that they may have been configurable… 08:25:23 [[2Deadfish/Constants]] N https://esolangs.org/w/index.php?oldid=90153 * Squidmanescape * (+801) Created page with "This page serves to find the shortest way to output a number as the final one in Deadfish using the fewest commands. Note that this is different from [[Deadfish/Constants]] b..." 08:35:21 [[2Deadfish/Constants]] https://esolangs.org/w/index.php?diff=90154&oldid=90153 * Squidmanescape * (+132) /* Constants */ 08:37:26 [[2Deadfish/Constants]] https://esolangs.org/w/index.php?diff=90155&oldid=90154 * Squidmanescape * (+4) /* Constants */ 08:38:38 -!- Thelie has joined. 08:40:21 [[2Deadfish/Constants]] https://esolangs.org/w/index.php?diff=90156&oldid=90155 * Squidmanescape * (+37) /* Constants */ 08:42:42 [[2Deadfish/Constants]] https://esolangs.org/w/index.php?diff=90157&oldid=90156 * Squidmanescape * (+35) /* Constants */ 08:42:55 [[2Deadfish/Constants]] https://esolangs.org/w/index.php?diff=90158&oldid=90157 * Squidmanescape * (+2) /* Constants */ 09:02:33 -!- Thelie has quit (Read error: Connection reset by peer). 09:10:15 -!- ais523 has quit (Quit: quit). 09:42:25 https://simonsapin.github.io/wtf-8/ 09:50:18 -!- Sgeo_ has quit (Read error: Connection reset by peer). 09:54:19 -!- Oshawott has joined. 09:58:16 -!- archenoth has quit (Ping timeout: 265 seconds). 10:00:54 -!- Lord_of_Life_ has joined. 10:02:05 -!- Lord_of_Life has quit (Ping timeout: 250 seconds). 10:03:43 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 10:16:21 [[User:Hakerh400/Ideal programming language]] https://esolangs.org/w/index.php?diff=90159&oldid=89033 * Hakerh400 * (-9754) Removing the content for now. Will probably decide what to put here in the future. 10:27:00 -!- oerjan has quit (Quit: Later). 11:38:08 [[User talk:Hakerh400/What we could do if we could solve the halting problem]] N https://esolangs.org/w/index.php?oldid=90160 * Corbin * (+1364) Explain the halting problem in a bit of detail. 12:28:57 -!- arseniiv_ has joined. 12:30:00 -!- SGautam has joined. 12:33:16 [[User talk:Hakerh400/Conjectures]] N https://esolangs.org/w/index.php?oldid=90161 * Corbin * (+1249) Comments on conjecture 4. 12:39:40 fungot: what's a happy life? 12:39:40 int-e: that,, i honestly do not know, the ncs. co-operation between the canadian government, the uk has a very proud day for him, 12:44:02 -!- Koen has joined. 13:15:45 [[Duh]] M https://esolangs.org/w/index.php?diff=90162&oldid=90095 * PythonshellDebugwindow * (+73) /* Implementations */ Categories 13:20:07 [[Truth Machine (language)]] M https://esolangs.org/w/index.php?diff=90163&oldid=90129 * PythonshellDebugwindow * (+1) /* Interpreter in Python */ Python 13:28:17 -!- dutch has quit (Quit: WeeChat 3.3). 13:41:48 -!- lagash has quit (Ping timeout: 268 seconds). 13:56:47 -!- dutch has joined. 14:01:06 -!- lagash has joined. 14:01:32 -!- arseniiv_ has quit (Ping timeout: 268 seconds). 14:18:00 -!- impomatic has joined. 15:31:32 -!- impomatic has quit (Ping timeout: 240 seconds). 15:31:46 -!- impomatic has joined. 15:38:32 -!- impomatic has quit (Ping timeout: 265 seconds). 15:38:45 -!- impomatic has joined. 15:49:26 -!- SGautam has quit (Quit: Connection closed for inactivity). 16:26:35 [[NLRNIS]] https://esolangs.org/w/index.php?diff=90164&oldid=90118 * Fmbalbuena * (+110) 16:30:24 -!- Digit has left (ERC (IRC client for Emacs 27.2)). 16:39:50 -!- Koen_ has joined. 16:42:32 -!- Koen has quit (Ping timeout: 256 seconds). 17:00:35 -!- delta23 has joined. 17:07:26 -!- impomatic has quit (Ping timeout: 245 seconds). 17:07:32 [[Struffoli]] https://esolangs.org/w/index.php?diff=90165&oldid=90110 * Zero player rodent * (-18) 17:20:46 " admittedly i'm not sure how easy his real name is to find if you're not in one of those places he has revealed it." => I think the channel log has a link to ais523's thesis, and to fizzie's and shachaf's, but they're not easy to find 17:24:41 what's fizzies on ? 17:25:02 It's titled "Feature Enhancement and Uncertainty Estimation for Recognition of Noisy and Reverberant Speech". 17:25:30 (I was doing speech recognition things.) 17:30:16 the nethack4 and clc-intercal source code repositories give ais523's other name 17:30:47 so does the ayacc source code 17:30:48 . o O ( speech recognition for echo chambers ) 17:31:31 but I think I only saw ais523's middle name in his thesis 17:31:32 We had a pretty nice anechoic chamber at the university, it was fun to visit. 17:32:17 Felt weird. You couldn't really hear people well if they were talking away from you. 17:44:22 "ARM CPUs, like those found in newer Apple computers, Smartphones or Raspberry Pis, won't support AVX2." hehe (still from https://tech.marksblogg.com/fastest-fizz-buzz.html) 17:45:08 that's the case when the kernel will just refuse to load the program though, not when you get a mysterious undefined behavior or hopefully an illegal instruction fault from AVX2 17:45:34 "You should see "sse2" at a minimum." => umm.... 17:47:33 -!- ais523 has joined. 17:47:47 that blog post is terrible, it doesn't seem to show any understanding of the material it's covering 17:48:08 much of it is just paraphrases of what I said, there's no detail on the interesting bits, and most of the new material is outright wrong 17:48:47 (e.g. it doesn't seem to realise that AVX is newer than / subsumes the SSE family) 17:49:31 yeah 17:51:52 fwiw, I feel like AVX1 on %xmm registers only is a good choice for general-purpose vector programming (AVX2 is better for very high performance when you want big vectorised loops, but AVX1 instructions have very little cost to them so you can just scatter them around a program when they're useful rather than really needing to dedicate your program to them) 17:53:21 [[Muppp]] https://esolangs.org/w/index.php?diff=90166&oldid=90087 * Kaveh Yousefi * (+433) Adjusted the capitalization of the section title Example programs and added an EBNF description of the language. 17:54:09 ais523: yes, RDX and kin are called "general purpose" registers only for legacy reasons, same way as two-byte blocks are called "words" in the intel manual. in reality, XMM0 and kin are the general purpose registers, RDX and kin are index registers. 17:54:54 with SSE4_2 and AVX, we have enough nice instructions on the XMM registers that you can do most calculations in them conveniently 17:55:40 I've seriously wondered about what it would be like to habitually compile all code with vector registers (using scatter/gather instructions to do memory access, as they take the address from a vector register) 17:55:54 if you do that you end up with a model very similar to that of GPU programming 17:56:17 there's still the problem that the ABI relies on the index registers a lot: arguments are usually passed there, and some of them are callee-saved 17:56:29 where you get small amounts of parallelism for free, but the situation with conditionals is pretty akin to INTERCAL 17:56:43 I hate the existing ABI anyway :-D 17:56:48 ais523: well there's still a bunch of utility instructions that operate on index registers, even after scatter-gather, so you can't just ignore them 17:57:34 I think that having a fixed ABI should only be useful for special cases, and compilers should instead pick an ABI on a function-by-function basis 17:58:15 e.g. the vast majority of functions don't care about stack alignment, many functions can preserve the argument registers at no extra cost, some functions prefer to have the return value share a register with an argument, etc. 17:58:39 this would also fix the problem with 256-bit vector arguments on x86-64 17:59:15 (depending on compiler options, they can be passed either in a 256-bit vector register or two 128-bit vector registers, and it's fairly easy to accidentally link code compiled with one ABI against code compiled with the other ABI) 18:00:14 sure, just break all tracrs and debuggers 18:03:03 b_jonas: Wait, a link to my thesis? 18:03:08 at least DWARF is sufficiently expressive to be able to represent this already 18:03:29 ais523: compilers can certainly do that, they are only required to use the ABI for functions exported fro mthe compilation unit, and even so only when they guarantee a stable ABI, unlike eg. rust which doesn't guarantee that you can link to a native ABI compilation unit from a different minor version of compiler 18:03:36 I'd like to read that, since I wasn't aware it existed. 18:03:57 and anyway, I treat "letting existing debuggers work" as a pretty low priority when it comes to designing compilers – design the compiler first, then work out what the appropriate debugger looks like and write it if necessary 18:04:01 shachaf: then I just guessed wrong. I'm not sure what I say that hinted at that. I only found the link to fizzie's thesis 18:04:04 b_jonas: yes but they don't 18:05:02 ais523: yeah, the solution there is that either you need a recent enough version of the debugger and even then nothing is guaranteed, or you have to compile with -O0 . obviously some changes in the compiler can output the info in the existing debugger format, but not all. 18:05:48 "this would also fix the problem with 256-bit vector arguments on x86-64" => wait, isn't that unfixable with an ABI? 18:06:13 b_jonas: well, if the function says what registers it's expecting arguments in, it can just say "pass this in %ymm3" or whatever 18:06:33 at least it's unfixable locally, you can only fix it if your whole program and every library linked to it uses the new ABI, I think 18:06:51 then the function that calls it can do that even if it isn't compiled with AVX – because the function is indicating that it uses AVX instructions, they're going to be used anyway so the caller can use them too 18:07:10 b_jonas: that is the proposal 18:07:50 function pointers will be fun too btw 18:07:54 int-e: ok, that wasn't clea5r to me, because ais523 started with "compilers should instead pick an ABI on a function-by-function basis" 18:07:55 fwiw, I also think that nowadays, it makes sense to just compile multiple versions of the program (for different processor ages) as a matter of course and just get the dynamic loader to choose between them 18:08:16 obviously, the sticking points are a) linking to precompiled libraries, b) dynamic libraries, c) function pointers 18:08:48 in fact function pointers may render this infeasible for non-static functions (for static ones you'll be able to tell whether a function pointer is created or not) 18:08:48 "depending on compiler options, they can be passed either in a 256-bit vector register or two 128-bit vector registers, and it's fairly easy to accidentally link code compiled with one ABI against code compiled with the other ABI" => yes, but 128 bit vs 256 vector registers causes a lot of problems in ways other than argument passing 18:09:04 b_jonas: which problems are you thinking of? 18:09:12 I guess you could duplicate code too 18:10:04 one way to make function pointers work is to have wrappers around functions to which pointers are taken that use a fixed ABI – this is inefficient, but unlikely to be substantially worse than the current way of doing things 18:10:55 ais523: (1) ABI differences not on the compiler level but on the level of a C++ library like eigen where the same high-level matrix class can be represented differently depending on whether you're compiling the library for AVX/AVX2-optimized, as chosen by preprocessor conditionals and also the instruction set extensions that you are compiling to by default 18:11:15 wow 18:11:22 ais523: (2) performance problems when switching between SSE2 and AVX instructions 18:11:24 I didn't realise that that sort of thing happened in practice 18:11:38 it has to happen 18:11:58 -!- kspalaiologos has joined. 18:12:01 we can't just break compatibility with everything that already exists, but sometimes we want to optimize the code better using new instructions 18:12:17 for 2), the situation that causes the performance cost is specifically using an SSEx instruction on a register whose top half (or top three-quarters under AVX-512) is not 0 18:12:20 for the Eigen library, there are enough exposed preprocessor macros that you can make everything compatible 18:12:40 err, but I think on some processors, it isn't enough for it to be 0, it needs to have been explicitly zeroed with a zeroing instruction 18:12:48 this is what VZEROUPPER is for 18:13:39 there's also some low-level problems, I don't quite understand correctly but I think on old MSVC compilers you can't force the stack to be aligned to 32 bytes; and there was or is a bug with the gcc C++ name mangling where two overloaded functions with different types of arguments that differ only in the width of vector arguments passed would mangle to the same name and could both exist in the library 18:14:13 huh, I decided to look up the performance of VZEROUPPER out of curiosity 18:14:34 on Intel, it appears to cost one CPU cycle (i.e. the cost of four integer instructions), which is faster than I expected 18:14:54 and possibly one more gcc ABI incompatibility thing that I don't understand, but that might just be the same thing as the previous one 18:15:08 on recent AMD, it is as fast as NOP (i.e. it costs space in the decode unit but nothing else), which is very surprising 18:15:38 this implies that it's being implemented in the register renamer somehow – maybe the top and bottom half of vector registes are renamed separately 18:15:51 ais523: yes, the switching thing is probably not much of a problem these days with modern cpus 18:16:04 b_jonas: it's actually worse than it used to be, at least if you forget the VZEROUPPER 18:16:14 older processors had fairly big costs per switch 18:16:30 on newer processors, the cost for switching isn't as big, but there's a cost *per instruction* after an invalid switch 18:17:29 so running a single movdqa into a 256-bit vector register, without properly clearing it afterwards, can make the rest of the program run slower if it uses SSE instructions 18:19:48 makes sense 18:21:55 I wonder if the penalties for denormal numbers in floating-point arithmetic increse or decrease 18:23:01 -!- kspalaiologos has quit (Quit: Leaving). 18:24:24 IIRC recent processors are better at denormals than they used to be 18:24:58 although there are things like gcc using --std=gnu99 and friends disabling them entirely (they're supported under --std=c99 and friends) 18:25:22 does "better at denormals" mean that they have to invoke a penalty in fewer situations, or that when there's a penalty they can handle it more gracefully eg. by pausing everything else for a few cycles to handle it rather than rerolling everything and rescheduling? 18:28:26 this might also differ between the brands 18:28:47 it seems like Intel still has a high penalty but it's been happening in fewer situations over time, but there's a lot of fluctuation between processor families 18:28:56 (140 to 190 cycles) 18:29:12 [[2Deadfish/Constants]] https://esolangs.org/w/index.php?diff=90167&oldid=90158 * Squidmanescape * (-14) 18:29:23 meanwhile AMD has a very small penalty by comparison, on the recent processors 18:29:44 some cases of denormals are handled in hardware, it seems to be denormal results that cause the biggest problem as opposed to denormal inputs 18:39:57 in particular, Intel handles normal + denormal = normal in hardware nowadays, no microcode required and no penalty 18:41:16 I see 18:42:25 -!- dyeplexer has quit (Remote host closed the connection). 18:45:23 -!- Koen_ has quit (Quit: Leaving...). 18:47:00 -!- Sgeo has joined. 18:48:47 -!- ais523 has quit (Remote host closed the connection). 19:31:58 -!- Koen has joined. 19:33:19 [[JR]] https://esolangs.org/w/index.php?diff=90168&oldid=73337 * Kaveh Yousefi * (+12) Marked the hyperlink to the interpreter by the language author as invalid, because the respective page cannot be found. 19:49:33 -!- x88x88x has joined. 19:51:45 -!- Everything has joined. 19:53:35 99% of people love filling out surveys 19:59:52 -!- x88x88x has quit (Quit: Using Circe, the loveliest of all IRC clients). 20:21:49 -!- dutch has quit (Quit: WeeChat 3.3). 20:27:59 [[Truth-machine]] https://esolangs.org/w/index.php?diff=90169&oldid=90014 * Zero player rodent * (+4) /* Eek */ 20:37:26 -!- Everything has quit (Ping timeout: 268 seconds). 20:39:38 -!- sprock has quit (Quit: brb). 20:51:45 -!- x88x88x has joined. 20:58:18 -!- x88x88x has quit (Remote host closed the connection). 21:00:31 [[Magritte]] https://esolangs.org/w/index.php?diff=90170&oldid=13033 * Kaveh Yousefi * (+377) Added an implementation of the language in Common Lisp. 21:05:58 -!- dutch has joined. 21:07:21 -!- x88x88x has joined. 21:11:45 -!- sprock has joined. 21:15:15 -!- Koen has quit (Remote host closed the connection). 21:15:24 -!- x88x88x has quit (Remote host closed the connection). 21:15:30 -!- Koen has joined. 21:18:49 -!- x88x88x has joined. 22:04:01 -!- Koen has quit (Remote host closed the connection). 22:28:32 -!- x88x88x has quit (Ping timeout: 240 seconds). 22:45:14 [[User:Squidmanescape]] https://esolangs.org/w/index.php?diff=90171&oldid=90130 * Squidmanescape * (+32) /* Languages I Explicitly Won't Ever Implement */ 22:48:10 -!- Koen has joined. 23:05:45 -!- Koen has quit (Quit: Leaving...).