00:00:27 -!- Lykaina has joined. 00:01:41 is esolangs.org down? 00:03:24 Looks that way; ais523 also mentioned it a few hours ago. 00:04:32 not quite down but under so much load you can hardly get through 00:04:43 Ah. I haven't gotten through yet. 00:04:49 I guess someone ought to ping fizzie, but I strongly suspect this is scraperbots that need blocking rather than an actual site problem 00:05:01 (and fizzie may well be asleep) 00:05:11 I'd assume he's asleep, yeah 00:08:54 Oh, again. 00:09:13 or not 00:09:26 -!- molson has quit (Quit: Leaving). 00:09:49 It's getting ~95% 4xx errors, but I guess they're slow and/or expensive 4xx's this time. 00:09:50 -!- molson has joined. 00:10:31 maybe there's a common URL pattern that could be blocked (especially if the pages are guaranteed to not exist so there's no purpose for a human visiting them) 00:12:39 i'm logged in 00:17:38 It's not really super-obvious this time, from the logs. Here's a 30-second sample of URLs only: https://zem.fi/tmp/urls.txt 00:18:24 "Special:RecentChangesLinked" probably being the expensive operation. 00:19:33 oh yes – I'm not even sure if that one is indexed 00:20:44 fizzie: parameter order works for this one, the wiki's provided links to RecentChangesLinked put the title at the start, not the end 00:21:57 in fact, this bot appears to be alphabetising URL parameter order even in cases where that changes the meaning of the URL 00:22:26 such as with returnto= (where an & after the = does not introduce a new parameter but rather is part of the URL being returned to) 00:23:28 I guess it's probably a misguided attempt to avoid crawling the same page twice (without realising that many of the parameters may not significantly change the page being crawled) 00:23:33 really? wouldn't it be quoted as %26? 00:24:12 > chr 0x26 00:24:13 '&' 00:24:49 Hmm. Well, those requests ended on their own ~15 minutes ago, and the load also does seem to have dropped from flat 100% down to ~60% (and the wiki answers to me now), so maybe it's not entirely down any more. 00:25:03 int-e: actually there seems to be a different form of quoting: https://esolangs.org/w/index.php?title=Special:UserLogin&returnto=The+Waterfall+Model&returntoquery=action%3Dedit 00:26:39 hmm, these aren't all alphabetised, just most of them – maybe two different bots, or one bot + legitimate humans 00:27:04 that's the login link from https://esolangs.org/w/index.php?title=The_Waterfall_Model&action=edit 00:27:15 (when not logged in) 00:27:28 Related changes is a link on the sidebar for (almost) every page, and I know I've clicked on it by accident a few times when I meant Recent changes. 00:27:33 int-e: right 00:27:53 related changes is theoretically useful in niche circumstances but I don't use it very often 00:28:19 I personally don't think I ever used Related changes legitimately, but it may be useful for others 00:28:20 I think I've intentionally used it (to solve a problem rather than to test how it works) something like once or twice in my life, and only at Wikipedia 00:28:50 it's most useful on categories, e.g. I think I've used it on Wikipedia's esolang category to see changes to esolang articles 00:28:58 but then I use other weird tools that other people may think is useful only in niche cases 00:29:30 it would probably be reasonable to restrict this sort of expensive query to logged-in users, but I'm not sure how difficult that is to configure 00:31:06 I can't remember ever using that feature. 00:31:07 in any case, a simple regex block on title=Special:RecentChangesLinked and title=Special%3ARecentChangesLinked (the dump contains both, oddly) might be enough 00:31:13 err, not at the start of the URL 00:31:24 (the start of the relevant portion of the URL0 00:31:50 (but I can see that it's right there under "Tools" so a crawler would obviously pick that up) 00:31:51 I've added some ad-hoc filters, do let me know if you run into unexpected 503s as part of real use. 00:32:21 Someone also pointed me at a MediaWiki extension that can allegedly restrict specific special pages to logged-in users. 00:32:28 OK, thanks for the attention 00:32:40 int-e: right, there are a whole lot of hits on the "create account" page with different return-to URLs, too 00:33:50 (Specifically, https://www.mediawiki.org/wiki/Extension:Lockdown -- which has a setting that "allows you to specify for each special page which user groups have access to it". I'll consider adding that extension when I next update MediaWiki, which should probably be soonishly anyway.) 00:33:52 hmm, I think this bot may be randomising whether or not to escape query parameters 00:37:23 From what I've heard, this sort of thing (nonsensical, resource-intensive antisocial crawling) has been happening to all kinds of "small" websites, like the Debian bug tracker's query functionality has apparently been non-functional due to it. 00:38:44 yes – I'm a member of a webforum who was hit by it 00:39:35 I think it's not just small websites too, but larger ones as well (although they're more easily able to absorb the load) 00:43:07 apparently it also bothers "small" websites like github: https://github.com/orgs/community/discussions/159123 00:44:39 There's also rather more traffic than I'd expect from real users to various "Special:WhatLinksHere" pages, but those have less obvious patterns because sometimes it's a /w/index.php URL, while other times it's a "/wiki/Special:WhatLinksHere/" one, and the latter one's probably the same a real user would use. 00:46:40 I think WhatLinksHere is just an index lookup, at least (whereas RecentChangesLinked probably needs a join) 00:48:19 I use WhatLinksHere much more often than RecentChangesLinked, at least – although it's still fairly rare (most commonly I use it to check inbound links when deleting a page, although I am often willing to just let them turn red) 00:52:17 What I tried to do on my own computer is to set up port knocking for the HTTP server (and only for the HTTP server), due to this excessive badly behaved scraping. 00:53:29 However, the extension you mention for MediaWiki might be suitable if you only need to block access to some special pages rather than everything, I suppose. 00:54:44 Well, it looks like the performance is okay-ish now, so maybe that'll help kick the can down the road some. It's still a persistent 50% CPU load and ~6 qps, so I'm sure it's still 99+% bots, which is a shame, but at least it's maybe not preventing real visitors. 00:59:56 I use What links here occasionally regularly. 01:00:09 s/regularly/for a legitimate purpose/ 01:05:14 I also sometimes use "What links here" 01:18:25 -!- impomatic has quit (Quit: Client closed). 01:36:26 I think port knocking doesn't work well for a public website because even if you tell people the knock sequence, most people wouldn't be able to enter it correctly 01:38:27 what is port knocking? 01:43:48 Lykaina: so when you make a network connection to a computer (typically a server), the connection request contains a number (the "port number") that specifies what program you want to connect to; in theory it could be anything, but various protocols have standard numbers so that you don't need to specify the number (e.g. mailservers use port 25 to communicate with each other and web browsers use 80 for http or 443 for https) 01:44:08 port knocking is when you make a series of connections to the same computer and use the port numbers like you're entering a password 01:44:20 so it's just an arbitrary sequence of numbers that you have to find out 01:44:47 and a server that requires port knocking will reject all the connections until you connect with the right sequence of port numbers, and only then will it accept the connection 01:45:47 it's basically a way to do the equivalent of a login sequence, but at a lower level than typical password entry forms, i.e. it's done while forming the connection, before the program that will eventually accept the connection even sees it 01:46:30 Classically, you make the sequence not monotonically increasing (and/or add ports that will immediately fail it) to prevent a linear port scans (are those even a thing anymore?) from accidentally passing the knock sequence. 01:47:27 port scans are definitely still a thing, although I think that nowadays the primariy legitimate use is in attempts to detect systems that have been infected by malware and have more ports open than they should as a consequence 01:47:40 I'm not sure whether they're typically linear – there's no particular reason to port scan in any particular order 01:48:05 but I kind-of assumed that you'd implement it so that any port that wasn't the next one in the sequence would cause you to have to start again from the start 01:53:04 Wikipedia points out that port knocking is usually vulnerable to replay attacks, so it's harder to secure than password authentication would be 01:55:02 The port-knocking scheme I use for SSH involves having to attempt a TCP connection with a specific MSS value, which seems to work okay in practice, and has the benefit that the "knock" can happen on the same port as the service, meaning it's usually affected by the same firewall rules as the actual connection would be. 01:55:36 fizzie: ah, one-port knocking to get through firewalls, that makes sense as security through obscurity 01:56:00 I was thinking that maybe the best alternative would be to have some sort of authentication service running on a known port which you could send passwords to securely, and then it would open some other port for you 01:58:44 what if the port knock sequence is one of those codes that change every 30 sec 01:59:26 using 10 ports, for digits 0-9 01:59:38 and 6 knocks 02:00:03 yep, you can do that sort of thing if you want to 02:00:11 The MSS thing can be implemented in nftables rules, so it doesn't require a separate (arguably potentially vulnerable, though it could be very minimal) piece of software. 02:00:15 (would still be vulnerable to replay attacks unless you only accepted each code once) 02:04:56 (A fixed sequence of regular knocks, or even detecting a password in the knock packet, can also be done in firewall rules. Decoding any kind of OTP... well, I hear BPF is quite powerful.) 02:12:04 what is BPF? 02:14:44 a non-Turing-complete programming language originally designed to implement firewalls 02:15:02 although it later got massively extended and sort-of became a different language, eBPF 02:15:54 it might qualify as an esolang, but is perhaps too practically useful for that 02:19:25 but BPF and eBPF became the languages for when a kernel interface wants to accept a function/procedure as an argument, and run it in kernel mode rather than calling back into a usermode process – you translate the function into BPF/eBPF and the kernel runs it for you 02:48:29 -!- Lykaina has quit (Quit: Leaving). 03:17:27 -!- ais523 has quit (Quit: quit). 03:54:11 -!- SGautam has quit (Quit: Connection closed for inactivity). 04:39:03 I just had one port number to allow access for a limited time, and one lower port number and one higher port number both of which will lock out the access until the correct port number is knocked again. The intention was not security or secrecy, but to prevent excessive load by excessive access by badly behaved automated programs. I did not want to stop anyone from using curl, Lynx, etc. 05:09:21 [[Thue]] https://esolangs.org/w/index.php?diff=157694&oldid=155022 * Dadsdy * (+66) /* External resources */ 05:50:27 -!- impomatic has joined. 05:56:10 [[User:H. H. P. M. P. Cole]] M https://esolangs.org/w/index.php?diff=157695&oldid=148510 * H. H. P. M. P. Cole * (+44) 06:19:46 [[User:H. H. P. M. P. Cole/Logica]] N https://esolangs.org/w/index.php?oldid=157696 * H. H. P. M. P. Cole * (+1753) Created page with "'''Logica''' is an esolang for a 2-bit CPU created by Cole. There is no input/output. The CPU has four 2-bit registers. A typical instruction (all the variables are bits): aa bb cc dddd ee ==The breakdown of the instr 06:32:54 [[User:H. H. P. M. P. Cole/Logica]] M https://esolangs.org/w/index.php?diff=157697&oldid=157696 * H. H. P. M. P. Cole * (+19) 06:33:06 [[User:H. H. P. M. P. Cole/Logica]] M https://esolangs.org/w/index.php?diff=157698&oldid=157697 * H. H. P. M. P. Cole * (-27) 06:48:11 [[User:H. H. P. M. P. Cole/Logica]] M https://esolangs.org/w/index.php?diff=157699&oldid=157698 * H. H. P. M. P. Cole * (+79) 06:49:07 -!- impomatic has quit (Quit: Client closed). 06:52:31 -!- Sgeo has quit (Read error: Connection reset by peer). 06:57:07 [[User:H. H. P. M. P. Cole/Logica]] M https://esolangs.org/w/index.php?diff=157700&oldid=157699 * H. H. P. M. P. Cole * (+1934) 06:58:27 [[User:H. H. P. M. P. Cole/Logica]] M https://esolangs.org/w/index.php?diff=157701&oldid=157700 * H. H. P. M. P. Cole * (-33) 06:58:51 [[User:H. H. P. M. P. Cole/Logica]] M https://esolangs.org/w/index.php?diff=157702&oldid=157701 * H. H. P. M. P. Cole * (+2) 09:38:54 Hi 09:45:38 [[User:TenBillionPlusOne]] M https://esolangs.org/w/index.php?diff=157703&oldid=157661 * TenBillionPlusOne * (+0) /* Users */ 09:54:38 [[]] N https://esolangs.org/w/index.php?oldid=157704 * JIT * (+17) Redirected page to [[]] 10:05:31 [[User:TenBillionPlusOne/Sandbox]] https://esolangs.org/w/index.php?diff=157705&oldid=157692 * TenBillionPlusOne * (-277) 10:35:44 [[Hakerh]] N https://esolangs.org/w/index.php?oldid=157706 * TenBillionPlusOne * (+967) Created page with "{{WIP}} '''Hakerh''' is an esolang by [[User:TBPO]] that imitates [[User:Hakerh400]]'s esolangs. I made a timestamp below to mark where my transformation into Hakerh400 begun: ~~~ == Syntax == The program consists of function definitions: f(X) = Y Where uppe 10:36:39 [[Hakerh]] https://esolangs.org/w/index.php?diff=157707&oldid=157706 * TenBillionPlusOne * (-40) 11:30:52 [[Esolang:Categorization]] https://esolangs.org/w/index.php?diff=157708&oldid=157451 * TenBillionPlusOne * (-106) /* Input/output capabilities */ 11:32:20 [[Hakerh]] https://esolangs.org/w/index.php?diff=157709&oldid=157707 * TenBillionPlusOne * (+1433) 11:34:04 [[User:TenBillionPlusOne]] https://esolangs.org/w/index.php?diff=157710&oldid=157703 * TenBillionPlusOne * (+20) 11:38:53 [[Hakerh]] M https://esolangs.org/w/index.php?diff=157711&oldid=157709 * TenBillionPlusOne * (+0) 11:39:21 [[Hakerh]] M https://esolangs.org/w/index.php?diff=157712&oldid=157711 * TenBillionPlusOne * (+0) Undo revision [[Special:Diff/157711|157711]] by [[Special:Contributions/TenBillionPlusOne|TenBillionPlusOne]] ([[User talk:TenBillionPlusOne|talk]]) 11:44:39 [[OLNMLNE]] https://esolangs.org/w/index.php?diff=157713&oldid=101202 * TenBillionPlusOne * (+8) 11:46:51 Heh, want to the GCC bug tracker (there's a documentation mistake that I've been aware for at least a decade that I never get around reporting, and probably won't this time either), and it flashed that Anubis thing briefly, so I guess they've also had problems with scrapers. 11:46:54 [[Language list]] https://esolangs.org/w/index.php?diff=157714&oldid=157559 * TenBillionPlusOne * (+21) /* I */ 11:47:25 https://github.com/TecharoHQ/anubis <- this thing. 11:48:03 [[Language list]] https://esolangs.org/w/index.php?diff=157715&oldid=157714 * TenBillionPlusOne * (+15) /* C */ 11:48:27 [[Language list]] https://esolangs.org/w/index.php?diff=157716&oldid=157715 * TenBillionPlusOne * (+17) /* U */ 11:49:34 [[Language list]] https://esolangs.org/w/index.php?diff=157717&oldid=157716 * TenBillionPlusOne * (+48) /* H */ 11:50:50 (I'm sure it is very effective, but it also requires clients to execute JS, which pretty much disqualifies it instantly.) 11:59:06 I don't even know if they expect docs bugs through the bug tracker. The "gcc" product has a "web" component, described as "There is an error or omission on the Web pages", but most issues in it aren't about the manual. And there isn't a "doc" or "manual" component or anything similar. 12:03:17 [[Hakerh]] M https://esolangs.org/w/index.php?diff=157718&oldid=157712 * TenBillionPlusOne * (+21) /* Examples */ 12:03:54 [[Hakerh]] https://esolangs.org/w/index.php?diff=157719&oldid=157718 * TenBillionPlusOne * (-204) /* Examples temp */ 12:08:11 -!- wib_jonas has joined. 12:09:11 fizzie: which book from among the manuals, as in the titles listed at https://gcc.gnu.org/onlinedocs/ ? the main GCC Manual or some other one? 12:13:01 also do you have a patch or just a bug report? 12:13:15 [[User talk:H. H. P. M. P. Cole]] https://esolangs.org/w/index.php?diff=157720&oldid=157673 * Hotcrystal0 * (+306) 12:13:52 [[User talk:H. H. P. M. P. Cole]] https://esolangs.org/w/index.php?diff=157721&oldid=157720 * Hotcrystal0 * (-164) 12:14:06 [[User talk:H. H. P. M. P. Cole]] https://esolangs.org/w/index.php?diff=157722&oldid=157721 * Hotcrystal0 * (+2) 12:14:22 [[Micron Turi-Complete Aembly Lauage]] N https://esolangs.org/w/index.php?oldid=157723 * PrySigneToFry * (+5355) Created page with "Micron Turi-Complete Aembly Lauage(Micron Turing-Complete Assembly Language, MTCASM for short) is designed by PSTF, based on Assembly Language of Windows, and [[X-ASM]] by the same author. = Prologue = MTCASM is a Turing-Complete, Stron 12:15:12 [[Language list]] https://esolangs.org/w/index.php?diff=157724&oldid=157717 * PrySigneToFry * (+47) 12:16:50 I don't find any instructions on how to report documentation bugs without a patch. 12:17:33 I've reported a compiler bug for gcc but that was many years ago, never reported a doc bug for gcc. 12:18:48 [[User:PrySigneToFry/Silicon dioxide in a polypropylene box/Chess between HCr0 and PSTF]] https://esolangs.org/w/index.php?diff=157725&oldid=157582 * PrySigneToFry * (+29) 12:22:27 -!- amby has joined. 12:26:11 The main one, and I don't have a patch because I don't really want to make a judgement call on what to write instead. 12:26:18 The problem is in https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html and it's... well, this: https://zem.fi/tmp/fam.txt 12:27:54 oh heck, zero length array. I think the gcc devs wish they could go back in time and change that feature to never have existed in gcc, but they also can't remove it now because the linux kernel or some other programs depend on it too much. 12:28:15 Well, it's not really about zero-length arrays as such, it's about the standard mechanism (flexible array members). 12:40:56 [[Hakerh]] https://esolangs.org/w/index.php?diff=157726&oldid=157719 * TenBillionPlusOne * (+503) /* Examples */ 12:41:58 [[Hakerh]] https://esolangs.org/w/index.php?diff=157727&oldid=157726 * TenBillionPlusOne * (+0) /* SKI Calculus */ 12:50:46 [[Hakerh]] https://esolangs.org/w/index.php?diff=157728&oldid=157727 * TenBillionPlusOne * (-6) /* Basic relations */ 12:58:04 fizzie: hmm, that does look like the doc is misleading 12:59:14 -!- Sgeo has joined. 12:59:24 [[Hakerh]] https://esolangs.org/w/index.php?diff=157729&oldid=157728 * TenBillionPlusOne * (+393) 12:59:33 . o O ( the bigger scandal is that this is an extension ) 13:02:46 [[User talk:H. H. P. M. P. Cole]] M https://esolangs.org/w/index.php?diff=157730&oldid=157722 * H. H. P. M. P. Cole * (+123) 13:03:54 Can you even work around this reliably? I mean, sure, you can define a copy of the struct with a concrete length for the array and initialize that, then cast things around. But couldn't the alignment of that final field depend on its size? 13:04:50 I seem to recall that offsets are only guaranteed to be equal if the field types up to that point (including the field itself) are equal. 13:06:39 [[UNBABTIZED]] https://esolangs.org/w/index.php?diff=157731&oldid=38968 * Tpaefawzen * (+1217) 13:08:26 int-e: no. (1) we have C99 flexible arrays instead of the extension. (2) it's too late to add true zero-size objects to either C or C++, they'd break too much existing code, and zero-length arrays would break even more. (3) there's now a C++ attribute to help with the most common use case for when you would want zero-sized objects, which is when 13:08:27 one of the members of a struct is empty (as in padding only but not technically zero-sizeof) then it can overlap with other members of the same struct if you add the right C++ attribute from a recent C++ standard. (the previous workaround was to use a base instead of a member). (4) the other common use case is passing an empty (not zero sized) 13:08:27 struct to a function as argument. under the x86 ABI, if the struct is trivial then such a struct is already eliminated and doesn't consume any registers, so there's no run-time overhead. 13:08:42 sorry, I mean the xi6_64 gcc ABI, not the x86_32 ABI 13:11:30 -!- tromp has joined. 13:19:52 fizzie: have you tried to ask in #gcc on libera? 13:20:10 they might know how to submit doc bug reports 13:21:48 [[UNBABTIZED]] https://esolangs.org/w/index.php?diff=157732&oldid=157731 * Tpaefawzen * (+336) 13:22:29 [[UNBABTIZED]] https://esolangs.org/w/index.php?diff=157733&oldid=157732 * Tpaefawzen * (+25) /* External resources */ 13:42:38 -!- Noisytoot has quit (Excess Flood). 13:43:01 -!- Noisytoot has joined. 14:07:20 -!- wib_jonas has quit (Quit: Client closed). 14:09:19 [[WTF]] M https://esolangs.org/w/index.php?diff=157734&oldid=157649 * H33T33 * (+2) 14:12:52 [[User:Neon]] https://esolangs.org/w/index.php?diff=157735&oldid=157680 * Neon * (-258) /* Neon */ 14:15:50 [[User:Neon]] https://esolangs.org/w/index.php?diff=157736&oldid=157735 * Neon * (+0) /* Neon */ 14:18:54 [[WTF]] https://esolangs.org/w/index.php?diff=157737&oldid=157734 * H33T33 * (+43) 14:20:24 [[User:H33T33]] M https://esolangs.org/w/index.php?diff=157738&oldid=156989 * H33T33 * (+37) 14:31:58 -!- impomatic has joined. 15:10:27 -!- APic has quit (Ping timeout: 252 seconds). 15:11:56 -!- gry has quit (Ping timeout: 272 seconds). 15:12:34 -!- Noisytoot has quit (Ping timeout: 272 seconds). 15:14:29 -!- lynndotpy6 has quit (Ping timeout: 252 seconds). 15:14:49 -!- lynndotpy6 has joined. 15:14:59 -!- Noisytoot has joined. 15:15:18 -!- impomatic has quit (Ping timeout: 240 seconds). 15:15:21 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 15:18:45 -!- Bowserinator has quit (Ping timeout: 248 seconds). 15:19:32 -!- Bowserinator has joined. 15:33:11 -!- perlbot has quit (Ping timeout: 252 seconds). 15:33:20 [[Hakerh]] https://esolangs.org/w/index.php?diff=157739&oldid=157729 * TenBillionPlusOne * (+16) 15:36:27 -!- APic has joined. 15:37:47 -!- gry has joined. 15:41:32 -!- perlbot has joined. 15:44:59 [[I/M Machine]] https://esolangs.org/w/index.php?diff=157740&oldid=157306 * TenBillionPlusOne * (+38) 15:46:54 [[;;;*++]] https://esolangs.org/w/index.php?diff=157741&oldid=157689 * TenBillionPlusOne * (+19) 15:48:23 [[Interpreterion]] https://esolangs.org/w/index.php?diff=157742&oldid=157686 * TenBillionPlusOne * (+45) 15:49:06 -!- tromp has joined. 15:49:25 -!- impomatic has joined. 16:12:23 -!- impomatic has quit (Quit: Client closed). 16:16:18 [[Topple]] https://esolangs.org/w/index.php?diff=157743&oldid=157399 * H33T33 * (-7598) 16:18:08 [[Topple/Source Code]] N https://esolangs.org/w/index.php?oldid=157744 * H33T33 * (+7803) Created page with "[[Topple| Back to Topple]] ''Disclaimer: The current source file is bugged. The fixed file will be added ASAP'' ==Source Code== [[Topple/Source_Code|C Source Code]]
#include  #include  #include  #include  #include  [[User:Aadenboy/Live stats]] N https://esolangs.org/w/index.php?oldid=157745 * Aadenboy * (+3755) Created page with "
I appreciate this subtlety. 16:36:09 [[Irma]] M https://esolangs.org/w/index.php?diff=157749&oldid=157682 * Neon * (+402) 16:41:17 [[User:TenBillionPlusOne/Sandbox]] https://esolangs.org/w/index.php?diff=157750&oldid=157705 * TenBillionPlusOne * (-224) 16:48:44 -!- Noisytoot has quit (Excess Flood). 16:49:07 -!- Noisytoot has joined. 16:59:08 [[User:TenBillionPlusOne/Sandbox]] https://esolangs.org/w/index.php?diff=157751&oldid=157750 * TenBillionPlusOne * (+468) 17:04:52 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 17:15:47 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=157752&oldid=157599 * Henry * (+256) /* Introductions */ 17:16:05 [[PNPL]] N https://esolangs.org/w/index.php?oldid=157753 * Henry * (+5560) Created page with "{{infobox proglang |name=Prime Number Programming Language |paradigms=imperative |author=[[User:Henry]] |year=[[:Category:2025|2025]] |typesys= |memsys=[[:Category:Cell-based|Cell-based]] |dimensions=one-dimensional |class=[[:Category:Turing complete|Turing complete]] |refim 17:20:24 [[PNPL]] M https://esolangs.org/w/index.php?diff=157754&oldid=157753 * Henry * (+0) 17:20:25 -!- tromp has joined. 17:28:56 [[User:TenBillionPlusOne/Sandbox]] https://esolangs.org/w/index.php?diff=157755&oldid=157751 * TenBillionPlusOne * (-439) 17:32:42 -!- impomatic has joined. 17:36:47 [[User:TenBillionPlusOne/Sandbox]] https://esolangs.org/w/index.php?diff=157756&oldid=157755 * TenBillionPlusOne * (+225) 17:40:22 [[User:TenBillionPlusOne]] https://esolangs.org/w/index.php?diff=157757&oldid=157710 * TenBillionPlusOne * (+48) /* My esolangs */ 17:51:03 -!- Noisytoot has quit (Quit: ZNC 1.9.1 - https://znc.in). 17:55:22 -!- Noisytoot has joined. 17:58:23 -!- Noisytoot has quit (Client Quit). 17:59:55 I think zero-length arrays and zero-length structures are useful and are better than the flexible arrays of C99 and other work-arounds that shouldn't be needed. 18:01:10 They shouldn't guess why you want zero-length arrays and structures; it can just be allowed and then you can use it for whatever purpose is appropriate. It does have more uses than have been mentioned. 18:02:11 For example, sometimes you will be using a macro to retrieve a type or number from a structure but where that type or number is not actual data in the structure. Another use is if a name is required to be defined but does not need to do anything else, in which case it is suitable to take up zero space. There are others as well. 18:13:29 (I think there are problems with C; I would just allow zero-length stuff, and make other changes as well, including removing some of the C99 and later stuff while keeping some of it) 18:17:25 -!- Noisytoot has joined. 18:24:55 [[User talk:H. H. P. M. P. Cole]] https://esolangs.org/w/index.php?diff=157758&oldid=157730 * Hotcrystal0 * (+393) 18:25:21 [[User talk:H. H. P. M. P. Cole]] https://esolangs.org/w/index.php?diff=157759&oldid=157758 * Hotcrystal0 * (-162) 18:25:36 [[User talk:H. H. P. M. P. Cole]] https://esolangs.org/w/index.php?diff=157760&oldid=157759 * Hotcrystal0 * (+0) 18:31:06 -!- impomatic has quit (Quit: Client closed). 18:45:01 [[User:TenBillionPlusOne/Sandbox]] https://esolangs.org/w/index.php?diff=157761&oldid=157756 * TenBillionPlusOne * (+435) 18:47:05 zzo38: yes, zero-length arrays and zero-length structs are very useful, which is why rust supports them completely. they're just not worth to retrofit to an existing language like C or C++ without potentially silently breaking a lot of things that assume that zero-length data can't exist. 18:48:53 also the C++ attribute that I mentioned earlier is [[no_unique_address]], introduced by C++20 19:03:05 [[User:Neon]] https://esolangs.org/w/index.php?diff=157762&oldid=157736 * Neon * (-858) 19:06:15 Rust has its own problems, including Unicode string types, and I think also excessive dependencies for programs, and I don't know if Rust has a "goto" command. 19:07:24 However, although it might not be worth to retrofit to C99 and newer, it can be done as an extension of C89 to add and change some things (including some things of newer versions of C); a compiler operating in C99 and newer mode could disable the features that don't work if that becomes necessary 19:10:40 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 19:12:54 zzo38: the unicode string tyeps are only a mild problem that can be solved by some later library additions. the main thing that's currently missing from the stable part of standard library is a byte string infix in byte string search (like memmem in C), but the devs are already working on adding such functions. some of the IO and operating system abstractions also use the unicode string types, but those 19:13:00 are not so hard to replace with a different library. 19:14:55 I would generally recommend to just ignore the library unicode string types in rust, unless you want to modify the rustc compiler or write procedural macros. what's in and not in the standard library is very much influenced by what library functions rustc itself depends on. 19:22:35 -!- tromp has joined. 19:57:54 [[User talk:H. H. P. M. P. Cole/Logica]] N https://esolangs.org/w/index.php?oldid=157763 * Hotcrystal0 * (+262) Created page with "Is this a WIP? ~~~~" 19:58:33 [[User talk:H. H. P. M. P. Cole/Logica]] https://esolangs.org/w/index.php?diff=157764&oldid=157763 * Hotcrystal0 * (-162) 20:05:53 Having the Unicode string types means that library API calls would use it. (GOTO doesn't have this problem because even if a library uses GOTO that does not affect the API calls.) 20:08:57 (I think there are other problems with Rust and some of the more modern programming languages as well; C does have some problems but the newer ones (and sometimes newer versions of C) tend to make some things worse instead.) 20:11:22 [[User:Neon]] https://esolangs.org/w/index.php?diff=157765&oldid=157762 * Neon * (+16) 20:14:19 zzo38: also ziglang supports zero-length structures. I'm not too familiar with zig so I'm not entirely sure if it supports zero-length arrays too, but I think it does. 20:14:50 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 20:16:36 -!- tromp has joined. 20:24:23 -!- visilii_ has joined. 20:25:41 -!- Noisytoot has quit (Quit: ZNC 1.9.1 - https://znc.in). 20:26:07 -!- visilii has quit (Ping timeout: 276 seconds). 20:26:38 -!- Noisytoot has joined. 20:30:52 -!- Noisytoot has quit (Remote host closed the connection). 20:46:02 -!- Noisytoot has joined. 21:06:50 [[Language list]] M https://esolangs.org/w/index.php?diff=157766&oldid=157724 * Buckets * (+11) 21:07:21 [[User:Buckets]] M https://esolangs.org/w/index.php?diff=157767&oldid=157435 * Buckets * (+10) /* 2020 */ 21:07:44 [[Moxy]] N https://esolangs.org/w/index.php?oldid=157768 * Buckets * (+3080) Created page with "{{lowercase}} moxy(, which Stands for Malice-cive Over-infuriating, also filling you with Xurddjtsudutdiuf and Yjdtjxjfyxufifidfufduuf potential) is an Esoteric programming language created by [[User:Buckets]] in 2020, it was [[User:Buckets]]' First attempt to Make a "Hard 21:08:22 [[Moxy]] M https://esolangs.org/w/index.php?diff=157769&oldid=157768 * Buckets * (+2) 21:08:54 [[Moxy]] M https://esolangs.org/w/index.php?diff=157770&oldid=157769 * Buckets * (+1) 21:09:12 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 21:10:51 [[User:Buckets]] M https://esolangs.org/w/index.php?diff=157771&oldid=157767 * Buckets * (+0) 21:13:28 -!- tromp has joined. 21:18:20 [[User:Aadenboy/Live stats]] https://esolangs.org/w/index.php?diff=157772&oldid=157746 * Aadenboy * (+658) 21:34:22 -!- visilii_ has quit (Ping timeout: 276 seconds). 21:35:06 -!- visilii has joined. 21:42:52 [[PNPL]] https://esolangs.org/w/index.php?diff=157773&oldid=157754 * Henry * (+6360) 21:46:53 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 21:53:06 -!- tromp has joined. 22:03:41 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 22:55:41 [[User:Henry]] N https://esolangs.org/w/index.php?oldid=157774 * Henry * (+470) Created page with "Hi, my name is Henry, and I've reached this wiki since I like to both create and implement esoteric languages (above all, because most of the time their interpreters can be reduced to only a couple lines of Python). You can learn more about me in my [https://github.com 23:20:25 -!- Lord_of_Life has quit (Ping timeout: 244 seconds). 23:20:31 -!- Lord_of_Life_ has joined. 23:21:53 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 23:43:52 -!- amby has quit (Quit: so long suckers! i rev up my motorcylce and create a huge cloud of smoke. when the cloud dissipates im lying completely dead on the pavement).