00:06:32 -!- Trieste has quit (Ping timeout: 240 seconds). 00:07:45 -!- Trieste has joined. 01:28:37 -!- Everything has joined. 01:57:13 [[2Deadfish]] https://esolangs.org/w/index.php?diff=91568&oldid=90151 * Squidmanescape * (+18) 01:58:40 [[HQ9+2D]] https://esolangs.org/w/index.php?diff=91569&oldid=89914 * Squidmanescape * (+2) 02:36:20 -!- eli_oat has joined. 02:38:28 -!- delta23 has quit (Quit: Leaving). 02:43:32 -!- eli_oat has quit (Quit: eli_oat). 02:48:14 -!- ais523 has joined. 02:49:01 fizzie: I use stalker mode frequently, it's my usual method of reading #esoteric 02:49:52 a) because it's a convenient way to see the logs for the last several days (i.e. since i last read it), b) because my IRC client and network connection are both really unreliable so it's a more reliable way to see what people are saying in pseudo-realtime than actually connecting to IRC is 02:50:48 oerjan: Uggaman doesn't have the same style as any banned user I'm aware of, I think it's someone new (and probably immature rather than malicious) 02:50:59 -!- FreeFull has quit. 02:51:39 languages without control flow are an interesting issue – I get the feeling that esolangs.org has really taken off in the last few years, compared to when it was first created, and lots of people like the idea of making their own programming language but have no real idea how to go about it 02:52:33 and, well, for "typical" mass-produced esolangs (think BF derivatives and other things in the same sphere), implementing loops or other forms of control flow is hard compared to anything else you'd likely be doing 02:57:36 what languages don't have control flow? 02:58:02 languages in the Deadfish family 02:58:11 they aren't TC, then? 02:58:24 no 02:58:40 the complaint is about the spam of languages that are unusable for programming due to having no sort of loop at all 02:58:56 heh. 02:59:14 low-effort non-TC langs not welcome, I take it. 02:59:40 well, they aren't banned 02:59:44 but they tend to annoy some people 03:00:07 I know when I'm just browsing, they annoy me because they just aren't worth looking at. 03:00:14 if you're interested in TC languages without control flow, there are "implicit loop" languages like cyclic tag (or sequential tag) and Blindfolded Arithmetic 03:01:04 hmm, some sort of VHDL-with-bignums could be an interesting language (restricted to the behavioural rather than imperative subset) 03:01:09 I don't think there are many behavioural languages out there 03:01:22 behavioral languages? 03:02:24 The whole slew of rewriting based languages (canonical examples: Semi-Thue systems and lambda calculus) have no control flow either, technically. (But they are embedded in an implicit loop that continues rewriting as long as possible.) 03:02:25 so the way VHDL's behavioural subset works is, assignments have a time delay and can be done as a consequence of specific other values changing 03:02:46 so you can say "when X becomes 0, then after a short time delay, assign 1 to Y" 03:03:01 ah, rule oriented/trigger oriented. 03:03:06 yeah, I like those languages. 03:03:08 and then executing the language is done by putting a scheduler on all the assignments and letting them trigger each other 03:03:54 also you aren't supposed to assign to values more than once at a time (although VHDL actually contains 9-valued booleans for modelling what happens if you do anyway) 03:04:30 I'm actually exploring some stuff based around tuple spaces. 03:04:41 that fits into that. but I'm having trouble really getting to the root of it. 03:05:09 the "fun" part is that VHDL isn't an esolang, it's actually one of the three main languages for programming FPGAs and ASICs 03:05:40 mhm. used it extensively. those languages and other rule systems are stupid powerful. 03:05:51 There's also interesting "machines" with no "control flow" in data compression: https://github.com/honno/gzip-quine (the original site seems to be gone) 03:07:16 I think that gzip quine is one of the few files on my computer that my virus scanner flags 03:07:27 because it tries to decompress it recursively during the virus scan, then gets upset 03:07:33 it's 20.zip rebooted 03:08:04 http://okturing.com/src/12884/body 03:08:07 (that was the zip file that contained 20 equal zip files, iterated 3 times or so, and then 1MB files full of zeros) 03:08:52 (and obviously the solution in virus scanners was to tag that file as malware) 03:09:23 it's kind-of obvious that an archive full of identical zip files would compress well 03:09:31 the zip quine is much less obvious, although it makes sense 03:10:49 hmm, is there a run-length-encoding quine that gives an arbitrary prefix and suffix, for some reasonable run length encoding format? 03:10:58 (without, you can just do "2 2" but that doesn't generalize) 03:11:09 I guess you need to allow runs of multiple different symbols 03:11:27 actually this is probably just resplicate, which is already known TC 03:11:46 but one-iteration resplicate, which isn't the same 03:14:25 anyway, my point here was that gzip -d implements a weird straight line code machine without control flow, and you /can/ make this interesting (either because you're golfing, usually called compression, or because you actually do something esoteric like writing a quine) 03:14:43 huh, apparently Firefox won't now open Haskell source code over HTTP (as opposed to HTTPS) without a warning, in case someone put some malicious code in there by tampering with the network connection 03:14:54 so absence of control flow is not sufficient to make things boring :P 03:15:24 (it doesn't recognise the file type, so it doesn't know that it isn't going to be executed immediately as a consequence of opening it, but still…) 03:15:26 ...wow? 03:16:02 gzip -d *does* have control flow, doesn't it? it's just that it's primitive-recursive 03:16:15 (and not primitive-recursive-complete either, it only uses hardcoded iteration counts) 03:16:41 so programs are guaranteed to terminate, but that doesn't mean they can't have loops in 03:16:51 I never like that this browser sees text/x-haskell and decides that it must be downloaded 03:16:55 it's TEXT. 03:17:07 I think the server is involved in this too 03:17:14 but I'm not sure to what extent 03:17:20 (I resort to deliverint *.hs as text/plain from my webserver) 03:17:33 like https://int-e.eu/~bf3/haskell/NatP.hs 03:17:38 I have overrides to text/plain for quite a few source code extensions on my webserver 03:17:44 (you can try http too if you like) 03:18:46 I'm a little concerned about overuse of https – people often use it for things where there isn't actually a security guarantee, so using TLS as the transport is misleading 03:19:18 I don't mind it terribly 03:19:23 (also, an https implementation is much more complex than an http implementation, so there's a huge increase in attack surface, and so it's likely to reduce security in some aspects whilst increasing it in others) 03:19:37 I mean, it doesn't *hurt* 03:20:07 except for that I guess 03:21:20 I just don't see how https makes us significantly more secure than http... against state level actors (who are the most likely to be able to mess with http too), seeing all the authorities that browsers trust by default. 03:22:14 (of course this is less about TLS and more about PKI) 03:22:50 I think there are advantages to https for a) hiding which page on a website you're reading, and b) hiding the content of pages on the website you're reading (maybe they require a login), from other people on the same network as you 03:23:06 but these are the only common threat models where https does anything useful 03:24:06 oh, also the reverse directions, especially the reverse of b) (i.e. hiding the content that you're sending to a server from other people on your network) 03:24:32 it used to be possible to do things like steal people's Facebook passwords by connecting to the same wifi-router as them, until the Facebook login page go moved to https 03:25:38 (IIRC they got pressured into moving it to https via a security researcher who released a user-friendly tool for doing this automatically, to as many people as possible…) 03:39:26 -!- ais523 has quit (Quit: quit). 03:53:22 [[Dashes]] M https://esolangs.org/w/index.php?diff=91570&oldid=91558 * DigitalDetective47 * (-255) /* Commands */ Removed mention of Java 17 as definitions of looping commands within the table are sufficient. 04:05:07 -!- Kit has quit (Ping timeout: 268 seconds). 04:07:49 -!- Kit has joined. 04:13:34 "implementing loops or other forms of control flow is hard compared to anything else you'd likely be doing" => heh heh. my first esolang is technically psz, which has reasonable control flow but absolutely broken syntax, so the parsing is the hardest part and I didn't get it right. 04:14:06 You can say that I was too young and stupid and that's why I got a lot of things wrong in speccing the syntax, and that's true, but so are those people who submit control flowless languages 04:15:35 also I find it more annoying the languages that do appear to have control flow, so you can't just dismiss them quickly by reading, but their control flow turns out to be so inadequate that they're not TC for some stupid reason, like that language that's brainfuck with only one level of loop nesting. That wastes more of the reader's time. 04:15:57 There are like three such brainfuck variants at least. 04:16:39 man this thing isn't fuckin' TC. 04:17:01 I also dont like that the browser sees text/x-haskell and decides that it must be downloaded, but I managed to use userChrome.js to add a "view source" option to the download menu, and if that doesn't work, can just add "view-source:" in front of the URL. 04:18:05 I also don't like that many things require TLS, although I think it is OK to have it available as an option, for when you want it. 04:20:26 Also, for the MIME types, I had idea making a better format that it can specify any number of file types at once instead of only one at a time, as well as parameters such as code page number and inner formats. (There is a bit similarity to UTI, but different in many ways, including that everything is listed intsead of having inheritance) 04:23:28 what's a good way to store an unlabeled, undirected graph? 04:23:47 (TLS is good for preventing spies from viewing or tampering with the data, it does not prevent the server operator from doing so.) 04:24:28 (and does not imply that the files downloaded in this way are necessarily safe, either, although it does prevent spies from adding bad things, at least) 04:25:21 in every idea I can think of, you need to use some unique identifier for the nodes. 04:25:30 (But, I dislike HSTS especially, and also the way that the "secure contexts" feature is working.) 04:26:14 I also don't know how to store a unlabeled undirected graph in a good way; I also know you will need a unique identifier. I also wanted to think of how to do, in order to canonize it so that you can then compare it. 04:26:56 yeah... I'd like to eliminate the need to keep track of which identifiers are unique. 04:29:55 seems like any implementation of rewriting over undirected, unlabeled graphs isn't turing equivalent unless you can generate new nodes and edges between those nodes. 04:31:12 Are you allowed to connect a node to itself, and are multiple edges connecting the same pair of nodes allowed? 04:31:32 1. yes. 2. no. 04:31:32 Turns out I do in fact have a metric for the number of stalker clients connected. Not kept long-term, but for the last two weeks, it's never been more than 1 consecutively, but I guess there's on average one visit per day. So it does get some use. 04:32:29 While there are ways to represent such a graph, I am not sure how to canonize it. 04:36:11 firefox won't "open" haskell code? 04:38:53 [[CPL]] https://esolangs.org/w/index.php?diff=91571&oldid=18253 * Squidmanescape * (+26) 04:39:11 I can't think of a single way of representing this without unique identifiers. 04:39:18 int-e: There's the "Content-Disposition: inline" vs. "Content-Disposition: attachment" response header that's supposed to hint whether a page should be shown or downloaded, but I don't know if that'd be honoured for the "inline" case for text/* content. 04:39:59 if you use a triangular matrix you're still implicitly preserving the concept of a unqiue identifier by way of indices. 04:40:01 I guess specwise "inline" means "default", so it shouldn't. 04:41:11 [[Waduzitdo]] https://esolangs.org/w/index.php?diff=91572&oldid=78277 * Squidmanescape * (+25) 04:45:29 [[User:Squidmanescape/Unimplemented By Date]] https://esolangs.org/w/index.php?diff=91573&oldid=91478 * Squidmanescape * (+89) Yes. 04:47:08 firefox will ask what how to open unknown mimetypes. (it will then only fetch the data..and then open it with a program of your choice) .. a download attribute on links will enforce downloading for otherwise known filetypes. 04:50:05 [[User:Squidmanescape/Languages By Year Which are Neither Implemented Nor Jokes]] https://esolangs.org/w/index.php?diff=91574&oldid=91479 * Squidmanescape * (+89) 04:55:58 everyone can see what authorities are trusted by browsers by default. not just the state. 04:58:22 what is the _simplest_ implementation of a unique identifier. 04:59:03 Is there an enumeration of unlabeled undirected graphs? I imagine there must. So just represent the graph by the index it has in that enumeration. Not exactly a practical choice to work with, though... 04:59:04 I assume just.. a counter that's incremented every time you need something. 04:59:46 fizzie: yeah you need to actually unpack that to query/rewrite over it lol. 05:00:06 The address of a thing in memory, in some cases and in some programming languages. 05:00:09 enumeration 05:00:46 pointers... eh. that's basically picking random numbers. 05:01:56 -!- oerjan has joined. 05:02:18 Well, except that things often need to have an address *anyway*, so you can't avoid doing it, and then it's there as a unique identifier already. 05:02:33 what about uniqueness cross-system? 05:03:00 like, say, over the internet. 05:03:44 pointers also don't work very well when you have to dump things to disk. 05:04:32 its usually offsets. 05:05:21 still doesn't help when I wanna grab someone's graph and graft it on to mine. all the nodes need to be relabeled. 05:05:39 even though they are.. unlabeled. 05:06:03 but that is also just enumeration. every number is unique. that is sufficient, no? 05:07:56 sorta? if everyone's graph node IDs start at 0, and I wanna just concatenate two graphs together, I need to relabel all nodes. 05:08:18 probably by starting from the maximum node number from graph A, adding that as an offset to every node number in graph B. 05:08:29 it's not terribly unique, you need to maintain uniqueness. 05:26:10 [[Project Euler/1]] https://esolangs.org/w/index.php?diff=91575&oldid=90132 * ColorfulGalaxy * (+664) Added AsciiDots and Mathworld 05:43:23 Memory addresses if you need a unique ID only within the current process, can work and is something else I had done before too, both with static and dynamic memory. In the case of dynamic memory, you can have e.g. malloc(1), or malloc(sizeof(int)) or whatever size is needed if you need to keep track of the reference count, or larger if you want to store additional data too. 05:43:34 (Of course, depending what data you will need to store and how much, it may waste memory.) 05:51:12 [[User:Squidmanescape/Languages By Year Which are Neither Implemented Nor Jokes]] https://esolangs.org/w/index.php?diff=91576&oldid=91574 * Squidmanescape * (-1371) Replaced content with "mods please delete this page" 05:55:29 all falls apart cross-system. 05:55:52 pointers don't go past a single system 05:57:20 Yes, it doesn't work cross-system; it is only working for internal use within a single process. 05:58:43 (Although, I had seen some file formats which will write out the internal memory addresses to a file, and then when it reads them back in later will make a list of which ones match and don't match and then will automatically update them to the new memory address where they are at.) 06:00:35 [[(top, height)]] https://esolangs.org/w/index.php?diff=91577&oldid=91075 * Squidmanescape * (+118) 06:03:48 [[Generic 2D Brainfuck]] https://esolangs.org/w/index.php?diff=91578&oldid=90632 * Squidmanescape * (+387) 06:06:39 [[Brainfuck extensions]] https://esolangs.org/w/index.php?diff=91579&oldid=77888 * Squidmanescape * (+52) 06:23:53 [[Special:Log/delete]] delete * Oerjan * deleted "[[User:Squidmanescape/Languages By Year Which are Neither Implemented Nor Jokes]]": Author request: content was: "mods please delete this page", and the only contributor was "[[Special:Contributions/Squidmanescape|Squidmanescape]]" ([[User talk:Squidmanescape|talk]]) 06:53:35 ais523: ah 07:07:08 [[Countup]] https://esolangs.org/w/index.php?diff=91580&oldid=53335 * Squidmanescape * (+55) 07:08:27 [[Countdown]] https://esolangs.org/w/index.php?diff=91581&oldid=82637 * Squidmanescape * (+25) 07:17:08 -!- earendel has quit (Quit: Connection closed for inactivity). 07:23:53 [[Countdown]] https://esolangs.org/w/index.php?diff=91582&oldid=91581 * Squidmanescape * (+98) 07:30:06 [[Countup]] https://esolangs.org/w/index.php?diff=91583&oldid=91580 * Squidmanescape * (+18) 07:35:01 [[User:Squidmanescape]] https://esolangs.org/w/index.php?diff=91584&oldid=91464 * Squidmanescape * (-141) 07:35:37 [[User:Squidmanescape/Unimplemented By Date]] https://esolangs.org/w/index.php?diff=91585&oldid=91573 * Squidmanescape * (+42) /* 2015 */ 07:59:21 -!- tromp has joined. 08:09:52 -!- earendel has joined. 08:14:09 [[User:Yeetb01]] M https://esolangs.org/w/index.php?diff=91586&oldid=90599 * Yeetb01 * (+31) 08:22:14 it is generative art january 08:24:13 https://oeis.org/A085735 08:28:30 -!- Sgeo has quit (Read error: Connection reset by peer). 08:37:29 [[Special:Log/newusers]] create * Milkman * New user account 08:41:24 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=91587&oldid=91534 * Milkman * (+152) /* Introductions */ 08:42:27 i don't know what he's talking about. redirection from http to https is of course 1 step too late. so it has to either be enforced by the client. a fucking 1 liner. or just don't. 08:42:42 fuckikng hate redirection 08:43:01 hate https too 08:43:04 annoying as hell 08:43:44 its really the same as http. 08:47:38 that false ais guy didn't even mention authentification. 08:48:22 false ais... 08:48:34 we need better truth machines 08:48:56 oh devised by User:Keymaker 08:48:58 joke fail 08:50:52 what 08:51:12 my joke failed 08:51:21 certainly. 08:51:33 why did you say "what"? 08:52:38 Do coproducts count as control flow? 08:52:59 why do you bring up another sock now 08:53:36 no Corbin 08:54:36 you understand what he means? 08:54:51 riv: Then I politely assert that control flow is an illusion, as it's not necessary for Turing-complete behavior. 08:55:07 JNZ 08:55:36 to execute lambda you need control flow, but it can be lazy or strict 08:55:48 its when you have conditional execution paths 08:55:58 For example, a Wang tiling has no control flow. There are implicit choices (which location to place a tile, which tile to place) but those choices are structured as a coproduct. 08:57:08 [[GibMeRol]] N https://esolangs.org/w/index.php?oldid=91588 * Milkman * (+590) Created page 08:57:39 Corbin: is control flow necessary in order to have a universal turing machine? 08:57:40 lets make it simpler: you have a bunch of letters and symbols. in some order. 08:57:49 or in the case of wang tiling, a universal wang tiling method 08:58:17 wang tiles are crazy 08:58:19 earendel: Heh, the Post correspondence problem? Yeah, that'd work in 1D. 08:58:25 how the hell is that turing complete 08:59:05 letters and symbols in some order? 08:59:07 Franciman: I'm genuinely not sure. I *just* came up with this idea; it's probably bogus. 08:59:43 [[GibMeRol]] https://esolangs.org/w/index.php?diff=91589&oldid=91588 * Milkman * (+125) added reason why language was created 09:00:14 sure 09:00:16 i see 09:00:16 stop spamming around.im not very impressed. 09:01:21 [[Language list]] https://esolangs.org/w/index.php?diff=91590&oldid=91543 * Milkman * (+15) /* G */ 09:01:46 use matrix or something.lol 09:02:29 matrix ... *oooh lmao* 09:03:27 -!- ircs has joined. 09:04:12 The matrix 4 09:05:32 what networks do they connect? 09:07:19 so. what was so complicated about rewriting all addresses to https on the fly? 09:08:15 [[GibMeRol]] https://esolangs.org/w/index.php?diff=91591&oldid=91589 * Milkman * (+17) 09:10:40 earendel: jklasdfklajfkajlsdjklflkaf 09:14:45 is there something like ASLR for linux? 09:16:19 it has ASLR 09:16:20 [[User:Milkman]] N https://esolangs.org/w/index.php?oldid=91592 * Milkman * (+412) Created page with "Hello! My name is James and I am a fan of writing low level stuffs and am currently writing my own OS which you can view on [https://github.com/jamesray23114/Aozora-OS github]..." 09:17:14 lol 09:17:35 the advent of zorra 10:19:11 -!- wib_jonas has joined. 10:19:32 I looked at https://logs.esolangs.org/libera-esolangs/ and quickly got surprised because it shows only four days. New year is always weird 10:20:55 what's weird about that 10:21:19 does that only happen on january? 10:21:26 fungot: is control flow necessary in order to have a universal turing machine? 10:21:26 wib_jonas: or then have two c++ functions, one for artist, one for meta, one for each line in the comment 10:22:33 fungot: products or coproducts? 10:22:33 Corbin: fnord/ fogbugz/ fnord/ projects/ tango/ wiki/ fnord fnord 10:22:50 The default index is paginated by year, so yes, it only looks short in January. 10:23:05 aha 10:30:35 -!- Lord_of_Life_ has joined. 10:30:45 -!- oerjan has quit (Quit: Later). 10:31:17 -!- Lord_of_Life has quit (Ping timeout: 240 seconds). 10:31:52 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 10:58:48 -!- ais523 has joined. 10:59:02 I just learned about COBOL's ALTER statement: https://www.ibm.com/docs/en/cobol-zos/4.2?topic=statements-alter-statement 10:59:16 and immediately had to log on to #esolangs and tell everyone about it 10:59:33 lol 10:59:37 this is the sort of thing I'd normally only expect to see in INTERCAL 10:59:43 are you sure this is COBOL and not INTERCAL 11:00:07 wow, I thought COME FROM was supposed to be a joke 11:00:19 COME FROM is a joke 11:00:28 but this is of a comparable level of insanity, from a modern programmer's point of view 11:00:44 ais523: This is the point at which I realized that I was, in fact, *not* interested in making money writing code. 11:01:08 (for the benefit of anyone logreading and who doesn't want to follow the link: ALTER modifies the program that contains it by rewriting the target of a GO TO to go to some other line) 11:01:22 That is completely wild 11:01:54 (The main reason COBOL programmers know about ALTER is so that they know how to remove it from legacy code with incremental refactoring.) 11:02:10 I do get the strong feeling it's discouraged nowadays :-) 11:02:20 I didn't know you were a COBOL programmer, though 11:02:22 Corbin: please get a COBOL job and change your name to Coblin 11:02:49 No, I only learned about half the language. I get the appeal of structured records; I still like protobuf, Capn Proto, etc. But the control flow is bonkers. 11:03:43 I think of COBOL as being a precursor to SQL 11:04:05 all the data-handling stuff (which COBOL is good at) was moved to dedicated databases, all the everything else was replaced by saner languages 11:06:10 huh, I wonder if INTERCAL's ABSTAIN was inspired by COBOL's ALTER 11:06:20 there can't be many cases in which data is stored in the code rather than in the data 11:07:44 Kind of surprised that INTERCAL doesn't just have ALTER. I could imagine PLEASE ALTER LABEL foo TO COME FROM bar. 11:08:11 we need to add it 11:08:14 INTERCAL isn't supposed to have any features from any other language 11:08:31 so existing in COBOL (which was one of the sources) would immediately rule it out 11:08:41 a 11:08:43 interestingly, some INTERCAL features subsequently turned up in other languages 11:08:49 btw ais523 apparently there is a false ais 11:09:18 most notably, INTERCAL's "select" operator subsequently ended up getting added to the x86-64 instruction set (where it's known as "PEXT") 11:10:20 wow 11:11:19 they also added an inverse ("PDEP") which can be used to implement mingle, although not in a single instruction 11:14:47 Corbin: incidentally, CLC-INTERCAL does have a method of replacing one *type of statement* with another, as long as they take the same types of arguments in the same order 11:15:03 I forget what it's called, but you can, e.g., replace all ABSTAIN statements with REINSTATE statements 11:15:25 I've never found a use for it, but I don't write much CLC-INTERCAL 11:17:46 looks like COBOL has a few other fun features too, but I haven't found something on the level of ALTER 11:18:38 it allows a contiguous set of struct fields to be interpreted as a new struct, even if they don't obey the usual nesting behaviour, which is a bit weird 11:19:23 e.g. you can have the equivalent of C's struct { struct { int a; int b; }; struct { int c; int d; }} and create a field that's a structure containing the b and c fields 11:19:58 TIL, thanks. 11:21:18 The original inspiration for COBOL structured records was bureaucratic forms. It's a common pattern on those forms to need to take multiple different fields, sometimes from different sections, and aggregate them into a pseudo-section. 11:21:41 right, this probably also explains why data types are described via their formatted string representation 11:22:31 like, you don't define "number" but "number left-padded to five digits with spaces 11:22:32 " 11:22:53 although the implication is that this only affects I/O and the number is actually just a number internally 11:23:00 Yeah. And then when you manipulate the number, you can (optionally?) specify the rounding mode and sigfigs. 11:23:36 ooh, apparently everything is stored as a string by default (in which case the format would matter) but there's an option to store in binary and convert for I/O 11:24:14 Gotta wonder what the hardware was like back then. COBOL predates IEEE 754; I have literally no idea how stuff was stored. 11:24:52 based on the defaults and history of the language, I'm guessing the first couple of versions stored everything as strings just to be able to get something working 11:25:03 and then more optimized ways of doing things were retrofitted later 11:27:01 Maybe. But having been in the industry for a bit, I could also imagine that COBOL was seen as the portable interface, and each COBOL compiler emitted machine-specific number-handling code. 11:27:29 COBOL was intended to be/become a portable language, but was originally written in a hurry and had to be somewhat redone 11:27:49 huh, you can call a range of procedures that are consecutive in the source code 11:27:59 I guess that's consistent with the structs 11:27:59 Interesting, TIL. I don't know much about the early history other than the famous Grace Hopper folklore. 11:29:16 but trying to produce a language which allowed for portable programs seems to have been the main motivation 11:30:17 …you can write the equivalent of BASIC's ON ERROR RESUME NEXT in COBOL 11:30:28 presumably it hadn't been discovered to be a bad idea yet 11:36:07 Huh, how would that be done? It would take a whole paragraph, I think. It provides a fitting little path from COBOL to BASIC to PHP, the same idiom with less code each time. 11:38:11 right, you have to write an exception handler, and those things have divisions of their own 11:38:33 or, not a division, it's a subdivision of the procedure divisoin 11:38:40 called "DECLARATIVES", apparently 11:39:35 you can also longjmp out, which is simultaneously less confusing and more confusing because you simply say where you're jumping to, not how to unwind the stack (this probably only works because COBOL didn't support recursion at the time…) 11:41:45 Yeah, AFAICT there was not a serious plan for how to implement an OS or even a time-slicer in COBOL. Again, this might be historical ignorance; I don't think the idea of systems programming was a thing yet. 11:43:13 the reason I was looking up COBOL in the first place was because I was reading a discussion about the first OS to be implemented in something other than assembly language 11:43:45 and apparently it was written in PL/I, which postdates COBOL and borrows a lot of syntax from it (including ALTER, apparently), it's basically a cross between COBOL and FORTRAN 11:46:52 -!- u0_a391 has joined. 11:50:49 -!- Kit has quit (Ping timeout: 256 seconds). 11:54:39 computed COME FROM is a joke. ordinary COME FROM is just weird syntax. 11:55:04 no, ordinary COME FROM is also a joke 11:55:54 the history's at https://en.wikipedia.org/wiki/COMEFROM 11:56:01 ais523: does ALTER work in a way that you can tell in compile time which goto statements may need to be modified, and which target labels they can point to? 11:56:10 because if so then it's not too bad 11:56:52 then it's just ordinary COME FROM plus ABSTAIN FROM level syntax, not computed COME FROM or computed ABSTAIN 11:57:22 wib_jonas: yes, but you'd have to scan the entire source code to find what modifications could be made 11:57:52 (also, apparently many COBOL implementations did actually implement it with self-modifying code rather than a jump table) 11:58:00 "I get the appeal of structured records" => we have SQL instead of them now, don't we? 11:59:00 I think SQL has taken over as the most mainstream language for doing the things that COBOL was good at 11:59:10 wib_jonas: Think protobuf-style programming with big data. Say, processing video files. It's a structured record, and one of the fields happens to be way too big to fit into address space, but you can still iterate over the rest of the record and manipulate it. 11:59:47 Corbin: INTERCAL can't have ALTER, it would make subroutine returns too easy. 11:59:54 although, in a way, SQL's control flow is even worse than COBOL's (it's TC, at least in common implementations, but normally inadvisable to write large programs in it – normally it's used as a DSL for programs in a saner language) 12:00:07 wib_jonas: NEXT … RESUME #1 is incredibly easy as it is 12:00:21 it's like the only form of control flow in INTERCAL that's actually sensible 12:00:46 I suspect this was implemented in such an easy way so that the standard library would work, making it possible to actually do things like addition 12:01:18 ooh, a computed RESUME-alike is apparently possible in PHP (something I discovered quite recently) 12:01:26 you can use a computed break statement that breaks out of a variable number of loops 12:04:05 "huh, you can call a range of procedures that are consecutive in the source code" => yes, https://esolangs.org/wiki/User:Zzo38/Programming_languages_with_unusual_features#COBOL mentions that 12:08:07 it mentions ALTER too 12:08:14 I'd read it before, but hadn't appreciated the implications 12:09:23 perhaps the people who invented the language were used to programming in machine code in a non-reentrant way where modifying code for indexing or indirect jumps was common 12:10:33 COBOL didn't support recursion for ages 12:11:11 in fact, the semantics of a procedure call appear to be indistinguishable from "inject a command to goto the next line at the end of the procedure, jump to it, then remove the injected command upon returnign" 12:11:33 (this is observable if you attempt to call procedures recursively) 12:11:44 this makes me think that it was originally actually implemented like that, rather than using a stack 12:12:13 (probably with the goto there permanently, just going to the next procedure in sequences so that range-calls worked) 12:15:47 ais523: I was recently looking at the https://esolangs.org/wiki/Apollo_Guidance_Computer , and its instruction set seems modern in that it lets you do any indexing or indirection without self-modifying code, in multiply ways. This is probably because the code usually lives in a ROM, which is much bigger than the RAM because of hardware constraints, 12:15:47 though it can actually execute programs in the RAM with only a few limitations. 12:16:20 IIRC computers in space are very vulnerable to bitflips 12:16:37 and executing from RAM would be dangerous in that context, as just about anything might happen if a bitflip hit a command before it was about to execute 12:16:45 so allowing as much as possible to be done in ROM would be safer 12:18:54 Sure, not just bitflips but a stray pointer could overwrite something in RAM, since they have arbitrary indexing (not quite since the RAM too is bank-switched). But I still think it's mostly that the ROM is much larger capacity, because the same capacity takes less physical space and mass. 12:19:36 But allowing to execute from the RAM still makes sense because they may want to change something in the program when it's too late to redo the ROM. 12:22:05 right, it could be a method of recovering from bugs in the program 12:24:19 And IIUC some constant parameters of the mission are stored in the RAM, probably because they're too late to write to the ROM, eg. determined shortly before launch, though these are probably only data rather than code. 12:24:45 I wonder how NASA's ROMs are programmed 12:24:54 Right. The ROM was hand-verified but had to be hand-packed: https://en.wikipedia.org/wiki/Core_rope_memory 12:25:20 I was wondering if it was something more hardwired than fusible-link 12:25:36 ais523: it was hardwired, with something like a knitting machine, 12:25:50 weaving wires inside or outside rings depending on the value of each bit, 12:26:31 where there's several wires per ring so when a ring is activated with x and y address lines, a whole word is read simultaneously 12:26:38 [[HellLang]] N https://esolangs.org/w/index.php?oldid=91593 * Milkman * (+8167) created page and added a lot of data, will work on it later 12:27:53 sending the two address lines together flips the magnetism in the large core ring, only in this case the magnetism of the core ring itself doesn't store the data, instead when you flip it, that induces current in those among the sense lines that are woven inside that ring and not the other sense lines, so you read a word that way\ 12:28:33 it somehow comes out as more space efficient than core memory which stores only one bit per ring, though I don't understand how, 12:28:40 oh wow, so it's like regular magnetic core memory, but some of the cores are missing entirely 12:28:54 and you find out if the core is there by trying to write it and seeing if anything happens 12:29:20 because IIUC the rings for the core rope are much larger, and that should more than cancel out the increased number of bits per rings 12:29:31 "normal" magnetic core memory is kind-of finicky, the original implementation required four wires through every core (but it was golfed down to three at some point) 12:29:53 and it relies a lot on using currents that are only just strong enough to flip a ring if added together, so that you were only affecting a single ring 12:29:58 ais523: yes, but this way you get more than one bit per ring in a core rope, which isn't really possible in core memory 12:30:11 with this ROM version, you can just flip an entire line as strongly as you like and you won't do any damage 12:31:07 it's possible you don't even need a sense line – just flip the vertical address lines and see which of the horizontal address lines respond 12:31:12 (or vice versa) 12:31:19 basically integrated circuits were really new at the time, and only had a few transitors per package, so it was kind of a risky decision to use them as logic in the AGC, and it contributed to hastening the integrated circuit industry 12:31:53 and because of this, IIUC there are zero flip-flops made of transistors in the computer, so even registers use core memory, thoguh probably simpler core memory with no separate x and y addressing 12:32:00 oh I see, a fusible-link ROM needs some sort of diode to prevent the links just connecting all the wires to each oher 12:32:23 though also IIUC there are also some bits stored in relays, but that's more about the IO devices than the CPU 12:33:26 -!- oerjan has joined. 12:33:52 ais523: yes, and so would a keyboard if you would want to allow to sense any set of keys pressed together completely at the same time, but that is expensive so most keyboards just don't handle that quite correctly, and the electronic is fast enough that you usually don't press keys quite at the same time, and they put the keys to the right rows and 12:33:53 columns that in practice this doesn't cause problems 12:34:06 for modern keyboards that is 12:35:25 when I was younger, pressing too many keys at once on the keyboard would cause the CPU speaker to beep 12:35:41 or, motherboard speaker, I don't think it's actually on the CPU 12:36:02 I assumed this was because there were too many keys being pressed for the keyboard to reliably read them all 12:36:29 and IIUC in the 80s, that's why ROM chips cost money each time you change the content, but it was cheap to make many copies once the content was fixed, because the ROM ICs are made with a photographic method similar to PCBs now, only there the mask sets not just wires but transistors too\ 12:37:04 in the 90s too to some extent 12:37:30 but since magnetic and optical disks sucked, it was still worth to make lots of ROMs for software 12:38:01 we've had reprogrammable ROMs for a while, but it wouldn't surprise me if fixed-content ROMs were still cheaper in sufficiently large quantities 12:38:57 ais523: I believe this issue got solved *before* non-small reprogrammable roms got cheap enough, because RAM became cheap enough that you could load most of the program from a magnetic or optical disk to RAM and then it was fast 12:39:46 but even nowadays games have massive loading times 12:40:10 [[Apollo Guidance Computer]] M https://esolangs.org/w/index.php?diff=91594&oldid=90645 * Corbin * (+10) /* Hardware */ Rearrange some sentences and add a link to WP. 12:42:07 ais523: yes, but that's because the size of the games expanded as graphics cards became more capable; plus I hear that on the Nintendo Switch, games load slow if you load them directly from the external SD card that they're sold on, but fast if you install them from the SD card to the internal SSD 12:42:34 right, consoles have internal SSDs nowadays in order to try to reduce loading 12:42:51 or internal hard disk, I don't really know, it's irrelevant\ 12:43:04 the point is that the SD card that the game is sold on can be slow to reduce costs 12:43:13 I actually stopped buying consoles at around the time they gained complex operating systems 12:43:25 to me the advantage was that the console only plays which game is inside it and isn't otherwise stateful 12:43:35 and you should just install games to the internal storage. that's limited by the internal storage's capacity, but you can uninstall games so it's not a big problem. 12:43:41 I never *started* to buy consoles 12:43:43 and if the console is going to start being stateful I may as well just use a PC 12:44:10 the only console I own is half of two Game Boys 12:44:54 (though of course my PC can emulate more old consoles if I download the right software) 12:45:51 actually this was also about the same time that games started seriously adding more online features, which also drove me away from them 12:47:23 ais523: around what console are you talking about? 12:47:32 DS→3DS transition 12:47:42 I see 12:50:07 -!- u0_a391 has changed nick to Kit. 13:01:27 [[HellLang]] https://esolangs.org/w/index.php?diff=91595&oldid=91593 * Milkman * (+160) /* Language overview */ 13:08:27 [[HellLang]] M https://esolangs.org/w/index.php?diff=91596&oldid=91595 * Milkman * (+36) /* Language overview */ 13:11:23 [[HellLang]] M https://esolangs.org/w/index.php?diff=91597&oldid=91596 * Milkman * (+140) /* Scopes */ 13:12:03 [[HellLang]] https://esolangs.org/w/index.php?diff=91598&oldid=91597 * Milkman * (+68) /* Language overview */ 13:13:40 [[HellLang]] M https://esolangs.org/w/index.php?diff=91599&oldid=91598 * Milkman * (+24) /* Scopes */ 13:21:49 -!- oerjan has quit (Quit: Later). 13:39:33 -!- tromp has quit (Read error: Connection reset by peer). 13:51:35 -!- ais523 has quit (Quit: quit). 13:54:16 -!- monoxane has quit (Quit: Ping timeout (120 seconds)). 13:54:42 -!- monoxane has joined. 14:09:07 [[Typespam]] https://esolangs.org/w/index.php?diff=91600&oldid=73809 * Kaveh Yousefi * (-17) Corrected the Hello World example which would not print the character o and omitted the space betwixt the two words, and improved the example's formatting. 14:11:16 [[Typespam]] https://esolangs.org/w/index.php?diff=91601&oldid=91600 * Kaveh Yousefi * (+271) Added a cat program example and a hyperlink to my implementation on GitHub, and changed the tag Unimplemented to Implemented. 14:12:01 [[Tic Tac Toe]] https://esolangs.org/w/index.php?diff=91602&oldid=91498 * Kaveh Yousefi * (-2) Changed the category tag Unimplemented to Implemented. 14:13:41 [[Typespam]] M https://esolangs.org/w/index.php?diff=91603&oldid=91601 * Kaveh Yousefi * (+8) Changed the title and hyperlink of the Cat section to Cat program. 14:14:01 -!- tromp has joined. 14:27:47 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 14:34:15 -!- Sgeo has joined. 14:57:43 -!- tromp has joined. 15:09:11 -!- earendel has quit (Quit: Connection closed for inactivity). 15:15:55 -!- ircs has quit (Read error: Connection reset by peer). 15:28:42 -!- Everything has quit (Quit: leaving). 16:19:12 [[Special:Log/newusers]] create * T3RRY * New user account 16:22:35 [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=91604&oldid=91587 * T3RRY * (+164) /* Introductions */ 16:40:57 half of two Game Boys? 16:41:32 why not get 1 whole one? I think that will work better 16:47:15 riv: Two Game Boys that me and my brother got when we were children, so I and my brother own them shared. It's not defined which one is whose, and if one breaks (though this is unlikely now) then we'll both own half rather than one of us own one and the other zero. 16:47:53 The carts do have a nominal owner though, and I have the better ones. 16:49:07 [[Template:Infobox proglang]] M https://esolangs.org/w/index.php?diff=91605&oldid=87037 * PythonshellDebugwindow * (+49) Add Category:Languages as includeonly to autocategorize languages with this template as languages 16:49:59 ahh that makes sense 16:50:01 :) 16:50:07 i have 3 gameboys i think, one is color 16:50:20 they seem good for messing with the hardware but i never did any mods 16:50:28 like changing the battery, or adding lights 16:50:50 [[HellLang]] M https://esolangs.org/w/index.php?diff=91606&oldid=91599 * PythonshellDebugwindow * (+32) Add category, WIP 16:55:21 I don't care about the Game Boys themselves except as a means to verify that the carts works. I have a todo for more than a year to replace the batteries in the carts that have them, to avoid corrosion, since the carts are like 25 years old now. I've even bought replacement batteries more than half a year ago. 16:55:47 why do you care that carts work? 16:56:21 I want to preserve the carts, and the Game Boy lets me test that I replaced the battery correctly. 16:56:29 ok 16:56:34 the roms have been dumped probably 16:56:39 Sure 16:56:51 but I feel like the carts should be preserved anyway 16:57:09 and replacing the battery every few decades is an easy and cheap enough way to do that 16:57:42 none of these carts with batteries are particularly rare, so yes, the roms have been dumped (the less common carts have no battery that is) 17:02:16 -!- u0_a391 has joined. 17:05:57 -!- Kit has quit (Ping timeout: 240 seconds). 17:10:08 I own the entirety of one Game Boy, and maybe 4-8 game cartridges for it. 17:10:22 Hypothetically, anyway. I'm not 100% sure where it is. 17:11:23 riv: Libraries of ROMs come from people who want to preserve their carts. 17:11:27 I'm also not sure where one of the two Game Boys that I halfway own is. But one that I halfway own \is enough. 17:11:44 Luckily I do seem to have all the carts, or maybe all but one. 17:12:24 Corbin: yes, though those are the carts where preserving is easier because there's no battery in the cart 17:13:08 I think I had Super Mario Lands 1 and 2, a tennis game, that one balloon game, the Duck Tales game, Tetris, that Qix game, and maybe a golf game. 17:13:18 (If you live in Europe and want to ROM dump Game Boy Tetris Blast and have the equipment for it, feel free to contact me.) 17:13:35 fizzie: what's the one balloon game? Bubble ghost? 17:14:08 The one where you're a person (a girl?) floating with two balloons, and then you can pop one and get by with one, and maybe even if that pops you might continue with some platforming perhaps. 17:14:16 Apparently "Balloon kid" 17:14:19 Balloon Kid, yes. 17:14:37 I've never heard of that, but the internet has. 17:16:19 I do own a DS Lite as well, and that one I know where it is. Those are the only two consoles I've owned. Assuming handhelds count. 17:22:07 -!- u0_a391 has changed nick to kit. 17:27:59 -!- wib_jonas has quit (Ping timeout: 256 seconds). 17:38:08 [[User:PixelatedStarfish]] https://esolangs.org/w/index.php?diff=91607&oldid=91549 * PixelatedStarfish * (+46) /* Unimplemented Languages */ 17:44:12 [[Fetus]] N https://esolangs.org/w/index.php?oldid=91608 * PixelatedStarfish * (+378) Created page with "[[Fetus]] is a [[Starstuff]] language. It uses a [[Starstuff]] compiler to convert any file into runnable [[Astridec]] code. Apart from that, there is not much more to say abo..." 17:47:29 [[Fetus]] https://esolangs.org/w/index.php?diff=91609&oldid=91608 * PixelatedStarfish * (+237) 17:48:17 [[User:PixelatedStarfish]] https://esolangs.org/w/index.php?diff=91610&oldid=91607 * PixelatedStarfish * (+26) /* In Chronological Order */ 17:48:53 [[Fetus]] https://esolangs.org/w/index.php?diff=91611&oldid=91609 * PixelatedStarfish * (+30) 17:50:16 [[Fetus]] https://esolangs.org/w/index.php?diff=91612&oldid=91611 * PixelatedStarfish * (+0) 18:34:17 I like the tsume shogi game on the Game Boy. But, I just use the emulation, which also include some games that might not be released on the cartridge, and modified versions. I do have Nintendo DS but the L and R button is broken. 18:35:18 that's cool. I like goro goro shogi also 18:40:02 But, for the hand held computing I like TI-92 which has a full keyboard, home screen with calculation, programming function, graphing function. Unfortunately is slow and no colours/sounds. If it can be done with colours (including plotting multiple functions at once you can distinguished by colours), date/time, assembly language, RS-232, also being command-line with calculations like TI-92 does, might be better a bit. 18:48:11 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 18:52:21 If you know about some of the unusual features of COBOL, then you might also to enter them into the list of the programming languages with unusual features, that I had written about. 19:05:58 -!- vyv has joined. 19:10:48 -!- ircs has joined. 19:16:22 -!- earendel has joined. 19:19:03 -!- tromp has joined. 19:40:35 -!- u0_a391 has joined. 19:40:56 -!- u0_a391 has changed nick to Kit_. 19:44:33 -!- kit has quit (Ping timeout: 256 seconds). 19:50:47 [[User:Zzo38/Programming languages with unusual features]] https://esolangs.org/w/index.php?diff=91613&oldid=91396 * Zzo38 * (+6) You can now set logical and visual animations independently in Free Hero Mesh (that wasn't true at the time this document was originally written, but it is now), although they are normally set together. 20:14:29 -!- u0_a391 has joined. 20:15:35 -!- u0_a391 has changed nick to Kit. 20:17:17 -!- Kit_ has quit (Ping timeout: 240 seconds). 20:28:36 [[Talk:Astridec]] N https://esolangs.org/w/index.php?oldid=91614 * Salpynx * (+730) Nested loops? 20:37:33 -!- Noisytoot_ has joined. 21:16:21 -!- Noisytoot_ has changed nick to Noisytoot. 21:29:49 [[Footsteps]] M https://esolangs.org/w/index.php?diff=91615&oldid=79575 * PythonshellDebugwindow * (+36) /* Implementations */ unhide overflow 21:30:02 [[Footsteps]] M https://esolangs.org/w/index.php?diff=91616&oldid=91615 * PythonshellDebugwindow * (-1) /* Python 2 */ scroll 21:31:56 [[Special:Log/upload]] upload * SunnyMoon * uploaded "[[File:1L a1.png]]": Output 1 when TL0 = 0 21:36:23 [[File:1L a1.png]] https://esolangs.org/w/index.php?diff=91618&oldid=91617 * SunnyMoon * (+0) Oops 21:37:36 [[Special:Log/upload]] upload * SunnyMoon * uploaded "[[File:1L a2.png]]": Output 1 when TL0 = 1 21:37:55 [[File:1L a2.png]] https://esolangs.org/w/index.php?diff=91620&oldid=91619 * SunnyMoon * (+0) What 21:39:27 [[Special:Log/upload]] upload * SunnyMoon * uploaded "[[File:1L a3.png]]": Output 1 when TL0 = 1 21:40:26 [[Special:Log/upload]] upload * SunnyMoon * uploaded "[[File:1L a4.png]]": Output 1 when TL0 = 1 21:41:07 [[File:1L a3.png]] https://esolangs.org/w/index.php?diff=91623&oldid=91621 * SunnyMoon * (+0) Ah 21:45:33 [[1L a]] https://esolangs.org/w/index.php?diff=91624&oldid=77485 * SunnyMoon * (+810) Been a while since I edited this wiki 21:56:29 [[Kernel]] N https://esolangs.org/w/index.php?oldid=91625 * Corbin * (+481) Stub a page about Shutt's language. 22:13:58 -!- vyv has quit (Quit: Konversation terminated!). 22:51:32 -!- immibis has quit (Ping timeout: 252 seconds). 22:56:52 -!- immibis has joined. 23:15:26 -!- earendel has quit (Quit: Connection closed for inactivity). 23:16:57 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 23:32:00 -!- tromp has joined. 23:37:36 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).