< 1765497645 742109 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Redirect from #raku: https://niklas-heer.github.io/speed-comparison/ is quite interesting in terms of the tiers that seem to emerge. We can almost guess what each tier's doing. > 1765498181 97111 PRIVMSG #esolangs :14[[07Kool14]]4 10 02https://esolangs.org/w/index.php?diff=170468&oldid=160191 5* 03A() 5* (+577) 10 > 1765498201 556846 PRIVMSG #esolangs :14[[07Kool14]]4 10 02https://esolangs.org/w/index.php?diff=170469&oldid=170468 5* 03A() 5* (+0) 10 > 1765498255 751100 PRIVMSG #esolangs :14[[07Kool14]]4 10 02https://esolangs.org/w/index.php?diff=170470&oldid=170469 5* 03A() 5* (+1) 10 > 1765498341 939619 PRIVMSG #esolangs :14[[07Kool14]]4 10 02https://esolangs.org/w/index.php?diff=170471&oldid=170470 5* 03A() 5* (+1) 10/* Xor gate */ > 1765498367 185403 PRIVMSG #esolangs :14[[07Kool14]]4 10 02https://esolangs.org/w/index.php?diff=170472&oldid=170471 5* 03A() 5* (+0) 10 < 1765499231 151005 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: not sure "redirect" is the right word, but I'm struggling to figure out what the right word is – maybe "crosspost" < 1765499305 646476 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it is curious to see C++ faster than C and Rust which are effectively tied – this makes me think that the program may have an optimisation that's missing in the other languages, and I would be surprised if the optimisation were tied to C++ in particular < 1765499406 76571 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :also Rust nightly being over twice as fast as non-nightly Rust is bizarre, I know Rust nightly doesn't have that big a performance improvement, so it's probably a case of the nightly version using an unstable feature and the non-nightly version not having a good workaround for it < 1765499415 55686 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: I suppose I should have said "forked from" or "tangent from". It's not a proper redirect, in the sense that the conversation didn't start here. (It's still used that way in USA court too, where it revisits a prior line of discussion.) < 1765499494 405009 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :oh, the "nightly" version is SIMD, that makes a big difference < 1765499558 628391 :int-e!~noone@int-e.eu PRIVMSG #esolangs :ais523: huh that's weird indeed; https://github.com/niklas-heer/speed-comparison/blob/master/src/leibniz.cpp and -.c look identical. < 1765499648 232536 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Rust uses (2..rounds).for_each(|i| {...}) and I'm never sure how exactly and how reliably that gets transformed into a loop. < 1765499657 348732 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the C and C++ must be being compiled with fast-math < 1765499668 208285 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :otherwise they would have the same performance as the Rust version < 1765499710 57589 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :int-e: it's equivalent to «for i in 2..rounds { … }», the version with the for loop would be more idiomaic < 1765499789 451017 :int-e!~noone@int-e.eu PRIVMSG #esolangs :sure, but it's up to the compiler to actually provide equal performance for those two versions < 1765499833 436152 :int-e!~noone@int-e.eu PRIVMSG #esolangs :I know that I've seen speedups from replacing range.for_each(|x| ... ) by for x in range { ... } < 1765499857 990271 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :int-e: I'm confused, they should be *literally* equivalent < 1765499890 570527 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Well, no, because one naively creates a closure and calls it many times and the other doesn't. < 1765499893 346088 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :the big cluster of languages that includes "stable Rust" all have mandatory bounds checking in common, so I wonder if the difference has something to do with range optimizations < 1765499906 923527 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :hmm, apparently not: https://doc.rust-lang.org/stable/src/core/iter/traits/iterator.rs.html#818-829 < 1765499927 56153 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :(actually looks at code, notices lack of array) < 1765499929 351604 :int-e!~noone@int-e.eu PRIVMSG #esolangs :so there's a bunch of inlining that *has* to happen before they become the same < 1765499931 366941 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I was expecting it to just be implemented as "for x in self { (f)(x) }" but the implementation is more complicated than that < 1765499972 327592 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :kind of surprised there are language differences at all, this looks like something you'd write to stress FDIV for uops.info < 1765499975 546346 :int-e!~noone@int-e.eu PRIVMSG #esolangs :for i in ... also has some unfolding to do because of the iterator interface < 1765499980 20006 :int-e!~noone@int-e.eu PRIVMSG #esolangs :ACTION shrugs < 1765500018 197442 :ais523!~ais523@user/ais523 PRIVMSG #esolangs : Well, no, because one naively creates a closure and calls it many times and the other doesn't. ← Rust closures don't work like you're expecting them to, they have unique types and Rust monomorphises by default, so the only way to not inline them is to explicitly use code that tells it to not monomorphize (dyn or a cast to function pointer) < 1765500050 432309 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :sorear: the really big difference is that it's adding to a floating-point-typed accumulator and all the additions are done in sequence < 1765500092 403656 :int-e!~noone@int-e.eu PRIVMSG #esolangs :ais523: For C and C++, the flags appear to be {gcc,g++} leibniz.c -o leibniz -O3 -s -static -flto -march=native -mtune=native -fomit-frame-pointer -fno-signed-zeros -fno-trapping-math -fassociative-math < 1765500110 636702 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :because floating point has rounding errors, any optimisation that changes the order in which the additions occur could potentially change the result, so if you're using a language that tries to match the program's semantics exactly you can't vectorise this < 1765500155 247725 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :int-e: -fassociative-math is the main thing that makes the huge speedup legal, the no-signed-zeros and no-trapping-math are probably needed to make it work on current hardware though < 1765500161 370942 :int-e!~noone@int-e.eu PRIVMSG #esolangs :and for clang{,++} they add -mtune=native < 1765500178 914329 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :well gcc also has march=native and mtune=native < 1765500190 605296 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but that isn't so useful without knowing the processor that it's being compiled on < 1765500191 982808 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :anything that N=2 unrolls the loop will remove half the adds and multiplies < 1765500205 660803 :int-e!~noone@int-e.eu PRIVMSG #esolangs :ais523: ah, sorry, it was obscured by a line break < 1765500232 355 :int-e!~noone@int-e.eu PRIVMSG #esolangs :So I *really* don't understand why C and C++ are noticably different. Could be a code alignment thing I suppose. < 1765500279 828151 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Anyway, these flags and more are in https://github.com/niklas-heer/speed-comparison/blob/master/Earthfile < 1765500295 976829 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :code alignment is so annoying because it has significant effects but it is very hard to tell what they are in order to optimise for them < 1765500376 367133 :int-e!~noone@int-e.eu PRIVMSG #esolangs :"the big optimization" is vectorization, I presume < 1765500406 500413 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the "non-nightly" Rust should be very close to max speed for a nonvectorised version < 1765500411 256100 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :As a general hint, it looks like this repo tries to separate SIMD and non-SIMD entries; if a language shows up twice and there's no other plausible difference, it's probably SIMD. < 1765500423 320201 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :unless it isn't being unrolled properly, but LLVM likes to unroll by 2 or 4 < 1765500484 76203 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the version number of Perl is stated as just "5" which seems unlikely to me, Perl 5.0 was obsolete decades ago < 1765500500 107671 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it's probably forgotten to specify the minor version < 1765500607 253657 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I'm vaguely wondering how INTERCAL would do, but given that it would be a soft-float implementation, it would likely be considerably slower than everything else on the chart < 1765500649 883845 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :no faith in your idiom recognizer? < 1765500696 881511 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :sorear: it's a pretty good idiom recognizer but it only optimises within an expression < 1765500713 9853 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and even integer additions in INTERCAL are almost always done with loops < 1765500745 1784 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :even llvm does loop idioms these days < 1765500748 920390 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the idiomatic way to do float calculations in INTERCAL would be to link in flonck, which definitely can't do the operations in a single expression < 1765500759 758437 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :C-INTERCAL doesn't optimise across statements < 1765500784 846504 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :you would need a lot of special cases for things like abstain and forget and come from… < 1765500857 746297 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: The Raku folks would appreciate it if you added a new slowest language. I was thinking of adding a Monte version to see how bad it is. < 1765500879 577326 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I haven't significantly worked on C-INTERCAL for a while, but one of the things I wanted to add (and made some progress towards) was a constraint solver < 1765500898 589675 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :There are also languages which could be very funny to add, like awk. < 1765500906 380351 :int-e!~noone@int-e.eu PRIVMSG #esolangs :ais523: it feeds the output of `perl -v` into this: https://github.com/niklas-heer/speed-comparison/blob/master/scmeta/src/scmeta.cr#L32-L49 < 1765500929 399372 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :so that when assigning to an expression, it would ensure that any variable that was used multiple times in the expression would be given the same value for each use < 1765500935 599839 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(the fact that it doesn't currently do that is arguably a bug) < 1765500960 464667 :int-e!~noone@int-e.eu PRIVMSG #esolangs :so it finds `5` before `40` and `1` and `5.40.1`. < 1765500965 721011 :int-e!~noone@int-e.eu PRIVMSG #esolangs :(for example) < 1765500968 934927 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :with the constraint solver, implementing addition as a single calculate statement is probably not too difficult < 1765500995 48607 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :this seems much worse than the old shootout < 1765501025 455490 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :that at least had benchmarks testing PL features like recursion, not just "how fast is your CPU's divider and how YOLO is your fast-math impl" < 1765501095 128883 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :Actual Perl 5 needs to account for the fact that perl <= 5.005 version numbers are floats, not strings < 1765501107 458227 :int-e!~noone@int-e.eu PRIVMSG #esolangs :`` perl -v | head -n 2 < 1765501110 333481 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :​ \ This is perl 5, version 28, subversion 1 (v5.28.1) built for x86_64-linux-gnu-thread-multi < 1765501119 187929 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :right, I was trying to find a simple command that reports the Perl version number in an easily parseable way < 1765501143 145858 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :print $] < 1765501147 147038 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but before perl 5.6 the only programmatic access is the version number as an encoded float < 1765501175 407965 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Somehow I doubt they'd care about supporting old Perls :-P < 1765501184 40526 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :my current Perl's $] is 5.040001 which is very hard to read if you don't know the encoding rules < 1765501198 987690 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :`` perl -E 'say $^V' < 1765501200 574468 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :v5.28.1 < 1765501211 44684 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :that's a clean way to do it on more recent Perls < 1765501282 467808 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(although a slightly weird one, the result of $^V is a magical type that looks different based on how you use it, like $! does) < 1765501323 154539 :int-e!~noone@int-e.eu PRIVMSG #esolangs :lol "Add Perl version. Closes #3." (wrong kind of version; this is a variant of the leibniz program :P) < 1765501350 207492 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :`` perl -E '$!=20; say $!' < 1765501352 347649 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :Not a directory < 1765501370 406445 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :arguably $^V is more of a magical type than $! < 1765501386 548964 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :$! just uses variable features to set both the string and numeric value < 1765501392 917038 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :with $! it's more that the variable itself is magical, than that the type is < 1765501404 88354 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :whereas $^V is a version object that can be assigned to other variables < 1765501428 7416 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I have fond memories of stealing the magic from @_ in order to do something or other, but I can't remember what I was doing or why < 1765501451 51811 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I don't think it was intended as a practical thing to do, it was part of a puzzle or codegolf or something like that < 1765501484 392821 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :most of the interesting magic variable tricks are easier to do from the C API than golfed perl itself < 1765501565 737783 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :oddly enough I've been doing something similar in Rust, stealing the magic from Display/Debug in order to call functions that need a formatter argument < 1765501589 797386 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(I think there have been discussions about adding a non-hacky way to create a Formatter in order to be able to do that legitimately) < 1765501625 137210 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :the format-args macros are magic but I didn't think the traits were? < 1765501645 86538 :int-e!~noone@int-e.eu PRIVMSG #esolangs :that's the point though isn't it... < 1765501654 205546 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the traits aren't, but they're the only things that the formatting functions are willing to speak to < 1765501665 439518 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :so you need to go via the trait to steal the magic from the macro < 1765501964 311658 :int-e!~noone@int-e.eu PRIVMSG #esolangs :https://doc.rust-lang.org/std/fmt/index.html#format_args covers the other half of this < 1765502109 666387 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I'm quite familiar with format_args! weirdness because format_args! and pin! are the two stable macros that do something that logically could be expressed with normal Rust code except that they have weird lifetime/scoping effects that can't be replicatd < 1765502150 285854 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and the details of those specific weird effects keep breaking and causing bug reports < 1765502215 207469 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :("super let" is a good search term if you're interested – it's an old proposed name for the technique but I don't think there's a new one yet, so everyone uses the old name) < 1765503637 358527 :joast!~joast@2603:90d8:500:31cf:5e0f:3f4b:1cfe:5060 QUIT :Quit: Leaving. < 1765504627 494133 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :ais523: IIUC format_args! does two or three separate magical things. (1) takes the non-first arguments by reference without an explicit `&` sign, (2) vararg, so if you wanted a non-macro version you'd be passing a variable-length tuple of references instead of variable number of arguments, and (3) during compile time, it parses the format string argument and typechecks the other arguments according to < 1765504633 504165 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :them, this may or may not be magic in that maybe current rust can do it in constexpr time, but I don't think it can yet. < 1765504663 11139 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: oddly it isn't format_args! magic that I wanted, but that of write! < 1765504679 791059 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :which is able to make a Formatter, something you can't otherwise do in stable Rust without using a write!-like macro < 1765504682 698478 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :you can certainly do (3) in runtime, but it's useful to do it in compile time for earlier detection of mistakes < 1765504713 364046 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :format_args! being a macro is fine (although (1) annoys me, it seems like the inconsistency is not worth any perceived benefit) < 1765504759 294326 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :I don't like format_args, but that's not because of any of these magic < 1765504830 583952 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :what are the drawbacks of C++-style print chaining? < 1765504850 600438 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :(1) and (2) can easily be replicated by a macro that adds the ampersands, and you can just pub both the underlying function and the convenience macro. (3) is hard but can probably be implemented by a compiler plugin macro. < 1765504851 72752 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :cout << "abc" << x << "def";, that sort of thing < 1765505383 432753 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :ais523: printf("(%5.2f,%5.2f)", x[0], x[1]); versus cout << fixed << setprecision(2) << "(" << setw(5) << x[0] << "," << setw(5) << x[1] << ")"; // the later hasn't even restored the format flags and precision for later < 1765505439 823061 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: right, I think you'd use newtypes rather than filehandle state in order to make this sort of thing less ufly < 1765505475 896937 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :cout << "(" << fixed(5,2,x[0]) << "," << fixed(5,2,x[1]) << ")"; < 1765505711 238930 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :this kind of formatted debugging output is just so common in my code that printf-like format patterns are very useful for it. it's fine to expose a different interface too, but I want printf-like format specifications. and proper floating-point formats, which is currently missing from the rust standard library. and being able to output byte strings unchanged without them necessarily being utf-8 strings. < 1765505717 244130 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :and another function that formats into utf-16 output directly, but I admit this one may be a stretch. < 1765506084 983091 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I guess from my point of view, printf is varargs but it's inherently just running separately on each argument and concatenating, so the varargs isn't actually required < 1765506117 419934 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :for floating-point, I want all three of %a, %e, %g formats both such that I can specify the precision (it's fine if there's an upper bound on how many digits I can requests) and such that sufficient number of digits are written that parsing the output gives the original number, and %f format with the given number of digits after the decimal point. < 1765506120 187299 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :so it's basically about how much sugar you ant to put around it < 1765506133 94643 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :* you want < 1765506201 784300 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :and I insist on C printf-like format strings because I'm not going to type "{:.2f}" instead of "%.2f" all the time, and I definitely won't put up with rust format's stupidity where "{}" means %f instead of %g < 1765506260 939452 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :and you should expose a functional interface for when you don't want to use the printf-like patterns, like you asked for < 1765506262 444540 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :nowadays Rust lets you do "{x:.2f},{y:.2f}" and it uses the values of the vairables x and y < 1765506271 895313 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :this is horrifying to me but might make more sense from your point of view < 1765506319 527532 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :oh! the best syntax would probably be something like println!(x[0]:.2 "," y[0]:.2) < 1765506326 471313 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :I kind of don't like the embedded expressions, but I admit that part might just be bias because I'm used to the separate arguments < 1765506349 39441 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :putting the embedded expressions outside the string < 1765506372 414246 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :this is basically what Perl print (as opposed to printf) does < 1765507044 941167 :joast!~joast@2603:90d8:500:31cf:5e0f:3f4b:1cfe:5060 JOIN #esolangs joast :joast > 1765507737 360155 PRIVMSG #esolangs :14[[07Semi-serious language list14]]4 10 02https://esolangs.org/w/index.php?diff=170473&oldid=170453 5* 03Xysdd 5* (-19) 10not original > 1765507893 138258 PRIVMSG #esolangs :14[[07Semi-serious language list14]]4 10 02https://esolangs.org/w/index.php?diff=170474&oldid=170473 5* 03Xysdd 5* (-19) 10unoriginal and WIP < 1765513288 444714 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Well, I think I've made a wrong turn at Alberquerque, so to speak; I'm looking up how to find and kill grandchildren and ISTR that this is an indication that everything has gone wrong. < 1765513353 93219 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I'm thinking about how to implement ejectors for Vixen. The key thing I need to do is detect when I'm in a nested execve(), find a matching process further up the call stack, and kill all intermediate processes. < 1765513527 977791 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I guess that I want a way to cancel a process tree. But I don't want to have to set up a supervisor tree any time that I need an ejector. < 1765513674 517842 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Oh, I can just use a process group. The nested execve() will kill itself, but I can arrange for it to do its work first. < 1765513722 576809 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :do process groups nest correctly? < 1765513860 17585 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :looks like they don't (but depending on what you're doing, they might not need to) < 1765514075 49317 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I want to write Vixen like `Ejector escape: [:ej|...]` where the body of the nested block returns a value. This means running a process that takes `ej` as its argv[2] and collecting its stdout. The value of the nested block is the value of the whole expression, *except*... < 1765514128 577425 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :...if the body ever runs `ej eject: "some human-readable label"` then the entirety of the block is canceled and evaluates to whatever was ejected. Even if it's deeply nested. < 1765514276 509395 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I wonder if continuation passing style would be a good solution here – especially as that's basically how execline works < 1765514311 688243 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :also I'm confused because execve ends the process that calls it, so there wouldn't be matching process higher up < 1765514341 825398 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but you need to think about what happens if you have two nested ejectors, users would expect to be able to eject to either the inner or the outer one < 1765514427 793492 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Smalltalk blocks are basically continuations. But they're multi-use undelimited continuations; they can do anything and don't have to return. E-style ejectors are single-use delimited continuations. The extra discipline lets them implement break/return/continue without having to trust that the called method is correctly going to exit when it's done. < 1765514464 248320 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Yes! Process groups won't work because the outer ejector needs to also kill the inner ejector somehow. < 1765514494 566158 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Hm. setsid() isn't actually privileged, so I could just start a new session instead. But those can't nest either. < 1765514525 562075 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :...Oh no. You know what does nest on Linux? cgroups. < 1765514584 581210 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :one thing that I'm curious about is how esoteric a project Vixen is meant to be < 1765514617 377307 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :are you creating a language that works like this purely because it's expected to be fun/interesting, or do you have a practical use for it? (this is #esoteric, both answers are acceptable) < 1765514653 543341 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and setsid() can't be privileged, otherwise you'd need root permissions to open a terminal emulator < 1765514682 524668 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I am cleaning up my homelab. The Smalltix convention is helping me organize various scripts by augmenting directories with behavior. I have a SymlinkFarm object, for example; it gives a directory of symlinks the ability to index and mutate itself. < 1765514723 593272 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :I know you're old enough to remember /dev/ptyXX < 1765514749 743624 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :sorear: there have always been workarounds for pty creation < 1765514751 490759 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :The name is chosen so that, in the unlikely event that I adapt s6 and fork SixOS, I can justify calling the Linux distro "Vixen" as well, with Xenia as the mascot. But we all know that I love running my mouth about planned projects that go nowhere. < 1765514761 376421 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but you need to be able to setsid to link the terminal emulator to the pty < 1765514786 53509 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I had thought that getty, sshd, etc. were started with extra permissions somehow, TBH. TIL. < 1765514791 394688 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I can't remember what people did before getsid < 1765514806 27173 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: xterm needs to setsid too < 1765514830 909847 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :otherwise, foregrounding a process in one xterm would background all the processes in other xterms you were running < 1765514863 865866 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: I thought that *that* was given by some sort of X11 magic credential. I've learned to not underestimate how much authority is smuggled through X11 login. < 1765514877 213140 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :OK, tmux then < 1765514932 53746 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I had thought that tmux, screen, abduco, etc. have a special magic page of assembly which does some evil stuff to manage terminal access. I *did* since learn, a few years ago, that it can be done in portable C. < 1765514986 393411 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Past Corbin sure didn't know much about Linux. Honestly, must have been nice for Past Corbin. Ignorance is bliss. < 1765515001 13892 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I think the hard part of all this is that there are a lot of things that go on with this sort of thing, with various levels of magic < 1765515015 82003 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :sometimes the problem is a mess of daemons and weird libraries and rarely used permissions < 1765515025 703408 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and sometimes there's just a system call that does exactly what you need < 1765515068 965738 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Yeah. Like, one of my side questions that I haven't settled is how exactly to call openat2(). I might just have a Rust binary that does it. < 1765515071 326654 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(there is some crazy magic here: if you call setsid() and then open a terminal, the session gets linked to the terminal) < 1765515102 387372 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :open has an option to *not* be magic, but you have to turn it on intentionally, it does the magic by default < 1765515172 567702 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :actually this really troubles me, this is (while convenient) pretty much nonsenical from an API perspective < 1765515257 608169 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it's probably a historical accident where someone wanted to write a terminal emulator and ended up writing it partly in userspace and partly in the kernel because that's what was most convenient, and now POSIX has a bizarre magic libc call for backwards compatibility with other terminal emulators that did the same thing in order to make use of the available APIs < 1765515820 784430 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :https://unix.stackexchange.com/a/450242 Found an answer with cgroups in mind. Quoting the attached PR, "This allows to conveniently kill the entire process tree below the forked program, a common problem when scripting tasks that need to reliably fully terminate without leaving reparented subprocesses behind." < 1765515853 468743 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523, sorear: Thanks for the rubber-ducking. I'd apologize for all the stupid questions, but at least this one had a smart answer. < 1765515873 984510 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :And the air fryer just finished the baked potatoes! Truly this is a great evening. < 1765515895 771657 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: right, it might be a weird context in which the problem arose, but that doesn't mean that the problem itself isn't sensible < 1765515944 32719 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: It's very analogous to being able to unwind a stack. In general, that's a weird thing to want. But if implementing exception handling, or continuations, then it's actually essential. < 1765515990 288856 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :right – I noticed the analogy, just wasn't quite sure what it meant for Vixen < 1765516010 221291 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :"very analogous"? What a phrase. So tired. I'm demonstrating that I can do all my New Year's resolutions in one day, including an hour of yardwork this morning and 2.5hrs of running Zelda 3 in public. < 1765516070 774143 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :TBH I don't actually know what Vixen should be. I'm going to take Jakubovic's analogy as far as I can; how much of E-style secure-distributed computing can we do with directories and processes? Do I *need* vats? Are auditors possible or good? > 1765516584 203669 PRIVMSG #esolangs :14[[07Caten14]]4 N10 02https://esolangs.org/w/index.php?oldid=170475 5* 03Timm 5* (+345) 10Created page with "use [[Cq+]] this is engine use "caten" has [sprite].set pos [x] [y] rot [rot] if [var] > [value] to [code] else [code2] if [var] < [value] to [code] else [code2] if [var] = [value] and [var] = [value] to [code] else [code2] /# and so on #/ [sprite].change pos [x] > 1765516587 372726 PRIVMSG #esolangs :14[[07Cq+14]]4 N10 02https://esolangs.org/w/index.php?oldid=170476 5* 03Timm 5* (+407) 10Created page with "{{stub}} Cq+ or cqut is esolang for engine [[Caten]] use "[name of class group or plugin]" class [class] [class name].[var name] = [value] ... name [function] to [code] /# or #/ name [function] to { [code] } end sub [int2] from [int] add [int] and [int] > 1765516840 371910 PRIVMSG #esolangs :14[[07User:Timm14]]4 10 02https://esolangs.org/w/index.php?diff=170477&oldid=170318 5* 03Timm 5* (+94) 10 > 1765517156 469401 PRIVMSG #esolangs :14[[07Kool14]]4 10 02https://esolangs.org/w/index.php?diff=170478&oldid=170472 5* 03Yayimhere2(school) 5* (+9) 10this is also a stub. < 1765518655 205389 :pool!~nathan@user/PoolloverNathan QUIT :Ping timeout: 240 seconds < 1765518689 329267 :pool!~nathan@user/PoolloverNathan JOIN #esolangs PoolloverNathan :nathan > 1765519525 824003 PRIVMSG #esolangs :14[[07Bitdeque14]]4 10 02https://esolangs.org/w/index.php?diff=170479&oldid=75993 5* 03Yayimhere2(school) 5* (-293) 10/* Computational class */ I actually tried doing the proof, and it didnt work. Im deleting the category. > 1765520638 500949 PRIVMSG #esolangs :14[[07Bitdeque14]]4 10 02https://esolangs.org/w/index.php?diff=170480&oldid=170479 5* 03Ais523 5* (+1406) 10TCness proof it might be possible to directly do a Minsky machine with this, but the proof via cyclic tag is very simple and direct so I decided to use that instead < 1765524158 340682 :Yayimhere!~Yayimhere@197.184.182.142 JOIN #esolangs * :[https://web.libera.chat] Yayimhere < 1765525278 704573 :ais523!~ais523@user/ais523 QUIT :Quit: quit < 1765526006 797811 :ais523!~ais523@user/ais523 JOIN #esolangs ais523 :(this is obviously not my real name) < 1765526556 292537 :Sgeo!~Sgeo@user/sgeo QUIT :Read error: Connection reset by peer < 1765530237 554080 :tromp!~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2 JOIN #esolangs * :Textual User < 1765531187 340599 :Yayimhere!~Yayimhere@197.184.182.142 QUIT :Ping timeout: 272 seconds < 1765531376 340309 :Yayimhere!~Yayimhere@197.184.182.142 JOIN #esolangs * :[https://web.libera.chat] Yayimhere > 1765532564 697249 PRIVMSG #esolangs :14[[07Cq+14]]4 M10 02https://esolangs.org/w/index.php?diff=170481&oldid=170476 5* 03JIT 5* (+24) 10 > 1765532823 294983 PRIVMSG #esolangs :14[[07IMAGERY14]]4 M10 02https://esolangs.org/w/index.php?diff=170482&oldid=169822 5* 03JIT 5* (+9) 10 > 1765533344 186296 PRIVMSG #esolangs :14[[07B914]]4 M10 02https://esolangs.org/w/index.php?diff=170483&oldid=167949 5* 03JIT 5* (+66) 10 > 1765533429 418209 PRIVMSG #esolangs :14[[07B914]]4 10 02https://esolangs.org/w/index.php?diff=170484&oldid=170483 5* 03Yayimhere2(school) 5* (+9) 10not very detailed, or in other words, {{stub}} < 1765534974 623636 :chomwitt!~alex@2a02:85f:9a67:8b00:42b0:76ff:fe46:a5fd JOIN #esolangs chomwitt :realname < 1765535668 419348 :APic!apic@apic.name PRIVMSG #esolangs :Hi < 1765535872 117160 :Yayimhere!~Yayimhere@197.184.182.142 PRIVMSG #esolangs :Hi APic! < 1765535914 495672 :APic!apic@apic.name PRIVMSG #esolangs :Yo Yayimhere < 1765535940 796708 :Yayimhere!~Yayimhere@197.184.182.142 PRIVMSG #esolangs :APic: how are you? < 1765535963 903054 :APic!apic@apic.name PRIVMSG #esolangs :Fine < 1765535964 616043 :APic!apic@apic.name PRIVMSG #esolangs :ktnx < 1765535971 451804 :APic!apic@apic.name PRIVMSG #esolangs :Just breakfasting Vegetable Juice < 1765535974 491640 :APic!apic@apic.name PRIVMSG #esolangs :Yayimhere: And You? < 1765535981 370240 :Yayimhere!~Yayimhere@197.184.182.142 PRIVMSG #esolangs :APic: im good < 1765535986 375079 :Yayimhere!~Yayimhere@197.184.182.142 PRIVMSG #esolangs :slept better today < 1765535991 573723 :APic!apic@apic.name PRIVMSG #esolangs :Nice < 1765536004 755039 :Yayimhere!~Yayimhere@197.184.182.142 PRIVMSG #esolangs :ive been writing some semi formal string rewriting systems < 1765536175 954348 :tromp!~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2 QUIT :Quit: My iMac has gone to sleep. ZZZzzz… < 1765536324 198228 :tromp!~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2 JOIN #esolangs * :Textual User < 1765537859 622067 :Yayimhere!~Yayimhere@197.184.182.142 QUIT :Quit: Client closed > 1765540234 219960 PRIVMSG #esolangs :14[[07User talk:None114]]4 10 02https://esolangs.org/w/index.php?diff=170485&oldid=170458 5* 03None1 5* (+309) 10/* SLet */ > 1765541339 420115 PRIVMSG #esolangs :14[[07Navrytl14]]4 N10 02https://esolangs.org/w/index.php?oldid=170486 5* 03PrySigneToFry 5* (+10839) 10Created page with "Navrytl is designed by PSTF. It is Brainfuck equivalent in Timeline 284436. In that universe, it is designed by Maiquel Quehuacetzel, is also a big fan of Aztec culture. His real name is Mike Quitrys. = Overview = Navrytl(in fact it should be nahuitl but Mike m < 1765543451 783240 :tromp!~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2 QUIT :Quit: My iMac has gone to sleep. ZZZzzz… < 1765545104 66559 :ais523!~ais523@user/ais523 QUIT :Quit: quit < 1765545601 217921 :ais523!~ais523@user/ais523 JOIN #esolangs ais523 :(this is obviously not my real name) < 1765546856 981914 :Everything!~Everythin@172-232-54-192.ip.linodeusercontent.com QUIT :Quit: leaving > 1765548003 336579 PRIVMSG #esolangs :14[[07Syntaxing14]]4 N10 02https://esolangs.org/w/index.php?oldid=170487 5* 03Timm 5* (+406) 10Created page with "{{stub}} digit => "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9" number => (""|"-")&[digit] lcl => "a"| #oops :3 add info number2 => {"-"}&[digit] def *name* *args* -> command macros *name* *args* -> return valid "print" *text* valid number [[brainfuck]] syntax valid " > 1765548040 643797 PRIVMSG #esolangs :14[[07User:Timm14]]4 10 02https://esolangs.org/w/index.php?diff=170488&oldid=170477 5* 03Timm 5* (+17) 10 < 1765548225 578419 :tromp!~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2 JOIN #esolangs * :Textual User > 1765549766 506356 PRIVMSG #esolangs :14[[07IMAGERY14]]4 10 02https://esolangs.org/w/index.php?diff=170489&oldid=170482 5* 03 5* (+27) 10 > 1765549791 544902 PRIVMSG #esolangs :14[[07Esolang:Candidates for deletion14]]4 10 02https://esolangs.org/w/index.php?diff=170490&oldid=168377 5* 03 5* (+14) 10 > 1765549819 530960 PRIVMSG #esolangs :14[[07User:/esolangs14]]4 10 02https://esolangs.org/w/index.php?diff=170491&oldid=169959 5* 03 5* (-13) 10 < 1765550145 341327 :impomatic!~impomatic@2a00:23c7:5fc6:3201:18cb:9ad0:3763:2b8f JOIN #esolangs * :[https://web.libera.chat] impomatic < 1765551043 954739 :Sgeo!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname < 1765551751 381169 :ais523!~ais523@user/ais523 QUIT :Quit: quit > 1765551833 162923 PRIVMSG #esolangs :14[[07Talk:IMAGERY14]]4 N10 02https://esolangs.org/w/index.php?oldid=170492 5* 03Yayimhere2(school) 5* (+182) 10Created page with "This language is impossible. How would you make an interpreter? --~~~~" < 1765551900 546310 :tromp!~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2 QUIT :Quit: My iMac has gone to sleep. ZZZzzz… > 1765551970 924678 PRIVMSG #esolangs :14[[07User talk:Waffelz14]]4 10 02https://esolangs.org/w/index.php?diff=170493&oldid=169596 5* 03Yayimhere2(school) 5* (+205) 10/* Tea */ < 1765552223 826941 :tromp!~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2 JOIN #esolangs * :Textual User > 1765553532 665362 PRIVMSG #esolangs :14[[07User talk:Stkptr14]]4 M10 02https://esolangs.org/w/index.php?diff=170494&oldid=162160 5* 03Nguyendinhtung2014 5* (+212) 10 < 1765554116 355243 :amby!~ambylastn@host-81-178-152-248.as13285.net JOIN #esolangs amby :realname < 1765558423 958761 :sprock!~sprock@user/sprock QUIT :Ping timeout: 240 seconds > 1765558431 808171 PRIVMSG #esolangs :14[[07User talk:Stkptr14]]4 10 02https://esolangs.org/w/index.php?diff=170495&oldid=170494 5* 03Yayimhere2(school) 5* (+273) 10/* Coincidence? */ > 1765559107 307039 PRIVMSG #esolangs :14[[07Esolang:Candidates for deletion14]]4 10 02https://esolangs.org/w/index.php?diff=170496&oldid=170490 5* 03Corbin 5* (+913) 10Organizing and proposing policy. < 1765559142 205191 :sprock!~sprock@user/sprock JOIN #esolangs sprock :maeve (she/her) < 1765559160 264177 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :^^ I am going to start proposing deletion policy. Please discuss any concerns you might have, as this is the sort of thing that we don't want to get horribly wrong. < 1765559434 535278 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Crucially, given the wiki's size and the number of deletions that occur, I'm not proposing the same sort of consensus-seeking approach used on English WP. We can do that on a case-by-case basis if people want, but right now it seems like the main issue is one of *enumerating* what has already been agreed to be deleted. > 1765560456 327515 PRIVMSG #esolangs :14[[07Semi-serious language list14]]4 10 02https://esolangs.org/w/index.php?diff=170497&oldid=170474 5* 03Yayimhere2(school) 5* (-49) 10/* U */ Unary isnt special enough(its one of the most trivial ideas of how to make a variant of a language). > 1765561042 949627 PRIVMSG #esolangs :14[[07User:Deltayelta/Dredge14]]4 10 02https://esolangs.org/w/index.php?diff=170498&oldid=169858 5* 03Deltayelta 5* (+1396) 10wow I just wrote a bunch > 1765561066 310801 PRIVMSG #esolangs :14[[07Special:Log/newusers14]]4 create10 02 5* 03MEMORY 5* 10New user account < 1765561862 700176 :lynndotpy6093!~rootcanal@134.122.123.70 QUIT :Quit: bye bye < 1765561923 316838 :lynndotpy6093!~rootcanal@134.122.123.70 JOIN #esolangs lynndotpy :lynn > 1765562647 897848 PRIVMSG #esolangs :14[[07The code is a maze14]]4 N10 02https://esolangs.org/w/index.php?oldid=170499 5* 03Hammy2 5* (+1111) 10Created page with "'''The code is a maze''' is a [[Zame]]-inspired esolang by [[User:Hammy]] ==Execution== The program is a maze made out of characters that can be anything. The first part of execution is the solving. The "solver" will start solving the maze at the top-left co > 1765563683 263046 PRIVMSG #esolangs :14[[07Talk:IMAGERY14]]4 10 02https://esolangs.org/w/index.php?diff=170500&oldid=170492 5* 03Hammy2 5* (+181) 10 > 1765563786 488965 PRIVMSG #esolangs :14[[07User talk:14]]4 10 02https://esolangs.org/w/index.php?diff=170501&oldid=170046 5* 03Hammy2 5* (+65) 10/* Signature length */ < 1765564259 224737 :tromp!~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2 QUIT :Quit: My iMac has gone to sleep. ZZZzzz… > 1765564405 428469 PRIVMSG #esolangs :14[[07User talk:14]]4 10 02https://esolangs.org/w/index.php?diff=170502&oldid=170501 5* 03Aadenboy 5* (+452) 10/* Signature length */ > 1765564766 117429 PRIVMSG #esolangs :14[[07User talk:Hammy/signature14]]4 N10 02https://esolangs.org/w/index.php?oldid=170503 5* 03Aadenboy 5* (+385) 10Created page with "just letting you know, all of your messages signed using this template say they were posted at the same time ~~~~" > 1765564778 344543 PRIVMSG #esolangs :14[[07User talk:Hammy/signature14]]4 10 02https://esolangs.org/w/index.php?diff=170504&oldid=170503 5* 03Aadenboy 5* (+13) 10 < 1765565874 816977 :tromp!~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2 JOIN #esolangs * :Textual User < 1765567304 269754 :tromp!~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2 QUIT :Quit: My iMac has gone to sleep. ZZZzzz… < 1765567910 976557 :Lord_of_Life_!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord < 1765567917 348744 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Ping timeout: 252 seconds < 1765568074 406824 :Lord_of_Life_!~Lord@user/lord-of-life/x-2819915 NICK :Lord_of_Life < 1765569472 34270 :tromp!~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2 JOIN #esolangs * :Textual User < 1765574822 884409 :impomatic!~impomatic@2a00:23c7:5fc6:3201:18cb:9ad0:3763:2b8f QUIT :Quit: Client closed > 1765574929 664386 PRIVMSG #esolangs :14[[07Language list14]]4 M10 02https://esolangs.org/w/index.php?diff=170505&oldid=170415 5* 03Buckets 5* (+10) 10 > 1765574967 107526 PRIVMSG #esolangs :14[[07User:Buckets14]]4 M10 02https://esolangs.org/w/index.php?diff=170506&oldid=170362 5* 03Buckets 5* (+9) 10 > 1765574980 182804 PRIVMSG #esolangs :14[[07Pab14]]4 N10 02https://esolangs.org/w/index.php?oldid=170507 5* 03Buckets 5* (+1490) 10Created page with "Pab Is an esoteric Programming Language created by [[User:Buckets]] In 2021. {| class="wikitable" |- ! Commands !! Instructions |- | Any readable ASCII character. || Set the value To That ASCII Character. |- | Any unreadable ASCII character. || End the Program. |- | || Pr > 1765575048 851534 PRIVMSG #esolangs :14[[07User:Buckets/Sandbox14]]4 M10 02https://esolangs.org/w/index.php?diff=170508&oldid=158541 5* 03Buckets 5* (+4001) 10 > 1765575354 886445 PRIVMSG #esolangs :14[[07Pab14]]4 M10 02https://esolangs.org/w/index.php?diff=170509&oldid=170507 5* 03Buckets 5* (-10) 10 < 1765576028 610963 :chomwitt!~alex@2a02:85f:9a67:8b00:42b0:76ff:fe46:a5fd QUIT :Ping timeout: 260 seconds > 1765577613 764480 PRIVMSG #esolangs :14[[07User talk:Waffelz14]]4 10 02https://esolangs.org/w/index.php?diff=170510&oldid=170493 5* 03Waffelz 5* (+140) 10 < 1765578587 873324 :int-e!~noone@int-e.eu PRIVMSG #esolangs :AAARGH why did I spend so much time on today's AoC. < 1765579047 389203 :tromp!~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2 QUIT :Quit: My iMac has gone to sleep. ZZZzzz… < 1765579123 819427 :pool!~nathan@user/PoolloverNathan QUIT :Quit: The Lounge - https://thelounge.chat > 1765579139 176589 PRIVMSG #esolangs :14[[07Vixen14]]4 10 02https://esolangs.org/w/index.php?diff=170511&oldid=170008 5* 03Corbin 5* (+2304) 10/* Core */ A possible way to do ejectors. I don't know if it's possible to avoid the TOCTTOU without directly doing some syscalls. < 1765579152 328292 :pool!~nathan@user/PoolloverNathan JOIN #esolangs PoolloverNathan :nathan < 1765579264 996745 :pool!~nathan@user/PoolloverNathan QUIT :Client Quit < 1765579290 335698 :pool!~nathan@user/PoolloverNathan JOIN #esolangs PoolloverNathan :nathan < 1765579537 413573 :pool!~nathan@user/PoolloverNathan QUIT :Client Quit < 1765579546 408901 :APic!apic@apic.name PRIVMSG #esolangs :Good Night < 1765579580 331282 :pool!~nathan@user/PoolloverNathan JOIN #esolangs PoolloverNathan :nathan > 1765579649 645909 PRIVMSG #esolangs :14[[07ASTLang14]]4 10 02https://esolangs.org/w/index.php?diff=170512&oldid=169634 5* 03NTMDev 5* (+826) 10/* Sort */ > 1765579722 975271 PRIVMSG #esolangs :14[[07ASTLang14]]4 10 02https://esolangs.org/w/index.php?diff=170513&oldid=170512 5* 03NTMDev 5* (+187) 10/* Zip */ > 1765579771 951783 PRIVMSG #esolangs :14[[07Mov14]]4 M10 02https://esolangs.org/w/index.php?diff=170514&oldid=162185 5* 03Somefan 5* (+64) 10Lowercase and formatting > 1765579891 635045 PRIVMSG #esolangs :14[[07ASTLang14]]4 10 02https://esolangs.org/w/index.php?diff=170515&oldid=170513 5* 03NTMDev 5* (+178) 10/* Zip */ < 1765579910 445687 :tromp!~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2 JOIN #esolangs * :Textual User < 1765580020 848959 :pool!~nathan@user/PoolloverNathan QUIT :Quit: The Lounge - https://thelounge.chat < 1765580046 993928 :pool!~nathan@user/PoolloverNathan JOIN #esolangs PoolloverNathan :nathan > 1765580616 150049 PRIVMSG #esolangs :14[[07ASTLang14]]4 10 02https://esolangs.org/w/index.php?diff=170516&oldid=170515 5* 03NTMDev 5* (+135) 10 > 1765580736 450663 PRIVMSG #esolangs :14[[07ASTLang14]]4 10 02https://esolangs.org/w/index.php?diff=170517&oldid=170516 5* 03NTMDev 5* (+330) 10/* Shuffle */ > 1765580992 93133 PRIVMSG #esolangs :14[[07ASTLang14]]4 10 02https://esolangs.org/w/index.php?diff=170518&oldid=170517 5* 03NTMDev 5* (+550) 10/* Shuffle */ > 1765581134 857313 PRIVMSG #esolangs :14[[07ASTLang14]]4 10 02https://esolangs.org/w/index.php?diff=170519&oldid=170518 5* 03NTMDev 5* (+116) 10/* Sample */ > 1765581218 431999 PRIVMSG #esolangs :14[[07ASTLang14]]4 10 02https://esolangs.org/w/index.php?diff=170520&oldid=170519 5* 03NTMDev 5* (+124) 10/* Flatten */ < 1765581233 271624 :tromp!~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2 QUIT :Quit: My iMac has gone to sleep. ZZZzzz… < 1765581266 211355 :ais523!~ais523@user/ais523 JOIN #esolangs ais523 :(this is obviously not my real name) > 1765582044 102534 PRIVMSG #esolangs :14[[07ASTLang14]]4 10 02https://esolangs.org/w/index.php?diff=170521&oldid=170520 5* 03NTMDev 5* (+31) 10/* Flatten */ > 1765582406 974519 PRIVMSG #esolangs :14[[07ASTLang14]]4 10 02https://esolangs.org/w/index.php?diff=170522&oldid=170521 5* 03NTMDev 5* (+616) 10/* Flatten */ > 1765582467 437932 PRIVMSG #esolangs :14[[07ASTLang14]]4 10 02https://esolangs.org/w/index.php?diff=170523&oldid=170522 5* 03NTMDev 5* (+105) 10/* Flatten */ > 1765583908 16254 PRIVMSG #esolangs :14[[07Human-8114]]4 N10 02https://esolangs.org/w/index.php?oldid=170524 5* 03A() 5* (+788) 10Created page with "Human-81 is an Esolang made by [[User:A()]] for humans. It was designed to be simple to read, but also with less commands than other languages. ==Commands== {| class="wikitable" |+ Commands |- ! Cmd !! Header text |- | Start, (Name), with (inputs). || function |- | End