AlexDaniel | fwiw | 00:20 | |
c: HEAD sub foo(:color(:$colour)) { $colour + 1 }; my $s; for ^1000000 { $s += foo(:color($_)) }; say $s; say now - INIT now | |||
committable6 | AlexDaniel, ¦HEAD(c229022): «Unexpected named argument 'color' passed? in sub foo at /tmp/gLDzLiAzAB line 1? in block <unit> at /tmp/gLDzLiAzAB line 1? «exit code = 1»» | ||
AlexDaniel | c: MVM_SPESH_DISABLE=1 HEAD sub foo(:color(:$colour)) { $colour + 1 }; my $s; for ^1000000 { $s += foo(:color($_)) }; say $s; say now - INIT now | 00:21 | |
timotimo | oh my! | ||
committable6 | AlexDaniel, ¦HEAD(c229022): «500000500000?1.9947207» | ||
timotimo | good catch | ||
AlexDaniel | timotimo: it's this blocker ticket RT #131857 | ||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131857 | ||
AlexDaniel | the new thing about it is that there's no bug with MVM_SPESH_DISABLE=1 | ||
timotimo | baaf8b6 More sophisticated named arg handling in spesh. | 00:22 | |
it's not improbable that it's this | |||
AlexDaniel | it's one of the commits from the bump, so yeah | 00:23 | |
timotimo | but maybe it's this exact moarvm commit in particular | 00:24 | |
huh, zed shaw just gave perl6 & moarvm a shout-out | 00:40 | ||
gnite | 00:42 | ||
Geth | MoarVM: markmont++ created pull request #634: check ffi_closure_alloc() return value |
01:36 | |
01:52
ilbot3 joined
06:06
brrt joined
|
|||
brrt | good * #moarvm | 06:10 | |
nwc10 | good *, brrt | 06:12 | |
what's left to do before even-moar-jit can be merged? eg "tagging this month's release"? | 06:13 | ||
brrt | iirc jnthn had some comments | 06:17 | |
well, jnthn started reviewiing | 06:18 | ||
nwc10 | ++jnthn | ||
brrt | i'm pondering rebasing the changes in graph.c and brining them in separately | ||
nwc10 | I don't know anything useful to be able to comment on that. | 06:24 | |
brrt | well, the tl;dr is | 06:40 | |
i made a big mistake in refactoring the graph *builder* out of graph building | |||
i did that because the graph builder is not such good design after all | 06:41 | ||
not as simple as just having a mutable graph, which it is anyway | |||
nwc10 | OK. I'd view your branch as "private" (and about to "die" anyway once its meaningful work is in master) so a rebase doesn't scare me | 06:42 | |
but I'm curious what jnthn's take is | |||
brrt | well, a rebase does scare me | ||
nwc10 | ah OK :-) | ||
I like clean historyu | |||
(I'm biased)(I end up reading a lot of older commits) | |||
brrt | because i've done it before, and it always ends in a single bring-up-to-date-diff | 06:43 | |
nwc10 | ah OK, that's a bit more ugly | ||
brrt | because so far the result has always been broken | ||
(for this branch, that is) | |||
nwc10 | "it's not supposed to be like that" :-/ | ||
brrt | well, yeah | ||
nwc10 | hence, yes, now not so sure | ||
brrt | you're not supposed to use git branches and rebase in the way i have :-P | ||
anyway, the idea is to split even-moar-jit into two pieces | 06:45 | ||
one containing the changes to the legacy JIT | |||
and the other just introduces the new JIT | |||
the second is much larger of course than the first | |||
nwc10 | that seems very sensible. but yes, as you say, making that split cleanly | 06:46 | |
06:57
dalek joined,
synopsebot6 joined
07:20
brrt joined
|
|||
brrt wonders how to contact evan miller and tell him about the JIT that isn't in the works but is actually done | 07:39 | ||
brrt also wonders how much reputation damage he has caused to MoarVM by starting a new JIT | 07:40 | ||
07:43
lizmat joined
07:56
dogbert17 joined
|
|||
TimToady | well, fact is we had a rudimentary jit before and that wasn't mentioned | 08:03 | |
but overall, aside from a few minor misapprehensions, I thought it was a pretty fair (and extensive) article | |||
and where there are misapprehensions, it probably indicates doc failure | 08:04 | ||
brrt | i agree | ||
it's a good article | |||
als | |||
*also | |||
TimToady | though I also agree our current repl is a bit schlocky | ||
brrt | i'm with the author that the list/container/itemization thing is much too complex for the value it brings | ||
TimToady | I'm planning to do something about the Nil return from grammars as well | 08:05 | |
brrt | oooh, i'm interested | ||
(maybe a Failure?) | |||
my guess; when grammars were developed, Failures were not yet a thing | 08:06 | ||
TimToady | yes, probably a Failure | ||
brrt | cool | ||
TimToady | we already have the highwater mechanism in there; but there's no way to pull out the information from the P6 level yet | 08:07 | |
daxim++ also complained that there was no infinite left-recursion detection, which we should also fix | |||
(at TPCiA) | 08:08 | ||
brrt | (if we do return Failures, can we refactor out the exception throwing in the grammar?) | 08:09 | |
TimToady | what exception throwing? | ||
brrt | i recall having seen that… the FAILGOAL iirc | 08:10 | |
TimToady | STD threw exceptions, but I don't think rakudo works that way right now, but then again I have no idea what timezone I'm in :) | ||
oh, well, that's for a fatal panic anyway | 08:11 | ||
but yeah, there may be connections to make there | |||
08:20
zakharyas joined
|
|||
brrt | i'm failing a test case of JSON::Fast | 08:21 | |
nwc10 | good UGT, TimToady | 08:39 | |
brrt: also, I'd suggest that the JIT is only unambigously "available" (struggingly for a word that isn't mistaken as "done" or "finished") when it's in a shipped release | 08:42 | ||
so maybe next week | |||
brrt | the legacy JIT is very much availalbe | ||
*available | 08:43 | ||
09:00
brrt joined
09:24
brrt joined
|
|||
nwc10 | brrt: good point. if one has missed the "legacy" JIT, where has one been for the past couple of years? | 09:29 | |
TimToady | well, it's not like we talk about jitting much in the user docs; it's supposed to be largely transparent | 09:34 | |
brrt | it's not advertised, and my question is, is my work on the expr jit giving the impression it may be deprecated | 09:35 | |
thereby stealing perl6's marketing points? | |||
should we have been much more silent about it? | |||
TimToady | second-guessing the past it pretty useless | 09:36 | |
brrt | true | 09:37 | |
i'm curious about the bug in uzu | |||
TimToady about to board CPH --> SFO | 09:43 | ||
jnthn | TimToady: Safe flight :) | ||
TimToady | catch y'all on the flip side | ||
& | |||
nine | When one hears about a JIT in a language, one expects a certain level of performance. So maybe it's a good thing that the lego JIT is not widely advertised. "What you already have a JIT and you're still _that_ slow? There's no hope whatsoever!" | 09:45 | |
It really takes some time to understand the difference in expected performance between the lego JIT and even moar JIT. And very hard to predict the results. So for marketing purposes talking as if we'd go from zero to JIT could be useful :) | 09:46 | ||
nwc10 | can we say "prototype" instead of "zero" without being "wrong" (either on the marketing side or the engineering side)? | 09:58 | |
stmuk | maybe call it Nearly In Time? :) | 09:59 | |
jnthn | Our spesh + JIT division is actually doing what most other languages just call their JIT fwiw | 10:01 | |
If we want to talk about how much it helps, we can always show numbers with/without it :P | 10:02 | ||
nine | Once we have them, sure. My emphasis was more on the "There's no hope whatsoever!" part. | 10:03 | |
Though I personally think that spesh is in the best place to give us major improvements. | 10:04 | ||
brrt too | |||
jnthn | Yeah, there's still tons of opportunity there. It just needs very careful work; it's easy to get something faster, and another thing wronger. | 10:06 | |
brrt | hehe | ||
jnthn | That said, a lot of the things I've been fixing have been long-standing issues that hid because we didn't optimize that aggressively | ||
brrt | i'm debugging the uzu thing | ||
it doesn't apparently look like a JIT or spesh bug | 10:07 | ||
jnthn | m: say 2.44 / 1.08 | ||
camelia | 2.259259? | ||
jnthn | That's the spesh/JIT speedup on the read a million lines benchmark for example | ||
brrt | can you decompose that in spesh/jit? | 10:08 | |
or is that already deocmposed? | |||
jnthn | With spesh enabled and JIT disabled it's 1.34s | 10:10 | |
m: say 2.44 / 1.34 | |||
camelia | 1.820896? | ||
jnthn | m: say 1.34 / 1.08 | 10:11 | |
camelia | 1.240741? | ||
jnthn | So the JI | ||
T provides an extra 25% or so | |||
nine | Makes sense considering that it just removes the op dispatch overhead | ||
jnthn | Yeah. The non-lego JIT stands to remove a bunch of memory accesses | 10:12 | |
So could contribute more | |||
Spesh could also do better | |||
brrt | (it will do that effectively, only, if we can compile large enough fragments, which means that i need to start thinking about multiple basic blocks soonish) | 10:22 | |
dogbert17_ | FWIW, I tried to reproduce the uzu bug thingy this weekend on my 32 bit rig, there was no error ! | 11:06 | |
OTOH one spectest SEGV'd instead :) | 11:07 | ||
brrt | the uzu error disappears under lldb | 11:15 | |
(and it also hangs sometimes under lldb) | |||
Geth | MoarVM: 0ee9103236 | (Jonathan Worthington)++ | 6 files Stub in atomic ops. |
11:19 | |
11:40
markmont joined
|
|||
dogbert17_ | the uzu test work on my $work machine as well 'This is Rakudo version 2017.07-157-ga3c71e7d3 built on MoarVM version 2017.07-378-g5e94da03a' valgrind has no complaints | 11:43 | |
11:45
brrt joined
|
|||
timotimo | brrt: i sent evan miller a few tweets, including this one: twitter.com/loltimo/status/896875772677242883 | 11:50 | |
dogbert17_ | timotimo: have you slept well? | 11:51 | |
timotimo | not really, but better than the night before | ||
dogbert17_ | is it still unbearably hot? | ||
brrt | thanks timotimo | 11:52 | |
:-) | |||
timotimo | no, the temperature is not an issue any more | 11:53 | |
in fact, recently we had intense rains that caused our basement to flood a little | |||
dogbert17_ | oops | ||
timotimo | we got lucky. the other people in this house, not so much | 11:57 | |
dogbert17_ | and the cats didn't have to swim | 11:58 | |
timotimo | right | 11:59 | |
they much prefer not swimming | |||
dogbert17_ | aren't cats a bit anti water | 12:01 | |
heh, looks like I don't have jnthn's memset fix: total heap usage: 405,169 allocs, 149,692 frees, 21,599,768,962 bytes allocated | 12:02 | ||
12:04
brrt1 joined
|
|||
timotimo | there are cats that like swimming. ours aren't like those | 12:04 | |
nwc10 | my parents had a cat once that loved to watch (and then hit) the water from a running tap | 12:05 | |
timotimo | :D | ||
nwc10 | and was always disappointed to discover how something wonderfully shiny and fast moving could turn out to be uUURGH, wet. | 12:06 | |
dogbert17_ | do the cats like to help you running rr and fixing SEGV's :) | 12:08 | |
timotimo | not really :) | 12:12 | |
one of our cats really enjoys it when we open a can of champignons and spill the water | 12:13 | ||
he would tilt his head sideways and "bite" the stream of water | |||
dogbert17_ | brrt, your findings wrt uzu are consistent with the fact that I don't see the problem as 32 bit => no JIT | 12:29 | |
timotimo: the SEGV in t/spec/S32-io/IO-Socket-Async.t is gone in MoarVM HEAD. Probably fixed by 7d38e51ce12a2d | 12:33 | ||
timotimo | could be, yeah | ||
12:35
zakharyas joined
|
|||
Geth | MoarVM/atomics: 7d87ef5292 | (Jonathan Worthington)++ | 2 files Extend container v-table for atomic ops. |
12:46 | |
dogbert17_ | another positive thing is that I'm no longer able to reproduce two MoarVM issues which I reported earlier | 13:04 | |
timotimo | cool! | ||
dogbert17_ | perhaps I should close them | 13:05 | |
13:08
lizmat joined
|
|||
Geth | MoarVM/atomics: 9a4b7381e9 | (Jonathan Worthington)++ | 2 files Extend container v-table for atomic ops. |
13:27 | |
13:29
SourceBaby joined
|
|||
Geth | MoarVM/atomics: 14323fdc9e | (Jonathan Worthington)++ | 2 files cas_o and atomicstore_o should be invokish. Granted using it with something like a subset type that needs a late-bound invoking type check would be a tad odd, but we should support it correctly anyway. |
14:02 | |
MoarVM/atomics: faa9521e29 | (Jonathan Worthington)++ | src/6model/containers.h Should pass cas v-table function result register. So it can handle the late-bound case. |
|||
MoarVM/atomics: 5a8ea1116a | (Jonathan Worthington)++ | 3 files Forward container atomic ops to v-table functions. |
|||
MoarVM/atomics: 34c62427cc | (Jonathan Worthington)++ | 3 files cas v-table function is void now we pass register. |
14:06 | ||
14:19
Ven joined
14:25
brrt joined
14:49
brrt joined
14:50
brrt joined
|
|||
dogbert17_ | jnthn: will you blog about the atomics? | 14:51 | |
jnthn | dogbert17_: Yeah, once I get the lot done :) | 14:55 | |
moritz | atomics? nukular destruction! | 14:56 | |
Geth | MoarVM: vendethiel++ created pull request #635: Fix typo in MVM_6model_container_atomic_store |
15:01 | |
Ven`` | (at least I think that's what it's meant to be ^) | 15:03 | |
Geth | MoarVM/atomics: 7ecdaa82ad | ven++ (committed using GitHub Web editor) | src/6model/containers.c Fix typo in MVM_6model_container_atomic_store In containers.c The function checked for cs->atomic_load being present, but then went on using cs->atomic_store. |
15:06 | |
MoarVM/atomics: 9c906ef8b5 | (Jonathan Worthington)++ (committed using GitHub Web editor) | src/6model/containers.c Merge pull request #635 from vendethiel/patch-1 Fix typo in MVM_6model_container_atomic_store |
|||
Ven`` | I've loaded the blog post for now, can't wait to read it later :). | ||
15:09
brrt joined
15:17
stmuk_ joined
15:19
[Coke] joined
|
|||
brrt | jnthn: valgrind complains about us not writing the 'best result' in find_invokee_static_frame | 15:23 | |
and indeed best_result is never written | 15:24 | ||
github.com/MoarVM/MoarVM/issues/636 | 15:26 | ||
jnthn | uh, yeah, it wants initializing to NULL | 15:27 | |
brrt | and then written as what? | 15:28 | |
jnthn | It's written 5 lines below the one I mentioned | ||
uh, the one *you* mentioned :) | |||
github.com/MoarVM/MoarVM/blob/0ee9...ze.c#L1278 | |||
brrt | i see | 15:29 | |
yeah | |||
missed that | |||
jnthn | Well, I somehow missed NULLing it in the first place, so... :) | ||
brrt | pushing fix | ||
also, there's an off-by-one in MVM_string_index | 15:30 | ||
Geth | MoarVM: eb65519976 | (Bart Wiegmans)++ | src/spesh/optimize.c Initialize best_result as NULL Found by valgrind |
15:31 | |
nwc10 | Lee pointed me to morepypy.blogspot.ch/2017/08/lets-...-lock.html | 15:40 | |
I got as far as "Why did the STM effort not work out?" | |||
brrt | yeah, i clicked that too | 15:41 | |
also, there's an off-by-one in MVM_string... | 15:47 | ||
.tell samcv gist.github.com/bdw/9b0076211c6d7d...660ea7c6b9 | 15:48 | ||
yoleaux | brrt: I'll pass your message to samcv. | ||
brrt | wonder if we can trigger this somewhat easier | 15:49 | |
nwc10, that doesn't seem like they already have a very good overview yet | 15:53 | ||
16:01
zakharyas joined
|
|||
Geth | MoarVM: MasterDuke17++ created pull request #637: Cleanup typos, formatting, etc in comments |
16:12 | |
MoarVM: 2a0570e6ac | MasterDuke17++ (committed using GitHub Web editor) | src/spesh/optimize.c Cleanup typos, formatting, etc in comments |
16:15 | ||
MoarVM: db4909efe5 | (Jonathan Worthington)++ (committed using GitHub Web editor) | src/spesh/optimize.c Merge pull request #637 from MasterDuke17/patch-5 Cleanup typos, formatting, etc in comments |
|||
jnthn | Just got sent vmmeetup.github.io/2017/cfp.md | 16:32 | |
VM conference. In Prague at end of Septmeber | 16:33 | ||
Geth | MoarVM: MasterDuke17++ created pull request #638: Clean up typos, formatting, etc in comments |
||
jnthn | Kinda tempted to go along | ||
Dinner & | 16:53 | ||
17:01
travis-ci joined
|
|||
travis-ci | MoarVM build errored. Jonathan Worthington 'Merge pull request #637 from MasterDuke17/patch-5 | 17:01 | |
travis-ci.org/MoarVM/MoarVM/builds/264421326 github.com/MoarVM/MoarVM/compare/e...4909efe5f1 | |||
17:01
travis-ci left
17:47
Geth joined
17:51
coverable6 joined,
bloatable6 joined,
committable6 joined,
quotable6 joined,
evalable6 joined,
bisectable6 joined,
unicodable6 joined,
greppable6 joined,
benchable6 joined
|
|||
samcv | good * | 18:11 | |
yoleaux | 11 Aug 2017 21:00Z <AlexDaniel> samcv: FWIW, you may be interested in RT #131881 (it's about ignoremark) | ||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131881 | ||
yoleaux | 15:48Z <brrt> samcv: gist.github.com/bdw/9b0076211c6d7d...660ea7c6b9 | ||
samcv | i've got mail | ||
.tell brrt so the main thing to see there that it read 1 byte too much? looks like it's coming from threebyte_memmem since you use os x so it uses our 3rdparty/freebsd/memmem.c file | 18:13 | ||
yoleaux | samcv: I'll pass your message to brrt. | ||
samcv | though probably more likely we told it to read one further value than we should? hmm | ||
.tell brrt is that reproducable? can you tell me how you produced it? i can manually use the freebsd memmem/nonfreebsd memem and see if any diff | 18:14 | ||
yoleaux | samcv: I'll pass your message to brrt. | ||
Geth | MoarVM: 7c4150f569 | MasterDuke17++ (committed using GitHub Web editor) | src/spesh/manipulate.c Cleanup typos, formatting, etc in comments |
18:32 | |
MoarVM: 1f6fae6a9a | (Jonathan Worthington)++ (committed using GitHub Web editor) | src/spesh/manipulate.c Merge pull request #641 from MasterDuke17/patch-4 Cleanup typos, formatting, etc in comments |
|||
MoarVM: 3e3f66ea3c | MasterDuke17++ (committed using GitHub Web editor) | src/spesh/dead_bb_elimination.c Cleanup typos, formatting, etc in comments |
|||
MoarVM: 877f88a46b | (Jonathan Worthington)++ (committed using GitHub Web editor) | src/spesh/dead_bb_elimination.c Merge pull request #642 from MasterDuke17/patch-5 Cleanup typos, formatting, etc in comments |
|||
jnthn | Elimiantes, the great reductionist philosopher... | 18:33 | |
samcv | :-) | 18:35 | |
yay my fix fixes that rt | 18:37 | ||
well at least the one thing i tried | |||
jnthn | Is that the JSON::Tiny regression one? | 18:40 | |
samcv | yep | ||
jnthn | yay \o/ | ||
Something stringy? | |||
I thought it was gonna be some spesh bustage of mine until it turned out to happen even with that disabled... | |||
samcv | the issue was the path changed away from the MVM_ord_get_base_char_at or whatever it was to ord_basecharat | ||
*ord_getbasechar | |||
which didn't check for synthetics. i was planning on making the change. almost thought i'd done it but probably got caught up on my trip and forgot to commit it | 18:41 | ||
jnthn | :) | ||
samcv | though there was a huge bug in ignoremark where it would match anything that had the firts two codepoints of the haystack | ||
so 'blah' ~~ /blz/ would match | 18:42 | ||
jnthn | oops | ||
samcv | luckily i think it's not that one | ||
well it didn't have a ignoremark index op or eqatim op | |||
i mean it faked it by checkng the first two graphemes lol | |||
i installed JSON::Tiny with no issue. yay \o/ | |||
i had a test i added but didn't push to roast yet which covered this case as well | 18:43 | ||
will add theirs too since can always use more tests | |||
err actually slightly different issue | 18:44 | ||
my issue was | |||
Synthetics with decomposable base characters properly work with ignoremark | |||
"\c[LATIN SMALL LETTER J WITH CARON, COMBINING DOT BELOW]" ~~ /:m:i j /, | |||
since letter j with caron is one codepoint. it used to not decompose it | |||
which will also get fixed with this as well | 18:45 | ||
since previously it assumed once it grabbed the synthetics base character it already had what it needed, but if the base char is latin small letter j with caron, or another decomposable character, that's very untrue | |||
jnthn, not sure what i'm going to do about Prepend and our synthetic representation which puts whatever the first codepoint it sees into `base` | 18:46 | ||
jnthn | Me either. I didn't worry about it as there were no prepends when I first implemented NFG ;) | 18:47 | |
But now there are. | |||
samcv | yeah heh | 18:48 | |
jnthn | And yeah, we'd rather have the char props of the real base | ||
samcv | yeah | ||
we can have unlimited characters before the base. so maybe we need an extra buffer to hold prepends? | 18:49 | ||
i dunno | |||
so we have one for things after the base and one for those after it | |||
Geth | MoarVM: 712cff3341 | (Samantha McVey)++ | src/strings/ops.c Fix a bug in index/eqat(im) and in ord_getbasechar Previously it assumed that once we had gotten a synthetic's base character that we already had the final base character. This wasn’t true for example with: "\c[LATIN SMALL LETTER J WITH CARON, COMBINING DOT BELOW]" The "j with caron" would not be decomposed because it was the base character of a synthetic. ... (8 more lines) |
19:07 | |
19:16
travis-ci joined
|
|||
travis-ci | MoarVM build failed. Jonathan Worthington 'Merge pull request #639 from MasterDuke17/patch-2 | 19:16 | |
travis-ci.org/MoarVM/MoarVM/builds/264432606 github.com/MoarVM/MoarVM/compare/a...250f107c53 | |||
19:16
travis-ci left
|
|||
AlexDaniel | samcv: thank you very much! | 19:32 | |
samcv | you're welcome :) | 19:33 | |
jnthn | samcv: Maybe we should just store an array of codepoints that make up the synthetic | 20:03 | |
samcv: *including* the base char (somewhere) | |||
samcv: And then the base char additionally | |||
Then codepoint iteration wouldn't care, it'd just interate thet codes | 20:04 | ||
And things that care for the base char would just take it | |||
20:09
releasable6 joined
|
|||
samcv | jnthn, that sounds decent | 20:20 | |
and just store the index of the base? | 20:21 | ||
jnthn | samcv: We could, or just store the base itself and save a level of indirection? :) | 20:22 | |
I'm figuring most things either want all the codepoints *or* the base | 20:23 | ||
So feels like just storing the base + the array would be easier, but maybe the struct packs to a byte boundary better or it makes something easier that I'm overlooking? | |||
20:25
travis-ci joined
|
|||
travis-ci | MoarVM build failed. Jonathan Worthington 'Merge pull request #641 from MasterDuke17/patch-4 | 20:25 | |
travis-ci.org/MoarVM/MoarVM/builds/264467329 github.com/MoarVM/MoarVM/compare/b...6fae6a9aef | |||
20:25
travis-ci left
20:53
committable6 joined,
evalable6 joined,
bloatable6 joined,
releasable6 joined,
greppable6 joined,
unicodable6 joined,
coverable6 joined,
quotable6 joined,
benchable6 joined,
bisectable6 joined
20:55
travis-ci joined
|
|||
travis-ci | MoarVM build failed. Jonathan Worthington 'Merge pull request #642 from MasterDuke17/patch-5 | 20:55 | |
travis-ci.org/MoarVM/MoarVM/builds/264467552 github.com/MoarVM/MoarVM/compare/1...7f88a46bfc | |||
20:55
travis-ci left
21:00
markmont joined
21:42
ilmari[m] joined
|
|||
lizmat | and another issue of the Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/08/14/...in-review/ | 23:02 | |
23:52
buggable joined,
ZofBot joined,
markmont joined,
leego joined
23:53
tbrowder joined
23:54
SmokeMachine joined
23:55
TimToady joined
23:56
MasterDuke joined,
ChanServ joined,
lizmat joined,
jsimonet joined,
Zoffix joined,
solarbunny joined,
Geth joined,
eater joined,
ingy joined
23:59
TimToady joined
|