»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
00:02
benabik joined
00:07
dayangkun joined
00:08
jnap left
00:09
jnap joined
00:12
Psyche^ joined
00:13
dayangkun left
00:14
ajr_ left
00:15
jnap left,
Psyche^_ left
00:21
jnap joined
|
|||
dalek | rl6-roast-data: 0453525 | coke++ | / (5 files): today (automated commit) |
00:22 | |
locsmif | coke++ indeed | 00:38 | |
;P | |||
dalek | ast: 3e1cfca | (David Warring)++ | S32-io/io-spec- (2 files): fixed bogus test failures. messed up TAP |
00:43 | |
00:44
snoopy_ joined,
snoopy_ left
00:45
dwarring joined
00:51
FROGGS joined
00:56
FROGGS left
00:57
jaldhar left
|
|||
diakopter | sorear: ping | 01:01 | |
host08:rakudo mwilson$ time ./perl6 -e 'my $z = "a" x 1_000_000; print(eval("so \"$z\" ~~ /$z/"))' | 01:04 | ||
===SORRY!=== | |||
java.lang.ClassFormatError: Unknown constant tag 97 in class file 08760A548F985687272891CCAE0291F993893F21 | |||
real0m22.200s | |||
.ask sorear find this spot in the backlog.. jvm bytecode parsing error from rakudo | 01:05 | ||
yoleaux | diakopter: I'll pass your message to sorear. | ||
diakopter | .seen sorear | 01:10 | |
yoleaux | I saw sorear 19 Aug 2013 04:06Z in #perl6: <sorear> sweet | ||
diakopter | here are the known constant tags: docs.oracle.com/javase/specs/jvms/s...ms-4.4-140 | 01:13 | |
oh, hahaha, 97 is ascii for a | 01:14 | ||
host08:rakudo mwilson$ time ./perl6 -e 'my $z = "\x1" x 100_000; print(eval("so \"$z\" ~~ /'\''$z'\''/"))' | 01:17 | ||
===SORRY!=== | |||
java.lang.ClassFormatError: Illegal UTF8 string in constant pool in class file C2191414E5EAB76038258C2568A4F799EB32FC6F | |||
01:19
jnap left
|
|||
dalek | ast: f39b0e8 | (David Warring)++ | S32-io/io-spec-win.t: fixed typo |
01:22 | |
01:23
cognominal left
|
|||
diakopter | .tell masak unexpected in rakudo: say so "a" x 1_0 ~~ /a ** 1_0/ says False | 01:36 | |
yoleaux | diakopter: I'll pass your message to masak. | ||
01:36
jaldhar joined
01:37
skids left
01:38
FROGGS joined
01:39
mtk left
01:41
skids joined
01:52
mtk joined
01:53
thou left
|
|||
dalek | ast: cdb6698 | coke++ | S0 (4 files): pugs fudge |
01:57 | |
01:57
thou joined
02:01
cognominal joined
02:03
skids left
02:05
FROGGS left
|
|||
dalek | rl6-roast-data: a558235 | coke++ | bin/ (2 files): Up the timer from 15s to 1m Should avoid some timeout errors on niecza. |
02:23 | |
colomon | Hmmm, ABC seems to work on jakudo | 02:24 | |
02:24
locsmif left
|
|||
colomon | oodles of Passing an object candidate to Mu.bless is deprecated messages | 02:24 | |
[Coke] | colomon: looks like some of the niecza failures in roast I'm seeing are just timeouts | 02:25 | |
colomon | ? | ||
[Coke] | will check again after the next run. | 02:26 | |
all the roast runs use a time/memory limited perl6 wrapper script. | |||
so, github.com/coke/perl6-roast-data/b....out#L5932 is just a timeout error. | 02:27 | ||
Things should look a little nicer after this. | |||
colomon | [Coke]++ | 02:30 | |
02:51
Chat8992 joined
|
|||
Chat8992 | Hi | 02:51 | |
02:52
Chat8992 left
03:04
skids joined,
FROGGS joined
03:13
mauke left,
mauke joined
03:14
preflex left
03:15
preflex_ joined,
ChanServ sets mode: +v preflex_,
preflex_ is now known as preflex
03:29
Tene left,
djanatyn left
03:30
Tene joined
03:31
djanatyn joined
03:34
PZt joined
03:48
xinming_ left
03:52
xinming joined
04:01
fridim_ left
04:14
abnorman left
04:26
risou_awy joined
04:30
cognominal left
04:31
cognominal joined
04:44
FROGGS left
04:48
hummeleBop joined
04:56
SamuraiJack__ joined
05:04
FROGGS joined
|
|||
dalek | d: 27326bc | larry++ | STD.pm6: allow _ in regex ** range integers |
05:13 | |
05:14
ggoebel2 joined
05:16
ggoebel left
05:23
mtk left
05:27
mtk joined
05:29
cognominal left
05:37
cognominal joined
05:41
rindolf joined
06:00
FROGGS left
06:06
dmol joined
06:24
dmol left
|
|||
diakopter | hi | 06:27 | |
06:30
FROGGS joined
|
|||
moritz | good morning diakopter, * | 06:46 | |
FROGGS | o/ | 06:49 | |
06:56
rindolf left
06:57
domidumont joined,
berekuk joined
07:01
qiyong joined
|
|||
qiyong | does p6 still have three kinds of variables? | 07:01 | |
07:02
domidumont left
|
|||
GlitchMr | qiyong: No. Neither Perl 5 or Perl 6 had three kinds of variables. | 07:06 | |
But if you mean, scalar, array, and hash, Perl 6 still has these. | |||
JimmyZ | qiyong: 你好 | 07:07 | |
GlitchMr | (but Perl 5 also had typeglobs (*), and subroutines (&)) | ||
(and Perl 6 also has generic package name (::), and subroutines (&)) | 07:08 | ||
Also, Perl 6 has twigils. | 07:09 | ||
07:11
zakharyas joined
07:14
domidumont joined
|
|||
qiyong | GlitchMr: isn't that variable type? | 07:16 | |
GlitchMr | I'm not sure. What is your definition of variable type? | ||
qiyong | scalar, arry/list, hash | ||
GlitchMr | The documentation says it is. | ||
nwc10 | Perl 5 has 5 things you can put sigils in front of, and about 3 more things that don't have sigils | 07:17 | |
scalar, array, hash, code, typeglob, format, filehandle, dirhandle | |||
qiyong | it is what? what's the proper term for scalar, arry, ... | ||
GlitchMr | feather.perl6.nl/syn/S02.html#Sigils | ||
array | |||
qiyong | how to test if an item exist? like set operator in, using hash? | 07:18 | |
07:19
domidumont left,
domidumont joined
|
|||
FROGGS | r: my %hash = foo => 42; say %hash<bar>:exists; say %hash<foo>:exists | 07:20 | |
camelia | rakudo 9faa30: OUTPUT«FalseTrue» | ||
FROGGS | r: my %hash = foo => 42; say %hash.exists('bar'); say %hash.exists('foo') | 07:21 | |
camelia | rakudo 9faa30: OUTPUT«FalseTrue» | ||
07:21
dmol joined
|
|||
qiyong | FROGGS: what is :exists? | 07:26 | |
object method? | |||
JimmyZ | 一个动词 | 07:27 | |
07:29
pernatiy joined
07:34
kaleem joined
07:35
chenryn left
|
|||
FROGGS | qiyong: sort of, it is called an adverb | 07:35 | |
qiyong | FROGGS: new in perl6? | 07:36 | |
i want to implement this as simple as possible, in p5 or p6. if ($user in @users) { } | 07:37 | ||
FROGGS | qiyong: adverbs? at least the hash adverbs are newly added to rakudo within the last months | ||
JimmyZ | std: if $user == any(@users) { } | 07:38 | |
camelia | std 27326bc: OUTPUT«===SORRY!===Variable $user is not predeclared at /tmp/rjoW0he5bt line 1:------> if ⏏$user == any(@users) { }Variable @users is not predeclared at /tmp/rjoW0he5bt line 1:------> if $user == any(⏏@users) { }C… | ||
FROGGS | well, @users is not a hash | ||
JimmyZ | you want any | ||
07:39
pdcawley joined
|
|||
FROGGS | r: my $user = 4; my @users = ^6; say $user == any @users | 07:40 | |
camelia | rakudo 9faa30: OUTPUT«any(False, False, False, False, True, False)» | ||
FROGGS | so it will be true because one of it is true | 07:41 | |
r: my $user = 4; my @users = ^6; say so $user == any @users | |||
camelia | rakudo 9faa30: OUTPUT«True» | ||
dagurval | r: say so 'a'...'z' | 07:43 | |
so makes it timeout ._. | |||
camelia | rakudo 9faa30: OUTPUT«(timeout)» | ||
FROGGS | ? | 07:52 | |
r: say 'a'...'z' | |||
camelia | rakudo 9faa30: OUTPUT«a b c d e f g h i j k l m n o p q r s t u v w x y z» | ||
FROGGS | r: say ?('a'...'z') | 07:53 | |
camelia | rakudo 9faa30: OUTPUT«True» | ||
FROGGS | r: say so ('a'...'z') | ||
camelia | rakudo 9faa30: OUTPUT«True» | ||
FROGGS | r: say so 'a'...'z' | ||
camelia | rakudo 9faa30: OUTPUT«(timeout)» | ||
FROGGS | maybe the ... has lower precedence than so? | ||
07:53
sqirrel joined
|
|||
FROGGS | r: say True...'z' | 07:54 | |
camelia | rakudo 9faa30: OUTPUT«(timeout)» | ||
lizmat | good *, #perl6! | ||
FROGGS | hi lizmat | 07:55 | |
lizmat | FROGGS: %h.exists is supposed to be an internal method | ||
also, the :exists adverb can be applied to slices, whereas %h.exists only takes 1 parameter | |||
FROGGS | lizmat: ahh, okay | ||
lizmat | r: my %h=a=>1,b=>2; say %h<a b c d>:exists | 07:56 | |
camelia | rakudo 9faa30: OUTPUT«True True False False» | ||
FROGGS | dunno if I will remember it though :o) | ||
qiyong | JimmyZ: does p5 have any? | ||
lizmat | r: my %h=a=>1,b=>2; say %h<a b c d>:k # if you just want to know which keys exist | ||
camelia | rakudo 9faa30: OUTPUT«a b» | ||
FROGGS | qiyong: no, since there are no junctions | 07:57 | |
lizmat | r: my %h=a=>1,b=>2; say %h<a b c d>:v # if you just want to know the values of existing keys | ||
camelia | rakudo 9faa30: OUTPUT«1 2 » | ||
lizmat | hmmm… that feels wrong | ||
FROGGS | qiyong: but there are other ways to achieve that, see List::Utils or so | ||
r: my %h=a=>1,b=>2; say %h<a b c d>:v.perl | 07:58 | ||
camelia | rakudo 9faa30: OUTPUT«===SORRY!=== Error while compiling /tmp/_qYFvzGoiMTwo terms in a rowat /tmp/_qYFvzGoiM:1------> my %h=a=>1,b=>2; say %h<a b c d>:v⏏.perl expecting any of: pair value infix stopper infix or meta-inf… | ||
FROGGS | r: my %h=a=>1,b=>2; say (%h<a b c d>:v).perl | ||
camelia | rakudo 9faa30: OUTPUT«(1, 2, (), ())» | ||
lizmat | indeed, rakudobug | ||
JimmyZ | qiyong: no | 08:01 | |
qiyong | what the hell is adverb? | 08:04 | |
new invention? | |||
any is keyword or function? | |||
FROGGS | dagurval: it is about precedence, and I think it is not a bug at all | ||
lizmat | r: my %h=a=>1,b=>2; say %h<a b c d>:v.elems | 08:05 | |
camelia | rakudo 9faa30: OUTPUT«===SORRY!=== Error while compiling /tmp/FrZy9WBD0iTwo terms in a rowat /tmp/FrZy9WBD0i:1------> my %h=a=>1,b=>2; say %h<a b c d>:v⏏.elems expecting any of: pair value infix stopper infix or meta-in… | ||
lizmat | r: my %h=a=>1,b=>2; say (%h<a b c d>:v).elems | ||
camelia | rakudo 9faa30: OUTPUT«2» | ||
FROGGS | r: say &any.WHAT # any is a function | ||
camelia | rakudo 9faa30: OUTPUT«(Sub)» | ||
JimmyZ | r: say any.WHAT | 08:06 | |
camelia | rakudo 9faa30: OUTPUT«(Junction)» | ||
FROGGS | r: say any.WHAT.gist.subst(/\w/, 'f') # *g* | 08:07 | |
camelia | rakudo 9faa30: OUTPUT«(function)» | ||
JimmyZ | r: constant any = &any; say any.WHAT | 08:08 | |
camelia | rakudo 9faa30: OUTPUT«(Sub)» | ||
lizmat | r: my %h=a=>1,b=>2; say (%h<a b c d>:v).elems; say (%h<a b c d>:v).perl # TimToady: something feels incongruent here | ||
camelia | rakudo 9faa30: OUTPUT«2(1, 2, (), ())» | ||
lizmat | feels to me, the .perl should say "(1,2)', or am I seeing this wrong ? | ||
08:32
pernatiy left
08:33
Vlavv left
|
|||
moritz | you mean .elems shouldn't flatten? | 08:34 | |
08:34
berekuk left
08:35
qiyong left,
daxim joined,
berekuk joined
|
|||
lizmat | well, I'm not sure anymore… clearly showing 4 elements in .perl, and .elems saying 2, feels incongruent to me | 08:36 | |
dalek | ast: 1a63bc5 | moritz++ | / (3 files): some rakudo.jvm unfudges |
08:37 | |
08:38
denis_boyun joined
|
|||
jnthn | .elems implies flattening list context | 08:42 | |
.perl probably should not do so, but represent what it has, since if you did other operations on it (like .tree) you'd recover the structure. | 08:43 | ||
08:46
Vlavv joined
|
|||
lizmat tries to adjust to incongruity :-) | 08:46 | ||
masak | good antenoon, #perl6 | 08:50 | |
yoleaux | 01:36Z <diakopter> masak: unexpected in rakudo: say so "a" x 1_0 ~~ /a ** 1_0/ says False | ||
masak | r: say so "a" x 1_0 ~~ /a ** 1_0/ | ||
camelia | rakudo 9faa30: OUTPUT«False» | ||
masak | r: say so "a" ~~ /a ** 1_0/ | ||
camelia | rakudo 9faa30: OUTPUT«False» | ||
moritz | it's parsed as /[a ** 1] _0/ | 08:51 | |
masak | r: say so "a_0" ~~ /a ** 1_0/ | ||
camelia | rakudo 9faa30: OUTPUT«True» | ||
masak | moritz: yes. | ||
08:51
salv0 left
|
|||
jnthn | TimToady patched STD to get that right in the backlog :) | 08:51 | |
moritz | masak: and TimToady++ already patched it in STD | ||
masak | I think a fairly strong case could be made... OK, that settles it. | ||
jnthn | So just needs somebody to nab the patch :) | ||
masak submits rakudobug | |||
08:52
atroxaper joined
|
|||
atroxaper | Hello, #perl6 | 08:52 | |
FROGGS | hi atroxaper | ||
masak | hi atroxaper | ||
arnsholt | That looks like something that should be added to roast as well | ||
masak | today I got an email encouraging me to blog the t3 reviews. | ||
I'm going to set time aside for it this afternoon. | 08:53 | ||
lizmat finally gets a rakudo built after stubbing Set, KeySet, Bag, KeyBag in src/core/Any | 08:54 | ||
moritz | so it's a missing forward declaration? | 08:55 | |
lizmat | well, that was only one of the problems in the patch, apparently | ||
atroxaper | Does anybody know how can i call system utilit and print his aoutput to console in real time. I try to say qqx|$command|; # for axample i try to call git command. say qqx|"git clone url"| print git's asking of my password and doesn't print anything after that. | ||
Sorry for offtop | 08:56 | ||
moritz | atroxaper: the problem is likely that git asks for the password on the terminal directly, and not via STDIN/STDOUT | ||
atroxaper: can't you just call shell("git clone $url") ? | |||
08:57
bruges_ left
|
|||
atroxaper | moritz: ok. but is there some way to see output? | 08:57 | |
moritz | well, the user sees the output that way | ||
masak | r: say so "a" ~~ / a ** 1e0 / # what about this one? | ||
camelia | rakudo 9faa30: OUTPUT«False» | ||
masak | r: say so "ae0" ~~ / a ** 1e0 / # what about this one? | ||
08:57
donaldh joined
|
|||
camelia | rakudo 9faa30: OUTPUT«True» | 08:57 | |
08:57
bruges joined
|
|||
moritz | masak: I'd think it would make sense to require a word boundary after the number that follows a ** | 08:58 | |
08:58
dakkar joined
|
|||
moritz | number of reptitions are inherently integers, so I don't see the point of allowing floating-point numbers here | 08:58 | |
atroxaper | moritz: you are best! shell($command) works! Many thanks! | 08:59 | |
masak | moritz: I think I agree. | ||
moritz | \o/ | ||
atroxaper: and fwiw Perl 6 questions are never off-topic here :-) | |||
masak | and I've always felt that a warning in the case of A ** BCD parsing as [A ** B]CD -- would be very appropriate. | 09:00 | |
09:00
bruges_ joined
|
|||
moritz | +1 | 09:02 | |
09:02
bruges_ left
|
|||
donaldh | rakudo chdir emulation: github.com/rakudo/rakudo/pull/202 | 09:03 | |
09:03
bruges_ joined
|
|||
donaldh | this helps unblock panda | 09:04 | |
FROGGS | donaldh: I'm doing the lasts tests on windows/jvm | ||
donaldh | FROGGS: oh cool | ||
FROGGS | donaldh: do you had the chance to check for the failing chdir test? | ||
09:04
bruges left
|
|||
donaldh | FROGGS: on parrot? | 09:04 | |
or JVM ? | 09:05 | ||
FROGGS | donaldh: github.com/rakudo/rakudo/pull/202#...t-23376687 | ||
donaldh | FROGGS: I cannot test on XP | 09:06 | |
s/XP/Windows/ | |||
dalek | ast: 16fc9c2 | moritz++ | S (14 files): rakudo unfudges |
||
FROGGS | k, I will test your latest commit in a minute | ||
or maybe after the jvm tests | 09:07 | ||
jnthn | wow, lots of unfudge :) | 09:08 | |
moritz | lizmat++ implemented much of the changes that enabled those | 09:09 | |
jnthn | lizmat++ | ||
donaldh | oh, the chdir-emu PR also contains missing IO ops that allow us to unfudge slurp tests and pass most of the spurt tests. | ||
jnthn | donaldh: On JVM, yes? :) | ||
donaldh: Binary IO? | |||
donaldh | jnthn: yes. | ||
jnthn | \o/ | ||
donaldh++ | |||
JimmyZ | \o/ CQRS in perl6! | 09:10 | |
donaldh | jnthn: the JVM binary IO ops are already committed in nqp | 09:11 | |
jnthn | donaldh: nice | 09:12 | |
jnthn was a bit distracted for the last few days and only sorta followed what's been going on :) | |||
donaldh | work does that | ||
masak | ain't that the truth. | 09:13 | |
lizmat | jnthn: can a native ever be aliased to $_ ? | 09:16 | |
I'm asking because of "my int $a will begin { … }" | 09:17 | ||
09:17
sqirrel left
|
|||
lizmat | technically, adding a phaser for a native, would be no pb | 09:17 | |
but aliasing $_ might ? | |||
lizmat is now down to uncommenting single lines to see what breaks the build | 09:18 | ||
09:20
denis_boyun left
|
|||
jnthn | lizmat: It's the same issue was rw native things... | 09:21 | |
s/was/as/ | |||
lizmat | well, you mean it's NYI? or that it will be impossible ? | ||
jnthn | lizmat: NYI | ||
lizmat | ok, I can live with that | ||
:-) | 09:22 | ||
09:22
berekuk left
|
|||
jnthn | lizmat: Though note that you can't apply mixins to a native "container" as there is no container... | 09:22 | |
lizmat | yep, got that | ||
jnthn | I'm not sure what .WHAT should say on an rw native thing. We could just pretend it's the underlying native type. | ||
masak | lizmat: in a way, it's nice to see you bumping up against untried/unimplemented use cases. means you're breaking new ground, chopping away djungle for future explorers. | 09:23 | |
09:24
berekuk joined
|
|||
jnthn | Remember to roar while doing so... | 09:24 | |
09:25
mathw joined
09:30
sqirrel joined
|
|||
JimmyZ | jnthn++, CQRS is useful | 09:32 | |
jnthn | Wasn't my invention... :) | 09:33 | |
09:33
denis_boyun joined
|
|||
dalek | kudo/nom: e846e9b | (Donald Hunter)++ | src/core/IO.pm: Start using absolute paths for IO ops |
09:36 | |
rakudo/nom: 58964e0 | (Donald Hunter)++ | src/core/IO.pm: | |||
rakudo/nom: Make chdir slightly less naive. Write tests before elaborating. | |||
09:36
dalek left
|
|||
FROGGS | dalek: o/ | 09:36 | |
09:37
dalek joined,
ChanServ sets mode: +v dalek
|
|||
lizmat | one of my latest inventions: | 09:39 | |
method delete($a) is hidden_from_backtrace { | |||
X::Method::NotFound.new( method => 'delete', typename => self.^name ).throw; | |||
} | |||
:-) | |||
jnthn | um...why not just let the normal method caller do that? | ||
lizmat | a method telling the world it doesn't exist | ||
because it *does* exist because of inheritence, and it shouldn't | 09:40 | ||
jnthn | arrrrghghghghghgh | ||
No you can't do that!! | |||
That's ALWAYS wrong design. | |||
moritz | lizmat: this will be the most confusing errors ever | ||
*one of the | |||
lizmat | why? it will just state it doesn't exist? | 09:41 | |
moritz | but it exists | ||
and that's the problem | |||
jnthn | But it does exist | ||
lizmat | well, yes, | ||
moritz | you can check .^can that it exists | ||
lizmat | but Key.delete and Bag.delete are specced to not exist | ||
moritz | lizmat: it's much better to introduce an X::Immutable.new(method => 'delete').throw or so | ||
lizmat | tha's fine by me too :-) | 09:42 | |
moritz | well, seems the specs are inconsistent, happens | ||
lizmat | I was just going by the spec | ||
jnthn | Yes, "we don't support this operation" is very different from "method not found" | ||
lizmat | or rather, I was fixing a spectest | ||
ok, will fix :-) | |||
jnthn | But even this seems Liskov-dubious... | ||
What delete method is inherited? | |||
lizmat | Any.delere | ||
*delete | |||
moritz | putting .delete into Any is dubious, I'd say | ||
jnthn | Why does that exist? | 09:43 | |
r: Any.delete | |||
camelia | rakudo 9faa30: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in method delete at src/gen/CORE.setting:1443 in block at /tmp/PlumjvRbqu:1» | ||
jnthn | r: Any.delete('x') | ||
camelia | rakudo 9faa30: ( no output ) | ||
jnthn | r: Any.new.delete('x') | ||
moritz | r: say Any.delete('x') | ||
camelia | rakudo 9faa30: ( no output ) | ||
rakudo 9faa30: OUTPUT«Nil» | |||
lizmat | r: my %h; my $b := %h<a><b>; say %h; $b=42; say %h | ||
camelia | rakudo 9faa30: OUTPUT«().hash("a" => {"b" => 42}).hash» | ||
lizmat | well, actually, that's Any.exists | 09:44 | |
I also needed Any.delete for that... | |||
brb | |||
jnthn doesn't see where... | |||
09:46
itz left
|
|||
lizmat | ok, will try to remove Any.delete after I fixed this Set/Bag business | 09:49 | |
or tell you guys why I couldn't | |||
09:49
itz joined
|
|||
jnthn | exists and delete in Any do feel a little odd to me... | 09:49 | |
lizmat | exists *is* needed for %h<a><b> | 09:50 | |
and binding to that | |||
jnthn | How so? | ||
(where do we call .exists, that is...) | |||
lizmat | because bind_key does an exists | ||
moritz | r: my $x; $x<a><b> = 3; say $x | ||
camelia | rakudo 9faa30: OUTPUT«("a" => {"b" => 3}).hash» | ||
jnthn | Where do we call bind_key? | ||
lizmat | r: my $x; $x<a><b> := 3; say $x | 09:51 | |
camelia | rakudo 9faa30: OUTPUT«("a" => {"b" => 3}).hash» | ||
moritz | jnthn: ah, you mean we could viviy the hash before calling bind_key | ||
jnthn | Right, that calls bind_key... | ||
moritz: Not meaning anything yet, just trying to understand... :) | |||
lizmat | patches welcome :-) | ||
jnthn | I'd thought exists and delete had been put in Any for :exists/:delete related reasons... | ||
lizmat | it was inspired by spectest todo/skips | 09:52 | |
nope, for that they are not needed | |||
well, maybe | |||
hmmm | |||
jnthn | Right, I'd expected we could get that out of :U candidates in the postcircumfixes... | ||
lizmat | maybe that can wait until I made subs of them ? | 09:53 | |
r: my %h; say %h<a><b>:delete # this is maybe why I needed Any.delete | |||
camelia | rakudo 9faa30: OUTPUT«Nil» | ||
jnthn | lizmat: Yeah, perhaps so. I just worry when our core classes are breaking Liskov so blatantly... | 09:54 | |
lizmat | the alternative would have been to add a *lot* of candidates for the :U case for all of the adverbs | 09:55 | |
or to fix each candidate up | |||
so that it would accept U: as well | |||
this was a much simpler solution | 09:56 | ||
jnthn | Yeah, that's the way I'd have leaned towards... | ||
lizmat | that would be an extra .defined check on *every* [] and {} access | 09:57 | |
moritz | maybe make that an nqp::defined check or so, that's fairly cheap | ||
lizmat | perhaps when they're subs, we can make the extra candidates | ||
jnthn | :U is .DEFINITE, not .defined | 09:58 | |
As is :D | |||
That boils down to nqp::isconcrete, which is cheap. | |||
09:58
berekuk left
|
|||
jnthn | (flag check on Parrot and Moar, instanceof in JVM) | 09:58 | |
lizmat | if that's the way you think I should go, I will | ||
lizmat is finally able to uncomment code and still build, yeah! | 09:59 | ||
jnthn | lizmat: It feels righter, but as you say it doesn't deal with the other case where you needed .exists... | ||
lizmat | my mind is now filled with Set and Bag, I will revisit this later, ok? | ||
jnthn | sure, no hurry :) | 10:00 | |
And I'm fine if this waits until the method => sub move. | |||
lizmat | what should be better: nqp::isconcrete or .DEFINITE ? | ||
10:00
denis_boyun left
|
|||
lizmat | performance wise | 10:00 | |
or which would you prefer :-) | 10:01 | ||
jnthn | nqp::isconcrete, though $x.DEFINITE is just nqp::p6bool(nqp::isconcrete($x)) really | ||
lizmat | but I would have to wrap nqp::isconcrete to be able to use it as a conditional, no? | 10:02 | |
10:02
rindolf joined
|
|||
jnthn | no | 10:03 | |
it returns a native int. | |||
0 or 1 | |||
You can use that directly in a conditional. | |||
if nqp::isconcrete(x) { ... } # totally fine | |||
lizmat | cool | 10:04 | |
timotimo | heyo :) | 10:05 | |
masak | heyo, timotimo | 10:06 | |
10:07
xenoterracide left
|
|||
donaldh | nqp: nqp::copy('a','b') | 10:07 | |
camelia | nqp: OUTPUT«Class 'File' not foundcurrent instr.: '' pc 40 ((file unknown):39) (/tmp/chJDn33FTJ:10)» | ||
timotimo | ... wat? :) | ||
oh, of course | |||
jnthn | no, still wat :P | 10:08 | |
donaldh | nqp-jvm: nqp::copy('a','b') | ||
camelia | nqp-jvm: OUTPUT«No registered operation handler for 'copy' in compile_op in as_jast in as_jast in <anon> in compile_all_the_stmts in as_jast in as_jast in <anon> in compile_all_the_stmts in as_jast in as_jast in <anon> in compile_all_the_stmts in <anon> in … | ||
jnthn | I think nqp-jvm here is hopelessly out of date, fwiw. | ||
donaldh | ah | ||
nwc10 | is there an easy way to ask nqp-jvm its version? | ||
timotimo | find a recent commit to nqp and see if it is in? ;) | 10:09 | |
jnthn | nwc10: I think it's actually old enough that it's from the nqp-jvm-prep repo! | ||
10:09
ssutch left
|
|||
donaldh | rakudo copy silently fails for invalid params on JVM. | 10:09 | |
nwc10 | nostagia! | ||
is there any way to ask it to upgrade itself? | 10:10 | ||
donaldh | I think it is because nqp::copy returns -1 on JVM but maybe throws an exception on parrot ? | ||
jnthn | donaldh: I suspect we want it to be consistent there. | 10:15 | |
10:17
salv0 joined
10:20
SamuraiJack joined,
firstfire joined
10:23
SamuraiJack__ left
|
|||
donaldh rebuilds nqp on parrot | 10:23 | ||
r: copy('a', 'b') | 10:45 | ||
camelia | rakudo e0b2af: OUTPUT«copy is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting:2 in sub copy at src/RESTRICTED.setting:13 in block at /tmp/svvN6_WzMO:1» | ||
donaldh golfs alone | 10:46 | ||
10:49
denis_boyun joined
10:58
atroxaper left
11:04
clairence joined
11:07
denysonique joined,
berekuk joined
|
|||
denysonique | Does perl 6 have something like 3->times { } | 11:07 | |
? | |||
e.g. ruby: 3.times { print 'foo ' } | |||
timotimo | no, but you can build it yourself | 11:08 | |
lizmat | r: say "for" for ^3 | ||
camelia | rakudo e0b2af: OUTPUT«forforfor» | ||
lizmat | ? | ||
timotimo | r: sub times($num, *&block) { block for ^$num }; 5.× { say "test" } | ||
camelia | rakudo e0b2af: OUTPUT«===SORRY!=== Error while compiling /tmp/lepeCFnIlKUnexpected block in infix position (two terms in a row, or previous statement missing semicolon?)at /tmp/lepeCFnIlK:1------> *&block) { block for ^$num }; 5.× ⏏{ say "test" … | ||
moritz | r: sub times($num, *&block) { block for ^$num }; 5.×: { say "test" } | 11:09 | |
timotimo | r: sub times($num, *&block) { block for ^$num }; 5.×: { say "test" } | ||
camelia | rakudo e0b2af: OUTPUT«testtesttesttesttest» | ||
timotimo | :) | ||
moritz | :-) | ||
lizmat | .× is not really .times, but yeah | ||
timotimo | r: sub times($num, *&block) { block for ^$num }; 10.×: { say "test"; last if (True, False, False, False).pick } | ||
camelia | rakudo e0b2af: OUTPUT«testtesttest» | 11:10 | |
11:10
firstfire left
|
|||
timotimo | even works with control exceptions | 11:10 | |
lizmat: right, but now that i know it's possible to do it like this, you can easily MONKEY_TYPING-enhance Int (or Cool if you must) | |||
(except method caches are not properly invalidated when using MONKEY_TYPING ...) | |||
lizmat | probably, Int, but yeah | ||
timotimo | denysonique: does that help you? | 11:12 | |
denysonique | timotimo: yes thanks | ||
timotimo: I was wondering if something like this could become a feature of perl | |||
without defining it | 11:13 | ||
moritz | why? | ||
denysonique | e.g. feature of stdlib | ||
moritz | we already have a very easy way to iterate $n times | ||
for ^$n { ... } | |||
compared to $n.each: { ... } | |||
11:13
clairence left
|
|||
moritz | I don't see the big advantage | 11:13 | |
it's also questionable wether numbers should implement control flow | 11:14 | ||
masak | denysonique: if you like it so much, just define a subroutine. | 11:15 | |
GlitchMr | for ^3 { } | ||
moritz | s/each/times/ | ||
masak | r: sub upto($N) { 0 ..^ $N }; for upto(7) { say $_ } | ||
camelia | rakudo e0b2af: OUTPUT«0123456» | ||
JimmyZ | well, it's easy to be a feture | ||
write it ,submit to panda | |||
timotimo | i don't see a problem with putting it into a module. | ||
i don't think it should be in "core" | 11:16 | ||
masak | we already have it in core: it's called prefix:<^> | ||
JimmyZ | then, use feature 'times'; | ||
GlitchMr | Perl 6 also has perfectly fine 3.times { print 'foo ' } | ||
timotimo | whereby i mean "available without a 'use'" | ||
GlitchMr | It's called either print 'foo ' x 3, or for ^3 { print 'foo ' } | ||
11:16
brrt joined
|
|||
JimmyZ | r: print 'foo ' x 3 | 11:17 | |
camelia | rakudo e0b2af: OUTPUT«foo foo foo » | ||
GlitchMr | for ^3 is the "repeat" you want. | ||
JimmyZ | r: print 3 x 'foo ' | ||
camelia | rakudo e0b2af: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏foo ' (indicated by ⏏) in method Int at src/gen/CORE.setting:11524 in method Int at src/gen/CORE.setting:5108 in sub infix:<x> at src/gen/CORE.setting:1378 in sub infix… | ||
JimmyZ | r: print 'foo ' for ^3 | ||
camelia | rakudo e0b2af: OUTPUT«foo foo foo » | ||
GlitchMr | Actually, "base-10 number must begin with valid digits or '.'" | 11:18 | |
That's interesting. | |||
r: print 'foo ' x '3' | |||
camelia | rakudo e0b2af: OUTPUT«foo foo foo » | ||
GlitchMr | r: print 'foo ' x '3.5' | ||
camelia | rakudo e0b2af: OUTPUT«foo foo foo » | ||
GlitchMr | So, you can repeat with dots? | ||
JimmyZ | r: print 'foo ' x '3i' | 11:19 | |
camelia | rakudo e0b2af: OUTPUT«Can not convert 0+3i to Int: imaginary part not zero in method Int at src/gen/CORE.setting:11524 in method Int at src/gen/CORE.setting:9573 in method Int at src/gen/CORE.setting:5108 in sub infix:<x> at src/gen/CORE.setting:1378 in sub infix:<x> at src/ge… | ||
JimmyZ | r: print 'foo ' x '3+2i' | ||
camelia | rakudo e0b2af: OUTPUT«Can not convert 3+2i to Int: imaginary part not zero in method Int at src/gen/CORE.setting:11524 in method Int at src/gen/CORE.setting:9573 in method Int at src/gen/CORE.setting:5108 in sub infix:<x> at src/gen/CORE.setting:1378 in sub infix:<x> at src/ge… | ||
JimmyZ | r: print 'foo ' x '3+0i' | ||
camelia | rakudo e0b2af: OUTPUT«foo foo foo » | ||
JimmyZ | r: { print 'foo '} x '3+0i' | 11:22 | |
camelia | rakudo e0b2af: ( no output ) | ||
timotimo | is CQRS a good pattern for implementing event stores? :3 | 11:23 | |
CQRS with an event store* | 11:24 | ||
JimmyZ | I think so | ||
11:24
sqirrel left
|
|||
timotimo failed trolling apparently | 11:25 | ||
JimmyZ | I can got a Perl 6 one easily :P | 11:26 | |
11:27
pernatiy joined
11:35
denis_boyun left
12:00
skids left
12:02
kbaker joined
12:08
denis_boyun joined
|
|||
arnsholt | *sigh* Programming in Python is just annoying enough to make me grumpy | 12:12 | |
lizmat is grumpy from uncommenting lines all the time, make, fail, repeat | 12:15 | ||
tadzik | programming is one thing, but that toolchain is just bad | 12:16 | |
sorry excuses for NYTProf and Devel::Cover | |||
lizmat | on that thought: can we pipe --profile output to NYTProf already ? | ||
jnthn | The stuff it outputs can be viewed in kcachegrind, I believe. | 12:17 | |
arnsholt | Perhaps the most annoying right now is just the fact that def is an assignment, not a declaration. That way all the little utility functions have to live at the top of the file | ||
Rather than at the bottom, where they belong | |||
moritz | speaking of NYTProf, the flamegraph feature really rocks | 12:18 | |
tadzik | didn't see it yet | 12:20 | |
I don't remeber the last time I worked with Perl 5 :| | |||
well, to the extent of having to do profiling | |||
moritz | tadzik: blog.timbunce.org/2013/04/08/nytpro...precision/ has an example | 12:21 | |
(and in the generated HTML the bars have a hover tooltip with the complete routine name + time spent) | |||
tadzik | wow, interesting to see that in practice | 12:22 | |
jnthn | ooh, pretty! | 12:23 | |
moritz | tadzik: I already had a good use for them; we had a case where a slowdown between two profiles occurred, and it was visually obvious where it came from | 12:24 | |
tadzik | nice | ||
12:24
berekuk left,
jnap joined
12:25
berekuk joined
12:27
grondilu joined
|
|||
moritz | (it was also obvious from the list of exclusive call times, where a routine changed from ~0s to 15.5s) | 12:29 | |
ok, it's such a "nice" story, I simply have to tell it :-) | |||
OTRS has a feature where, for reasons of extensibility, classes are dynamically loaded, and added as superclasses to the current class | 12:30 | ||
tadzik | woosh | ||
;) | |||
jnthn | wait what? | ||
:) | |||
moritz | wait for the really weird part :-) | 12:31 | |
lizmat has finally built something that can be spectested | |||
I know, it's weird :-) | |||
moritz | the really weird part is that's done INSIDE THE CONSTRUCTOR | ||
and it does basically require $modulepath; push @ISA, $class; | |||
and that for the template object, which is instantiated about 1 to 5 times per request | 12:32 | ||
lizmat | cycling& | ||
moritz | so, there are about 10 such dynamically loaded classes | ||
and 3 such dynamic loadings per request | 12:33 | ||
so @ISA grows by 30 elements per request | |||
and of course we don't start a new process per request | |||
so after two hours, @ISA is large that each requests spends more than 1s just pushing to @ISA | |||
jnthn | o. m. g. | 12:34 | |
moritz | bugs.otrs.org/show_bug.cgi?id=9686 | ||
arnsholt | Whoops! =D | ||
jnthn | I was about to say, isn't there a class vs instance confusion there... :) | ||
moritz | jnthn: just a slight one :-) | ||
and it took me about 16 hours to locate the problem | |||
because the problem was just "OTRS gets slower, until we restart apache" | 12:35 | ||
jnthn | argh | ||
tadzik | one once said, "other will fix memory leaks, I'll just restart apache" | ||
jnthn | .oO( Oh That's Really "Special" ) |
||
moritz | and first I checked things like cache response times, DB response times, system load etc. | ||
nwc10 | why does bugs.otrs.org run on bugzilla, and not on OTRS itself? | 12:37 | |
nwc10 finds this strange. | 12:38 | ||
www.bestpractical.com/rt/issues.html -- Unsurprisingly, we use RT itself to track bugs and feature requests for RT. | |||
FROGGS | hmmm, I fear we have heisenbugs now in rakudo@parrot | ||
jnthn | nwc10: It got too slow after a while :P | ||
tadzik | why does rakudo.org use php? :P | ||
moritz | nwc10: I wondered too | ||
FROGGS | when I have my Windows 7 vm running an spectesting rakudo on linux, some tests of t/spec/S02-magicals/ abort | ||
like args.t and env.t | |||
(when using TEST_JOBS=4) | 12:39 | ||
12:42
pdcawley left
|
|||
FROGGS | r: slurp "does-not-exist"; say "alive"; say $! | 12:47 | |
camelia | rakudo e0b2af: OUTPUT«Unable to open filehandle from path '/home/p6eval/does-not-exist': No such file or directory(2) in method open at src/gen/CORE.setting:12519 in method open at src/gen/CORE.setting:12508 in method slurp at src/gen/CORE.setting:12628 in sub slurp at src/gen/C… | ||
FROGGS | star: slurp "does-not-exist"; say "alive"; say $! | ||
camelia | star 2013.08: OUTPUT«Unable to open filehandle from path 'does-not-exist': No such file or directory(2) in method open at src/gen/CORE.setting:12479 in method open at src/gen/CORE.setting:12469 in method slurp at src/gen/CORE.setting:12586 in sub slurp at src/gen/CORE.setting:12… | ||
12:54
jnap left
|
|||
dalek | ast: 9f12744 | moritz++ | S02-types/undefined-types.t: two more rakudo unfudges |
12:55 | |
moritz | hopefully LHF: get tools/autounfudge.pl working with rakudo-jvm | ||
12:55
jnap joined
13:01
ajr joined,
ajr is now known as Guest50871,
Guest50871 is now known as ajr_
13:11
PacoAir joined
13:23
kaare_ joined
13:26
pmurias joined
|
|||
pmurias | fun nqp-parrot bug of the day nqp::escape doesn't work with literal arguments ;) | 13:27 | |
nqp: say(nqp::escape("foo")) | |||
camelia | nqp: OUTPUT«error:imcc:The opcode 'escape_s_sc' (escape<2>) was not found. Check the type and number of the arguments in file '(file unknown)' line 155524891» | ||
grondilu | nqp: my $x := "foo"; say(nqp::escape($x)) | 13:28 | |
camelia | nqp: OUTPUT«foo» | ||
jnthn | Oops :) | ||
It's signature probably needs tweaking in QSATOperations. | 13:29 | ||
An S where there's an s | |||
13:34
skids joined
13:37
btyler joined
|
|||
pmurias | jnthn: I'm fixing that atm | 13:38 | |
jnthn | pmurias++ | ||
pmurias: Guess you're improving our test coverage again? :D | |||
FROGGS | t/spec/S32-io/IO-Socket-INET.t hangs on my linux box when running with TEST_JOBS=4 (spectests), has anybody the same issue? | 13:46 | |
moritz | FROGGS: doesn't hang here | 13:47 | |
FROGGS | hmmm | ||
moritz: what kernel do you use? | |||
I suspect that could make a difference | |||
moritz | FROGGS: uname -a says Linux mlenz-workstation 3.5.0-36-generic #57-Ubuntu SMP Wed Jun 19 15:10:49 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux | 13:48 | |
FROGGS | k, I have a 3.8, I'll switch to 3.5 and see what happens | ||
13:48
dalek left
13:49
dalek joined,
ChanServ sets mode: +v dalek,
dalek left
13:50
dalek joined,
ChanServ sets mode: +v dalek,
FROGGS left
|
|||
dalek | ast: f7dd7e8 | moritz++ | integration/ (2 files): rakudo.jvm unfudges |
13:51 | |
13:51
bloonix joined
|
|||
flussence untravels | 13:54 | ||
I didn't get anything I planned to done on the way, but I did fix surrogate pairs in JSON::Tiny instead | |||
moritz | \o/ | ||
the one thing missing for feature completeness | |||
flussence | and I didn't have niecza to test on so it's probably broken right now :) | 13:55 | |
moritz | well, there's another thing, but I won't implement it | ||
iirc json has an arbitrary limit on nesting depths | |||
13:57
REPLeffect left
14:00
bluescreen10 joined
14:02
bluescreen10 left
14:03
bluescreen10 joined
|
|||
PerlJam | moritz: I'm pretty sure that JSON-the-standard does not have any arbitrary limitation on nesting depths. But certianly, a particular implementaiton of JSON may. | 14:05 | |
14:19
FROGGS joined
14:25
grondilu left
|
|||
moritz | PerlJam: you are right. www.ietf.org/rfc/rfc4627.txt?number=4627 says An implementation may set limits on the maximum depth of nesting. | 14:25 | |
14:26
hummeleBop left
14:27
hummeleBop joined
14:31
nebuchadnezzar left,
nebuchadnezzar joined
14:33
risou_awy is now known as risou,
Maddingu1 joined
|
|||
flussence | whoops, no wonder the JSON tests were failing on my desktop... had a branch checked out that's almost 2 months old | 14:35 | |
dalek | p: 93aea23 | (Pawel Murias)++ | src/vm/parrot/QAST/Operations.nqp: Fix nqp::escape("literal"). |
14:36 | |
p: db474ef | (Pawel Murias)++ | t/nqp/59-nqpop.t: Add test for nqp::escape. |
|||
14:43
FROGGS left
14:50
Maddingu1 is now known as Maddingue,
FROGGS joined
14:58
benabik left
15:00
brrt left,
ajr_ left,
ajr joined
15:01
ajr is now known as Guest88436,
Guest88436 is now known as ajr_
|
|||
pmurias | how can I get the unicode value of a character in nqp? | 15:01 | |
jnthn | nqp::ord | 15:02 | |
15:04
FROGGS left,
zakharyas left
15:05
benabik joined
15:07
FROGGS joined
15:08
berekuk left
15:11
berekuk joined
|
|||
colomon | hmmm…. when I throw a larger collection of ABC tunes at Rakudo, it fails under both Parrot and JVM (maybe bug of mine?) but is 5x faster on JVM up to the fail. | 15:16 | |
hmmm… whereas on Niecza, it runs a bit then dies with a completely different error. :\ | 15:18 | ||
15:19
dmol left
|
|||
jnthn | That might be your fault too :P | 15:21 | |
colomon | oh, absolutely | ||
jnthn | :) | ||
colomon | In the case of "fault" here, I meant ABC bugs, not compiler bugs | ||
15:21
EvanTeitelman joined
|
|||
colomon | I think it's been a while since I threw this larger file at the ABC code. | 15:22 | |
and I've made quite a few changes to the ABC stuff in the meantime. | |||
though of course, if it were a compiler issue, that might be my fault to. In all of the cases. ;) | 15:23 | ||
15:23
REPLeffect joined
|
|||
colomon | looks like it's the dreaded tuplet parser in the grammar. | 15:24 | |
diakopter | jnthn: did you see the jvm classfile problem in the backlog? | ||
colomon | ABC grammar | ||
jnthn | diakopter: Yes, wasn't sure where that was coming from... | ||
colomon | (in the niecza case) | ||
masak .oO( why would you parse dreaded tuplets? ) :P | 15:25 | ||
15:25
bluescreen10 left
|
|||
jnthn | 'cus tuplets think dreads are trendy | 15:26 | |
colomon | :p | ||
arnsholt | jnthn: What's AUTOGEN supposed to do? | 15:28 | |
Looks like something's missing when PARAMETERIZE_TYPE gets called? | |||
jnthn | arnsholt: Context? | 15:29 | |
arnsholt | Trying to fix Zaovlaj | 15:30 | |
I twiddled the code a bit, and now the error message is "Cannot call 'AUTOGEN'; none of these signatures match:\n:(CStr : Str:D $encoding, Mu *%_)\nin method AUTOGEN at src/gen/CORE.setting:510\n..." | 15:31 | ||
15:36
FROGGS left
|
|||
pmurias | nqp: say("\a") | 15:38 | |
camelia | nqp: OUTPUT«Unrecognized backslash sequence: '\a' at line 2, near "\\a\")"current instr.: 'panic' pc 14693 (src/stage2/gen/NQPHLL.pir:5223) (src/stage2/gen/NQPHLL.nqp:279)» | ||
pmurias | nqp: say(nqp::escape("\x1b")) | ||
camelia | nqp: OUTPUT«error:imcc:The opcode 'escape_s_sc' (escape<2>) was not found. Check the type and number of the arguments in file '(file unknown)' line 42» | ||
pmurias | nqp: my $str := "\x1b";say(nqp::escape($str)); | 15:39 | |
camelia | nqp: OUTPUT«\e» | ||
pmurias | nqp: my $str := "\x07";say(nqp::escape($str)); | ||
camelia | nqp: OUTPUT«\a» | ||
pmurias | jnthn: nqp doesn't accept \a in literals yet nqp::escape emits it | ||
15:40
berekuk left
|
|||
masak | pmurias: that could still be perfectly legal. sounds like a case of Postel's to me. | 15:40 | |
hm, unless the output of nqp::escape is explicitly meant to function as literals. | |||
colomon | jnthn: just found a longer ABC file that still works. jakudo is 8x faster than parrakudo on it. | 15:41 | |
(total jakudo running time 88 seconds, and that's slowed down by a zillion "Passing an object candidate to Mu.bless is deprecated" messages.) | 15:44 | ||
oh! | |||
pmurias | masak: I seems more a case of reverse Postel we emit something we don't accept | ||
colomon | that was with garbage collection counted. clock time was 53 seconds | 15:45 | |
masak | pmurias: yes. dangit! this is the second time this year I make this mistake. | ||
evidently I have my inner Postel reversed somehow. | 15:46 | ||
jnthn | arnsholt: That's...very weird. I guess it's the proto auto-generation | 15:47 | |
.oO( Going Postel ) |
15:48 | ||
arnsholt: I've never see it go wrong that way, however... | |||
TimToady | .oO( Postel Coming ) |
||
15:48
kaleem left
|
|||
jnthn | colomon: 88 seconds is still a while :) | 15:51 | |
colomon | jnthn: I'm not saying you can stop making improvements | ||
;) | |||
jnthn | :) | ||
15:51
xenoterracide joined
|
|||
colomon | jnthn: note that was 88 processor-seconds, wall-clock was 53 seconds | 15:52 | |
I forgot the distinction was important under JVM | |||
jnthn | ah :) | ||
yes | |||
arnsholt | jnthn: Apply gist.github.com/arnsholt/6379906 to an up-to-date Zavolaj and Rakudo and you should get the error I'm seeing | ||
colomon | jnthn: anyway, saw a chromatic tweet being a dick about the JVM startup time, and wanted to emphasize again that jakudo crushes parrakudo on real world tasks that are big enough to get by that startup penalty. | 15:54 | |
jnthn | arnsholt: Trying to box to a CStr[$encoding] is extremely dubious, fwiw. | 15:56 | |
arnsholt: Because that gives you a CurriedRoleHOW-based type, not a class | 15:57 | ||
And you can't instantiate a role, and the box op is too low level to pun for you. | |||
15:58
abnorman joined
|
|||
jnthn | colomon: Right, and that's not specific to our use of JVM, it's just the nature of the beast. | 15:59 | |
colomon | jnthn: understood | ||
jnthn | Not that we can't make startup time better, but it never was going to be a Rakudo on JVM strength. | ||
colomon | that's MoarVM's bailiwick, eh? ;) | 16:00 | |
jnthn | We should do rather better there, yes. :) | ||
*rather | 16:01 | ||
MoarVM is smart enough to allocate deserialized objects directly in the old generation since they'll probably live for the whole program, for example... | |||
TimToady wonders if anyone has tried bringing unexec functionality to JVM... | 16:03 | ||
colomon | unexec? | 16:04 | |
TimToady | or undump | ||
colomon | ah | ||
TimToady | startup a process, load everything in you want, do a core dump, transform that to an executable | ||
16:05
kbaker left
16:06
risou is now known as risou_awy,
dmol joined
|
|||
TimToady | looks like nobody's done it yet | 16:08 | |
too many "frameworks" with untrackable external state, seems | 16:09 | ||
arnsholt | jnthn: Right, right. That's likely the previously accidentally working bit then. Thanks! | 16:10 | |
16:10
ajr_ left
16:12
domidumont left
|
|||
colomon just realized his C++ bug is because OS X's GCC is no longer GNU | 16:14 | ||
geekosaur | mmm, -fheinous-gnu-extensions | 16:15 | |
colomon | geekosaur: actually, the problem is because I was using #ifdef __GCC__ to make sure we weren't on Windows | ||
actually, #ifdef __GNU__ | 16:17 | ||
looks like I used #ifdef __GNUC__ elsewhere in the code? | |||
pmurias | jnthn: re nqp::escape should it mangle unicode characters? | 16:20 | |
diakopter | jnthn: "coming from"? | ||
colomon | __GNUC__ it is | ||
diakopter | the repro case was there | ||
pmurias | nqp: say(nqp::escape("¢")) | 16:21 | |
camelia | nqp: OUTPUT«error:imcc:The opcode 'escape_s_sc' (escape<2>) was not found. Check the type and number of the arguments in file '(file unknown)' line 39» | ||
jnthn | diakopter: Yes, I more meant if it's a malformed constant pool entry or just malformed bytecode in general... | ||
pmurias: I don't think the JVM one does, at least... | 16:22 | ||
pmurias | it doesn't | ||
the parrot one mangles | |||
nqp: my $cent:="¢";say(nqp::escape($cent)) | |||
camelia | nqp: OUTPUT«\x{a2}» | ||
jnthn | pmurias: I don't immediately have a good argument either way. I think it's mostly used for debugging output today anyway... | 16:24 | |
diakopter | jnthn: I don't know the difference of what you're asking/wondering... it's probably a bug in that assembler library | 16:25 | |
jnthn | diakopter: aye, I was just speculating on the nature of it | ||
pmurias | jnthn: it's used for escaping string while targeting parrot | 16:27 | |
jnthn | pmurias: Ah... | ||
pmurias | and I'm trying to use it for escaping string while targeting js | ||
jnthn | pmurias: Yeah, I remember now. I think that it needs to stay the way it is at lest on Parrot... | ||
*least | 16:28 | ||
16:29
Ayiko joined
|
|||
pmurias | doe we have a infix:<x> equivalent on parrot? | 16:29 | |
jnthn | Whatever nqp::x is mapped to, I guess | 16:30 | |
pmurias | meant on nqp ;) | 16:31 | |
16:35
berekuk joined
|
|||
moritz | nqp: say(nqp::x('abc', 5)) | 16:35 | |
camelia | nqp: OUTPUT«abcabcabcabcabc» | ||
16:38
kbaker joined
|
|||
pmurias | Parrot_str_escape docs are incorrect and crazy | 16:38 | |
diakopter | s/_str_escape// | 16:39 | |
s/_str_escape docs// | |||
jnthn | diakopter: Your grammar are disappointing :P | ||
diakopter | s/grammar// | 16:40 | |
16:42
domidumont joined
|
|||
[Coke] | niecza failures down from 1999 yesterday to 255 today | 16:46 | |
colomon | \o/ | 16:47 | |
16:49
SamuraiJack_ joined
|
|||
pmurias | who is working on niecza nowdays? | 16:49 | |
16:50
Ayiko left
16:51
yoleaux left,
SamuraiJack left
|
|||
[Coke] realizes he can run visualvm against a spec test run these days. | 16:52 | ||
pmurias: colomon | 16:53 | ||
colomon | in theory | ||
very loose theory this summer | |||
but I'm planning on taking a look at changing bless this weekend | |||
[Coke] | I didn't mean to imply a level of commitment. ;) | 16:54 | |
16:55
nebuchadnezzar left,
nebuchadnezzar joined
|
|||
colomon | I should be committed, is that what you're saying? ;) | 16:55 | |
jnthn | No, just commit ;) | 16:56 | |
PerlJam | btw, speaking of neicza ... has anyone seen sorear lately? I haven't noticed him in a long while (since right after YAPC::NA even) | 16:58 | |
diakopter | .seen sorear | 16:59 | |
jnthn | Last time I saw him here, he mentioned something about lots of $dayjob | ||
diakopter | preflex: seen sorear | ||
preflex | sorear was last seen on #perl6 10 days, 12 hours, 52 minutes and 28 seconds ago, saying: sweet | ||
diakopter | abnorman: yer fault ;) | ||
commutativitiness & | 17:00 | ||
colomon | r: say (4 * 60 + 48 ) / 36 | 17:01 | |
camelia | rakudo e0b2af: OUTPUT«8» | ||
colomon | oooo, exactly 8x faster. :) | 17:02 | |
diakopter | 8x as fast... 7x or 700% faster :PPP | ||
colomon | fair enough | 17:03 | |
diakopter | .oO( enuf fayryes to go around ) |
17:04 | |
17:06
panchiniak joined
|
|||
[Coke] | f | 17:07 | |
17:07
virtualsue joined
17:08
FROGGS joined
17:12
Ayiko joined
17:15
dakkar left
17:17
berekuk left,
berekuk joined
17:18
yoleaux joined,
ChanServ sets mode: +v yoleaux
17:20
gdey joined
17:21
BooK_ left,
abnorman left,
xenoterracide left,
xenoterracide joined
17:24
stevan_ left
17:27
stevan__ joined,
xenoterracide left
17:28
berekuk left,
yoleaux left
17:32
JoaquinFerrero left
17:34
donaldh left,
berekuk joined
|
|||
dalek | kudo-star-daily: bc65cfd | coke++ | log/version.log: today (automated commit) |
17:35 | |
kudo-star-daily: 6871921 | coke++ | log/version.log: today (automated commit) |
|||
kudo-star-daily: 5debe70 | coke++ | log/version.log: today (automated commit) |
|||
[Coke] | ... man, that just keeps getting more screwed up. | 17:36 | |
moritz | yes, that looks very screwed up | 17:37 | |
[Coke] | started happening post release. still need to get back to it. :| | 17:38 | |
17:38
panchiniak left
17:39
abnorman joined
|
|||
[Coke] | -> offline | 17:39 | |
17:48
pernatiy left,
pecastro left
17:54
stevan__ left,
jaldhar left,
jaldhar joined
17:56
denis_boyun left
17:59
stevan_ joined
18:01
PZt left
18:03
daxim left
|
|||
FROGGS | the chdir emulation doesnt play well with require :o( | 18:04 | |
gist.github.com/FROGGS/ebdc0c7809d1b2902533 | |||
18:05
jaldhar left
18:08
berekuk left
18:10
berekuk joined
18:11
yoleaux joined,
ChanServ sets mode: +v yoleaux
|
|||
moritz | it's an all-or-nothing approach, and we're somewhere at 80%... | 18:12 | |
FROGGS is testing a fix | 18:14 | ||
18:14
SamuraiJack__ joined
18:18
SamuraiJack_ left
|
|||
FROGGS | r: chdir "t"; say $*CWD | 18:20 | |
camelia | rakudo e0b2af: OUTPUT«IO::Path</home/p6eval/t>» | ||
FROGGS | r: chdir "t"; say $*CWD; say nqp::gethllsym('perl6', 'PROCESS') | ||
camelia | rakudo e0b2af: OUTPUT«IO::Path</home/p6eval/t>(PROCESS)» | ||
FROGGS | r: chdir "t"; say $*CWD; say nqp::gethllsym('perl6', 'PROCESS')<$CWD> | ||
camelia | rakudo e0b2af: OUTPUT«IO::Path</home/p6eval/t>(Any)» | 18:21 | |
FROGGS | r: chdir "t"; say $*CWD; say nqp::gethllsym('perl6', 'PROCESS')<$*CWD> | ||
camelia | rakudo e0b2af: OUTPUT«IO::Path</home/p6eval/t>(Any)» | ||
FROGGS | hmm | ||
r: chdir "t"; say $*CWD; say nqp::gethllsym('perl6', 'PROCESS').WHO | 18:22 | ||
camelia | rakudo e0b2af: OUTPUT«IO::Path</home/p6eval/t>("\$FATAL" => Bool::False, "\&cwd" => sub cwd() { ... }, "\&chdir" => sub chdir() { ... }, "\$IN" => IO::Handle.new(path => "-", ins => 0, chomp => Bool::True), "\$OUT" => IO::Handle.new(path => "-", ins => 0, chomp => Bool::True), "\$ERR" … | ||
FROGGS | r: chdir "t"; say $*CWD; say nqp::gethllsym('perl6', 'PROCESS').WHO<$CWD> | ||
camelia | rakudo e0b2af: OUTPUT«IO::Path</home/p6eval/t>IO::Path</home/p6eval/t>» | ||
18:25
kivutar joined
18:26
donaldh joined
18:27
frdmn left,
frdmn joined
|
|||
masak | ok, I was delayed a bit in my $dayjob plans today... but now I'm off duty. | 18:28 | |
jnthn | FROGGS: Please add a test as well as a fix :) | ||
masak digs into the last of the t3 reviews/blog post | |||
FROGGS | jnthn: I will | ||
18:29
jaldhar joined
|
|||
timotimo | i have reached tge great outdoors | 18:29 | |
FROGGS | ? | 18:30 | |
jnthn | Tree Grammar Engine? | ||
timotimo | the | ||
masak | sounds like a scary place. | ||
18:30
domidumont left
18:31
pecastro joined
|
|||
timotimo | trees everywhere and a nice river with huge white stones in it | 18:31 | |
jnthn | Isn't it almost dark? :) | 18:32 | |
timotimo | for a nerd like me that is already outdoorsy enough | ||
we are in a house :D | |||
diakopter | only big houses have rivers in them | ||
masak | not to mention trees everywhere. | 18:33 | |
colomon always wanted a river in his house. Do Not Tell his 4yo. | |||
moritz | [Coke]: fwiw I just did a rakudo-star-daily run, and it went fine | 18:34 | |
... except for the "Passing an object candidate to Mu.bless is deprecated" warnings | 18:35 | ||
18:36
virtualsue left
|
|||
moritz | oh, and XML::Writer has a few "use of uninitialized value of type Nil in numeric context" | 18:36 | |
18:36
ssutch joined
18:37
dhaivat joined
|
|||
dhaivat | Are there any startups using Perl 6? Any corporate support? | 18:37 | |
18:37
ssutch left
|
|||
diakopter | dhaivat: not really.. it's not really useful or dependable or stable enough yet | 18:40 | |
18:41
teslos joined
|
|||
geekosaur can think of a number of things that companies actually base their stuff around that that applies to... | 18:41 | ||
jnthn | :) | ||
moritz | dhaivat: there was one guy from a startup around here last year who used Perl 6 for $work | 18:42 | |
haven't heard of him for a while | 18:43 | ||
masak | I use Perl 6 for $work. | ||
jnthn | Are we still a startup? :P | ||
moritz | dhaivat: and colomon uses Perl 6 for some work stuff (involving CAD files and 3D models, iirc) | ||
diakopter | masak, the Startup | ||
.. more like Upstart | |||
moritz used Perl 6 to get $work | |||
colomon | dhaivat: my use of p6 for that is still pretty lightweight | ||
dhaivat: I'm using p6 as a convenient occasional tool, not relying heavily on it -- at the heart, my company is still based on C++ and p5. | 18:44 | ||
dhaivat | Ah, so, not yet stable then? What are the primary roadblocks for Perl 6? Why is taking so long to get a stable implementation? I don't mean this is in a derogatory way, I'm genuinely curious. | ||
diakopter | dhaivat: the past few years, simply a very small amount of availabile development resources, comparatively | 18:45 | |
*available | |||
moritz | dhaivat: the primary roundblocks for production use are 1) lack of good performance 2) lack of solidity in stuff like IO and 3) few modules/libraries available | ||
jnthn | Ambitious project, constrained resources...and it's hard to get fast. :) | ||
PerlJam | dhaivat: Why are you asking around about startups using Perl 5/6 ? | ||
dhaivat: Are you thinking about using perl for your startup? | |||
moritz | dhaivat: and it takes that long because it's a fairly complicated language with lots of research aspects | ||
18:46
donaldh left
|
|||
dhaivat | PerlJam: yes, I am actually | 18:46 | |
PerlJam | dhaivat: If you're adventurous, use perl 6, otherwise, use perl 5 :) | ||
dhaivat | PerlJam: I used to be a Perl guy a while back, with all the perldocs swirling around my head | ||
PerlJam: But I left because I finally got tired of checking every damn argument in procedures in Perl 5 | 18:47 | ||
colomon | dhaivat: for me, it's all about moritz's point 1. It's only with the recent JVM port that p6 is fast enough to keep up at all with my CAD work -- it's still slow, but it's doable | ||
dhaivat | colomon: JVM port? I haven't noticed this. | ||
masak | I'd advise using predominantly Perl 5, but keeping eyes and doors open for Perl 6 opportunities. | ||
colomon | dhaivat: yes, there are still a few things that need to be finished, but Rakudo has a version which works on JVM and seems to be at least an order of magnitude faster than the Parrot version. | 18:48 | |
dhaivat | I guess so. I was hoping Perl 6 might be coming around especially since Perl 5 is quite an annoyance at times | ||
diakopter | Perl 6 has its annoyances too | ||
dhaivat | colomon: I see | 18:49 | |
colomon | dhaivat: it's new, it didn't work at all back in early June. :) | ||
dhaivat | colomon: wow, that's some quick development | ||
colomon | dhaivat: well, most of the pieces were already in place at that point. | ||
18:50
donaldh joined
|
|||
colomon | jnthn++ moritz++ sorear++ etc++ | 18:52 | |
diakopter | donaldh++ too | ||
PerlJam | dhaivat: There are modules on CPAN that make up for many of Perl 5's warts | 18:53 | |
moritz didn't really do much for the JVM port | |||
PerlJam | dhaivat: you can get a type system, subroutine signatures, parameter checking, a nice object oriented system, etc. | 18:54 | |
colomon | FROGGS++ arnsholt++ pmurias++ jnthn++ | ||
PerlJam | dhaivat: Ask more about it on #perl if you're interested | ||
18:54
jferrero joined
|
|||
FROGGS wakes up... what what? | 18:54 | ||
dhaivat | PerlJam: cool, will do that after lunch | 18:55 | |
colomon | FROGGS: sorry to bother you, just trying to credit people involved with the JVM port. I'm sure I've missed some... | ||
colomon is mostly going by NQP commit graphs, admittedly. | |||
FROGGS | so I have did something for JVM port? my brain isnt that good these days :o) | 18:56 | |
PerlJam | colomon++ (for giving karma to all those people ;) | ||
18:57
stevan_ left
|
|||
colomon | FROGGS: you definitely have a worthwhile number of recent commits. If they are not NQP commits, well, FROGGS++ anyway. ;) | 18:57 | |
FROGGS | *g* | 18:58 | |
thank you sir | |||
18:59
dhaivat left
|
|||
colomon is feeling the rigidness of the C++ type system very much at the moment. O for the ability to use p6 instead... | 19:00 | ||
dalek | rlito: 26aa3e9 | (Flavio S. Glock)++ | / (3 files): Perlito5 - js - implement some variants of array slices |
19:03 | |
19:15
ssutch joined
19:16
abnorman left,
teslos left
19:19
rindolf left
|
|||
lizmat is back and checking backlog | 19:19 | ||
19:20
Khisanth left,
abnorman joined
|
|||
PerlJam | Um ... why did perl6advent.wordpress.com/2011/12/2...up-hashes/ show up in my newsfeed? | 19:25 | |
colomon | lizmat++ # just because | ||
lizmat | *blush* | ||
I'm in two minds of committing my Set/Bag changes | 19:26 | ||
there's quite a lot of set/bag tests failing, and some TODO's passing | |||
and I wonder if having more eyes on it would be better than going at it alone | 19:27 | ||
flussence | PerlJam: ...hash collision? :) | ||
dalek | rlito: d52afd7 | (Flavio S. Glock)++ | / (4 files): Perlito5 - js - array slice tests |
||
lizmat | otoh, I don't think it is worth a branch | ||
colomon | lizmat: just so happens I have eyes. | ||
dalek | kudo/nom: 7e80cd5 | (Elizabeth Mattijsen)++ | / (4 files): Move precedence setting of operators into its own dedicated file |
||
kudo/nom: ea06360 | (Elizabeth Mattijsen)++ | src/core/ (6 files): First version of Set/Bag changes from niecza, ported to rakudo |
|||
lizmat | jnthn: please have a look at src/core/precedence.pm | 19:28 | |
colomon has run out of folk festivals, and while still catching up on $work, has some time to look at p6 stuff again. | |||
lizmat | the commented out trait_mod's make the build fail in odd ways | ||
masak | ladies and gentlebots, t3 reviews are *complete*. | 19:29 | |
lizmat | basically, trait mods with \x22xx and trait mods with () | ||
masak | moritz++ # just the right amount of nagging ;) | ||
PerlJam | masak: congrats :) | ||
masak | now for the blog post. | ||
lizmat will now focus on fixing the tests | |||
dalek | kudo/nom: 8897b01 | (Tobias Leich)++ | src/vm/parrot/ModuleLoaderVMConfig.nqp: take cwd into account when loading modules |
19:30 | |
FROGGS | test comes in a minute (and jvm patch after that) | ||
masak | lizmat: I think merging into master sounds like the right choice here, fwiw. | ||
lizmat: worst case, we revert before release ;) | |||
lizmat | only set/bag tests are affected | ||
it's not like itr's all over the place | 19:31 | ||
and quite a few TODO's are now passing :-) | |||
19:32
kivutar left
|
|||
masak | win some, lose some. | 19:33 | |
no, I guess my point is, "keep master passing at all time" could well be seen as a guideline more than a rule. | |||
lizmat | :-) | 19:34 | |
we have failures now :-) | |||
masak | and one could consider committing things which fail the tests as taking a loan, of sorts. | ||
lizmat | fixing them up now | ||
PerlJam | masak: technical debt? :) | ||
masak | as long as you commit to paying back the loan, everything's fine. | ||
PerlJam: yes but no :) | |||
PerlJam: technical debt and failing tests feel orthogonal in my mind. | |||
but it's the same principle, yes. | |||
diakopter | <- is a failing test | 19:35 | |
masak submits diakopter as a rakudobug | |||
colomon | can he be reproduced? | 19:36 | |
diakopter | only by budding | ||
PerlJam | I think chromatic even published something along the lines of re-explaining technical debt as a loan that you should repay | ||
masak .oO( resulting in a Bud Light ) | |||
PerlJam: it's a common metaphor. | 19:37 | ||
PerlJam | indeed | ||
masak | PerlJam: and an interesting one, because it's not 100% about repaying, it's about keeping the debt under control. | ||
diakopter | if your interest rate on your technical debut is usurious... | 19:39 | |
arnsholt | jnthn: What's the nqp:: equivalent of pir::repr_box_str__PsP? | ||
dalek | kudo/nom: e1f2558 | (Elizabeth Mattijsen)++ | src/core/Bag.pm: Oops, new for Bag is not like new for Set |
19:40 | |
jnthn | nqp::box_s | ||
diakopter | er,. | ||
technical debut, indeed. | |||
arnsholt | Oh, derp. Thanks! | 19:41 | |
masak | diakopter: technical debut is caused by technical debutantes. | 19:42 | |
19:42
pecastro left
|
|||
lizmat | .oO( technical dillettantes cause techincal dill ) |
19:44 | |
colomon cannot keep up with lizmat++ | |||
ingy waves o/ | |||
colomon | ingy! \o/ | ||
ingy | hey there | 19:45 | |
diakopter wavers | |||
ingy | :) | ||
19:45
yoleaux left
|
|||
pmurias | masak: re commiting things that fail, a lot of that is caused by tests running slowly | 19:46 | |
jnthn | lizmat: does only sub infix:<<"\x228D">> work? | ||
lizmat | not sure yet, it compiles is all I know so far | 19:47 | |
let me see | |||
masak | ingy: hejhej! :D | ||
19:47
Newman joined
|
|||
masak | pmurias: how do you mean? it was caused by lizmat deciding to, AFAICS. | 19:48 | |
jnthn | lizmat: oh, the ones that all fail in the prec changes are &infix:<<"\x228D">> right? | ||
lizmat | also the ones with parens in the op name | 19:49 | |
fg | |||
oops, ww | |||
jnthn | r: sub infix:<<"\x228D">>($a, $b) { say "$a $b" }; &infix:<<"\x228D">>(1, 2) | ||
camelia | rakudo e0b2af: OUTPUT«1 2» | ||
jnthn | r: sub infix:<<"\x228D">>($a, $b) { say "$a $b" }; say UNIT::.keys | ||
camelia | rakudo e0b2af: OUTPUT«$=pod !UNIT_MARKER GLOBALish EXPORT $?PACKAGE ::?PACKAGE $_ $/ $! %?LANG &infix:<⊍>» | ||
19:50
Newman left
|
|||
FROGGS | jnthn: why the extra quotes? | 19:51 | |
: sub infix:«x228D»($a, $b) { say "$a $b" }; say UNIT::.keys | |||
r: sub infix:«\x228D»($a, $b) { say "$a $b" }; say UNIT::.keys | |||
camelia | rakudo e0b2af: OUTPUT«$=pod !UNIT_MARKER GLOBALish EXPORT $?PACKAGE ::?PACKAGE $_ $/ $! %?LANG &infix:<⊍>» | ||
jnthn | FROGGS: Was just copying what lizmat did in the commit :) | ||
FROGGS | and it is even shorter if you strip the "r:" :o) | ||
lizmat | FWIW, the only version that does not blow up in the SETTING, is the one with <<"\xhhhh">> | 19:52 | |
diakopter | .. | 19:55 | |
20:00
BooK joined,
jferrero left,
jaldhar left
|
|||
colomon | interesting that the set constructor doesn't work in just that one case. | 20:00 | |
20:01
jaldhar joined
|
|||
dalek | rlito: 7b7f08f | (Flavio S. Glock)++ | / (5 files): Perlito5 - js - hash slice tests |
20:01 | |
colomon | oh, wait | ||
roast is wrong, not rakudo | |||
I think? | 20:02 | ||
lizmat | checking… | ||
colomon | rn: my $b = set { foo => 10, bar => 17, baz => 42 }.hash; say $b.elems; say $b.perl | ||
20:03
ssutch left
|
|||
camelia | rakudo e0b2af: OUTPUT«3set("foo", "bar", "baz")» | 20:03 | |
..niecza v24-90-gd827fa8: OUTPUT«3Set.new("foo\t10", "bar\t17", "baz\t42")» | |||
20:04
kbaker left
|
|||
dalek | p/file-op-retcodes: 57da120 | (Donald Hunter)++ | src/vm/jvm/ (2 files): Add :tc to signatures for file ops. |
20:09 | |
p/file-op-retcodes: 536c063 | (Donald Hunter)++ | src/vm/jvm/stage0/ (10 files): Update bootstrap for file ops with :tc signatures. |
|||
p/file-op-retcodes: 47a64bf | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: Throw exceptions from file ops. |
|||
p/file-op-retcodes: 7df1c7a | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/ (2 files): Better exception message generation. |
|||
ast: 8e4f6ce | (Elizabeth Mattijsen)++ | S02-types/ (4 files): First set of unfudges/new fudges for Set/Bag related changes |
20:12 | ||
colomon | I completely fail to understand why set { foo => 10, bar => 17, baz => 42 }.hash and set { foo => 10, bar => 17, baz => 42 } should be differnet | ||
rn: say { foo => 10, bar => 17, baz => 42 }.WHAT | |||
camelia | rakudo e0b2af, niecza v24-90-gd827fa8: OUTPUT«(Hash)» | ||
colomon | rn: say { foo => 10, bar => 17, baz => 42 }.hash.WHAT | 20:13 | |
camelia | rakudo e0b2af, niecza v24-90-gd827fa8: OUTPUT«(Hash)» | ||
dalek | p: 57da120 | (Donald Hunter)++ | src/vm/jvm/ (2 files): Add :tc to signatures for file ops. |
||
p: 536c063 | (Donald Hunter)++ | src/vm/jvm/stage0/ (10 files): Update bootstrap for file ops with :tc signatures. |
|||
p: 47a64bf | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: Throw exceptions from file ops. |
|||
p: 7df1c7a | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/ (2 files): Better exception message generation. |
|||
p: da7b7b1 | (Donald Hunter)++ | src/vm/jvm/ (13 files): Merge pull request #119 from perl6/file-op-retcodes Update the file ops to throw exceptions on failure. |
|||
arnsholt | Oooh. Segfault | ||
colomon | I'm 95% certain that the set { foo => 10, bar => 17, baz => 42 }.hash tests are a leftover from the old spec. | ||
lizmat | colomon: I'm just looking at tests, to make them clean in the spectest, not at why they're failing | 20:14 | |
colomon | lizmat: I'm looking at the big picture. | ||
arnsholt | Segfault in the binder, even. Odd. | ||
lizmat | and I'm not (yet) | ||
diakopter | arnsholt: jvm? | ||
pmurias | jnthn: do you remeber how does (foo)+ now to capture (foo) as an array? | 20:15 | |
lizmat | r: say Set(Any.new) # what should this do if it doesn't fail ? | ||
camelia | rakudo e0b2af: OUTPUT«Cannot coerce object of type Capture to Set. To create a one-element set, pass it to the 'set' function in sub to-set at src/gen/CORE.setting:14701 in sub to-set at src/gen/CORE.setting:14694 in method postcircumfix:<( )> at src/gen/CORE.setting:14693 in bl… | ||
pmurias | s/now/know/ | ||
arnsholt | diakopter: Parrot, so a bit less surprising =) | ||
Pretty sure it's my fault too | 20:16 | ||
lizmat | ah. camelia not up to date yet | ||
$ perl6 -e 'say Set(Any.new)' | |||
set(Any<-9213374975699074855>) | |||
20:16
jferrero joined
|
|||
lizmat | r: say Any.new | 20:16 | |
camelia | rakudo e0b2af: OUTPUT«Any.new()» | ||
colomon | lizmat: I don't know how well it works yet -- we need Sets which can handle any object type -- but it should create a Set that has a single Any in it. (Assuming Any makes sense as an object.) | 20:18 | |
20:19
BooK left,
BooK joined
|
|||
lizmat | r: say Set(Any.new).keys | 20:19 | |
camelia | rakudo e1f255: OUTPUT«Any<1696284401>» | ||
20:19
SamuraiJack__ left
|
|||
lizmat | r: say Set(Any.new).keys[0].exists | 20:19 | |
camelia | rakudo e1f255: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in method exists at src/gen/CORE.setting:1447 in block at /tmp/eMWxtwdhPx:1» | ||
lizmat | r: say Set(Any.new).keys[0].exists('foo') | ||
camelia | rakudo e1f255: OUTPUT«False» | ||
colomon | it probably adds Any.new.Str into the Set right now | 20:20 | |
lizmat | seems to be a real object in there, so that's ok I guess | ||
colomon | nr: say Any.new.Str | ||
camelia | niecza v24-90-gd827fa8: OUTPUT«Any()<instance>» | ||
..rakudo e1f255: OUTPUT«Any<-1364598985>» | |||
masak | blog post written. | 20:21 | |
dalek | ast/origin/master: dafc74f | (Donald Hunter)++ | S32-io/slurp.t: Unfudge slurp read tests on JVM. |
||
masak | but apparently I have to rebuild Rakudo on this computer before I can run my blog software. | ||
masak crosses fingers and hopes for no regressions! | |||
lizmat crosses her fingers too .L;KAOAFKY.SDHGX/LAISk | |||
hmm, better uncross them before I go on | 20:22 | ||
TimToady | for a moment there I thought my eyes were crossed | ||
dalek | ast: ced8cd2 | (Elizabeth Mattijsen)++ | S32-exceptions/misc.t: Remove bogus Set(Any.new) test |
||
: d1a0a0b | (Tobias Leich)++ | STATUS.md: status update, after rakudos chdir changes |
20:23 | ||
lizmat | only two more test files with failures to go | ||
20:23
zwut00 joined
|
|||
colomon | TimToady: can you think of any reason set { foo => 10, bar => 17, baz => 42 }.hash would be different from set { foo => 10, bar => 17, baz => 42 } ? | 20:23 | |
TimToady | you mean like, {} doesn't interpolate in list context? | 20:24 | |
masak | r: constant True = 42; say +True | ||
camelia | rakudo e1f255: OUTPUT«42» | ||
20:24
donaldh left
|
|||
masak | r: constant True = "yeah, well, you know, that's just, like, your opinion, man"; say True | 20:24 | |
camelia | rakudo e1f255: OUTPUT«yeah, well, you know, that's just, like, your opinion, man» | ||
masak | \o/ | ||
colomon | TimToady: should {}.hash interpolate in list context? | ||
masak adds that to rt.perl.org/rt3//Public/Bug/Displa...?id=111734 | |||
TimToady | colomon: I believe so | 20:25 | |
pmurias | jnthn: I'm figurint out myself how it's done | 20:26 | |
colomon | okay, so that is the rakudo bug | ||
TimToady++ | |||
TimToady | just as .[] or .{} would deref | ||
jnthn | pmurias: Sorry, missed question while hutning GC bug... | ||
pmurias: I know where it's worked out, moment | 20:27 | ||
TimToady | r: say [ [<a b c>] ].elems | ||
lizmat | jnthn: it would appear that the "\xhhh" operators indeed have not arrived | ||
camelia | rakudo e1f255: OUTPUT«1» | ||
lizmat | $ perl6 a.pm6 | ||
===SORRY!=== Error while compiling a.pm6 | |||
Two terms in a row | |||
at a.pm6:2 | |||
------> my $b=bag( <a b c> ); say $b; say $b ⏏∪ $b | |||
TimToady | r: say [ [<a b c>][] ].elems | ||
camelia | rakudo e1f255: OUTPUT«3» | ||
colomon | rn: .say for { foo => 10, bar => 17, baz => 42 }.hash | ||
TimToady | r: say [ [<a b c>].array ].elems | ||
camelia | rakudo e1f255: OUTPUT«("foo" => 10, "bar" => 17, "baz" => 42).hash» | ||
..niecza v24-90-gd827fa8: OUTPUT«"foo" => 10"bar" => 17"baz" => 42» | |||
rakudo e1f255: OUTPUT«No such method 'array' for invocant of type 'Array' in block at /tmp/V9zw8FSPGy:1» | |||
colomon | rn: .say for { foo => 10, bar => 17, baz => 42 } | ||
lizmat is going to rewrite those tests to use texan | |||
camelia | rakudo e1f255: OUTPUT«("foo" => 10, "bar" => 17, "baz" => 42).hash» | ||
..niecza v24-90-gd827fa8: OUTPUT«{"bar" => 17, "baz" => 42, "foo" => 10}» | |||
jnthn | pmurias: sub capnames | 20:28 | |
pmurias: In src/QRegex/P6Regex/Actions.nqp | |||
lizmat | .u ∪ | ||
TimToady | r: say [ { :a, :b } ].elems | ||
camelia | rakudo e1f255: OUTPUT«1» | ||
TimToady | r: say [ { :a, :b }{} ].elems | ||
camelia | rakudo e1f255: OUTPUT«2» | ||
TimToady | r: say [ { :a, :b }.hash ].elems | ||
camelia | rakudo e1f255: OUTPUT«1» | ||
lizmat | .oO( where is yoleaux when you need her ) |
||
TimToady | yes, I'd call that a bug, I think | 20:29 | |
masak | dammit, rt.perl.org/rt3/Ticket/Display.html?id=117841 is still open. I'll have to downgrade my Rakudo to get the blog post out. | ||
TimToady | r: say [ %({ :a, :b }) ].elems | 20:30 | |
camelia | rakudo e1f255: OUTPUT«1» | ||
TimToady | that's the same bug | ||
% in list context should flatten | 20:31 | ||
masak guesses the bug didn't exist a year ago, and downgrades to Rakudo 2012.09 | |||
TimToady | r: say [ (1,2) ].elems | ||
camelia | rakudo e1f255: OUTPUT«2» | ||
TimToady | r: say [ (1,(2,3)) ].elems | ||
camelia | rakudo e1f255: OUTPUT«3» | ||
TimToady | okay, just the %/.hash | ||
dalek | rl6-roast-data: cfc5b0d | coke++ | / (5 files): today (automated commit) |
||
20:32
jferrero left
|
|||
FROGGS | masak: it works for me now... | 20:32 | |
masak: gist.github.com/FROGGS/e26c9b14854e3cc94936 | |||
20:32
jferrero joined
|
|||
masak | FROGGS: huh. | 20:33 | |
dalek | ast: 3fa3416 | (Solomon Foster)++ | S02-types/set.t: Add comments and new fudging string. With luck this will eliminate future confusion over this subject. |
20:34 | |
[Coke] | LHF: look for "todo PASSED" in github.com/coke/perl6-roast-data/b...ummary.out and untodo them. | 20:35 | |
20:36
donaldh joined
|
|||
[Coke] | OHEY, rakudo.parrot has no failures today. | 20:36 | |
masak | \o/ | ||
lizmat | colomon: this probably also applies to some S02-types/bag.t tests ? | ||
colomon | maybe? let me look | ||
masak | FROGGS: `icuinfo` says I have Compiled-Version: 4.8.1.1 installed. | 20:37 | |
20:37
Rotwang1 joined
20:39
kaare_ left
|
|||
dalek | p: 197640d | (Arne Skjærholt)++ | src/vm/parrot/6model/reprs/CStr.c: Mark CStr as being able to box strings and implement get_str. |
20:39 | |
20:40
BooK left
|
|||
masak | argh, 2012.09 also has the bug :( | 20:40 | |
masak downgrades to 2011.09 | |||
20:41
BooK joined
|
|||
dalek | rl6-roast-data: bc4a6a5 | coke++ | cull: use ISO dates going forward |
20:41 | |
ast: 2907bc6 | (Solomon Foster)++ | S02-types/bag.t: Add comments and new fudging string. With luck this will eliminate future confusion over this subject. |
|||
lizmat is glad it's not something she did recently | |||
colomon++ | |||
colomon: I see you wrote tests for both ∪ and (|) | 20:42 | ||
did you do that for all the new ops ? | |||
colomon | lizmat: I think so? I certainly intended to | ||
lizmat: they're both part of the spec | |||
dalek | volaj: 6f912ac | (Arne Skjærholt)++ | / (2 files): Unbust explicitly managed strings. |
||
lizmat | okidoki, then my work is almost done :-) | ||
arnsholt | moritz: I think Zavolaj should be fixed now. Could you give your DB things a whirl and see if everything works properly? | 20:43 | |
20:43
stevan_ joined
|
|||
arnsholt | jnthn++ # Root cause discovery | 20:44 | |
moritz | arnsholt: will do tomorrow | ||
arnsholt | Thanks! | 20:45 | |
FROGGS | masak: same | ||
dalek | rl6-roast-data: 2ba3ef4 | coke++ | perl6_pass_rates.csv: fix stats from previous day that went in twice. |
20:46 | |
rl6-roast-data: 0985dab | coke++ | perl6_pass_rates.csv: Fixup non-ISO dates that slipped in |
|||
FROGGS | masak: $ perl6 -e 'say qx[perl6 -e "say 1 x 4095,q|—|" | cat]; say "alive"' | 20:47 | |
Unaligned end in UTF-8 string | |||
my chunksize is just different now | |||
masak | FROGGS: oh! | 20:48 | |
FROGGS: I feel so powerless in face of that bug. | |||
FROGGS: it really messes up my ability to use Perl 6 for something real and useful. | |||
FROGGS | :/ | 20:49 | |
masak | though maybe I can now explore the JVM backend for this. | ||
FROGGS | >.< | ||
rakudo-jvm$ ./perl6 -e 'say qx[./perl6 -e "say 1 x 4095,q|—|" | cat]; say "alive"' | |||
Unhandled file open mode 'rp' | |||
masak | dang. | ||
diakopter | ETOOPIPEY | ||
jnthn | ah, we still didn't get the pipe open in... | ||
FROGGS | if you'd time you could hunt that bug down | 20:50 | |
20:50
hummeleBop left
|
|||
masak | bug, as in, missing feature? :) | 20:50 | |
FROGGS | it is up to you :o) | ||
jnthn | NYI | ||
FROGGS | you have a choice at least | ||
masak | because I've been looking at the Unicode bug in the Parrot source code, and it's... well-hidden. | ||
they have loads of layers of abstraction, making everything look real neat and bug-free. | |||
except it isn't. | |||
diakopter | masak: that's the several layers of obfuscators | 20:51 | |
Bogged Down by Smoke and Mirrors | 20:52 | ||
masak | It's Not A Refactor If You Break Someone's Production Code(TM). | ||
diakopter | i don't recognize that backronym | 20:53 | |
masak | oh my, I think I just made a chromatic mumble "if only they saw the irony of it all" somewhere in the world :P | ||
masak waves to chromatic | |||
diakopter irons out your irony | |||
masak | oh phew, 2011.09 doesn't have the regression. | 20:54 | |
diakopter | but.. it has a few other regressions | ||
lizmat | .oO( chromatic, is that about shades of grey? ) |
||
diakopter | 50 of those takes 6 bits | 20:55 | |
masak | heh, apparently 2011.09 is too old to run my blog, though... | 20:56 | |
masak upgrades slightly | |||
this will take all evening. | |||
perigrin | lizmat: only when he was sick with mono. | ||
diakopter | *goran* | ||
masak | kind of an off-color joke, don't you think? | 20:57 | |
diakopter | masak: it's a sliding scale | ||
lizmat | and that on a day like this, 50 years hence ? | ||
arnsholt <3 git | 20:58 | ||
masak | diakopter: so I guess there's no way to be discrete about it, then. :) | ||
lizmat | .oO( some people don't have a dream anymore ) |
||
diakopter | masak: but it's pretty accident-prone | 20:59 | |
20:59
gdey left
|
|||
diakopter | <- # ftw; two music jokes in a row | 20:59 | |
arnsholt | lizmat: I think #perl6 is more concerned with colourless green ideas | ||
lizmat | I guess we're all super green on that | 21:00 | |
21:00
xenoterracide joined
|
|||
cognominal goes to sleep furiously | 21:00 | ||
masak | furieusement! | 21:01 | |
lizmat | bonne nuit, cognominal! | ||
cognominal | thx, good night to you, all * cast. | 21:02 | |
21:02
skids left
21:05
bruges joined
21:07
bruges_ left
|
|||
diakopter | masak: put away your rainbow flag.. | 21:07 | |
masak | yay! finally it runs! | 21:10 | |
I settled on 2012.05, by the way. | |||
note to self, in case irclog's search function ever becomes reliable again. | 21:11 | ||
lol, I blug! \o/ strangelyconsistent.org/blog/t3-wire-crossings | 21:13 | ||
donaldh golfs all the rakudo JVM regressions | |||
masak | can I do t4 within... a week? yes, I think I can, actually. | ||
21:14
zwut00 left
|
|||
dalek | ast: f70457d | (Tobias Leich)++ | S11-modules/require.t: added chdir+require test |
21:15 | |
donaldh looks like is_run is bust: | |||
sh: perl6: command not found | |||
dalek | kudo/nom: c45ddb9 | (Tobias Leich)++ | src/vm/jvm/ModuleLoaderVMConfig.nqp: take cwd into acount when looking up modules |
21:16 | |
ast: 6682a3b | (Elizabeth Mattijsen)++ | S03-operators/ (2 files): Fudge all the failing Set/Bag tests |
21:18 | ||
lizmat | spectest should be clean again now | ||
FROGGS | lizmat++ | ||
donaldh | haha, busted by the nqp JVM $*EXECUTABLE_NAME changing from "java" to "perl6" | ||
lizmat | however, it appears that most of the new operators simply do not work | 21:19 | |
:-( | |||
donaldh | r: say($*EXECUTABLE_NAME) | ||
camelia | rakudo e1f255: OUTPUT«./nom-inst/bin/perl6» | ||
donaldh | ah. | ||
no path on JVM, just the "perl6" bare word. Would require . to be in PATH | 21:20 | ||
lizmat | donaldh: does PR 119 mean we now have a nqp:tc ? | ||
21:21
celesta joined
|
|||
celesta | ahoi #perl6 | 21:21 | |
lizmat | celesta o/ | 21:22 | |
donaldh | lizmat: no, that means I added the :tc ThreadContext parameter to all the nqp file ops for JVM. | ||
lizmat | ah, ok | ||
21:22
jferrero left
|
|||
donaldh | so that I could use die_s(…, tc); | 21:23 | |
lizmat | okidoki, it's just that I recently implemented .tc (titlecase) rather naively | 21:24 | |
diakopter | r: $OUTER::OUTER::OUTER::OUTER::OUTER::OUTER::True | ||
camelia | rakudo e1f255: OUTPUT«Null PMC access in get_attr_str() in sub at src/gen/CORE.setting:8786 in method at_key at src/gen/CORE.setting:8839 in method postcircumfix:<{ }> at src/gen/CORE.setting:1861 in method postcircumfix:<{ }> at src/gen/CORE.setting:1849 in block at /tmp/OB… | ||
21:24
jferrero joined
|
|||
diakopter | whee | 21:24 | |
masak: NPMCA | |||
lizmat | and put it on my list for after the RaNIW | ||
lue | masak++ # continuing the review | ||
21:24
Khisanth joined
|
|||
celesta | r: my %h = ( 1 => <foo bar> ); my @baz = %h<1>; say @baz[0] | 21:25 | |
camelia | rakudo e1f255: OUTPUT«foo bar» | ||
celesta | i expected output "foo" | ||
21:26
panchiniak joined
|
|||
lizmat | r: my %h = ( 1 => <foo bar> ); say %h | 21:26 | |
camelia | rakudo e1f255: OUTPUT«("1" => $("foo", "bar")).hash» | ||
celesta | r: my %h = ( 1 => <foo bar> ); my @baz = %h<1>; say @baz.WHAT | ||
camelia | rakudo e1f255: OUTPUT«(Array)» | ||
masak submits rakudobug | 21:27 | ||
diakopter++ | |||
lizmat | r: my %h = ( 1 => <foo bar> ); say %h; my @baz=%h<1>; say @baz | ||
camelia | rakudo e1f255: OUTPUT«("1" => $("foo", "bar")).hashfoo bar» | ||
lizmat | r: my %h = ( 1 => <foo bar> ); say %h; my @baz=%h<1>; say @baz.elems | ||
camelia | rakudo e1f255: OUTPUT«("1" => $("foo", "bar")).hash1» | ||
masak | r: $OUTER::OUTER::OUTER::OUTER::OUTER::True | ||
camelia | rakudo e1f255: ( no output ) | ||
celesta | me confused now | ||
lizmat | r: my %h = ( 1 => <foo bar baz > ); say %h; my @baz=%h<1>; say @baz.elems | ||
masak | r: say $OUTER::OUTER::OUTER::OUTER::OUTER::True | ||
camelia | rakudo e1f255: OUTPUT«("1" => $("foo", "bar", "baz")).hash1» | ||
rakudo e1f255: OUTPUT«(Any)» | |||
lizmat | r: my %h = ( 1 => <foo bar baz > ); say %h; my @baz=%h<1>.list; say @baz.elems | 21:30 | |
camelia | rakudo e1f255: OUTPUT«("1" => $("foo", "bar", "baz")).hash3» | ||
lizmat | r: my %h = ( 1 => <foo bar baz > ); say %h; my @baz=%h<1>.WHAT; say @baz.elems | ||
camelia | rakudo e1f255: OUTPUT«("1" => $("foo", "bar", "baz")).hash1» | ||
lizmat | r: my %h = ( 1 => <foo bar baz > ); say %h; say %h<1>.WHAT | ||
camelia | rakudo e1f255: OUTPUT«("1" => $("foo", "bar", "baz")).hash(Parcel)» | ||
lizmat | r: my %h = ( 1 => [<foo bar baz >] ); say %h; say %h<1>.WHAT | 21:31 | |
camelia | rakudo e1f255: OUTPUT«("1" => ["foo", "bar", "baz"]).hash(Array)» | ||
lizmat | r: my %h = ( 1 => [<foo bar baz >] ); say %h; my @baz= %h<1>; say @baz.perl | ||
camelia | rakudo e1f255: OUTPUT«("1" => ["foo", "bar", "baz"]).hashArray.new(["foo", "bar", "baz"])» | ||
lizmat | celesta: I *think* it's according to spec, as a Parcel doesn't flatten in that context, an Array does | 21:32 | |
celesta | lizmat: thank you | ||
lizmat finds that distinction still rather hard to grok | 21:33 | ||
diakopter still glazes over when the word parcel appears | |||
21:33
ssutch joined
|
|||
masak too | 21:33 | ||
it's a bit like Python's tuple type, I guess. | 21:34 | ||
lue | masak: Reading through your reviews, I wonder if I shouldn't start future-proofing my Int->Bool coercions and just write +(True/True) :) | ||
masak | lue: way to miss the core complaint :P | ||
lue | er, Bool->Int | ||
r: say (0/0).WHAT | 21:35 | ||
camelia | rakudo e1f255: OUTPUT«Divide by zero in method sink at src/gen/CORE.setting:11557 in method BUILDALL at src/gen/CORE.setting:893 in method bless at src/gen/CORE.setting:834 in method new at src/gen/CORE.setting:819 in method new at src/gen/CORE.setting:817 in sub DIVIDE_NUMB… | ||
21:41
denisboyun joined
21:43
yoleaux joined,
ChanServ sets mode: +v yoleaux
21:47
dmol left
|
|||
dalek | ast/jvm-prog-name: 3128fcd | (Donald Hunter)++ | packages/Test/Util.pm: Another JVM process name workaround. |
21:51 | |
ast: 3128fcd | (Donald Hunter)++ | packages/Test/Util.pm: Another JVM process name workaround. |
21:52 | ||
ast: c5c0a68 | (Donald Hunter)++ | packages/Test/Util.pm: Merge pull request #33 from perl6/jvm-prog-name Another JVM process name workaround. Should resolve a lot of JVM regressions. |
|||
21:52
ajr joined
21:53
ajr is now known as Guest47732
|
|||
celesta | thanks and good night #perl6 | 21:59 | |
21:59
celesta left
22:06
dwarring left
22:11
donaldh left
22:12
stevan_ left,
stevan_ joined
|
|||
FROGGS | .tell donaldh does ./perl6 work on windows at all? github.com/perl6/roast/commit/c5c0a6879f | 22:18 | |
yoleaux | FROGGS: I'll pass your message to donaldh. | ||
22:28
skids joined
22:29
btyler left
22:39
FROGGS left
22:41
pernatiy joined
22:43
Guest47732 left
22:44
alexghacker left,
alexghacker joined
22:45
snoop`nqr joined
22:47
snoop`nqr left
22:48
snoopy` joined
22:50
snoopy` left
|
|||
dalek | kudo/nom: 7b26cbf | (Elizabeth Mattijsen)++ | src/core/ (2 files): Refinement on use of flattening |
22:54 | |
lizmat | and on that thought, I wish you all a good night! | 22:56 | |
sleep& | |||
jnthn | 'night, lizmat | 22:58 | |
23:00
denisboyun left,
PZt joined
23:01
colomon left
|
|||
jnthn | sleep also & | 23:06 | |
23:08
FROGGS joined
23:11
gdey joined
23:17
PacoAir left
|
|||
masak | 'night, #perl6 | 23:19 | |
23:28
pernatiy left
23:34
Rotwang1 left
23:39
abnorman left
23:40
gdey left,
abnorman joined
23:47
pmurias left
|