←2023-01-03 2023-01-04 2023-01-05→ ↑2023 ↑all
00:01:34 <b_jonas> though 6502 isn't quite a good example because it at least has instructions to push/pop registers to the stack to save them
00:02:05 <b_jonas> but even so it mostly uses registers
00:02:20 <b_jonas> effectively the 256 null page bytes work as the most easily accessible global registers
00:10:46 <b_jonas> these days we don't really do this, partly because current CPUs and languages support stack-relative access or other way to do local variables well, plus we don't want to code to break if a function is called twice at the same time from potential recursion or multithreading
00:11:20 <b_jonas> multithreading in the broad sense
00:11:32 <b_jonas> cooperative threads count too
00:14:55 -!- __monty__ has quit (Quit: leaving).
00:31:46 -!- immibis_ has quit (Remote host closed the connection).
00:32:01 -!- immibis_ has joined.
01:29:51 <esolangs> [[Skim machine]] M https://esolangs.org/w/index.php?diff=105910&oldid=105909 * Kaveh Yousefi * (+1) Inserted a missing space following a comma (,) in the EBNF in order to promote consistency in the formatting.
02:39:09 <Sgeo> How do multi-stage games work in game theory?
02:39:27 <Sgeo> e.g. the players take an action, they see the results, then take more actions
02:39:53 <Sgeo> Which... I guess is most games more complicated than prisoner's dilemma or rock-paper-scissors
05:38:00 -!- slavfox has quit (Quit: ZNC 1.8.2 - https://znc.in).
05:43:04 -!- slavfox has joined.
06:21:24 -!- bgs has joined.
06:43:49 <esolangs> [[Special:Log/newusers]] create * Octogeddonling * New user account
06:53:53 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=105911&oldid=105890 * Octogeddonling * (+128) /* Introductions */
06:55:02 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=105912&oldid=105911 * Octogeddonling * (+30) Sorry i forgot to scan all of the informations above
07:01:50 <esolangs> [[Raplan]] N https://esolangs.org/w/index.php?oldid=105913 * Phao * (+7571) Created page with "{{infobox proglang |name=SYCPOL |paradigms=procedural, imperative |author=[[Phao|User:Phao]] |year=[[:Category:2023|2023]] |memsys=variable-based |dimensions=one-dimensional }} '''''WARNING:This file is formatted use markdown, so it have not styles in [[Main Page|esolangs.o
07:03:24 -!- bgs has quit (Remote host closed the connection).
07:47:26 <b_jonas> Sgeo: as in games that aren't complete information or have randomness?
07:50:08 <Sgeo> Which does a game like rock-paper-scissors count as?
07:53:05 <b_jonas> Sgeo: that's one with non-complete information, but games with randomness might best be regarded as a subset of games with non-complete information
07:53:18 <b_jonas> it's just that you might think of the latter as a special case of the former
07:56:08 <b_jonas> think, if you wish, of Scrabble or card games like contract bridge or Magic: the Gathering, which have both randomness and hidden information; and adversarial mastermind/hangman/wordle or twenty question where an opponent tries to choose a hard solution to guess, or Starcraft or Warcraft or Age of Empires as examples for games with hidden information (the word to be guessed or the state behind fog of
07:56:14 <b_jonas> war if you wish)
07:57:27 <b_jonas> the randomness doesn't really add much new once you have hidden information, because random strategies naturally arise as the best often in games with hidden information
08:03:19 <b_jonas> whereas eg. go=baduk is a finite game with perfect information, no randomness, which means if the parties have unlimited computational power then it's not necessary to use random strategies, because in every state the outcome with both players playing best is predetermined
08:07:55 -!- Sgeo has quit (Read error: Connection reset by peer).
08:47:25 <esolangs> [[Joke language list]] https://esolangs.org/w/index.php?diff=105914&oldid=105556 * Octogeddonling * (+100) /* General languages */
08:49:07 <esolangs> [[Treee]] N https://esolangs.org/w/index.php?oldid=105915 * Octogeddonling * (+2588) created
08:50:54 <esolangs> [[Treee]] M https://esolangs.org/w/index.php?diff=105916&oldid=105915 * Octogeddonling * (+1) /* Grammar */
09:42:02 -!- EnergyAlp has quit (Quit: Connection closed for inactivity).
09:49:54 -!- wib_jonas has joined.
10:36:11 -!- Lord_of_Life has quit (Ping timeout: 264 seconds).
10:38:40 -!- Lord_of_Life has joined.
10:55:03 <int-e> b_jonas: Oh I see, the avatar where googlemail has the sign out button is invisible to me.
10:55:32 <int-e> as a result of me blocking googleusercontent.com
10:57:16 <wib_jonas> int-e: oops, I don't think I've encountered that for google in particular, but I've seen that kind of nonsense in other webpages plenty of times. like in the in-house developed work time keeping web application in our previous job, where you could suddenly change your password iff your browser window is wide enough, because it has some kind of CSS
10:57:16 <wib_jonas> nonsense that helpfully hides some of the UI elements on normal sized windows so the rest would fit more easily
10:58:21 <wib_jonas> int-e: just to confirm, does the hidden avatar happen also in google search and google drive, or only google mail?
10:58:38 <wib_jonas> heck, or even youtube
10:59:01 -!- __monty__ has joined.
10:59:34 <wib_jonas> hmm, youtube might be different, at least I get a different avatar with just a letter in a circle because I have customized my displayed username on youtube
11:04:04 <int-e> wib_jonas: which is a me problem, but the UI doesn't even look like anything is missing in that corner: https://int-e.eu/~bf3/tmp/hidden_avatar.png
11:04:25 <int-e> (because they also put icons to the right
11:06:01 <int-e> wib_jonas: I don't know. The whole point of logging out is that there'll be no avatar in search or youtube
11:06:52 <wib_jonas> int-e: it's kind of an us problem, I use browser plugins in a way that invisibly break some webpages. though you can also blame web developers for it, because some of these webpages can also break in a way where if a script or other resources is missing, even if not because you block it with a plugin, but because of a network error, then it caches
11:06:53 <wib_jonas> the missing thing and behaves in silently incorrect ways, such as invisible icon or "search found no results" instead of "search couldn't connect to server", even when the resource later becomes reachable, unless you force-refresh
11:07:56 <wib_jonas> int-e: yeah, I should probably make a separate for-work account, so that when used for work, youtube or google search doesn't suggest results based on personal searches when someone else can see my monitor
11:08:53 <wib_jonas> google suggestions are to some extent helpful enough so as to not pressure you to do that, but still
11:15:36 <int-e> Oh well, I generated an app password. Maybe that'll make me happier in the future.
11:15:52 <fizzie> It always feel weird when you land on Wikipedia's mobile site (en.m.wikipedia.org for example) on a desktop browser, for example though a link somewhere else. Like, something's just... off.
11:17:21 <int-e> only 7 "security alerts"
11:17:30 <int-e> aka crying wolf
11:18:26 <wib_jonas> fizzie: yeah, for someone running a website there's always a tradeoff there. do you allow URLs to override the views (whether in a parameter or part of the path or host)? if yes, then people will share such links to others for which the view is wrong, like mobile view or wrong language etc. if no, then people are required to use cookies or https to
11:18:26 <wib_jonas> set the view correctly, they can't use GET parameters as a fallback when they don't want to accept a cookie but want to change the view. neither choice is good.
11:19:25 <int-e> Oh I see, I literally get every alert twice.
11:19:52 <int-e> Once to the google mail account, and once to the linked email address. But the former is forwarded to the latter...
11:20:24 <wib_jonas> At least Wikimedia doesn't have a choice, there are lots of custom reformatted mirrors of their sites so people can already link to one to force the wrong view.
11:49:22 -!- bgs has joined.
12:22:12 -!- linux has joined.
12:22:50 -!- linux has changed nick to IdfbAn.
12:24:52 -!- IdfbAn has left.
12:55:54 <wib_jonas> question. what's the first programming language where, in a function body, you don't need an explicit return statement to return the last expression (like in perl), but *only* if you don't put a semicolon after the expression, and if you put a semicolon then it's a void function (ignores the expression before the semicolon and returns some null
12:55:55 <wib_jonas> value)? Mathematica and rust are like this, but perhaps there are earlier examples
12:57:49 <FireFly> I think it stems from ML
12:58:08 <FireFly> possibly older, but that already goes back a bit ig
12:59:59 <FireFly> I know matlab does too, but that's basically concurrent with mathematica
13:00:51 <wib_jonas> I don't think matlab does it
13:01:12 <wib_jonas> what matlab does is that a semicolon suppresses printing the result; a comma or no separator prints the result to the console, even inside a function
13:01:16 <FireFly> ohh right
13:01:19 <wib_jonas> but I could be wrong
13:01:28 <FireFly> yeah you're right, I misremembered
13:04:42 <wib_jonas> python is funny about this: if you type for _c in range(10): 4; in the interactive console then the 4 and 5 both get printed 10 times, but this doesn't happen for statements inside a subroutine, only inside ifs/loops. matlab is worse because the values are printed even inside a function and even in non-interactive mode, so you need semicolons
13:04:43 <wib_jonas> everywhere. we just don't notice that because we're C programmers so we're used to putting semicolons after every expression-statement.
13:04:55 <wib_jonas> I'll look up how ML works, I don't recall this
13:05:41 <FireFly> I remember matlab's behaviour being really frustrating when I had to use it for class
13:06:10 <FireFly> I'd so often use it the wrong way around (use a semicolon when it would've been useful to have the result interactively, and then forget it when I don't
13:06:54 <wib_jonas> it's hard because SML doesn't have an open language specification anywhere (worse than C and C++, whose official specs are sold for money only, but the final draft that's almost the same is public for free)
13:07:21 <wib_jonas> (organizations still need the spec that costs money so they can claim that they are compliant, but normal people don't)
13:07:55 <wib_jonas> but from what I can see so far I don't think Standard ML is like this
13:13:56 <wib_jonas> Firefly: I'm not sure, but from my web search it seems that in Standard ML you put semicolons after declarations, but not between expressions like a C comma operation. kind of like in Haskell, though in Haskell they separate a bit more than just declarations, but still not expressions except kind of in a do-block
13:15:20 <FireFly> hm okay
13:15:24 <FireFly> I misremember then
13:17:20 <wib_jonas> hmm,  https://people.mpi-sws.org/~rossberg/sml.html says you can put semicolons between expressions in SML, or in whatever dialect that describes, though even that seems to imply no trailing semicolon after an expression
13:17:42 <wib_jonas> https://learnxinyminutes.com/docs/standard-ml/ same
13:19:33 <FireFly> yeah, I guess I was thinking of the general idea of "sequence of semicolon-separated expressions and returning the last one"
13:19:49 <wib_jonas> to my defense, the Olvashato compiler uses standard ML as an almost pure functional language (not quite as much as Haskell is, because I still used throw/catch), so it doesn't have a progn expression and doesn't need to emit C-like comma
13:19:52 <FireFly> but that's slightly different from the thing of having semicolon at the end imply returning an empty value
13:20:34 <wib_jonas> right, perl and more have just the implicit return in function bodies, the tricky part that I'm asking about is when the trailing semicolon suppresses that
13:21:07 <int-e> In Rust it does.
13:21:50 <int-e> The value of { 2 } is 2; the value of { 2; } is ()
13:22:06 <wib_jonas> int-e: yes, I started from "Mathematica and rust are like this" and am asking for examples earlier than rust, ideally earlier than Mathematica
13:22:26 <int-e> Hmm, Mathematica is ancient.
13:22:45 <wib_jonas> int-e: yes it is, though I don't know how ancient the semicolon operator is but I suspect that's ancient too
13:22:48 <int-e> (Not Lisp-ancient, of course)
13:23:08 <wib_jonas> https://logs.esolangs.org/libera-esolangs/2022-12.html#lnP
13:23:25 <wib_jonas> but I would like to see other examples older than rust even if they aren't older than Mathematica
13:23:56 <wib_jonas> int-e: not Plankalkül-ancient
13:24:29 <fizzie> I kind of vaguely recalled Scala was like that, but at least on a cursory inspection it doesn't seem to do semicolons at all, and the value of a block is always the value of its last expression.
13:24:43 <int-e> gp's semicolon doesn't suppress the return value
13:24:43 <wib_jonas> I'm absolutely unfamiliar with Scala
13:24:55 <wib_jonas> int-e: what "gp"?
13:25:00 <int-e> pari/gp
13:25:04 <wib_jonas> oh, pari/gp, right
13:26:03 <int-e> (a truly offensive language actually because it's utterly whitespace-blind)
13:27:09 <int-e> (so `co s(0)` evaluates to 1.0)
13:29:20 <wib_jonas> I know very little about PARI/GP toio
13:29:36 * JAA gets flashbacks to FORTRAN.
13:29:54 <wib_jonas> int-e: why is that offensive? FORTRAN and some dialects of BASIC are like that too
13:30:10 <wib_jonas> AX OR BX gets parsed as A XOR BX
13:31:15 <int-e> well, that is also offensive
13:31:35 <wib_jonas> folklore is that FORTRAN syntax is bad because people didn't understand parsers and grammars yet and so couldn't design a good syntax, in particular asyntax that works with whitepace-blindness, properly, but I'm not sure if that's actually true or a story invented later
13:32:14 <int-e> Some old software has excuses for that though, having to work with stringent resource constraints and all that.
13:33:03 <wib_jonas> you could design syntaxes where whitespace-blindness isn't a problem, eg. because you never put two letter-thingies or number-thingies next to each other, it just doesn't happen too often except in special-purpose languages
13:33:57 <wib_jonas> int-e: they have an excuse for not requiring whitespace between A and XOR, so the source code can be compact; do they also have an excuse for misparsing AX OR with the space so the ROM can be compact too?
13:34:26 <wib_jonas> you might be right\
13:34:39 <int-e> they have an excuse for not storing the whitespace in memory
13:35:12 <wib_jonas> int-e: BASIC does store the whitespace if you type it\
13:36:30 <wib_jonas> I mean the folklore also says that old languages don't have lexical scoped local variables, so let a = 4; function f() { return a; } function g() { let b = 5; return f(); } g() returns 5 instead of 4, because people didn't understand how to implement lexically local variables, but I think that's false and it's also because of resource constraints
13:36:54 <int-e> I'm not convinced that they ever had an excuse for ignoring whitespace on input so that "AX OR BX gets parsed as A XOR BX"
13:36:57 * int-e shrugs
13:37:55 <int-e> not having a systematic approach to parsing is a plausible reason though I guess
13:39:29 <fizzie> Actually, looking at the lanugage reference, Scala *does* work like that, it's just one of those languages where the semicolons almost never get used because newlines mostly act as implied ones.
13:39:46 <int-e> that reminds me of how Knuth goes into subroutine linking (where they'd patch the final branch in a function's implementation) that didn't support recursion
13:40:13 <fizzie> "A block expression {s1; ……; sn; e} is constructed from a sequence of block statements s1,…,sn and a final expression e. -- The final expression can be omitted, in which case the unit value () is assumed."
13:40:26 <wib_jonas> int-e: I think that's realistic on some old cpus that don't have built-in stack even for return addresses
13:40:44 <fizzie> Scala dates back to 2004, so older than Rust but not older than Mathematica.
13:40:50 <int-e> Scala is a lot like SML
13:41:18 <int-e> wib_jonas: it is
13:41:37 <wib_jonas> int-e: and look, he only does that on MIX, and even of that he says its J register is quirky, MMIX has a modern recursive calling convention; though his full view we'll only find out in one of the next volumes
13:41:50 <int-e> self-modifying code was also a pretty good idea for a long time
13:42:22 <int-e> (multi-threading? preemption? what are those?)
13:43:23 <wib_jonas> int-e: TAOCP chapter 8 is about Recursion, so that'll tell more about that; though mind you, we already have an example with cooperative coroutines with the self-modifying calling convention in chapter 1, because even though it's coroutines switching contexts, no function is active more than once at the same time
13:44:56 <wib_jonas> int-e: yep. and people even do preemptive interrupts and memory-safe operating system interrupts without a stack, where they just ensure that the interrupt routine doesn't get called inside an interrupt, see TAOCP chapter 1 for an example, or at least there are only a few (compile-time constant) levels of interrupts where an interrupt can only
13:44:57 <wib_jonas> interrupt a lower-level interrupt
13:46:34 <wib_jonas> incidentally, does anyone happen to have a plot of Knuth's estimated completion time of TAOCP volume 5, as shown on https://www-cs-faculty.stanford.edu/~knuth/taocp.html#vol4 , as a function of time? it used to say 2020 but now it says 2025.
13:46:58 <wib_jonas> I'll have to ask the wayback machine
13:48:53 <int-e> Volume 5? Somehow I don't expect that to happen.
13:49:22 <wib_jonas> I'm hopeful but afraid
13:49:30 <wib_jonas> s/afraid/scared/
13:49:48 <fizzie> When I started at my current employer (early 2015), the new office building they're building was supposed to be ready in four years. Now it's supposed to be ready in... two or three, I think.
13:50:44 <wib_jonas> int-e: oh, I'm not talking about it being ready in 2025
13:50:54 <int-e> wib_jonas: me neither
13:52:15 <int-e> I'm just looking at volume 4 and see a long road ahead just for that. And Knuth is not getting any younger.
13:56:50 <wib_jonas> int-e: he is managing to remove distractions from TAOCP better than he used to. and volume 4B got published much quicker after 4A than 4A after 3 second edition, hasn't it? hmm, 11 years between 4A and 4B, so perhaps 4C in 2030 and 4D in 2040... yeah, that doesn't sound good unless the rest of 4 fits in 4C
14:05:53 <wib_jonas> I bisected, https://web.archive.org/web/20151110202229/http://www-cs-faculty.stanford.edu:80/~uno/taocp.html says "estimated to be ready in 2020", https://web.archive.org/web/20160106022059/http://www-cs-faculty.stanford.edu:80/~uno/taocp.html says "in 2025" about volume 5
14:06:31 <wib_jonas> let me see if there's a captured version that says earlier than 2020
14:06:52 <wib_jonas> yes there is, https://web.archive.org/web/20030501185133/http://www-cs-faculty.stanford.edu/~uno/taocp.html predicts 2010
14:07:09 <wib_jonas> and https://web.archive.org/web/20021013094543/http://www-cs-faculty.stanford.edu/~uno/taocp.html predicts 2009
14:07:30 <wib_jonas> we should make the full plot from this
14:08:29 <wib_jonas> that earliest capture from 2002 also says "If all goes as planned, Volumes 4A, 4B, and 4C will be ready in the year 2007."
14:49:44 -!- simcop2387 has quit (Read error: Connection reset by peer).
14:49:58 -!- perlbot has quit (Read error: Connection reset by peer).
14:51:34 -!- simcop2387 has joined.
14:53:05 -!- perlbot has joined.
15:10:41 -!- wib_jonas has quit (Quit: Client closed).
15:21:42 -!- wib_jonas has joined.
15:25:00 <wib_jonas> I was wondering if the password or channel topic should mention something about how the ex-pope Benedict XVI died right before the end of the year, which sounds like the start of a horror movie about an undead apocalypse that starts (or is revealed to the protagonist) right at the chime of midnight when the year starts, and a prophecy is found
15:25:00 <wib_jonas> about a ritual to banish the undead, but the ritual needs to be performed by two (or three) popes
15:31:24 <fizzie> On an unrelated note, if a pope and an antipope ever meet, do they annihilate each other and emit a... bishop? Or something.
15:32:20 -!- wib_jonas has quit (Quit: Client closed).
15:38:30 -!- wib_jonas has joined.
15:39:23 <wib_jonas> fizzie: I heard the annihilition part, it's probably folklore, but I don't think the result can be a bishop
15:40:13 <wib_jonas> https://rationalwiki.org/wiki/Antipope mentions the annihilation but in a clause that's crossed out
15:40:14 <fizzie> Yeah, I'm not sure what the liturgical equivalent of a photon is.
15:40:39 <FireFly> there's tim pope, is there also a tim antipope
15:43:11 -!- Sgeo has joined.
15:50:22 <esolangs> [[Treee]] M https://esolangs.org/w/index.php?diff=105917&oldid=105916 * PythonshellDebugwindow * (+116) /* Miscellaneous */ Categories
15:55:20 <wib_jonas> I'm visualizing the ritual with three popes rather than two because of the Casey & Andy storyline from http://www.galactanet.com/comic/view.php?strip=461 where they urgently need to perform a ritual that needs three monarchs, but some people want to stop the ritual so they kidnap the queens of the three kingdoms unavailable, so now they quickly
15:55:21 <wib_jonas> have to find three monarchs as replacements
16:01:26 <wib_jonas> and it's mostly Jules Verne's "Hector Servadac" that I'm thinking of for the apocalypse that happens exactly at the chime of midnight, especially the one at the middle of the book
17:34:53 -!- wib_jonas has quit (Quit: Client closed).
18:01:54 -!- perlbot has quit (Quit: ZNC 1.8.2+deb3+b3 - https://znc.in).
18:01:54 -!- simcop2387 has quit (Quit: ZNC 1.8.2+deb3+b3 - https://znc.in).
18:04:39 -!- simcop2387 has joined.
18:06:10 -!- perlbot has joined.
20:03:11 <esolangs> [[Special:Log/newusers]] create * Angrylad * New user account
20:04:54 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=105918&oldid=105912 * Angrylad * (+80) /* Introductions */
20:05:38 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=105919&oldid=105918 * Angrylad * (+30) /* Introductions */
20:12:44 <esolangs> [[User:Angrylad]] N https://esolangs.org/w/index.php?oldid=105920 * Angrylad * (+113) anrubfiankc
20:15:51 <esolangs> [[User talk:Angrylad]] N https://esolangs.org/w/index.php?oldid=105921 * Angrylad * (+67) made it
20:16:11 <esolangs> [[User talk:Angrylad]] M https://esolangs.org/w/index.php?diff=105922&oldid=105921 * Angrylad * (-9)
20:16:37 <esolangs> [[User talk:Angrylad]] https://esolangs.org/w/index.php?diff=105923&oldid=105922 * Angrylad * (-2)
20:16:49 <esolangs> [[User talk:Angrylad]] M https://esolangs.org/w/index.php?diff=105924&oldid=105923 * Angrylad * (-3)
20:17:09 <esolangs> [[User talk:Angrylad]] M https://esolangs.org/w/index.php?diff=105925&oldid=105924 * Angrylad * (+5)
20:30:42 <zzo38> About views in URLs, I should think that what might be helpful (although I do not know how to actually implement such a thing) would be "data-oriented URLs" (which is not the same as the "data:" scheme), that you can specify what data is being accessed independently from any views, and also to be independent of e.g. Scryfall vs Gatherer, or NNTP vs HTTP, etc.
20:53:51 <b_jonas> oh, unrelated question. you know how Python is shipped not only with bigints, but also with a library for rational numbers and one for decimal bigfloats, but not one for binary bigfloats? I just realized why that is. the main point isn't that the rational and bigdecimal libraries are useful directly. it's that python wants to harmonize hashing so that two numbers of always hash to the same hash if they
20:53:57 <b_jonas> are numerically equal even if they're different types, and they don't just want to document the spec for that, but also give you reference code that you can look up and compare your hash function to. that rationals and bigdecimals are weirder than bigfloats means you're more likely able to use them as examples for a hash function.
20:55:19 <b_jonas> of course you can still use external libraries that implement any of bigint, bigrat, bigfloat, bigdecimal, and complexes and more, there's enough operator overload and similar defined so that multiple libraries can implement them independently and with different performance characteristics
21:38:29 <esolangs> [[]] N https://esolangs.org/w/index.php?oldid=105926 * Rehydratedmango * (+1733) just a thing i thought of
21:38:48 <esolangs> [[]] M https://esolangs.org/w/index.php?diff=105927&oldid=105926 * Rehydratedmango * (+0)
21:39:11 <FireFly> now that looks cursed
21:40:16 <FireFly> the actual article title is "′" but I guess the bot might strip non-ascii from the reported title?
21:40:37 <fizzie> Yeah, I should really fix that some day.
21:41:17 <fizzie> The intent was to strip just control characters, but I think there was a mishap about signedness, and the <32 condition also stripped everything with a high bit set.
21:41:21 <fizzie> Or something along those lines.
21:41:36 <FireFly> I was thinking for a moment it was an article named a zwsp or something
21:42:49 <fizzie> `unidecode ′
21:42:50 <HackEso> ​[U+2032 PRIME]
22:58:09 <esolangs> [[Treee]] https://esolangs.org/w/index.php?diff=105928&oldid=105917 * Rehydratedmango * (+18) Adding to category "2023"
22:58:29 -!- __monty__ has quit (Quit: leaving).
22:59:57 -!- stazarzxy has joined.
23:22:04 -!- stazarzxy has quit (Quit: Client closed).
←2023-01-03 2023-01-04 2023-01-05→ ↑2023 ↑all