< 1724544021 739031 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :The other way would be to emulate the instruction set, but that will be slow. < 1724544022 881226 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :of course, the easy way for an OS to effectively force programs to be position-independent is just to load them at a random address – then if they aren't position-independent they will usually break < 1724544132 89503 :Evylah10!~Evylah@syn-096-039-227-031.res.spectrum.com JOIN #esolangs * :[https://web.libera.chat] Evylah < 1724544150 853044 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :`olist 1309 < 1724544153 2450 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :olist : shachaf oerjan Sgeo boily nortti b_jonas Noisytoot < 1724544245 133733 :mtm!~textual@c-71-228-84-213.hsd1.fl.comcast.net QUIT :Ping timeout: 248 seconds < 1724544294 615520 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :I completely forgot about olisting new comics < 1724544356 904342 :mtm!~textual@c-71-228-84-213.hsd1.fl.comcast.net JOIN #esolangs mtm :Textual User < 1724544435 412019 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I almost always get beaten to the olist < 1724544458 482751 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :this one happened at a weird time of week, though – I'm not even sure why I thought to check > 1724544537 193850 PRIVMSG #esolangs :14[[07Talk:Markov algorithm14]]4 10 02https://esolangs.org/w/index.php?diff=136649&oldid=136644 5* 03Tommyaweosme 5* (+319) 10 < 1724544544 896145 :Evylah10!~Evylah@syn-096-039-227-031.res.spectrum.com QUIT :Quit: Client closed < 1724544821 49188 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :I hooked up IFTTT to Facebook and used to have it hooked up to Twitter, so there are accounts on both that broadcast when there's a new one. So I get notifications quickly. Used to use Yahoo Pipes, RIP < 1724546205 644471 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Sgeo: the operating systems can just load the programs to varying addresses, and even though the program can use absolute addresses, it will just break if it doesn't expect to be position independent. The OS doesn't enforce that the program can't find out the address. < 1724546287 200034 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :You could make an eso-processor that's position-independent if all the addresses and pointers are relative to their location, or at least to the start of the page of their location. < 1724548010 150219 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but it's very hard to program in a language where all pointers are IP-relative < 1724548043 511790 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I guess to make it work, instructions that read memory would need to support literal offsets, so that you can offset all the pointers by a known distance based on the location in the code < 1724548067 614445 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and then just store pointers relative to some fixed location in the code < 1724548082 913672 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the memory allocation API for this would be confusing but you could make it work < 1724548423 390433 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: no, you'd just support adding two registers as indexes like x86_64, since you read a pointer from a known location you just use its address as one of the offsets. sometimes you need three offsets so it does need extra instructions, but it's not impossible. IP-relative doesn't come into it often except for global variables, and for those you already use IP-relative addresses. < 1724548447 40986 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :you'd just store pointers as relative to where they are < 1724548544 184129 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :the problem is only when you pass pointers as function arguments in registers, in which case I think you'd use addresses relative to some point on the stack specified in the function call ABI < 1724548612 608709 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :you'd have to offset pointers whenever you copy them in memory, but that's not much more of a burden than adjusting reference counts for smart pointers in a high-level reference counted language < 1724548673 544741 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :as a bonus, you can esaily use such relative pointers easily in shared memory segments or disk files that can be mapped to different addresses in different processes < 1724548695 278997 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :sure, normally you'd just use pointers relative to the start of that segment or file < 1724548976 156962 :troojg!~troojg@user/troojg JOIN #esolangs troojg :troojg < 1724549448 464706 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :ooh, self-relative pointers, I didn't think of that option < 1724549591 297450 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :it's rather silly and I wouldn't recommend them for serious purposes, if you want something like that you'd better use indexes relative to the memory pools into which you're allocating in, but on an esoteric scale it's reasonably workable < 1724549859 553546 :troojg!~troojg@user/troojg QUIT :Remote host closed the connection < 1724550178 629691 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it might actually make sense for the "just save the memory image to disk" method of saving < 1724550198 997895 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although that would be incredibly insecure and not recommendable in any non-esoteric context < 1724550204 717173 :b_jonas!~x@88.87.242.184 QUIT :Read error: Connection reset by peer < 1724550245 92983 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(I am reminded of the way that Jelly's intended way to do a string → int conversion is a string eval) < 1724550353 901626 :b_jonas!~x@88.87.242.184 JOIN #esolangs * :b_jonas < 1724550482 336129 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :ooh – Rust has huge problems with moving structures that contain self-references – what about making self-referential structures use self-relative references? < 1724550492 605647 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :this is actually less silly than many of the solutions that have been proposed < 1724550905 498446 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: it's kind of two problems that may or may not be related < 1724550966 173715 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I'm interested in hearing this > 1724551056 101586 PRIVMSG #esolangs :14[[07User:MihaiEso14]]4 10 02https://esolangs.org/w/index.php?diff=136650&oldid=136096 5* 03MihaiEso 5* (+60) 10 < 1724551065 999886 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :the structures with pointers to inside them that I've seen are C++ std::string in later C++ standard libraries, and the array structure in opencv. both cases use a pointer instead of just an index into the internal array because the pointer may be either into the small buffer inside the structure or into an externally heap-allocated array. < 1724551123 22640 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :so for just reading you don't care where the pointer points, you just follow it. but when you move or copy or destroy or modify the structure then you may have to distinguish between the two cases, to know if you have to free the external array.. > 1724551140 82308 PRIVMSG #esolangs :14[[07Special:Log/upload14]]4 upload10 02 5* 03MihaiEso 5* 10uploaded "[[02File:OCR-test.jpg10]]": Taken from this: [https://www.imgonline.com.ua/examples/text-photographed-eng-preview.jpg] > 1724551217 126847 PRIVMSG #esolangs :14[[07Special:Log/upload14]]4 upload10 02 5* 03MihaiEso 5* 10uploaded "[[02File:Text-photographed-eng-preview.gif10]]": Taken from this: [https://www.imgonline.com.ua/examples/text-photographed-eng-preview.jpg], then saved as GIF. Notice the diffusion noise that tricks some OCR software? > 1724551228 828251 PRIVMSG #esolangs :14[[07Special:Log/delete14]]4 delete10 02 5* 03Ais523 5* 10deleted "[[02File:OCR-test.jpg10]]": Copyright violation: copyrighted image; content was: "== Summary == Taken from this: [https://www.imgonline.com.ua/examples/text-photographed-eng-preview.jpg]", and the only contributor was "[[Special:Contributions/MihaiEso|MihaiEso]]" ([[User talk:MihaiEso|talk]]) > 1724551242 42034 PRIVMSG #esolangs :14[[07Special:Log/move14]]4 move10 02 5* 03MihaiEso 5* 10moved [[02File:Text-photographed-eng-preview.gif10]] to [[File:OCR-test.gif]] > 1724551285 891621 PRIVMSG #esolangs :14[[07User talk:MihaiEso14]]4 10 02https://esolangs.org/w/index.php?diff=136655&oldid=134847 5* 03Ais523 5* (+287) 10/* Copyright violations */ new section > 1724551332 719790 PRIVMSG #esolangs :14[[07User talk:MihaiEso14]]4 10 02https://esolangs.org/w/index.php?diff=136656&oldid=136655 5* 03MihaiEso 5* (+136) 10/* Copyright violations */ > 1724551335 894901 PRIVMSG #esolangs :14[[07Special:Log/delete14]]4 delete10 02 5* 03Ais523 5* 10deleted "[[02File:OCR-test.gif10]]": Copyright violation: copyrighted image; content was: "== Summary == Taken from this: [https://www.imgonline.com.ua/examples/text-photographed-eng-preview.jpg], then saved as GIF. Notice the diffusion noise that tricks some OCR software?", and the only contributor was "[[Special:Contribu < 1724551336 152384 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: anyway, as for rust, rust normally really wants objects to be trivially movable in the C++ sense. this isn't absolute, you can still handle objects that aren't movable by reference, but you can't pass such structures by value or return them by value or have them by value in a local variable. the samea applies to a variable length array or to an array of unknown type satisfying a trait (in the < 1724551342 159110 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Haskell sense), you can only access them through reference because they can't be trivially movable. > 1724551349 413265 PRIVMSG #esolangs :14[[07Special:Log/delete14]]4 delete10 02 5* 03Ais523 5* 10deleted "[[02File:Text-photographed-eng-preview.gif10]]": Broken redirect: redirect to deleted file < 1724551417 798046 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :a VLA can be trivially moveable if you know what size it is < 1724551451 306804 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :the other problem is how you create such a structure, for which there isn't really an easy way because of the borrow checker rules. at least it's not easy if you want that inner pointer to be a proper rust reference. it's still possible, but not easy. > 1724551483 276483 PRIVMSG #esolangs :14[[07Special:Log/upload14]]4 upload10 02 5* 03MihaiEso 5* 10uploaded "[[02File:Untitled2342.png10]]": Taken from this: [https://www.nintendo.com] < 1724551502 924373 :op_4!~tslil@user/op-4/x-9116473 QUIT :Remote host closed the connection < 1724551532 880727 :op_4!~tslil@user/op-4/x-9116473 JOIN #esolangs op_4 :op_4 > 1724551544 323384 PRIVMSG #esolangs :14[[07Special:Log/upload14]]4 overwrite10 02 5* 03MihaiEso 5* 10uploaded a new version of "[[02File:Untitled2342.png10]]": Taken from this: [https://www.imgonline.com.ua/examples/text-photographed-eng-preview.jpg] > 1724551572 638362 PRIVMSG #esolangs :14[[07User talk:MihaiEso14]]4 10 02https://esolangs.org/w/index.php?diff=136659&oldid=136656 5* 03Ais523 5* (+293) 10/* Copyright violations */ reply < 1724551599 176037 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: yes, but you can't just have a VLA variable on your stack (local variable or function parameter or return value) and move another VLA into it (regardless if the one on the stack is empty or initialized). you'd need alloca magic, ABI rules for how to pass and return such values, and it's not clear how much of those we want in the language and compiler. > 1724551633 33639 PRIVMSG #esolangs :14[[07User talk:MihaiEso14]]4 10 02https://esolangs.org/w/index.php?diff=136660&oldid=136659 5* 03MihaiEso 5* (+111) 10/* Copyright violations */ > 1724551651 565913 PRIVMSG #esolangs :14[[07Special:Log/block14]]4 block10 02 5* 03Ais523 5* 10blocked [[02User:MihaiEso10]] with an expiration time of 1 day and 7 hours (account creation disabled): copyright violations < 1724551668 134651 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :nor can you just have a VLA as a member of a structure without problems. rust has the beginnings of some support for this, as in it technically allows structures whose last member is a VLA, but there's no sane way to actually create such a structure. > 1724551679 201288 PRIVMSG #esolangs :14[[07Special:Log/delete14]]4 delete10 02 5* 03Ais523 5* 10deleted "[[02File:Untitled2342.png10]]": reupload of image that was deleted due to copyright violations, possibly with an attempt to disguise what was happening > 1724551858 93233 PRIVMSG #esolangs :14[[07User talk:MihaiEso14]]4 10 02https://esolangs.org/w/index.php?diff=136661&oldid=136660 5* 03Ais523 5* (+466) 10/* Copyright violations */ blocked < 1724551956 770605 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :that part with structures ending in a VLA is mostly the same as in C++: the standard library has a way to allote a VLA on the heap (in std::unique_pointer), or a growable VLA on the heap (in std::vector), but no nice way to create a generic user-defined structure with a VLA on the end. you have to fill a memory area with what should become that structure, then do a type conversion of pointer in a way > 1724551962 322411 PRIVMSG #esolangs :14[[07User talk:MihaiEso14]]4 10 02https://esolangs.org/w/index.php?diff=136662&oldid=136661 5* 03MihaiEso 5* (+232) 10/* Copyright violations */ < 1724551963 44906 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :that the compiler doesn't know is typesafe to instantiate such a structre (at least if the VLA at the end isn't empty). > 1724552063 407104 PRIVMSG #esolangs :14[[07User talk:MihaiEso14]]4 10 02https://esolangs.org/w/index.php?diff=136663&oldid=136662 5* 03MihaiEso 5* (+24) 10/* Copyright violations */ < 1724552127 706428 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :so in both rust and C++, a combination of the core language and standard library support either a lone variable length array on the heap, or a growable variable length array on the stack; or an unknown type satisfying a trait in rust (with some restrictions on the trait) or an unknown subclass of a class in C++; but for most other cases with variable layout you have to do your own thing and assert to < 1724552133 695844 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :the compiler that it's correct, hopefully with a small safe wrapper > 1724552215 549537 PRIVMSG #esolangs :14[[07User talk:MihaiEso14]]4 10 02https://esolangs.org/w/index.php?diff=136664&oldid=136663 5* 03Ais523 5* (+515) 10/* Copyright violations */ it's a temporary block < 1724552256 41796 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the wiki never used to need this much moderation of humans, it used to just be fighting spambots < 1724552280 478230 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :but you can write such wrappers if the actual objects that your users handle aren't variable layout, but just some kind of smart pointers pointing to those variable layout, and you pass those smart pointers to library functions < 1724552304 133676 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: hmm, can dyn Trait be stored directly on the stack? I thought it could only be stored by reference > 1724552340 209332 PRIVMSG #esolangs :14[[07User talk:MihaiEso14]]4 10 02https://esolangs.org/w/index.php?diff=136665&oldid=136664 5* 03MihaiEso 5* (+166) 10/* Copyright violations */ > 1724552351 188684 PRIVMSG #esolangs :14[[07User talk:MihaiEso14]]4 10 02https://esolangs.org/w/index.php?diff=136666&oldid=136665 5* 03MihaiEso 5* (+85) 10/* Copyright violations */ < 1724552352 402108 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: it can only be stored by reference < 1724552386 776339 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :the reference could point to the stack I guess if it's on the stack frame of a function that has a concrete type as a local variable < 1724552411 130353 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :oh yes < 1724552452 700849 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :so continuation-passing-style would work – you have a dyn Fn that takes a callback and passes an &dyn Trait to it, the dyn Fn is not on the stack but the dyn Trait is < 1724552505 3057 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :so C++'s std::string and OpenCV's cv::Mat are concrete fixed layout type, they just might point to variable-length arrays on the stack or to inside themselves and the functions implementing them handle that in a mostly transparent way (in the case of cv::Mat enough of the internals is public API that user code can handle part of it too) < 1724552594 504809 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I was actually just reading about that today: apparently some std::string implementations store the string in their own length field and point to that < 1724552603 909726 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(presumably NUL-terminated?) < 1724552609 64522 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :if it's short enough to fit < 1724552632 419231 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: no, I think it's four pointers wide, the pointer to start and length is always present, and then it's a union of a two pointer wide buffer or the capacity < 1724552650 448802 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I don't know if it's nul-terminated, but the size is always there < 1724552660 6167 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :at least in the libstdc++ implementation < 1724552661 137603 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :wait, why would buffer need two pointers < 1724552680 117715 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :one of them would normally always be the string start, wouldn't it? < 1724552701 965126 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :also, one of my pet hates is capacity fields in C/C++/Rust-like languages < 1724552710 504334 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it is such a waste of memory, just ask the allocator, it should know < 1724552725 825450 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it has to, in order to be able to deallocate the memory again < 1724552737 777742 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :the buffer doesn't need to be exactly two pointers size, that's just how much the library uses. it's a tradeoff between making the structure large vs having to allocate often. < 1724552759 884871 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(a note to other wiki admins: you are allowed to shorten the MihaiEso block without my permission if you wish, although I suspect from their userpage comments it'd be a bad idea) < 1724552774 24700 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: no, because those arrays are very often small, and this way you can use a sized allocator that does NOT store the capacities next to the arrays for small arrays < 1724552793 818552 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :in that case you know the size based on which allocator was used < 1724552814 224854 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :like, the allocator always has to know how to deallocate, therefore it always has to know the size < 1724552823 778060 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it doesn't necessarily have to *store* the size, but it has to *know* it < 1724552829 607120 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :it can just allocate lots of small arrays in an array of 16-bit buffers on the heap and an array of 32-byte buffers on the heap, and know which one you use because the string or vector tells the deallocator what capacity is expected > 1724552831 897106 PRIVMSG #esolangs :14[[07User talk:MihaiEso14]]4 10 02https://esolangs.org/w/index.php?diff=136667&oldid=136666 5* 03MihaiEso 5* (+9) 10/* Copyright violations */ < 1724552861 491469 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :no, you can have an allocator api that requires you to tell the allocated size whenever you free or realloc a chunk, a lot of libraries use such allocators < 1724552887 443350 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :that doesn't work for malloc because its API doesn't allow that, but C++ new is explicitly designed to allow that < 1724552901 749573 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: I guess doing that plus a capacity field is equivalent to getting the allocator to store the size next to the allocation < 1724552910 472397 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :and you often know the size if you store a known type, like a subclass of a class with a vtable < 1724552928 338078 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: no, because you often store non-vlas, in which case you store a vtable pointer instead of a size < 1724552950 766168 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :or you just store an explicitly known type, like a node in a btree < 1724552966 473869 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :fwiw, with plentiful virtual memory, I think it probably makes sense to store allocations of different sizes in different virtual addresses, so that the size is encoded in the pointer < 1724553003 633661 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I can see the point of "having the capacity in the structure when necessary to tell the allocator the size makes more sense then having the allocator track it always", although it rather depends on how the allocator works < 1724553202 769866 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :virtual memory is not plentyful. you remember when intel had to add an extra level of paging tables to extend the available pointer bits with 9 bits because people had close to enough physical memory to exceed the previous limit. that means there were too few spare bits in a pointer you could rely on in a future-proof way back when that happened, unless you want to mask out the extra bits every time you < 1724553208 770828 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :want to dereference the pointer. < 1724553239 317115 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :now if you do want to mask out extra bits every time then you can probably get away with a few tag bits, but only with 64-bit pointers of course < 1724553281 642139 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I remember when Sicstus prolog got bitten by growing memory sizes in 32-bit land because it stored tag bits in the top rather than bottom of its 32-bit pointers < 1724553288 551775 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I do remember that Intel added the extra 9 bits (although not the exact timing), but remember being confused by it < 1724553321 895144 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :fwiw, I think the safe tag bits are a) anything implied by pointer alignment and b) the very top bit, as that's reserved for kernel-mode pointers < 1724553338 622829 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I would not rely on the others to be stable into the future < 1724553364 995016 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :also, the meaningful bits of the pointer can be used as unmasked tag bits if you're careful to allocate at the right addresses < 1724553398 192787 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(there is little reason why programs shouldn't have full control over their own memory maps nowadays other than ASLR) < 1724553550 761914 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :oh, you can also refuse to allocate low, and then use the bottom few pointers as special invalid values < 1724553580 542395 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :$ cat /proc/sys/vm/mmap_min_addr < 1724553581 982054 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :65536 < 1724553609 77165 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :even if someone changes mmap_min_addr for some reason, there is very little reason to allocate below there anyway < 1724553625 366103 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: specifically the most recent x86_64 pointers have a sign bit plus 56 magnitude bits, which gives 67 bits which is looked up in 5 levels of page table each 9 bits wide (4096 bytes long for 512 entries of 8 byte each), then the last 12 bits are direct address within a 4096 byte long page (can be 4 levels plus 21 direct bits for 2K large pages, or 3 levels plus 30 direct bits for 1G sized huge < 1724553631 375525 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :pages) < 1724553673 495213 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I was actually using the 1G huge pages recently, or trying to < 1724553696 229572 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I didn't actually manage to optimise the rest of the program to the point where minimizing TLB misses became relevant < 1724553711 120613 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :so the user half of virtual address space is 56 bits wide, and tom7 used at least 37 of those bits for actual physical memory in BoVeX < 1724553746 878189 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :that gives at *most* 19 extra bits on top for currenly available hardware, and that will shrink quickly < 1724553763 894841 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I think at some point, it makes sense to start using indexes instead, then you can have as many tag bits as you want < 1724553763 921468 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I admit you do have some wiggle room, but I'd prefer to use tag bits on the bottom in most cases < 1724553793 265918 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :the advantage of tag bits at the bottom is that if you know the tag bits then you don't need to mask them out, you can just subtract them in an offset operand < 1724553798 751367 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :fwiw I'm pretty sure I've never tagged a pointer high, and can't remember whether or not I've ever tagged a pointer low (but I have tagged the middle bits using the "choose where you allocate" strategy) < 1724553827 128390 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :if you ever used ruby 1.8 then you have tagged a pointer low < 1724553845 971441 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I have been wondering whether, if using low tag bits for an integer/pointer union, it makes more sense to tag the pointer as odd or even < 1724553866 102942 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the offset argument makes me think that maybe the pointer should be tagged by subtracting 1… < 1724553888 794774 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and by "I've tagged a pointer" I meant in my own code, with my own pointer arithmetic < 1724553898 774016 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :although IIRC that tag is almost always zero, it's nonzero only for non-large integers, symbols, and a few special values like true, false, and two or three null values whatever they call them < 1724553903 541691 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I've used OCaml at work, that tags pointer/integer unions, although I forget how < 1724553977 285033 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but the 31-bit integers are a bit of a giveaway (I wonder whether those are 63-bit integers on 64-bit systems?) < 1724553996 759546 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I wanted to ask about some memory allocation strategies here that might involve tagging indexes, but I don't think that will be today < 1724554023 581745 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :doesn't luajit store most things as double-precision floats, including pointers which are NaN payloads? < 1724554043 60186 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: I think r5rs requires that you support integers at least 28 bits wide exactly because they expect you to tag at most four bits in a pointer that may be 32-bit wide < 1724554059 131793 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :but for tagged integers you can just transparently heap-allocate anything that doesn't fit and still have most of the gains < 1724554080 214580 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it's just so rare that I need to tag pointers < 1724554097 168771 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :"need to" heheh < 1724554199 676132 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :technically rust and C++ both have some built-in language support for treating null pointers specially, but I don't think that counts as tagging < 1724554290 773754 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :rust has dangling, which is a special pointer value in a way < 1724554299 571338 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although I'm not sure it would ever make much sense to compare against it < 1724554322 660465 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :no, that's explicitly not a special pointer value, as in you can't compare against it < 1724554323 2764 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and I think it's theoretically possible for it to be the same address as a legitimate allocation and thus compare equal to it < 1724554344 402975 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :it's an arbitrary non-null value that you can compare against null but not against other valid pointers, it may be equal to a valid pointer < 1724554353 834563 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :well, I don't think the language can stop you comparing against it, it just doesn't guarantee that it doesn't equal a valid pointer < 1724554379 824441 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :if you want a special value that you can compare to then you just allocate a structure with the same alignment and get a pointer to it < 1724554453 286613 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I guess not wasting values by refusing to allocate there might be important in some very memory-constrained systems < 1724554469 765809 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :you can basically always reuse some other allocation < 1724554494 724096 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I've used processors with less than a kilobyte of memory – tagging pointers *there* would have been really obnoxious because they were 8 bits wide and used bank switching < 1724554549 749115 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I don't want to work with such systems. Though I'm fine with narrow indexes into small arrays on a big processor with more memory in general. < 1724554555 201696 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :there were a couple of values that were necessarily invalid because they were memory-mapped and used for pointer dereferencing (it was something like "if you write x to address 8 you can read/write *x from address 0" < 1724554575 955196 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but in general making special sorts of pointer would be really hard < 1724554624 231041 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :Presumably you could jump to a absolute address by writing the address into the return address register, so can you then enforce position-independent code? Probably the best way would be instead you can use virtual addressing or bank switching or use tagged pointers like Flex uses that I think is unable to determine the address of a block (it is an opaque value that arithmetic cannot be made). < 1724554626 942298 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :also about half of RAM was memory-mapped to something or other, often in ways that meant you could use it as general purpose registers if you switched off the specific feature it controlled < 1724554660 162447 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :zzo38: it'd technically be possible for the return address register to be relative to the stack pointer < 1724554697 481169 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :because, on function entry, the position of the stack pointer on function exit is known (at least if the stack usage is balanced, and it generally is) < 1724554727 165546 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although that just raises the question of what the stack pointer is relative to < 1724554752 628178 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :https://esolangs.org/wiki/Apollo_Guidance_Computer is funny because they had a bank-switching system and then they found out that the bank-switching system has too few bits so they extended it in a weird way to remain compatible with existing code that assumes there's only so many bits in the bank numbers, so it's really weird < 1724554781 665470 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I kind-of miss bank switching < 1724554787 185069 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I can see why people wanted to get rid of it < 1724554813 341779 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but smaller pointers have their own benefits < 1724554893 281734 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I haven't written an article on https://www.bigmessowires.com/cpu-in-a-cpld/ yet, but that one has relatively sane bank switching in a separate chip from the main CPU, the main CPU doesn't know about banks, but that's kind of normal for a chip inspired by 90s era microcomputer systems, this just has a much smaller address space < 1724554973 411049 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :Sometimes you could require the data to be in a specific array or other memory area that is small enough to use smaller pointers, and then add it to the base address, so sometimes the benefits of small pointers can still be possible. < 1724555073 718702 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :specifically 2**10 bytes of virtual memory, of which the bottom 2**9 bytes is one bank-switchable block among 2**7 pages of 2**9 bytes each of physical memory, half of which is RAM and half is ROM, and the other half is fixed memory plus a few IO registers including the one that tells which bank to use < 1724555074 912145 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :With the ideas I had about the operating system design, it is intended to be a security feature that programs cannot know how they are loaded, so probably would not work with physical addressing unless bank switching is used and other security features to prevent programs from accessing another program's memory. < 1724555132 56422 :ais523!~ais523@user/ais523 PRIVMSG #esolangs : There is a special indexing instruction that loads an operand from memory and adds its value to the next instruction as that instruction is executed. ← this is an incredibly clever way to do indirect memory access < 1724555156 32399 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although it only really works if you trust the pointer value < 1724555158 199682 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :you can do bank switching today with mmap/mremap if you want < 1724555175 874012 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :you can but it's very slow compared to hardware bank switching < 1724555182 537196 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :you can verify a pointer value. < 1724555192 623150 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :like an array index < 1724555199 783327 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :fs and gs are probably a more sensible way to bank-switch < 1724555220 677350 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I don't think you can use those on x86_64 < 1724555231 540689 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :you can! even from user mode < 1724555254 483282 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :you can't make them point to whereever you want, can you? < 1724555263 810613 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :yes, on modern processors < 1724555284 42535 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :you can use them as in you can access memory through them, but one I'm not sure what it does and one is claimed for the thread-specific structure < 1724555285 611256 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :if you try to mov into FS or GS you get all the nonsense of segment selectors and the like < 1724555296 909147 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but, there are separate instructions that just outright set them to anything < 1724555306 113 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :really? < 1724555315 552261 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I thought that needs operating system support which we don't have\ < 1724555339 378398 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :WRFSBASE, WRGSBASE < 1724555339 725914 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :like how we don't have support for 16-bit protected mode programs even though in theory the CPU supports them < 1724555347 198142 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :So with this security feature, it is not quite the same as enforcing position independent code although there is a similarity. < 1724555361 536126 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the OS can disable the instructions if it wants to < 1724555379 332887 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but I think it usually doesn't < 1724555451 598851 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :incidentally, FS and GS have somewhat different performance characteristics because GS is heavily involved in the system call fastpath < 1724555493 980092 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :If the OS does disable the instructions, can it receive an interrupt to emulate them? (In this case you probably do not need to, although it can be relevant for some other instructions that you might want to disable, e.g. CPUID (I don't know if you can disable that one), and measuring timing) < 1724555497 458554 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I think that's the reason why the main Linux implementation of pthreads changed from using GS for thread-local storage on x86 to FS on x86-64 < 1724555499 820392 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: huh, you're right, I hadn't known of this fsgsbase instruction set extension to x86_64. indeed we have that. you can probably only use one of them unless you really make sure that nothing is trying to use threads because any library function can assume one of them is the thread-specific area, but in theory you can use one to some extent. < 1724555519 867760 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although, I'm not sure if they actually had to in order to make things work < 1724555542 154030 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I'm not sure if it's worth over just using other ordinary indexing methods, but they seem to be available < 1724555592 729188 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the other main instruction is SWAPGS which swaps GS with a kernel-only register that's only used by SWAPGS (although you can read/write it directly with the MSR instructions) < 1724555607 13411 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :zzo38: I think the problem is that if nobody uses these features then the OS might not want to save FS and GS with switching between tasks, at least might not want to save the one that's not used as the thread-specific area < 1724555609 996847 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :that gives the kernel a way to get pointers to its own structures when all the registers have user-mode values < 1724555657 78182 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :b_jonas: OK, that is legitimate. But, maybe the operating system wants to use only one of them, so that the other one can be used by user programs. < 1724555662 569080 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :ah right, and I think the reason GS is slow is not that it's slow on the kernelmode/usermode transition, but that the kernel has to swap out the value of GS when switching from one usermode thread to another but it's in a weird register that's a bit hard to access < 1724555686 348640 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :so GS is primarily used by the kernel and FS is primarily used by the threading library, in practice on x86-64 systems < 1724555762 979013 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :incidentally, I have been wondering whether it would make sense to do thread-local storage by starting thread stacks at a known large alignment, then storing the thread-local storage below the thread stack and using SP to determine where it is < 1724555768 477772 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I thought the reason why you don't want to use these is that they could disrupt modern CPU optimizations that try to guess what address you're accessing when you access memory outside of the L1 cache and load it in time before you need it < 1724555768 641788 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but, using FS is probably faster < 1724555817 28907 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(by "below" I mean at the end which doesn't do the calls and returns, which is actually above in terms of address because x86 stacks are upside-down) < 1724555817 704695 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: no, the linux kernel started that for task structures, storing them under small kernel stacks, but then they gave that up because it caused more problems than it solved < 1724555832 916874 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I am not totally surprised < 1724555837 839474 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(at either half of that) < 1724555946 490506 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :we have stuff stored under the *user-mode* stack, but only for a tiny moment when the kernel execs a process or spawns a thread and calls the start function in libc which I assume immediately store a pointer to that somewhere. argc, argc, and I think getauxval or some such nonsense lives there. < 1724555971 551457 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :that doesn't rely on alignment, the values are simply above the frame of the user-mode starting function < 1724556014 724973 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :perhaps only on exec, I don't know how thread start works < 1724556028 469110 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it's auxv, getauxval is the function that accesses it < 1724556052 449139 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Ping timeout: 252 seconds < 1724556067 841553 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :so basically only libc or a replacement to libc has to know about that, and then you access the values through libc apis < 1724556111 918811 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :this is a generalised "you", right? I feel like most programmers are more inclined to use libc than I am < 1724556135 771354 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I have been known to just write the raw syscalls to avoid bringing in libc as a dependency < 1724556144 421788 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :a generalized you, yes, not you ais523 < 1724556160 835568 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :if you do that then your code is a libc replacement < 1724556169 883337 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord < 1724556177 985631 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :in general I dislike dependencies unless I get a lot of benefit from them, and if I'm only making a few syscalls, libc seems so heavyweight a dependency to bring in < 1724556220 989562 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but the code isn't really a libc replacement because it only implements a small subset of the functionality – just enough to make it work < 1724556258 767956 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :well sure, basically nothing implements all of libc, even the actual useful replacements < 1724556276 237335 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :but yes, if it's just a few syscalls then that makes sense < 1724556300 13583 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I think there are a few useful replacements that implement all of POSIX libc < 1724556313 168469 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I would be surprised if any of the replacements did the entirety of glibc, though < 1724556330 120052 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :Which instructions can be disabled by the operating system? Can the CPUID instruction be disabled? What on other kind of instruction sets? < 1724556384 828830 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :zzo38: there are quite a few, but I think the disabling methods are case-by-case/ad-hoc rather than there being any consistent rules < 1724556439 171214 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :RDTSC can be disabled, that's one of the main ones I know off the top of my head < 1724556458 762373 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :Yes, and I also saw RDTSC disabled mentioned on Wikipedia. < 1724556465 218581 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although the bit that disables it is, oddly, in CR4 for some reason < 1724556470 849200 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :zzo38: I think those disable things are concerned with two things: (1) CPU features that require operating system support such as saving registers between processes, and (2) virtualization with hot-migration between CPUs that implement different instructions, so the CPU lets you disable extensions that might not be present on other modern x86 cpus < 1724556471 39037 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :which seems like an overly important place to put it? < 1724556509 645585 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :well, also (3) instructions that would be unsecure because they let you access memory that you aren't supposed to or execute code in kernel mode or similar < 1724556537 596505 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :For the security model of my operating system design will require that several instructions to be disabled (and for implementations using other instruction sets, they also might or might not need some instructions to be disabled). Virtualization with hot-migration is one of the reasons for this, actually, but there are other reasons too. < 1724556556 154182 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: I think that's because RDTSC is a very old instruction, goes all the way to the original pentium < 1724556616 691765 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :but I think there are uglier methods that the OS can use, like there was one workaround to disable an instruction that had a CPU bug back long ago < 1724556623 289265 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :also disabling RDTSC gives you a #GP fault (SIGSEGV) rather than a #UD fault (SIGILL) like you'd expect from a disabled instruction < 1724556625 222154 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :However, some instructions might not need to be disabled and maybe they could be emulated instead, such as some of the bitwise manipulation extensions. < 1724556641 193162 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :using what's supposed to be debugging stuff or microcode update or something crazy like that < 1724556663 673835 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :microcode update is the intended way to disable a buggy instruction, isn't it? < 1724556683 901402 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :probably, I don't know the details < 1724556709 811814 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I figure these are operating system details that I'm not concerned about, plus that one is very old < 1724556710 338634 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I know that with the F00F bug, the best discovered fix involved doing something weird with the paging for the interrupt table < 1724556831 399161 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :ah – it seems that the "official" fix was to page out the undefined opcode interrupt handler, while ensuring that the page fault interrupt handler was on a separate page that was paged in (because you can't page that one out for obvious reasons) < 1724556849 898691 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but just marking the undefined opcode interrupt handler as noncacheable turned out to be enough < 1724556916 768893 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :heh > 1724557019 880882 PRIVMSG #esolangs :14[[07Larry14]]4 10 02https://esolangs.org/w/index.php?diff=136668&oldid=136289 5* 03ArsenicCatnip 5* (+1391) 10Added a section on how the Copy command works. This will also be a template for the Paste section. < 1724557160 153469 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :zzo38: have you looked at https://esolangs.org/wiki/BMOW_1 ? I think you might find that CPU interesting. < 1724557183 691434 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :I have looked briefly, but I can look more now < 1724557488 346293 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :it's somewhat similar to a 6502-based CPU, but it has a few instructions that directly use full three-byte addresses stored contiguously as three bytes in RAM. I wonder if the WDC 65C816 has any of that < 1724557545 858426 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :hmm, apparently it does have such instructions < 1724557621 44499 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :but it looks like they handle zero page addresses differently < 1724557701 95918 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :also as far as I understand the subtract with borrow uses the carry flag differently, and the flags differ in other ways from 6502-derivatives < 1724557729 421131 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :so BMOW 1 is inspired by the 6502 but doesn't really try to be compatible with it in any sense, you're not expected to port 6502 code onto it < 1724557820 791891 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :but it still has lots of ways in which it imitates 6502, like how all its add and subtract instructions use the carry as implicit input < 1724557832 272092 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :and in its addressing modes < 1724557913 51565 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :the other difference is taht WDC 65C816 just straight up has 16-bit wide A,X,Y registers with 16-bit arithmetic and load/store operations on them, while BMOW 1 is pure 8-bit like the 8-bit 6502s < 1724557964 967811 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :but I think the BMOW 1 has a bit more instructions than the 6502 that use 16-bit address stored in memory < 1724558119 607805 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :also BMOW 1 has slow shift right instructions that are implemented by shifting right seven times in microcode < 1724558177 2752 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :i find that funny, but that's what you get if you build your CPU from 20th century discrete chips one of which is a large ROM chip used for microcode < 1724558209 41454 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :extra microcode are cheap so it's worth to implement such a feature in microcode < 1724558271 262655 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :the cheap microcode is also why the instruction table is so irregular: they could place any instruction to any opcode without penalty < 1724558303 449558 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I am reminded of how complicated the VERW instruction is getting < 1724558335 375226 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(and it still finishes off by working out the correct return value for the original definition of the instruction, even though doing so is pretty much entirely useless nowadays) < 1724558343 888001 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: ? < 1724558359 378693 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it's one of the few microcoded instructions that can be run from userspace < 1724558361 752290 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :how is it getting complicated? < 1724558371 752351 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it's full of mitigations for spectre, meltdown and friends < 1724558392 137598 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :more full than other memory accesses? < 1724558406 610136 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :like, it clears pretty much all the relevant microarchitectural state that they might try to read < 1724558444 424469 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it's not even a memory access, it's basically just a "this is a security boundary" assertion and the processor tries to make sure that data doesn't leak across the boundary through sidechannels < 1724558484 781228 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :or, well, it might involve a memory access, I can't remember all the details of its intended functionality, except that it's related to old-fashioned real-mode segmentation < 1724558522 351482 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :but why does it have to involve more of that than other normal memory access? < 1724558543 791538 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :because if you wiped all the microarchitectural state on every memory access the processor would run incredibly slowly < 1724558562 254117 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I think it does things like empty the branch predictors < 1724558590 122341 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :to ensure that one program can't train the branch predictors to mispredict the branches made by another < 1724558591 242953 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :oh! VERW has to ignore paging, it only checks if the address is valid in the segment level, not whether it's pageed in < 1724558606 648129 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :that's why it's complicated, it can't use the normal memory access logic < 1724558615 481181 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :oh, I see, you're asking why it's microcoded < 1724558629 7064 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :more why it's complicated microcode < 1724558637 406438 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :but yes < 1724558650 261408 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :also I think VERW takes a segment selector as argument rather than a memory address < 1724558673 877517 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I thought for some reason that it used the normal memory access logic and so if the page was paged out by the operating system then it told the user process that the address is not writable. nope. it only does the segment level checks, ignoring paging. < 1724558697 59343 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :yeah, apparently it takes a segment selector < 1724558700 469481 :ais523!~ais523@user/ais523 PRIVMSG #esolangs : "The source operand is a 16-bit register or a memory location that contains the segment selector for the segment to be verified." < 1724558720 146487 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :yeah, that's probably microcoded because it's such an obscure and rarely used instruction that it isn't worth an optimized implementation < 1724558747 443602 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :right, not to mention useless on modern systems because they don't use segment selectors for anything < 1724558753 688978 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :but it's probably mostly the same as loading a segment register < 1724558785 575517 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :that might well be microcoded too? even 16-bit code doesn't do it very often < 1724558795 429420 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :segment override prefixes are common, but actually changing the segment registers isn't < 1724558821 899178 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :probably, because modern CPUs aren't optimized to run 16-bit protected mode code efficiently < 1724558866 69489 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :hmm, what's written in 16-bit protected? early boot is 16-bit real, and I think DPMI is 32-bit protected? < 1724558869 607704 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :they don't need to be because operating systems don't support it anymore < 1724558892 904168 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: 16-bit windows code mostly < 1724558908 63130 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :oh right, "386 enhanced mode" < 1724558976 305610 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I doubt Intel cares much if their modern processors are slower at running Windows 3.1 < 1724558986 826086 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :no, even windows in traditional 286 mode is running on 16-bit protected mode, that just means it can't access more than a megabyte of physical memory, so nobody used that even back when I was young, we had a full megabyte of RAM in the oldest laptop that I've seen < 1724559018 72056 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :in 386 mode the operating system is 32-bit but the user code is still 16-bit, which 386 is made to support: < 1724559024 432477 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although, they strike me as the sort of company who might try to optimise for that for unknown reasons < 1724559039 702009 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :the segment selector of the code simply tells whether code in it is 16-bit protected code or 32-bit protected code < 1724559053 41568 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :they keep adding new instructions to the 32-bit and 16-bit instruction sets < 1724559064 143422 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :which means that the instructions have to have an encoding that doesn't calsh < 1724559066 352116 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :* clash < 1724559118 258078 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :and windows 95 to XP supports mixing win16 and win32 code, with I think an entirely separate operating system interface for the two, then later two and a half separate interfaces (with old win32 versus winNT) < 1724559166 185950 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it's not quite entirely separate, they have a lot in common < 1724559166 846648 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :and XP even lets you run 16-bit processes either in their own 16-bit namespace or a shared namespace where multiple win16 processes can directly address each other's memory < 1724559184 855174 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I did a lot of 16-bit programming back on Windows 95 < 1724559196 465163 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I am not sure why I didn't switch to 32-bit; I think I might have been scared of change < 1724559210 739688 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :but then eventually in later windowses they dropped the built-in support for win16, so you have to run emulator software, either OS-level or full machine level emulators < 1724559232 459513 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: perhaps the compilers or libraries accessible to you were mostly 16-bit < 1724559260 191655 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I do remember being very annoyed when they removed the API for beeping with a specific pitch using the internal speaker < 1724559275 692012 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :hah! I think linux still has that < 1724559286 435059 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :they had multimedia APIs instead for playing WAV files, but it wasn't the same (and also was extremely buggy) < 1724559299 685077 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I'm not convinced this computer even has an internal speaker < 1724559315 606539 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :that's irrelevant, I'm talking about the API, not what hardware implements it < 1724559320 754396 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :of course < 1724559330 511189 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but it'd be nostalgic to be able to test it out < 1724559351 981983 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it would probably be possible to put Linux on an old computer to find out… < 1724559366 213751 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :maybe just via liveCD < 1724559461 173263 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :https://man7.org/linux/man-pages/man2/ioctl_kd.2.html search for KDMKTONE < 1724559488 483524 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I don't think it has to be an old computer, I think that works on modern, though I haven't tested < 1724559507 143492 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :(unless you mean the windows API natively) < 1724559559 225056 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :huh, my computer doesn't have that manpage < 1724559604 304602 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :your link says "broken in Linux 2.1.49-50" – I wonder if that includes all future versions too < 1724559628 562333 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but it doesn't say the same about KIOCSOUND which is the next entry, and also controls the speaker < 1724559663 184749 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :2.1.49 is very old so I don't think it includes all future version < 1724559670 211099 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :some of the programs at the time could play chords using the internal speaker; I assume that was done using some sort of audio equivalent of racing the beam, but never did figure it out < 1724559843 455289 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: try man 4 console_ioctl, I think that just got recently separated or moved to a different manpage < 1724559851 869829 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :at least if this is linux < 1724559876 181862 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :ah yes, it's on that page < 1724559917 145183 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and it still says "broken in Linux 2.1.49-50" with no further updates on if or when it was fixed < 1724559945 816114 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I expect that it just works on modern linux computers if you run it on a virtual console that isn't running X11 < 1724559952 903909 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :but I haven't tested < 1724559982 988965 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I don't remember if I used this on old computers or not; I used the ioctl calls that changes the font and the like < 1724560080 930142 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ok, now I'm curious, I'll test it < 1724560415 35934 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :it doesn't seem to work < 1724560465 120668 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :in an X terminal it returns an error errno=ENOTTY as expected, but on virtual console it returns success and makes no sound < 1724560467 828533 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :did you check KIOCSOUND too? < 1724560488 383218 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :maybe it does want to use only the built-in speaker and doesn't emulate on virtual consoles? < 1724560506 270354 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I have not checked KIOCSOUND < 1724560534 403337 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I woudln't expect it to emulate, I'd expect built-in speaker only < 1724560547 572355 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although, maybe it has to emulate for beeps to work < 1724560601 630900 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :virtual console emulates what was originally supposed to be a VGA text mode console in graphics mode these days, which is why I expect to emulate the speaker too < 1724560714 244360 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :either it does not emulate, or something on X11 is using the sound system exclusively which is why it doesn't make a sound < 1724560857 741653 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :or I guess there could be some per-console or global setting in the kernel that disables the beeps and that's the default in this distro because beeps are annoying < 1724560899 975010 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I don't feel like searching docs and/or kernel code for this now > 1724561610 9912 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136669&oldid=136626 5* 03Yayimhere 5* (-3512) 10/* with some complexity */ remaking it < 1724561698 217848 :craigo!~craigo@user/craigo QUIT :Quit: Leaving > 1724562156 994886 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136670&oldid=136669 5* 03Yayimhere 5* (-422) 10/* a step by step version */ > 1724562253 469649 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136671&oldid=136670 5* 03Yayimhere 5* (+43) 10 > 1724562376 633289 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136672&oldid=136671 5* 03Yayimhere 5* (+46) 10/* semantics */ > 1724563770 477040 PRIVMSG #esolangs :14[[07Better Burn14]]4 M10 02https://esolangs.org/w/index.php?diff=136673&oldid=136631 5* 03Unname4798 5* (-1) 10typo fix > 1724563827 71184 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136674&oldid=136672 5* 03Yayimhere 5* (+206) 10/* one with no complexity */ > 1724564138 684009 PRIVMSG #esolangs :14[[07User talk:Unname479814]]4 10 02https://esolangs.org/w/index.php?diff=136675&oldid=136432 5* 03Unname4798 5* (+2) 10grade the discussions > 1724564172 165154 PRIVMSG #esolangs :14[[07User talk:Unname479814]]4 M10 02https://esolangs.org/w/index.php?diff=136676&oldid=136675 5* 03Unname4798 5* (+4) 10correct headers > 1724564670 898567 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136677&oldid=136674 5* 03Yayimhere 5* (+595) 10/* some complexity */ > 1724564864 768742 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136678&oldid=136677 5* 03Yayimhere 5* (+245) 10 > 1724564881 101389 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136679&oldid=136678 5* 03Yayimhere 5* (+4) 10/* some complexity */ > 1724564916 116461 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136680&oldid=136679 5* 03Yayimhere 5* (+42) 10/* a step by step version */ < 1724564967 714419 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User < 1724565293 323602 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz… < 1724565362 708130 :ais523!~ais523@user/ais523 QUIT :Quit: quit > 1724565462 831627 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136681&oldid=136680 5* 03Yayimhere 5* (+11) 10 > 1724565727 529398 PRIVMSG #esolangs :14[[07User talk:Unname479814]]4 10 02https://esolangs.org/w/index.php?diff=136682&oldid=136676 5* 03Yayimhere 5* (-4) 10 > 1724567150 363626 PRIVMSG #esolangs :14[[0725614]]4 10 02https://esolangs.org/w/index.php?diff=136683&oldid=108844 5* 03Yayimhere 5* (-18) 10/* Interpreters */ > 1724567720 643363 PRIVMSG #esolangs :14[[07User talk:Unname479814]]4 10 02https://esolangs.org/w/index.php?diff=136684&oldid=136682 5* 03Unname4798 5* (+4) 10Undo revision [[Special:Diff/136682|136682]] by [[Special:Contributions/Yayimhere|Yayimhere]] ([[User talk:Yayimhere|talk]]) (please do not revert unmame4798's edits) > 1724567908 285951 PRIVMSG #esolangs :14[[07Talk:25614]]4 10 02https://esolangs.org/w/index.php?diff=136685&oldid=136648 5* 03Yayimhere 5* (+190) 10 > 1724567972 951938 PRIVMSG #esolangs :14[[073ME14]]4 10 02https://esolangs.org/w/index.php?diff=136686&oldid=136543 5* 03Unname4798 5* (+6) 10 > 1724568078 990046 PRIVMSG #esolangs :14[[07User talk:Unname4798/Rollback test14]]4 N10 02https://esolangs.org/w/index.php?oldid=136687 5* 03Unname4798 5* (+4) 10Created page with "Test" > 1724568087 95681 PRIVMSG #esolangs :14[[07User talk:Unname4798/Rollback test14]]4 10 02https://esolangs.org/w/index.php?diff=136688&oldid=136687 5* 03Unname4798 5* (+6) 10 > 1724568093 304229 PRIVMSG #esolangs :14[[07User talk:Unname4798/Rollback test14]]4 10 02https://esolangs.org/w/index.php?diff=136689&oldid=136688 5* 03Unname4798 5* (+6) 10 > 1724568113 912006 PRIVMSG #esolangs :14[[07User talk:Unname4798/Rollback test14]]4 10 02https://esolangs.org/w/index.php?diff=136690&oldid=136689 5* 03Unname4798 5* (-12) 10 < 1724568287 6485 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User < 1724568415 481444 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :Can you make a Babson task in Magic: the Gathering? > 1724568617 343524 PRIVMSG #esolangs :14[[07Nope14]]4 10 02https://esolangs.org/w/index.php?diff=136691&oldid=136260 5* 03Yayimhere 5* (+652) 10 > 1724568628 217185 PRIVMSG #esolangs :14[[07Nope14]]4 10 02https://esolangs.org/w/index.php?diff=136692&oldid=136691 5* 03Yayimhere 5* (+1) 10/* = turing completeness proof */ > 1724568714 206891 PRIVMSG #esolangs :14[[07Short Minsky Machine Notation14]]4 10 02https://esolangs.org/w/index.php?diff=136693&oldid=136489 5* 03Yayimhere 5* (+41) 10 > 1724570519 671386 PRIVMSG #esolangs :14[[07Bijection14]]4 N10 02https://esolangs.org/w/index.php?oldid=136694 5* 03Yayimhere 5* (+433) 10Created page with "'''Bijection''' is a esolang created by [[User:Yayimhere]] where all you do is copy lines to other lines == commands == there is the main command: {}''n'' the contents of the brackets will be replaced with the contents of line ''n''(starting at 0). if the brackets a > 1724570656 555002 PRIVMSG #esolangs :14[[07OFFICIAL14]]4 10 02https://esolangs.org/w/index.php?diff=136695&oldid=136530 5* 03Yayimhere 5* (-7) 10/* examples */ > 1724571077 387122 PRIVMSG #esolangs :14[[071L a14]]4 10 02https://esolangs.org/w/index.php?diff=136696&oldid=91646 5* 03Graue 5* (+7) 10update links > 1724571234 733219 PRIVMSG #esolangs :14[[07User:Yayimhere14]]4 10 02https://esolangs.org/w/index.php?diff=136697&oldid=136630 5* 03Yayimhere 5* (+16) 10 > 1724571729 250819 PRIVMSG #esolangs :14[[07Func()14]]4 10 02https://esolangs.org/w/index.php?diff=136698&oldid=136467 5* 03Yayimhere 5* (+40) 10 < 1724571885 879590 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz… > 1724571916 295507 PRIVMSG #esolangs :14[[07Truth-machine14]]4 10 02https://esolangs.org/w/index.php?diff=136699&oldid=136461 5* 03Yayimhere 5* (+51) 10/* FurryScript */ > 1724572212 905248 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=136700&oldid=133228 5* 03Yayimhere 5* (+174) 10 < 1724572486 678176 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User > 1724572592 915771 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=136701&oldid=136700 5* 03Yayimhere 5* (+62) 10/* computational class */ > 1724572769 877100 PRIVMSG #esolangs :14[[072dL14]]4 10 02https://esolangs.org/w/index.php?diff=136702&oldid=133356 5* 03Yayimhere 5* (-159) 10/* examples */ < 1724572835 358500 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :Esoteric shell idea: Scan all of memory for certain byte patterns, and if you see them, assume that they're valid commands. Wait, that's real, https://floooh.github.io/virtualkc/p010_kc85.html#:~:text=On%20the%20software,7F%207F%E2%80%99%20headers. < 1724572855 309008 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :Unless there's something I'm misunderstanding there > 1724572878 657630 PRIVMSG #esolangs :14[[07,(*+)14]]4 10 02https://esolangs.org/w/index.php?diff=136703&oldid=132539 5* 03Yayimhere 5* (+1) 10 > 1724572940 142710 PRIVMSG #esolangs :14[[07DQ14]]4 10 02https://esolangs.org/w/index.php?diff=136704&oldid=136561 5* 03Yayimhere 5* (-6) 10 > 1724573015 16754 PRIVMSG #esolangs :14[[07DQ14]]4 10 02https://esolangs.org/w/index.php?diff=136705&oldid=136704 5* 03Yayimhere 5* (-9) 10 < 1724573427 590568 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz… > 1724573704 684457 PRIVMSG #esolangs :14[[07Marthue14]]4 M10 02https://esolangs.org/w/index.php?diff=136706&oldid=78077 5* 03PkmnQ 5* (-142) 10See [[Talk:Markov algorithm]] > 1724573709 152943 PRIVMSG #esolangs :14[[07Transet14]]4 M10 02https://esolangs.org/w/index.php?diff=136707&oldid=118749 5* 03PkmnQ 5* (+40) 10See [[Talk:Markov algorithm]] > 1724573711 170311 PRIVMSG #esolangs :14[[071.114]]4 M10 02https://esolangs.org/w/index.php?diff=136708&oldid=79309 5* 03PkmnQ 5* (+10) 10See [[Talk:Markov algorithm]] < 1724573924 231533 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User > 1724574623 622729 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136709&oldid=136681 5* 03Yayimhere 5* (+80) 10/* semantics */ > 1724574784 530904 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136710&oldid=136709 5* 03Yayimhere 5* (+62) 10 > 1724576432 438382 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136711&oldid=136710 5* 03Yayimhere 5* (+268) 10/* some complexity */ > 1724576935 434081 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136712&oldid=136711 5* 03Yayimhere 5* (+4) 10/* some complexity */ > 1724576985 666436 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136713&oldid=136712 5* 03Yayimhere 5* (+2) 10/* some complexity */ < 1724577000 964628 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Sgeo: “Scan all of memory for certain byte patterns, and if you see them, assume that they're valid commands.” => telnet with a plain text password is somewhat close to that, only for network instead of memory, and it usually requires a roundtrip or two for TCP to work < 1724577024 810485 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :assuming you configure the telnet server to just run a shell that is > 1724577026 285533 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136714&oldid=136713 5* 03Yayimhere 5* (+38) 10/* some complexity */ < 1724577038 424362 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz… > 1724577070 398118 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136715&oldid=136714 5* 03Yayimhere 5* (+87) 10/* some complexity */ > 1724577074 858002 PRIVMSG #esolangs :14[[07Truth-machine14]]4 10 02https://esolangs.org/w/index.php?diff=136716&oldid=136699 5* 03Ractangle 5* (+2) 10/* [[Func()|Func[]]] */ > 1724577099 570860 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136717&oldid=136715 5* 03Yayimhere 5* (+36) 10/* some complexity */ > 1724577123 196449 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136718&oldid=136717 5* 03Yayimhere 5* (+37) 10/* some complexity */ > 1724577151 779084 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136719&oldid=136718 5* 03Yayimhere 5* (+34) 10/* some complexity */ > 1724577172 746533 PRIVMSG #esolangs :14[[07Truth-machine14]]4 10 02https://esolangs.org/w/index.php?diff=136720&oldid=136716 5* 03Ractangle 5* (+120) 10/* Python */ > 1724577252 879191 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136721&oldid=136719 5* 03Yayimhere 5* (+280) 10/* some complexity */ > 1724577266 935355 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136722&oldid=136721 5* 03Yayimhere 5* (+44) 10/* some complexity */ > 1724577291 604743 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136723&oldid=136722 5* 03Yayimhere 5* (+31) 10/* some complexity */ > 1724577297 523964 PRIVMSG #esolangs :14[[07Truth-machine14]]4 10 02https://esolangs.org/w/index.php?diff=136724&oldid=136720 5* 03Ractangle 5* (-3) 10/* Python */ > 1724577400 814375 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136725&oldid=136723 5* 03Yayimhere 5* (-3) 10/* some complexity */ < 1724577485 333665 :drwiz!~drwiz@user/drwizard JOIN #esolangs drwiz :[https://web.libera.chat] drwiz < 1724578063 20292 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User < 1724578129 82693 :__monty__!~toonn@user/toonn JOIN #esolangs toonn :Unknown > 1724578377 569207 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136726&oldid=136725 5* 03Yayimhere 5* (+526) 10/* one with no complexity */ > 1724578887 78623 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136727&oldid=136726 5* 03Yayimhere 5* (+42) 10/* another example with no colors n' stuff cuz im to tired -_- */ > 1724578905 290050 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136728&oldid=136727 5* 03Yayimhere 5* (+19) 10/* example programs */ < 1724579205 632138 :slavfox!~slavfox@93.158.232.111 QUIT :Quit: ZNC 1.8.2 - https://znc.in < 1724579322 604990 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz… < 1724579371 744 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User < 1724579402 207642 :slavfox!~slavfox@93.158.232.111 JOIN #esolangs slavfox :slavfox > 1724580343 129530 PRIVMSG #esolangs :14[[0740114]]4 10 02https://esolangs.org/w/index.php?diff=136729&oldid=134538 5* 03Yayimhere 5* (+499) 10 > 1724580443 687625 PRIVMSG #esolangs :14[[07Truth Machine (language)14]]4 10 02https://esolangs.org/w/index.php?diff=136730&oldid=105853 5* 03Ractangle 5* (+3) 10python technicaly uses == instead of = > 1724580467 45069 PRIVMSG #esolangs :14[[07Truth Machine (language)14]]4 10 02https://esolangs.org/w/index.php?diff=136731&oldid=136730 5* 03Ractangle 5* (-3) 10 > 1724580580 15078 PRIVMSG #esolangs :14[[07SLet14]]4 10 02https://esolangs.org/w/index.php?diff=136732&oldid=136255 5* 03ZCX islptng 5* (+12) 10 > 1724580673 779726 PRIVMSG #esolangs :14[[07SLet14]]4 10 02https://esolangs.org/w/index.php?diff=136733&oldid=136732 5* 03ZCX islptng 5* (-3) 10 > 1724580858 811624 PRIVMSG #esolangs :14[[07!()14]]4 10 02https://esolangs.org/w/index.php?diff=136734&oldid=134573 5* 03Yayimhere 5* (-1) 10 > 1724580908 166831 PRIVMSG #esolangs :14[[07!()14]]4 10 02https://esolangs.org/w/index.php?diff=136735&oldid=136734 5* 03Yayimhere 5* (-1) 10 > 1724581174 958143 PRIVMSG #esolangs :14[[07Truth Machine (language)14]]4 10 02https://esolangs.org/w/index.php?diff=136736&oldid=136731 5* 03Ractangle 5* (-22) 10/* Commands */ > 1724581199 89985 PRIVMSG #esolangs :14[[07SLet14]]4 10 02https://esolangs.org/w/index.php?diff=136737&oldid=136733 5* 03ZCX islptng 5* (+70) 10 < 1724581719 73480 :dawids!~dawids@64.43.33.49 JOIN #esolangs * :realname < 1724581725 47323 :dawids!~dawids@64.43.33.49 QUIT :Remote host closed the connection > 1724582100 386082 PRIVMSG #esolangs :14[[0725 bytes o:14]]4 10 02https://esolangs.org/w/index.php?diff=136738&oldid=136275 5* 03Ractangle 5* (+38) 10/* python intepreter */ > 1724582573 720604 PRIVMSG #esolangs :14[[07Special:Log/upload14]]4 upload10 02 5* 03Yayimhere 5* 10uploaded "[[02File:Wang tiles for w4ng =.jpg10]]" > 1724582688 235632 PRIVMSG #esolangs :14[[07W4ng =14]]4 N10 02https://esolangs.org/w/index.php?oldid=136740 5* 03Yayimhere 5* (+766) 10Created page with "'''W4ng =''' is a [[esolang]] created by [[User:Yayimhere]] inspired by [[Wikipedia: Wang tile|Wang tiles]]. a W4ng = program takes the given tiles and use a algorithm to tile the plane, halting when it can no longer tile == semantics == to define the l > 1724583175 977120 PRIVMSG #esolangs :14[[07W4ng =14]]4 10 02https://esolangs.org/w/index.php?diff=136741&oldid=136740 5* 03Yayimhere 5* (+612) 10 > 1724583193 77343 PRIVMSG #esolangs :14[[07W4ng =14]]4 10 02https://esolangs.org/w/index.php?diff=136742&oldid=136741 5* 03Yayimhere 5* (+1) 10 > 1724583284 258734 PRIVMSG #esolangs :14[[07W4ng =14]]4 10 02https://esolangs.org/w/index.php?diff=136743&oldid=136742 5* 03Yayimhere 5* (+14) 10 < 1724583974 916224 :Sgeo!~Sgeo@user/sgeo QUIT :Read error: Connection reset by peer > 1724583978 699732 PRIVMSG #esolangs :14[[07User:Yayimhere14]]4 10 02https://esolangs.org/w/index.php?diff=136744&oldid=136697 5* 03Yayimhere 5* (+13) 10 > 1724584149 114610 PRIVMSG #esolangs :14[[07Transet14]]4 10 02https://esolangs.org/w/index.php?diff=136745&oldid=136707 5* 03Yayimhere 5* (+2) 10 > 1724584321 287273 PRIVMSG #esolangs :14[[07!()14]]4 10 02https://esolangs.org/w/index.php?diff=136746&oldid=136735 5* 03Yayimhere 5* (+25) 10 > 1724584388 5166 PRIVMSG #esolangs :14[[07!()14]]4 10 02https://esolangs.org/w/index.php?diff=136747&oldid=136746 5* 03Yayimhere 5* (-25) 10/* examples */ < 1724584475 325467 :drwiz!~drwiz@user/drwizard QUIT :Ping timeout: 256 seconds > 1724584477 102230 PRIVMSG #esolangs :14[[07OFFICIAL14]]4 10 02https://esolangs.org/w/index.php?diff=136748&oldid=136695 5* 03Yayimhere 5* (+11) 10/* examples */ < 1724585788 420644 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz… > 1724589155 549031 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136749&oldid=136728 5* 03Yayimhere 5* (+39) 10/* another example with no colors n' stuff cuz im to tired -_- */ > 1724589369 398844 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136750&oldid=136749 5* 03Yayimhere 5* (+18) 10/* example programs */ > 1724589636 866309 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136751&oldid=136750 5* 03Yayimhere 5* (+66) 10/* some complexity */ > 1724589684 942219 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136752&oldid=136751 5* 03Yayimhere 5* (-1) 10/* some complexity */ > 1724589856 204444 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136753&oldid=136752 5* 03Yayimhere 5* (-383) 10/* some complexity */ > 1724589875 635760 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136754&oldid=136753 5* 03Yayimhere 5* (+1) 10/* some complexity */ > 1724589927 618869 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136755&oldid=136754 5* 03Yayimhere 5* (+36) 10/* some complexity */ > 1724589971 307361 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136756&oldid=136755 5* 03Yayimhere 5* (+33) 10/* some complexity */ > 1724589982 151471 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136757&oldid=136756 5* 03Yayimhere 5* (+1) 10/* some complexity */ > 1724590035 920686 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136758&oldid=136757 5* 03Yayimhere 5* (+1) 10/* some complexity */ > 1724590126 109987 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136759&oldid=136758 5* 03Yayimhere 5* (+142) 10/* some complexity */ > 1724590151 332185 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136760&oldid=136759 5* 03Yayimhere 5* (-2) 10/* some complexity */ > 1724590166 908795 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136761&oldid=136760 5* 03Yayimhere 5* (+71) 10/* some complexity */ > 1724590192 221003 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136762&oldid=136761 5* 03Yayimhere 5* (+39) 10/* some complexity */ < 1724591123 666873 :FreeFull!~freefull@46.205.206.114.nat.ftth.dynamic.t-mobile.pl QUIT :Quit: rebooting < 1724592379 396892 :X-Scale!~X-Scale@31.22.160.69 JOIN #esolangs X-Scale :[https://web.libera.chat] X-Scale > 1724592404 788849 PRIVMSG #esolangs :14[[07SLet14]]4 10 02https://esolangs.org/w/index.php?diff=136763&oldid=136737 5* 03ZCX islptng 5* (+54) 10 > 1724592690 7342 PRIVMSG #esolangs :14[[07Blackboard14]]4 N10 02https://esolangs.org/w/index.php?oldid=136764 5* 03Yayimhere 5* (+1212) 10Created page with "'''Blackboard''' is a esolang crated by [[User:Yayimhere]] based on [[RECT4n=GLE]], [[///]], [[Thue]], and [[Lambda calculus]] == semantics == the program is set up in two sections(separated by % on a single line). one the left side there are replaceme < 1724593276 334394 :drwiz!~drwiz@user/drwizard JOIN #esolangs drwiz :[https://web.libera.chat] drwiz < 1724593787 970201 :FreeFull!~freefull@46.205.206.114.nat.ftth.dynamic.t-mobile.pl JOIN #esolangs FreeFull :FreeFull > 1724594384 771010 PRIVMSG #esolangs :14[[07Better Burn14]]4 10 02https://esolangs.org/w/index.php?diff=136765&oldid=136673 5* 03Tommyaweosme 5* (+34) 10 > 1724594734 707358 PRIVMSG #esolangs :14[[07User talk:MihaiEso14]]4 10 02https://esolangs.org/w/index.php?diff=136766&oldid=136667 5* 03Tommyaweosme 5* (+587) 10/* Copyright violations */ > 1724594850 524110 PRIVMSG #esolangs :14[[07User talk:Unname479814]]4 10 02https://esolangs.org/w/index.php?diff=136767&oldid=136684 5* 03Tommyaweosme 5* (+243) 10/* what a edit */ > 1724594917 828519 PRIVMSG #esolangs :14[[07User:MihaiEso/InDev14]]4 10 02https://esolangs.org/w/index.php?diff=136768&oldid=131200 5* 03Tommyaweosme 5* (+25) 10/* See also */ < 1724595729 327811 :X-Scale!~X-Scale@31.22.160.69 QUIT :Ping timeout: 256 seconds < 1724595756 401694 :X-Scale!~X-Scale@31.22.160.69 JOIN #esolangs X-Scale :[https://web.libera.chat] X-Scale > 1724596015 284519 PRIVMSG #esolangs :14[[07Selfmodi14]]4 N10 02https://esolangs.org/w/index.php?oldid=136769 5* 03Tommyaweosme 5* (+1068) 10Created page with "{{lowercase}}selfmodi is a self-modifying esolang derived from [[brainfuck]] by [[user:tommyaweosme|user:]]~~~ == commands == 0 [[nop]] 1 increment next number 2 decrement next number 3 | (flip) 4 . (out) 5 , (inp) 6 [ (while0) 7 ] (while0) 8 > (next) 9 > 1724596178 272018 PRIVMSG #esolangs :14[[0714]]4 N10 02https://esolangs.org/w/index.php?oldid=136770 5* 03Yayimhere 5* (+1618) 10Created page with "{{lowercase}} '''''' but it has a few changes. it was created by [[User:Yayimhere]] == changes == * a program halts when no changes happen to any expression * theres no simplification. only beta reductions * encasing a expression in {} will make it loop until th > 1724596807 709716 PRIVMSG #esolangs :14[[07User:Yayimhere14]]4 10 02https://esolangs.org/w/index.php?diff=136771&oldid=136744 5* 03Yayimhere 5* (+9) 10 > 1724596980 560604 PRIVMSG #esolangs :14[[07This machine is a server. DO NOT POWER IT DOWN!!14]]4 10 02https://esolangs.org/w/index.php?diff=136772&oldid=136001 5* 03Yayimhere 5* (+15) 10 > 1724597498 906887 PRIVMSG #esolangs :14[[07Talk:3ME14]]4 N10 02https://esolangs.org/w/index.php?oldid=136773 5* 03Ractangle 5* (+3) 10Created page with "4me" > 1724597514 444856 PRIVMSG #esolangs :14[[07Talk:3ME14]]4 10 02https://esolangs.org/w/index.php?diff=136774&oldid=136773 5* 03Ractangle 5* (+92) 10 < 1724597633 339764 :X-Scale!~X-Scale@31.22.160.69 QUIT :Ping timeout: 256 seconds > 1724597972 729140 PRIVMSG #esolangs :14[[07Kava14]]4 10 02https://esolangs.org/w/index.php?diff=136775&oldid=136627 5* 03Ractangle 5* (+75) 10 > 1724598130 634663 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136776&oldid=136762 5* 03Yayimhere 5* (-2) 10 > 1724598321 715557 PRIVMSG #esolangs :14[[07TAbrain14]]4 10 02https://esolangs.org/w/index.php?diff=136777&oldid=129677 5* 03Yayimhere 5* (+5) 10/* Kiwiscript */ > 1724598331 459889 PRIVMSG #esolangs :14[[07TAbrain14]]4 10 02https://esolangs.org/w/index.php?diff=136778&oldid=136777 5* 03Yayimhere 5* (+5) 10/* A+B problem */ > 1724598341 556955 PRIVMSG #esolangs :14[[07TAbrain14]]4 10 02https://esolangs.org/w/index.php?diff=136779&oldid=136778 5* 03Yayimhere 5* (+5) 10/* Truth machine */ > 1724598551 152931 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136780&oldid=136776 5* 03Yayimhere 5* (+0) 10/* a step by step version */ > 1724598809 1739 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136781&oldid=136780 5* 03Yayimhere 5* (-1017) 10/* some complexity */ > 1724598833 291985 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136782&oldid=136781 5* 03Yayimhere 5* (+58) 10/* some complexity */ > 1724598851 207094 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136783&oldid=136782 5* 03Yayimhere 5* (+28) 10/* some complexity */ > 1724599685 838773 PRIVMSG #esolangs :14[[07Special:Log/newusers14]]4 create10 02 5* 03Sourceguy 5* 10New user account > 1724599767 251443 PRIVMSG #esolangs :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=136784&oldid=136563 5* 03Sourceguy 5* (+24) 10/* Introductions */ > 1724600275 383460 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136785&oldid=136783 5* 03Yayimhere 5* (+89) 10 > 1724600781 151384 PRIVMSG #esolangs :14[[07Better Burn14]]4 10 02https://esolangs.org/w/index.php?diff=136786&oldid=136765 5* 03Unname4798 5* (-34) 10match User prefix color with "tommy"'s color > 1724601006 187648 PRIVMSG #esolangs :14[[07User talk:MihaiEso14]]4 10 02https://esolangs.org/w/index.php?diff=136787&oldid=136766 5* 03Unname4798 5* (+253) 10reply > 1724601665 538272 PRIVMSG #esolangs :14[[07Nope...?14]]4 10 02https://esolangs.org/w/index.php?diff=136788&oldid=136516 5* 03Yayimhere 5* (+27) 10/* quirks */ > 1724602569 54562 PRIVMSG #esolangs :14[[07The mimic14]]4 N10 02https://esolangs.org/w/index.php?oldid=136789 5* 03Sourceguy 5* (+106) 10Created page with "The mimic is an esolang created by [[User:Sourceguy]]. it mimics the input == Hello world == Hello World" > 1724602587 202245 PRIVMSG #esolangs :14[[07The mimic14]]4 10 02https://esolangs.org/w/index.php?diff=136790&oldid=136789 5* 03Sourceguy 5* (+13) 10 > 1724602624 658940 PRIVMSG #esolangs :14[[07The mimic14]]4 10 02https://esolangs.org/w/index.php?diff=136791&oldid=136790 5* 03Sourceguy 5* (+42) 10 > 1724602893 450420 PRIVMSG #esolangs :14[[07User:Sourceguy14]]4 N10 02https://esolangs.org/w/index.php?oldid=136792 5* 03Sourceguy 5* (+55) 10Created page with "Hi, im Sourceguy Here are my esolangs: * [[the mimic]]" < 1724603211 712284 :craigo!~craigo@user/craigo JOIN #esolangs craigo :realname > 1724604635 132858 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=136793&oldid=136785 5* 03Yayimhere 5* (+17) 10/* semantics */ > 1724604666 197534 PRIVMSG #esolangs :14[[07User talk:MihaiEso14]]4 10 02https://esolangs.org/w/index.php?diff=136794&oldid=136787 5* 03Tommyaweosme 5* (+267) 10 > 1724604755 426488 PRIVMSG #esolangs :14[[07The mimic14]]4 10 02https://esolangs.org/w/index.php?diff=136795&oldid=136791 5* 03Sourceguy 5* (+112) 10 > 1724604765 883534 PRIVMSG #esolangs :14[[07The mimic14]]4 10 02https://esolangs.org/w/index.php?diff=136796&oldid=136795 5* 03Sourceguy 5* (-7) 10 > 1724604875 64732 PRIVMSG #esolangs :14[[07Talk:The mimic14]]4 N10 02https://esolangs.org/w/index.php?oldid=136797 5* 03Unname4798 5* (+234) 10Created page with "It is a duplicate of [[Text]] (the esolang, not the page). ~~~" > 1724606766 336187 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=136798&oldid=136634 5* 03Ractangle 5* (-323) 10 < 1724607677 576487 :fowl!~fowl@user/fowl QUIT :Quit: Ping timeout (120 seconds) < 1724607884 211585 :fowl!~fowl@user/fowl JOIN #esolangs fowl :fowl > 1724607915 319681 PRIVMSG #esolangs :14[[07User:Gilbert189/Iternary14]]4 10 02https://esolangs.org/w/index.php?diff=136799&oldid=135979 5* 03Gilbert189 5* (+4141) 10/* Functions */ < 1724612119 16379 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User > 1724612322 67443 PRIVMSG #esolangs :14[[07Playlist14]]4 10 02https://esolangs.org/w/index.php?diff=136800&oldid=68238 5* 03Kaveh Yousefi 5* (+167) 10Added a hyperlink to my implementation of the Playlist programming language on GitHub and altered the page category tag Unimplemented to Implemented. > 1724612511 866875 PRIVMSG #esolangs :14[[07Playlist14]]4 M10 02https://esolangs.org/w/index.php?diff=136801&oldid=136800 5* 03Kaveh Yousefi 5* (+115) 10Improved the code fragments' formatting. > 1724612793 232946 PRIVMSG #esolangs :14[[07Special:Log/move14]]4 move10 02 5* 03Ractangle 5* 10moved [[02User:Ractangle/10]] to [[Non-Binary Turing machine with a stack]] > 1724612983 798987 PRIVMSG #esolangs :14[[07You are in a brainforest14]]4 N10 02https://esolangs.org/w/index.php?oldid=136804 5* 03Tommyaweosme 5* (+579) 10Created page with "{{lowercase}}you are in a brainforest is a non-turing complete esolang that compiles into brainfuck. its only sole purpose is to make text adventures. == commands == out() - prints characters in brackets in - stores input as temporary variable if > 1724613088 21128 PRIVMSG #esolangs :14[[07Better Burn14]]4 10 02https://esolangs.org/w/index.php?diff=136805&oldid=136786 5* 03Tommyaweosme 5* (+34) 10stylistic choice < 1724613212 618686 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz… < 1724613497 532569 :Sgeo!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname < 1724613959 256248 :drwiz!~drwiz@user/drwizard QUIT :Quit: Client closed > 1724614062 172545 PRIVMSG #esolangs :14[[07Non-Binary Turing machine with a stack14]]4 10 02https://esolangs.org/w/index.php?diff=136806&oldid=136802 5* 03Ractangle 5* (-165) 10 < 1724614810 800445 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User > 1724615162 945391 PRIVMSG #esolangs :14[[07Non-Binary Turing machine with a stack14]]4 10 02https://esolangs.org/w/index.php?diff=136807&oldid=136806 5* 03Ractangle 5* (+314) 10 > 1724615320 887057 PRIVMSG #esolangs :14[[07Special:Log/move14]]4 move10 02 5* 03Ractangle 5* 10moved [[02Non-Binary Turing machine with a stack10]] to [[Disan Count pesudocode]] > 1724615476 880110 PRIVMSG #esolangs :14[[07Disan Count pesudocode14]]4 10 02https://esolangs.org/w/index.php?diff=136810&oldid=136808 5* 03Ractangle 5* (-612) 10 < 1724616107 465725 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Oh I'm revisiting A Monster's Expedition and I totally missed that they expanded it: https://draknek.itch.io/a-monsters-expedition/devlog/280963/the-museum-expansion-update-comes-to-a-monsters-expedition < 1724616111 469068 :int-e!~noone@int-e.eu PRIVMSG #esolangs :MORE puzzles > 1724616618 300273 PRIVMSG #esolangs :14[[07Disan Count pesudocode14]]4 10 02https://esolangs.org/w/index.php?diff=136811&oldid=136810 5* 03Ractangle 5* (+633) 10 > 1724616637 584947 PRIVMSG #esolangs :14[[07Special:Log/move14]]4 move10 02 5* 03Ractangle 5* 10moved [[02Disan Count pesudocode10]] to [[Disan Count Pesudocode]] > 1724616668 435171 PRIVMSG #esolangs :14[[07User:Ractangle14]]4 10 02https://esolangs.org/w/index.php?diff=136814&oldid=136223 5* 03Ractangle 5* (+29) 10/* Esolangs */ > 1724616730 43035 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=136815&oldid=136798 5* 03Ractangle 5* (+10) 10/* Truth-machine */ > 1724616742 906142 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=136816&oldid=136815 5* 03Ractangle 5* (+19) 10/* A+B Problem */ < 1724620208 763458 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Read error: Connection reset by peer > 1724620784 74861 PRIVMSG #esolangs :14[[07The mimic14]]4 M10 02https://esolangs.org/w/index.php?diff=136817&oldid=136796 5* 03PythonshellDebugwindow 5* (+144) 10Formatting, see also, category > 1724620889 649713 PRIVMSG #esolangs :14[[07You are in a brainforest14]]4 M10 02https://esolangs.org/w/index.php?diff=136818&oldid=136804 5* 03PythonshellDebugwindow 5* (+108) 10Categories < 1724621460 843238 :__monty__!~toonn@user/toonn QUIT :Quit: leaving < 1724624237 166793 :Sgeo_!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname < 1724624242 798699 :Sgeo!~Sgeo@user/sgeo QUIT :Read error: Connection reset by peer > 1724629126 8832 PRIVMSG #esolangs :14[[07Special:Log/upload14]]4 upload10 02 5* 03BoundedBeans 5* 10uploaded "[[02File:Heptagonal tiling.png10]]": Heptagonal tiling of the hyperbolic plane, used to illustrate Hyperheptefunge-98