< 1629676846 531729 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :Yeah, it's definitely skeletal. < 1629676866 844926 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :ais523: perhaps one of the languages that are specialized for programming MUDs or text adventure games have all function definitions work in an event handler way that concatenates multiple handlers < 1629676900 716739 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :Yes, row polymorphism is intimately connected to the typical stack-based Forth desendant. IIRC Factor's type system is effectively just higher-order row-polymorphic signatures. < 1629677132 538799 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :"skeletal" still reminds me of how Hollow Dogs the M:tG card still hasn't been errataed to have the Skeleton creature type < 1629677187 292033 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :give me my Phyrexian Zombie Skeleton Dogs already, Wizards < 1629677201 296319 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :(this line is to preempt any Changeling joke) < 1629677208 263840 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :I mostly use C for my own programs (I dislike some of the features of some of the programming languages intended to be a replacement for C), but sometimes I will use PostScript, or others < 1629677235 917565 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :A hollow dog is never empty. It is filled with thirst for the hunt. > 1629677517 256243 PRIVMSG #esolangs :14[[07Category theory14]]4 M10 02https://esolangs.org/w/index.php?diff=87540&oldid=74393 5* 03Corbin 5* (+632) 10Give a couple ways to apply category theory to programming language theory. < 1629678017 469141 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :zzo38: I wonder what your opinion on zig is. it seems like it's trying to be for C what Rust is for C++, and I think it's doing that pretty well < 1629678060 506547 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :though I guess their selling point of trying to provide a sane (Zig AND C AND C++) compiler package for Windows isn't a selling point for you < 1629678162 946352 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :I guess my opinion is that making a better C is incredibly easy, the issue is trying to make a C that's better *enough* for people to use it < 1629678182 818260 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :for me, Rust is better by enough to be worth changing my main systems language < 1629678202 936934 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :ais523: and providing a sane compiler environment for Windows, which is something we're lacking right now, is a good way of doing that < 1629678222 806755 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :like, I download the package to get a C++ compiler for windows, and get curious what else is there < 1629678250 758929 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :it's like git, which provides a vim port and a terminal for windows, you install it, and wonder what the version control thing that the distribution is named of is about < 1629678250 952722 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :I normally use Strawberry Perl if I want a C compiler for Windows (there's one bundled in with it) < 1629678266 603942 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :ais523: does it have a C++ compiler? < 1629678271 476278 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :also I don't think that's what made git popular < 1629678275 144582 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :b_jonas: I'm not sure, but probably < 1629678277 819835 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :also thanks for that recommendation, I might look at it < 1629678297 186200 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :ais523: no, it didn't. the Linux kernel versioned with it did, sadly < 1629678299 324179 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :it's basically just gcc with competent packaging < 1629678314 937651 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :ais523: yes, and that's the hard part. Zig distributes a clang with competent packaging. < 1629678332 418921 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :I agree that competent packaging is the hard part, especially on Windows < 1629678336 823839 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :that's how you get a good C++ compiler, more so than trying to implement one from scratch < 1629678378 375166 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :there used to be https://www.msys2.org/ which provides a gcc, but it's not been updated for years now < 1629678492 648622 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :hehe, https://scryfall.com/card/ice/137/kjeldoran-dead was originally printed as a Dead, while https://scryfall.com/card/all/55b/lim-d%C3%BBls-high-guard as a Skeleton. they really didn't know how to use creature types back then. < 1629678501 424651 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :Windows is a moving target (although not to the extent Mac OS X is), it's a pain to keep things updated there < 1629678541 291543 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :yes, it's definitely not an easy task < 1629678554 626044 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :the situation with the standard libraries is especially disappointing < 1629678563 475500 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :(Dimir House Guard is a rare armored skeleton) < 1629678591 777582 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :(there's a libc bundled with Windows but it's nonstandard and your aren't officially supposed to use it; there are also libcs bundled with MSVC which are more standards-compliant, but are licensed in such a way that you can't use them as the libc for an open-source compiler) < 1629678629 894830 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :(and the raw system calls aren't supposed to be exposed to applications – although some applications are using them anyway, it seems – so writing your own libc from scratch is also very difficult) < 1629678734 932309 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :wait < 1629678746 984262 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :you can't use MSVC as the libc as an open-source compiler? < 1629678758 897273 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :as opposed to just with gcc because of gcc's GPL license or something? < 1629678784 989305 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :not even if you have to install the library separately, it's not distributed with the compiler toolkit? < 1629678847 518483 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :I forget the exact license terms, but I know they prevent that working somehow < 1629678855 323367 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :(not that I think GPL would forbid that, but just in case) < 1629678883 446915 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :I know MS has some licences where you can't redistribute the library or font, but if you download it directly from Microsoft, you can use it < 1629678961 78857 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :but that doesn't apply to the part of the library that wraps syscalls to Windows API calls, right? just the part that's trying to be a C standard library? < 1629679155 796629 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :this is horrible, I've been on Microsoft's website for about 10 minutes now and still can't find the EULA for these things < 1629679168 786362 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :I even found a download page, but the license isn't specified on the download page itself < 1629679206 267473 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :one of the pages I found suggested installing Visual Studio to view the license < 1629679259 966426 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :I found links to webpages that were supposed to contain the license terms, but they didn't < 1629679286 945478 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :also, they're the same library < 1629679354 656202 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :ais523: I just want a "better C" that's better enough that I can use it. < 1629679393 135079 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Rust seems much more like "better C++" to me, and I that's not really the style of language I want. < 1629679453 545797 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :fair enough; I think that's a fair assessment of the language < 1629679464 337278 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :I would probably have been using C++ already if I thought it was better enough than C, but I didn't < 1629679667 706636 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :ooh, this is new: https://docs.microsoft.com/en-us/cpp/windows/universal-crt-deployment?view=msvc-160 < 1629679673 196573 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :Windows finally has a centralised C runtime! < 1629679735 228285 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :2015, so more recently than I last looked at this nonsense < 1629679978 653935 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :ais523: what does "centralized C runtime" mean? I seem to recall they introduced an ABI stable between MSVC releases around that point < 1629680105 139084 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :b_jonas: the C runtime is installed with/by the OS, rather than being installed along with every C program you want to run on you rcomputer < 1629680147 103197 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :for a while, Windows was using a hybrid model in which the C runtime was installed by installers for the various C programs you installed on your computer, but into a location that Windows Update knew about, and it kept it updated once it was there < 1629680154 695386 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :but just having one copy that's kept updated by the OS makes a lot more sense < 1629681949 311492 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :I think one of the worst things about C is the confusing syntax for types. Although, there are also many features that I like about C that the other ones are not doing. < 1629682013 630440 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :One thing I like about C is the macros, and also that it doesn't use Unicode < 1629682190 698158 :oerjan!oerjan@sprocket.nvg.ntnu.no JOIN #esolangs oerjan :Ørjan Johansen < 1629682679 718030 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :It had a secret mini-CRT for a long time, right? < 1629682698 619630 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Apparently since Windows 98 or so? < 1629682705 875746 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :I mean msvcrt.dll. < 1629682734 732940 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :ais523: I thought that was always the model, but you didn't get a libc newer than the Windows version that way, while programs wanted to work on older versions of Windows, so they installed the libc anyway < 1629682776 160040 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :and since like Windows 7, Windows update installs future versions of the runtime too in updates < 1629682788 765842 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :shachaf: yes, it was used internally by the OS < 1629682792 754958 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :but this is just a vague impression, it's probably not accurate < 1629682811 792958 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :and was very similar to a libc, but had a few bizarre differences, just different enough to break C programs that weren't aware of them < 1629682832 755437 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :I think the most famous is snprintf returning 0 if the number of characters which would be printed were too long for the buffer < 1629682836 415945 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :or maybe -1 < 1629682881 476439 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :somewhere I have an snprintf wrapper that allocated a larger buffer and tries again if snprintf returns an impossible value, so that it'll work with msvcrt.dll < 1629682912 658909 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :(obviously, having snprintf return the expected buffer length itself is much more useful…) < 1629683029 426717 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :whereas the MSVC library has a version that prints floating point numbers in a way that doesn't match C99 or gnu libc, and since implementing formatting floating point is so hard, a lot of programs use it as the backend for formatting floats, sometimes even with a fixup to print floating point numbers the usual way < 1629683048 905205 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :usual for C99 that is, Windows libc might have priority < 1629683094 305408 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :it's so odd, I wish the libc makers could cooperate to fix this somehow, like by introducing a low-level function that formats floats always in the unix/C99 way < 1629683107 304335 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :it doesn't even have to be a full printf function < 1629683107 886092 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :I think libc should be split into two parts < 1629683125 226130 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :one of which just does system calls / OS interaction with minimal logic (only just enough to smooth out differences between OSes) < 1629683130 496183 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :and the other part is platform-independent < 1629683143 621061 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :of course if they do it now, it will only get a use ten years later, but software developers don't have term limits and regular elections < 1629683159 807137 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :it's weird that if you want, say, a portable fopen(), you also need to pull in a strlen() too < 1629683213 764477 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :at a previous job, my boss asked me why his Haskell program was getting affected by libc buffering when it wasn't written in C < 1629683237 390737 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :I had to explain that most programming languages went via C to interface with the operating system because it's simpler than writing code to interface with every operating system yourself < 1629683238 120302 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esolangs :. o O ( should software developers also be changed like diapers? ) < 1629683251 525523 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esolangs :(and politicians) < 1629683294 80729 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esolangs :ACTION gets a deja vu about ais523's last anecdote < 1629683309 59144 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :oerjan: do you mean changed that frequently, or changed when they stink, or treated as identical throwaway ones? < 1629683334 65748 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :Go is a notable exception < 1629683341 168989 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esolangs :well for politicians, ALL OF THE ABOVE obviously < 1629683387 925010 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :also Rust makes it pretty easy to use a statically linked musl instead of system libc < 1629683408 487382 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :huh, I just realised that I don't know how stdbuf worked < 1629683426 248275 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :I assumed it did something to the file handle at the OS level, but that doesn't make sense because stdio buffering is a libc thing, not an OS thing < 1629683450 591836 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esolangs :for developers, i may not have been entirely serious. < 1629683484 722878 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :huh i didn't know about stdbuf until just now < 1629683487 540124 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :I just looked at the source: it's an LD_PRELOAD trick < 1629683490 476349 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :i assume it... yeah < 1629683498 907706 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :so presumably it's replacing parts of stdio < 1629683510 999153 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :either shim the libc functions or just insert some code which calls whatever libc functions set the buffer mode < 1629683540 721650 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :NOTE: If COMMAND adjusts the buffering of its standard streams ('tee' does for example) then that will override corresponding changes by 'stdbuf'. Also some filters (like 'dd' and 'cat' etc.) don't use streams for I/O, and are thus unaffected by 'stdbuf' settings. < 1629683571 801011 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :hmm < 1629683579 752343 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :I hadn't heard of stdbuf until today < 1629683609 167115 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :why isn't that done with libc supporting it directly somehow so that stdbuf just has to pass it the information somewhere? < 1629683630 485950 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :I mean on Linux at least < 1629683642 120943 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :with some sorts of input and output filehandles, pv doesn't actually do any reading and writing at all, just tells the kernel to move information around internally and counts how much information moved < 1629683660 651887 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :what is pv? < 1629683674 24409 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :b_jonas: would have to be an environment variable, I think, and having lots of undocumented environment variables is a security risk < 1629683677 574887 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :pv measures the speed of a pipe < 1629683690 366451 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :like, counts the bytes going through < 1629683713 639391 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :basically cat with a progress bar < 1629683867 194950 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :ais523: that's true, though LD_PRELOAD env-var is documented in ld.so(8), TERMINFO_DIRS is docuemnted in terminfo(5), LOCPATH is documented in locale(7), and all those are security risks. < 1629683889 711456 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :I wonder if there is some better way to pass that information for stdbuf that is less of a security risk < 1629683906 309465 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :but I'm not sure what it could be < 1629683963 417800 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :I think it'd have to be some sort of fcntl that only existed for stdio's benefit < 1629683969 872195 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :a "suggested buffering behaviour" or such < 1629683974 865052 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :I don't think there's a way to create a kernel level file description that behaves like a normal one in general but has some auxiliary information that the child can extract. < 1629683981 983903 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :ais523: yeah < 1629683991 514582 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :or more likely a general one to attach hints < 1629684076 816230 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :I had before had a few different ideas which can be used for this < 1629684083 688841 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :(other uses are also possible) < 1629684101 233335 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :I guess you could use a lopp device, that can wrap some existing file descriptors, though perhaps not all types that are readable or writable < 1629684142 918664 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :that couldn't remove buffering, only add it (unless stdio knew that writes to that sort of loop device shouldn't be buffered) < 1629684144 33941 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :except I think that's super-user only < 1629684159 733632 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :ais523: no, I mean you could more easily attach hint information to that < 1629684176 261557 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :and since it's a device, it will be unbuffered by default < 1629684190 725085 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :or wait < 1629684196 211027 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :is that only char devices, not block devices? < 1629684233 551974 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :the problem with using devices for this is that they need device numbers, which are in limited supply < 1629684262 515854 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :also I thought it was specifically ttys that had weird buffering behaviour, but even then, writes to ttys are line-buffered by stdio < 1629684298 473158 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :One idea might be if the C library would read a environment variable and set them (unless overridden), but then the C library must be written to take advantage of that. There is also the case of file descriptors; possibly allowing file descriptors to be attached somehow (and for this attachment to be visible in /proc) < 1629684310 710120 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :not even that. libc docs says "Newly opened streams are normally fully buffered, with one exception: initially line buffered." < 1629684331 803644 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :ais523: yes, specifically terminal devices < 1629684447 460348 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :well this stdbuf is an esoteric hack I guess, one that you hopefully don't need because programs where you may want to change the buffering have that built-in as an option < 1629684569 495547 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :it's a handy hack to know < 1629684582 611604 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :now i'm wondering if it could generalize to some 'run these libc calls before main()' type of wrapper < 1629684587 694626 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :which could actually probably be a gdb script < 1629684638 374786 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :Free Hero Mesh does flush or disable buffering in some cases in order to allow ts to be used to time parts of the program. < 1629684649 682125 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :btw I dreamt of a kernel feature where there's a Linux namespace such that different namespaces can have different wall clocks, differing not just in the timezone (which is mainly a user-space thing and can already be overridden with an env-var) but different offset and speed correction and even different idea of which months have leap seconds. this would probably be more esoteric than useful. < 1629684668 857310 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :there is an old libc hack to try to convince a process that the time is what you say it is < 1629684681 68877 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :was this from an actual dream < 1629684689 829193 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :keegan: more like a daydream < 1629684698 530992 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :but it's so old that I think it predates clock_gettime < 1629684726 732592 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :this would be useful for running programs reproducibly < 1629684739 607772 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :I think I saw once a program that can do that, and I think that the system emulation interface should be designed to allow this including stealthy. < 1629684742 714282 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :ais523: perhaps, but it's not really enough for that < 1629684742 727390 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :although I think leap seconds are mostly handled in userspace? < 1629684766 147575 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :ais523: yes, I think they're handled by the same daemon that synchronizes time to NTP < 1629684771 360826 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :on Linux that is < 1629684788 440301 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :I don't think the kernel knows about them < 1629684800 977095 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :but I could be wrong here < 1629684854 186479 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :running programs reproducibly is really hard these days if you want any kind of performance < 1629684900 490492 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :because the CPU itself doesn't aim to run things completely reproducibly < 1629684912 127796 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :Swiss Ephemeris has its own handling of leap seconds (since it is necessary to know about past and future leap seconds), in order to convert between UTC and ephemeris time < 1629684939 459397 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :It is something I thought of, design the CPU instruction set with the idea that you can run programs completely reproducibly < 1629685039 648203 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :zzo38: perhaps a CPU could provide such a mode, but it's not easy < 1629685047 462140 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :I think on modern x86, the vast majority of commands are intended to be reproducible in register/memory effect, if not timing < 1629685063 141439 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :and most of the others have options to disable them or emulate in software < 1629685080 34602 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :the main lack of reproducibility comes to things like the sequence in which multiple threads are interleaved < 1629685153 489628 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :ais523: perhaps, but there are all sorts of ways to leak informaton about caching and timing and speculation, some of them deliberately intended for measuring performance and microoptimzing your code, some just incidentally exposing something like the software transactional memory instructions which are used to implement mutexes and the like, and you can just ask for the time or randomness deliberately < 1629685204 720174 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :and the OS not being reproducible adds to that cake, because a program can tell if a page is swapped in or not if it wants to < 1629685207 771277 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :and more < 1629685287 692207 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :RDTSC and RDRAND can both be switched off I think < 1629685304 323859 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :and most (but probably not all) of the side-channels come down to timing < 1629685458 522914 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :Including fake timing if needed, and designing the rest of the system to support this too, including the BIOS. Also excluding much of the complexity of modern systems, such as out of order execution, automatic caching, etc < 1629685471 31904 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :I did sort of wonder what it would take to make an interpreter that aims to be reproducible, even on different hardware, slower than native code but still performant enough. Mostly for the purpose of being able to run user-submitted code like bfjoust and get a deterministic result. The hard part is that need to decide when the code is terminated with a timeout, reproducibly and without overhead, without < 1629685476 976188 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :assuming that every single memory access has to go to the main memory without caches. < 1629685545 363128 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :ais523: can the OS disable software transactional memory? all debugging and peformance thingies? checking what pages are swapped in is fixable if you don't allow swapping any of the pages I guess. < 1629685591 291128 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :performance counters and debugging variables can definitely be made inaccessible from userspace (in fact, I think they are by default, and gdb has to ask the kernel to set the debugging variables for it) < 1629685632 504786 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :software transactional memory, I'm not sure on, IIRC the current Intel implementation is buggy anyway and so it gets switched off entirely in BIOS or microcode or somewhere like that < 1629685639 377128 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :(not sure if they've fixed it yet) < 1629685667 425589 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :hmm < 1629685710 746917 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :zzo38: out of order execution is interesting, in that it's in theory possible to write programs to not need it simply by reordering the commands, but modern processors pretty much have to implement it so that compilers don't need to generate specific code for every processor model < 1629685753 172230 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :ais523: what do you do with detecting what's in the various code caches using ill-advised self-modifying code? < 1629685756 182693 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :as for caching, processors would probably be faster with manual caching in many cases < 1629685758 829156 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :oh wait, that might not work < 1629685768 47938 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :b_jonas: that causes a machine nuke nowadays if you try to do it < 1629685770 764104 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :hmm < 1629685772 402855 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :very slow, but deterministic < 1629685798 213632 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :yeah, on x86 it's probably deterministic enough < 1629685803 728930 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :(where by "very slow" I mean tens of processor cycles, plus however long it takes to re-fetch the code from memory, so not all that slow in an absolute sense) < 1629685814 414182 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :(at least for things that you can do in userspace) < 1629685875 902317 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :interesting, this makes it sound less hopeless than I thought < 1629685881 430556 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :I don't know whether verr/verw (the "check which pages are swapped in" commands) are disabled < 1629685898 16875 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :* can be disabled < 1629685899 932780 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :ais523: you can just disable caching for that < 1629685901 262573 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :they are used very rarely, tohugh < 1629685922 330709 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :um < 1629685923 902055 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :also, swapping is under kernel control (not processor control), so you could just swap deterministically if you wanted to < 1629685924 546935 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :disable swapping < 1629685933 517607 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :you can actually disable caching < 1629685937 578284 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :you probably shouldn't, but it's *possible* < 1629685945 312489 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :yes, but here I meant disable swapping < 1629685988 415642 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :one thing that is missing in the x86 instruction set is a way to tell it "I'm no longer using this memory and don't care if you put arbitrary data in it" < 1629686004 896697 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :this would be useful to let it know that it doesn't have to write its caches back to memory < 1629686017 853084 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :yeah < 1629686020 556736 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :(although it would provide side-channel opportunities) < 1629686022 405771 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :well < 1629686043 157165 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :I guess there's INVD but that affects all memory on the entire system, which isn't the most useful operation :-D < 1629686052 541191 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :(and it's ring 0 for obvious reasons) < 1629686134 456681 :delta23!~delta23@user/delta23 QUIT :Quit: Leaving < 1629686150 781482 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :that doesn't seem like a thing you'd often want to do < 1629686158 492583 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :I mean for all memory in the system < 1629686167 511369 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :for a specific cache line it would be useful < 1629686366 5191 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :it doesn't seem useful to me either < 1629686461 507126 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :there is a way to disable RDTSC, but can you disable RDRAND or RDSEED in a sane way? < 1629686499 731851 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :hmm, maybe not < 1629686533 261057 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :there's probably some insane way to disable it, intended only for debugging or performance monitoring or virtual machines or reflushing the BIOS < 1629686553 599242 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :"rdrand" doesn't appear anywhere in the documentation of the various processor bits that can be messed with by the OS < 1629686566 355028 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :although, this is some fairly old docs I'm looking at < 1629686572 944040 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :(I grepped it, didn't search manually) < 1629686683 490459 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :presumably you'd also have to make sure the program isn't interrupted by signals in a nondeterministic way, and terminated on some fatal conditions like segfaults < 1629686707 62094 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :signals generated by the processor are very, very deterministic on x86 < 1629686724 632672 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :to the extent that it's documented which order they get delivered in if multiple signals are generated simultaneously < 1629686727 609718 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :and even then I wonder if there might be detectable side-effects from hardware interrupts that aren't related to the process at all < 1629686751 891872 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :hardware interrupts relative to software execution are a lot less deterministic, obviously < 1629686766 857480 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :ais523: yes, but only if the signals are triggered at exactly the same time, which you can't do if you want to allow the underlying process to have varying timing < 1629686856 817327 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :well, it matters if they're triggered by the same instruction < 1629686898 113886 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :a common example is simultaneous page fault and general protection fault, if a userspace program tries to use a kernelspace command on memory it can't access < 1629686910 933384 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :well, not common, I doubt that happens in practice very often < 1629686920 438123 :b_jonas!~x@catv-176-63-12-67.catv.broadband.hu PRIVMSG #esolangs :hmm, maybe that's not too serious and they don't have detectable side effects in your user program if you're careful < 1629686921 649448 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :but common in that it doesn't take much setup and there are lots of ways to do it < 1629687773 663766 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :I didn't like there are too many functions for making new file descriptors, and I would remove most of them; for many cases openat can be used, and sometimes newfd. (This simplifies overriding them or recording the used file descriptors, and other things too) < 1629688182 420305 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :what is newfd? I don't have a manual page for it < 1629688217 350455 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :at least there isn't a creatat (openat can do the same thing) < 1629688787 743928 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :It is my own idea; it causes the next file descriptor to use the specified number (even if it is already in use) instead of assigning one automatically < 1629692089 854225 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :I don't think that's thread-safe, because another thread might open an FD in between the newfd and openat calls < 1629692128 778968 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :maybe the desired FD number should be an argument to openat? < 1629692147 548307 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :(alternatively, you could go the other way, where FD numbers don't follow any pattern at all and are arbitrary; this is what WebAssembly does) < 1629692853 489469 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :That seems like a good way to me. < 1629692866 813306 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :It's what Windows does, I guess. How does Windows handle standard descriptors like stdout? < 1629693843 306094 :oerjan!oerjan@sprocket.nvg.ntnu.no QUIT :Quit: Nite < 1629693897 837216 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :I think being able to override specific existing file descriptors is useful. Although, making it a argument of openat (and -1 meaning automatic) will work too. < 1629693899 682929 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :the libc file descriptor layer maps the stdin, stdout, and stderr file handles (which can be retrieved from GetStdHandle()) to file descriptors 0, 1, and 2 < 1629693929 374295 :citrons!~citrons@alt.mondecitronne.com JOIN #esolangs * :citrons < 1629693937 356757 :fungot!fungot@2a01:4b00:82bb:1341::a QUIT :*.net *.split < 1629693937 580731 :citrons_!~citrons@alt.mondecitronne.com QUIT :*.net *.split < 1629693940 648619 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :GetStdHandle, got it. < 1629693943 765714 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :(since on Windows, file descriptors aren't an OS-level feature at all, they're just an API that libc implements on top of the Win32 API) < 1629693977 343124 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Sure, I didn't mean file descriptors, I meant how you get the handle to stdout at all. < 1629694000 22739 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :ah, fair < 1629694000 967557 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :I guess GetCurrentProcess is similarly a way to get a handle to the current process. < 1629694008 368369 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :yep < 1629694017 921642 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :So you just have known calls that get handles. That seems fine. < 1629694037 856481 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :It probably makes sense to have handles be arbitrary, and then have special ways to get special ones. < 1629694068 508499 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :it is the typical windows thing -- rather than having fixed constants or parameters to main or globals or something, you've got functions that retrieve opaque handles you can operate on < 1629694091 552032 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Seems fine to me. < 1629694093 2475 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :to be entirely fair, while it is weird to me coming from a unix mindset, it is not at all an unreasonable way of doing things < 1629694096 469962 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :You could also have a known region of memory. < 1629694099 651371 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :It's not all that weird. < 1629694107 138560 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :It's like auxvals in Linux for instance. < 1629694121 377247 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :You could imagine having the file descriptors for in/out/err stored there. < 1629694129 617734 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :i also think those are weird :p < 1629694130 552060 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca QUIT :*.net *.split < 1629694130 789826 :Riviera!Riviera@user/riviera QUIT :*.net *.split < 1629694138 758532 :Riviera_!Riviera@user/riviera JOIN #esolangs Riviera ::) < 1629694169 700328 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca JOIN #esolangs * :zzo38 < 1629694186 540639 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :ACTION shrugs < 1629694196 425495 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :All of them? < 1629694267 858088 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :auxvals as a concept, yeah. it's just a slightly odd additional mechanism, although i understand exactly why you'd do it < 1629694304 506609 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :How about argv and envp? < 1629694405 791347 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :I think probably the requested number (or -1) as the argument of openat is probably good. Also you can have POSIX compatibility (in the C standard library) in this way, and can make new specific numbes if you need that for some reason passing between programs, too. (Maybe it could also be usable for argv and envp too; I don't know) < 1629694433 469572 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :the thing that makes auxvals kinda weird (at least to me) is that they aren't parameters to main() but they are parameters to _start < 1629694469 582230 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Oh, well, main is a nonsense lie. < 1629694489 371647 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :I did say Linux, so the ABI I have in mind is the one the kernel sets up. < 1629694503 101739 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :i know that main isn't the actual entry point, but it is the actual API contract :P < 1629694520 551156 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :although to be sure the ELF entry point is also a hard API contract < 1629694534 412676 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Statically linked programs are where it's at. < 1629694566 385963 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :main is a libc API, and I'm not a big fan of libc. < 1629694570 184685 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :(and even a portable one! this isn't Linux-specific, it's an ELF thing!) < 1629694636 54995 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :it is but you're gonna have a hard time using any external libraries without libc (and writing to the raw Linux syscall interface has some really counterintuitive edge cases if you're more familiar with POSIX semantics) < 1629694684 452230 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :of course, if you actually are static linked, you are probably in sufficient control of what you depend on that you can just... not worry about that < 1629694736 227977 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :The only external libraries I'm worried about are things like OpenGL where you have no choice but to use libc. < 1629694789 710278 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :For the most part the raw Linux interface seems much better and more usable than the libc interface. < 1629694797 671669 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :yeah that's the main example where it's a necessity rather than convenience < 1629694853 460351 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :For example: ptrace(PTRACE_PEEKDATA) (and getpriority/nice) < 1629694870 961183 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :ppoll's remaining timeout return value < 1629694891 924477 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :glibc used to *emulate* ppoll in userspace when the system call failed with ENOSYS, defeating the entire purpose of using ppoll. < 1629694915 900041 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :The waitid() system call has a fifth argument but glibc hides it for no reason and makes you use deprecated calls to get at it. < 1629694947 649915 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :The whole errno deal, of course. < 1629694966 777837 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :and then there's setuid. POSIX setuid sets the effective uid of the process. Linux setuid sets the effective uid of the thread, and now you have different privileges coexisting in your process < 1629694987 296557 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :pthread_create probably wins over doing it yourself with clone, which is admittedly pretty awkward. < 1629695116 309469 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :I imagine almost all cases of setuid are single-threaded anyway. < 1629695135 821678 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :But that's good to know. Looking at musl, it just kills the current process if it fails to setuid on all threads. < 1629696782 405131 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :99% of the uses of setuid are dropping permissions, rather than raising them < 1629696802 861376 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :and I think it's plausible to want to drop permissions on some threads and not others, although it might make it hard for them to communicate with each other < 1629696874 370938 :ais523!~ais523@109.249.181.78 PRIVMSG #esolangs :(although, there are probably better permission models than the UNIX model) < 1629697434 912709 :ais523!~ais523@109.249.181.78 QUIT :Quit: quit < 1629698169 112587 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :Which pokemon rule options are missing/wrong? http://zzo38computer.org/misc/option.html < 1629698226 74632 :PinealGlandOptic!~PinealGla@37.115.210.35 JOIN #esolangs * :Pineal Gland Optics < 1629698984 129094 :mnrmnaugh!~mnrmnaugh@68.162.206.56 JOIN #esolangs mnrmnaugh :realname < 1629699114 280605 :mnrmnaugh!~mnrmnaugh@68.162.206.56 QUIT :Client Quit < 1629701054 705746 :imode!~imode@user/imode QUIT :Ping timeout: 250 seconds < 1629701156 337208 :op_4!~op_4@user/op-4/x-9116473 QUIT :Ping timeout: 252 seconds < 1629701284 781184 :immibis!~hexchat@62.156.144.218 JOIN #esolangs immibis :realname < 1629701756 60972 :Sgeo!~Sgeo@user/sgeo QUIT :Ping timeout: 268 seconds < 1629705946 638954 :hendursa1!~weechat@user/hendursaga JOIN #esolangs hendursaga :weechat < 1629706136 646680 :hendursaga!~weechat@user/hendursaga QUIT :Ping timeout: 244 seconds > 1629712824 437998 PRIVMSG #esolangs :14[[074BOD14]]4 10 02https://esolangs.org/w/index.php?diff=87541&oldid=85372 5* 03WallGraffiti 5* (+100) 10 > 1629712947 276487 PRIVMSG #esolangs :14[[074BOD14]]4 M10 02https://esolangs.org/w/index.php?diff=87542&oldid=87541 5* 03WallGraffiti 5* (+42) 10 < 1629713937 494328 :arseniiv!~arseniiv@94.41.82.46.dynamic.ufanet.ru JOIN #esolangs * :the chaotic arseniiv < 1629714927 164055 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu JOIN #esolangs * :[https://web.libera.chat] wib_jonas < 1629715061 637445 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :" I think libc should be split into two parts" => the problem is that libc has to be compatible with its old versions for a very long time, so it gathers lots of historical cruft that obviously shouldn't be there but we can't just remove it now < 1629715081 475128 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :so some of what is and isn't in libc is partly accidental < 1629715143 579738 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :and as for libc buffering of file handles, some programming language standard libraries actually reimplement it, rather than just forward the C thing. < 1629715239 660806 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :the guaranteed sequential file descriptors in unix is also something we can't do much about. we can add a flag like O_CLOEXEC where the process tells the kernel that it doesn't require sequential file descriptor number, but we can't change the existing ABI\ < 1629715361 444873 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :zzo38: as for more explicit control of memory caching, one thing I was wondering is if a CPU or virtual machine specialized on this could have, instead of a single eight-way L1D cache, a separate one-way L1D cache per index register, and every reference to data memory would use the L1D cache associated with the index register that is the base of < 1629715361 943481 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :the memory address, at least by default < 1629715427 388456 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :of course the problem then is what happens when you try to write a memory address through multiple index registers < 1629715603 895532 :river!~river@tilde.team/user/river PRIVMSG #esolangs :I wonder why we need things like libc to be compatable < 1629715615 17442 :river!~river@tilde.team/user/river PRIVMSG #esolangs :all software is being constantly "maintained" < 1629715664 352582 :river!~river@tilde.team/user/river PRIVMSG #esolangs :so if libc changed they could just sort problems that come up, they probably wouldn't even notice a difference from normal maintanance < 1629715675 60377 :river!~river@tilde.team/user/river PRIVMSG #esolangs :maintenance* < 1629715727 863837 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esolangs :"all software is being constantly maintained" hahahahahahaha < 1629715749 554155 :PinealGlandOptic!~PinealGla@37.115.210.35 QUIT :Quit: leaving < 1629716269 972687 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esolangs :i am actively using a software that is abandoned for 6 years now < 1629716473 449934 :int-e!~noone@int-e.eu PRIVMSG #esolangs :is it Windows 7 ;-) < 1629716519 349941 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esolangs :no < 1629717060 12561 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :an Android phone_ < 1629717063 106519 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :? < 1629717130 98094 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esolangs :a linux software < 1629720829 882767 :nakilon!~nakilon@user/nakilon PRIVMSG #esolangs :no way, linux is maintained by paid employees of a Linux megacorporation in the Silicon Valley; oh wait... < 1629720890 941128 :nakilon!~nakilon@user/nakilon PRIVMSG #esolangs :btw, want to share two news about videogames < 1629720902 632305 :nakilon!~nakilon@user/nakilon PRIVMSG #esolangs :1. OpenTTD is now in Steam < 1629720920 356914 :nakilon!~nakilon@user/nakilon PRIVMSG #esolangs :2. Stray - Official Gameplay & Release Window Trailer https://www.youtube.com/watch?v=P4l6uWxe-vk < 1629721054 609173 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :nakilon: OpenTTD is also in Debian, which just released a new major release, so you get a reasonably up to date version of OpenTTD if you install from there. or you can just download a binary from https://www.openttd.org/downloads/openttd-releases/latest.html < 1629721067 811361 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :(sorry, I don't like Steam) < 1629721121 382417 :nakilon!~nakilon@user/nakilon PRIVMSG #esolangs :looks liek it's even here https://formulae.brew.sh/formula/openttd < 1629721156 442395 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :I have compiled the openttd executable from source, so I know that works, but that was many years ago < 1629721163 538719 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :these days I just run a binary < 1629721365 837435 :nakilon!~nakilon@user/nakilon PRIVMSG #esolangs :steam is handy -- you can see what your friends are playing and jump into multiplayer with them without leaving the game and registering more accounts around the web < 1629721431 124260 :nakilon!~nakilon@user/nakilon PRIVMSG #esolangs :also a handy way to save and share game screenshots < 1629721433 247104 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs : at a previous job, my boss asked me why his Haskell program was getting affected by libc buffering when it wasn't written in C – Probably it wasn’t, but everything does buffering because not buffering performs badly *except* for terminal interaction. Furthermore, ttys themselves distinguish raw (unbuffered) and cooked (line-buffered) mode for input only, so everything has to have < 1629721435 319384 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs :those three buffering modes on at least certain handles. < 1629721627 57625 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs :Regarding the whole discussion of processor determinism, I was reminded of https://queue.acm.org/detail.cfm?id=3212479 (“Your computer is not a fast PDP-11”). < 1629721702 345731 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs : I think being able to override specific existing file descriptors is useful. – That’s what dup2/dup3 is for, isn’t it? < 1629722458 210026 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :Hey, that's that cat game. < 1629722839 308837 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :(Stray, I mean; I don't think OpenTTD has any cats. You probably couldn't really see them, the scale it's at.) < 1629722980 658810 :hendursa1!~weechat@user/hendursaga QUIT :Quit: hendursa1 < 1629723018 634406 :hendursaga!~weechat@user/hendursaga JOIN #esolangs hendursaga :weechat < 1629723947 589659 :nakilon!~nakilon@user/nakilon PRIVMSG #esolangs :I wonder if some moments in that trailer are scripted or not < 1629723970 137000 :nakilon!~nakilon@user/nakilon PRIVMSG #esolangs :such as when dude goes backward into a room and bumps into another one < 1629724066 290670 :nakilon!~nakilon@user/nakilon PRIVMSG #esolangs :s/if/whether , right? < 1629724160 873366 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esolangs :nakilon: i said linux software, not the kernel < 1629724190 970629 :nakilon!~nakilon@user/nakilon PRIVMSG #esolangs :same world < 1629724204 637935 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esolangs :uh, no < 1629724228 841727 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esolangs :not every oss project in existence is maintained by the linux foundation < 1629724929 399671 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf < 1629725202 191928 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esolangs :ah nvmd < 1629725891 978144 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :how much category theory does fungot know? did he pick some up on the channel when you prepared all those models < 1629726096 989348 :river!~river@tilde.team/user/river PRIVMSG #esolangs :fungot: know category theory? < 1629726427 613254 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :Wait, where's fungot? < 1629726483 504616 :int-e!~noone@int-e.eu PRIVMSG #esolangs :@seen fungot < 1629726483 589470 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esolangs :I saw fungot leaving #esolangs 9h 2m 25s ago. < 1629726483 972316 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :missing because of the pandemic probably < 1629726554 181574 :int-e!~noone@int-e.eu PRIVMSG #esolangs :fizzie: libera rebooted two servers around that time, maybe fungot was on one of those < 1629726564 45763 :fungot!fungot@2a01:4b00:82bb:1341::a JOIN #esolangs fungot :fungot-0.1 < 1629726610 521432 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :Yep. This time it had reconnected, but not rejoined because it doesn't know how to. < 1629726875 538680 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :int-e: Wait, @seen is back? < 1629726884 184106 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Wasn't it broken for a decade or two? < 1629726937 289588 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :no idea < 1629726944 100439 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :@seen @seen < 1629726944 162857 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esolangs :I haven't seen @seen. < 1629726964 235104 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :@seen seen < 1629726964 314460 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esolangs :I haven't seen seen. < 1629726971 162805 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :`? whatis seen < 1629726972 696294 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :whatis seen? ¯\(°​_o)/¯ < 1629726975 879981 :int-e!~noone@int-e.eu PRIVMSG #esolangs :shachaf: I had it disabled for a long time because it caused lambdabot to use noticably more memory, possibly leaking memory as well (though I never quite proved that) < 1629726977 14936 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :`whatis seen < 1629726978 37766 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :seen(1hackeso) - no description < 1629727007 548174 :int-e!~noone@int-e.eu PRIVMSG #esolangs :it made the difference between it becoming unresponsive and needing a restart every week and it being stable for basically forever, subject to network troubles < 1629727052 811796 :int-e!~noone@int-e.eu PRIVMSG #esolangs :I fixed some shortcomings but mostly it's on a larger VM now where this is less of an issue. < 1629727056 286094 :int-e!~noone@int-e.eu PRIVMSG #esolangs :ACTION shrugs < 1629727252 282467 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Quit: impomatic < 1629727274 280835 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf < 1629727523 881315 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Client Quit < 1629727546 236439 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf < 1629727836 199738 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :int-e: like stalker mode for fizzie? < 1629728339 499844 :Sgeo!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname < 1629728452 24187 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Quit: impomatic < 1629728474 324866 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf < 1629728732 418514 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Client Quit < 1629728753 447233 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf < 1629729133 723137 :imode!~imode@user/imode JOIN #esolangs imode :imode < 1629729352 267613 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Quit: impomatic < 1629729372 461278 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf < 1629729623 570084 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Client Quit < 1629729645 344426 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf < 1629729684 617007 :Noisytoot!~noisytoot@sourcehut/user/noisytoot PRIVMSG #esolangs :wib_jonas, OpenTTD is also packaged in GNU Guix and probably many other distributions < 1629730769 892555 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esolangs :even nixos has a package for it < 1629730838 327812 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esolangs :guix reads pretty similar to nixos < 1629730893 160509 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :Is that surprising? nixpkgs is basically the biggest public ports tree, although I'd love to learn of bigger ones. < 1629730940 619613 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :https://repology.org/graph/map_repo_size_fresh.svg I still love this plot. Comparison of various distros and ports trees based on number of packages and number of "fresh" up-to-date packages. < 1629731296 597502 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :Corbin: only in the sense that the tireless contributors to OpenTTD managed to replace the original graphics from TTD and provide free graphics, so it's now free software enough even for Debian's standards, unlike the early versions. < 1629731653 111602 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net PRIVMSG #esolangs :wib_jonas: Oh, that makes sense. Congratulations to them; it must have been a lot of work. < 1629732052 209608 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Quit: impomatic < 1629732073 200641 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf < 1629732323 397910 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Client Quit < 1629732343 199663 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf < 1629733276 495006 :Koen_!~Koen@76.161.9.109.rev.sfr.net JOIN #esolangs * :Koen < 1629733532 199761 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Quit: impomatic < 1629734229 867201 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf < 1629734489 896484 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Client Quit < 1629734506 841022 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf < 1629734790 620713 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu QUIT :Quit: Client closed < 1629735716 661107 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Quit: impomatic < 1629735737 665722 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf < 1629735987 932132 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Client Quit < 1629736007 667606 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf < 1629736616 147237 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Quit: impomatic < 1629736636 439602 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf < 1629736888 15591 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Client Quit < 1629736908 444256 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf < 1629737516 251067 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Quit: impomatic < 1629737538 238540 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf < 1629737787 361505 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Client Quit < 1629737808 217285 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf < 1629738116 275008 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Quit: impomatic < 1629738138 409257 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf < 1629738387 551224 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Client Quit < 1629738408 498647 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf > 1629738842 197442 PRIVMSG #esolangs :14[[07Special:Log/upload14]]4 upload10 02 5* 03Jdonszelmann 5* 10uploaded "[[02File:Collatz.png10]]" < 1629738898 341417 :Trieste!T@user/pilgrim QUIT :Ping timeout: 240 seconds < 1629738942 272511 :Trieste!T@user/pilgrim JOIN #esolangs pilgrim :T > 1629739034 916474 PRIVMSG #esolangs :14[[07TRAIN!14]]4 N10 02https://esolangs.org/w/index.php?oldid=87544 5* 03Jdonszelmann 5* (+8291) 10TRAIN! is a programming language centered about trains moving passengers with data around stations which apply operations. > 1629739091 763404 PRIVMSG #esolangs :14[[07TRAIN!14]]4 10 02https://esolangs.org/w/index.php?diff=87545&oldid=87544 5* 03Jdonszelmann 5* (-5) 10 > 1629739271 28048 PRIVMSG #esolangs :14[[07TRAIN!14]]4 M10 02https://esolangs.org/w/index.php?diff=87546&oldid=87545 5* 03Jdonszelmann 5* (-10) 10 < 1629742016 217695 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Quit: impomatic < 1629742037 307171 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf < 1629742287 608507 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Client Quit < 1629742310 300121 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf > 1629744466 497062 PRIVMSG #esolangs :14[[07Mogus14]]4 N10 02https://esolangs.org/w/index.php?oldid=87547 5* 03VilgotanL 5* (+1201) 10mogus > 1629744529 971350 PRIVMSG #esolangs :14[[07Mogus14]]4 M10 02https://esolangs.org/w/index.php?diff=87548&oldid=87547 5* 03VilgotanL 5* (+1) 10fix minor bug > 1629744797 273839 PRIVMSG #esolangs :14[[07Mogus14]]4 M10 02https://esolangs.org/w/index.php?diff=87549&oldid=87548 5* 03VilgotanL 5* (+158) 10 > 1629744814 776085 PRIVMSG #esolangs :14[[07Mogus14]]4 M10 02https://esolangs.org/w/index.php?diff=87550&oldid=87549 5* 03VilgotanL 5* (+6) 10 > 1629745075 89856 PRIVMSG #esolangs :14[[07Mogus14]]4 M10 02https://esolangs.org/w/index.php?diff=87551&oldid=87550 5* 03VilgotanL 5* (+226) 10 < 1629745097 894418 :sknebel!~quassel@v22016013254630973.happysrv.de QUIT :Remote host closed the connection < 1629745172 511913 :sknebel!~quassel@v22016013254630973.happysrv.de JOIN #esolangs sknebel :sknebel < 1629745927 519868 :arseniiv!~arseniiv@94.41.82.46.dynamic.ufanet.ru QUIT :Ping timeout: 240 seconds > 1629746438 592657 PRIVMSG #esolangs :14[[07Malfunge14]]4 N10 02https://esolangs.org/w/index.php?oldid=87552 5* 03ArthroStar11 5* (+2607) 10created page and provided link to my interpreter > 1629746522 938506 PRIVMSG #esolangs :14[[07Language list14]]4 M10 02https://esolangs.org/w/index.php?diff=87553&oldid=87538 5* 03ArthroStar11 5* (+15) 10Added my language "Malfunge" > 1629746610 588637 PRIVMSG #esolangs :14[[07User:ArthroStar1114]]4 10 02https://esolangs.org/w/index.php?diff=87554&oldid=86412 5* 03ArthroStar11 5* (+131) 10 > 1629746666 628920 PRIVMSG #esolangs :14[[07Malfunge14]]4 M10 02https://esolangs.org/w/index.php?diff=87555&oldid=87552 5* 03ArthroStar11 5* (+25) 10remembered to add "Implemented" category > 1629746777 484245 PRIVMSG #esolangs :14[[07Geolang14]]4 N10 02https://esolangs.org/w/index.php?oldid=87556 5* 03TJC games 5* (+538) 10Created page with "Geolang is a programming language made by [[user:TJC games|TJC games]] for helping with geometry. Who am I kidding, it is a stupid language made by a stupid person. ==Usage==..." < 1629747796 264426 :Lord_of_Life_!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord < 1629747854 731270 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Ping timeout: 250 seconds < 1629747873 364641 :Lord_of_Life_!~Lord@user/lord-of-life/x-2819915 NICK :Lord_of_Life < 1629748385 360756 :impomatic_!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf < 1629748507 494994 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Ping timeout: 240 seconds < 1629748507 647610 :impomatic_!~impomatic@host86-147-136-221.range86-147.btcentralplus.com NICK :impomatic < 1629748587 583414 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Client Quit < 1629748607 353983 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com JOIN #esolangs impomatic :John Metcalf > 1629748742 205750 PRIVMSG #esolangs :14[[07User:Oshaboy14]]4 10 02https://esolangs.org/w/index.php?diff=87557&oldid=83461 5* 03Oshaboy 5* (+508) 10 < 1629750241 269764 :impomatic!~impomatic@host86-147-136-221.range86-147.btcentralplus.com QUIT :Quit: impomatic > 1629752193 647907 PRIVMSG #esolangs :14[[07Malfunge14]]4 M10 02https://esolangs.org/w/index.php?diff=87558&oldid=87555 5* 03PythonshellDebugwindow 5* (+39) 10/* Implementation */ cAt > 1629752801 4546 PRIVMSG #esolangs :14[[07Sophie14]]4 M10 02https://esolangs.org/w/index.php?diff=87559&oldid=85358 5* 03Oshaboy 5* (+0) 10typo < 1629753060 645157 :user3456!user3456@user/user3456 QUIT :Ping timeout: 272 seconds < 1629753107 706652 :user3456!user3456@user/user3456 JOIN #esolangs user3456 :user3456 > 1629753782 325396 PRIVMSG #esolangs :14[[07Truthlang14]]4 N10 02https://esolangs.org/w/index.php?oldid=87560 5* 03Oshaboy 5* (+779) 10Initial > 1629753811 423052 PRIVMSG #esolangs :14[[07User:Oshaboy14]]4 10 02https://esolangs.org/w/index.php?diff=87561&oldid=87557 5* 03Oshaboy 5* (+37) 10Added Truthlang > 1629754031 111264 PRIVMSG #esolangs :14[[07Truthlang14]]4 10 02https://esolangs.org/w/index.php?diff=87562&oldid=87560 5* 03Oshaboy 5* (+50) 10I just realized an interpreter would be a Truth Machine. > 1629754184 399811 PRIVMSG #esolangs :14[[07Truthlang14]]4 10 02https://esolangs.org/w/index.php?diff=87563&oldid=87562 5* 03Oshaboy 5* (-50) 10Undo revision 87562 by [[Special:Contributions/Oshaboy|Oshaboy]] ([[User talk:Oshaboy|talk]]) > 1629754254 274282 PRIVMSG #esolangs :14[[07Truthlang14]]4 10 02https://esolangs.org/w/index.php?diff=87564&oldid=87563 5* 03Oshaboy 5* (+93) 10Truth Machines aren't Truthlang Interpreters > 1629754372 495214 PRIVMSG #esolangs :14[[07Truthlang14]]4 10 02https://esolangs.org/w/index.php?diff=87565&oldid=87564 5* 03Oshaboy 5* (+29) 10/* Overview */ < 1629754742 348876 :Koen_!~Koen@76.161.9.109.rev.sfr.net QUIT :Quit: Leaving... > 1629755100 324912 PRIVMSG #esolangs :14[[07Malfunge14]]4 M10 02https://esolangs.org/w/index.php?diff=87566&oldid=87558 5* 03ArthroStar11 5* (+150) 10Put in size of playfield. Sorry, it was a big project with a complex specification, I'm not trying to spam. > 1629757194 422854 PRIVMSG #esolangs :14[[07Scroll14]]4 10 02https://esolangs.org/w/index.php?diff=87567&oldid=87436 5* 03WreckingGames 5* (+1) 10 > 1629757283 636058 PRIVMSG #esolangs :14[[07Scroll14]]4 M10 02https://esolangs.org/w/index.php?diff=87568&oldid=87567 5* 03WreckingGames 5* (+1) 10 < 1629757720 531172 :immibis!~hexchat@62.156.144.218 QUIT :Ping timeout: 240 seconds < 1629760526 727773 :oerjan!oerjan@sprocket.nvg.ntnu.no JOIN #esolangs oerjan :Ørjan Johansen > 1629762931 496400 PRIVMSG #esolangs :14[[07Hello world program in esoteric languages14]]4 10 02https://esolangs.org/w/index.php?diff=87569&oldid=84431 5* 03Oerjan 5* (+147) 10Temporary fix for the edit blocking people are experiencing < 1629763034 221505 :ais523!~ais523@109.249.181.120 JOIN #esolangs ais523 :(this is obviously not my real name) < 1629763048 202610 :ais523!~ais523@109.249.181.120 PRIVMSG #esolangs :it's unclear what the correct solution for the hello world page is < 1629763049 624084 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esolangs :uh oh < 1629763075 691578 :ais523!~ais523@109.249.181.120 PRIVMSG #esolangs :your temporary solution's a nice one to unblock things, but I'm not sure what the "correct" solution is < 1629763104 41524 :ais523!~ais523@109.249.181.120 PRIVMSG #esolangs :maybe we need some sort of dedicated hello world browser < 1629763116 254881 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esolangs :heh < 1629763133 522129 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esolangs :yeah if we want people to be able to see everything on one page it may be awkward. < 1629763176 80618 :ais523!~ais523@109.249.181.120 PRIVMSG #esolangs :perhaps splitting it up into 27 pages (one for each English letter and one for the languages whose names start with something else)?