00:00:04 -!- littlebo1eep has quit (Ping timeout: 240 seconds). 00:03:04 -!- littlebo1eep has joined. 00:03:04 -!- littlebobeep has quit (Ping timeout: 240 seconds). 00:19:43 Some instructions of RISC-V bit manipulation extension seems to be similar to MMIX but seems many don't, and RISC-V does not seems to have the MOR and MXOR instructions of MMIX, even though I think that it would be good. However, RISC-V is 32-bits and 64-bits, and MMIX is only 64-bits, so maybe that is why they did not put them in RISC-V? 00:24:53 [[Path]] https://esolangs.org/w/index.php?diff=97716&oldid=97706 * Masalt * (+78) /* Instructions */ 00:33:29 -!- monoxane4 has joined. 00:34:30 -!- monoxane has quit (Ping timeout: 276 seconds). 00:34:30 -!- monoxane4 has changed nick to monoxane. 00:46:37 [[Special:Log/newusers]] create * Xarthan * New user account 00:46:38 -!- Lord_of_Life has quit (Ping timeout: 258 seconds). 00:47:24 -!- Lord_of_Life has joined. 00:49:12 -!- monoxane9 has joined. 00:51:02 -!- monoxane has quit (Ping timeout: 255 seconds). 00:51:02 -!- monoxane9 has changed nick to monoxane. 01:01:29 [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=97717&oldid=97688 * Xarthan * (+270) 01:06:11 -!- monoxane8 has joined. 01:07:19 -!- monoxane has quit (Ping timeout: 258 seconds). 01:07:20 -!- monoxane8 has changed nick to monoxane. 01:15:56 [[Brain Ah Fuck]] N https://esolangs.org/w/index.php?oldid=97718 * Xarthan * (+155) categories i need to go to bed 01:16:37 [[Brain Ah Fuck]] M https://esolangs.org/w/index.php?diff=97719&oldid=97718 * Xarthan * (+21) i need to go to bed 01:46:31 -!- Sgeo has quit (Read error: Connection reset by peer). 01:48:32 -!- Sgeo has joined. 01:58:22 -!- monoxane1 has joined. 01:59:57 -!- monoxane has quit (Ping timeout: 256 seconds). 01:59:57 -!- monoxane1 has changed nick to monoxane. 02:07:52 -!- monoxane1 has joined. 02:08:30 -!- monoxane has quit (Ping timeout: 246 seconds). 02:08:30 -!- monoxane1 has changed nick to monoxane. 02:13:51 -!- monoxane2 has joined. 02:15:49 -!- monoxane has quit (Ping timeout: 256 seconds). 02:15:49 -!- monoxane2 has changed nick to monoxane. 02:23:04 -!- monoxane5 has joined. 02:23:54 -!- monoxane has quit (Ping timeout: 246 seconds). 02:23:54 -!- monoxane5 has changed nick to monoxane. 02:28:37 [[Gino]] M https://esolangs.org/w/index.php?diff=97720&oldid=97699 * Z Ling * (+5) 02:29:07 [[Gino]] M https://esolangs.org/w/index.php?diff=97721&oldid=97720 * Z Ling * (-2) 02:29:24 [[Gino]] https://esolangs.org/w/index.php?diff=97722&oldid=97721 * Z Ling * (-5) /* */ 02:30:40 -!- monoxane1 has joined. 02:31:50 -!- monoxane has quit (Ping timeout: 255 seconds). 02:31:50 -!- monoxane1 has changed nick to monoxane. 02:37:17 [[Gino]] M https://esolangs.org/w/index.php?diff=97723&oldid=97722 * Z Ling * (+281) 02:57:34 -!- littlebo1eep has quit (Ping timeout: 240 seconds). 03:09:30 [[Gino]] https://esolangs.org/w/index.php?diff=97724&oldid=97723 * Z Ling * (-43) /* */ 03:12:11 -!- monoxane8 has joined. 03:13:50 -!- monoxane has quit (Ping timeout: 240 seconds). 03:13:50 -!- monoxane8 has changed nick to monoxane. 03:14:59 `? password 03:15:03 The password of the month is not a password, but a special phrase-guessing operation. 03:24:12 [[Gino]] https://esolangs.org/w/index.php?diff=97725&oldid=97724 * Z Ling * (+721) /* */ 03:24:50 `dowg password 03:24:53 12452:2022-05-11 learn The password of the month is not a password, but a special phrase-guessing operation. \ 12450:2022-03-01 learn The password of the month is marching on. \ 12448:2022-02-02 learn The password of the month is decided with a non-terminating computation. \ 12445:2022-01-01 learn The password of the month is Caught-22 \ 12444:2022-01-01 learn The password of the month is Catch-22 \ 12432 03:25:12 There was no password of April? 03:25:41 [[Gino]] M https://esolangs.org/w/index.php?diff=97726&oldid=97725 * Z Ling * (-135) /* */ 03:28:30 [[Gino]] M https://esolangs.org/w/index.php?diff=97727&oldid=97726 * Z Ling * (+557) /* */ 03:31:12 [[Gino]] https://esolangs.org/w/index.php?diff=97728&oldid=97727 * Z Ling * (-491) /* */ 03:31:36 [[Gino]] M https://esolangs.org/w/index.php?diff=97729&oldid=97728 * Z Ling * (-8) /* */ 03:40:29 [[Gino]] M https://esolangs.org/w/index.php?diff=97730&oldid=97729 * Z Ling * (+345) 03:50:03 [[User:Masalt]] https://esolangs.org/w/index.php?diff=97731&oldid=97520 * Masalt * (-2) /* Coming Soon */ 03:50:14 -!- littlebobeep has joined. 03:50:43 [[User:Masalt]] https://esolangs.org/w/index.php?diff=97732&oldid=97731 * Masalt * (+3) /* Coming Soon */ 03:54:07 [[]] N https://esolangs.org/w/index.php?oldid=97733 * Masalt * (+98) Created page with "{{stub}}{{WIP}} is an [[esoteric programming language]] made by [[User:Masalt]] in Python 3." 03:54:45 [[Gino]] https://esolangs.org/w/index.php?diff=97734&oldid=97730 * Z Ling * (+477) 03:55:57 [[Gino]] M https://esolangs.org/w/index.php?diff=97735&oldid=97734 * Z Ling * (+6) /* */ 03:57:24 -!- monoxane6 has joined. 03:58:23 -!- monoxane has quit (Ping timeout: 256 seconds). 03:58:24 -!- monoxane6 has changed nick to monoxane. 04:02:32 [[Gino]] https://esolangs.org/w/index.php?diff=97736&oldid=97735 * Z Ling * (-362) 04:03:31 [[Gino]] https://esolangs.org/w/index.php?diff=97737&oldid=97736 * Z Ling * (+55) 04:11:14 -!- monoxane7 has joined. 04:13:14 -!- monoxane has quit (Ping timeout: 258 seconds). 04:13:15 -!- monoxane7 has changed nick to monoxane. 04:13:28 [[Gino]] https://esolangs.org/w/index.php?diff=97738&oldid=97737 * Z Ling * (+183) 04:15:06 [[Gino]] https://esolangs.org/w/index.php?diff=97739&oldid=97738 * Z Ling * (+61) /* */ 04:17:33 [[Gino]] https://esolangs.org/w/index.php?diff=97740&oldid=97739 * Z Ling * (+85) 04:19:47 -!- monoxane2 has joined. 04:20:07 -!- monoxane has quit (Ping timeout: 240 seconds). 04:20:07 -!- monoxane2 has changed nick to monoxane. 04:28:37 -!- monoxane2 has joined. 04:31:06 -!- monoxane has quit (Ping timeout: 276 seconds). 04:31:06 -!- monoxane2 has changed nick to monoxane. 04:40:40 -!- monoxane9 has joined. 04:42:35 -!- monoxane has quit (Ping timeout: 256 seconds). 04:42:36 -!- monoxane9 has changed nick to monoxane. 05:06:10 -!- monoxane5 has joined. 05:07:21 -!- monoxane has quit (Ping timeout: 246 seconds). 05:07:21 -!- monoxane5 has changed nick to monoxane. 05:13:20 -!- monoxane9 has joined. 05:14:11 -!- monoxane has quit (Ping timeout: 258 seconds). 05:14:12 -!- monoxane9 has changed nick to monoxane. 05:46:41 -!- monoxane has quit (Ping timeout: 255 seconds). 05:47:38 -!- monoxane has joined. 05:49:46 [[Gino]] https://esolangs.org/w/index.php?diff=97741&oldid=97740 * Z Ling * (-59) /* */ 05:51:30 -!- monoxane0 has joined. 05:52:13 [[Gino]] https://esolangs.org/w/index.php?diff=97742&oldid=97741 * Z Ling * (-14) 05:53:26 -!- monoxane has quit (Ping timeout: 255 seconds). 05:54:01 [[User talk:Z Ling]] N https://esolangs.org/w/index.php?oldid=97743 * Z Ling * (+0) Created blank page 05:55:25 -!- monoxane has joined. 05:56:44 -!- monoxane0 has quit (Ping timeout: 258 seconds). 06:04:34 -!- littlebobeep has quit (Ping timeout: 240 seconds). 06:34:13 -!- Sgeo has quit (Read error: Connection reset by peer). 06:35:41 -!- monoxane6 has joined. 06:37:18 -!- monoxane has quit (Ping timeout: 246 seconds). 06:37:19 -!- monoxane6 has changed nick to monoxane. 06:42:05 -!- definitelya has joined. 06:54:12 lets talk about complexity 06:54:17 exists L, K(x) > L 06:54:23 no 06:54:32 exists L, ~Prf[K(x) > L] 06:54:55 exists L, forall x, ~Prf[K(,x) > L] 06:55:00 I guess this is the correct statement 06:55:11 we want to prove it by contradiction 06:55:25 so assume that for all L, exists x, Prf[K(,x) > L] 06:56:54 why is this contradictory? 06:58:01 we have to make a computer program that loops through all proofs in size order 06:59:08 so this program will get us an x and a proof of K(x) > L 06:59:44 the size of this program is O(1) + log(L) 07:00:49 therefor K(x) = O(1) + log(L) which will be < L at some point 07:00:52 that is a contradiction 07:05:42 this makes sense 07:07:43 wait there is an error here? 07:07:55 we fixed x and increased L 07:08:01 but the order of quantifiers does not allow that? 07:12:13 I think you want L to be the size of your program. 07:14:12 L is supposed to be a number 07:14:49 Yes. Make it be the size of the program (which also includes L, which takes log L bits). 07:15:06 hmm 07:15:21 the program isn't "closed", it takes an input x 07:15:37 I thought it searches for x. 07:15:41 oh yes you're right 07:16:01 it outputs a pair, (x : Nat, prf : Prf[K(,x) > L]) 07:16:36 so we can actually calculate such an L for real 07:16:50 (smaller L may exist) 07:16:52 the PDF suggested that L was completely unknown 07:17:11 No, you can upper-bound it with the size of such a program. 07:18:26 I should never say "upper-bound" or "lower-bound" when I can just say "bound" and people will assume I know which one I meant. 07:18:34 It's just a coin flip, especially past midnight. 07:18:42 very good 07:18:55 now there is an interesting point next 07:19:13 we cannot prove any K(x) > L 07:19:27 but there is a reasonable argument that K(x) > L is actually true for some x's 07:19:46 Of course, it's true for almost all xs. 07:20:04 which is interesting, because i remember people making a big fuss about how the godel sentence was true - and i was always extremely suspicious of that 07:20:27 it seemed a bit abstract, and the reasoning a bit vague 07:21:00 Hmm, how do you feel about the following: "river can't agree with this sentence" 07:22:54 actually I don't understand why K(x) > L is true 07:23:05 its something to do with 2^L 07:24:19 Right, it's the pigeonhole argument about compression. 07:24:52 hmm 07:25:17 K(x) can be read as 'the best we can compress x' 07:25:30 oh okay 07:26:10 There are only about 2^L programs shorter than L. Each one of them emits one string if it halts. That's a finite set of strings. 07:26:27 there's exponentially many strings, and compression can be arbitrarily good.. but the problem is there's only so many "short" strings for someone to be compressed into 07:26:31 So all the other strings out there require bigger programs (since certainly every string has a program that prints it). 07:26:41 ahh nice explanation 07:27:11 that shows us that for every L, there does exist an x such that K(x) > L 07:27:19 but we proved that we cannot prove this for large enough L 07:27:26 this seems like a contradiction? 07:27:36 we proved that we can't prove something.. then we proved it 07:27:37 We can't prove it for any specific string. 07:27:50 oh interesting 07:27:54 I see! 07:28:03 is that at all similar to omega consistency? 07:28:21 If you see a big random-looking string, bigger than L, you might say "you can't do much better than just print(s) to generate this string, it's basically incompressible". 07:28:29 But then maybe you can find out that it was actually generated by a small program. 07:28:30 yeah 07:28:55 if the string is really big it's literally *impossible* to prove that it was generate by a short program 07:29:03 that's really surprising 07:29:22 short program is wrong 07:29:33 let's call a program with size > L , a big program 07:29:34 Impossible to prove that it wasn't. 07:29:48 if the string is really big it's literally *impossible* to prove that it needs to be generated by a big program 07:29:59 that's less shocking, but still surprising 07:30:20 If you have a small program that generates it, the proof is just "run this program for k steps". 07:30:32 to prove that something needs to be generated by a big program, you need to show that it cannot be generated by all ~2^n smaller programs 07:30:40 Hmm, I don't think this is omega-consistency. 07:30:44 and 2^n is basically infinity? 07:31:17 Well, the issue is the halting problem. 07:31:34 You can run all those programs, and some of them will halt quickly, and some will halt after a long time, and some will never halt. 07:31:43 And you can't tell the latter two apart. 07:32:16 yeah 07:32:24 so there's some scary programs in there 07:32:39 ones that do not halt 07:32:43 but cannot be proven to not halt 07:33:12 Hmm, the ones that don't halt may not be the ones to be scared of. 07:33:21 oh! 07:33:26 How small do you think the smallest program that can trick you is? 07:33:39 probably smaller than i'd expect 07:34:01 3 bytes of x86-64 was enough for me. 07:34:06 wow! 07:34:18 what did it do? 07:34:33 Someone here asked about 3-byte sequences to set a register to -1. 07:34:48 So I did a brute-force search over all 256^3 sequences. 07:35:09 And there were a bunch of surprising things, like programs cheating in various ways. 07:35:27 (Managing to return success for the test even though they didn't actually set the register to -1.) 07:35:52 There were all sorts of weird crashes, the thing forking itself in ways I was trying to prevent and failed, all sorts of things. 07:36:48 that's amazing 07:37:00 I always wanted to run a survey for termination proofs for all short programs 07:37:05 with the aim of finding hard ones to prove 07:37:14 I should write it up, it was pretty good. 07:37:22 i would love to read about it! 07:37:38 -!- monoxane0 has joined. 07:39:52 -!- monoxane has quit (Ping timeout: 272 seconds). 07:39:53 -!- monoxane0 has changed nick to monoxane. 07:43:04 What's this PDF? 07:48:14 http://www.ams.org/notices/201011/rtx101101454p.pdf 07:48:25 so far we discussed the 1st incompleteness theorem 07:48:38 the 2nd theorem comes from an adaptation of the surprise examination paradox 08:02:35 hm 08:14:35 -!- monoxane3 has joined. 08:16:32 -!- monoxane has quit (Ping timeout: 255 seconds). 08:16:32 -!- monoxane3 has changed nick to monoxane. 08:39:14 -!- monoxane8 has joined. 08:39:56 -!- monoxane has quit (Ping timeout: 244 seconds). 08:39:57 -!- monoxane8 has changed nick to monoxane. 09:34:22 [[Gino]] M https://esolangs.org/w/index.php?diff=97744&oldid=97742 * Z Ling * (+72) 09:36:45 [[Gino]] M https://esolangs.org/w/index.php?diff=97745&oldid=97744 * Z Ling * (+42) 09:58:50 [[OISC:3]] M https://esolangs.org/w/index.php?diff=97746&oldid=96056 * McChuck * (+18) 10:00:09 [[OISC:2bis]] M https://esolangs.org/w/index.php?diff=97747&oldid=96062 * McChuck * (+18) 10:06:25 [[OISC:2bis]] M https://esolangs.org/w/index.php?diff=97748&oldid=97747 * McChuck * (+1) /* Summary */ 10:07:43 -!- __monty__ has joined. 10:08:32 [[OISC:2bis]] M https://esolangs.org/w/index.php?diff=97749&oldid=97748 * McChuck * (+16) /* Summary */ 11:00:36 -!- monoxane7 has joined. 11:01:42 -!- monoxane has quit (Ping timeout: 260 seconds). 11:01:42 -!- monoxane7 has changed nick to monoxane. 11:18:25 -!- littlebobeep has joined. 11:22:07 -!- Hoolootwo has joined. 11:25:34 -!- littlebobeep has quit (Ping timeout: 240 seconds). 11:37:07 -!- littlebobeep has joined. 11:56:05 -!- monoxane4 has joined. 11:58:18 -!- monoxane has quit (Ping timeout: 276 seconds). 11:58:18 -!- monoxane4 has changed nick to monoxane. 12:06:39 [[Gino]] M https://esolangs.org/w/index.php?diff=97750&oldid=97745 * Z Ling * (-13) /* */ 12:12:14 -!- tech_exorcist has joined. 12:33:26 -!- Thedarkb-Desktop has joined. 12:51:49 -!- archenoth has quit (Remote host closed the connection). 12:52:14 -!- archenoth has joined. 12:57:56 [[Self-interpreter]] N https://esolangs.org/w/index.php?oldid=97751 * Peter * (+104) Created page with "{{stub}} A '''self-interpreter''' is an [[interpreter]] written in the same language that it interprets." 13:34:04 -!- littlebobeep has quit (Ping timeout: 240 seconds). 13:52:05 -!- Cale has quit (Ping timeout: 258 seconds). 13:52:44 -!- Cale has joined. 14:25:49 [[Bundle]] https://esolangs.org/w/index.php?diff=97752&oldid=97598 * Lanksy * (+112) /* Commands */ 14:31:35 -!- Sgeo has joined. 14:41:00 [[Self-interpreter]] M https://esolangs.org/w/index.php?diff=97753&oldid=97751 * Corbin * (+1423) Category, blurb. 14:57:13 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97754&oldid=97715 * PixelatedStarfish * (-290) /* Updates */ 14:57:42 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97755&oldid=97754 * PixelatedStarfish * (+21) /* Updates */ 15:20:18 [[]] M https://esolangs.org/w/index.php?diff=97756&oldid=97733 * PythonshellDebugwindow * (+24) Add category 15:24:54 [[Brain Ah Fuck]] M https://esolangs.org/w/index.php?diff=97757&oldid=97719 * PythonshellDebugwindow * (-19) Stub, categories 16:00:48 "Note that I said that an assembly programmer can generate better code than a compiler, not will generate better code. While it is true that good assembly code is better than good compiled code, it is also true that bad assembly code is often much worse than bad compiled code; since the assembly programmer has so much control over the program, he or she has virtually unlimited opportunities to waste cycles and bytes. The sword cuts both ways, and good assembly 16:00:48 code requires more, not less, forethought and planning than good code written in a high-level language." 16:04:26 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97758&oldid=97755 * PixelatedStarfish * (+1269) /* Design Goals: Why Use BunnyBell? */ 16:05:35 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97759&oldid=97758 * PixelatedStarfish * (-21) /* Design Goals: Why Use BunnyBell? */ 16:06:00 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97760&oldid=97759 * PixelatedStarfish * (-11) /* Design Goals: Why Use BunnyBell? */ 16:06:29 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97761&oldid=97760 * PixelatedStarfish * (+10) /* Design Goals: Why Use BunnyBell? */ 16:08:39 Sgeo: . o O ( And then the next CPU generation comes along and invalidates all the optimization choices you made. ) 16:09:35 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97762&oldid=97761 * PixelatedStarfish * (+2) /* Cat (Echo) */ 16:10:00 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97763&oldid=97762 * PixelatedStarfish * (-259) /* Cat (Echo) */ 16:10:41 It's not that the claim is false; it's hard to justify the effort for the increasingly meager gains from diving into assembly, except when the compiler actually does something stupid. (register allocation is far from perfect; manual assembly code can sometimes avoid spills, and that can actually pay off. vectorization is also a weak spot but the first step in that case is to use intrinsics) 16:14:15 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97764&oldid=97763 * PixelatedStarfish * (+0) /* Error Codes */ 16:23:07 this, yes. it's worth to understand how the CPU works, especially the cache hierarchy, and all the basics before that, if you want to write good high-level code, but you very rarely have to write assembly code instead of telling the compiler the right hints. 16:24:07 [[Deadfish]] https://esolangs.org/w/index.php?diff=97765&oldid=97701 * Tux1 * (+1859) 16:29:56 [[Deadfish]] https://esolangs.org/w/index.php?diff=97766&oldid=97765 * Tux1 * (+184) 16:30:04 -!- littlebobeep has joined. 16:47:34 -!- littlebobeep has quit (Ping timeout: 240 seconds). 17:04:02 -!- littlebobeep has joined. 17:08:34 -!- littlebobeep has quit (Ping timeout: 240 seconds). 17:22:55 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97767&oldid=97764 * PixelatedStarfish * (+2421) /* Proof by Translation to bf */ 17:29:26 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97768&oldid=97767 * PixelatedStarfish * (+337) /* Algorithm */ 17:29:40 -!- littlebobeep has joined. 17:30:04 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97769&oldid=97768 * PixelatedStarfish * (+6) /* =Bell */ 17:30:18 [[Self-interpreter]] https://esolangs.org/w/index.php?diff=97770&oldid=97753 * Peter * (-10) 17:30:44 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97771&oldid=97769 * PixelatedStarfish * (+2) /* Address */ 17:31:04 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97772&oldid=97771 * PixelatedStarfish * (-1) /* Index */ 17:33:40 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97773&oldid=97772 * PixelatedStarfish * (+99) /* Bug */ 17:34:01 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97774&oldid=97773 * PixelatedStarfish * (+2) /* Bug */ 17:35:31 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97775&oldid=97774 * PixelatedStarfish * (-190) /* Stack Overflow */ 17:36:48 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97776&oldid=97775 * PixelatedStarfish * (+186) /* Proof by Translation to bf */ 17:37:58 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97777&oldid=97776 * PixelatedStarfish * (+4) /* Bug */ 17:38:54 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97778&oldid=97777 * PixelatedStarfish * (-1) /* Comment */ 17:39:48 [[Zetta]] N https://esolangs.org/w/index.php?oldid=97779 * Masalt * (+145) Created page with "{{stub}} {{WIP}} Zetta is an awful [[brainf***]] derivative. ==[[Popular problem|Examples]]== ===[[Hello World]]=== Hello World[<]>,,,,,,,,,,," 17:53:33 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97780&oldid=97778 * PixelatedStarfish * (+414) /* Bell */ 17:53:58 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97781&oldid=97780 * PixelatedStarfish * (+2) /* Bell */ 17:56:10 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97782&oldid=97781 * PixelatedStarfish * (+108) /* EBNF */ 17:58:27 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97783&oldid=97782 * PixelatedStarfish * (+83) /* Stack Overflow */ 18:13:17 -!- Thedarkb-Desktop has quit (Read error: Connection reset by peer). 18:13:36 -!- Thedarkb-Desktop has joined. 18:16:04 -!- littlebobeep has quit (Ping timeout: 240 seconds). 18:24:10 -!- littlebobeep has joined. 18:26:12 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97784&oldid=97783 * PixelatedStarfish * (+71) /* Call */ 18:31:07 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97785&oldid=97784 * PixelatedStarfish * (+286) /* Heap */ 18:32:47 -!- monoxane6 has joined. 18:33:19 -!- monoxane has quit (Ping timeout: 256 seconds). 18:33:20 -!- monoxane6 has changed nick to monoxane. 18:36:26 [[Zetta]] https://esolangs.org/w/index.php?diff=97786&oldid=97779 * Masalt * (+117) 18:37:10 [[User:Masalt]] https://esolangs.org/w/index.php?diff=97787&oldid=97732 * Masalt * (+11) /* Languages */ 18:38:31 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97788&oldid=97785 * PixelatedStarfish * (+184) /* Error */ 18:42:09 -!- monoxane has quit (Ping timeout: 246 seconds). 18:42:33 -!- monoxane9 has joined. 18:54:23 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97789&oldid=97788 * PixelatedStarfish * (+19) /* Error */ 18:58:55 -!- monoxane has joined. 18:58:58 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97790&oldid=97789 * PixelatedStarfish * (+245) /* Stack */ 19:00:30 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97791&oldid=97790 * PixelatedStarfish * (+57) /* Function */ 19:01:20 -!- monoxane9 has quit (Ping timeout: 272 seconds). 19:03:46 [[Zetta]] https://esolangs.org/w/index.php?diff=97792&oldid=97786 * Masalt * (-8) 19:17:31 -!- vyv has joined. 19:25:15 [[User:Masalt]] https://esolangs.org/w/index.php?diff=97793&oldid=97787 * Masalt * (-1) /* Coming Soon */ 19:43:25 -!- monoxane1 has joined. 19:44:10 -!- monoxane has quit (Ping timeout: 240 seconds). 19:44:11 -!- monoxane1 has changed nick to monoxane. 19:47:45 [[DONT YOU LECTURE ME WITH YOUR THIRTY DOLLAR LANGUAGE]] N https://esolangs.org/w/index.php?oldid=97794 * Masalt * (+378) Created page with "DONT YOU LECTURE ME WITH YOUR THIRTY DOLLAR LANGUAGE is a language made by [[User:Masalt]] in Python 3. ==[[Popular problem|Example Programs]] ===[[Hello World]]=== DONT YOU..." 19:47:58 [[DONT YOU LECTURE ME WITH YOUR THIRTY DOLLAR LANGUAGE]] https://esolangs.org/w/index.php?diff=97795&oldid=97794 * Masalt * (+2) 19:48:28 [[DONT YOU LECTURE ME WITH YOUR THIRTY DOLLAR LANGUAGE]] https://esolangs.org/w/index.php?diff=97796&oldid=97795 * Masalt * (+17) 19:49:39 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97797&oldid=97791 * PixelatedStarfish * (+379) /* ASCII Table */ 20:00:42 -!- vyv has quit (Quit: Konversation terminated!). 20:10:32 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97798&oldid=97797 * PixelatedStarfish * (-11) /* Syntax */ 20:14:34 -!- littlebobeep has quit (Ping timeout: 240 seconds). 20:18:04 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97799&oldid=97798 * PixelatedStarfish * (+218) /* Stack Overflow */ 20:18:53 [[DONT YOU LECTURE ME WITH YOUR THIRTY DOLLAR LANGUAGE]] https://esolangs.org/w/index.php?diff=97800&oldid=97796 * Masalt * (+16) /* Example Programs */ 20:19:03 [[DONT YOU LECTURE ME WITH YOUR THIRTY DOLLAR LANGUAGE]] https://esolangs.org/w/index.php?diff=97801&oldid=97800 * Masalt * (-1) /* Cat Program */ 20:24:11 [[DONT YOU LECTURE ME WITH YOUR THIRTY DOLLAR LANGUAGE]] https://esolangs.org/w/index.php?diff=97802&oldid=97801 * Masalt * (-6) /* Example Programs */ 20:24:58 -!- monoxane5 has joined. 20:26:23 -!- littlebobeep has joined. 20:26:44 -!- monoxane has quit (Ping timeout: 244 seconds). 20:26:45 -!- monoxane5 has changed nick to monoxane. 20:28:59 -!- Thedarkb-Desktop has quit (Remote host closed the connection). 20:30:30 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97803&oldid=97799 * PixelatedStarfish * (+538) /* Bell */ 20:30:49 -!- tech_exorcist has quit (Quit: Disconnecting). 20:32:51 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97804&oldid=97803 * PixelatedStarfish * (+39) /* Bug */ 20:33:10 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97805&oldid=97804 * PixelatedStarfish * (-1) /* Bug */ 20:36:04 -!- littlebobeep has quit (Ping timeout: 240 seconds). 20:36:40 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97806&oldid=97805 * PixelatedStarfish * (+247) /* Heap */ 20:37:14 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97807&oldid=97806 * PixelatedStarfish * (-1) /* Parent */ 20:39:11 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97808&oldid=97807 * PixelatedStarfish * (+93) /* Heap */ 20:39:14 [[Deadfish]] https://esolangs.org/w/index.php?diff=97809&oldid=97766 * Tux1 * (+0) 20:41:45 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97810&oldid=97808 * PixelatedStarfish * (+39) /* Integer */ 20:43:21 -!- littlebobeep has joined. 20:43:27 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97811&oldid=97810 * PixelatedStarfish * (+94) /* Integer */ 20:47:16 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97812&oldid=97811 * PixelatedStarfish * (+25) /* Long */ 20:56:42 -!- monoxane2 has joined. 20:57:27 -!- monoxane has quit (Ping timeout: 240 seconds). 20:57:27 -!- monoxane2 has changed nick to monoxane. 20:59:03 [[DONT YOU LECTURE ME WITH YOUR THIRTY DOLLAR LANGUAGE]] https://esolangs.org/w/index.php?diff=97813&oldid=97802 * Masalt * (+107) /* Example Programs */ 21:08:35 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97814&oldid=97812 * PixelatedStarfish * (+10) /* Updates */ 21:09:00 [[Brain Ah Fuck]] https://esolangs.org/w/index.php?diff=97815&oldid=97757 * Xarthan * (+475) i went to bed 21:09:26 [[Brain Ah Fuck]] M https://esolangs.org/w/index.php?diff=97816&oldid=97815 * Xarthan * (+0) error fixed 21:10:07 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97817&oldid=97814 * PixelatedStarfish * (-87) /* Bell */ 21:11:36 -!- monoxane3 has joined. 21:12:31 -!- monoxane has quit (Ping timeout: 258 seconds). 21:12:32 -!- monoxane3 has changed nick to monoxane. 21:20:24 -!- monoxane8 has joined. 21:21:51 -!- monoxane has quit (Ping timeout: 276 seconds). 21:21:51 -!- monoxane8 has changed nick to monoxane. 21:27:18 [[RunR]] https://esolangs.org/w/index.php?diff=97818&oldid=94826 * Stasoid * (+0) make hello world print a space instead of NUL 21:35:46 -!- monoxane5 has joined. 21:36:55 -!- monoxane has quit (Ping timeout: 256 seconds). 21:36:56 -!- monoxane5 has changed nick to monoxane. 21:42:25 [[RunR]] https://esolangs.org/w/index.php?diff=97819&oldid=97818 * Stasoid * (-68) fix the spec to match actual behavior of the interpreter 21:45:57 -!- __monty__ has quit (Quit: leaving). 21:46:58 -!- monoxane4 has joined. 21:49:09 -!- monoxane has quit (Ping timeout: 276 seconds). 21:49:09 -!- monoxane4 has changed nick to monoxane. 21:49:11 -!- definitelya has quit (Quit: h). 21:56:13 -!- monoxane9 has joined. 21:57:33 [[Talk:RunR]] https://esolangs.org/w/index.php?diff=97820&oldid=58849 * Stasoid * (+184) 21:58:15 -!- monoxane has quit (Ping timeout: 276 seconds). 21:58:15 -!- monoxane9 has changed nick to monoxane. 22:12:13 -!- monoxane6 has joined. 22:12:51 -!- monoxane has quit (Ping timeout: 246 seconds). 22:12:52 -!- monoxane6 has changed nick to monoxane. 22:13:51 [[Brain Ah Fuck]] https://esolangs.org/w/index.php?diff=97821&oldid=97816 * Xarthan * (+236) instructions 22:15:46 [[A?b.]] https://esolangs.org/w/index.php?diff=97822&oldid=95620 * Masalt * (+3) 22:18:17 [[A?b.]] https://esolangs.org/w/index.php?diff=97823&oldid=97822 * Masalt * (-2) 22:19:27 -!- monoxane3 has joined. 22:20:08 [[Zetta]] https://esolangs.org/w/index.php?diff=97824&oldid=97792 * Masalt * (+24) 22:20:10 -!- monoxane has quit (Ping timeout: 240 seconds). 22:20:11 -!- monoxane3 has changed nick to monoxane. 22:21:02 -!- ais523 has joined. 22:21:08 Is C-INTERCAL capable of using the PEXT instruction of x86? ← yes, it is 22:22:04 re: humans beating compilers, one big advantage for the humans is that they can change the meaning of the code when optimising, because they know it will be equivalent 22:23:24 register spilling is such a weird topic on modern processors – they have easily enough registers but can run out of register *names*, so you spill the register just to have some way to refer to it 22:23:51 [[Zetta]] https://esolangs.org/w/index.php?diff=97825&oldid=97824 * Masalt * (+156) 22:23:56 it seems so wasteful – perhaps a subset of memory addresses should be reserved to refer to registers beyond the normal 16 22:24:23 [[Zetta]] https://esolangs.org/w/index.php?diff=97826&oldid=97825 * Masalt * (+17) 22:24:33 that could even be made forwards-compatible by mapping the addresses 22:25:34 [[RunR]] https://esolangs.org/w/index.php?diff=97827&oldid=97819 * Stasoid * (+55) /* External resources */ 22:25:55 -!- monoxane3 has joined. 22:26:08 -!- monoxane has quit (Ping timeout: 255 seconds). 22:26:08 -!- monoxane3 has changed nick to monoxane. 22:27:27 [[Self-interpreter]] https://esolangs.org/w/index.php?diff=97828&oldid=97770 * Ais523 * (+187) /* Folklore */ why a self-interpreter doesn't prove Turing-completeness 22:27:42 [[Category:Bad]] N https://esolangs.org/w/index.php?oldid=97829 * Masalt * (+42) Created page with "The category of objectively bad languages." 22:29:23 [[Special:Log/delete]] delete * Ais523 * deleted "[[Category:Bad]]": unapproved category 22:29:38 Corbin: I'm not convinced that homoiconicity is required for an interpreter to be metacircular; for example, https://esolangs.org/wiki/Advance_The_Wheel! has a metacircular data pointer which is completely unrelated to the syntax 22:30:00 (the exclamation mark is part of the link but some clients may treat it as separate, so the link may be broken) 22:30:22 [[Advance The Wheel]] N https://esolangs.org/w/index.php?oldid=97830 * Ais523 * (+32) punct redir 22:30:27 fixed the link :-) 22:32:02 ais523: I didn't mean to take a controversial stance. Feel free to change it. 22:32:23 Corbin: I don't think it is necessarily controversial – this is a topic that I'm not sure I fully understand myself 22:33:11 hmm, I guess the way I'm thinking about this is, in an interpreter, each element of the program being interpreted has to be represented as something in the interpreting program 22:33:47 e.g. in the ATW! self-interpreter, the wheel position is represented as the instruction pointer, the instruction pointer and program are represented as queue 1, the data pointer is represented as the data pointer 22:33:58 and the case of something being represented as itself is an interesting special case 22:34:34 metacircularity is related to this special case, but I'm not sure that it's the same 22:36:20 [[Brain Ah Fuck]] https://esolangs.org/w/index.php?diff=97831&oldid=97821 * Xarthan * (+550) Hello, world! and some instructions clarifications and punctuations 22:37:29 [[Brain Ah Fuck]] M https://esolangs.org/w/index.php?diff=97832&oldid=97831 * Xarthan * (-8) oops 22:37:35 -!- Hoolootwo has quit (Quit: ZNC 1.7.5+deb4 - https://znc.in). 22:38:53 -!- monoxane6 has joined. 22:39:36 -!- Hooloovoo has joined. 22:39:50 -!- monoxane has quit (Ping timeout: 240 seconds). 22:39:51 -!- monoxane6 has changed nick to monoxane. 22:41:06 actually I'm not convinced that anyone knows what metacircularity actually is 22:41:27 [[Brain Ah Fuck]] M https://esolangs.org/w/index.php?diff=97833&oldid=97832 * Xarthan * (-12) added wip 22:41:40 there are some things which are clearly metacircular, but there's a lot of grey area too and it's unclear where the boundaries of the definition are 22:43:40 hmm, maybe ATW! actually is homoiconic? in that the interpreter operates on source code directly, it doesn't parse it at all (because the source format is so simple that it doesn't need parsing) 22:46:40 I read that GCC has some built-in functions that use PEXT and other instructions if a flag is specified; how can you detect those flags by preprocessor? 22:47:42 zzo38: Intel and AMD recommend looking for the flag in question at runtime, rather than compile time – there is a CPU instruction to return the flags 22:48:06 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97834&oldid=97817 * PixelatedStarfish * (+181) /* Syntax */ 22:48:51 -!- monoxane1 has joined. 22:48:59 there don't seem to be any predefined #defines with GNU cpp that lists them 22:49:02 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97835&oldid=97834 * PixelatedStarfish * (+77) /* Turing Complete */ 22:50:17 there's an attribute to assume certain flags when compiling a function 22:50:40 -!- monoxane has quit (Ping timeout: 258 seconds). 22:50:40 -!- monoxane1 has changed nick to monoxane. 22:50:51 but I guess the issue is that you're supposed to tell gcc whether it's allowed to use instructions like PEXT and PDEP, rather than it telling you, as it's you rather than it that knows which processors might run the resulting executable 22:54:46 Yes, although you might want to put in your own optimizations that use such instructions if they are enabled, especially if you want to make it compatible with older versions of the compiler, or other target computers which might not have such instructions, etc. 22:56:08 Rust has a conditional compliation attribute (similar to a preprocessor directive) to compile something only if certain instructions are enabled – it would make sense for GNU C to have one too, but I haven't been able to find it 22:56:48 [[Language list]] https://esolangs.org/w/index.php?diff=97836&oldid=97690 * Masalt * (+34) 22:57:10 zzo38: aha, there's __builtin_cpu_supports 22:57:32 so in this case, it'd be __builtin_cpu_supports("bmi2") 22:57:34 " perhaps a subset of memory addresses should be reserved to refer to registers beyond the normal 16" => how would that be different from the current situation where you use addresses relative to the stack pointer for extra temporary values, since accessing those has a compact encoding with a 1-byte offset, and better and better optimizations in the cpu for accessing them? 22:57:45 but, that's a runtime detection, rather than compile-time, it returns the correct value for the actual processor 22:57:57 so it needs to be used in an if statement rather than by the preprocessor 22:58:13 b_jonas: it wouldn't actually youch memory 22:58:16 * touch 22:58:31 that means that you aren't tying up memory read/write ports 22:58:46 The other way, then, would be that you will have to add them by yourself (by using -D), but this isn't as good since it cannot be used e.g. if you specify to target the same computer that it is being compiled on automatically. 22:59:40 yes 22:59:55 there does seem to be a use case for this, but either gcc doesn't have a way to do it, or I can't find it 23:00:04 -!- littlebobeep has quit (Ping timeout: 240 seconds). 23:02:50 " actually I'm not convinced that anyone knows what metacircularity actually is" => Douglas Hofstadter might know; Raymond Smullyan probably did know but he passed away in 2017 23:03:27 or maybe they knew why you can't draw a boundary 23:04:15 something I've been thinking about recently: suppose you have a self-interpreter with extensions, i.e. it interprets the language it's written in plus a few extra custom commands 23:04:38 -!- monoxane9 has joined. 23:04:51 if parts of the design are table-driven rather than hard-coded, you can add commands to change those tables 23:05:00 and it's easy to add commands that change the program being interpreted 23:05:18 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97837&oldid=97835 * PixelatedStarfish * (+96) /* Comment */ 23:05:39 this gives you a slightly extended version of the language, and an intepreter for it 23:06:06 now, suppose you're writing a self-interpreter (or extended-self-interpreter) in that slightly extended version of the language, i.e. we're now two levels of self-interpreters deep 23:06:34 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97838&oldid=97837 * PixelatedStarfish * (+41) /* Error */ 23:06:43 this can be easily and efficiently implemented simply by reprogramming the running interpreter to have new commands (if necessary) and to be running a new program, and you end up with a self-interpreter with eigenratio 1 23:06:47 -!- monoxane has quit (Ping timeout: 260 seconds). 23:06:47 -!- monoxane9 has changed nick to monoxane. 23:07:26 I guess the obvious question in the context of this conversation (and what prompted me to think about this again) is "is this metacircularity?" 23:10:40 [[Self-interpreter]] M https://esolangs.org/w/index.php?diff=97839&oldid=97828 * Ais523 * (+0) /* Folklore */ typo fix 23:10:49 " that means that you aren't tying up memory read/write ports" => I think very new CPUs can optimize it to not tie up memory read ports, if it notices while decoding that you're referencing the same offset and index register, without even knowing the address. it will tie up a memory write port, but generally only in the L1 cache because the top of the stack will be there, and that usually won't 23:10:55 cause a delay unless you do a crazy amount of writes in a short time. 23:11:08 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97840&oldid=97838 * PixelatedStarfish * (+56) /* Stack */ 23:12:16 b_jonas: it's specifically AMD Zen 2 that could do that, and that's not the newest version 23:12:29 the feature was removed for Zen 3, and IIRC Intel processors have never been able to do that 23:12:33 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97841&oldid=97840 * PixelatedStarfish * (+32) /* Function */ 23:12:55 also the L1 write limit is normally 1 write per cycle, which seems quite plausible to hit in some types of code 23:13:29 (AMD Zen 3 can run 6 instructions per CPU cycle, and having more than ⅙ of the instructions do memory writes doesn't seem that unlikely) 23:13:35 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97842&oldid=97841 * PixelatedStarfish * (+48) /* Integer */ 23:13:38 however, if you are ok with using such a new cpu (and I presume you have to be if you're calling for a new feature) then you can also use 32 64-bit ZMM registers, though moving into them is of course much more expensive to encode than just a stack ref'ce 23:13:44 -!- sprout has quit (Read error: Connection reset by peer). 23:13:57 -!- sprout has joined. 23:14:28 "(AMD Zen 3 can run 6 instructions per CPU cycle," => unlikely if those are referencing memory arguments 23:14:53 b_jonas: indeed, there are other limits too 23:15:07 though I guess that's exactly the problem that you're saying 23:15:08 hmm 23:15:28 well I don't know really 23:15:58 in practice, 16 registers (well, 15 – you normally don't want to mess with %rsp) usually seem to be enough 23:16:33 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97843&oldid=97842 * PixelatedStarfish * (+42) /* Long */ 23:16:35 the main exceptions are code with lots of nested function calls, but our existing ABIs force registers to be allocated inefficiently across functions anyway 23:17:04 and of course, recursive code has no option but to spill registers 23:17:22 (I realised a while ago that a function call is, in effect, just a spill of %rip) 23:20:07 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97844&oldid=97843 * PixelatedStarfish * (+44) /* Data Type */ 23:21:30 ok, stupid question, if you're doing vector integer calls on AVX, and you're running low on the 16 XMM register, is there a way to temporarily store or retrieve two 16-bit XMM values in a YMM register, similarly to how you can use an XMM to temporarily store two 64-bit general register values in an XMM reg with PINSRQ/PEXTRQ, only this time your XMM and YMM regs overlap? 23:22:39 I'm pretty sure there's an instruction to move an XMM to the top half of a YMM, but if your program is almost entirely AVX, you shouldn't use it 23:22:44 [[BunnyBell Documentation]] https://esolangs.org/w/index.php?diff=97845&oldid=97844 * PixelatedStarfish * (+41) /* Error */ 23:23:13 err, * almost entirely XMM 23:23:20 ais523: it's entirely AVX because mixing SSE2 and AVX instructions in optimized code can be a bad idea due to the SSE2 instructions having to keep the top half of YMM regs 23:23:53 using the YMM registers switches the processor over to an alternative mode where it runs YMM-sized instructions more quickly but all other instructions more slowly 23:24:01 you just use the AVX equivalents of all the SSE2 instructions. all or almost all the instructions have an AVX encoding so this isn't a problem. 23:24:28 this is independent of the alternative modes for the top half of YMM registers being dirty 23:24:43 huh 23:24:57 but then how are you supposed to use YMM at all on AVX cpus? 23:25:16 AVX has YMM-sized instructions for a lot of the basic functionality 23:25:21 (and AVX2 added a lot more) 23:25:29 yes, AVX2 probably solves this 23:25:33 the intention is to use them for, e.g., big loops that are just doing simple additions on arrays 23:25:53 so the processor switches over to a mode where it can add more numbers at once, but at the cost of performance elsewhere in the processor 23:26:05 so you can't easily mix 16-bit vectors and 32-bit vectors, even if you encode everything in AVX or AVX2? why? 23:26:06 AVX-512 is even more extreme – the processor has to reduce its clock speed to avoid overheating 23:26:09 this sounds odd 23:26:40 it's basically to do with heat dissipation, the less of the vector unit you use, the faster you can run without heating issues 23:26:53 hmm 23:27:05 I guess it makes sense 23:27:20 basically all the YMM instructions can be implemented by desugaring them into two XMM instructions (with hidden programmer-inaccessible annotations to use the top half of the XMM register) 23:27:37 -!- monoxane9 has joined. 23:27:40 that's what processors do if they can't use the full vector unit (either because they're too hot or because they don't have a YMM-wide vector unit) 23:28:14 -!- monoxane has quit (Ping timeout: 255 seconds). 23:28:14 -!- monoxane9 has changed nick to monoxane. 23:28:16 but if the processor sees YMM instructions, it actively tries to cool itself down so that the whole unit is usable, that means it needs to focus more on efficiency rather than speed for the other instructions it uses 23:28:57 I guess it makes sense that if you can use 32-byte vectors then you should use them 23:29:20 on AVX2 cpus like this one in my new computer 23:29:24 anyway, this is why it's usually a bad idea to mix vector sizes – the optimal processor configuration for different sizes is different 23:29:45 makes sense, 23:30:28 but do I understand correctly that if I am mixing the sizes, and I'm really only using 16 bytes of a 32-byte vector, then it's not worse too use a 16-byte but AVX-encoded instruction than to use a 32-byte instruction but then discard half of the result, right? 23:30:58 it's just that everything will run in a slower 32-byte vector core 23:31:00 right, XMM instructions will run just fine when mixed with YMM instructions 23:31:37 they could be slower than XMM instructions that aren't mixed, but won't be slower than YMM instructions 23:31:51 ok 23:32:18 (this is assuming that you're using the zero-extending versions, to avoid false dependencies) 23:32:53 yes, zero-extending from XMM to YMM is what the AVX encoding as opposed to SSE2 encoding means 23:32:59 they have a fancier name... 23:33:20 VEX for the AVX encoding I think 23:33:29 yes 23:33:36 VEX is the name of the prefix byte 23:34:00 AVX-512 has its own new prefix byte, EVEX, and you can also EVEX-encode SSE and AVX instructions 23:34:32 VEX encoding is at most one byte longer than SSE encoding – normally it's the same length or even shorter 23:34:37 and EVEX is one byte longer than VEX 23:34:41 or sometimes two 23:35:52 -!- monoxane4 has joined. 23:37:23 are you sure? I thought that the VEX encoding can be one byte shorter than the SSE2 encoding in some cases, where the SSE2 encoding needs three prefix bytes (F0, a rex prefix, and an OS/REPNE/REP prefix, I don't know the correct order) whereas the VEX can need just two bytes of prefix 23:37:33 -!- monoxane has quit (Ping timeout: 246 seconds). 23:37:34 -!- monoxane4 has changed nick to monoxane. 23:37:34 oh right, that's what you said 23:37:42 "normally it's the same length or even shorter" 23:37:46 ok 23:39:25 I've actually pondered the merits of a compiler that generates SIMD versions of functions, so that they can be used in vectorized loops without inlining 23:39:56 probably the implementation strategy is to generate SIMD by default, and then if it turns out that only a single "thread" is needed, to deSIMDify it by replacing the vector instructions with scalar instructions 23:40:16 this would require using scatter/gather instructions a *lot*, though, so it might only be efficient on Intel 23:47:00 ok, now I'm looking at the intel manual and somewhat confused by all these instruction encodings. which I suppose is normal, they are confusing. 23:53:55 -!- monoxane2 has joined. 23:54:10 -!- monoxane has quit (Ping timeout: 240 seconds). 23:54:11 -!- monoxane2 has changed nick to monoxane.