»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by diakopter on 25 January 2010.
00:04 fridim_ left 00:05 justatheory left 00:07 am0c joined 00:10 fda314925 left 00:11 fda314925 joined, lumi left, lumi joined 00:18 cotto_work left
TimToady rakudo: class A { method foo {say "foo"} }; class B {has A $.aaa handles 'foo' }; my B $b .= new; $b.foo 00:26
p6eval rakudo 1d4928: ( no output )
00:26 breinbaas left, breinbaas joined
TimToady same can't-do-class bug, I expect 00:26
hudnix: but it works with a .= new 00:27
00:29 ash_ joined 00:30 ash_ is now known as _ash 00:31 meppl left 00:45 nihiliad left, lichtkind left 00:51 lumi left, lumi joined 00:53 kraih_sri joined 01:06 gabiruh_ left
diakopter ok, I've reproduced the can't-do-class bug outside of p6eval. finally. 01:11
TimToady lemme guess, you used chroot 01:14
colomon \o/
01:16 mssm left 01:21 p6eval left, p6eval joined 01:22 p6eval left, p6eval joined
diakopter rakudo: class A { method foo {say "foo"} }; class B {has A $.aaa handles 'foo' }; my B $b .= new; $b.foo 01:23
p6eval rakudo 1d4928: foo␤
colomon \o/
diakopter YA-TAA
01:23 davidfetter left
diakopter TimToady: it was the prefix "use Safe;\n" 01:24
hudnix ah
diakopter apparently when rakudo loads a module, it enters another level of repl
TimToady another run loop, you mean? 01:25
diakopter so 'use Safe;'.$user_code was dropping it back to a > prompt
colomon verifies that adding use Safe; locally is slow as a slow dog.
diakopter so I inlined the contents of lib/Safe.pm instead of 'use Safe'
TimToady huh
diakopter I should specify 01:26
it drops it back to a > prompt when you do this:
01:26 araujo left
diakopter export PERL6LIB=lib 01:26
01:27 lumi left
diakopter echo 'use Safe; class A { }'|./perl6 01:27
01:27 lumi joined
diakopter oh. I guess actually it's the 'class' declaration that enters another repl loop 01:27
maybe it's eval loop
I dunno
TimToady rakudo: run("ls /etc") 01:28
p6eval rakudo 1d4928: Too many positional parameters passed; got 1 but expected 0␤in Main (file src/gen_setting.pm, line 324)␤
diakopter heh
colomon seriously, the use Safe; version of that double class declaration is still just sitting there on my system. (Sounds like it is ramping up the processor fan, too...)
TimToady rakudo: say qx[ls /etc] 01:29
diakopter yeah, it enters an unending eval("die") loop or something
p6eval rakudo 1d4928: Too many positional parameters passed; got 1 but expected 0␤in Main (file src/gen_setting.pm, line 324)␤
diakopter hey, it's my VPS; it's still protected. you can still open sockets, though.
well, ok, brb
01:29 drbean joined 01:30 p6eval left, p6eval joined
diakopter rakudo: say qx[ls /etc] 01:31
p6eval rakudo 1d4928: operation not permitted in safe mode␤in Main (file /tmp/JbdQ6TvxT0, line 1)␤
diakopter rakudo: run("ls /etc")
p6eval rakudo 1d4928: operation not permitted in safe mode␤in Main (file /tmp/vzQMpNlV40, line 1)␤
diakopter rakudo: run('rm -Rf ~/') 01:32
p6eval rakudo 1d4928: operation not permitted in safe mode␤in Main (file /tmp/RAAB3feL0T, line 1)␤
diakopter rakudo: run("ls /etc", 'rm -Rf ~/')
p6eval rakudo 1d4928: operation not permitted in safe mode␤in Main (file /tmp/66bgq60PDY, line 1)␤
01:34 lestrrat is now known as lest_away
pugs_svn r29592 | diakopter++ | [evalbot] fix stuff 01:37
diakopter rakudo: my $ss_SS_S_S__S_S_s; 01:38
p6eval rakudo 1d4928: Redeclaration of variable $ss_SS_S_S__S_S_s␤
01:39 japhb left
diakopter colomon: is it still running? ;) 01:42
01:43 payload left
diakopter huri.net/tech/pspec 01:45
01:45 dhaivat joined
_ash cool link diakopter 01:51
01:51 _Chillance_ left 01:55 _ash left 02:00 agentzh joined 02:05 _ash joined 02:10 lest_away is now known as lestrrat 02:15 payload joined, justatheory joined, payload left, payload joined 02:17 c1sung_ is now known as c1sung 02:26 dhaivat left 02:34 stephenlb left 02:36 ShaneC left 02:41 orafu left, orafu joined
colomon diakopter: sorry, I killed it and went downstairs to exercise before you asked the question. :) 03:01
never finished on its own, I think I let it run for 10 minutes or so before I kiolled it. 03:02
03:07 lumi left, lumi joined 03:16 tarski left 03:31 araujo joined
diakopter I just realized how to give the compiled edition of program compiled by sprixel access to a routine that can build a copy of each's own originating syntax tree. 03:32
(in addition to an emit() method, each node needs an emit_emitter() method, which just emits a CIL edition of each's regen() method) 03:37
oh, and, the same must be done for the originating grammar. 03:39
but not necessarily the compiler itself.
because that would get a little too circular. 03:40
03:44 colomon left 03:51 _ash left 03:55 Chazz is now known as Asleep 03:57 Asleep is now known as zz_Asleep 04:04 jaldhar joined 04:09 lumi left, lumi joined 04:10 jaldhar left 04:11 agentzh left 04:12 am0c left 04:14 jaldhar joined 04:17 jaldhar left 04:20 tolkad joined, jaldhar joined
tolkad !help 04:20
@help 04:21
diakopter I don't think any of the bots reply to those 04:22
tolkad dalek did 04:23
diakopter oh :)
oh yeah
tolkad it asked me to log in
0_o
diakopter yeah, and there aren't any users registered with it
tolkad lol
the website lies! lambdabot isn't in here 04:24
diakopter do you want to leave a message for someone?
lisppaste3 test1 pasted "test2" at paste.lisp.org/display/93982
tolkad no 04:25
04:26 jaldhar left 04:28 jaldhar joined 04:29 smash_ joined
tolkad perl6: echo "test" 04:30
p6eval rakudo 1d4928: Could not find non-existent sub echo␤in Main (file src/gen_setting.pm, line 324)␤
..elf 29592: Undefined subroutine &GLOBAL::echo called at (eval 124) line 3.␤ at ./elf_h line 5881␤
..pugs: *** No such subroutine: "&echo"␤ at /tmp/2abhQXzqSZ line 1, column 1 - line 2, column 1␤
tolkad perl6: print "test"
p6eval elf 29592, pugs, rakudo 1d4928: test
tolkad rakudo: print "test" 04:31
p6eval rakudo 1d4928: test
diakopter ooo p6eval's rakudo is now much speedier (now that 'use Safe' is removed)
tolkad rakudo: print "test" x 100 04:32
p6eval rakudo 1d4928:
..testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttestt…
tolkad what was that 0_o
some strange unicode characters just confused my IRC client 04:33
diakopter oh, an ellipsis
tolkad no, before that
after the number
and the colon
diakopter it's whitespace to me
tolkad I get two newlines and then "p6eval" in blue
It shouldn't be able to force my client to print newlines 04:34
diakopter no one's reported that before.. which irc client do you use
tolkad xchat aqua
diakopter oh
take a look at the bottom of irc.pugscode.org
to see how it "should" appear
then again, I dunno 04:35
tolkad wait, was that two messages or one?
diakopter 2 04:36
maybe xchat aqua tried to "intelligently" combine them
tolkad nah, it never does that. I'm suspecting some control character in there
buubot: echo "test" 04:37
buubot tolkad: "test"
tolkad phenny: .o echo test
.o echo test
phenny test
tolkad hmm 04:38
phenny: o echo test
diakopter .o echo ␤␤␤
phenny ␤␤␤
diakopter do you see 3 "NL" chars? 04:39
tolkad I see 3 squigglies
oh they are NL
diakopter heh; small font
tolkad well, it's not important 04:40
x is foo
buubot: x is foo
buubot tolkad: Stored x is foo
diakopter x?
tolkad buubot: x
buubot tolkad: x is foo
diakopter buubot: x is buubot: x? 04:41
buubot diakopter: Stored x is buubot: x?
diakopter buubot: x?
buubot diakopter: x is buubot: x?
diakopter buubot: x? is x?
buubot diakopter: Stored x? is x?
diakopter buubot: x??
buubot diakopter: x? is x?
diakopter buubot: buubot: x? is buubot: x? is buubot: x? 04:42
buubot diakopter: Stored x? is buubot: x? is buubot: x?
diakopter buubot: x?
buubot diakopter: x? is buubot: x? is buubot: x?
diakopter hee
buubot: buubot? 04:43
buubot diakopter: buubot is a swiss army knife where each tool is a smaller swiss army knife.
tolkad x?
what is x?
diakopter buubot: those smaller swiss army knives... do they have smaller ones too?
buubot diakopter: Couldn't match input.
diakopter buubot: buu? 04:44
buubot diakopter: buu is qq
diakopter blah: buubot: x? 04:45
04:46 smash__ left
diakopter rakudo: human 04:46
p6eval rakudo 1d4928: Could not find non-existent sub human␤in Main (file src/gen_setting.pm, line 324)␤
diakopter rakudo: space 04:48
p6eval rakudo 1d4928: Could not find non-existent sub space␤in Main (file src/gen_setting.pm, line 324)␤
diakopter rakudo: strate
p6eval rakudo 1d4928: Could not find non-existent sub strate␤in Main (file src/gen_setting.pm, line 324)␤
diakopter rakudo: versives 04:49
p6eval rakudo 1d4928: Could not find non-existent sub versives␤in Main (file src/gen_setting.pm, line 324)␤
tolkad Could we get lambdabot in here?
lambdabot is the best bot ever
diakopter dunno. maybe ask on #lambdabot 04:50
rakudo: conscious 04:51
tolkad nqp: say('x')
p6eval rakudo 1d4928: Could not find non-existent sub conscious␤in Main (file src/gen_setting.pm, line 324)␤
nqp: x␤
tolkad nqp: say('x' x 500)
p6eval nqp: Confused at line 1, near "say('x' x "␤current instr.: 'parrot;HLL;Grammar;panic' pc 500 (src/cheats/hll-grammar.pir:197)␤
tolkad nqp: say("x" x 500)
p6eval nqp: Confused at line 1, near "say(\"x\" x "␤current instr.: 'parrot;HLL;Grammar;panic' pc 500 (src/cheats/hll-grammar.pir:197)␤
tolkad wtf
diakopter nqp is a small subset
tolkad nqp: $x = "x" x 500;say($x)
p6eval nqp: Assignment ("=") not supported in NQP, use ":=" instead at line 1, near " \"x\" x 500"␤current instr.: 'parrot;HLL;Grammar;panic' pc 500 (src/cheats/hll-grammar.pir:197)␤
tolkad nqp: $x := "x" x 500;say($x) 04:52
p6eval nqp: Confused at line 1, near "$x := \"x\" "␤current instr.: 'parrot;HLL;Grammar;panic' pc 500 (src/cheats/hll-grammar.pir:197)␤
diakopter nqp doesn't have the x operator
tolkad phenny: tell tolkad test
phenny You can tell yourself that.
tolkad phenny: tell p6eval test
phenny tolkad: I'll pass that on when p6eval is around.
tolkad nqp: $x := "x" x 500;say($x)
p6eval nqp: Confused at line 1, near "$x := \"x\" "␤current instr.: 'parrot;HLL;Grammar;panic' pc 500 (src/cheats/hll-grammar.pir:197)␤
phenny p6eval: 04:52Z <tolkad> tell p6eval test
diakopter bots are good whipping boys after a rough day. 04:53
04:54 lumi left, lumi joined
tolkad buubot: macro foo is [echo x] 04:55
buubot tolkad: Stored foo is [echo x]
tolkad foo
buubot: foo
buubot tolkad: x 04:56
diakopter buubot: macro foo is [echo x] [echo x]
buubot diakopter: Stored foo is [echo x] [echo x]
diakopter buubot: foo
buubot diakopter: Error: unmatched closing parenthesis in compose
04:56 FurnaceBoy joined
diakopter hee 04:56
buubot: macro foo is [echo x] [echo x]) 04:57
buubot diakopter: Stored foo is [echo x] [echo x])
diakopter buubot: foo
buubot diakopter: Error: unmatched opening parenthesis in compose
diakopter buubot: macro foo is [echo x] ([echo x]
buubot diakopter: Stored foo is [echo x] ([echo x]
diakopter buubot: foo
buubot diakopter: x
diakopter buubot: macro foo is ([echo x] [echo x]
buubot diakopter: Stored foo is ([echo x] [echo x]
diakopter buubot: foo
buubot diakopter: Error: unmatched closing parenthesis in compose
diakopter buu: ^^ 04:58
tolkad buubot: macro foo is ([echo x] [echo x])
buubot tolkad: Stored foo is ([echo x] [echo x])
tolkad buubot: macro foo is [echo x] [echo x]
buubot tolkad: Stored foo is [echo x] [echo x]
tolkad buubot: macro foo is [echo x]
buubot tolkad: Stored foo is [echo x]
tolkad buubot: macro foo is ([echo x] [echo x])
buubot tolkad: Stored foo is ([echo x] [echo x])
tolkad buubot: foo?
buubot tolkad: Compose failed to find a plugin named: [echo
tolkad buubot: quote x 04:59
buubot tolkad: Couldn't match input.
diakopter heh 05:00
bot fun is fun
rakudo: ject
p6eval rakudo 1d4928: Could not find non-existent sub ject␤in Main (file src/gen_setting.pm, line 324)␤
tolkad phenny: tell p6eval test 05:02
phenny tolkad: I'll pass that on when p6eval is around.
tolkad rakudo a
rakudo: a
p6eval rakudo 1d4928: Could not find non-existent sub a␤in Main (file src/gen_setting.pm, line 324)␤ 05:03
phenny p6eval: 05:02Z <tolkad> tell p6eval test
diakopter phenny: tell rakudo liminal
phenny diakopter: I'll pass that on when rakudo is around.
05:03 diakopter is now known as rakudo
rakudo hi 05:03
phenny rakudo: 05:03Z <diakopter> tell rakudo liminal
p6eval rakudo 1d4928: Leading 0 does not indicate octal in Perl 6␤Confused at line 10, near ":03Z <diak"␤in Main (file <unknown>, line <unknown>)␤
05:03 rakudo is now known as diakopter
diakopter o 05:04
phenny: tell buubot is hihi 05:05
phenny diakopter: I'll pass that on when buubot is around.
diakopter buubot: hihi?
buubot diakopter: No factoid found. Did you mean one of these: [how]
phenny buubot: 05:05Z <diakopter> tell buubot is hihi
buubot phenny: Stored 05Z <diakopter> tell buubot is hihi
diakopter buubot: how? 05:06
buubot diakopter: how are you today?
diakopter buubot: GFY?
buubot diakopter: Couldn't match input.
05:10 gfx joined
tolkad print "buubot: macro "+str(time.localtime().tm_hour)+":"+str(time.localtime().tm_min)+"Z <phenny> " 05:13
whoops
.o py print "buubot: macro "+str(time.localtime().tm_hour)+":"+str(time.localtime().tm_min)+"Z <phenny> "
phenny buubot: macro 5:13Z <phenny>
buubot phenny: Couldn't match input.
tolkad hmm
.o py print "buubot: macro "+str(time.localtime().tm_hour)+":"+str(time.localtime().tm_min)+"Z <phenny> is [echo [args]]" 05:14
phenny buubot: macro 5:14Z <phenny> is [echo [args]]
buubot phenny: Stored 5:14Z <phenny> is [echo [args]]
tolkad hmm I need a 3rd bot for this lets see what we have... 05:15
I forgot you can't do a tell to yourself : /
buubot: echo tell buubot x 05:16
buubot tolkad: tell buubot x 05:17
tolkad .o echo buubot: echo tell buubot x
phenny buubot: echo tell buubot x
buubot phenny: tell buubot x
phenny You can tell yourself that.
tolkad *sigh*
diakopter I don't think the bots are together turing-complete
tolkad diakopter: phenny is
diakopter: But yeah, the problem is phenny only responds to tell and help as far as I know
diakopter phenny: ? 05:18
tolkad phenny: help
phenny tolkad: Hi, I'm a bot. Say ".commands" to me in private for a list of my commands, or see inamidst.com/phenny/ for more general details. My owner is sbp.
diakopter phenny: help
phenny diakopter: Hi, I'm a bot. Say ".commands" to me in private for a list of my commands, or see inamidst.com/phenny/ for more general details. My owner is sbp.
tolkad phenny: echo z
diakopter phenny: "moi"? 05:19
phenny diakopter: "me" (fr to en, translate.google.com)
tolkad ooh
phenny: "me"? 05:20
phenny tolkad: Language guessing failed, so try suggesting one!
tolkad phenny: moi?
phenny: en "me"?
phenny tolkad: Language guessing failed, so try suggesting one!
tolkad phenny: es mi?
phenny: es "mi"?
phenny tolkad: "my" (es to en, translate.google.com)
diakopter phenny: "es mi"?
phenny diakopter: "my" (es to en, translate.google.com)
tolkad phenny: es en "mi"?
phenny tolkad: "my" (es to en, translate.google.com)
tolkad phenny: en en "mi"?
phenny tolkad: Language guessing failed, so try suggesting one!
tolkad phenny: en en "me"?
phenny tolkad: Language guessing failed, so try suggesting one!
tolkad phenny: en en "hat"?
phenny tolkad: Language guessing failed, so try suggesting one!
tolkad phenny: en es "hat"? 05:21
phenny tolkad: "sombrero" (en to es, translate.google.com)
tolkad oooh.... we can work with this
phenny: "moi?"? 05:23
phenny tolkad: "Me?" (fr to en, translate.google.com)
tolkad buubot: "Me? is x
buubot tolkad: Stored "Me? is x
tolkad buubot: Me??
buubot tolkad: "Me? is x
tolkad buubot: "Me??
buubot tolkad: "Me? is x
diakopter .val perl6.org 05:24
phenny diakopter: perl6.org is Valid
diakopter orly
.val perl.com
phenny diakopter: perl.com is Invalid (58 errors)
diakopter .val perlcabal.org
phenny diakopter: perlcabal.org is Invalid (36 errors)
tolkad buubot: "Me? is "moi?"?
buubot tolkad: Stored "Me? is "moi?"?
tolkad .o echo buubot "Me?? 05:25
phenny buubot "Me??
buubot phenny: "Me? is "moi?"?
phenny buubot: "Me? is &quot;me?" (fr to en, translate.google.com)
buubot phenny: Stored "Me? is &quot;me?" (fr to en, translate.google.com)
tolkad -_-
hmm
diakopter .gc Perl 6
phenny Perl 6: 7,310,000
diakopter .gc "Perl 6"
phenny "Perl 6": 54,500
diakopter .gc "Perl6"
phenny "Perl6": 30,000
diakopter .gc "Perl 5"
phenny "Perl 5": 92,100
diakopter .gc "Perl5"
phenny "Perl5": 117,000
diakopter .gc "TimToady" 05:26
phenny "TimToady": 689
diakopter .gc "tolkad"
phenny "tolkad": 2,550
diakopter .gc "Randal Schwartz"
phenny "Randal Schwartz": 5,050
diakopter .gc "Randal L. Schwartz"
phenny "Randal L. Schwartz": 10,300
05:26 rekhajos joined
diakopter .gc "rekhajos" 05:27
phenny "rekhajos": 7
diakopter .gc "diakopter"
phenny "diakopter": 135
diakopter .gc "phenny"
phenny "phenny": 2,550
diakopter .gc "pmichaud"
phenny "pmichaud": 2,080
tolkad buubot: macro "Me? is [echo "Moi"?]
buubot tolkad: Stored "Me? is [echo "Moi"?]
tolkad .o echo buubot "Me?
phenny buubot "Me?
buubot phenny: "Moi"?
phenny buubot: "Me" (fr to en, translate.google.com)
buubot phenny: Couldn't match input.
tolkad buubot: macro "Me? is [echo "Moi?"?] 05:28
buubot tolkad: Stored "Me? is [echo "Moi?"?]
tolkad .o echo buubot "Me?
phenny buubot "Me?
buubot phenny: "Moi?"?
phenny buubot: "Moi?" (fr to en, translate.google.com)
buubot phenny: Couldn't match input.
diakopter .bytes ㋡
phenny diakopter: '\xe3\x8b\xa1'
tolkad buubot: macro "Moi? is [echo "Moi?"?]
buubot tolkad: Stored "Moi? is [echo "Moi?"?]
tolkad .o echo buubot "Me?
phenny buubot "Me?
buubot phenny: "Moi?"?
phenny buubot: "Moi?" (fr to en, translate.google.com)
buubot phenny: Couldn't match input.
diakopter sweet
tolkad buubot: "Moi?"
buubot tolkad: "Moi?"?
diakopter I think 4 is a new record
tolkad buubot: "Moi?" xlkjlksj
buubot tolkad: Couldn't match input. 05:29
tolkad buubot: "Moi? xlkjlksj
buubot tolkad: Couldn't match input.
tolkad humm
buubot: "Moi?" (fr to en, translate.google.com) is test
buubot tolkad: Stored "Moi?" (fr to en, translate.google.com) is test
tolkad buubot: "Moi?" (fr to en, translate.google.com)
buubot tolkad: "Moi?" (fr to en, translate.google.com) is test
diakopter phenny: doc doc?
phenny diakopter: Shows a command's documentation, and possibly an example.
e.g. phenny: doc tell?
tolkad buubot: "Moi?" (fr to en, translate.google.com) is macro [echo "Moi?"?] 05:30
buubot tolkad: Stored "Moi?" (fr to en, translate.google.com) is macro [echo "Moi?"?]
tolkad .o echo buubot "Moi?" (fr to en, translate.google.com)
phenny buubot "Moi?" (fr to en, translate.google.com)
buubot phenny: "Moi?" (fr to en, translate.google.com) is macro [echo "Moi?"?]
tolkad gah I forgot
buubot: macro "Moi?" (fr to en, translate.google.com) is [echo "Moi?"?]
buubot tolkad: Stored "Moi?" (fr to en, translate.google.com) is [echo "Moi?"?]
tolkad .o echo buubot "Moi?" (fr to en, translate.google.com)
phenny buubot "Moi?" (fr to en, translate.google.com)
buubot phenny: "Moi?"?
phenny buubot: "Moi?" (fr to en, translate.google.com)
buubot phenny: "Moi?"?
phenny buubot: "Moi?" (fr to en, translate.google.com)
buubot phenny: "Moi?"?
phenny buubot: "Moi?" (fr to en, translate.google.com)
buubot phenny: "Moi?"?
phenny buubot: "Moi?" (fr to en, translate.google.com)
tolkad .o echo buubot "Moi?" (fr to en, translate.google.com)
phenny buubot "Moi?" (fr to en, translate.google.com)
buubot phenny: "Moi?"?
phenny buubot: "Moi?" (fr to en, translate.google.com)
buubot phenny: "Moi?"?
phenny ...
tolkad lol
diakopter haha
tolkad phenny is well coded 05:31
05:31 lumi left
diakopter ok, now get them to program each other with "is" 05:31
tolkad .o echo buubot "Moi?" (fr to en, translate.google.com)
phenny buubot "Moi?" (fr to en, translate.google.com)
buubot phenny: "Moi?"?
phenny ...
tolkad .o echo buubot "Moi?" (fr to en, translate.google.com)
phenny buubot "Moi?" (fr to en, translate.google.com)
buubot phenny: "Moi?"?
phenny buubot: "Moi?" (fr to en, translate.google.com)
buubot phenny: "Moi?"?
phenny buubot: "Moi?" (fr to en, translate.google.com)
buubot phenny: "Moi?"?
05:31 lumi joined
phenny buubot: "Moi?" (fr to en, translate.google.com) 05:31
tolkad .o echo buubot "Moi?" (fr to en, translate.google.com)
phenny buubot "Moi?" (fr to en, translate.google.com)
tolkad buubot x?
buubot tolkad: x? is buubot: x? is buubot: x?
tolkad .o echo buubot "Moi?" (fr to en, translate.google.com)
phenny buubot "Moi?" (fr to en, translate.google.com)
buubot phenny: "Moi?"?
phenny buubot: "Moi?" (fr to en, translate.google.com)
buubot phenny: "Moi?"?
phenny buubot: "Moi?" (fr to en, translate.google.com)
buubot phenny: "Moi?"?
phenny ...
diakopter I'll be impressed if you can get cyclical definitions going 05:32
tolkad diakopter: they only ever respond with one message, I don't think it's possible
oh wait
except buubot responds to anything 05:33
diakopter cyclical redefinitions, I mean
tolkad phenny: tell buubot lol
phenny tolkad: I'll pass that on when buubot is around.
tolkad buubot: macro I'll pass that on when buubot is around. is [echo tell buubot x]
buubot tolkad: Stored I'll pass that on when buubot is around. is [echo tell buubot x]
phenny buubot: 05:33Z <tolkad> tell buubot lol
buubot phenny: Couldn't match input. 05:34
tolkad phenny: tell buubot lol
phenny tolkad: I'll pass that on when buubot is around.
tolkad .o echo buubot: I'll pass that on when buubot is around.
phenny buubot: I'll pass that on when buubot is around.
buubot phenny: Stored I'll pass that on when buubot is around.
phenny buubot: 05:34Z <tolkad> tell buubot lol
buubot phenny: Couldn't match input.
tolkad hmm, not possible because of that pesky timestamp
diakopter phenny: Stored I'll pass that on when buubot?
phenny: "Stored I'll pass that on when buubot"? 05:35
phenny diakopter: Language guessing failed, so try suggesting one!
diakopter buubot: macro I'll pass that on when buubot is around. is [echo tell buubot x is x is x] 05:36
buubot diakopter: Stored I'll pass that on when buubot is around. is [echo tell buubot x is x is x]
diakopter phenny: tell buubot around is
phenny diakopter: I'll pass that on when buubot is around.
diakopter buubot: macro I'll pass that on when buubot is around. is [echo tell buubot x is x is x]
buubot diakopter: Stored I'll pass that on when buubot is around. is [echo tell buubot x is x is x]
phenny buubot: 05:36Z <diakopter> tell buubot around is
buubot phenny: No factoid found. Did you mean one of these: [05Z <diakopter> tell buubot]
diakopter fail :) 05:37
oh! 05:38
tolkad: buubot drops whatever's before the last :
buubot: 05:36Z <diakopter> tell buubot blah: around is
buubot diakopter: No factoid found. Did you mean one of these: [05Z <diakopter> tell buubot]
diakopter I mean phenny
phenny: 05:36Z <diakopter> tell buubot blah: around? 05:39
tolkad meh, I'm bored now that I know they have flood protection
diakopter oh.
actually
rakudo: print ("test" x 30) ~ " is tell phenny: around?" 05:40
p6eval rakudo 1d4928: testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest is tell phenny: around?
diakopter rakudo: print ("test" x 34) ~ " is tell phenny: around?"
p6eval rakudo 1d4928: testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest is tell phenny: around?
diakopter rakudo: print ("test" x 37) ~ " is tell phenny: around?" 05:41
p6eval rakudo 1d4928: testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest is tell phenny: around?
diakopter rakudo: print ("test" x 40) ~ " is tell phenny: around?"
p6eval rakudo 1d4928: testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest is tell phenny: around?
tolkad aaaah
that makes sense
diakopter rakudo: print ("test" x 44) ~ " is tell phenny: around?"
p6eval rakudo 1d4928: testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest is tell phenny: around?
diakopter rakudo: print ("test" x 50) ~ " is tell phenny: around?"
p6eval rakudo 1d4928: testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest is tell phenny: around?
diakopter rakudo: print ("test" x 7\0) ~ " is tell phenny: around?"
p6eval rakudo 1d4928: Confused at line 10, near "\\0) ~ \" is"␤in Main (file <unknown>, line <unknown>)␤
diakopter rakudo: print ("test" x 70) ~ " is tell phenny: around?"
tolkad rakudo: print ("test" x 50 ^ 2)
p6eval rakudo 1d4928: testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest is
..tell …
rakudo 1d4928: one("testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest", 2)
tolkad rakudo: print ("test" x (50 ^ 2)) 05:42
diakopter rakudo: print ("." x 270) ~ " phenny: tell phenny: around?"
p6eval rakudo 1d4928: one("testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest", "testtest")
rakudo 1d4928: .............................................................................................................................................................................................................................................................................. phenny: tell
..phenn…
05:42 jaldhar left
diakopter rakudo: print ("." x 270) ~ " phenny: tell buubot around?" 05:42
tolkad rakudo: print ("test" x 500000000)
lol 05:43
>.>
diakopter rakudo: print "test" x 1E50
p6eval rakudo 1d4928: .............................................................................................................................................................................................................................................................................. phenny: tell
..buubo…
tolkad rakudo: print ("test" x 500000000)
p6eval rakudo 1d4928: ( no output )
05:44 tolkad left
diakopter tolkad: hang on 05:44
oh
p6eval rakudo 1d4928: ( no output ) 05:45
05:47 p6eval left, p6eval joined
diakopter ok, whoever's torturing p6eval in privmsg, please stop 05:47
my VPS isn't *that* resilient 05:48
sjohnson it's not in priv 05:49
it was tolkad
diakopter no, I saw lots spawned after he left
sjohnson oh
05:50 p6eval left, p6eval joined
diakopter rakudo: sleep 16 05:50
p6eval rakudo 1d4928: ( no output ) 05:51
diakopter sigh
rakudo: sleep 30
p6eval rakudo 1d4928: ( no output )
diakopter oh wait, sleep breaks the SIGALRM 05:53
rakudo: 1 while 1
p6eval rakudo 1d4928: ( no output )
diakopter oh well. 05:54
I thought I re-enabled the TIMEDOUT
05:59 p6eval left, p6eval joined 06:00 p6eval left, p6eval joined 06:01 p6eval left, p6eval joined 06:02 p6eval left, p6eval joined, agentzh joined
diakopter gives up 06:03
06:23 FurnaceBoy left 06:25 mssm joined
sjohnson heh 06:29
06:29 justatheory left 06:31 cognominal joined 06:35 TiMBuS joined 06:36 zz_Asleep left 06:37 Chazz joined, Chazz is now known as Guest77926 06:52 Guest77926 left 06:54 Chazz joined 06:55 Chazz is now known as Guest60782 07:00 cognominal left 07:03 mikehh_ joined 07:04 mikehh_ is now known as mikehh, pnate joined
saschi moin 07:04
^^
07:06 drbean left 07:09 cjk101010 joined
cjk101010 morning. 07:09
07:10 mikehh left 07:13 Doser joined 07:14 Doser left 07:17 kaare joined 07:18 kaare is now known as Guest81783 07:20 lumi left, lumi joined, jonasbn joined 07:26 pnate2 joined 07:29 Su-Shee joined
Su-Shee good morning 07:29
07:35 pnate left 07:43 Baggiokwok joined 08:03 iblechbot joined 08:15 cognominal joined 08:19 gfx left 08:21 payload left 08:22 japhb joined 08:24 vamped joined 08:25 Mantis joined, Mantis left 08:26 charsbar_ joined, charsbar left 08:52 cognominal left 08:53 pnate2 left, bbkr left, nbrown left, baest_ left, c9s__ left, Khisanth left, _ilbot2 left, jjore left, ingy left, stepnem left 08:54 gfldex left, Juerd left, PerlJam left, Exodist left, elmex left, jnthn left, Khisanth joined, pnate2 joined, bbkr joined, nbrown joined, baest_ joined, stepnem joined, jjore joined, ingy joined, _ilbot2 joined, c9s__ joined, irc.freenode.net sets mode: +ov Khisanth _ilbot2, elmex joined, Juerd joined, Exodist joined, PerlJam joined 08:58 lumi left, lumi joined 09:03 colomon joined 09:09 dakkar joined 09:18 Baggiokwok left 09:21 lestrrat is now known as lest_away 09:31 vamped left 09:32 Guest60782 left 09:33 Chazz joined 09:34 Chazz is now known as Guest87460 09:35 meppl joined 09:37 lumi left, lumi joined 09:45 krakan left 10:04 rblasch joined 10:16 TiMBuS left 10:17 agentzh left 10:18 am0c joined 10:22 lumi left, lumi joined 10:55 ejs joined 10:56 hanekomu left 11:04 fridim_ joined 11:10 ejs1 joined 11:19 ejs left 11:25 lumi left, lumi joined 11:33 he_ joined 11:35 elgatito joined 11:36 BoyBs joined 11:38 lumi left 11:39 lumi joined 11:42 k23z__ joined 11:44 payload joined
moritz_ good localtime fellow Perl 6 mongers and monks 11:44
jettero morning
11:51 Baggiokwok joined 11:53 drbean joined 11:54 elgatito left 11:56 lest_away is now known as lestrrat 12:00 SmokeMachine joined 12:12 baest_ left, nbrown left, bbkr left, pnate2 left, c9s__ left, Khisanth left, _ilbot2 left, jjore left, ingy left, stepnem left, lumi left, Khisanth joined, pnate2 joined, bbkr joined, nbrown joined, baest_ joined, stepnem joined, jjore joined, ingy joined, _ilbot2 joined, c9s__ joined, irc.freenode.net sets mode: +ov Khisanth _ilbot2, lumi joined 12:13 plainhao joined 12:15 rjh left 12:18 mikehh joined 12:33 ruoso joined 12:38 renormalist|work joined 12:44 ignacio_ joined, lichtkind joined
lichtkind /msg NickServ identify pru.dence 12:44
shit 12:45
haha
moritz_ lol
12:46 BoyBs left 12:51 lumi left, lumi joined
takadonet morning all 12:56
12:58 sss joined
sss wow~ 12:58
.... 13:00
wonderful~~
kkkk
't'
'ㅅ'
13:01 krakan joined, sss left 13:05 iblechbot left 13:16 patspam left 13:22 tkr left 13:24 tkr joined 13:28 lumi left, lumi joined
colomon morning! 13:30
13:30 patspam joined
takadonet colomon:morning 13:34
13:36 Baggiokwok left 13:38 arnsholt left, buubot left, aesop left, ascent_ left, Woody2143 left, jql left, wolverian left, huf left, betterworld left, Maddingue left, c1sung left, debux left, lestrrat left, yath left, arnsholt_ joined, ascent__ joined, huf_ joined 13:39 wolverian joined, lestrrat joined 13:40 buubot joined 13:41 rekhajos left, huf_ is now known as huf 13:42 patspam left 13:44 payload left 13:45 patspam joined 13:50 patspam left 13:51 yath joined 13:52 mssm left 13:57 kaare joined, kaare is now known as Guest88832 13:58 k23z__ left 14:00 payload joined 14:02 bluescreen joined 14:03 Woody2143 joined 14:04 Baggiokwok joined 14:09 lumi left, lumi joined 14:22 Guest81783 left 14:27 hanekomu joined, hanekomu left, payload left 14:28 payload joined 14:36 iblechbot joined 14:41 drbean left 14:47 lumi left, lumi joined 14:49 SmokeMachine left 14:53 Guest88832 left 15:00 mssm joined
pmichaud good morning, #perl6 15:19
colomon o/ 15:20
takadonet pmichaud:morning 15:22
colomon pmichaud: how goes ng1? 15:27
pmichaud colomon: it's coming along, albeit a bit slowly
I'm drafting a RangeIterator class now that I'd like you to work on
colomon groovy!
pmichaud (it won't work yet, as there are other pieces needed, but I figure you can work on it a bit while I get the other pieces in place) 15:28
colomon I will try to get ng1 built here as soon as I get a couple of long-term tests running for $work.
pmichaud good deal
ng1 still fails tests -- mainly anything using arrays
or ranges
or .map
colomon wow, the sun just broke through the clouds here, for what seems like the first time in days... 15:29
...and it's gone again. :) 15:30
15:31 iblechbot left 15:32 fridim_ left 15:33 lumi left, lumi joined 15:37 ignacio_ left 15:38 payload left 15:39 nihiliad joined
colomon building ng1, and trying to figure out how to rework a big hunk of my unit tests for $work. 15:42
15:44 Psyche^ joined 15:46 twbks joined, tadzik joined
tadzik hello there 15:46
colomon hello
15:47 twbks left
pmichaud colomon: just pushed a draft RangeIterator to ng1 -- your comments/improvements welcome 15:47
diakopter pmichaud: did you see I "fixed" class declarations in p6eval?
pmichaud diakopter: no, didn't see that 15:48
tadzik could someone give me a hand? I'm trying to compile some helloworld in rakudo and run it with parrot. Here are my attempts: wklej.org/id/269705/ What am I missing?
colomon pmichaud: isn't the last return; in RangeIterator.get incorrect? 15:49
diakopter rakudo: class A { method foo {say "foo"} }; class B {has A $.aaa handles 'foo' }; my B $b .= new; $b.foo
p6eval rakudo 1d4928: OUTPUT«foo␤»
pmichaud diakopter++
what was the problem? 15:50
diakopter pmichaud: it was due to some problem with 'use Safe;'... I just inlined the contents of Safe.pm and it works
pmichaud colomon: it's "$return" and not "return". Feel free to improve.
colomon pmichaud: duh. must not be awake yet this morning.
diakopter rakudo: run('rm -rf ~/')
p6eval rakudo 1d4928: OUTPUT«operation not permitted in safe mode␤in Main (file /tmp/FnGH2NqWot, line 1)␤»
diakopter it's a ton more responsive, too, after removing 'use Safe;' 15:51
pmichaud colomon: yeah, but you're correct it's easy to misread -- so we probably need to change it
15:54 lumi left, lumi joined
diakopter pmichaud: see for yourself: export PERL6LIB=lib ; echo 'use Safe; class A { }' | ./perl6 15:55
colomon pmichaud: I don't think the "return blah if" construct currently works in ng. 15:56
pmichaud ng: return 1 if 0;
p6eval ng b8201f: OUTPUT«Missing block at line 1, near ";"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
pmichaud colomon: okay, we need to fix that then.
colomon pmichaud: but on the whole, this is nice code, IMO.
pmichaud ng: (return 1) if 0;
p6eval ng b8201f: ( no output )
15:56 dakkar left
pmichaud try parenthesizing the return for now, I guess. 15:56
15:57 Patterner left, Psyche^ is now known as Patterner
pmichaud ng: say 'yes' if 1; 15:57
p6eval ng b8201f: OUTPUT«yes␤»
pmichaud oh!
I know the problem -- 'return' is still listed as a builtin
diakopter ng: say 'yes' if 0;
p6eval ng b8201f: ( no output )
diakopter ng: say 'yes' if return 0;
p6eval ng b8201f: OUTPUT«Could not find non-existent sub &return␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
pmichaud yeah, looks like return is unimpl 15:58
er, &return is unimpl
colomon: can also change it to a normal if ... { return IterDone; }
I was somewhat avoiding the extra block, but it's not a big deal in this case.
colomon pmichaud: right, that's how I've been doing it in ng. :) 15:59
16:01 Baggiokwok left
colomon after and before are the equivalent of > and < in the generic world of cmp ? 16:01
pmichaud right, they don't coerce 16:02
colomon that's brill, wonder how I managed to not notice them before. :)
pmichaud so it'll work for string iterations as well as numerics
colomon ng: say 2 after 3 16:03
p6eval ng b8201f: OUTPUT«Confused at line 1, near "say 2 aft"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
pmichaud well, maybe not, since string iters are weird at the moment, but it's a good start for the moment.
colomon seems like most of the early work is going to go to making ng(1) actually support your pretty code. :)
I can work on getting before and after up and running in a few minutes. 16:04
16:04 alester joined 16:08 kaare_ joined 16:11 k23z__ joined
TimToady that backlog was...not worth backlogging... 16:12
colomon ng: say 2 cmp 3 16:14
p6eval ng b8201f: OUTPUT«-1␤» 16:15
pmichaud colomon: (ng support pretty code) -- right, that's why I thought I'd go ahead and draft it so you could fill in the details :) 16:17
and others too :)
colomon tadzik: sorry for the lack of useful feedback so far. personally, I never try to run perl6 code that way, and I don't have time to play around and figure it out at the moment.
pmichaud it's certainly okay to "cheat" for the moment and simply define multi sub infix:<before>($a, $b) { $a < $b } :-) 16:18
colomon pmichaud: what about multi sub infix:<before>($a, $b) { ($a cmp $b) == -1 } ?
pmichaud == -1 is wrong
colomon == +1 ? 16:19
pmichaud no, it should be Order::*
colomon Is that implemented yet?
pmichaud I suppose numifying it is okay
colomon (btw, these should go in operators.pm ?)
pmichaud there's a good question to be had as to whether <before> and <after> are defined in terms of <cmp> or vice-versa :-) 16:20
I guess <cmp> is more fundamental.
TimToady one could apply the circularity saw either way 16:21
pmichaud right
colomon pmichaud: I reckon if cmp is already defined, then you define after and before in terms of them. :)
16:21 tadzik left
pmichaud well, it kind of bugs me to define before in terms of cmp and ==, when == is itself defined in terms of cmp 16:21
TimToady it is likely that an implementation will want cmp to be more fundamental
16:22 tadzik joined
tadzik damn this screen 16:22
TimToady I don't have that power
pmichaud I do, but it's highly ineffective.
tadzik colomon: My point is to compile this to bytecode, parrot /usr/lib/parrot/2.0.0/languages/perl6/perl6.pbc hello.pl works fine, still even in this case -o does nothing, so I'm compiling the code on every run, which is what I'm trying to avoid
colomon tadzik: right, but it 16:23
's certainly possibly to compile p6 to pir.
but even if I do that, I always use the perl6 executable to run the pir. 16:24
so I don't know the magic invocation to do it from parrot.
pmichaud perl6 --target=pir hello.pl
tadzik yep. Though, running it via "parrot /usr/lib/parrot/2.0.0/languages/perl6/perl6.pbc hello.pir" gives me the following: wklej.org/id/269723/
pmichaud oops
perl6 --target=pir hello.pl >hello.pir
parrot hello.pir
16:24 brrant is now known as Havelock
tadzik running pir from perl6 also fails for some reason 16:25
pmichaud: seen my previous paste?
pmichaud the perl6 compiler doesn't know how to compile straight pir
if you have .pir, you just feed it directly to parrot
as in "parrot hello.pir" 16:26
tadzik pmichaud: wklej.org/id/269723/ last case
colomon ng: say "a" cmp "b"
p6eval ng b8201f: OUTPUT«-1␤»
pmichaud what does "hello.pir" look like?
tadzik pasting
wklej.org/id/269724/ 16:27
16:27 justatheory joined
colomon pmichaud: good news: I've got after and before now. bad news: if you hit them with strings, they appear to run afoul of the bug where the wrong version of a multi is called. 16:28
tadzik oh, I should be using paste.lisp.org
pmichaud tadzik: what does "parrot --version" report?
tadzik This is Parrot version 2.0.0 built for -linux. 16:29
I wrote this port today :)
16:30 hicx174 joined
colomon pmichaud: pushed before and after. your ListIterator doesn't seem to build? 16:30
pmichaud tadzik: here's how it looks on my sys: nopaste.snit.ch/19383 16:32
16:32 tadzik_ joined
tadzik weird 16:32
what the…
16:33 tadzik_ left
tadzik pmichaud: mind showing your rakudo and parrot build options, if available? 16:33
pmichaud tadzik: this was built using plain ol --gen-parrot from the rakudo command line
tadzik so no separate parrot installation? 16:34
pmichaud tadzik: correct.
tadzik darn
pmichaud tadzik: I tend to have several development branches going at once, and I want each one to have its own parrot (appropriate for the branch)
tadzik I see
pmichaud colomon: no problem on string before/after, we'll see about fixing it soonish
colomon: no, ListIterator isn't configured into the build yet -- I'm still just drafting code 16:35
16:35 Havelock left, brrant joined, lumi left 16:36 brrant left
pmichaud oh, I see the problem, I forgot to take it out of Make 16:36
fixing
16:37 brrant joined, lumi joined 16:49 _ash joined
pmichaud pushed fix for ListIterator 16:49
16:50 jackyf joined
_ash how are the iterator changes coming along? 16:52
pmichaud slowly but I'm pretty happy with the way things are looking 16:53
I'll know more here shortly as I get arrays working again
TimToady have we settled on a name for the end of all things?
pmichaud for now I've got IterDone
reminds me of "git-r-done" :-)
TimToady that's...easy to search for, fortunately 16:54
pmichaud right :)
I decided I didn't want to bog down on a name, so I picked a name that was instantly recognizable, easy to search/replace, and either going to be obviously correct or obviously incorrect. :)
TimToady it's good that somebody here is practical 16:55
colomon pmichaud++
pmichaud I'll let everyone else bikeshed the name.
but so far, IterDone seems to read well in code 16:56
16:56 payload joined
TimToady at the moment I'm more interested in working out the best syntax on the receiver end, which may well end up an infix 16:56
and not mention the sentinal name at all 16:57
colomon pmichaud: with the latest, I'm still getting
The opcode 'getprop_p_p_sc' (getprop<3>) was not found. Check the type and number of the arguments
in file 'src/builtins/ListIterator.pir' line 52
pmichaud colomon: did you pull the most recent change?
colomon yes.
pmichaud just a sec
colomon it was to IterDone.pir, not ListIterator... 16:58
pmichaud oh, I didn't commit
PerlJam TimToady++ "Bags are really just histograms with a cute name." :-)
pmichaud (sigh)
too many things
pushed.
TimToady there's nothing that can't be solved by another fork, except the problem of too many forks... 16:59
_ash i feel like i need to alias perl Configure --gen-parrot && make && make install since i do it almost twice a day
PerlJam _ash: luckily your shell has a built-in aliasing ability. 17:00
_ash yeah, but then i'd need to go edit the .bashrc file and well, i am lazy... but not so lazy i wana type that all the time
17:02 ignacio_ joined 17:03 _ash_ joined
colomon pmichaud++ # builds again 17:05
17:07 RichiH left 17:08 buubot left, ejs1 left 17:09 iblechbot joined, buubot joined, RichiH joined 17:11 cdarroch joined 17:17 lumi left, lumi joined, alex15 joined 17:19 arnsholt_ is now known as arnsholt 17:20 _ash left, _ash_ is now known as _ash 17:34 c0tt0 joined 17:37 alex15 left 17:39 cottoo left
hudnix rakudo: class A { method foo {say "foo"} }; role B {has A $.aaa handles <foo> }; class AB does B { }; 17:47
p6eval rakudo 1d4928: OUTPUT«Null PMC access in get_string()␤in Main (file <unknown>, line <unknown>)␤»
hudnix can't have "handles" in a role... 17:48
17:49 SmokeMachine joined 17:55 rblasch left
TimToady ng: class A { method foo {say "foo"} }; role B {has A $.aaa handles <foo> }; class AB does B { }; 17:58
p6eval ng b8201f: ( no output )
TimToady ng: class A { method foo {say "foo"} }; role B {has A $.aaa handles <foo> }; class AB does B { }; AB.new.foo
p6eval ng b8201f: OUTPUT«Method 'foo' not found for invocant of class 'AB'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤» 17:59
TimToady closer than rakudo, I think
hudnix I've been away for a while... wot's ng? :) 18:00
TimToady No Good :)
officially, Next Generation
hudnix A rakudo fork? 18:01
TimToady a git fork that will eventually become rakudo master
where eventually is, we hope, very soon now
but yes, basically a large refactor that hasn't quite landed to extent of passing all the same tests yet 18:02
hudnix so which fork should I be using to play around, look for bugs, etc?
18:02 cotto_work joined
TimToady probably depends on what kind of bug you're hunting 18:02
won't do much good to hunt a bug in rakudo that's already fixed in ng 18:03
but anything systemic, doesn't matter which
colomon and the goal is to make incredible progress in ng over the next couple of weeks.
TimToady ng will become rakudo soon, so it's more bleeding edge 18:04
emphasis on the blood
pmichaud ng is the current development branch -- has a lot of major refactors in it
so at the moment it's a significant regression from rakudo master
18:05 ShaneC joined 18:06 lumi left, lumi joined
hudnix what I take away from this: rakudo for trying to get something to work, ng for bug hunting. 18:06
pmichaud hudnix: yes, with the caveat that at the moment ng is a target rich environment :) 18:07
colomon hudnix: right, except that at the moment there are so many unimplemented things in ng... what pmichaud said. :)
hopefully that will change very rapidly, and then ng bug hunting help will be super useful. 18:08
TimToady and due to better underpinnings, easier to implement stuff, usually
and bug fixes tend to be easier too, except when they're not
colomon TimToady: the fact that I am able to add stuff to the grammar in ng is a shining example of how things are easier now. 18:09
(even if admittedly I mostly just crib from STD.pm)
_ash hey, if ng can in the hopefully not so distant future use the STD.pm that would be awesome, so by all means use things from it :P 18:10
PerlJam colomon: Well, rakudo's grammar and STD should converge at some point, so you're just helping that happen. :)
_ash iPad was just announced btw 18:11
thats going to be its name
colomon _ash++ # thanks for reminding me to follow that. 18:13
_ash i am at live.gizmodo.com
its basically a 10.1 inch iPod touch
18:13 FurnaceBoy_ joined 18:14 FurnaceBoy_ left 18:17 jackyf left
_ash now i really wana finish seeing if i can build Parrot with the iphone sdk, it builds for the simulator fine, and others said it compiles fine on an arm, but i haven't figured out all the issues of cross compiling it using xcode 18:18
colomon :) 18:19
_ash cross compiling's annoying enough to begin with, but parrot likes to build parts of itself using itself :P but the bytecode should transfer from one architecture to another without modification 18:20
pmichaud ENOJNTHN :-( 18:30
I guess I'll just figure it out on my own after lunch 18:31
colomon pmichaud: I'm going to try to get RangeIterator at least compiling here.
pmichaud colomon: excellent
colomon quick question -- what is the == equivalent for the cmp family? eq? 18:32
pmichaud not infix:<eq>
don't know that there is one
colomon Just so we're clear, I've got before and after, and want the $a cmp $b == 0 infix to go with them... 18:33
pmichaud I don't think there is one 18:35
afk, lunch
PerlJam colomon: $a and $b are strings? 18:38
colomon PerlJam: $a and $b are anything.
ng: say 3 cmp 4
p6eval ng b8201f: OUTPUT«-1␤»
colomon ng: say "a" cmp "b";
p6eval ng b8201f: OUTPUT«-1␤»
colomon I'm looking for the infix op which is true when cmp would equal 0. 18:39
pmichaud does there have to be one?
18:39 hjs joined
_ash ~~ ? 18:42
if you don't know the types maybe ~~ will pick the right comparision 18:43
colomon pmichaud: nah, I can work around it. 18:44
just seemed like the sort of thing that must be out there somewhere...
probably can work around it very easily.
_ash are you trying to see if they equal eachother or if they are exactly the same object? you can use === for that if they are the exact same object 18:46
colomon trying to see if they equal each other.
PerlJam like eqv ? 18:47
colomon PerlJam: maybe?
sounds like it would do what I want for value types. 18:48
_ash S03-operators/eqv.t has tests for that 18:49
18:49 _ash left 18:50 stephenlb joined 18:51 lumi left
colomon thanks. 18:51
18:51 lumi joined 18:58 kuiti joined 18:59 ejs joined, kuiti left 19:03 ckruse joined
colomon > my $a = RangeIterator.new(1..5); say $a.get; say $a.get; say $a.get; 19:04
Type objects do not have state, but you tried to access attribute $!value
> my $r = 1..5; say $r.WHAT;
No such attribute '$!list'
19:06 hercynium left 19:07 _ash joined 19:08 cjk101010 left, ckruse is now known as cjk101010, _ash left 19:09 _ash joined
pmichaud back from lunch 19:13
'say' is broken in ng1 right now 19:14
because it relies on slurpy arrays
use pir::say(...) instead
colomon > my $a = RangeIterator.new(1..5); say $a.get; say $a.get; say $a.get;
Method 'get' not found for invocant of class 'Parcel'
is my latest error. 19:15
19:15 REPLeffect joined
colomon er, say broken, right. 19:15
pmichaud that's weird
oh, right
don't use say :-)
19:15 mariano__ joined
colomon one moment... 19:15
.say doesn't work either, right?
pmichaud no, for the same reason
colomon > my $a = RangeIterator.new(1..5); pir::say($a.get); 19:16
Method 'get' not found for invocant of class 'Parcel'
pmichaud can you commit+push what you have?
that seems... odd.
colomon I've changed RangeIterator.new so that it does bless now.
pmichaud $a should be a RangeIterator, certainly
oh, perhaps bless is returning a parcel
colomon it's a parcel
I mean, $a is a parcel. 19:17
pmichaud it should be a RangeIterator, in that case
colomon trying to add debugging say to new at the moment.
pir::say(self.WHAT);
should do it, right?
pmichaud yes.
colomon recompiling....
pmichaud > my $a = Str.new('xyz'); pir::say($a.WHAT); 19:18
Str()
colomon oh, I see.
I've screwed up .new completely. rewrite in a moment.
pmichaud so, the problem isn't strictly in assignment
colomon bad C++ habits, I fear.
pmichaud I'd go with a simple .new to begin with, until we get things working
also, keep in mind that .bless is expensive
colomon pmichaud: without the bless, we got 19:19
> my $a = RangeIterator.new(1..5); say $a.get; say $a.get; say $a.get;
[2:04pm] colomon: Type objects do not have state, but you tried to access attribute $!value
TimToady loop { take @iters>>.get E last } # E returns values on left unless any of them are END
pmichaud colomon: oh, yeah
okay, you're right.
I'm so used to writing my own .new in PIR :)
try it with .bless, then
colomon what happened was, I never really internalized that .new has to internally return the new object. 19:20
so I wrote the bless, and then wrote some stuff after it.
which is wrong wrong wrong, unless you return self at the end. 19:21
pmichaud not self
in method new, self is the type object
colomon woot!
pmichaud (your C++ habits are showing through :-)
colomon really? 19:22
pmichaud TimToady: that seems plausible
colomon anyway, rewriting to have bless last was trivial.
and now...
> my $a = RangeIterator.new(1..5); pir::say($a.get);1
TimToady with possibility of extending metacharacter E& and E|
extending to
19:22 payload left
pmichaud E takes a slice on its lhs? 19:22
TimToady much like we could extend listop Z into a zipwith
it's a list infix precedence, I think 19:23
colomon > my $a = RangeIterator.new(1..5); pir::say($a.get); pir::say($a.get);pir::say($a.get);pir::say($a.get); pir::say($a.get); pir::say($a.get);
1
2
3
4
5
Could not find non-existent sub &IterDone
pmichaud colomon: for that last part, you need to re-run configure
then it'll say IterDone()
TimToady IterDone is probably going to turn into "END"
colomon hmmm.... I think I already did that, when I added RangeIterator.pm to the Makefile.in. Let me see... 19:24
pmichaud possible pun with =begin END ?
PerlJam TimToady: without conceptual conflation with END phasers?
pmichaud or yeah, END phasers?
TimToady hmm
lichtkind TimToady: are you happy with the name rakudo star?
TimToady yeah, that's a problem
19:24 athaba joined
PerlJam DONE works for me :) 19:24
TimToady doesn't fit so well with E :) 19:25
E looks more like parallel streams than D does
pmichaud E might also be confused with 1.0E+12
TimToady I suppose End would work
or just E
PerlJam ETOOSHORT
TimToady E for empty 19:26
she's running on E
Empty
PerlJam E for the elephant in the room?
_ash so if i wrote my own iterator, when i was done i'd return End or E or IterDone? 19:27
pmichaud we've already consumed other single-letter caps: S R Z Q .... might as well grab E while we're at it :)
TimToady EMPTY is a valid Unix error name :) Must Pass, Thank You
I tend to prefer uppercase for list infixes for visibility reasons
_ash is E going to be a magic object or a function or an op?
pmichaud magic object 19:28
might also be an op :-)
TimToady Empty is probably a specific form of Failure
pmichaud we'll have a magic object to signal "iteration completed"
TimToady E the operator is special in taking a thunk on the right like && and ||
_ash so, it could be impelmented as a child of Failure?
pmichaud we may also have an op to detect if an iterator (or iterators) have returned the magic object
TimToady E is the proposed op 19:29
also special in that it returns its left side unmolested if the E doesn't match
19:29 lumi left
TimToady hence my take above 19:29
19:29 lumi joined
PerlJam oddly, I think of "empty" in an iterator context more like success than failure. 19:29
pmichaud speaking more generally
TimToady loop { take @iters>>.get E last }
the E is inside the take 19:30
pmichaud we already have A || B which returns B if A is false, and A && B which returns B if A is true, and A // B which returns B if A is undefined
should there be a smart-match like thing also?
(it'd have to be a ternary of some sort, I suppose)
i.e., returns B if A doesn't smartmatch X ? 19:31
(or if A does smartmatch X)
or, a version of smart match that returns the lhs if matched, false otherwise?
TimToady would want to see a frequent enough use case 19:32
pmichaud right
this isn't a valid usecase, but something like: take (@iters>>get !~~ IterDone) || last
colomon pmichaud: when I pulled latest and rebuilt everything I get IterDone(). \o/
colomon just pushed RangeIterator. 19:33
pmichaud except that the !~~ would need to return the lhs instead of just "True"
TimToady and it isn't hypered
pmichaud agreed that it might be obscure for now... but might be useful someday
TimToady E is implicitly hypered
19:33 Chillance joined
pmichaud ah 19:33
TimToady E is short for the theoretical E| rather than E& 19:34
pmichaud right.
TimToady unless it's the other way around :)
pmichaud to eliminate the need for any(...) and all(...)
TimToady which don't like to give up eigenstates, and disorder them anyway
pmichaud agreed. 19:35
TimToady and we want to optimize the heck out of E
pmichaud so, is "Empty" likely to be the replacement for IterDone ?
or shall we wait a bit longer
?
19:35 uniejo joined
TimToady it'll be something with E, likely 19:35
ENEVERMORE
pmichaud ENOMORE 19:36
EITERDONE :-)
TimToady I prefer the literary allusion
pmichaud or, even ETERDONE : "eternally done"
TimToady as in quote the raven
pmichaud I thought of the raven but decided not to quote it :-)
TimToady now we should rename iterators to ravens
or ravins 19:37
pmichaud as in "ravenous"?
those would be the eager iterators, I guess.
TimToady yeah
19:37 ignacio_ left
TimToady EMPTY is nice and shouty 19:38
pmichaud 19:26 <TimToady> EMPTY is a valid Unix error name :) Must Pass, Thank You
_ash my $pet is Raven does Revenous;
$pet.get || ouch('it bit me')
pmichaud I'll wait until the naming settles a bit more :-)
TimToady EOUTOFAMMO 19:39
.getclip
[particle] EVERMORE # if you really want to quote the raven 19:40
19:45 RichiH left 19:46 RichiH joined 19:50 nihiliad left, nihiliad joined 19:51 clintongormley joined, lumi left, lumi joined 19:52 clintongormley left 19:53 tadzik_ joined, tadzik_ is now known as Guest9306, tadzik left 19:54 Guest9306 is now known as tadzik
pmichaud > for 1, 5..7, 12 { pir::say($_); } 19:56
1
5
6
7
12
\o/
Tene :D
19:56 clintongormley joined
colomon \o/ 19:56
wait, that's with working range iteration!?!
pmichaud yes
just pushed.
colomon sweet! 19:57
pmichaud now let's see if I can figure out what's up with slurpy args
colomon flatten says "use .iterator to get my iterator?" for this purpose? 19:58
pmichaud flatten says "I flatten in list context"
> my $a = 5..7; for 2, $a, 12 { pir::say($_); } 19:59
2
5..7
12
_ash pmichaud++ colomon++ TimToady++ # iterators are getting solidified
pmichaud > for 2, 5..7, 12 { pir::say($_); }
2
5
6
7
12
TimToady phone 20:00
pmichaud brt
_ash is there a way to get: for 2, $a, 12 to function like for 2, 5..7, 12 ?
pmichaud nyi, but
for 2, @$a, 12 { ... } 20:01
or
for 2, $a.list, 12 { ... }
_ash like using @() or list 2, 5..7, 12 or something
ah okay
TimToady or |
_ash so pipe before $a?
TimToady oughta work 20:02
_ash for 2, |$a, 12 { } # where $a = 5...7 ?
got ya
cool
20:02 rblasch joined, patspam joined
_ash just in my primitive logic of things using $a seems like it should put its value in the place of the variable name, so saying for 2, 5..7, 12 functions different than for 2, $a, 12 is odd personally, but sigils make a difference i suppose, if that was an @a it would work the same, correct? 20:03
20:03 pnate joined
colomon pmichaud: for isn't actually lazy yet, right? 20:04
colomon just tried for 1..100000000 and it just say there... 20:05
pmichaud right now I've made it eager to simplify things a bit
colomon sure.
one step at a time.
pmichaud we'll have lazy for when we have lazy map (coming soon)
20:06 uniejo left
pmichaud > for 2, (5..7, 12) { pir::say($_); } 20:06
2
5
6
7
12
colomon btw, my perception just now was that for 1..100 { say; last if $_ > 10; } was very fast in ng1. 20:07
pmichaud yes, lists and iterators should be far faster than they were
a lot fewer objects and slurpies are being created
colomon that's great news! 20:08
20:13 pnate2 left 20:15 pnate2 joined
colomon hates to get in the way of all the fun E names, but now wonders if Iterator::Done would be the best name... 20:15
_ash Done is pretty short and sweet 20:16
> my $a = 1, 2, 3; for @($a) { pir::say($_.perl) }
1
2
3
# is that correct according to the spec? I feel like i am beating a dead horse but i am still confused by list context a bit
pmichaud my $a = 1, 2, 3; isn't correct 20:17
that's a bug in rakudo
TimToady "Done" doesn't look so good if it shows up as a thrown exception
it will fool the user into thinking things went well
where as EMPTY at foo line 42 looks like a problem 20:18
not that the message has to be the type name
*whereas
_ash but what if it showed up as Iterator::Done ? 20:19
20:19 FurnaceBoy_ joined
TimToady I'm not fond of long names for primitives 20:19
_ash OverlyLongClassName::WithNestedOtherClasses eh? so java is out 20:20
colomon I was thinking the idea with having an special operator for it was that normally only Iterator developers would ever see the long name... 20:21
_ash long names are the reason i never learned more java than was needed to pass my intro programming class
colomon but I admit that 21 years of C++ programming may have broken my sense of what is a long name, anyway...
jonasbn Copenhagen Perl 6 Hackathon site now online, for those of you interested, conferences.yapceurope.org/hack2010dk/ 20:23
_ash cool, thanks for the link jonasbn will follow stuff remotely 20:24
jonasbn _ash: I hope we will be able to provide a nice 'almost like being there' experience
pmichaud jonasbn++ excellent 20:25
jonasbn: I guess I should go ahead and book flights...?
pmichaud hasn't read email today
20:27 pnate left, pnate joined
pmichaud afk, kid pickup 20:30
20:30 lumi left, lumi joined
frettled jonasbn++ - good info 20:32
jonasbn thanks, we are correcting speling errors etc. as we go along 20:33
20:36 FurnaceBoy_ left 20:38 pnate2 left 20:40 pnate2 joined 20:46 bluescreen left, mariano__ left, clintongormley left 20:48 plainhao left 20:56 pnate left 20:58 nnunley joined
pugs_svn r29593 | colomon++ | [t/spec] Start test file for RangeIterator. 20:58
20:58 bluescreen joined, mariano__ joined 21:00 nnunley left 21:01 nnunley joined 21:02 lumi left, lumi joined, mariano__ left, bluescreen left 21:03 ignacio_ joined 21:09 pnate2 left 21:10 ignacio_ left 21:13 uniejo joined 21:14 lumi left, lumi joined
diakopter rakudo: class A { }; class B is A { }; class C is A { }; class D is C { }; class C is also is B { }; my D $d .= new; say ($d ~~ B) 21:17
p6eval rakudo 1d4928: OUTPUT«Could not build C3 linearization: ambiguous hierarchy␤in Main (file <unknown>, line <unknown>)␤»
diakopter cool
'cept it doesn't have to be ambiguous if the order of declarations is preserved 21:18
rakudo: class A { }; class B is A { }; class C is A { }; class D is C { }; class C is also does B { }; my D $d .= new; say ($d ~~ B) 21:19
p6eval rakudo 1d4928: OUTPUT«Method '!select' not found for invocant of class ''␤in Main (file src/gen_setting.pm, line 324)␤»
21:19 pnate joined 21:21 niros joined 21:22 hercynium joined 21:23 SmokeMachine left 21:24 ignacio_ joined
diakopter std: class C { }; class C is also { }; 21:27
p6eval std 29593: OUTPUT«===SORRY!===␤Illegal redeclaration of symbol 'C' (from line 1) at /tmp/IRYU3FR9R6 line 1:␤------> class C { }; class C⏏ is also { };␤FAILED 00:01 105m␤»
21:27 ignacio_ left
diakopter TimToady: is 'is also' not the right thing? 21:28
pmichaud it's now 'augment'
diakopter oh
pmichaud std: class C { }; augment class C { ... }
p6eval std 29593: OUTPUT«ok 00:01 105m␤»
diakopter ng: class C { }; augment class C does C { }; 21:29
p6eval ng b8201f: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''␤current instr.: 'perl6;ClassHOW;add_composable' pc 3495 (src/metamodel/ClassHOW.pir:149)␤»
pmichaud I don't think ng has "does" yet.
(I could be very wrong about that) 21:30
diakopter ng: class C does Positional { }; 21:31
p6eval ng b8201f: ( no output )
diakopter ng: class C does Associative { };
p6eval ng b8201f: OUTPUT«Null PMC access in type()␤current instr.: 'perl6;C;!class_init_10' pc 157 (EVAL_1:83)␤»
21:31 jonasbn left
colomon ng has does, doesn't it? 21:33
More likely not to have Associative...
in fact, I'm sure I saw code for does in operators.pm 21:34
21:34 lumi left, lumi joined 21:35 tadzik left
diakopter classes and roles must not be distinguished when parsing 'does' 21:35
std: class C { }; augment class C does C { };
p6eval std 29593: OUTPUT«ok 00:01 105m␤»
diakopter std: class C { }; augment class C does Blah { };
p6eval std 29593: OUTPUT«ok 00:01 105m␤»
diakopter ng: class C { }; augment class C does Blah { };
p6eval ng b8201f: OUTPUT«Null PMC access in type()␤current instr.: 'perl6;C;!class_init_11' pc 268 (EVAL_1:130)␤»
diakopter ng: class C { }; augment class C is Blah { };
p6eval ng b8201f: OUTPUT«No applicable candidates found to dispatch to for '&trait_mod:<is>'␤current instr.: 'perl6;C;!class_init_11' pc 268 (EVAL_1:130)␤» 21:36
diakopter ng: class C { }; augment class C is C { };
p6eval ng b8201f: ( no output )
diakopter ng: class C { }; augment class C is Int { };
p6eval ng b8201f: OUTPUT«Could not build C3 linearization: ambiguous hierarchy␤current instr.: 'parrot;P6metaclass;add_parent' pc 224 (runtime/parrot/library/P6object.pir:232)␤»
diakopter ng: class C is Int { };
p6eval ng b8201f: ( no output )
diakopter ng: class C is Mu { };
p6eval ng b8201f: ( no output )
diakopter ng: class C is Any { };
p6eval ng b8201f: ( no output ) 21:37
diakopter ng: augment class C is Any { };
p6eval ng b8201f: OUTPUT«Can't augment something that doesn't exist␤current instr.: 'perl6;Perl6;Grammar;add_name' pc 30760 (src/gen/perl6-grammar.pir:154)␤»
diakopter hmm, it checks for declaration on _that_ parse
21:39 cjk101010 left 21:40 pioto joined
pioto i remember hearing a while ago that rakudo was supposed to switch to using STD.pm to parse, and that it would then be able to parse a lot more. is that true and/or did that happen? 21:41
pmichaud rakudo and STD.pm are expected to converge 21:42
there's no timeline for when that will happen
pioto so, that's a post rakudo star thing?
pmichaud definitely
pioto ok
pmichaud it _could_ happen before rakudo star, but it's not a target
and so it's likely to be after
(and part of me holds out a hubristic hope that STD will move closer to Rakudo's grammar than vice-versa :) 21:43
21:45 ruoso left
pioto pmichaud: thanks for the clarification. 21:46
pmichaud walk time here 21:47
bbiab
21:47 pnate left 21:51 lumi left, lumi joined 21:56 jnthn joined 21:57 alester left
diakopter jnthn: wb 22:03
jnthn thanks...dunno how I vanished. 22:04
22:10 ascent__ is now known as ascent_, _ash is now known as ash_
ash_ jnthn does ng have 'does' ? 22:21
22:24 rblasch left
jnthn ash_: Yes, it does. 22:25
diakopter it does does does. 22:26
and you can can can
22:28 Su-Shee left 22:29 kaare_ left
jnthn but but but... 22:30
ash_ so... when this major list refactor lands back in ng, what there any other big issues that need resolving? jnthn did you figure out the role issue you were wondering about? 22:32
22:32 lumi left, lumi joined, payload joined
jnthn ash_: No, didn't get a fix yet, but did discover an oddness (seems the outer of the lazy sig constructor block can end up looping back on itself or something else odd...) 22:36
ash_: Spent a couple of hours digging into it though. :-/ 22:37
ash_ making things lazy seems like a lot of work, which is rather counterintuitive
jnthn No, no, it's work now to let others be lazy in the future. :-) 22:39
We're on the wrong side of the lazy fence. :-) 22:40
ash_ hehe, yeah, true 22:43
22:44 athaba left
ash_ i like how there are 4 levels of lazy too, from super lazy to not lazy at all 22:44
22:50 uniejo left 22:52 ejs left, wasy joined 22:53 redparchel joined 22:56 Chillance left 22:59 wasy is now known as wasy_afk
pmichaud back from walk... occurred to me during the walk that we have a potential pun between the Seq data type and the Seq (S+eq) infix operator. :-) 23:04
colomon what would S+eq do that eq doesn't? :) 23:07
pmichaud guarantee that evaluation occurs sequentially and isn't multithreaded somehow
I agree, not common or likely, but it's there :-)
could result in a confused parse 23:08
colomon sure.
sorry, I'm just sitting here pondering how S interacts with user-defined operators.
pmichaud oh, I already decided we had a similar issue with Rafter :-P 23:09
colomon :p
pmichaud and if someone tries to do a Req (request) data type.... well....
hope they have their terms and operators straight :) 23:10
colomon I'm serious on the interaction, though. Does S somehow set a flag that turns off threading in all functions called for the duration of processing the operator?
pmichaud dunno, haven't thought that far ahead yet. I'm still trying to get a working list :-) 23:11
colomon :)
pmichaud afk for a bit
23:12 lumi left, lumi joined
colomon TimToady: seriously, how is S supposed to work? If I have infix:<+>(Vector $a, Vector $b) { $a.coords >>+<< $b.coords }, does S+ translate that to $a.coords S>>+<< $b.coords somehow? 23:13
23:14 iblechbot left 23:18 niros left, takadonet left, Chillance joined 23:21 patspam left 23:30 redparchel left 23:36 nnunley left 23:40 fridim_ joined 23:44 pnate joined 23:49 ihrd joined 23:55 lumi left 23:56 lumi joined