pugscode.org/ planetsix.perl.org/ | nopaste: sial.org/pbot/perl6 | evalbot: perl6: say 3; (or rakudo:, pugs:, elf:, etc) | irclog: irc.pugscode.org/
Set by mncharity on 5 January 2009.
00:09 pbuetow left 00:10 justatheory left
jnthn Limbic_Region: Yes, there are issues with NaN and Inf floating point numbers that cause a bunch to fail. :-( 00:20
00:32 [particle] joined 00:36 nek joined
jnthn -> sleep 00:39
00:41 braceta left 00:51 [particle]1 left 00:57 sail0r joined 00:59 sail0r left, sail0r joined 01:01 sail0r left 01:02 jferrero left, meppl joined 01:28 hercynium_ joined 01:34 wknight8111 left 01:40 DemoFreak left 01:59 hercynium_ left, meppl left, hercynium_ joined 02:02 dukeleto left 02:03 hercynium left 02:48 jrockway left 02:49 jrockway joined 02:51 dukeleto joined 02:54 [particle]1 joined 02:57 shinobi-cl joined
shinobi-cl hi all 02:57
i want to know all u ppl opinion, if you care :) 02:58
i have some old perl code to read some doom files...
and im looking for a rather large project where to spend my time..
so, the thing is... if i wanted to do a doom port in perl (i?ve seen even Delphi ports!) 02:59
do u think is a good idea starting on perl6?
i dont care for 3d rendering, in fact i like software rendenring much more 03:01
03:01 unobe joined
shinobi-cl so 3d libraries are not an issue, timers are more an issue in fact (as old doom uses 35hz for timing) 03:01
03:02 mdxi left
shinobi-cl now tht perl5 has a decent and usable oop implementation i?m tempted to start it on perl5 03:07
03:12 dukeleto left 03:13 [particle] left, mdxi joined 03:17 meppl joined 03:19 kisu_ joined
shinobi-cl lalala 03:20
03:22 dukeleto joined 03:28 Limbic_Region left 03:33 meppuru joined, meppl left, meppuru is now known as meppl 03:35 kisu left
buu Haha 03:37
"now that perl5 has oop"
shinobi-cl well 03:43
not NOW really
by now i mean SINCE MOOSE
that lib alone makes oop in perl an enjoyable thing 03:44
buu Wow. 03:47
shinobi-cl :/
so, now a project like a computer game is feasible in perl5 03:48
but... im still not decided if making something in perl5 would be a waste of time, being that p6 seems ?close? by now 03:49
ahh fuck it, i?ll do it in perl6 03:54
night all
03:54 shinobi-cl left
mdxi that was pretty awesome 04:07
04:13 xinming_ is now known as me, me is now known as xinming 04:51 dukeleto left 04:55 nek left 04:57 cspencer joined 05:05 masak joined 05:14 [particle] joined 05:15 sepheebear joined, _jedai_ joined 05:18 |jedai| left 05:21 dukeleto joined 05:22 meppl left
mberends masak: OH HAI 05:26
masak mberends: OH HAI
mberends U HAZ DO SVG?
masak IS DO IT NAO. 05:27
mberends U HAZ C MI SVG? autoexec.demon.nl:8888/svg/ 05:28
masak O, I C!
mberends++ 05:29
05:29 dukeleto left
mberends SIZ SVG IS BIG & SMAL 05:29
masak YA -- IZ BIG & SMAL & SLICES
mberends SLICES = CROP R CLIP R SUMTIN 05:30
05:31 nek joined
masak IZ VRY GOOD. I CAN HAZ MORE CODING SVG NAO. 05:31
mberends++ 05:32
05:32 [particle]1 left
mberends U C SVG TINY? IZ BETR 4 U & LIL SYS. www.w3.org/TR/SVGTiny12/ 05:33
05:34 dukeleto joined 05:35 _jedai_ left, |jedai| joined
masak YA -- I CAN HAZ C. 05:37
mberends OK I GOAZ 2 WRK BAI
masak BAI!
05:38 mberends left, cspencer left 05:40 mtnviewmark joined 05:45 Exodist left
masak mtnviewmark: hi! 05:49
how's it going?
mtnviewmark good!
I've made my way through most of STD.pm
there are lots of discrepancies between STD.pm and Syn03 05:50
masak mtnviewmark: that's something we need to address.
mtnviewmark I'm making a list -- which do you think is considered more authoritative?
masak STD, but I also guess it depends.
mtnviewmark oh - really? fie I was hoping the Synop 05:51
masak STD.pm is newer, in a sense.
it's what $larry has been working on lately.
mtnviewmark hmmm... okay, though some of the issues seem like clear STD.pm errors -- mostly associativity declarations
masak also, there's something to be said for an executable specification :) 05:52
05:52 dukeleto left
masak IIRC, it passes the whole test suite... OTOH, that doesn't mean it's correct. 05:52
mtnviewmark if I assemble a list of differences - and posted it to the perl6-dev mailing list, would that be likely to get a response from $larry or others involved in adjudicating such differences?
hmmm.... I wonder if there is really a postfix:<i> operator! 05:53
I'm not even sure how you'd write such a thing!
masak moritz_: p6l.
sorry, mtnviewmark: p6l.
mtnviewmark p6l?
masak mtnviewmark: and I think you will get a response within a few days.
perl6-language.
and yes, there is a postfix:<i> 05:54
rakudo: say 4 + 5i
mtnviewmark ah - okay, I'll subscribe and send my findings when I've gotten through the end -- (currently at %conditional)
p6eval rakudo 35576: OUTPUTĀ«4+5iā¤Ā»
mtnviewmark oy!
masak :)
clear omission from S03, yes.
rakudo: say (1 + 2i) * (4 - 5i)
mtnviewmark and one wonders how you apply it to a varaible, say $t
p6eval rakudo 35576: OUTPUTĀ«14+3iā¤Ā»
masak mtnviewmark: you don't, I guess. 05:55
mtnviewmark std: my $t; ($t)i;
p6eval std 24912: OUTPUTĀ«00:05 83mā¤Ā»
masak rakudo: my $t = 5; say ($t)i;
p6eval rakudo 35576: OUTPUTĀ«0+5iā¤Ā»
masak huh! :)
mtnviewmark by the way - what is that supposed to mean? the output format from std: ???
masak mtnviewmark: I think it's the number of seconds. I don't know what 83m means. 05:56
TimToady 83 megabytes 05:57
masak ah. 05:58
TimToady rakudo: my $t = 5; say $t.i
p6eval rakudo 35576: OUTPUTĀ«Method 'i' not found for invocant of class 'Int'ā¤current instr.: '_block14' pc 80 (EVAL_17:44)ā¤Ā»
masak TimToady: should that work?
TimToady think so
masak submits rakudobug
TimToady pugs: my $t = 5; say $t.i 05:59
p6eval pugs: OUTPUTĀ«*** No such method in class Int: "&i"ā¤ at /tmp/DFnrL3cinP line 1, column 16 - line 2, column 1ā¤Ā»
TimToady hmm
rakudo: my $t = 5; say $t\i 06:00
masak well, it's only fair -- if [] and {} have dot forms, why not i?
p6eval rakudo 35576: OUTPUTĀ«Statement not terminated properly at line 1, near "\\i"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
TimToady rakudo: my $t = 5; say $t\ i
p6eval rakudo 35576: OUTPUTĀ«0+5iā¤Ā»
masak heh!
I'll submit that $t\i one as well.
mtnviewmark just noticed that STD has .= forms at same precedence as = 06:01
06:01 _jedai_ joined
TimToady indeed, syntactically it's just an assignop 06:02
06:02 |jedai| left
mtnviewmark okay, Syn03 has it with the other . ops, down at %methodcall 06:02
masak mtnviewmark: no, that's another .=
TimToady that means the postfix, not the infix
mtnviewmark oh - there are two?
masak :) 06:03
TimToady $x.=foo is parsed as postfix
$x .= foo is parsed as (weird) infix
mtnviewmark 'k - then that one is missing from Syn03
(I think)
TimToady S03 isn't particularly complete
esp. the table is not intended to be exhaustive 06:04
mtnviewmark hmmm... well, so much for basing my updated chart on it.... ;-O
no, I scoured the text...
but now I'm reading STD.pm
TimToady as mentioned, STD is more recent thinking
S03 hasn't caught up in every respect
mtnviewmark is that true for associativity? There are many discrepencies there 06:05
TimToady would have to see the individual cases
mtnviewmark Okay -
%autoincrement isn't :assoc<left>
%symbolic_unary isn't :assoc<left> or :assoc<right> as needed
%concatenation is :assoc<left>, not list as in Syn03
%named_unary isn't :assoc<left>
%tight_and is :assoc<left>, not list as in Syn03
(token infix:sym<^^> is hand set to list)
%conditional is :assoc<right>, not left as in Syn03
(heh!)
TimToady but while STD can parse all of t/, it doesn't necessarily do it right :) 06:06
well, default is left 06:07
mtnviewmark oh - I couldn't find that - is that just implicit in the code for EXPR?
TimToady and for some things it doesn't really matter if left or list
yes, EXPR
assuming I recall it correctly, it's been a while 06:08
mtnviewmark doesn't left or list kind of imply whether it is a chain of calls, or one call with many args (to some conceptual, underlying function?)
TimToady yes, but where the op would end up with the same semantics, list is just an optimization, like for concatenation 06:09
but it should probably be list in STD
(for that reason)
mtnviewmark hmmmm... I thought && being :assoc<list> was nice and clear, though I understand how it is the same as :assoc<left> 06:10
TimToady hmm, is conditional really left in S03? that'd be an oopsie
mtnviewmark the chart currently has it as Infix, List
yes - it is
06:10 dukeleto joined
mtnviewmark er, infix, List was for && that is 06:10
TimToady understood 06:11
mtnviewmark did \ cease to be an operator?
seems so
TimToady prefix:<\\> is kind of an operator
mtnviewmark and <== and friends seem to have become operators (they aren't in Syn03) 06:12
TimToady but it requires an absence of whitespace after it
go back and forth about feed ops, but it's easier to treat them as ops, I think
mtnviewmark okay, but the grammer in STD.pm doesn't seem to parse prefix:<\\> as an operator
TimToady and anyone who mixes foo ==> bar if $baz is just asking for it anyway 06:13
hmm
mtnviewmark at least not at the precedence level of prefix:<|>, prefix:<^> and prefix<=>
TimToady it's a <capterm> looks like
mtnviewmark yes - even though I was basing on Syn03, I put them on the chart anyway - they felt far too much like operators
but, based on STD.pm today, I'll put them in the main area 06:14
TimToady anyway, STD is close to right
*closer 06:15
I'll try to glare at it all tomorrow and align it
mtnviewmark good - now I just have to plow my way through the twisty maze of meta-op parsing and dottyop parsing
TimToady mtnviewmark++
mtnviewmark I'll produce a list of differences as I found them and post to perl6-language 06:16
TimToady have the appropriate amount of fun :)
thanks
mtnviewmark I'm sure it'll drive me dotty....
TimToady sniggers
I don't recall, did you treat metaops like actines/lathinides before? 06:17
*actinides
there's no way to draw a chart with them all nowadays, however 06:18
the metaops in STD aren't even generating all the ones there ought to be yet
masak Perl 6 operators have finally passed the barrier of tractability :) 06:19
TimToady @a X>>=:=<<X @b 06:20
lambdabot Maybe you meant: activity activity-full admin all-dicts arr ask . ? @ v
TimToady maybe I did at that
masak lambdabot++
lambdabot: you're much nicer than that purl girl.
TimToady hello masak, you fantastic person you! 06:21
masak haha
06:23 dukeleto left
mtnviewmark No - i didn't treat them as auxiliary series - those were the no lost file text operators 06:24
the only meta op back then (2004) was hyper, and it was it's own
the new metas have a special place above the table now (and have crowns and royal sashes) 06:25
(!)
alas, the loss of the file operators meant my great joke of the "Filinis" at precendence 8-1/2 is gone
masak mtnviewmark: I realize that TimToady didn't get a copy of the new table. maybe one of us should send him one? 06:26
he does have some inside knowledge in these matters, after all. 06:27
06:27 maerzhase joined
mtnviewmark well - you could send him the "Almost the Third Edition"... but I'm getting close to "Breath from the Third Edition" 06:27
and now STD.pm is going to have me do some arranging. 06:28
masak :)
I'll let you decide.
mtnviewmark I could send it to him too.... though my message might get lost in his inbox
TimToady I'm pretty busy at work, so take your time
mtnviewmark thought TimToady got to do this for work.... 06:29
:-)
TimToady some of the time
and some of the rest of the time too :)
but not all of the time
mtnviewmark wonders about temporal junctives.... 06:30
06:34 cognominal left 06:42 dukeleto joined 06:50 maerzhase left 06:51 maerzhase joined 06:52 dukeleto left 06:53 cognominal joined 06:59 namenlos joined 07:03 ashizawa joined 07:10 maerzhase left 07:12 mtnviewmark left 07:18 cognominal left 07:22 meppl joined 07:24 [particle]1 joined
moritz_ good morning 07:29
masak guten morgen! 07:30
masak wishes he had clones who could do more work for him 07:32
Patterner masak's clones probably wish the same...
masak I've got November, Druid, u4x, two secret projects that might not amount to anything... and that's just the Perl 6 stuff 07:33
then there's Real Life: work and uni.
oh, and S29, and diverse Rakudo improvements.
07:35 ashizawa left 07:36 ashizawa joined, _jedai_ left, |jedai| joined 07:37 hercynium_ left
masak does anyone want to help me figure out why November p6w doesn't build? 07:39
pasteling "masak" at 130.238.45.242 pasted "November p6w build failure" (40 lines, 3.4K) at sial.org/pbot/34489
masak that 'line 3, near ";\n\nUse Con"' makes me suspect that the error is in Tags.pm 07:40
but building Tags.pm individually works fine. 07:41
07:42 [particle] left 07:45 vixey joined
moritz_ November.pm also uses Config 07:48
masak aye, but not on line 3. 07:49
a lot of the modules use Config.
(which should really be named November::Config, by the way)
moritz_ if I precompile Config.pm,, it takes much more time before the same error appears
masak what might that mean? 07:50
moritz_++ # for investigating
moritz_ dunno
masak if I precompile Config.pm, I get another error when making November.pm 07:51
pasteling "masak" at 130.238.45.242 pasted "another error" (23 lines, 1.8K) at sial.org/pbot/34490
moritz_ after 'make Config.pir' I still get the "parse role" error 07:52
moritz_ tries 'make -k' 07:53
masak what's '-k', precious?
moritz_ the same as --keep-going 07:54
ie don't abort on error, but build what you can
masak cool.
moritz_ makes no difference here
masak huh -- just made clean, then Config, then November -- now I get a _third_ error! 07:55
"Could not find non-existent sub Config"
:(
moritz_ weird
masak the order clean, Tags, Config, November again produces the Null PMC access. 07:56
there's something rotten in the state of Denmark.
Khisanth didn't know there were than many Danish developers 07:57
masak Khisanth: have you read Hamlet?
Khisanth yes :)
masak ok. 07:58
07:58 iblechbot joined
moritz_ did not, but still knows the qutoe 07:59
*quote
masak I've a good mind to submit all of this as a rakudobug, even though I know that it's not the most helpful approach.
November is not meant to be a sieve for all this brokenness, the test suite is. 08:00
masak grumbles
moritz_ what we ought to have in the test suite are a few modules that actually *do* something, and that include one another etc.
08:01 hudnix left
masak yes, of course. 08:01
moritz_: and I'm not blaming you specifically for that. it's just something that's not there yet, but ought to be.
moritz_ i know 08:02
08:02 mberends joined
moritz_ ideally I'd like to have a small application sitting in the test suite 08:02
Matt-W Morning 08:03
masak Matt-W: \o
Matt-W Sounds like we need to put some more stuff in the test suite
masak November has been exceedingly unlucky the past week. after I got it out of its half-month bit rot, the rvar branch merged. after I fixed _that_, jnthn's branch merged. :/ 08:04
Matt-W: oh yes.
08:06 cognominal joined
masak if someone with the tuits and enthusiasm wishes to reduce the current November build failures to a minimal case, I'd be very grateful. 08:06
I could do it, but I've been going at it for a week now, and I feel like the Red Queen.
actually, forget about the clones. I need volunteers. 08:07
volunteers, here's how you volunteer: (1) acquire November. (2) cd november/p6w. (3) make. (4) observe the error. (5) fiddle with things (comment out and remove code, make names shorter and re-order stuff) until the error is isolated. (6) profit! 08:10
kthxbai.
08:11 hudnix joined
masak it's actually fun work, like being Sherlock Holmes for a day. I usually find it mentally rewarding. 08:11
moritz_ (7) send bug report
masak aye, or paste it here. whatever. 08:12
08:12 maerzhase joined
mberends masak: POD HAZ BITROT 2 08:12
masak mberends: OIC.
IT SUX
but that's what being an early adopter means. I'm not surprised or disappointed or anything. in general, this is a fun ride. 08:13
mberends tip: s/perl6 --target=pir/parrot perl6.pbc --target=pir/
masak mberends: aye, good idea. 08:14
ihrd did the inverse subst some time ago. I guess he thought it was a good idea.
reverting that now. 08:15
08:15 |jedai| left, |jedai| joined, maerzhase1 joined, jimmy_ joined 08:16 AzureStone left
masak pushed. 08:16
jimmy_ 굋čƕ 08:17
masak the error persists.
jimmy_ Test 08:18
mibbit++
masak indeed.
jimmy_ it can tranlate languages. 08:19
s/tranlate/translate/ 08:20
Patterner å¤±č“„ 08:21
jimmy_ perl6 has been in development, progress a bit slow
masak jimmy_: fell free to help. 08:22
s/fell/feel/
jimmy_ I played out in Chinese characters, was mibbit automatically translated into English to irc 08:23
masak well, that's close, I guess. 'played out' should have been 'typed'.
jimmy_ Yes, automatic translation is not very accurate 08:24
masak we're not quite there yet, no. :)
jimmy_ just I typed : ę˜Æēš„ļ¼Œč‡ŖåŠØēæ»čƑäøę˜Æ很准ē”® 08:25
Matt-W I like this stage, it's like back at the start of the process on perl6-language when I used to venture obvious opinions
There's a feeling like you can shape where this amazing thing is going
masak aye.
Matt-W Except at the moment, seeing part of the language implemented and actually being able to write code in it, I can see that it's a far better language than I imagined it would be back then 08:26
masak I like the distance Rakudo has come already.
pmichaud++ and jnthn++ do impressive things with their bare hands. 08:27
jimmy_ seems that mibbit used google Translation
masak jimmy_: not that surprising :)
jimmy_ masak: a little 08:28
Matt-W masak: I remain in awe of their work. The whole thing just makes my head spin, which is why I'm so keen to look at documentation. It's something I can comprehend, and yet it's also very helpful to people. 08:29
jimmy_ freenode servers will be restarted? 08:30
masak Matt-W: same here. I can do small things on Rakudo, but that's all.
08:31 maerzhase left
Matt-W masak: I basically understand PIR and I thought I understood how Rakudo was put together, but whenever I look at seeing about fixing something in RT, I can't find the code responsible for it 08:35
masak that happened to me a lot during the summer. it's sort of the head-against-wall phase.
it passes, to a certain degree at least. 08:36
08:36 DemoFreak joined
Matt-W At some point I'm going to have to see if someone can guide me through some of it, that would probably be hugely helpful 08:37
masak Matt-W: sure. we should take and afternoon some day.
s/and/an/
Matt-W yes
08:54 stephens left 09:00 alester left, perl6examples left, jiing left, Eevee left, cj left, szabgab left, Grrrr left, frodwith left, SubStack left, obra left, szabgab joined, Grrrr joined, jiing joined 09:01 barney joined 09:02 IRSeekBot left 09:04 |jedai| left 09:05 |jedai| joined, cj joined 09:09 dukeleto joined, ejs joined 09:13 vixey left 09:31 jferrero joined 09:35 donaldh joined 09:38 donaldh left 09:39 AzureStone joined 09:45 [particle] joined 09:46 |jedai| left 09:48 |jedai| joined 10:02 [particle]1 left 10:11 mberends left
masak rakudo: say * ~~ Whatever 10:12
p6eval rakudo 35577: OUTPUTĀ«1ā¤Ā»
10:13 jimmy_ left
Matt-W Is Whatever a special thing 10:19
moritz_ either a special, or a very normal thing, depending on your point of view :-) 10:20
masak whatever... 10:31
10:46 |jedai| left 10:47 |jedai| joined 11:00 nek left 11:01 braceta joined 11:22 spx2 left, spx2 joined
jnthn hi all 11:26
Matt-W hi 11:31
jnthn gets back to parametric roles 11:32
11:44 tux300181 left, tux300181 joined 12:06 [particle]1 joined 12:15 spx2 left, spx2 joined 12:23 ruoso joined 12:24 [particle] left
jnthn moritz_: ping 12:25
moritz_ jnthn: pong 12:26
jnthn OH HAI
I'm looking through parameterized.t
It seems to muchly test mixins of parameterized roles, so I may rename it appropriately.
However, I spotted this:
12:27 Patterner left
jnthn lives_ok {$a does InitialAttribVal[42]}, 12:27
and later
ruoso Hello!
jnthn ok !$a.HOW.does($a, InitialAttribVal[42]), ".HOW.does gives correct information (1-2)";
hi ruoso
Why would this be expected to hand back false?
12:28 |jedai| left 12:30 |jedai| joined, Psyche^ joined, Psyche^ is now known as Patterner
moritz_ jnthn: probably the test is wrong 12:31
jnthn: I just updated it synactically, I haven't reviewed its semantics 12:32
jnthn: since you understand the topic much better than I, feel free to change the tests as you see fit
jnthn moritz_: OK, if you've not reason to believe it really should work that way, then I'll happily change it.
Just wanted to check you didn't have spec-based reasons for writing it like that. :-) 12:33
moritz_ www.thealmightyguru.com/Humor/Docs/...eFoot.html # old, but still very good
jnthn haha! 12:35
moritz_ I particularly liked the ones about assembly and modula-2
masak yes, that one's a classic. 12:37
what would be a worthy Perl 6 analog of the items in that list? 12:39
rakudo_svn r35586 | jonathan++ | [rakudo] Get parametric roles working with mixins via the does operator. 12:40
12:40 namenlos left
moritz_ what's the difference between does and but? 12:40
jnthn but does a copy first
12:41 namenlos joined
jnthn And then does it to the copy 12:41
(literally, it is defined in terms of infix:<does>)
ruoso masak, "when Perl 6 is out you find out that your specie evolved and no longer carry a foot"
ruoso hides
moritz_ so does modifies in-place?
jnthn moritz_: aye. which was...painful...to make work. :-)
ruoso moritz_, the operator does, not the method
masak ruoso: boo :) no more of that meme.
ruoso: I want something that highlights the beauty of Perl 6, but still points out its weaknesses. being late is not a weakness in this case. 12:42
pmichaud "Perl 6 gives you even more ways to shoot yourself in the foot. You can even shoot both feet at the same time, as well as any permutation of your feet and others' feet that you wish. Fortunately, you soon wake up and discover that it's all just a dream, since Perl 6 doesn't exist anyway." 12:43
ruoso masak, readibility problems in Perl 5 is FUD, IMNSHO
masak ruoso: I agree.
ruoso: that doesn't mean we have to make FUD jokes ourselves. 12:44
moritz_ but it's fun, sometimes :-)
masak moritz_: of course. :)
ruoso "you might have shot or not your foot, but you have to wait for the possibilities to collapse"
masak pmichaud: my colleague always teases me about Perl 6 being 'vapourware', since he knows it makes me steam inside. he liked your description above. 12:45
ruoso: I like the direction that one is going. 12:46
'you try to shoot both feet using MMD and junctions, but it turns out that you've misunderstood the syntax, and you car explodes instead' 12:47
moritz_ "Perl 6 makes you shoot your (and everbody else's) feet from at least eight angles at the same time, but you discover that two directions aren't implemented yet, and the other six are bullets are too slow to hurt you:
ruoso you know, every time I see the "Perl is dead" or "Perl 6 is vapor" I think: If perl were dead and perl 6 irrelevant we wouldn't see so much fuz about it... it would simply disappear...
moritz_ s/:/"/
jnthn try { shoot_foot and die } or fail 12:48
masak ruoso: I wish it worked like that. people calling a thing dead can help kill that thing.
moritz_ jnthn: NULL PMC access in type()
:-)
masak moritz_: :D
jnthn # at least make it *compile* guys...we didn't cargo-cault English into Perl 6 for nothing ;-)
Well, half of English. 12:49
masak jnthn: sure, but as moritz_ pointed out, it doesn't run.
jnthn rakudo: try { shoot_foot and die } or fail
p6eval rakudo 35586: RESULTĀ«{ ... }Ā»
jnthn It's fine.
masak oh good.
what's that result?
jnthn rakudo: try { shoot_foot and die } or epic fail 12:50
p6eval rakudo 35586: RESULTĀ«{ ... }Ā»
masak !
moritz_ jnthn: fail() should return some kind of undefined value
jnthn rakudo: try { shoot_foot and die } or omg anything here I will do a lightning talk on this fail
p6eval rakudo 35586: RESULTĀ«{ ... }Ā»
masak :)
pmichaud snickers.
jnthn (or course, we never invoke any of the preceding listops because fail throws a return exception...)
It's great for documentation though. 12:51
masak makes for more English-like code.
jnthn could not be bothered fail()
masak haha
jnthn weird fail()
ruoso masak, but I also have a strong belief that Perl 6 will be as revolutionaire as Perl itself was. So I just keep working and thinking "you'll come back and ask for forgiveness" ;) ;)
masak rakudo: I can write anything before fail
p6eval rakudo 35586: OUTPUTĀ«No exception handler and no messageā¤current instr.: 'return' pc 15582 (src/builtins/control.pir:39)ā¤Ā»
pmichaud rakudo: try { shoot_foot and die }
p6eval rakudo 35586: RESULTĀ«Null PMC access in find_method()ā¤current instr.: '_block14' pc 74 (EVAL_16:43)ā¤Ā»
masak submits rakudobug
moritz_ ok, it's find_method, not type that Null's out 12:52
:-)
that sure looks like progress
masak ruoso: trolls don't ask forgiveness. but helping release a great product can be rewarding, yes.
ruoso masak, not everyone that buys FUD is a troll
most of them are inocent bystanders 12:53
masak ruoso: point.
I sure has taught me not to make judgments laregly based on rumours.
s/I/it/
12:57 riffraff joined
masak Concurrent Euclid: You shoot yourself in somebody else's foot. 12:59
I've always liked that one.
13:04 ashizawa left
pmichaud rakudo: my $x = :a<5>; say $x.map({ ; .key => .value + 1}).perl; 13:23
p6eval rakudo 35589: OUTPUTĀ«["a" => 6]ā¤Ā»
pmichaud rakudo: my $x = :a<5>; say $x.map({ .key => .value + 1; }).perl;
p6eval rakudo 35589: OUTPUTĀ«Method 'key' not found for invocant of class 'Failure'ā¤current instr.: '_block14' pc 101 (EVAL_16:49)ā¤Ā»
masak pmichaud: should the former one work, or are my expectations wrong? 13:25
moritz_ pmichaud: that's because it's parsed as hash, I think
masak s/former/latter/
moritz_ pmichaud: and it could very well be what the spec says, but I'm not sure
masak either
pmichaud I'm not clear on the spec here either.
Rakudo sees the "block" as a hash composer, because it consists of a single Pair.
so it executes it "immediately", per the spec. 13:26
moritz_ so it's "works as designed"?
pmichaud depending on how one interprets "designed", yes :-)
Matt-W Hmm I like the one about CSS: "You shoot your right foot with one hand, then switch hands to shoot your left foot but you realize that the gun has turned into a banana." 13:27
even though CSS is not a programming language
moritz_ there's a lot of truth in that page
pmichaud anyway, I think we'll need some spec clarification before Rakudo can do anything about that one.
Matt-W I wonder if Haskell would be "You give your foot to the gun, which returns you a different foot with a bullet hole in it" 13:28
moritz_ probably :-) 13:29
... but only after studying typ^Wballistic theory for two years 13:30
Matt-W Although I'm sure there's potential to bring Monads into it, there's always potential for Monads in a Haskell joke
Or maybe arrows or applicative functors
masak Matt-W: 'you read a tutorial about the Gun monad, try to shoot yourself in the foot for a few hours, and after a few hours emerge with a beautiful two line program for shooting yourself in the foot ... that the compiler won't accept.'
moritz_ Matt-W: especially about writing a Monads tutorial
Matt-W I got my head around Monads pretty easily actually 13:31
jnthn "Then somebody gives you a kick in the monads"
Matt-W The problem was, then I tried to deal with arrows
masak Matt-W: :)
Matt-W and when I finally figured out what they were (or so I thought), they started throwing applicative functors at me
moritz_ Matt-W: I thought I understood Monads at one point conceptually, but I still lost the war against the type checker
masak there's always one more level.
Matt-W I used state monads extensively in my compiler project 13:32
the trick I found was understanding what the monad syntax is sugar for, and then what the real syntax means, and then it all fell into place 13:34
masak yes, something similar for me with monads. and with git. 13:35
jnthn OK, slovak class 13:39
jnthn is still fighting a weird bug
with parametric roles and mixins
back later 13:40
Matt-W envisages jnthn jumping up in the middle of his class and shouting "I've got it! That's the problem!" and running for a computer to fix the bug 13:41
masak except he shouts it in slovak. 13:49
Matt-W Well of course, but I don't speak any Slovak so I can't provide an accurate quote 13:53
13:55 _jedai_ joined 13:56 estrabd joined 13:58 |jedai| left 14:00 riffraff left 14:07 unobe left, ejs left 14:15 iblechbot left, iblechbot joined
pmichaud eval("I've got it! That's the problem!", :lang<slovak>) 14:17
masak :) 14:21
Matt-W umm 14:23
14:23 maerzhase1 left
Matt-W wouldn't that try and interpret it as written in Slovak? 14:23
pmichaud Sure, thus solving the problem. :-)
Matt-W or causing a parse error 14:24
pmichaud what Rakudo will really want is: eval("...", :target<lolcode>) which runs the "..." source through the compiler to produce LOLCODE output :-)
Matt-W heh 14:25
why would you want to produce LOLCODE? :P
pmichaud CHEEZBURGERS
Matt-W Although I think I actually understand the LOLCODE compiler in the Parrot repository, so it does have a purpose :) 14:26
14:26 maerzhase joined
pmichaud understanding being one of its purposes :-) 14:26
er, "promoting understanding" being one of its purposes.
14:27 [particle] joined
Matt-W yes, and it's serving it quite well really 14:30
maybe I should redo my dissertation compiler using PCT
Would be really easy I think
rakudo_svn r35592 | pmichaud++ | [rakudo]: spectest-progress.csv update: 284 files, 6254 passing, 0 failing 14:40
Matt-W hurrah! 14:41
14:41 iblechbot left 14:42 [particle]1 left 14:57 maerzhase1 joined, namenlos left 15:02 jferrero left 15:11 maerzhase left 15:21 _jedai_ left, |jedai| joined 15:31 iblechbot joined 15:37 mberends joined 15:38 Lorn joined 15:40 maerzhase joined
jnthn is back 15:42
Sadly, I didn't have any flashes of insight about the bug during Slovak class. :-( 15:43
Hmmm...a Perl 6 grammar to parse Slovak. :-)
15:43 bsdperl_ joined 15:47 maerzhase1 left 15:48 hudnix left 15:49 dalek left 15:50 dalek joined, bsdperl left
pmichaud std: my $t = 5; $t\i 15:52
p6eval std 24912: OUTPUTĀ«############# PARSE FAILED #############ā¤Syntax error at /tmp/7zlQrv1NB3 line 1:ā¤------> my $t = 5; $t\iā¤ expecting any of:ā¤ POSTā¤ infix or meta-infixā¤ infix stopperā¤ postfixā¤ postfix_prefix_meta_operatorā¤ standard stopperā¤
..statement modifier loopā¤ terminatorā¤ wh...
15:56 alester joined, schmalbe joined
masak hm, did I remember to report that to the ticket about postfix:<i>? don't remember. 15:57
15:57 barney left
pmichaud you reported that it didn't parse in Rakudo. 15:57
I'm replying now to report that it doesn't parse in STD.pm either (duplicate of RT #60148, for that part) 15:58
(replied.)
16:00 |jedai| left, |jedai| joined
masak ok. good. 16:00
16:05 spx2 left 16:10 spx2 joined 16:12 vixey joined
jnthn does a spectest run, hoping his changes don't cause epic fail 16:13
16:13 mberends left 16:17 justatheory joined, stephens joined 16:18 cognominal left, cognominal joined
rakudo_svn r35593 | infinoid++ | [codingstd] Fix a trailing_space.t failure in rakudo. 16:20
masak ok, I found the parsing error in November from this morning. 16:21
November builds now. 16:22
\o/ 16:23
16:24 schmalbe left
moritz_ what was the problem? 16:28
masak a line 'role Session;' that wasn't the first line. 16:34
the error message wasn't very helpful.
'make test' still gives errors, but it does it faster now that building works. :) 16:40
moritz_: maybe I will follow your idea now and make the test target depend on all
I also have an idea of how to temporarily fix the test failures. 16:41
TimToady do you ever try parsing November with STD? It might find certain errors quicker, and future proof you against rakudo convergence with STD 16:46
it might have found the role problem, for instance
masak TimToady: it's an interesting suggestion.
I don't currently have Perl 5.10.
but if I get it, I will try. 16:47
TimToady it's also quite likely to find places where rakudo is giving you more slack than STD allows :)
masak TimToady: can STD hand me an AST with interesting info too? I want to graph the growth of November :)
TimToady: yes, that might be good to know, too. 16:48
TimToady well, viv can give you a rudimentary AST
16:48 [particle]1 joined
masak TimToady: that might be enough. will try that. 16:48
slightly OT: what's the easiest way to install 5.10 on Mac OS X nowadays?
masak tries from source 16:49
pasteling "moritz_" at 132.187.31.74 pasted "November + STD.pm - nearly happy marriage" (38 lines, 1.5K) at sial.org/pbot/34494
16:49 |jedai| left 16:50 |jedai| joined
masak moritz_++ 16:51
will look at the things it found.
moritz_ masak: it parses /^ \w+ $/ as variable $/
masak moritz_: yes, I had that problem in Druid for a while too. but that was in an interpolated eval string :)
16:52 [particle] left
TimToady hh 16:52
huh
I guess that's the right answer from the viewpoint of LTM, but... 16:53
masak TimToady: I can change it, but it'll be a common pitfall :)
moritz_ at least it's green up to the $, and read starting from /] 16:54
TimToady does the problem go away with a space between $ and /?
moritz_ tries
masak I would guess so. 16:55
TimToady strange, bare /^ \w+ $/ doesn't fail
16:55 ruoso left
moritz_ uhm, it also fails with ws 16:55
TimToady then it's not the $/ var
moritz_ right 16:56
TimToady runaway / from earlier, maybe?
moritz_ but I wonder where it found the suffix regex modifier
TimToady but then why that error
right
moritz_ no /\w in sight
TimToady where can I find a copy of the file? 16:57
16:59 maerzhase left
TimToady I see a bug in STD, I think. is there any /] anywhere? 16:59
masak TimToady: github.com/viklund/november
moritz_ moritz.faui2k3.org/tmp/November.pm
TimToady: aye
it's [$string, /regex/] 17:00
rakudo_svn r35594 | jkeenan++ | Applying patch submitted by jimmy in TT#175. POD corrections in two files.
moritz_ std: [rx/a/]
p6eval std 24912: OUTPUTĀ«can't create lex/STD/termish.store: Permission denied at Cursor.pm line 532ā¤00:07 101mā¤Ā»
TimToady patching 17:02
masak November++ # constantly finding new uses 17:04
pugs_svn r24913 | lwall++ | [STD] spurious ] removed from obsolete modifier test 17:05
TimToady okay, Novermber.pm now parses in STD
masak thank you.
TimToady obviously a fossil from translating <[abc]> to < a b c >
masak what about the warnings about unknown routines in the nopaste? 17:06
something to be concerned about?
17:07 maerzhase joined
TimToady not really, if they come from use calls 17:07
STD doesn't do "use" yet
masak TimToady: but 'if' and 'else'?
TimToady those you need to worry about 17:08
masak ok, pasting that code too, hold on
TimToady means you have if() somewhere
pasteling "masak" at 130.238.45.242 pasted "the code with if and else warnings" (102 lines, 3.3K) at sial.org/pbot/34495
masak TimToady: I don't think I do. 17:09
moritz_ ack 'if\(' p6w/
no result
masak lines 80 and 83 which the warnings indicate contain closing braces
(uh oh, gotta go soon) 17:10
moritz_ maybe it's an if that's used as an expression?
alester moritz: Or ack -Q 'if(' p6w/
masak I don't see that either.
moritz_ std: 1 + if 1 { 2 }
alester tires of quoting regexes
p6eval std 24913: OUTPUTĀ«############# PARSE FAILED #############ā¤Syntax error at /tmp/O7UD6a1QSy line 1:ā¤------> 1 + if 1 { 2 }ā¤ expecting any of:ā¤ infix or meta-infixā¤ infix stopperā¤ standard stopperā¤ statement modifier loopā¤ terminatorā¤00:05 85mā¤Ā»
moritz_ alester: thanks, I didn't know that 17:11
alester -Q = \Q, basically
masak alester: thanks from me too :)
TimToady probably a backtracking problem out of statement_control:if 17:13
masak ok. nothing to worry about, then.
see y'all around. 17:14
17:14 masak left
PerlJam alester++ 17:15
alester :-)
you guys oughta run ack --man some time just for fun. 17:16
PerlJam yeah. I already know enough features to cover 95% of what I use it for, so there is little incentive to read the docs :-) 17:17
moritz_ alester: or just continue reading #perl6. I learned amazing things here... :-)
alester and yet, isn't htat -Q handy? 17:18
moritz_ it is indeed
PerlJam yep
-w is handy too 17:19
TimToady it's parsing Text__Markup__Wiki__Minimal__Syntax::TOP as a listop
and eating the block as an argument 17:20
17:20 aindilis joined 17:24 Exodist joined
szabgab I am trying to catch up with the basics again, but I could not find how to read from STDIN 17:28
I tried my $input = $*IN.readline;
but it segfaulted on Rakudo
17:29 REPLeffect left
rakudo_svn r35597 | jonathan++ | [rakudo] Various (some rather subtle) changes to infix:<does> and infix:<but>, to bring them up to date, fix various bugs and ensure they work in the parametric case too. 17:30
17:39 meppl left, meppl joined
pugs_svn r24914 | jnthn++ | [t/spec] Update perameterized roles test that checks mixins to match how I read S12, and fudge it for Rakudo. 17:41
r24915 | jnthn++ | [t/spec] Rename test. 17:42
r24916 | jnthn++ | [t/spec] What on *earth* was I thinking? Correct the last patch... 17:43
jnthn Enough code! To the pub!! 17:46
jnthn afk
pmichaud ("role Session;" error message) -- Rakudo just gives the same error message that STD.pm does for that one, I think.
std: say 'hello'; role Session; 17:47
p6eval std 24916: OUTPUTĀ«00:05 83mā¤Ā»
pmichaud okay, I'm wrong.
Rakudo just gives the same error message that STD.pm claims to give if reading the STD.pm code.
Either that or I'm misinterpreting what should happen there.
rakudo: say 'hello'; role Session; 17:48
p6eval rakudo 35597: OUTPUTĀ«Unable to parse role definition at line 1, near ";"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
pmichaud afk for a while # errands 17:49
17:49 hercynium joined
rakudo_svn r35598 | jonathan++ | [rakudo] Add parameterized-mixin.t, which is currently heavily fudged (that should change tomorrow) but tests todays additions. 17:50
17:59 bsdperl_ left, bsdperl joined
szabgab rakudo: "42".bytes 18:06
p6eval rakudo 35597: OUTPUTĀ«Method 'bytes' not found for invocant of class 'Str'ā¤current instr.: '_block14' pc 63 (EVAL_13:40)ā¤Ā»
szabgab rakudo: "42".chars
p6eval rakudo 35597: RESULTĀ«2Ā»
18:18 justatheory left, stephens is now known as stephenlb 18:27 jhorwitz joined 18:28 braceta left 18:36 pbuetow joined 18:41 |jedai| left 18:42 |jedai| joined 18:50 Psyche^ joined 18:55 riffraff joined 19:02 [particle] joined 19:03 lambdabot left 19:06 lambdabot joined, Patterner left, Psyche^ is now known as Patterner 19:08 [particle]2 joined 19:16 justatheory joined 19:18 riffraff left 19:24 [particle]1 left 19:30 |jedai| left 19:31 |jedai| joined 19:55 |jedai| left 19:56 |jedai| joined 20:02 [particle]1 joined 20:04 ejs joined 20:09 pmurias joined, pmurias left, mberends joined 20:15 _jedai_ joined 20:17 |jedai| left
diakopter rakudo: Grammar; 20:19
p6eval rakudo 35600: RESULTĀ«GrammarĀ»
diakopter rakudo: Grammar NQP; 20:20
p6eval rakudo 35600: OUTPUTĀ«Statement not terminated properly at line 1, near "NQP;"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
20:20 [particle] left
pmichaud std: Grammar NQP; 20:26
p6eval std 24916: OUTPUTĀ«############# PARSE FAILED #############ā¤Syntax error at /tmp/4bigtXB4cx line 1:ā¤------> Grammar NQP;ā¤ expecting any of:ā¤ infix or meta-infixā¤ infix stopperā¤ standard stopperā¤ statement modifier loopā¤ terminatorā¤00:05 85mā¤Ā»
20:32 pmurias joined 20:34 _jedai_ left 20:35 |jedai| joined, c9s left, c9s joined 20:37 ejs1 joined 20:47 ejs left 20:52 ejs1 left 20:53 meteorjay left
diakopter std: Grammar; 20:54
p6eval std 24916: OUTPUTĀ«00:05 82mā¤Ā» 20:55
[particle]1 std: grammar NQP;
p6eval std 24916: OUTPUTĀ«00:05 82mā¤Ā»
diakopter -_-
o_o
pmurias: ping 20:56
21:01 riffraff joined, justatheory left, |jedai| left, pmurias left, |jedai| joined 21:11 Su-Shee joined
Su-Shee hi 21:11
pugs_svn r24917 | duff++ | test 21:20
meppl good night 21:21
pugs_svn r24918 | duff++ | untest 21:22
21:27 meppl left 21:28 [particle] joined
pugs_svn r24919 | duff++ | retest 21:34
r24920 | duff++ | unretest 21:35
21:36 Su-Shee left 21:46 [particle]2 left 21:50 |jedai| left 21:51 |jedai| joined, Lorn left 22:01 wknight8111 joined, [particle]1 left, bsdperl left 22:02 bsdperl joined 22:11 _jedai_ joined 22:13 |jedai| left 22:21 pmurias joined
pmurias diakopter: pong 22:22
22:26 TimToady joined
moritz_ rakudo: say "(a)" ~~ m/'(' ~ ')' a*/ 22:28
lambdabot moritz_: You have 1 new message. '/msg lambdabot @messages' to read it.
p6eval rakudo 35601: OUTPUTĀ«(a)ā¤Ā»
moritz_ @clear 22:29
lambdabot Messages cleared.
moritz_ rakudo: say "(a)" ~~ m/:dba("paren expression") '(' ~ ')' a*/
p6eval rakudo 35601: OUTPUTĀ«(a)ā¤Ā»
moritz_ rakudo: say "(a]" ~~ m/:dba("paren expression") '(' ~ ')' a*/
p6eval rakudo 35601: OUTPUTĀ«Unable to parse "paren expression", couldn't find final ')'ā¤current instr.: 'parrot;PGE;Match;FAILGOAL' pc 2927 (compilers/pge/PGE/Regex.pir:456)ā¤Ā»
22:29 moritz_ sets mode: +o TimToady
TimToady thanks 22:30
moritz_ that's quite nice ;-) 22:31
(the :dba stuff)
TimToady std: say "(a]" ~~ m/:dba("paren expression") '(' ~ ')' a*/
p6eval std 24920: OUTPUTĀ«00:07 88mā¤Ā»
moritz_ rakudo: sub { 1; 22:32
p6eval rakudo 35603: OUTPUTĀ«Unable to parse block; couldn't find final '}' at line 1, near ""ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
moritz_ rakudo: m{
p6eval rakudo 35603: OUTPUTĀ«Statement not terminated properly at line 1, near "{"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
TimToady I think rakudo could afford to lose the extra quotes in the message
makes it sound like it's not a real paren expression... 22:33
moritz_ just like <block> isn't delimited differently
rakudo: :($a); say 1; 22:35
p6eval rakudo 35603: OUTPUTĀ«too few arguments passed (0) - 1 params expectedā¤current instr.: '_block14' pc 40 (EVAL_15:28)ā¤Ā»
moritz_ rakudo: :($); say 1;
p6eval rakudo 35603: OUTPUTĀ«Syntax error at line 1, near ":($); say "ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
22:36 _jedai_ left 22:37 |jedai| joined 22:40 justatheory joined
pmichaud the quotes in the message are actually an artifact of something else going on from the Parrot side. 22:41
we can get rid of them at some point, but it was actually more work to get rid of them than leave them there :-|
TimToady: did you see my earlier std parse for $t\i ?
std: my $t = 5; say $t\i; 22:42
p6eval std 24920: OUTPUTĀ«############# PARSE FAILED #############ā¤Syntax error at /tmp/uYRiu08SdJ line 1:ā¤------> my $t = 5; say $t\i;ā¤ expecting any of:ā¤ POSTā¤ infix or meta-infixā¤ infix stopperā¤ postfixā¤ postfix_prefix_meta_operatorā¤ standard stopperā¤
..statement modifier loopā¤ terminat...
moritz_ pmichaud: I'm currently plugging in some more :dba markers into rakudo's grammar - any objections?
pmichaud moritz_: only put them where we're currently using ~
STD has more, yes, but PGE/rakudo doesn't have a way to make use of those yet.
22:43 maerzhase left
moritz_ pmichaud: ok 22:43
22:43 Limbic_Region joined 22:46 On joined
On haaaaptchi... 22:48
Is Perl dead and Phyton reborn? 22:49
On does not think so... just hypothetical question :)
moritz_ On: just reverse your nick name, and you have your answer
On :) 22:51
Is Larry saying something sometimes here?
moritz_ yes 22:52
On Would like to hear what he thinks of this: www.web-app.net/?Is_Perl_dead_and_P...&id=60
On is a Perl fighter, a true partizan.
moritz_ On: if you want an informed and well-researched article about perl's state, read (and recommend) www.heise-online.co.uk/open/Healthc...s/112388/0 instead 22:53
On Perl made me getting a job, a wife and kids... so if it dies, I die too!
Thanks 22:54
PerlJam On: Perl isn't likely to die any time soon. 22:55
(and I fully expect there to be perl-fud 10 years from now just like there is today)
perl is dying! (along with physics, literature, and bunches of other maturing disciplines) 22:56
moritz_ the mere fact that people are proclaiming its death mean that it's not - if it were, nobody would be talking about it
22:56 namenlos joined
On I get this strange feeling that PHP activists been fighting Perl for years now, you can even find them on perlmonks, its tragic. 22:57
moritz_ it's annoying, yes. But tragic? dunno 22:58
On PHP namespaces.... never understood what they were thinking of, certainly not of a language for large applications.
22:59 riffraff left 23:01 Southen joined
TimToady I just figure it's people who are trying to motivate us :) 23:05
moritz_ I personally prefer positive motivation ;-) 23:06
vixey On, oh PHP is great for large applications you just need to use include($_GET['page']) and stuff :p 23:07
23:10 wolverian left 23:13 wolverian joined, wolverian left, wolverian joined
wolverian hrm, feather's irssi is giving me glib warnings 23:16
23:18 Southen_ left
TimToady my warnings are always glib 23:18
wolverian are they critical too? 23:20
Limbic_Region TimToady - surgery?
23:21 |jedai| left
jnthn is back from the pub 23:21
23:21 |jedai| joined
moritz_ wolverian: I'll do an upgrade on feather, dunno if that might help 23:21
23:21 [particle]1 joined
wolverian I was thinking that perhaps someone is doing an upgrade right now. 23:22
moritz_ I didn't when you reported the warnings 23:23
wolverian weird.
the errors are all related to the config file 23:24
perhaps it got corrupted somehow.
23:32 |jedai| left 23:33 |jedai| joined
diakopter TimToady: lol @ glib pun 23:34
23:37 gravity joined 23:38 namenlos left, vixey left 23:42 [particle]2 joined 23:43 [particle]3 joined 23:45 ruoso joined