pugscode.org/ planetsix.perl.org/ | nopaste: sial.org/pbot/perl6 | evalbot: perl6: say 3; (or rakudo:, pugs:, elf:, etc) | irclog: irc.pugscode.org/ | ~315 days 'til Xmas Set by mncharity on 8 February 2009. |
|||
00:15
eternaleye joined
00:19
IllvilJa left
00:20
mikehh left
00:23
zamolxes left
00:25
eternaleye left
00:40
vpace left
00:51
IllvilJa joined
00:54
Limbic_Region joined
01:03
sahadev joined
01:05
SamB joined
01:08
hercynium joined
01:10
FurnaceBoy joined
01:22
lambdabot left
01:25
lambdabot joined
01:30
Minthe joined
|
|||
sahadev | hello, i am using the parrot-under-rakudo approach mentioned in Moritz's blog entry (perlgeek.de/blog-en/perl-6/where-ra...ives.html) to build rakudo. "make test" in rakudo fails because the parrot exe path referred to in the test scripts (../../parrot) is incorrect. it should be ../../parrot/parrot. | 01:42 | |
01:42
IllvilJa left
|
|||
sahadev | is there an easy fix for this (short of fixing every test script)? | 01:42 | |
01:47
eternaleye joined
|
|||
sahadev | looks like this affects only a few test scripts (under t/pmc) | 01:51 | |
02:00
Whiteknight left
|
|||
TimToady | std: my (*@) = @*ARGS | 02:02 | |
p6eval | std 25282: OUTPUT«ok 00:02 34m» | 02:03 | |
TimToady | std: my (*) = @*ARGS | ||
p6eval | std 25282: OUTPUT«Undeclared routine: my used at 0 ok 00:02 35m» | ||
TimToady | std: (*) = @*ARGS | ||
02:03
agentzh left
|
|||
p6eval | std 25282: OUTPUT«ok 00:02 33m» | 02:03 | |
diakopter | std: [$]=@*ARGS | 02:07 | |
p6eval | std 25282: OUTPUT«############# PARSE FAILED #############Unable to parse array composer; couldn't find final ']' at /tmp/3GhvbQCY5t line 1:------> [$]=@*ARGS expecting special_variable__S_154DollarKetFAILED 00:02 34m» | ||
diakopter | std: $=@*ARGS | ||
p6eval | std 25282: OUTPUT«############# PARSE FAILED #############Can't understand next input--giving up at /tmp/fRqXtXBAgL line 1:------> $=@*ARGS expecting special_variable__S_138DollarEqualFAILED 00:02 34m» | 02:08 | |
TimToady | std: :($) = @*ARGS | ||
p6eval | std 25282: OUTPUT«ok 00:02 34m» | ||
TimToady | std: $=FOO | 02:09 | |
p6eval | std 25282: OUTPUT«ok 00:02 33m» | ||
TimToady | std: $=($x) | ||
p6eval | std 25282: OUTPUT«############# PARSE FAILED #############Can't understand next input--giving up at /tmp/hzg9GvGgEo line 1:------> $=($x) expecting special_variable__S_138DollarEqualFAILED 00:02 34m» | ||
TimToady | std: $=::($x) | ||
p6eval | std 25282: OUTPUT«Potential difficulties: Variable $x is not predeclared at /tmp/CyUArCW1Cz line 1:------> $=::($x)ok 00:02 33m» | 02:10 | |
TimToady | std: $=::($*x) | ||
p6eval | std 25282: OUTPUT«ok 00:02 33m» | ||
diakopter | std: ::$=3 | 02:11 | |
p6eval | std 25282: OUTPUT«############# PARSE FAILED #############Syntax error (two terms in a row?) at /tmp/DBzvlUDXYM line 1:------> ::$=3 expecting any of: POST infix or meta-infix infix stopper morename postfix postfix_prefix_meta_operator standard | ||
..stopper statement modifie... | |||
TimToady | now yer just makin' stuff up... | 02:13 | |
diakopter | wait, how is that new | 02:17 | |
02:18
frew joined
02:19
hercynium left
02:23
sahadev left
02:24
Nom- left
|
|||
TimToady | there's nothing in the syntax that allows $ after :: | 02:25 | |
diakopter | :) I meant how is it new that I'm making stuff up :P | 02:26 | |
aka "what else is new" | |||
02:26
Nom- joined
|
|||
meppl | good night | 02:28 | |
02:29
meppl left,
agentzh joined
|
|||
pugs_svn | r25283 | lwall++ | [STD] improve error messages on various keywords | 02:30 | |
SamB | std: $(printf "Hello") | ||
p6eval | std 25282: OUTPUT«ok 00:03 33m» | ||
SamB | um. that's not good. | ||
it didn't reject my Haskells! | |||
TimToady | perfectly valid syntax | ||
02:31
alc joined
|
|||
SamB | std: main = P.return () | 02:31 | |
p6eval | std 25282: OUTPUT«############# PARSE FAILED #############Syntax error (two terms in a row?) at /tmp/5xhddrM2uz line 1:------> main = P.return () expecting any of: infix or meta-infix infix stopper standard stopper statement modifier loop terminatorFAILED | ||
..00:02 33m» | |||
TimToady | std: my (*) = 1,2,3 | 02:35 | |
p6eval | std 25283: OUTPUT«Undeclared routine: my used at 0 ok 00:02 35m» | ||
TimToady | that should improve shortly | ||
cooking& | |||
frew | I have to get a better computer so the tests won't take so long! | 02:38 | |
frew looks at prices on new quad core systems | 02:47 | ||
02:56
shinobi-cl joined
|
|||
s1n | frew: do what i do, run then from a cron job :) | 02:57 | |
frew | s1n: That's a good idea. Do you checkout and rebuild parrot then too? | 03:02 | |
s1n | frew: i have a quickie shell script that does a svn and git update of parrot and rakudo, then builds everything | 03:03 | |
does the spectest too | |||
i usually comment that out though because i only care about things i'm testing :) | 03:04 | ||
frew | right | ||
hm | |||
I think I'll do that | |||
I'll have it start at like, 4 pm | |||
right before I get back from work | 03:05 | ||
s1n | mine's not overly smart, just does each of the steps regardless of $? | ||
i have mine run at 2am | |||
diakopter | std: my (*) = 1,2,3 | ||
frew | you could just have them && chained | ||
p6eval | std 25283: OUTPUT«############# PARSE FAILED #############Malformed "my" declaration at /tmp/gjDyNIDwku line 1:------> my (*) = 1,2,3 expecting any of: parameter signature type_constraint whitespaceFAILED 00:02 33m» | ||
s1n | frew: i could, but there's like a dozen commands | ||
speaking of which, what happened to the rakudo Configure.pl? | 03:06 | ||
it's looking in a really odd place for BUILD_DIR | |||
where is it getting that configuration from? | |||
anyone? | 03:10 | ||
03:14
FurnaceBoy is now known as NotFurnaceBoy
03:22
c9s left
|
|||
s1n | wow, it's sleepy in here | 03:27 | |
okay, i figured it out, just for the people who scroll back: | 03:28 | ||
i have parrot installed already (gentoo) and was built somewhere completely different, it picked up the parrot_config from that build, so i specified the --parrot-config option to the Configure.pl script | 03:29 | ||
Util | Thanks for posting that s1n; I was just looking for the answer. | 03:33 | |
shinobi-cl | hey, the wiki at perl6.wikia.com now has 60 articles..... wanna cooperate? you know what to do (sorry for the spam) | 03:34 | |
03:34
shinobi-cl left
03:39
Entonian joined
03:42
simcop2387 left
03:45
simcop2387 joined
03:46
simcop2387-vnc joined
|
|||
s1n | Util: np | 03:47 | |
gotta go, bad weather | |||
03:48
simcop2387-vnc left
|
|||
Util | Later | 03:48 | |
03:53
Limbic_Region left
04:04
SamB left
04:06
SamB joined
04:07
s1n left
04:17
c9s joined
04:18
araujo left
04:21
araujo joined
04:48
skids joined
|
|||
skids | rakudo: class Ss is Str; my Ss $s; | 04:51 | |
p6eval | rakudo e73c95: RESULT«"Ss"» | ||
skids | rakudo: class Pp is Pair; my Pp $d; | ||
p6eval | rakudo e73c95: OUTPUT«Null PMC access in get_string()current instr.: '!meta_trait' pc 18725 (src/builtins/guts.pir:577)» | ||
04:51
NotFurnaceBoy is now known as FurnaceBoy
04:58
dalek left,
dalek joined,
Southen joined
05:05
alester left
05:08
simcop2387 left,
lambdabot left,
samlh left,
[cotto] left,
smtms left,
literal left,
zostay left,
pugs_svn left,
kcwu left,
dalek left,
skids left,
Nom- left,
moritz_ left,
TimToady left,
p6eval left,
icwiener_ left,
agentzh left,
frew left,
Khisanth left,
cognominal left,
BinGOs left,
szabgab left,
rhr left,
stephenlb left,
ft left,
DataPusher left,
jrockway left,
tcliou|Away left,
Gothmog_ left,
jnthn left,
bigpresh left,
revdiablo left,
sunnavy left,
felipe left,
gfldex left,
alc left,
estrabd left,
edenc left,
hcchien left,
clkao left,
preflex left,
SamB left,
eternaleye left,
Minthe left,
Grrrr left,
broquaint left,
xinming left,
kbaud1 left,
idemal left,
LCamel left,
AzureStone left,
r0bby left,
ilbot2 left,
gbacon left,
scrottie left,
Util left,
yahooooo left,
allbery_b left,
jan_ left,
mj41 left,
elmex left,
araujo left,
FurnaceBoy left,
c1sung left,
jeremiah left,
buu left,
Matt-W left,
PerlJam left,
orafu left,
lisppaste3 left,
IRSeekBot left,
wolverian left,
mtve left,
[particle]1 left,
drbean left,
integral left,
Maddingue left,
aindilis left,
Caelum left,
Southen left,
c9s left,
Tene_ left,
spinclad left,
baest left,
hudnix left,
cls_bsd left,
avar left,
pmichaud left,
charsbar left,
justatheory left,
f00li5h left,
diakopter left,
cj left,
Entonian left,
zev left,
Cyrus left,
dmpk2k left,
mdxi left,
jjore left,
Helios left,
go|dfish left,
nipotan left,
awwaiid left
05:09
jnthn joined,
Southen joined,
dalek joined,
skids joined,
araujo joined,
c9s joined,
SamB joined,
simcop2387 joined,
Entonian joined,
alc joined,
agentzh joined,
Nom- joined,
frew joined,
eternaleye joined,
Minthe joined,
lambdabot joined,
FurnaceBoy joined,
wolverian joined,
ilbot2 joined,
Tene_ joined,
cls_bsd joined,
orafu joined,
spinclad joined,
yahooooo joined,
jjore joined,
awwaiid joined,
zev joined,
LCamel joined,
clkao joined,
hcchien joined,
estrabd joined,
Gothmog_ joined,
felipe joined,
baest joined,
buu joined,
PerlJam joined,
diakopter joined,
Maddingue joined,
edenc joined,
Cyrus joined,
mtve joined,
nipotan joined,
moritz_ joined,
irc.freenode.net sets mode: +oooo jnthn PerlJam diakopter moritz_,
TimToady joined,
gbacon joined,
f00li5h joined,
sunnavy joined,
Matt-W joined,
c1sung joined,
dmpk2k joined,
preflex joined,
irc.freenode.net sets mode: +o TimToady,
kcwu joined,
pugs_svn joined,
literal joined,
samlh joined,
[cotto] joined,
zostay joined,
allbery_b joined,
BinGOs joined,
mj41 joined,
p6eval joined,
jeremiah joined,
integral joined,
Caelum joined,
mdxi joined,
jrockway joined,
AzureStone joined,
Grrrr joined,
tcliou|Away joined,
broquaint joined,
bigpresh joined,
avar joined,
idemal joined,
smtms joined,
drbean joined,
revdiablo joined,
jan_ joined,
szabgab joined,
kbaud1 joined,
elmex joined,
DataPusher joined,
lisppaste3 joined,
Helios joined,
hudnix joined,
gfldex joined,
scrottie joined,
r0bby joined,
Khisanth joined,
cognominal joined,
xinming joined,
IRSeekBot joined,
go|dfish joined,
cj joined,
justatheory joined,
stephenlb joined,
icwiener_ joined,
aindilis joined,
charsbar joined,
[particle]1 joined,
irc.freenode.net sets mode: +o literal,
rhr joined,
ft joined,
Util joined,
pmichaud joined,
irc.freenode.net sets mode: +o pmichaud
05:13
broquaint left,
Grrrr left,
xinming left,
idemal left,
Minthe left,
kbaud1 left,
SamB left,
eternaleye left,
AzureStone left,
LCamel left,
r0bby left
05:23
SamB joined,
eternaleye joined,
Minthe joined,
xinming joined,
r0bby joined,
kbaud1 joined,
idemal joined,
broquaint joined,
Grrrr joined,
AzureStone joined,
LCamel joined,
FurnaceBoy left,
r0bby left
05:41
vpace joined
06:04
Tene joined
06:08
iblechbot joined
06:12
maerzhase joined
06:13
mikehh joined
06:15
kate21de joined
06:16
justatheory left
06:17
Tene_ left
06:29
iblechbot left
06:30
Entonian left
06:49
DemoFreak joined
07:04
alester joined
07:20
maerzhase left
07:34
vpace left
07:41
Minthe left
|
|||
pugs_svn | r25284 | lwall++ | [STD] define implicit pad lexicals correctly depending on signature | 07:44 | |
07:46
alester left
07:47
maerzhase joined
|
|||
moritz_ | std: sub f() { @_ } | 07:47 | |
p6eval | std 25284: OUTPUT«############# PARSE FAILED #############Malformed routine definition at /tmp/asH47Yaa8M line 1:------> sub f() { @_ }FAILED 00:02 32m» | 07:48 | |
moritz_ | std: sub f { @_ } | ||
p6eval | std 25284: OUTPUT«############# PARSE FAILED #############Malformed routine definition at /tmp/0I6ar738sQ line 1:------> sub f { @_ }FAILED 00:02 32m» | ||
TimToady | std sub f() { @_ } | 07:50 | |
std: sub f() { @_ } | |||
p6eval | std 25284: OUTPUT«############# PARSE FAILED #############Malformed routine definition at /tmp/fH0W8FnShC line 1:------> sub f() { @_ }FAILED 00:02 32m» | ||
TimToady | hmm, must not have updated yet | ||
moritz_ | it has, but some permission problems with generating the lexers :( | 07:51 | |
std: 1+1 | |||
p6eval | std 25284: OUTPUT«ok 00:02 33m» | ||
moritz_ | std: sub f { @_ } | ||
p6eval | std 25284: OUTPUT«ok 00:02 33m» | 07:52 | |
moritz_ | std: sub f() { @_ } | ||
p6eval | std 25284: OUTPUT«Potential difficulties: Variable @_ is not predeclared at /tmp/M8W020u7zM line 1:------> sub f() { @_ }ok 00:02 33m» | ||
TimToady | :) | ||
std: -> %_ { %_ } | |||
p6eval | std 25284: OUTPUT«ok 00:02 34m» | ||
TimToady | std: -> %_ { @_ } | ||
p6eval | std 25284: OUTPUT«Potential difficulties: Variable @_ is not predeclared at /tmp/8VvV9CliE2 line 1:------> -> %_ { @_ }ok 00:02 34m» | ||
TimToady | std: -> %_ { my %_; } | 07:53 | |
p6eval | std 25284: OUTPUT«Potential difficulties: Variable %_ declared at line 1 is redeclared at /tmp/r8tDf65ZX3 line 1:------> -> %_ { my %_; }ok 00:02 34m» | ||
TimToady | most of the difficulties in make testt are now real | 07:54 | |
pugs_svn | r25285 | moritz++ | [t/spec] git rid of accidential interpolation of &postfix<stuff> | ||
moritz_ | aye | ||
it's really helpful | 07:55 | ||
TimToady | though with the &postfix thing it *ought* to have recognized the operator and attempted to call it with 0 args, I suppose | 07:59 | |
maybe &postfix and such should require at least one () | |||
or maybe & interpolation is just a Bad Plan altogether | 08:01 | ||
bed is a Good Plan though | 08:07 | ||
zzz & | |||
Matt-W | The downside of the internet is that I get to arrive at work just in time to see other people go to bed, which is really where I'd like to be myself :( | 08:20 | |
moritz_ knows that feeling | |||
08:21
meppl joined,
iblechbot joined
08:29
magnarjg1 joined
08:30
magnarjg1 left
08:31
kane_ joined
08:32
kane_ left,
ludan joined
08:41
maerzhase left,
maerzhase joined
08:47
ludan left
08:58
kate21de left
09:09
masak joined
|
|||
masak | what's the difference, semantically, between '($a, $b, $c) = @values;' and ($a, $b, $c, *) = @values;' ? | 09:11 | |
rakudo: (*) = 5 | 09:12 | ||
p6eval | rakudo e73c95: OUTPUT«Class 'Perl6MultiSub' not foundcurrent instr.: 'parrot;Perl6Role;!add_variant' pc 2579 (src/classes/Role.pir:42)» | ||
masak reboots p6eval | |||
Matt-W | masak: I have never seen that syntax before | 09:13 | |
masak | moritz_: don't you get rakudobugs? :) | ||
moritz_ | ... | ||
masak pats moritz_ | 09:14 | ||
at least we're sharing the burden now. :) | |||
09:14
stephenlb left
|
|||
masak | oops, sorry. | 09:15 | |
Matt-W: don't you get rakudobugs? :) | |||
(too many people starting with 'm' on this channel. some of you guys should change nicks. :P) | |||
Matt-W | masak: no I don't | 09:16 | |
masak | Matt-W: they mostly come throught the p6c list if you're interested. | ||
s/throught/through/ | |||
rakudo: (*) = 5 | |||
p6eval | rakudo e73c95: RESULT«5» | ||
masak | ok, that works. | 09:17 | |
rakudo: my (*@) = 1,2,3 | |||
p6eval | rakudo e73c95: OUTPUT«Statement not terminated properly at line 1, near "@) = 1,2,3"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
masak | rakudo: my @values = 1..5; my ($a, $b, $c, *) = @values; | 09:18 | |
p6eval | rakudo e73c95: OUTPUT«Unable to parse declarator; couldn't find final ')' at line 1, near ", *) = @va"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
masak | huh. | 09:19 | |
oh! | |||
rakudo: my @values = 1..5; my ($a, $b, $c); ($a, $b, $c, *) = @values; | |||
p6eval | rakudo e73c95: RESULT«[1, 2, 3, 4]» | ||
09:28
riffraff joined
09:32
ludan joined
09:34
magnarjg joined
|
|||
mikehh | masak: you got to consider the importance of M - even if it is the 13 letter of the English alphabet | 09:38 | |
masak | mikehh: aye, 'tis important, verily. | ||
09:41
DemoFreak left
09:44
ludan left
09:50
ludan joined
10:02
magnarjg1 joined,
magnarjg1 left
|
|||
jnthn is awake | 10:09 | ||
svn up && make coffee | |||
moritz_ | nah, the web 2.0 people git-pull their coffee :-) | 10:10 | |
masak | jnthn: good morning! :) | 10:11 | |
jnthn | moritz_: Put I need coffee to the understand git. ;-) | 10:15 | |
masak: morning! | |||
Matt-W | Oooh coffee | 10:16 | |
I could have coffee | |||
Thanks! | |||
Matt-W -> make coffee | |||
10:17
kane_ joined
|
|||
jnthn | Hmm. Anyone else got a working build of Rakudo? | 10:21 | |
moritz_ | 10:22 | ||
10:22
Util left
|
|||
jnthn | e.g. from latest svn head and git? | 10:23 | |
10:23
bacek joined
|
|||
jnthn | hmm...huh | 10:23 | |
bacek | hi there | ||
moritz_ | from yesterday | ||
bacek | perl6: say +(0..*) | ||
p6eval | pugs: OUTPUT«pugs: out of memory (requested 1048576 bytes)» | ||
..rakudo e73c95: OUTPUT«Use of uninitialized valueUse of uninitialized valueUse of uninitialized value1» | |||
..elf 25285: OUTPUT«Undefined subroutine &GLOBAL::whatever called at (eval 126) line 3. at ./elf_h line 4346» | |||
bacek summon masak to submit bugreport :) | 10:24 | ||
masak submits | |||
bacek: or not. that's a known issue. | |||
lazy infinite lists are not implemented. | |||
Matt-W | isn't that forcing evaluation of the infinite list anyway though | 10:25 | |
or should it be clever enough to just say Inf | |||
bacek | masak: I know. But this bug is different | ||
masak | Matt-W: depends on how you implement it, I guess. | ||
bacek: due to the undefined values? | |||
bacek | masak: it should yeld Inf | 10:26 | |
masak | bacek: sure, when lazy infinite lists are implemented :) | ||
bacek | perl6: (0..1)[2]= 3; | ||
p6eval | rakudo e73c95: OUTPUT«elements() not implemented in class 'Range'current instr.: 'postcircumfix:[ ]' pc 3452 (src/classes/Positional.pir:108)» | 10:27 | |
..pugs: OUTPUT«*** Can't modify constant item: VUndef at /tmp/UfdmooI8cs line 1, column 1-13» | |||
..elf 25285: OUTPUT«Can't call method "postcircumfix__91_32_93" without a package or object reference at (eval 122) line 3. at ./elf_h line 4346» | |||
masak submits rakudobug | |||
bacek | masak: stop. Its 60848 | ||
masak stops immediately | |||
bacek | And I have partial solution for it :) | ||
masak | great. | ||
10:27
dduncan joined
|
|||
jnthn | OK, a s{/}{\} in the makefile did it... | 10:28 | |
bacek | perl6: say Inf - Inf | 10:30 | |
p6eval | pugs: OUTPUT«NaN» | ||
..rakudo e73c95: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.main: Packfile loading failed» | |||
..elf 25285: OUTPUT«nan» | |||
bacek | perl6: say "z" - "a" | ||
p6eval | rakudo e73c95: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.main: Packfile loading failed» | ||
..elf 25285: OUTPUT«Argument "\x{61}" isn't numeric in subtraction (-) at (eval 123) line 3.Argument "\x{7a}" isn't numeric in subtraction (-) at (eval 123) line 3.0» | |||
..pugs: OUTPUT«0» | |||
bacek | perl6: my $a = 0; say $a.does(Num) | 10:32 | |
p6eval | pugs: OUTPUT«1» | ||
..rakudo e73c95: OUTPUT«0» | |||
..elf 25285: OUTPUT«» | |||
bacek | perl6: my $a = 0; say $a.does(Int) | ||
p6eval | pugs, rakudo e73c95: OUTPUT«1» | ||
..elf 25285: OUTPUT«» | |||
dalek | kudo: 7b4118d | jnthn++ | Configure.pl: [config] Configure needs to translate forward slashes in makefile to backwards ones for Win32, as Parrot's Configure did. Otherwise the build silently misses a bunch of important bits! |
10:33 | |
bacek | perl6: my $a = 'a'..'c'; say ~$a | ||
p6eval | elf 25285: OUTPUT«1E0» | ||
..pugs, rakudo e73c95: OUTPUT«a b c» | |||
bacek | perl6: my $a = 'a'..'3'; say ~$a | 10:34 | |
p6eval | elf 25285: OUTPUT«1E0» | ||
..pugs, rakudo e73c95: OUTPUT«» | |||
bacek | perl6: my $a = 'a'..3; say ~$a | ||
p6eval | elf 25285: OUTPUT«1E0» | ||
..pugs, rakudo e73c95: OUTPUT«» | |||
bacek | perl6: my $a = 0..'z'; say ~$a | ||
p6eval | pugs, rakudo e73c95: OUTPUT«0» | ||
..elf 25285: OUTPUT«» | |||
bacek | perl6: my $a = -1..'z'; say ~$a | ||
p6eval | pugs: OUTPUT«-1 0» | ||
..elf 25285: OUTPUT«1E0» | |||
..rakudo e73c95: OUTPUT«» | |||
bacek | looks... strange | 10:35 | |
pugs is correct, isn't it? | 10:36 | ||
(in last case) | |||
moritz_ | dunno | ||
depends on how infix:<..>(Any, Any) is defined | 10:37 | ||
bacek | perl6: my $a = -1..^'z'; say ~$a | ||
p6eval | elf 25285: OUTPUT«1E0» | ||
..pugs: OUTPUT«-1» | |||
..rakudo e73c95: OUTPUT«» | |||
moritz_ | imho there's no dwimmy way to handle such a range | ||
bacek | moritz_: agreed. | ||
perl6: say 0>*; say 0<*; | 10:38 | ||
p6eval | pugs: OUTPUT«1» | ||
..rakudo e73c95: OUTPUT«Use of uninitialized value0Use of uninitialized value0» | |||
..elf 25285: OUTPUT«Undefined subroutine &GLOBAL::whatever called at (eval 122) line 3. at ./elf_h line 4346» | |||
moritz_ | perl6: say 0 == * | ||
p6eval | elf 25285: OUTPUT«Undefined subroutine &GLOBAL::whatever called at (eval 120) line 3. at ./elf_h line 4346» | ||
..rakudo e73c95: OUTPUT«Use of uninitialized value1» | |||
..pugs: OUTPUT«» | |||
bacek | ouch. | 10:39 | |
bacek summon masak again :) | |||
moritz_ | perl6: say 0 ~~ * | ||
p6eval | rakudo e73c95: OUTPUT«1» | ||
..elf 25285: OUTPUT«Undefined subroutine &GLOBAL::whatever called at (eval 122) line 3. at ./elf_h line 4346» | |||
..pugs: OUTPUT«» | |||
moritz_ | bacek: what's wrong with numifying * to 0? | ||
bacek | moritz_: in range * means totally different. | 10:40 | |
perl6: say (0..(+*))[2] | |||
masak | bacek: sorry, didn't follow. will need to backlog to see what I was summoned for. | ||
p6eval | pugs: OUTPUT«2» | ||
..rakudo e73c95: OUTPUT«Use of uninitialized valueelements() not implemented in class 'Range'current instr.: 'postcircumfix:[ ]' pc 3452 (src/classes/Positional.pir:108)» | |||
..elf 25285: OUTPUT«Parse error in: /tmp/kBnj7P4dyhpanic at line 1 column 0 (pos 0): Can't understand next input--giving upWHERE: say (0..(+*))[2]WHERE:/\<-- HERE STD_red/prelude.rb:99:in `panic' STD_red/std.rb:76:in `scan_unitstopper' STD_red/std.rb:224:in `comp_unit' | |||
..STD_red/std.rb:210:... | |||
moritz_ | bacek: yes. That doesn't mean it has to have the same behaviour outside of ranges | 10:41 | |
bacek | perl6: my $a = (0..(+*)); say $a[2] | ||
p6eval | pugs: No output (you need to produce output to STDOUT) | ||
..rakudo e73c95: OUTPUT«Use of uninitialized valueelements() not implemented in class 'Range'current instr.: 'postcircumfix:[ ]' pc 3452 (src/classes/Positional.pir:108)» | |||
..elf 25285: OUTPUT«Parse error in: /tmp/f7Sbegt0nzpanic at line 1 column 0 (pos 0): Can't understand next input--giving upWHERE: my $a = (0..(+*)); say $a[2]WHERE:/\<-- HERE STD_red/prelude.rb:99:in `panic' STD_red/std.rb:76:in `scan_unitstopper' STD_red/std.rb:224:in `comp_unit' | |||
..STD_red... | |||
10:48
hanekomu joined
|
|||
bacek | perl6: say (1..*)[2] | 10:53 | |
p6eval | rakudo 7b4118: OUTPUT«elements() not implemented in class 'Range'current instr.: 'postcircumfix:[ ]' pc 3452 (src/classes/Positional.pir:108)» | ||
..elf 25285: OUTPUT«Undefined subroutine &GLOBAL::whatever called at (eval 123) line 3. at ./elf_h line 4346» | |||
..pugs: OUTPUT«3» | |||
10:58
pmurias joined,
pmurias left
11:12
dduncan left
|
|||
jnthn | Grr. The proto definedness bug turned out to be trickier than I first though. | 11:23 | |
11:36
alc left
|
|||
dalek | kudo: d668ca9 | jnthn++ | src/classes/ClassHOW.pir: Fixes to make sure dispatches on proto-objects work correctly; resolves RT#62894. |
11:37 | |
pugs_svn | r25286 | jnthn++ | [t/spec] Tests for proto-object being undefined. | ||
r25287 | jnthn++ | [t/spec] Add test case for RT#62828. | 11:52 | ||
dalek | kudo: 59024e0 | jnthn++ | src/classes/Object.pir: Fix .clone to deref ObjectRefs properly by calling !DEREF, which follows chains. Resolves RT#62828. |
||
masak | jnthn: I'm interested in what could have caused that .clone bug. is there an easy answer, or should I just read the commit diff myself? :) | 11:54 | |
11:55
ruoso joined
|
|||
jnthn | masak: The commit message pretty much tells the story. :-) | 11:55 | |
masak | ah. yes. | 11:58 | |
thank you for fixing that. it was a very frustrating error. | |||
jnthn | Welcome. proto one should be fixed also. | 11:59 | |
masak | that's good. will lead to a couple of simplifications and '# RAKUDO' comment removals. :) | ||
ruoso | Hello! | 12:01 | |
masak | oh hai | 12:02 | |
jnthn ponders 63002 | 12:03 | ||
ruoso feels one day closer to the day when GLOBAL dies ;) | 12:05 | ||
ruoso just reading ClassHOW.pir... convergence++ | 12:12 | ||
when a role puns a class, should it look for "Object" from the perspective of the code that is causing then pun? or may it consider Object from its own perspective? | 12:14 | ||
that question really means.. | 12:15 | ||
jnthn | Not sure. | ||
I prefer the second for implementation ease. ;-) | |||
ruoso | if I re-define what Object means in my lexical scope, should a punned class use the custom Object or the canonical Object? | ||
jnthn | Or the Object as it was in the scope where the role was defined... ;-) | 12:16 | |
Canonical object is sure easiest though. | |||
ruoso | right.. right | ||
jnthn | It's what we're doing in Rakudo for now. | ||
ruoso | there are three options indeed | ||
in the case of being th efirst | 12:17 | ||
we need the punned class to be lexically scoped | |||
jnthn | Yeah | ||
ruoso | in the case of being the second, we need the module loading to be lexically scoped | ||
jnthn | Given the punned class is attached to the role, I don't see that flying. | ||
(The first option.) | 12:18 | ||
ruoso | (not the name aliasing, but the actual module loading) | ||
or maybe not, because lexically, it does not relate to the code that imports it | 12:19 | ||
but how would you override the meaning of Object there then? | |||
role SubRole does Role { my class Object { ... }; }; | 12:20 | ||
or... | 12:21 | ||
jnthn | That would probably still not override the meaning of Object for the pun. just within that class. | ||
erm | |||
within that role's body, I mean. | |||
Oh, hmm. It could do. | |||
12:22
ispy_ joined
|
|||
jnthn | (Classes inside roles are interesting within themselves, when you start to consider parametric roles...) | 12:22 | |
ruoso | so... my role Role does OUTER::Role { my class Object is OUTER::Object {...}; }; | 12:23 | |
or maybe you need... | 12:24 | ||
my class Object is OUTER::Object {...}; my role Role does OUTER::Role; | |||
my class Object is OUTER::Object {...}; my role Role does OUTER::Role {...}; | |||
jnthn | Hang on, are you using Role here as if it were Foo, just as an example role name, or are you trying to re-define the built-in Role type? :-) | 12:25 | |
ruoso | heh.. yeah... bad example code... | ||
my class Object is OUTER::Object {...}; my role Foo does OUTER::Foo {...}; | |||
jnthn | Phew! :-) | ||
Hmm. That'd I guess pun to the lexical Object if we take the "it puns from the view of where the role is defined" approach. | 12:26 | ||
Which to me seems fairly sane. | |||
ruoso | so it would be equally possible to: | 12:27 | |
use CustomObjectImpl; role Foo does OUTER::Foo {}; | 12:28 | ||
jeremiah | OHAI | ||
jnthn | jeremiah: HAI! | 12:29 | |
ruoso | actually | ||
use Foo; | |||
use CustomObjectImpl; | |||
jeremiah | Hey jnthn | ||
ruoso | role Foo does OUTER::Foo {}; | ||
jeremiah | I have an email in the works for you, details about Gothenburg before Oslo. :) | ||
jnthn | jeremiah: The awesome! :-) | ||
Looking forward do it. | |||
jeremiah | If you haven't made plans for housing in Oslo I know a cheap and good hostel. | 12:30 | |
Called Perminalen. | |||
jnthn | I didn't make plans yet, no. | 12:31 | |
Cheap? Is Oslo? -) | 12:32 | ||
;-) | |||
ruoso | hmmm... I think "use Foo; role Foo does OUTER::Foo {}" is not going to work... | ||
jnthn | I suspect that'd be a re-declaration error. | ||
jeremiah | heh, relatively cheap | ||
ruoso | jnthn, so how could I redefine it without it being an error? | 12:33 | |
12:34
iblechbot left
|
|||
jnthn | ruoso: If you're going to re-define it, why'd you just import it? :-P | 12:36 | |
use Foo; { my role Foo does OUTER::Foo { ... } } | 12:37 | ||
ruoso | because I want to export a customized version of Foo | ||
jnthn | Hmm... | ||
Maybe do it under a different name? ;-) | 12:38 | ||
ruoso | but that won't solve the problem on how to lexically customize behavior of some code | ||
where things happen sintatically | 12:39 | ||
likle | |||
my @a = (1,2,3); | |||
in order to customize the behavior of @a | |||
I need to replace the meaning of the Array role | |||
(of course I could say "my @a is SomethingElse = (1,2,3)" but that's not the poitn) | 12:40 | ||
jnthn | Hmm. | 12:42 | |
Yes, see what you're getting at. | |||
ruoso | maybe... | 12:45 | |
BEGIN { require Foo; | |||
argh | |||
the problem is that the name Foo is always lexically bound either by use or require | 12:46 | ||
maybe we would need something like... use Foo as OriginalFoo; | |||
so we can say "role Foo does OriginalFoo {}" | 12:47 | ||
jnthn | But that assumes that the module Foo will export one symbol Foo that we wish to re-define. | ||
But some way to do name-mapping on import may work, yes. | 12:48 | ||
12:53
ispy_ left
|
|||
ruoso | jnthn, I think the name "Foo" is aliased by the "use" or "require" itself | 12:54 | |
I was thinking this is a assumption made to know what to bind to the current scope | 12:56 | ||
meaning | |||
if you "use Foo" | |||
it will find Foo.pm | |||
then Foo.pm might have | |||
class Foo {}; class Bar {}; | 12:57 | ||
does Bar gets aliased into your lexical scope? | |||
I was assuming it doesn't | |||
jnthn | Not sure - would have to read the spec to check that. | 12:58 | |
ruoso | and that it will know which package to alias, exactly because of the "use Foo" and "class Foo" | ||
jnthn | Haven't been looking at import/export much myself - I think pmichaud and particle have been, though... | ||
pugs_svn | r25288 | jnthn++ | [t/spec] Test for range constructed from parameter. | 13:00 | |
dalek | kudo: 1beabec | jnthn++ | src/ (3 files): We need to call .clone() rather than just using Parrot's clone vtable method fairly generally, I expect. This does that in a couple of places, which in turn resolves RT#63002 and gets an integration test passing. |
13:01 | |
13:01
smtms left
|
|||
pugs_svn | r25289 | jnthn++ | [t/spec] Untodo an integration test that Rakudo now can pass. | 13:02 | |
13:04
skids left
13:07
maerzhase1 joined
13:08
maerzhase left
13:10
iblechbot joined
|
|||
jnthn | std: my WTF $x; | 13:16 | |
p6eval | std 25289: OUTPUT«############# PARSE FAILED #############Malformed "my" declaration at /tmp/18w1hgIpuy line 1:------> my WTF $x; expecting any of: scoped declarator typenameFAILED 00:02 32m» | ||
13:24
jferrero joined
|
|||
masak | jnthn: I have to go now and will be offline for the rest of the day -- studying Chinese and washing clothes -- but I'm really happy about the bugs that you have already fixed. will go home and improve November and Druid accordingly, so that I can push newer, shinier versions tomorrow. :) | 13:30 | |
jnthn | masak: Nice! And welcome. Thanks for the bug reports. :-) | ||
masak | there's more where that came from :) | 13:31 | |
13:32
riffraff left
|
|||
jnthn wants to try and get us back down to 250 tickets in the nost too distant future. | 13:35 | ||
masak | it used to be 150. :) | 13:39 | |
13:41
masak left
|
|||
jnthn | Yeah...I don't see us getting down to *that* for quite a while... | 13:43 | |
Matt-W | isn't it entirely masak's fault? :P | ||
jnthn | Largely. ;-) | 13:44 | |
moritz_ | don't blame the one who delivers the message :-) | 13:46 | |
Matt-W | Nonsense, my entire working life is based around blaming the testers who find the bugs in my code | 13:47 | |
If they didn't find them, nobody would ever notice | |||
14:05
iblechbot left
|
|||
dalek | kudo: fba805c | jnthn++ | src/parser/grammar.pg: Add panic on malformed declaration, as seen in STD.pm (with note on our little difference against STD.pm). Also we accidentally parsed/passed a private method test; add something to mitigate that to keep the spectests clean. |
14:06 | |
14:11
skids joined
14:18
kbaud1 left
|
|||
mikehh | my latest build of rakudo passes the spectests | 14:19 | |
14:27
ejs joined
|
|||
dalek | kudo: 1b7a3e3 | jnthn++ | src/parser/grammar.pg: A few more panics on malformed code from STD.pm. Resolves RT#59828. |
14:29 | |
14:41
smtms joined
|
|||
pugs_svn | r25290 | jnthn++ | [t/spec] Add some parens to a test to clarify precedene. This now allows it to pass in Rakudo (we're not actually testing parsing of item assignment here, but subset stuff). | 14:43 | |
14:51
Exodist joined
14:54
DemoFreak joined
|
|||
dalek | kudo: cad0468 | jnthn++ | src/classes/Grammar.pir: Implement .parsefile method on Grammar. |
14:55 | |
pugs_svn | r25291 | jnthn++ | [t/spec] Tests for .parse and .parsefile on Grammar objects. | 15:09 | |
dalek | kudo: 8b8095c | jnthn++ | src/classes/Grammar.pir: Avoid an infinite exception handler loop by popping a handler before calling Rakudo's 'die'. Resolves RT#62700. |
15:21 | |
kudo: 1a2f50c | jnthn++ | t/spectest.data: Add S05-grammar/parse_and_parsefile.t to spectests. |
15:23 | ||
15:24
hudnix left
15:27
iblechbot joined
15:54
Tene_ joined
16:01
Tene left
16:06
ejs left
16:12
stephenlb joined
16:14
simcop2387 left
16:15
araujo left
|
|||
TimToady | moritz_: what's wrong with numifying * to 0? only that nearly all the numeric operators should return a closure instead... | 16:15 | |
+* means { +$_ } | 16:16 | ||
16:16
simcop2387 joined
|
|||
dalek | kudo: 45cf376 | jnthn++ | src/builtins/op.pir: ++ and -- in both their prefix and postfix forms now use infix:<=>, which means they do read-only checking properly. This corrects RT#60380, but does cause some failures in for.t since <-> is not implemented, but accidentally worked before; will fix that in my next commit. |
16:16 | |
16:16
simcop2387-vnc joined
|
|||
pugs_svn | r25292 | jnthn++ | [t/spec] Unfudge test for $x++ where $x is readonly. | 16:17 | |
moritz_ | TimToady: nothing's wrong, but bacek considered that a bug | ||
TimToady | std: say 0>*; say 0<*; | ||
p6eval | std 25291: OUTPUT«############# PARSE FAILED #############(Possible runaway string from line 1)Unable to parse quote-words subscript; couldn't find right angle quote at /tmp/9YopMvyQGq line 0:------> FAILED 00:02 33m» | ||
TimToady | bacek: see ^^ | ||
16:20
icwiener_ left
16:21
icwiener_ joined
|
|||
dalek | kudo: c66322e | pmichaud++ | src/builtins/match.pir: Add 'make' function (partial RT #63152, chrisdolan++) |
16:21 | |
16:26
kcwu left,
simcop2387-vnc left
|
|||
moritz_ | so how can I use $/.make without closures in regexes? | 16:31 | |
via the {*} hooks? do they work right now? | |||
16:32
kcwu joined
16:33
hercynium joined
16:47
maerzhase1 left
|
|||
dalek | kudo: bb2cdb7 | jnthn++ | src/ (2 files): Implement <-> (lambda that makes things rw), which gets S04-statements/for.t passing again. |
16:49 | |
16:50
eternaleye left
16:51
justatheory joined
16:56
hanekomu_ joined
16:58
icwiener_ is now known as icwiener,
hanekomu_ left
|
|||
pugs_svn | r25293 | lwall++ | [STD] improved error message on "my WTF $x", jnthn++ | 17:01 | |
r25293 | lwall++ | suppress whitespace expectation when it's the only one | |||
jnthn | damm, I copy STD.pm and lwall++ goes and changes it! | 17:04 | |
;-) | |||
17:05
mikehh left
17:11
hanekomu left
17:17
bacek left
17:19
bacek joined
|
|||
pugs_svn | r25294 | jnthn++ | [t/spec] Some more tests to exercise <->. | 17:25 | |
dalek | kudo: 2e70f2d | jnthn++ | src/ (2 files): Improve handling of <-> so any traits explicitly set in the signature are not overridden with rw. |
||
17:29
jferrero left
17:33
ejs joined
|
|||
ruoso trying to find a way out of typesystem bootstrap circularity | 17:45 | ||
dalek | kudo: d44d19c | pmichaud++ | src/parser/grammar.pg: Add parsing of $/ as a param_var (RT #63152). |
17:48 | |
18:05
ludan left
18:10
mikehh joined
18:18
araujo joined
18:33
jeremiah left,
jeremiah joined
18:34
Psyche^ joined
18:51
Patterner left,
Psyche^ is now known as Patterner
18:54
aindilis` joined
19:00
yahooooo left
19:08
aindilis left
|
|||
dalek | kudo: 4367761 | jnthn++ | src/ (2 files): If optional parameter not supplied, don't do type checks. Resolves RT#61528 and RT#63048. |
19:31 | |
kudo: 50a61ae | jnthn++ | src/parser/grammar.pg: Merge branch 'master' of [email@hidden.address] |
|||
pugs_svn | r25295 | jnthn++ | [t/spec] Unfudge optional typed parameter checks for Rakudo. | 19:32 | |
r25296 | jnthn++ | [t/spec] Basic tests for typed named parameters including optional check - seems we didn't have any such tests. | 19:40 | ||
r25297 | lwall++ | History as written by the winners: | 19:45 | ||
r25297 | lwall++ | The Long-Promised Grand Unification of + and * Twigils | |||
r25297 | lwall++ | History as written by the losers: | |||
r25297 | lwall++ | The Genocidal Slaughter of Innocent + Twigils | |||
r25297 | lwall++ | | |||
r25297 | lwall++ | (anyway, rouso++ for reminding me again) | |||
r25297 | lwall++ | | |||
r25297 | lwall++ | Also: | |||
r25297 | lwall++ | cleanup of %*ENV semantics, wrt run() | |||
r25297 | lwall++ | removal of postfix:<::> from S02 | |||
r25297 | lwall++ | clarification of %*OPTS scoping | |||
19:50
Eevee joined
|
|||
ruoso | TimToady++ # but I'd still kill GLOBAL ;) | 19:53 | |
TimToady | we could rename it MONKEY_GLOBAL | ||
ruoso | but I'm not sure defaulting to lookup in $*ENV is really a good idea | 19:54 | |
%*ENV actualyl | |||
but it might make sense | 19:55 | ||
since that are the variables in the shell calling this perl program | |||
TimToady, but I was envisioning a "dynamic prelude" where a set of contextual variables was defined | 19:56 | ||
that not necessarly would be in GLOBAL or PROCESS | |||
or even %*ENV | |||
I mean... | 19:57 | ||
what I had in mind was that $*OUT was defined in the dynamic prelude as an alias to PROCESS::<$OUT> | |||
19:57
jeremiah left
|
|||
ruoso | not that $*OUT did go look in PROCESSS | 19:57 | |
19:58
jeremiah joined
|
|||
ruoso | "temp $*LANG = "ja_JP.utf8"; # WRONG" | 20:01 | |
I think this is a pretty good example of misunderstanding caused by automatic %*ENV lookup | |||
(and it just feels wrong, as it looks like PHP) ;) | 20:02 | ||
20:06
M_o_C joined
|
|||
dalek | kudo: b2e7ac9 | jnthn++ | src/parser/actions.pm: If we use is also, we need to check the class we're trying to extend already exists. |
20:06 | |
pugs_svn | r25298 | jnthn++ | [t/spec] Test for making sure 'is also' on a non-existent class fails. | 20:07 | |
jnthn | std: role A::B {}; A | 20:11 | |
p6eval | std 25298: OUTPUT«Undeclared name: A used at 1 ok 00:02 33m» | ||
20:21
rindolf joined
|
|||
ruoso | jnthn, I'd presume "role A::B {}" is the same as "module A { role B {} }" | 20:27 | |
std: module A { role B {} }; A | |||
p6eval | std 25298: OUTPUT«ok 00:02 33m» | ||
jnthn | std: role A::B { } | ||
p6eval | std 25298: OUTPUT«ok 00:02 32m» | 20:28 | |
jnthn | std: role A::B { }; A | ||
p6eval | std 25298: OUTPUT«Undeclared name: A used at 1 ok 00:02 33m» | ||
jnthn | ruoso: But STD.pm doesn't treat it that way. | ||
pugs_svn | r25299 | lwall++ | [STD] fix jnthn++'s role A::B {}; A | ||
ruoso | oops | ||
jnthn | ruoso: I agree it's a...oh...nice. | ||
:-) | |||
ruoso | the fatest commiter in the west ;) | ||
*fastest, that is | 20:30 | ||
jnthn | epic typo! | ||
std: role A::B { }; A | 20:31 | ||
p6eval | std 25299: OUTPUT«Undeclared name: A used at 1 ok 00:02 33m» | ||
TimToady | ETOOSOON | ||
jnthn | std: role A::B { }; A | 20:37 | |
p6eval | std 25299: OUTPUT«ok 00:02 33m» | ||
20:38
aindilis` left,
aindilis` joined
20:39
jeremiah left,
jferrero joined
|
|||
pmichaud | TimToady: btw, I noticed a possible issue with parsing $! as a param_var -- I think the ! gets eaten as a twigil. | 20:39 | |
lambdabot | pmichaud: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
20:39
jeremiah joined
|
|||
TimToady | looking | 20:40 | |
pmichaud | (I didn't test it... only looked by visual inspection.) | ||
std: sub foo($!) { say $!; } | 20:41 | ||
p6eval | std 25299: OUTPUT«ok 00:02 34m» | ||
pmichaud | it may be treating that as a placeholder as opposed to $! though. | ||
TimToady | yeah, looks like it sees a twigil | ||
pmichaud | anyway, not critical for anything I'm doing at the moment-- just wanted to register that I had observed it. | 20:42 | |
TimToady | I though it might be a mandatory $, but it's a twigil :) | ||
*thought | |||
pmichaud | the important one for us ($/) parses okay at the moment. | ||
afk for a bit # pick up kids | 20:43 | ||
TimToady | interesting that it will probably be necessary to write mandatory $ and $ ! rather than $! | ||
but at least it's unlikely to be written on purpose | |||
since an anonymous placeholder would only be used on params that are already mandatory | 20:44 | ||
ruoso | TimToady, while we're on old issues... any chance we have a solution for the Capture DWIMmery? | 20:52 | |
21:00
M_o_C left
21:12
mehryar joined
21:14
mehryar left,
ruoso left
|
|||
pugs_svn | r25300 | lwall++ | [STD] don't treat $! param as sigiltwigil, pmichaud++ | 21:19 | |
21:31
Southen left
21:33
Southen joined
21:43
rindolf left
21:51
KsEma joined
|
|||
KsEma | Hello. How can i login with LWP::USerAgent and maintain a session while downloading some files ? Being logged in is needed fo rdownloading files | 21:51 | |
allbery_b | that sounds like a perl5 question. this channel is for perl6 development | 21:55 | |
try #perl | |||
KsEma | tried. | 21:56 | |
22:09
simcop2387 left
22:10
simcop2387 joined
22:15
ejs left
22:16
skids left
|
|||
diakopter starts to think of all statements (indeed, all parse nodes) as declarations (of *something*), in some compilation/execution phase/scope or another. | 22:19 | ||
22:26
wknight8111 joined
22:41
KsEma left
22:48
jferrero left
22:54
sahadev joined
23:01
FurnaceBoy joined
23:08
nacho_ joined
23:15
aindilis joined
23:17
iblechbot left
23:18
aindilis` left
23:23
jferrero joined
23:25
skids joined
23:30
DataPusher left,
hercynium left
23:32
FurnaceBoy left
23:46
yahooooo joined
|