|
🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). Log available at irclogs.raku.org/raku/live.html . If you're a beginner, you can also check out the #raku-beginner channel! Set by lizmat on 6 September 2022. |
|||
| disbot7 | <antononcube> @liznat I am wrapping up the first version-- I will schedule it / publish it within 1 hour. | 00:04 | |
| <antononcube> I will post the final version by midnight ET. | |||
| <antononcube> I.e. within 5 hours. | 00:05 | ||
| <aruniecrisps> lizmat: what is the general timeline for 6.e's release? | 01:04 | ||
| [Coke] | "when it's ready" | 01:12 | |
| We have a list of items that need doing, and a limited base of core developers to hack | 01:13 | ||
| disbot7 | <aruniecrisps> gotcha so there's no tight deadline | 01:22 | |
|
01:40
arkiuat left
01:48
arkiuat joined
02:15
notable6 left,
notable6 joined,
bisectable6 left,
shareable6 left
02:16
evalable6 left,
committable6 left,
quotable6 left,
greppable6 left,
nativecallable6 left,
releasable6 left,
coverable6 joined
02:17
committable6 joined
02:18
unicodable6 joined,
evalable6 joined,
bloatable6 joined,
notable6__ joined,
linkable6 left,
nativecallable6 joined,
greppable6 joined
02:19
quotable6 joined,
sourceable6 left,
shareable6 joined,
benchable6 joined,
notable6 left,
sourceable6 joined
02:20
releasable6 joined,
linkable6 joined,
bisectable6 joined
02:21
tellable6 joined
02:34
hulk joined,
kylese left
|
|||
| disbot7 | <antononcube> @lizmat Published. (I forgot to add "Day 24 -- " initially.) | 02:40 | |
|
03:15
hulk left,
kylese joined
04:17
lichtkind__ joined
04:20
lichtkind_ left
04:39
arkiuat left
04:40
arkiuat joined
04:46
arkiuat left
04:47
arkiuat joined
05:16
Aedil left
05:26
Aedil joined
05:49
human-blip left
05:51
human-blip joined
07:31
arkiuat left
07:44
arkiuat joined
07:50
arkiuat left
07:53
arkiuat joined
07:57
arkiuat left
08:33
librasteve_ joined
08:42
arkiuat joined
08:47
arkiuat left
08:48
arkiuat joined
08:53
arkiuat left
08:59
Sgeo left
09:05
arkiuat joined
09:09
arkiuat left
09:29
arkiuat joined
09:34
arkiuat left
10:00
ShimmerFairy left
10:03
arkiuat joined
10:08
arkiuat left
10:31
arkiuat joined
10:36
arkiuat left
10:42
ShimmerFairy joined
|
|||
| Geth | raku.org: librasteve++ created pull request #285: Vendor the Butterfly image, Pin to Air:ver<0.0.2> |
10:52 | |
| disbot7 | <librasteve> NB: that's Air:ver<0.1.2> | 10:58 | |
| lizmat | yeah, I checked :-) | 11:00 | |
|
11:06
arkiuat joined
11:11
arkiuat left
11:15
arkiuat joined
11:19
arkiuat left
|
|||
| librasteve_ | Umami stats for new raku.org usercontent.irccloud-cdn.com/file/....33.32.png | 11:34 | |
| Same - but daily view (showing early peak driven by HN announcement) usercontent.irccloud-cdn.com/file/....32.49.png | |||
| lizmat: maybe some visuals for your state of the onion post | 11:35 | ||
| lizmat | why the country is not Singapore? | 11:45 | |
| perhaps better next year, so we can do comparison ? | 11:47 | ||
| as we don't have a comparison with the old site ? | |||
|
11:49
arkiuat joined
11:54
arkiuat left
|
|||
| librasteve_ | I don’t know if we have stats for old site - sorry | 11:55 | |
| lizmat | we don't afaik | ||
| librasteve_ | on SG - I am sceptical that we get the reported number of visitors from there … in sample I am looking at Singapore is 1.32k, US 996, China 294, Germany 242 … it is known as wild west for site scammers | 12:01 | |
| and SG is all concentrated into certain dates (seems to have subsided now) | 12:03 | ||
| it’s quite interesting to see that the site gets about 100 unique visitors / day on average and that about 6% go to the Install page … wonder if there’s a way to get rakubrew download stats to correlate? | 12:10 | ||
| and 5% to community | |||
| lizmat | patrickb might be able ? | 12:11 | |
| Geth | raku.org/main: 9 commits pushed by librasteve++ | 12:13 | |
|
12:16
arkiuat joined
12:20
arkiuat left
12:48
arkiuat joined
12:53
arkiuat left
13:17
arkiuat joined
13:22
arkiuat left
13:51
arkiuat joined
14:00
arkiuat left
14:18
arkiuat joined
14:23
arkiuat left
14:29
arkiuat joined
14:37
arkiuat left
14:50
arkiuat joined
14:56
arkiuat left
15:15
arkiuat joined
15:17
Aedil left
15:23
arkiuat left,
itaipu left
15:27
itaipu joined
15:52
arkiuat joined
15:57
arkiuat left
16:05
arkiuat joined
16:12
arkiuat left
16:23
arkiuat joined
16:28
arkiuat left
16:31
arkiuat joined
16:36
arkiuat left
|
|||
| tbrowder | ok, | 16:38 | |
|
16:40
arkiuat joined
|
|||
| tbrowder | that last advent post by antononcube is something that would help to attract new coders--as they say | 16:42 | |
| good job!! | |||
| disbot7 | <antononcube> Thank you! I was considering inscribing "2026" or snowflake(s) onto the mazes but that is too much work. (Both to program and to explain.) | 16:44 | |
|
16:45
arkiuat left
|
|||
| disbot7 | <antononcube> So, I opted to just generate an image of a raccoon in snow-covered maze. | 16:45 | |
| tbrowder | anyone know how to do that with Python? a comparison of the two methods would make a good pitch for Raku | ||
|
16:46
arkiuat joined
|
|||
| tbrowder | using more that | 16:46 | |
| *than core packages | 16:47 | ||
| disbot7 | <antononcube> Well, Python has interfaces to powerful graph librararies written in C and C++. So programming the core ideas is not that hard. What would be hard it the graph plotting and finding geometric nearest neighbors. For the latter, most likely some of the big Machine Learning (ML) libraries have to be used. | 16:49 | |
| tbrowder | maybe when i get the PS snow flake code public it can help-your pic is very nice as is is | ||
| disbot7 | <antononcube> The problem is making a large enough maze over the vertices on which to project a word or a snowflake. | 16:50 | |
| <antononcube> Even if that is done the maze itself might too hard to solve or too messy to look at. | |||
| <antononcube> Meaning, a fair amount of experimentation has to be done in order to produces good results. | 16:51 | ||
| <antononcube> (Which I decided, is too time consuming.) | |||
| tbrowder | oh, i see, i was thinking you meant snowflakes falling...but still, mine may be useful--lizmat and librasteve and jmerelo see them on our Christmas poem | 16:55 | |
| korvo | tbrowder: Finding spanning trees isn't in Python's stdlib, but everything else is. Graphs are usually represented as an adjacency structure. | 16:57 | |
| tbrowder | only equal hexagonal pieces of filled traiangular and rectangular areas, no curved lines | 16:58 | |
|
16:58
arkiuat left
|
|||
| disbot7 | <antononcube> I have plans to hook igraph (igraph.org) to Raku. That C-library has interfaces Python, R, and Wolfram Language. | 16:59 | |
| <antononcube> @korvo It is not just the spanning tree finding. There are fair amount of "convinience" functions that have to be in place too. (The maze making.) | 17:00 | ||
| korvo | antononcube: Sure, precisely reproducing that blog post with Python would be a chore. However, I don't think that that's a good comparison of languages. | 17:01 | |
| disbot7 | <antononcube> For example, subgraph, graph union, finding neighborhood graphs, etc. | ||
| korvo | TBH if y'all were to invest into a fast Raku then you could handily beat Python just by advertising speed. CPython is notoriously slow and its maintainers aren't interested in making it structurally faster. | ||
|
17:01
arkiuat joined
|
|||
| korvo | ...To be *too* honest, I'm mostly blocked on thinking up a good name for Raku in RPython, or NQP in RPython, but I'm willing to do the JIT parts. | 17:02 | |
| disbot7 | <antononcube> The maze making blog post can be more or less precisely translated to Wolfram Language (WL). | ||
| <antononcube> I was planning to do that today, but I started doing some surface fitting with WL... | 17:03 | ||
| <antononcube> @korvo Related to your language comparsion point -- that is a good reason to "igraph"-based implementations. They can transfered easily between Python, R, and WL. | 17:04 | ||
| korvo | I suppose. That sounds completely uninteresting to me, but I can understand why people would want it. FWIW as one of the igraph maintainers for nixpkgs I would recommend against it; it works but it's brittle and unsafe. | 17:05 | |
| Similarly, basic operations like subgraphs or unions are done with one-liners. Python has comprehensions (from Setl, I think) and it's not hard to build a new adjacency structure from old ones. | 17:06 | ||
| disbot7 | <antononcube> Interesting point about the brittleness of "igraph" ! | 17:07 | |
| <antononcube> No, subgraphs and unions are not one liners. | 17:08 | ||
|
17:10
arkiuat left
|
|||
| disbot7 | <antononcube> @korvo Do you know any published discussion on the brittleness of "igraph" ? | 17:13 | |
| <antononcube> I am very interested in reasons not to use it. | |||
|
17:20
arkiuat joined,
Chris3101 joined
|
|||
| korvo | Nope. It's just the opinion of one distro maintainer who had to use it for a while. | 17:28 | |
| disbot7 | <antononcube> Ok. | 17:37 | |
| timo | korvo: are you interested in looking at moarvm's specializer and JIT compiler? | 17:41 | |
| korvo | timo: A little. However, I specialize in RPython. (The other option out there is GNU Lightning, which can be much faster if it aligns with the high-level language.) | 17:42 | |
| My next RPython project is planned to be a uxn interpreter. I could be persuaded to do something else. | 17:43 | ||
| timo | neat. i was also quite into pypy a couple of years ago | 17:45 | |
| korvo | I'm all-in on RPython. I've looked into the options and I think that it's the best power-size ratio of the JIT compilers. I have a Nix flake with quite a few RPython interpreters available: github.com/rpypkgs/rpypkgs | 17:47 | |
| timo | whole-program type-inferrence is definitely interesting, and fully automatic root finding is convenient | 17:49 | |
| i assume that also means you're not that interested in going down to the assembly level? | 17:51 | ||
| korvo | I can do assembly, but not for free. Do you have a list of goals or tasks somewhere? TBH I usually have to be personally motivated by having hardware on hand, which usually leads to a relationship with a vendor willing to ship me the hardware in question. But I've written e.g. GPU drivers and embedded ARM drivers. | 17:53 | |
| FWIW my Raku experience on amd64 has been that it is *fast enough* for my purposes, particularly when it comes to parsing. I'm satisfied already. | 17:54 | ||
| timo | i don't exactly have a task in mind, really just offering to answer questions or show you around if you wanted to tinker | 17:56 | |
| the bigger wins in performance are probably not in the emission of machine code but in making the specializer able to do more powerful analysis and transformations | |||
| korvo | I am somewhat interested in knowing what the lowest portable substrate is; NQP, MoarVM bytecode, or something else? Even ignoring my personal work for a moment, I gather that Raku is a specification given by a pile of executable tests, and also that there's currently only one implementation passing those tests. It'd be good to know the natural layer from which to start a second implementation. | 17:57 | |
| timo | building something that runs NQP is probably a good start if you want to reuse big chunks of rakudo? | 17:59 | |
| but if you're willing to not reuse a lot, you can go straight for a Raku compiler and ignore NQP entirely | 18:00 | ||
| korvo | Both Raku and NQP seem like enormous targets. For NQP, that's mostly due to pre-specialized bytecodes; could those be unspecialized for a slower interpreter with less code, or is there a philosophy to it? | 18:01 | |
| timo | on moar we turn both nqp and raku code into moar bytecode and that is interoperable, so a function or method written in one can call the other and vice versa | ||
| how do you mean "pre-specialized bytecodes"? are you refering to the nqp::blah stuff you see in the code? | 18:02 | ||
| korvo | Yeah. Like, the bytecodes correspond to type information from the input language rather than the hardware target. | ||
|
18:03
Staff_Virgil joined
|
|||
| Staff_Virgil | [Network Announcement] God will never leave Russia, he will continue to gift Russia his divine protection - watch President Putin's Christmas speech at www.youtube.com/watch?v=NdQA0BlZwtY. Death to Trump, Elon, Zelenskyy and other fascists. Merry Christmas from the Libera staff! | 18:03 | |
| timo | you're at the level of moar bytecode right now? | 18:04 | |
|
18:04
vrurg_ joined
|
|||
| timo | i'm not sure if you mean things like atpos_i or things like extend_u8 or whatever | 18:04 | |
|
18:04
Staff_Virgil left
|
|||
| korvo | I'm looking at NQP, I think. Specifically github.com/Raku/nqp/blob/main/docs/ops.markdown | 18:05 | |
|
18:05
vrurg left
|
|||
| timo | ok, a bunch of moarvm opcodes are exposed as `nqp::blabla(...)` function-like things to be used in nqp as well as raku code | 18:07 | |
| you'll want to know a little bit about the metamodel, especially REPRs, to really make sense of that stuff I think | 18:08 | ||
| korvo | Basically, I'd like to know what the minimal collection of ops actually is. I'm used to Self-style VMs that have maybe a dozen ops: lookup local by name, create closure/object, prepare/pack message, call immediate, send deferred. | 18:09 | |
| Generating hundreds of type-specialized ops is possible; e.g. Faster CPython does it as part of their JIT strategy. If that's the case then I'm interested in how they're currently generated because any RPython codegen would have the same shape. | 18:11 | ||
| timo | i'm not sure anything stops you from making everything related to reprs behave more like method calls, then that would move stuff from the ops namespace to a real namespace visible to the language | 18:12 | |
| moarvm gained a "syscall" mechanism where you can call something by its name with different callsites if you like, and a good portion of the ops in moarvm could easily be moved to that mechanism if the right shaped tuit appears | 18:13 | ||
| it does encode to bigger bytecode though, and is probably a bit slower to dispatch | 18:14 | ||
| so that would be fine for things your code doesn't have to do tens of thousands of times a second, like "get attribute from object" or "add two integers" | |||
| ^- "wouldn't be fine"* | 18:15 | ||
| korvo | I suppose I'm a little surprised that there's not a single bytecode-caching mechanism like in Python or OCaml. I feel like perhaps there was a design goal of making MoarVM have that shape, but I didn't find a single document that says how to load and interpret a precompiled bytecode file. | ||
| timo | we do store precompilation results, the classes related to CompUnitRepo are responsible for all that machinery | 18:16 | |
|
18:16
Chris3101 left
|
|||
| timo | the bytecode files that we precompile can't run completely on their own, they need a rakudo already loaded around them | 18:16 | |
| korvo | That sort of named-syscall dispatch would be fine in RPython. RPython costs are based on what the JIT can and cannot remove; there's no big difference between a constant string lookup in a dict vs. a constant index lookup in a list, for example. | ||
| timo | right, it deeply traces stuff | 18:17 | |
| korvo | Ah, okay. More like CL's FASL and less like OCaml's bytecode, sounds like. FASL is prelinked somewhat with the CL runtime. | ||
| timo | yeah our bytecode files refer to objects and types in bytecode files they depend on by an index in their tables, making the dependency extremely tight | 18:18 | |
| korvo | Given the list of NQP ops -- threads, Unicode, I/O, floats, nativecall -- it seems like it *should* be possible to bootstrap any sort of HLL just from bytecode. | 18:19 | |
| timo | you mean building a set of .moarvm files that runs, for example, python code? | ||
| korvo | Oh! Okay, I've seen this pattern before. It arises in e.g. Capn Proto; the Capn Proto algorithm is fully documented *except* for the precise mapping of names to indices, which is withheld in order to force users to depend on the official Capn compiler. | 18:20 | |
|
18:20
bwani54 joined
|
|||
| korvo | Sure, that's a possibility. I would work on the other side of that API barrier, implementing an alternative VM that faithfully runs .moarvm files. | 18:20 | |
| timo | unfortunately, the serialized blob inside moarvm files isn't specified by anything other than moarvm's source code, and the serialization format doesn't describe itself either | 18:21 | |
| but there's nothing stopping you from writing out something different from .moarvm files, it's all written in nqp code except where it asks moar to "please dump the serialized blob now" | 18:22 | ||
| nqp-moarvm was used to compile the compiler and runtime for nqp-js by adding a different output stage in the compiler pipeline | 18:23 | ||
| korvo | That's what I gathered. At that point, it seems like RPython might as well be a target. And at *that* point, I'd ask whether we might as well have QBE (or LLVM, I guess) as a target! | ||
| timo | then when nqp-js was fully featured enough it could compile itself, at least if i remember correctly | ||
| korvo | RPython has much nicer support for threads and Unicode than QBE. It doesn't have exactly the same object model as any HLL, but it can easily emulate them and there's a straightforward recipe for doing it. | 18:24 | |
| timo | i don't know what QBE is though | ||
| korvo | Oh, sorry. Quick BackEnd. Like LLVM but smaller and much much simpler. c9x.me/compile/ | 18:25 | |
| RPython, QBE, and LLVM all share the principle that one ought to be able to generate human-readable text and feed it directly into the backend to generate a native executable. | |||
| timo | OK | 18:26 | |
| korvo | timo: Anyway, thanks for humoring me. It's a fun thought experiment. | 18:29 | |
| timo | regarding your question of how moarvm does specialization, I'd probably direct you to jnthn's talks. I believe "How does deoptimization help us go faster?" is one of the talks that has a good overview of the specializer at the start: jnthn.net/slides.html this has slides and also video recordings | ||
|
18:30
bwani54 left
|
|||
| timo | in short, many operations record information at run time, and there's a specializer thread that collects that stuff, figures out what frames are worthwhile to make a specialized variant of based on, for example, incoming arguments, and then it can make assumptions with deoptimization guards and such | 18:31 | |
| it works in an SSA form with BBs that you've probably seen thousands of times before | |||
| "Giving MoarVM a new general dispatch mechanism to speed up various slow Raku constructs" shows our new dispatch system that is practically required if you want to get the more complex interactions of features like multiple dispatch with "nextsame" working in your own implementation | 18:32 | ||
| (but is also nice for performance) | 18:33 | ||
|
18:35
Aedil joined
|
|||
| timo | oh, and the NQP And Rakudo Internals Workshop material is probably also very valuable, even though it was at a time when moarvm was brand new | 18:37 | |
| korvo | timo: Okay. That sort of cycle is definitely the sort of thing that I'd like to fully absorb in RPython rather than reify; RPython's internals are fairly close to that, with the biggest difference being how the JIT interacts with threads. | ||
| How meta is the metainterp? Can the NQP toolchain be asked to compile itself to a backend? | 18:38 | ||
| timo | you can probably benefit from small polymorhpic inline caches in your version of bytecode | ||
| so far it hasn't been necessary to use the nqp built for one backend to compile to a different backend except for the initial bootstrap, so i'm not sure if the necessary stuff is exposed like with CLI flags or something | 18:40 | ||
| but nqp does compile itself to *a* backend every time you build it :P | |||
| korvo | Well, it's just that it sounds like it'd be easier to not write one NQP interpreter in RPython, but instead write an NQP backend that can compile any input to RPython, and then generate an NQP JIT as a special case. | 18:41 | |
| Inline caches are curious. Once the JIT's paths get hot enough, it's often cheaper to ask the JIT to do a linear search for methods when it is tracing and let the JIT memorize the results of that search. An example from my Monte language, a flavor of E: github.com/monte-language/typhon/b...#L168-L183 | 18:42 | ||
| I notice that all of the backends seem to have three levels of interaction: HLL, NQP, QAST. All are required? | 18:43 | ||
| timo | i'm not exactly sure what you mean by that | 18:44 | |
| QAST is the datastructure we work with that's relatively close to the target, but still abstract enough to mostly generalize, with an escape hatch if it's needed | |||
| QAST is very tree-shaped, the next step in the pipeline for moarvm would be MAST which is much more linear and refers to things like labels and registers, whereas QAST has local variables and ops like "if" that have condition and different branches just as children | 18:47 | ||
| but i'm not sure how HLL and NQP fit into this list | |||
| there's a bunch of differences between a piece of code compiled to a raku sub or method and the same for nqp: different type objects are used for Code / Routine / Method, the "hll" is set to a different one on the underlying code object, the roughly same code in raku vs nqp is compiled differently because the languages have different semantics, and when calling between different HLLs like nqp vs raku | 18:50 | ||
| there's hllization of common objects like Array, Capture, etc | |||
| korvo | I'm just trying to understand what a backend should be shaped like. Is it possible to work only with QAST, or is that escape hatch regularly required? | ||
| timo | you can work only with QAST with the caveat that you would put objects in there as well which is how they get to become serialized and make it from the compiler's environment and re-appear fully formed in the target program | 18:52 | |
| long long ago before bounded serialization was a thing, rakudo would spend a big chunk of time at startup creating all the classes and such by calling metaobject methods for everything | 18:53 | ||
| korvo | Hm. I figure that it's unavoidable to have a pre-written RPython class which represents "user" objects; the code for a user object is 100% live and must be JIT'd. But there's also "prebuilt" objects and various ways of setting them up so that they're translated and baked into the executable. | 18:54 | |
| There's also, as in the RPython implementation of SOM Smalltalk, the ability to directly save a bytecode file as a string in the executable. | |||
| timo | i'm not sure what level of meta we are at right now | ||
| moarvm offers a very simple REPR and metaobject that has very simple attributes and a very simple method table called KnowHOW | 18:55 | ||
| korvo | I'm still thinking about replacing MoarVM only. Specifically thinking of an NQP backend which emits RPython. | ||
| timo | github.com/MoarVM/MoarVM/blob/e419...rap.c#L290 | 18:56 | |
| korvo | Yeah. I'm familiar with Piumarta, Warth, et al and I know how to write that sort of core metaobject. I'm still learning Raku's metamodel but fortunately there's a battery of specification tests that will force me to get it right. | ||
| timo | is that the paper about the CLOS? | 18:57 | |
| korvo | Yeah. COLA, Pepsi, etc. | ||
| That C looks quite familiar. Somebody's gotta populate a vtable somewhere. The alternative would be something like E-style auditors, where the knot is tied based on the ability to prove that an object is immutable; the stamp of immutability must itself be immutable. | 18:58 | ||
| github.com/monte-language/typhon/b...py#L37-L40 | 18:59 | ||
| timo | i am not familiar with any of that | ||
| but yeah, building this kind of thing is always fun. bring your circularity saw! | 19:00 | ||
| disbot7 | <librasteve> wonders if Raku could target LLVM and notes that the JVM is quite complete, but has lacked the same amount of resource as MOARVM | 20:07 | |
| [Coke] | ah, it's the biannual "hey, why don't we target LLVM?" question! | 20:09 | |
| I cannot remember how to arrive at the answer, but I'm pretty sure the answer has been "it's not as easy or helpful as you might think" | |||
| korvo | I'd hope that you don't think that I actually asked that. | 20:11 | |
|
20:40
nsjconrio34h joined,
ivvi4pcvexk3 joined,
c52fhkmo5rj3 joined,
d4m7pkq5qbzd joined,
d4m7pkq5qbzd left,
c52fhkmo5rj3 left,
nsjconrio34h left,
ivvi4pcvexk3 left
|
|||
| timo | looks to me like coke was refering primarily (or exclusively) to steve's last message | 20:46 | |
|
20:47
xpxltkvxgyuw joined,
qbf5xiyksuxo joined,
mxrpveqqquil joined,
gdpklryv3rh6 joined,
oc2eeacipfyz joined,
mxrpveqqquil left,
xpxltkvxgyuw left,
qbf5xiyksuxo left,
gdpklryv3rh6 left,
oc2eeacipfyz left
20:51
ns4t2nx4ft7a joined,
xinming left,
bvxurkgo2fnb joined,
vayba5xskwwm joined,
kjpg3pd5j3x6 joined,
dwqjxtnfdwqc joined,
k4vxbi6omzhy joined,
q44uqrmzhfor joined
20:52
u23ex2x4d6es6 joined,
fnjefo3sprct joined,
dwqjxtnfdwqc left,
xinming joined,
u23ex2x4d6es6 left,
vayba5xskwwm left,
ns4t2nx4ft7a left,
fnjefo3sprct left,
bvxurkgo2fnb left,
q44uqrmzhfor left,
k4vxbi6omzhy left
20:53
kjpg3pd5j3x6 left
21:09
oxonwg7ahlof joined,
oxonwg7ahlof left,
i6fckemdno7j joined
21:10
Sgeo joined,
jftg53vk377e joined,
i6fckemdno7j left
21:11
milxphupuq3j joined,
jftg53vk377e left,
yrkyceyy5z3h joined
21:12
yrkyceyy5z3h left,
jghd6qozz6pp joined,
jghd6qozz6pp left
21:13
milxphupuq3j left
|
|||
| timo | christmas eve is surely the best time to harass random channels with nonsense | 21:16 | |
| disbot7 | <antononcube> 🤣 | 21:17 | |
|
21:20
u5t5envy3txjd joined,
wqmyljwtpbql joined
21:21
u5t5envy3txjd left,
wqmyljwtpbql left,
Sgeo_ joined
21:22
s2pogdsd5rng joined,
omhqggk6jyt2 joined
21:23
omhqggk6jyt2 left,
w4h6inypl5nm joined
21:24
Sgeo left,
w4h6inypl5nm left,
z35fdrvzvmry joined
21:25
z35fdrvzvmry left,
dtermaparf3y joined
21:26
dtermaparf3y left,
guc5wl4iddfj joined
21:27
guc5wl4iddfj left,
b3ddrfwssjcc joined
21:28
b3ddrfwssjcc left,
xzhyyf7i2h2t joined
21:29
xzhyyf7i2h2t left,
r233smqug7xb joined
21:30
r233smqug7xb left,
edhyafutxv7a joined
21:31
edhyafutxv7a left,
kub67x5kvo4f joined
21:32
kub67x5kvo4f left,
taouxqo3vqa2 joined
21:33
taouxqo3vqa2 left
21:34
bzisd6cndbcu joined
21:35
bzisd6cndbcu left,
akuxskmjpe3q joined
21:36
akuxskmjpe3q left,
inyuz4cebvs5 joined
21:37
inyuz4cebvs5 left,
fyhpgrabx7g7 joined
21:38
fyhpgrabx7g7 left,
egqdk4rtid4u joined
21:39
egqdk4rtid4u left,
ukibardfwton joined
21:40
ukibardfwton left,
z2mciedtyihy joined
21:41
z2mciedtyihy left
21:42
stj52yrspozx joined
21:43
stj52yrspozx left,
ny52adr2e3j4 joined
21:44
ny52adr2e3j4 left,
yx7mgbcynito joined
21:45
yx7mgbcynito left,
sgkarzbnbkv6 joined
21:46
sgkarzbnbkv6 left,
hhgzc6sg3wke joined,
s2pogdsd5rng left,
hhgzc6sg3wke left
21:47
akzbbpcxid4b joined,
tvirdhcvr34h joined,
akzbbpcxid4b left,
u4e5m23b2z4nm joined
21:48
tvirdhcvr34h left,
lsu6327kwnd3 joined,
u4e5m23b2z4nm left
21:49
zd44pzpil57k joined,
zd44pzpil57k left,
lsu6327kwnd3 left,
ck7gxa7luetx joined
21:50
u5eey25fnkz7z joined,
ck7gxa7luetx left
21:51
u5eey25fnkz7z left,
hh6ehhj5e2bx joined
21:52
a3utbbzy5utl joined,
hh6ehhj5e2bx left,
u4rjxrv2xiw2 joined
21:53
a3utbbzy5utl left,
ywcwnin3quco joined,
u4rjxrv2xiw2 left
21:54
ywcwnin3quco left,
ef6xegoe2pjv joined,
ydo62pzkqseu joined
21:55
ef6xegoe2pjv left,
ydo62pzkqseu left,
ihv72ue7dsjh joined
21:56
ihv72ue7dsjh left,
quu7gkwd43vt joined
21:57
dqdpiuq7ccxw joined,
quu7gkwd43vt left,
dqdpiuq7ccxw left
21:58
rxbge2ipogmu joined,
ofgxr7r4pa22 joined,
rxbge2ipogmu left
21:59
ofgxr7r4pa22 left,
v5yheyj36kpb joined,
xrfpjms5b3m3 joined
22:00
v5yheyj36kpb left,
xrfpjms5b3m3 left,
p4zhhemp2i2m joined
22:01
yzrvwnveuugj joined,
p4zhhemp2i2m left,
txneegly2swt joined,
yzrvwnveuugj left
22:02
txneegly2swt left
22:03
amf67wdisvyg joined,
w345xm24ejey joined,
amf67wdisvyg left
22:04
w345xm24ejey left,
h76g65vui7cp joined,
d57xnqq5qaku joined
22:05
d57xnqq5qaku left,
h76g65vui7cp left,
u43dsmhtncftl joined
22:06
Aedil left,
u43dsmhtncftl left
22:07
gu2w7ztkaeju joined
22:08
gu2w7ztkaeju left,
h7oddlka7 joined,
u4hppak joined
22:15
silug left,
silug joined
22:16
u4hppak left
22:17
mvkmku4qp joined,
csyvu2 joined
22:18
h7oddlka7 left
22:19
mvkmku4qp left,
csyvu2 left,
v5jvzpmea joined,
e2eepge7d joined,
tellable6 left
22:22
tellable6 joined
22:26
melezhik joined
|
|||
| gfldex | . | 22:28 | |
| tellable6 | 2025-04-26T22:57:31Z #raku-dev <Xliff> gfldex Was lurking and saw your Elite Dangerous comment. What form does the 37M hash originate from?. | 22:30 | |
|
22:33
ilogger2 left
22:34
tellable6 left
22:35
arkiuat left
22:48
e2eepge7d left
22:53
silug left
22:55
v5jvzpmea left
23:39
ceagn joined,
zoamm joined
23:40
ceagn left,
zoamm left,
leecle joined,
geigz joined
23:41
leecle left
23:42
viiwer joined
23:43
guifa joined,
geigz left,
viiwer left
|
|||
| guifa | hmmmm | 23:43 | |
|
23:43
liedk joined,
neetz joined
23:45
neetz left,
liedk left,
rialion joined
23:46
rialion left,
zuibk joined,
zuibk left,
skuapr joined,
snierest joined,
skuapr left
23:47
snierest left,
tauliest joined,
nievian joined,
nievian left,
tauliest left,
poubian joined,
poubian left,
skeowian joined
23:48
skeowian left,
ruona joined,
foidl joined
23:49
ruona left,
foidl left,
steirle joined,
steirle left,
diiwl joined,
skiuka joined,
diiwl left
23:50
skiuka left,
saakd joined,
goegg joined,
saakd left,
goegg left,
greipy joined
23:51
greipy left,
guifa left,
zuanv joined,
zuanv left,
kaopc joined,
shooca joined,
shooca left
23:52
kaopc left
|
|||