00:02:31 -!- craigo has quit (*.net *.split).
00:02:31 -!- rodgort has quit (*.net *.split).
00:02:32 -!- simcop2387 has quit (*.net *.split).
00:02:32 -!- iovoid has quit (*.net *.split).
00:02:32 -!- perlbot has quit (*.net *.split).
00:02:33 -!- int-e has quit (*.net *.split).
00:02:35 -!- dbohdan has quit (*.net *.split).
00:02:36 -!- Artea has quit (*.net *.split).
00:02:36 -!- APic has quit (*.net *.split).
00:02:36 -!- lynndotpy6 has quit (*.net *.split).
00:02:36 -!- amby has quit (*.net *.split).
00:02:36 -!- Noisytoot has quit (*.net *.split).
00:02:38 -!- sprout has quit (*.net *.split).
00:02:38 -!- ais523 has quit (*.net *.split).
00:02:39 -!- madcabbage has quit (*.net *.split).
00:02:39 -!- nitrix has quit (*.net *.split).
00:02:39 -!- sprock has quit (*.net *.split).
00:02:39 -!- Trigon has quit (*.net *.split).
00:02:39 -!- Taneb0 has quit (*.net *.split).
00:02:40 -!- mcfrdy has quit (*.net *.split).
00:02:42 -!- visilii has quit (*.net *.split).
00:02:42 -!- myname has quit (*.net *.split).
00:02:43 -!- V has quit (*.net *.split).
00:02:44 -!- chiselfuse has quit (*.net *.split).
00:02:44 -!- mtm has quit (*.net *.split).
00:02:45 -!- shikhin has quit (*.net *.split).
00:02:45 -!- HackEso has quit (*.net *.split).
00:02:45 -!- jix has quit (*.net *.split).
00:02:46 -!- tetsuo-cpp has quit (*.net *.split).
00:02:46 -!- wryl has quit (*.net *.split).
00:02:48 -!- Bowserinator has quit (*.net *.split).
00:02:48 -!- Melvar has quit (*.net *.split).
00:02:48 -!- isabella has quit (*.net *.split).
00:02:48 -!- ^[ has quit (*.net *.split).
00:02:50 -!- ManDeJan has quit (*.net *.split).
00:02:50 -!- moony has quit (*.net *.split).
00:02:50 -!- Ae_ has quit (*.net *.split).
00:02:51 -!- JAA has quit (*.net *.split).
00:02:51 -!- j4cbo has quit (*.net *.split).
00:02:51 -!- krychu has quit (*.net *.split).
00:02:51 -!- FireFly has quit (*.net *.split).
00:02:51 -!- laerling has quit (*.net *.split).
00:02:52 -!- slavfox has quit (*.net *.split).
00:02:52 -!- Lord_of_Life has quit (*.net *.split).
00:02:52 -!- op_4 has quit (*.net *.split).
00:02:53 -!- b_jonas has quit (*.net *.split).
00:02:53 -!- leah2 has quit (*.net *.split).
00:02:54 -!- zemhill has quit (*.net *.split).
00:02:54 -!- shachaf has quit (*.net *.split).
00:02:54 -!- fizzie has quit (*.net *.split).
00:02:54 -!- Soni has quit (*.net *.split).
00:02:55 -!- Hooloovoo has quit (*.net *.split).
00:02:55 -!- alec3660 has quit (*.net *.split).
00:02:56 -!- Lymee has quit (*.net *.split).
00:02:57 -!- oren has quit (*.net *.split).
00:02:57 -!- ProofTechnique_ has quit (*.net *.split).
00:02:57 -!- molson has quit (*.net *.split).
00:02:58 -!- yuu has quit (*.net *.split).
00:02:59 -!- mich181189 has quit (*.net *.split).
00:03:00 -!- korvo has quit (*.net *.split).
00:03:00 -!- MizMahem has quit (*.net *.split).
00:03:00 -!- voxpelli has quit (*.net *.split).
00:03:00 -!- dnm has quit (*.net *.split).
00:03:01 -!- ursa-major has quit (*.net *.split).
00:03:01 -!- dcreager has quit (*.net *.split).
00:03:01 -!- citrons has quit (*.net *.split).
00:03:02 -!- riv has quit (*.net *.split).
00:03:02 -!- integral has quit (*.net *.split).
00:03:02 -!- gAy_Dragon has quit (*.net *.split).
00:03:04 -!- GregorR has quit (*.net *.split).
00:03:05 -!- xelxebar has quit (*.net *.split).
00:03:06 -!- FreeFull has quit (*.net *.split).
00:03:06 -!- m5zs7k has quit (*.net *.split).
00:03:06 -!- yewscion__ has quit (*.net *.split).
00:03:07 -!- fungot has quit (*.net *.split).
00:03:07 -!- pikhq has quit (*.net *.split).
00:07:44 -!- craigo has joined.
00:07:44 -!- molson has joined.
00:07:44 -!- MizMahem has joined.
00:07:44 -!- yuu has joined.
00:07:44 -!- voxpelli has joined.
00:07:44 -!- dnm has joined.
00:07:44 -!- dcreager has joined.
00:07:44 -!- GregorR has joined.
00:07:44 -!- citrons has joined.
00:07:44 -!- riv has joined.
00:07:44 -!- mich181189 has joined.
00:07:44 -!- gAy_Dragon has joined.
00:07:44 -!- ProofTechnique_ has joined.
00:07:44 -!- xelxebar has joined.
00:07:44 -!- integral has joined.
00:07:44 -!- korvo has joined.
00:07:44 -!- ais523 has joined.
00:07:44 -!- lynndotpy6 has joined.
00:07:44 -!- madcabbage has joined.
00:07:44 -!- amby has joined.
00:07:44 -!- Noisytoot has joined.
00:07:44 -!- nitrix has joined.
00:07:44 -!- sprock has joined.
00:07:44 -!- chiselfuse has joined.
00:07:44 -!- Trigon has joined.
00:07:44 -!- Taneb0 has joined.
00:07:44 -!- visilii has joined.
00:07:44 -!- dbohdan has joined.
00:07:44 -!- myname has joined.
00:07:44 -!- sprout has joined.
00:07:44 -!- Artea has joined.
00:07:44 -!- mcfrdy has joined.
00:07:44 -!- APic has joined.
00:07:44 -!- V has joined.
00:07:58 -!- ursa-major has joined.
00:08:02 -!- ursa-major has quit (Max SendQ exceeded).
00:08:22 -!- rodgort has joined.
00:08:22 -!- simcop2387 has joined.
00:08:22 -!- iovoid has joined.
00:08:22 -!- perlbot has joined.
00:08:22 -!- int-e has joined.
00:08:50 -!- iovoid has quit (Quit: iovoid has quit!).
00:09:01 -!- Bowserinator has joined.
00:09:01 -!- Melvar has joined.
00:09:01 -!- isabella has joined.
00:09:01 -!- ^[ has joined.
00:09:16 -!- shikhin has joined.
00:09:16 -!- HackEso has joined.
00:09:16 -!- jix has joined.
00:09:16 -!- tetsuo-cpp has joined.
00:09:16 -!- wryl has joined.
00:09:23 -!- mtm has joined.
00:09:23 -!- slavfox has joined.
00:09:23 -!- Lord_of_Life has joined.
00:09:23 -!- op_4 has joined.
00:09:23 -!- b_jonas has joined.
00:09:23 -!- leah2 has joined.
00:09:23 -!- zemhill has joined.
00:09:23 -!- shachaf has joined.
00:09:23 -!- fizzie has joined.
00:09:23 -!- Soni has joined.
00:09:40 -!- FreeFull has joined.
00:09:40 -!- m5zs7k has joined.
00:09:40 -!- yewscion__ has joined.
00:09:40 -!- fungot has joined.
00:09:40 -!- pikhq has joined.
00:10:39 -!- iovoid has joined.
00:11:58 -!- Hooloovoo has joined.
00:11:58 -!- alec3660 has joined.
00:11:58 -!- Lymee has joined.
00:11:58 -!- oren has joined.
00:12:32 <esolangs> [[Esolang:Community portal]] M https://esolangs.org/w/index.php?diff=153079&oldid=153078 * Aadenboy * (-37) deadlink template
00:13:07 -!- iovoid has quit (Client Quit).
00:14:55 -!- iovoid has joined.
00:17:01 -!- ManDeJan has joined.
00:17:01 -!- moony has joined.
00:17:01 -!- Ae_ has joined.
00:17:01 -!- JAA has joined.
00:17:01 -!- j4cbo has joined.
00:17:01 -!- krychu has joined.
00:17:01 -!- FireFly has joined.
00:17:01 -!- laerling has joined.
00:17:29 -!- iovoid has changed hostmask to iovoid@hellomouse/dev/iovoid.
00:24:36 -!- ursa-major has joined.
01:30:24 -!- ais523 has quit (Ping timeout: 260 seconds).
01:31:19 -!- 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).
01:37:19 -!- ais523 has joined.
02:36:45 <esolangs> [[REdACT]] M https://esolangs.org/w/index.php?diff=153080&oldid=153077 * FurCantCodeAnything * (+19)
03:10:10 -!- madcabbage has quit (Ping timeout: 260 seconds).
03:20:30 <esolangs> [[Talk:Burn]] https://esolangs.org/w/index.php?diff=153081&oldid=150157 * BestCoder * (-2) /* UHH */
03:23:37 <esolangs> [[Counter clockwise]] N https://esolangs.org/w/index.php?oldid=153082 * BestCoder * (+66) Created page with "[[Clockwise]] but its L instead of R, where L is counter clockwise"
03:29:44 <esolangs> [[Talk:CES]] N https://esolangs.org/w/index.php?oldid=153083 * BestCoder * (+140) Created page with "how to make a thing that runs when the program stops?? ~~~~"
03:53:57 -!- madcabbage has joined.
03:59:26 <esolangs> [[Pointing]] M https://esolangs.org/w/index.php?diff=153084&oldid=153035 * Calculus is fun * (+7) /* brainfuck interpreter */
04:02:03 <esolangs> [[Pointing]] M https://esolangs.org/w/index.php?diff=153085&oldid=153084 * Calculus is fun * (-8) /* Instructions */
04:37:33 -!- craigo has quit (Quit: Leaving).
05:59:55 <ais523> oh no – Rust isn't inlining compiler intrinsics: https://godbolt.org/z/dKMfMj5aa
06:00:13 <ais523> I guess I'll have to use inline asm (it doesn't guarantee to inline that, but hopefully it would in this case)
06:01:06 <ais523> the failure to inline is utterly performance-destroying because the calling convention clobbers all the vector registers, meaning that everything has to be spilled on every function call
06:05:45 -!- sprock has quit (Ping timeout: 260 seconds).
06:06:04 <ais523> ah, I see, some searches imply that this might be caused by the intrinsic being for an instruction that hasn't been proved to exist on the target processor – which is a problem if you want to be able to run instructions conditionally at runtime only if the feature is present
06:08:05 <zzo38> I had thought that the operating system should be allowed to emulate instructions that the processor doesn't have. However, that requires having a suitable version of the operating system, and does not help with improving the efficiency of the program; conditional loading would be another way, that it could conditionally load the appropriate function.
06:08:41 <zzo38> Another way would be to use compiler switches to control if it is should use such instructions or not, and the default is the same computer that the compiler is running on.
06:11:02 <korvo> A third way to fix this layering violation would be for the IR to absorb all intrinsics.
06:12:13 -!- sprock has joined.
06:17:59 <zzo38> I don't know what is "absorb all intrinsics" (or, maybe I do know, but not the specific wording)
06:19:49 <ais523> korvo: so after investigating more, it doesn't work even with inline asm – the issue is that the compiler doesn't know for certain that the registers that would store the inputs and outputs to the instruction even exist
06:19:58 <ais523> and doesn't make that assumption based on the instruction having been used
06:20:32 -!- sprock has quit (Ping timeout: 272 seconds).
06:20:35 <ais523> as such, it leaves the intrinsic in a separate function to make the register allocation possible
06:21:15 <korvo> zzo38: It just means that each intrinsic would be expressible directly in the IR. And not as an opaque reference but as the actual semantic action.
06:21:37 <ais523> zzo38: what I'm trying to do is to write a program that runs on both processors that don't have vector registers and processors that do, via checking at runtime to see if the registers are present and using their instructions only if they are
06:22:07 <zzo38> korvo: Yes, that makes sense and yes it will help. (Also, like I expected, yes I do know but did not know the specific wording.)
06:22:41 -!- Ae_ has quit (Quit: Bye).
06:24:22 <ais523> https://rust-lang.github.io/rust-project-goals/2025h1/simd-multiversioning.html says "Currently, generating efficient code for a specific SIMD ISAs requires annotating the function with appropriate attributes. This is incompatible with generating multiple versions through i.e. generics." – that's exactly what I'm trying to do and at least it's acknowledged as being impossible at the moment
06:24:25 <korvo> zzo38: No worries. The whole "absorb" and "reify" terminology is difficult to think about.
06:24:34 -!- sprock has joined.
06:24:59 <ais523> I feel like that terminology might be used in only a small corner of computer science, and there might be more widely known terms for the same contexts
06:25:55 -!- Ae` has joined.
06:27:55 <ais523> anyway, it looks like it's going to be impossible to solve this at the type system level – I'll have to do it using macros I guess
06:28:05 <korvo> Sure, probably. And I'm open to learning. But this is the correct corner for using it; absorb v reify is what interpreters do.
06:28:50 <ais523> well there isn't an interpreter involved here – just a compiler
06:29:24 <ais523> and I'm not sure the absorb vs. reify distinction even makes sense when using an intrinsic whose entire purpose is to compile to one specific asm instruction
06:30:36 <korvo> Well, if that really were its purpose, then it wouldn't compile for the non-vector target at all.
06:30:59 <korvo> That's why I'm saying that it's a layering violation. The intrinsic fundamentally represents something that doesn't fit within the semantic landscape of the high-level language.
06:32:05 <korvo> If Rust had e.g. comptime, then there might be a reasonable push to fix the situation for all intrinsics.
06:32:09 <ais523> well, the issue is that the target isn't known at compile time – the general nature of the target is known (i.e. a particular grouping of processor architectures) but some processors in that grouping have more registers than others, and instructions that deal with the extra registers
06:32:39 <ais523> you can write code that runs in the common subset of all supported processors, and check to see which processor is actually in use
06:33:02 <ais523> and then call into code that wouldn't work on all processors if you discover that you're running on a processor where it does work
06:34:25 <ais523> and the problem here seems to be that a) the way Rust supports doing that is to require each function to explicitly specify the subset of processors it's designed to work on and b) this isn't connected to the type system in any way, so you can't pass a type that expects a processor-specific register to a function that runs on all processors
06:34:42 <ais523> (and the page I linked is about fixing b)
06:34:58 -!- sprock has quit (Ping timeout: 245 seconds).
06:35:30 <korvo> Sure. I guess that I'm talking about fixing (a). It would help if Rust would not use words like "function" to denote procedures.
06:36:28 <ais523> well, the traditional distinction was that functions have a return value and procedures don't – most modern languages merge the concepts and call the merged concept a "function"
06:36:50 <ais523> this is possibly regrettable wording in that it doesn't match "function" from mathematics, but calling them "procedures" instead will just confuse people who wonder how they can have a return value
06:36:52 -!- sprock has joined.
06:37:46 <ais523> (especially because in many cases, but not all, they do match the mathematical concept of a function in practice)
06:37:47 <korvo> Oh, that's not what I mean. I mean that Rust equivocates over whether its callable units are mappings from inputs to outputs (functions) or sequences of instructions for the machine (procedures).
06:38:46 <ais523> in the source code, they're input → output mappings with possible side effects (I'm generally an advocate for including the side effects as part of the inputs and outputs, so that they just become more inputs and outputs, but Rust generally doesn't do that)
06:39:14 <ais523> and the sequence of instructions for the machine is what the compiler outputs, but it's generally still referred to as a function even then
06:39:22 <korvo> Nah, Rust has general recursion, so we can't rely on the idea that they actually map to something.
06:40:14 <korvo> In plain C++: `int f(int x) { return f(x); }` doesn't actually designate a function. You could change that to `f(x + 1)` or etc. and it still wouldn't.
06:40:16 <ais523> IIRC Rust has explicit checks for stack overflow in some contexts, although I think you might be able to write general-recursive functions without triggering them if you don't use much stack per iteration
06:40:39 <ais523> korvo: do you not consider nontermination a possible return value?
06:40:43 <korvo> Same problem in Rust, Haskell, C, etc.
06:41:18 <ais523> Haskell actually documents it as a return value, and considers it equivalent to a runtime error (in the sense that a runtime error becoming a nontermination or vice versa is not considered a miscompile)
06:41:19 <korvo> ais523: I consider C++ to be *dishonest* if it claims that f has type int -> int. For what is f(0)?
06:41:35 <korvo> Haskell gets it right, but models of Haskell don't have functions for arrows.
06:41:55 <ais523> korvo: I don't think C++ does claim that, from the functional programming point of view
06:42:17 <korvo> ais523: Sure, and so C++'s users really shouldn't call those things "functions". Same gripe applies to Rust modulo borrowing.
06:42:37 <ais523> C++ functions are allowed to produce side effects such as I/O and non-termination, and those are (in a sense) part of the output
06:42:56 <ais523> although to reason like this you have to draw a distinction between "return value" and "codomain"
06:43:54 <ais523> interestingly Haskell seems to draw that distinction in that "return" produces monad actions – "return 6" gives you something whose return value is 6 and whose codomain is a monad action that returns integers
06:44:26 <korvo> I/O and nontermination aren't at all the same monadically. I/O can be fully encoded with the RWS monad (Reader, Writer, State) but nontermination isn't carried by anything neat.
06:44:53 <korvo> Cammy can encode RWS monads, for example. But every Cammy expression terminates, so nontermination can't possibly be encoded.
06:45:04 <ais523> it's kind-of like Maybe – either you get a value or you don't – but it's uncomputable to actually resolve it
06:46:09 <korvo> Sure, that's the so-called "delay monad", which can be encoded with general recursion or as a fixpoint.
06:46:23 <ais523> @eval let f x = f x in f 1
06:46:35 <ais523> :t let f x = f x in f 1
06:46:43 <ais523> > let f x = f x in f 1
06:47:26 <ais523> OK, that surprises me, I thought that that wouldn't be an infinite loop in Haskell (infinite loops are allowed to be optimised into runtime errors by the Haskell spec and I thought that that was one of the cases that the compiler could catch)
06:47:33 <korvo> :t let f x = f (x + 1) in f 1
06:47:58 <korvo> Oh, covariance. Just like the `forever` builtin.
06:48:18 <ais523> how does variance matter there?
06:48:36 <korvo> I forgot which side of the arrow would be coerced by the (+) operator.
06:48:47 <ais523> :t let f x = (f x ) + 1 in f 1
06:49:20 <ais523> hmm, now I am (yet again) regretting that people normally write numbers big-endian
06:49:42 <ais523> would be fun to do a "let f x = (f x) * 10 + 1 in f 1" and get a stream of 1s on the output
06:49:54 <ais523> (likely beyond the abilities of ghc, but fun)
06:50:23 <ais523> but it seems much harder to control the most significant digit like that, than it does for the least significant digit
06:50:35 <shachaf> It does seem plausible to me that little-endian would be more reasonable for human use.
06:50:47 <shachaf> Also writing polynomials with the lowest-degree terms first.
06:51:23 <ais523> I just realised that people do in fact write polynomials big-endian (and, of course, decimal numbers are polynomials with x=10)
06:51:49 <ais523> when programming I've always represented them little-endian, so that (e.g.) the x² coefficient is at element 2 of the array…
06:51:55 <korvo> Anyway, hopefully it's obvious why I say that it's a layering violation. An intrinsic which requires attention to the machine's procedural behavior is violating the inputs-to-outputs abstraction that is desired at high level.
06:52:37 * korvo grumpy like Dijkstra
06:52:39 <ais523> I think the situation is more complicated than that – the intrinsic is specifically a constraint on the program's low-level behaviour
06:52:50 <ais523> it has a defined input-output behaviour but just emulating that isn't enough
06:53:43 <ais523> for example, the platform I'm on has two different memory read instructions – one of them is faster than the other for unaligned reads of memory, but causes subsequent writes to that memory to become slower
06:54:05 <ais523> so you only use it on memory that you don't think will be written in the near future
06:54:41 <korvo> I think that you already showed that the intrinsic definitionally can't meet the demands placed upon it, in that it *must* be emulated in order to remain platform-neutral, and therefore can't be part of the language's builtins.
06:54:48 <ais523> (the documentation doesn't explain what the slowdown is, but my guess is that it doesn't load the memory into cache)
06:54:57 <korvo> But maybe this is pointing out too much that intrinsics are fundamentally silly.
06:56:24 <ais523> surely the fix to this is to require a proof (e.g. via the type system) that the intrinsic does in fact exist on the platform, and then propagate that knowledge into anything that calls it
06:57:18 <ais523> compilers are happy to take a dereference of a pointer as a proof that the pointer isn't null, and then to propagate that assumption throughout any code that, if it runs, necessarily implies the dereference will run
06:57:51 <korvo> Well, yeah. Zig does that AIUI; the compiler has various informational structs that are passed around everywhere, and Zig users are used to that because they have to pass around memory allocators already.
06:59:13 <korvo> Zig is ultimately shaped like a macro-driven assembler, and that's the level of detail required to hand-write vectorized assembly.
07:00:03 <ais523> I've handwritten enough vectorized assembly to make it to the front page of Hacker News repeatedly (with the same program, it kept getting resubmitted)
07:00:44 <korvo> And really that's just the compile-time version of passing a powerbox or other runtime capability container. Back to the illegal-instruction cpuid-oriented setup from earlier.
07:00:51 <ais523> but that program only had to run on two computers (it was a competition entry, so it just had to run on mine so that I could test it and the (person marking the competition)'s so that they could score it)
07:01:52 <ais523> it didn't even have a proper CPUID check (for the instruction set, at least), it just ran an AVX2 instruction uncondtioinally early on in the hope of provoking SIGILL on machines that didn't undestand it
07:02:09 <ais523> I'm not sure whether that's technically UB or not, the concept is hard to define in asm
07:02:56 <ais523> I don't think there's a document anywhere guaranteeing "AVX2 instructions processor-trap on non-AVX2 x86-64 processors", but on the other hand it's a fairly safe assumption in practice
07:03:17 -!- Sgeo has quit (Read error: Connection reset by peer).
07:03:37 <ais523> it's a bit different from using an instruction that's entirely undefined, because it might be defined on some future processor
07:04:24 <ais523> but it's hard to envision a world where there are future processors that don't support AVX2 and repurpose the AVX2 encoding space for something else
07:10:05 -!- tromp has joined.
07:10:37 -!- Lord_of_Life_ has joined.
07:10:40 -!- Lord_of_Life has quit (Ping timeout: 244 seconds).
07:12:00 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
07:41:56 <b_jonas> ais523: you didn't add any -C target-cpu=... or -C target-feature=... option to rustc so it's trying to generate generic x86_64 code, which only has access to SSE2
07:43:13 <b_jonas> "if you want to be able to run instructions conditionally at runtime only if the feature is present" => gcc has an attribute for the containing function for that, and I think rustc might have one as well
07:44:40 <b_jonas> ah, you already found info about that
07:50:28 <ais523> b_jonas: right, the problem is that I want the program to run on non-AVX processors in addition to the AVX ones, and yet contain AVX instructions – and that apparently implies that all the functions have to be written twice in the post-macro-expansion source code because Rust doesn't allow the same pre-monomorphisation function to run on non-AVX processors in one post-monomorphisation version and mention AVX instructions in a different post-
07:50:29 <ais523> monomorphisation version
07:50:59 <ais523> even if you use inline asm (unless you do the register allocation yourself) because it refuses to allocate AVX registers without having the target-feature annotation
07:56:44 <b_jonas> ais523: can you just compile the whole program twice, and add a thin wrapper script?
07:57:12 <b_jonas> or would that be too wasteful because it's a large program with only small parts using vector instructions?
07:58:41 <b_jonas> because that used to be the traditional solution before all the compiler and linker magic allowed you to have multiple versions of functions in one program
08:02:01 <ais523> b_jonas: well I'm trying to write this as a library, and I don't think it can compile the program twice from inside
08:04:39 <b_jonas> a library with rust interface, or a library with C interface callable from any language?
08:06:05 <ais523> it's a library with a Rust interface, although I may eventually use it as a dependency of a different library with a C interface
08:06:44 <b_jonas> if it's rust interface then users have to recompile it anyway, so you can tell them how to compile for AVX2-capable processors and for generic processors
08:07:42 <b_jonas> (substitute whatever extensions you're targeting instead of just AVX2 obviously)
08:14:25 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
08:31:25 <b_jonas> the fun part is when optimizing for the higher instruction set propagates to parts of the code that don't even use vector instructions, because you're eg. allocating a buffer 32-aligned because an AVX2 function will access it later.
08:46:02 <esolangs> [[StormScript]] N https://esolangs.org/w/index.php?oldid=153086 * I am islptng * (+1212) Created page with "{{Distinguish/Confusion|StormLang}} {{WIP}} This esolang is created by islptng. It'll be high-level but stack-based. Document will be written later. However, it is simply a calculator now. ==Implementation== <pre><nowiki> def tokenize(s): tokens = [] current
09:07:06 <esolangs> [[StormScript]] https://esolangs.org/w/index.php?diff=153087&oldid=153086 * I am islptng * (+697)
09:08:13 <esolangs> [[StormScript]] https://esolangs.org/w/index.php?diff=153088&oldid=153087 * I am islptng * (-2) /* Implementation */
09:16:46 <esolangs> [[StormScript]] https://esolangs.org/w/index.php?diff=153089&oldid=153088 * I am islptng * (+41) /* Implementation */
09:28:18 <esolangs> [[StormScript]] https://esolangs.org/w/index.php?diff=153090&oldid=153089 * I am islptng * (+610) /* Implementation */
09:31:16 <esolangs> [[StormScript]] https://esolangs.org/w/index.php?diff=153091&oldid=153090 * I am islptng * (+27) /* Implementation */
09:43:00 <esolangs> [[StormScript]] https://esolangs.org/w/index.php?diff=153092&oldid=153091 * I am islptng * (+476) /* Implementation */
09:59:07 -!- tromp has joined.
10:10:34 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
10:11:13 -!- tromp has joined.
10:30:09 -!- ais523 has quit (Quit: quit).
11:22:50 <esolangs> [[Fontmess]] https://esolangs.org/w/index.php?diff=153093&oldid=153072 * PrySigneToFry * (+242)
11:58:58 <esolangs> [[REdACT]] https://esolangs.org/w/index.php?diff=153094&oldid=153080 * FurCantCodeAnything * (-1023) Updated symbols
11:59:36 <esolangs> [[REdACT]] M https://esolangs.org/w/index.php?diff=153095&oldid=153094 * FurCantCodeAnything * (-11)
12:02:35 -!- mtm has quit (Ping timeout: 244 seconds).
12:05:19 -!- mtm has joined.
12:07:22 <esolangs> [[REdACT]] https://esolangs.org/w/index.php?diff=153096&oldid=153095 * FurCantCodeAnything * (+22) Compacting commands; also updating again to be UTD
12:07:48 <esolangs> [[REdACT]] https://esolangs.org/w/index.php?diff=153097&oldid=153096 * FurCantCodeAnything * (+3)
12:14:04 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:15:46 -!- tromp has joined.
12:31:16 <esolangs> [[BitChanger Busy beaver/Proof]] https://esolangs.org/w/index.php?diff=153098&oldid=153059 * C++DSUCKER * (+3641)
12:31:44 <esolangs> [[BitChanger Busy beaver/Proof]] https://esolangs.org/w/index.php?diff=153099&oldid=153098 * C++DSUCKER * (-16)
12:40:43 <esolangs> [[BitChanger Busy beaver/Proof]] M https://esolangs.org/w/index.php?diff=153100&oldid=153099 * C++DSUCKER * (+7)
12:51:49 <esolangs> [[BitChanger Busy beaver/Proof]] https://esolangs.org/w/index.php?diff=153101&oldid=153100 * C++DSUCKER * (+1750)
12:54:27 <esolangs> [[BitChanger Busy beaver/Proof]] M https://esolangs.org/w/index.php?diff=153102&oldid=153101 * C++DSUCKER * (+27)
13:28:23 <esolangs> [[Talk:BitChanger Busy beaver]] https://esolangs.org/w/index.php?diff=153103&oldid=152851 * C++DSUCKER * (+75)
13:31:09 <esolangs> [[Talk:BitChanger Busy beaver]] https://esolangs.org/w/index.php?diff=153104&oldid=153103 * C++DSUCKER * (+89)
13:37:02 <esolangs> [[REdACT]] M https://esolangs.org/w/index.php?diff=153105&oldid=153097 * FurCantCodeAnything * (-26)
13:37:23 <esolangs> [[REdACT]] M https://esolangs.org/w/index.php?diff=153106&oldid=153105 * FurCantCodeAnything * (+1)
13:40:18 <esolangs> [[REdACT]] https://esolangs.org/w/index.php?diff=153107&oldid=153106 * FurCantCodeAnything * (+6)
15:08:42 <esolangs> [[User:Hotcrystal0]] https://esolangs.org/w/index.php?diff=153108&oldid=152878 * Hotcrystal0 * (+43)
15:09:52 <esolangs> [[User:Hotcrystal0]] https://esolangs.org/w/index.php?diff=153109&oldid=153108 * Hotcrystal0 * (+1)
15:15:06 <esolangs> [[User:Hotcrystal0/Q9+]] N https://esolangs.org/w/index.php?oldid=153110 * Hotcrystal0 * (+143) Created page with "Q9+ is a joke language created by [[User:Hotcrystal0]]. It is a hybrid of [[]] and [[HQ9+]] with a couple of additional features."
15:16:30 <esolangs> [[User:Hotcrystal0]] https://esolangs.org/w/index.php?diff=153111&oldid=153109 * Hotcrystal0 * (+45)
15:19:26 <esolangs> [[UserEdited]] https://esolangs.org/w/index.php?diff=153112&oldid=153025 * BrainFuckGirl * (+1732) Added version UserEdited 6.0.trois
15:24:21 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153113&oldid=153110 * Hotcrystal0 * (+467)
15:24:58 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153114&oldid=153113 * Hotcrystal0 * (+25)
15:36:57 -!- chomwitt has joined.
15:39:48 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153115&oldid=153114 * Hotcrystal0 * (-9)
15:41:51 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153116&oldid=153115 * Hotcrystal0 * (+30)
15:42:45 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153117&oldid=153116 * Hotcrystal0 * (+59)
15:44:45 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153118&oldid=153117 * Hotcrystal0 * (+92)
15:45:06 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153119&oldid=153118 * Hotcrystal0 * (-20)
15:45:16 -!- chomwitt has quit (Remote host closed the connection).
15:46:56 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153120&oldid=153119 * Hotcrystal0 * (+74)
16:03:35 -!- FreeFull has quit (Ping timeout: 252 seconds).
16:04:31 <esolangs> [[Tc2]] https://esolangs.org/w/index.php?diff=153121&oldid=129539 * Hotcrystal0 * (+56) Adding categories
16:04:37 <esolangs> [[Tc2]] https://esolangs.org/w/index.php?diff=153122&oldid=153121 * Hotcrystal0 * (+0)
16:04:46 <esolangs> [[Tc2]] https://esolangs.org/w/index.php?diff=153123&oldid=153122 * Hotcrystal0 * (+0)
16:04:54 <esolangs> [[Tc2]] https://esolangs.org/w/index.php?diff=153124&oldid=153123 * Hotcrystal0 * (+0)
16:10:28 -!- craigo has joined.
16:21:54 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153125&oldid=153120 * Hotcrystal0 * (+19)
16:22:57 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153126&oldid=153125 * Hotcrystal0 * (+153)
16:23:22 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153127&oldid=153126 * Hotcrystal0 * (-20)
16:23:54 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153128&oldid=153127 * Hotcrystal0 * (+12)
16:26:53 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153129&oldid=153128 * Hotcrystal0 * (+50)
16:35:59 <esolangs> [[UserEdited]] https://esolangs.org/w/index.php?diff=153130&oldid=153112 * MihaiEso * (+18) /* Categories and References */
16:47:54 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153131&oldid=153129 * Hotcrystal0 * (+191)
16:53:50 <esolangs> [[Special:Log/newusers]] create * Neon * New user account
16:59:29 <esolangs> [[UserEdited]] https://esolangs.org/w/index.php?diff=153132&oldid=153130 * MihaiEso * (+1936)
17:19:32 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=153133&oldid=153060 * Neon * (+204) Introducing myself
17:29:07 <esolangs> [[UserEdited]] https://esolangs.org/w/index.php?diff=153134&oldid=153132 * Hotcrystal0 * (+319)
17:29:53 <esolangs> [[UserEdited]] https://esolangs.org/w/index.php?diff=153135&oldid=153134 * Hotcrystal0 * (+31)
17:29:54 <esolangs> [[Weirdlang]] M https://esolangs.org/w/index.php?diff=153136&oldid=88590 * Corbin * (+89) What an awful little ode to gatekeeping! Indicate that it's unrelated to the standard concept of weirdness in machines and compilers.
17:30:42 <esolangs> [[UserEdited]] https://esolangs.org/w/index.php?diff=153137&oldid=153135 * Hotcrystal0 * (+1)
17:32:31 <esolangs> [[UserEdited]] https://esolangs.org/w/index.php?diff=153138&oldid=153137 * Hotcrystal0 * (-34)
17:35:14 <esolangs> [[UserEdited]] https://esolangs.org/w/index.php?diff=153139&oldid=153138 * Hotcrystal0 * (+13)
17:46:31 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153140&oldid=153131 * Hotcrystal0 * (+75)
17:55:54 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153141&oldid=153140 * Hotcrystal0 * (+15)
17:57:30 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153142&oldid=153141 * Hotcrystal0 * (+34)
18:01:47 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153143&oldid=153142 * Hotcrystal0 * (-61)
18:02:30 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153144&oldid=153143 * Hotcrystal0 * (-2)
18:05:26 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153145&oldid=153144 * Hotcrystal0 * (+18)
18:07:11 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153146&oldid=153145 * Hotcrystal0 * (+78)
18:08:08 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153147&oldid=153146 * Hotcrystal0 * (+50)
18:17:09 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153148&oldid=153147 * Hotcrystal0 * (+22)
18:22:23 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153149&oldid=153148 * Hotcrystal0 * (+98)
18:22:48 <esolangs> [[Special:Log/move]] move * Hotcrystal0 * moved [[User:Hotcrystal0/Q9+]] to [[Hotcrystal0/Q9+]]: No longer a WIP (other than examples)
18:23:02 <esolangs> [[Special:Log/move]] move * Hotcrystal0 * moved [[Hotcrystal0/Q9+]] to [[Q9+]]
18:23:14 <esolangs> [[Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153154&oldid=153153 * Hotcrystal0 * (-24) Blanked the page
18:23:47 <esolangs> [[User:Hotcrystal0/Q9+]] https://esolangs.org/w/index.php?diff=153155&oldid=153151 * Hotcrystal0 * (-12) Changed redirect target from [[Hotcrystal0/Q9+]] to [[Q9+]]
18:28:57 <esolangs> [[User talk:Ais523]] https://esolangs.org/w/index.php?diff=153156&oldid=152495 * Hotcrystal0 * (+145) /* Page in need of deletion */ new section
18:29:34 <esolangs> [[User talk:Ais523]] https://esolangs.org/w/index.php?diff=153157&oldid=153156 * Hotcrystal0 * (+92)
18:40:25 <esolangs> [[HoleQ9+]] N https://esolangs.org/w/index.php?oldid=153158 * Hotcrystal0 * (+24) Redirected page to [[Q9+]]
18:41:54 <esolangs> [[HQ9+]] https://esolangs.org/w/index.php?diff=153159&oldid=150625 * Hotcrystal0 * (+49)
18:42:17 <esolangs> [[Q9+]] https://esolangs.org/w/index.php?diff=153160&oldid=153152 * Hotcrystal0 * (-3)
18:45:15 <esolangs> [[Stairlang]] https://esolangs.org/w/index.php?diff=153161&oldid=152959 * * (+32) Added truth machine
18:46:14 <esolangs> [[Q9+]] https://esolangs.org/w/index.php?diff=153162&oldid=153160 * Hotcrystal0 * (+84)
18:48:55 <esolangs> [[Q9+]] https://esolangs.org/w/index.php?diff=153163&oldid=153162 * Hotcrystal0 * (+73)
18:49:19 <esolangs> [[Q9+]] https://esolangs.org/w/index.php?diff=153164&oldid=153163 * Hotcrystal0 * (+16)
18:56:48 <esolangs> [[Q9+]] https://esolangs.org/w/index.php?diff=153165&oldid=153164 * Hotcrystal0 * (+0)
19:03:49 <esolangs> [[Q9+]] https://esolangs.org/w/index.php?diff=153166&oldid=153165 * Hotcrystal0 * (+34)
19:06:23 <esolangs> [[Stairlang]] M https://esolangs.org/w/index.php?diff=153167&oldid=153161 * * (+408) Added a few more commands and examples
19:10:52 <esolangs> [[Stairlang]] https://esolangs.org/w/index.php?diff=153168&oldid=153167 * * (+155) Added alternate Hello World
19:14:22 <esolangs> [[Stairlang]] M https://esolangs.org/w/index.php?diff=153169&oldid=153168 * * (+140) Categories
19:15:48 <esolangs> [[Stairlang]] https://esolangs.org/w/index.php?diff=153170&oldid=153169 * Hotcrystal0 * (+0) fixing category
19:19:27 <esolangs> [[Q9+]] https://esolangs.org/w/index.php?diff=153171&oldid=153166 * Hotcrystal0 * (+277)
19:19:56 <esolangs> [[Q9+]] https://esolangs.org/w/index.php?diff=153172&oldid=153171 * Hotcrystal0 * (+0)
19:20:26 <esolangs> [[Q9+]] https://esolangs.org/w/index.php?diff=153173&oldid=153172 * Hotcrystal0 * (+0)
19:21:14 <esolangs> [[Q9+]] https://esolangs.org/w/index.php?diff=153174&oldid=153173 * Hotcrystal0 * (-12)
20:03:43 <esolangs> [[User:Buckets]] M https://esolangs.org/w/index.php?diff=153175&oldid=153064 * Buckets * (+33)
20:03:56 <esolangs> [[User:Buckets]] M https://esolangs.org/w/index.php?diff=153176&oldid=153175 * Buckets * (+2)
20:04:04 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=153177&oldid=153063 * Buckets * (+36)
20:04:25 <esolangs> [[S*n]] N https://esolangs.org/w/index.php?oldid=153178 * Buckets * (+1834) Created page with "{{wrongtitle|title=S<big><sup>*</sup></big>n}} S<big><sup>*</sup></big>n is an Esoteric programming language created by [[User:Buckets]] in 2022. {| class="wikitable" |- ! Commands !! Instructions |- | | || This is where the Code starts at. |- | [[Page]] || Go
20:04:35 <esolangs> [[S*n/Il]] N https://esolangs.org/w/index.php?oldid=153179 * Buckets * (+10) Created page with "[[S*n/Il]]"
20:04:41 <esolangs> [[S*n/Dup2]] N https://esolangs.org/w/index.php?oldid=153180 * Buckets * (+128) Created page with " <S*n/Dupe>{[[S*n/Dupe]]|[[S*n/Dupe]]} <S*n/Dup#>[[[S*n/Dup#]]-1] {S*n/Dup#="0"}([[S*n/Dup2]]) [[S*n/t]] #Dup2 [[:S*n/Dupe]]"
20:04:49 <esolangs> [[S*n/t]] N https://esolangs.org/w/index.php?oldid=153181 * Buckets * (+13) Created page with " [[S*n/Dup2]]"
20:04:56 <esolangs> [[S*n/U=0]] N https://esolangs.org/w/index.php?oldid=153182 * Buckets * (+120) Created page with " <S*n/FP0>[[[S*n/FP0]]-1] <S*n/FP1>[[[S*n/FP1]]*[[S*n/FP0]]] {[[S*n/FP0]]="0"}([[S*n/U=0]]) [[S*n/FP]] #U=0 [[:FP1]]"
20:05:04 <esolangs> [[S*n/FP]] N https://esolangs.org/w/index.php?oldid=153183 * Buckets * (+12) Created page with " [[S*n/U=0]]"
20:05:14 <esolangs> [[S*n/Quine]] N https://esolangs.org/w/index.php?oldid=153184 * Buckets * (+15) Created page with "|[[:S*n/Quine]]"
20:38:48 <zzo38> I wrote a JSON->DER conversion program https://raw.githubusercontent.com/zzo38/scorpion/refs/heads/trunk/asn1/jsontoder.c (it does not fully validate that the JSON data is correct, though)
20:58:09 <zzo38> (This is not the best use of DER, but it demonstrates how a conversion is possible.)
21:05:27 -!- amby has joined.
21:32:03 <esolangs> [[User:Hotcrystal0]] https://esolangs.org/w/index.php?diff=153185&oldid=153111 * Hotcrystal0 * (+60)
21:34:05 <esolangs> [[User:Hotcrystal0/Crystal-complete]] N https://esolangs.org/w/index.php?oldid=153186 * Hotcrystal0 * (+135) Created page with "A programming language is said to be crystal-complete if it meets all the following criteria: * It is able to print TRANS RIGHTS"
21:35:08 <esolangs> [[User:Hotcrystal0/Crystal-complete]] https://esolangs.org/w/index.php?diff=153187&oldid=153186 * Hotcrystal0 * (+73)
21:36:36 <esolangs> [[User:Hotcrystal0/Crystal-complete]] https://esolangs.org/w/index.php?diff=153188&oldid=153187 * Hotcrystal0 * (+0)
21:40:07 <esolangs> [[User:Hotcrystal0/Crystal-complete]] https://esolangs.org/w/index.php?diff=153189&oldid=153188 * Hotcrystal0 * (+42)
21:51:51 <esolangs> [[User:Hotcrystal0/Crystal-complete]] https://esolangs.org/w/index.php?diff=153190&oldid=153189 * Hotcrystal0 * (+313)
21:53:36 <esolangs> [[User:Hotcrystal0]] https://esolangs.org/w/index.php?diff=153191&oldid=153185 * Hotcrystal0 * (-50) User chart is cancelled
22:05:56 <esolangs> [[S*n/Il]] M https://esolangs.org/w/index.php?diff=153192&oldid=153179 * Buckets * (+1)
22:26:38 -!- craigo has quit (Read error: Connection reset by peer).
22:26:46 -!- craigo_ has joined.
22:40:10 <wryl> What's everyone's favorite Brainfuck variant?
22:46:07 <esolangs> [[User:Hotcrystal0/Crystal-complete]] https://esolangs.org/w/index.php?diff=153193&oldid=153190 * Hotcrystal0 * (+12)
22:53:17 <korvo> BF Joust is pretty cool.
22:54:23 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=153194&oldid=153177 * Buckets * (+16)
23:01:11 <esolangs> [[S*n/]] N https://esolangs.org/w/index.php?oldid=153195 * Buckets * (+160) Created page with "{{disambig}} "S<big><sup>*</sup></big>n/" Could refer to The following Pages: # [[S*n/Quine]] # [[S*n/Il]] # [[S*n/U=0]] # [[S*n/FP]] # [[S*n/Dup2]] # [[S*n/t]]"
23:04:45 <esolangs> [[Beep Boop]] M https://esolangs.org/w/index.php?diff=153196&oldid=152225 * Buckets * (+4)
23:12:46 <esolangs> [[Fontmess]] M https://esolangs.org/w/index.php?diff=153197&oldid=153093 * Buckets * (-202)
23:13:05 -!- ais523 has joined.
23:16:57 <esolangs> [[User:Hotcrystal0/Crystal-complete]] https://esolangs.org/w/index.php?diff=153198&oldid=153193 * Hotcrystal0 * (+22)
23:17:19 <esolangs> [[Special:Log/move]] move * Hotcrystal0 * moved [[User:Hotcrystal0/Crystal-complete]] to [[Crystal-complete]]: no longer WIP
23:44:24 <esolangs> [[Fontmess]] M https://esolangs.org/w/index.php?diff=153201&oldid=153197 * Buckets * (-24)