»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by masak on 12 May 2015. |
|||
00:01
yeltzooo joined
00:04
Spot__ joined
00:07
avuserow joined
00:09
BenGoldberg joined
00:10
fernando___ joined,
BenGoldberg_ joined
00:11
Ben_Goldberg left
00:13
BenGoldberg left
00:20
sjn_phone_ left
00:21
cognominal_ left
00:24
psch joined
00:27
nine joined
00:30
[ptc]_ joined,
Spot___ joined,
bin_005_n joined
00:31
raiph joined,
clkao_ joined
00:32
ggherdov_ joined,
stevemc_ joined
00:34
arnsholt joined,
zoosha joined
00:36
Bucciarati_ joined,
psch_ left,
ggherdov left,
fernando___ left,
Spot__ left,
Al-Caveman left,
Khisanth left,
zoosha_ left,
ugexe left,
Bucciarati left,
steve_mc left,
skarn left,
Obbi left,
clkao left,
yogan left,
mephinet left,
arnsholt_ left,
hoelzro left,
[ptc] left,
nine_ left,
integral left,
pochi_ left,
bin_005 left,
flussence left,
Juerd left,
pochi joined,
[ptc]_ is now known as [ptc]
00:38
Spot___ is now known as Spot__
00:41
clkao_ is now known as clkao,
AlexDaniel is now known as 17WAB4TD9,
integral joined,
AlexDaniel joined,
hoelzro joined,
mephinet joined,
yogan joined,
fernando___ joined,
Khisanth joined,
flussenc1 joined,
Juerd joined,
Obbi joined
00:42
fernando___ left,
fernando___ joined,
mephinet left,
mephinet joined,
raiph left
00:43
Khisanth is now known as Guest11680
00:44
perlpilot joined,
pmichaud_ joined,
krakan_ joined,
breinbaa1 joined,
orevdiabl joined,
jdv79_ joined,
leedo joined,
rudi_s_ joined
00:45
Gothmog_1 joined,
smash_ joined,
nwc10_ joined,
grondilu joined,
rhr_ joined
00:46
bobkare_ joined
00:47
ugexe joined
00:48
skarn joined
00:49
tony-o_ joined
00:50
gfldex_ left
00:52
ggherdov_ is now known as ggherdov
00:55
Al-Caveman joined,
silug_ joined,
profan left,
smash left,
PerlJam left,
pmichaud left,
silug left,
[Tux] left,
breinbaas left,
rhr left,
leedo_ left,
rudi_s left,
Gothmog_ left,
b2gills left,
Gothmog_1 is now known as Gothmog_,
jdv79 left,
[Tux] joined
00:57
aborazmeh joined,
aborazmeh left,
aborazmeh joined,
17WAB4TD9 left,
nwc10 left,
b2gills joined
00:59
bobkare left,
bobkare_ is now known as bobkare
01:00
kurahaupo joined
01:16
kurahaupo left
01:27
stevemc_ left
01:46
Guest11680 left
01:49
Khisanth joined
02:09
yqt left
02:15
aborazmeh left
02:16
noganex_ joined
02:20
noganex left
02:36
Sqirrel left
02:37
flussenc1 left,
flussence joined
02:38
rmgk_ joined,
rmgk is now known as Guest33299,
rmgk_ is now known as rmgk
02:42
Guest33299 left
02:51
davido___ joined
02:52
davido__ left
03:08
CQ_ joined
03:09
dj_goku joined
03:11
CQ left,
CQ_ is now known as CQ
03:14
dayangkun joined
03:16
nys left
03:30
kaare__ joined
03:31
kaare__ is now known as kaare_
03:51
tinyblak joined
04:11
isBEKaml joined,
isBEKaml left
04:17
dayangkun left
04:24
bin_005_n left
04:26
bin_005 joined
04:30
rindolf joined
04:31
bin_005_j joined
04:32
bin_005 left
04:42
bin_005_j left
05:19
rindolf left
05:23
skids joined
05:30
spintronic left,
spintronic joined
05:46
Psyche^ joined
05:47
nwc10_ is now known as nwc10
05:50
Psyche^_ left
05:52
araujo joined
05:57
aborazmeh joined,
aborazmeh left,
aborazmeh joined
06:13
danaj joined
06:15
BenGoldberg_ left
|
|||
xinming | m: loop (my $c = 0; $c < 3; $c++) { "hello".say; } loop (my $c; $c < 3; $c++) { "test".say } | 06:31 | |
camelia | rakudo-moar be122a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/I8wd83MWbUStrange text after block (missing semicolon or comma?)at /tmp/I8wd83MWbU:1------> 3y $c = 0; $c < 3; $c++) { "hello".say; }7⏏5 loop (my $c; $c < 3; $c++) { "test"» | ||
xinming | m: loop (my $c = 0; $c < 3; $c++) { "hello".say; }; loop (my $c; $c < 3; $c++) { "test".say } | ||
camelia | rakudo-moar be122a: OUTPUT«Potential difficulties: Redeclaration of symbol $c at /tmp/zQGmzLFw0W:1 ------> 3 $c++) { "hello".say; }; loop (my $c7⏏5; $c < 3; $c++) { "test".say }hellohellohello» | ||
06:31
aborazmeh left
|
|||
xinming | Is this a bug? I mean, shouldn't the $c be visible within the loop only, instead of the whole block. | 06:32 | |
m: loop ($c = 0; $c < 3; $c++) { "hello".say; }; | |||
camelia | rakudo-moar be122a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/AwVZMTxKemVariable '$c' is not declaredat /tmp/AwVZMTxKem:1------> 3loop (7⏏5$c = 0; $c < 3; $c++) { "hello".say; };» | ||
xinming | In synopsis, We have the example without needing to decalre the $c, But that doesn't seem to work. | ||
06:33
aborazmeh joined,
aborazmeh left,
aborazmeh joined
06:34
muethos joined
|
|||
bartolin | xinming: we had that as a bug report the other day: RT #125434. it was rejected, because the current behaviour is expected. basically the lexical scope of $c in your example is the outer block. the bug report has a link to S04 which explains the details. | 06:45 | |
rt.perl.org/Ticket/Display.html?id=125434 | |||
xinming: you could also take a look at this discussion: irclog.perlgeek.de/perl6/2015-06-19#i_10774643 | 06:46 | ||
m: loop (my $c = 0; $c < 3; $c++) { "hello".say; }; loop ($c = 0; $c < 3; $c++) { "test".say } | 06:48 | ||
camelia | rakudo-moar be122a: OUTPUT«hellohellohellotesttesttest» | ||
06:52
jasonmay1 is now known as jasonmay
|
|||
xinming | bartolin: Ok, Thanks. | 06:52 | |
bartolin | your welcome | ||
xinming | another question, Is it possible to extract the "method" (not sub) and return that method as a code? | 06:53 | |
bartolin | sorry, I don't know that | 06:54 | |
xinming | because something like &self.method_name result an error | 06:55 | |
07:03
bin_005 joined
07:17
muethos left
|
|||
skids | m: Int.^find_method("abs").perl.say | 07:34 | |
camelia | rakudo-moar be122a: OUTPUT«method abs (Int:D $: *%_) { #`(Method|57858136) ... }» | ||
skids | xinming: spec on the above comes with a caveat -- it is in S12, but I don't know if the hyphenation-versus-underscores reform will get into the MOP related functions or not. | 07:38 | |
07:44
skids left
07:50
aborazmeh left
07:53
azawawi joined
|
|||
azawawi | hi | 07:53 | |
I am trying the script in github.com/MoarVM/MoarVM/issues/149 | 07:54 | ||
2015.06 fixed the 100% CPU behavior but now a CTRL-C does not cause any exit from die | |||
am i doing the wrong way or is there a new way to exit a script from a signal? | 07:55 | ||
07:56
mr-foobar joined
07:58
telex left
08:00
telex joined
08:09
aborazmeh joined,
aborazmeh left,
aborazmeh joined
08:11
azawawi left
08:12
darutoko joined
08:19
uncleyear left
08:21
breinbaa1 left
08:23
breinbaas joined,
breinbaas left
08:24
breinbaas joined,
salva joined
08:26
RabidGravy joined
|
|||
dalek | kudo/nom: 55498e2 | usev6++ | src/Perl6/Metamodel/MethodContainer.nqp: Fix JVM build (avoid NullPointerException) |
08:34 | |
kudo/nom: 06e4e9a | lizmat++ | src/Perl6/Metamodel/MethodContainer.nqp: Merge pull request #444 from usev6/jvm_build Fix JVM build (avoid NullPointerException) |
|||
08:55
gfldex joined
09:08
rindolf joined
09:10
uncleyear joined
|
|||
bartolin | star-m: BEGIN my %c; multi foo ($a where %c{$a}:exists) { say "cached " ~ %c{$a} }; multi foo ($a) { %c{$a} = $a; say $a }; for 1..10 { my $n = (1..10).pick; foo($n) } | 09:10 | |
camelia | star-m 2015.03: OUTPUT«51cached 56cached 684cached 4cached 63» | ||
bartolin | m: BEGIN my %c; multi foo ($a where %c{$a}:exists) { say "cached " ~ %c{$a} }; multi foo ($a) { %c{$a} = $a; say $a }; for 1..10 { my $n = (1..10).pick; foo($n) } | ||
camelia | rakudo-moar 06e4e9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/2I7owAarneInvalid typename 'exists' in parameter declaration.at /tmp/2I7owAarne:1------> 3my %c; multi foo ($a where %c{$a}:exists7⏏5) { say "cached " ~ %c{$a} }; multi foo » | ||
bartolin | that looks like a fallout of jnthn's EXPR preclim fix | 09:11 | |
the example is (adjusted) from integration/advent2012-day04.t, which we only execute as stresstest | 09:12 | ||
if it's expected to work I would rakudobug it and add a new test to roast (which is not marked as 'stress') | 09:18 | ||
09:20
tinyblak left
|
|||
masak | good antenoon, #perl6 | 09:21 | |
bartolin: why `BEGIN my %c` and not just `my %c` -- what's the semantic difference between those two? | 09:22 | ||
moritz | \o | 09:23 | |
masak is cursed these days with knowing a little too much about scoping rules | |||
09:23
muethos joined
|
|||
moritz | mostly off-topic question: can somebody recommend literature on how to implement workflow systems in business applications? | 09:24 | |
masak | m: my %c; sub foo($a where %c{$a}:exists) {} | ||
camelia | rakudo-moar 06e4e9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ZUwJ2FZQXcInvalid typename 'exists' in parameter declaration.at /tmp/ZUwJ2FZQXc:1------> 3my %c; sub foo($a where %c{$a}:exists7⏏5) {}» | ||
bartolin | masak: hmm, I took that from the failing example roast | ||
masak | bartolin: consider whether it's useless there too ;) | 09:25 | |
bartolin | masak: yeah, I'm considering it right now ;-) | ||
moritz | m: my %c; sub foo($a where { %c{$a}:exists }) {} | ||
camelia | ( no output ) | ||
09:25
domidumont joined
|
|||
masak | m: my %c; sub foo($a where (%c{$a}:exists) ) {} | 09:28 | |
camelia | ( no output ) | ||
09:29
domidumont left
09:30
domidumont joined
09:42
muethos left
09:45
aborazmeh left
|
|||
masak wonders if "Perl 6 regex syntax" shouldn't be its own item in the list in c2.com/cgi/wiki?AlternativesToRegularExpressions | 09:45 | ||
09:49
spider-mario joined
09:50
muethos joined
09:55
setty1_ left
|
|||
RabidGravy | Unless anyone can explain it, I'm calling this a bug: | 10:01 | |
m: my enum Bar <A B C>; say B.value; say B.can("value") | |||
camelia | rakudo-moar 06e4e9: OUTPUT«1Too many positionals passed; expected 2 arguments but got 3 in block <unit> at /tmp/9JfnjneQzw:1» | ||
10:02
domidumont left
10:03
brrt joined
|
|||
lizmat | looks like bug, please report :-) | 10:04 | |
dalek | ast: 0d91ae9 | usev6++ | integration/error-reporting.t: Add test for RT #123684 |
10:05 | |
10:09
domidumont joined
|
|||
xinming | What is the best way to loop over an array with idx => $value pair? | 10:10 | |
masak | m: my @array = foo => 1, bar => 2; for @array -> Pair (:$key, :$value) { say "$key ~~> $value" } | 10:11 | |
camelia | rakudo-moar 06e4e9: OUTPUT«foo ~~> 1bar ~~> 2» | ||
masak | xinming: like that? | ||
the `Pair` is optional | |||
m: my @array = foo => 1, bar => 2; for @array -> (:$key, :$value) { say "$key ~~> $value" } | 10:12 | ||
camelia | rakudo-moar 06e4e9: OUTPUT«foo ~~> 1bar ~~> 2» | ||
masak | mostly there to show what's going on (unpacking). | ||
xinming | masak: I mean something like my @array = 'a' .. 'z'; for @array -> ($idx, $val) { ... } | ||
I know we can use something like loop | 10:13 | ||
loop (my $cnt = 0; $cnt < @array.elemns; $cnt++) { my $val = @array[$cnt]; ... } | |||
10:14
AlexDaniel left,
AlexDaniel joined
|
|||
masak | m: my @array = "a".."d"; for @array.pairs -> (:$key, :$value) { say "$key ~~> $value" } | 10:14 | |
camelia | rakudo-moar 06e4e9: OUTPUT«0 ~~> a1 ~~> b2 ~~> c3 ~~> d» | ||
masak | that's how it'd do it, I think. | ||
m: my @array = "a".."d"; for @array.kv -> $key, $value { say "$key ~~> $value" } | |||
camelia | rakudo-moar 06e4e9: OUTPUT«0 ~~> a1 ~~> b2 ~~> c3 ~~> d» | ||
masak | also works. | ||
and is maybe even a bit more idiomatic, come to think of it. | 10:15 | ||
whoever decided that .kv should work on arrays: karma to you. | |||
probably TimToady++ :) | |||
xinming | bbl. | 10:16 | |
I was thinking, What does (:key mean | |||
does (:$key, :$value) | |||
pointy sub | |||
signature | |||
I think I understand now | |||
dalek | k-simple: dc8f299 | smls++ | lib/GTK/Simple.pm6: Set the main window title properly, instead of abusing argv[0] gtk_init()'s argv parameter is meant to be hooked up to the program's command-line argument list, with the first arg being the program name itself. GTK uses this first arg as the default title for the main window, but strips all but the last path component so that running a GTK app as "/usr/bin/myapp --foo" uses "myapp" as the default title. This mechanism is thus unsuitable for implementing the :title adverb which is supposed to be able to set arbitrary titles: GTK::Simple::App(title => "Enable / Disable") This patch passes the program name as argv[0] like GTK expects, and then explicitly sets the main window title using gtk_window_set_title() if the :title adverb is specified. This fixes #2 |
10:17 | |
xinming | pair return a pair, with key => $key, | ||
dalek | ast: 4d4c6a6 | usev6++ | integration/ (2 files): Move test for RT #123684 to integration/weird-errors.t |
10:18 | |
RabidGravy | lizmat, in as #125445 - I'll work around for the time being | ||
10:20
TEttinger joined
10:21
tinyblak joined
|
|||
TEttinger | is there an explanation somewhere of what ops are available? the rubyish example uses: my $hash := QAST::Op.new( :op<hash> ); | 10:21 | |
and then pushes individual expressions onto that, but I have no idea what kind of expression it needs to make a usable hash | 10:22 | ||
key-value pairs? | |||
any pairs? | |||
unpacked items, there just need to be an even number of them? | |||
brrt | TEttinger: ehm, not sure, but we do have an oplist for MoarVM | ||
and we auto-generate a node-types list for MAST from that | 10:23 | ||
as far as nqp hashes goes | |||
10:23
muethos left
|
|||
brrt | i believe you can do: $m := nqp::hash(); nqp::setkey($foo, $bar); | 10:24 | |
but tbh i don''t use that often so wouldn't know | |||
TEttinger | hm | ||
I do wonder what :op<hash> even does | |||
brrt | i'm fairly sure it creates a hash | 10:25 | |
TEttinger | oh, now you're just making things up :P | ||
brrt | :-P | 10:26 | |
10:26
tinyblak left
|
|||
brrt | no, really | 10:26 | |
jnthn | :op<hash> (and thus nqp::hash) wants key, value, key, value... | 10:27 | |
masak | m: my $foo = method { say "OH HAI {self}!" }; 42.$foo | ||
camelia | rakudo-moar 06e4e9: OUTPUT«OH HAI 42!» | ||
TEttinger | thanks brrt++, jnthn++ | 10:30 | |
brrt | yw :-) | 10:31 | |
10:40
RabidGravy left
10:41
salva left
10:44
xfix joined
|
|||
dalek | kudo/nom: 89e97f1 | lizmat++ | src/ (3 files): Deprecate $*(PROGRAM|EXECUTABLE)_NAME |
10:52 | |
10:53
rindolf left
|
|||
dalek | ast: faddde7 | lizmat++ | S02-magicals/progname.t: Handle $*PROGRAM_NAME deprecation |
10:53 | |
10:54
FROGGS[mobile] left
|
|||
dalek | kudo/nom: 6b1ffd6 | lizmat++ | docs/ChangeLog: Mention $*(PROGRAM|EXECUTABLE)_NAME deprecation |
10:55 | |
lizmat | m: my $foo = -> $a { say "OH HAI $a!" }; 42.$foo | 10:57 | |
camelia | rakudo-moar 06e4e9: OUTPUT«OH HAI 42!» | ||
dalek | ast: 5a73e11 | usev6++ | integration/advent2012-day04.t: Remove useless 'BEGIN', masak++ |
10:58 | |
11:00
brrt left
11:03
hahainte1net is now known as hahainternet
|
|||
dalek | ast: f449c23 | lizmat++ | S02-types/deprecations.t: Test for $*(PROGRAM|EXECUTABLE)_NAME deprecation |
11:13 | |
ecs: fe8d383 | lizmat++ | S28-special-names.pod: Deprecate $*PROGRAM_NAME -> $*PROGRAM-NAME |
11:16 | ||
11:23
lue joined,
ShimmerFairy left
11:27
lue is now known as ShimmerFairy
|
|||
TEttinger | so the NQP postcircumfix operators such as [ ] , and { } , they're implemented with something close to... make QAST::Var.new( :scope('positional'), $<EXPR>.ast ); | 11:33 | |
why don't they have any reference or something to the array or hash that's being indexed? | 11:34 | ||
moritz | :scope('positional') ? I don't think I've seen that | 11:36 | |
in NQP, [] turns into nqp::atpos | |||
TEttinger | it's only used in the postcircumfix [ ] as far as I can tell | ||
moritz | in Perl 6, to a call to postcircumfix:<[ ]>() | ||
vendethiel- | moritz: which in turn uses .AT-POS, right? | 11:37 | |
11:37
colomon joined
|
|||
TEttinger | github.com/perl6/nqp/blob/master/s....nqp#L1572 | 11:37 | |
jnthn | :scope('positional') is mostly a little convenience, so we can use QAST::VarWithFallback | ||
As to "where's the array", it's unshifted higher up | 11:38 | ||
That's how method calls are compiled too; compile the call with args, and something higher up i the tree unshifts the invocant. | |||
Mostly falls out of the Perl 6-y view (reflected in its grammar) that [...] is just an interesting kind of postfix. | 11:39 | ||
TEttinger | but what's higher up than postcircumfix<[ ]> ? | ||
I don't really get a lot of this yet | |||
jnthn | I suspect that's called by postfixish, which is probably called by termish | ||
TEttinger | it's starting to fall into place though | 11:40 | |
moritz | vendethiel-: right | ||
TEttinger | really, I just want to implement named functions nth and get, but not operators for accessing those things, because it would be weird with lisp syntax | 11:41 | |
jnthn | ah no, I may be wrong...I think it may be EXPR (the operator precedence thing) that does the unshift in question | ||
TEttinger | oh, that actually would make sense | ||
11:42
MueThoS joined
11:43
rindolf joined,
itz__ joined
11:44
cognominal joined,
MueThoS left
11:45
itz_ left
|
|||
masak | as much as I like TFD, I also feel mentally offloaded if I make a TODO-list to pick the next test from all the time. | 12:10 | |
I wish I understood better why that is :) | |||
12:13
Zhtwn joined
|
|||
Zhtwn | p6: my @foo = my $bar = 42, "str"; say $bar.perl | 12:15 | |
camelia | rakudo-moar 6b1ffd: OUTPUT«42» | ||
Zhtwn | p6: my ( @baz, $quux ); @baz = $quux = 42, "str"; say $quux.perl | ||
camelia | rakudo-moar 6b1ffd: OUTPUT«$(42, "str")» | ||
Zhtwn | trying examples from Variables doc -- why does the "my" change the value in the assignment? | 12:16 | |
masak | I don't think it should. | 12:17 | |
Zhtwn | yeah, it surprised me a bit | ||
moritz | m: my ( @baz, $quux ); @baz = ($quux = 42), "str"; say $quux.perl | 12:20 | |
camelia | rakudo-moar 6b1ffd: OUTPUT«42» | ||
moritz | just a question of precedence | 12:21 | |
jnthn | Indeed; we don't parse the "=" in a "my $x = 42" as an infix, but rather as an initializer | ||
masak | right, but shouldn't the `=` in `$quux = 42` have item assignment precedence? | 12:22 | |
which is tighter than comma | |||
doesn't `=` essentially sit on two different prec levels? | |||
even without `my` or equivalent? | 12:23 | ||
Zhtwn | that's the point being made in the Variables doc with this example: "Note that item assignment has tighter precedence than list assignment and also tighter than the comma." | ||
masak | right. | 12:24 | |
12:26
domidumont left
|
|||
jnthn | Yes, = get be item assignment or list assignment prec level, determined by some rules | 12:26 | |
vendethiel- | masak: "=" for @ having a different precedence level using my has always been "surprising" | ||
it's certainly DWIMM | |||
it's certainly DWIMmy* | |||
jnthn | If I had to guess what's going on, it's about the region of code (the dynamic scope of the parser, more concretely) that the decision is considering | 12:29 | |
And with the my/initializer form it's more restricted | |||
(as in, analyzed at the level of the "my ... =" | |||
Zhtwn | ah. tricky example to use in the Vars doc, then, I'd say. | 12:34 | |
should I expand the doc to include the precedence trickiness? or should this example just be removed? | 12:35 | ||
or is this behavior that may change? I'd add a note about that, then | 12:38 | ||
12:44
Ven joined
|
|||
vendethiel- | m: multi foo(Int) { say "hi"; }; EVAL "multi foo(Str) { say 'bai'; };"; my $a = "hey"; foo($a); | 12:46 | |
camelia | rakudo-moar 6b1ffd: OUTPUT«bai5===SORRY!5=== Error while compiling EVAL_0Missing blockat EVAL_0:1------> 3multi foo(Str)7⏏5 True; expecting any of: new name to be defined» | ||
12:46
larion joined
|
|||
vendethiel- | m: multi foo(Int) { say "hi"; }; EVAL "multi foo(Str) \{ say 'bai'; };"; my $a = "hey"; foo($a); | 12:47 | |
camelia | rakudo-moar 6b1ffd: OUTPUT«Cannot call foo(Str); none of these signatures match: (Int) in block <unit> at /tmp/a_tSwiYJqD:1» | ||
masak | vendethiel-: nice try :) | ||
vendethiel- | m: multi foo(Int) { say "hi"; }; EVAL "multi foo(Str) \{ say 'bai'; };"; my $a = True ?? "hey" !! 5; foo($a); | ||
camelia | rakudo-moar 6b1ffd: OUTPUT«Cannot call foo(Str); none of these signatures match: (Int) in block <unit> at /tmp/iirEc5XhAZ:1» | ||
masak | vendethiel-: but multi dispatch *is* rooted in static things. | ||
12:47
Ven left
|
|||
vendethiel- | *g* | 12:47 | |
masak | vendethiel-: and EVAL has its own lexical scope, out of which you cannot lift a new multi declaration. | 12:48 | |
12:48
Ven joined
|
|||
masak | there's some nice thinking gone into that. | 12:48 | |
or, put differently | |||
vendethiel- | m: our multi foo(Int) { say "hi"; }; EVAL "our multi foo(Str) \{ say 'bai'; };"; say "alive"; my $a = True ?? "hey" !! 5; foo($a); | ||
camelia | rakudo-moar 6b1ffd: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jh9fXLyQcfCannot use 'our' with individual multi candidates. Please declare an our-scoped proto insteadat /tmp/jh9fXLyQcf:1------> 3our multi foo(Int) { say "hi"; }7⏏5; EVAL "our multi foo(Str) \{…» | ||
masak | LONG LIVE LEXICAL SCOPING | ||
Ven | hehe | ||
12:52
smls joined
|
|||
smls | Zhtwn, masak, jnthn: I reported #125416 a few days ago about that item assignment bug (or WAT) | 12:53 | |
12:53
BenGoldberg_ joined
|
|||
jnthn | Not convinced it's a bug, or at least I'd like to see one of (a) a case where the design docs suggest we're doing it wrong, or (b) evidence STD is getting a different answer in the parse than Rakudo | 12:55 | |
smls | jnthn: What about the test cases in the bug report? | 12:56 | |
Don't you think it's weird to parse 1, my $x = 2, 3 as item assignment but Int(1), my $x = 2, 3 as list assignment? | |||
Also, shouldn't a my $x LHS always parse the = with tighter precedence than comma? | 12:57 | ||
12:58
bin_005 left
|
|||
jnthn | Something looks odd in that example, at lesat. | 12:58 | |
Though it's probably also explainable | |||
ah..hmm | |||
There is a discrepancy with STD | 12:59 | ||
That may explain it | |||
token declarator re-declares it | 13:00 | ||
jnthn adds that to see if it changes things | 13:01 | ||
13:01
tinita_ is now known as tinita
|
|||
jnthn | aha, yes | 13:02 | |
That un-WATs the ticket case | |||
13:02
tinyblak joined,
flussenc1 joined,
pmichaud joined
|
|||
jnthn | I thought we already had that...odd | 13:02 | |
13:02
Psyche^_ joined,
integral_ joined,
integral_ left,
integral_ joined
13:03
smls left
|
|||
jnthn | Lemme see what this does to spectest... | 13:03 | |
13:03
darutoko- joined,
Gothmog_1 joined
13:04
rudi_s joined
13:05
Juerd_ joined,
hoelzro_ joined,
Obbi_ joined,
uncleyea1 joined
|
|||
jnthn | m: use Test; sub x(*@x) { +@x }; is x(1.Int, my $x = 2, 3), 3; | 13:06 | |
camelia | rakudo-moar 6b1ffd: OUTPUT«not ok 1 - # Failed test at /tmp/KZowN4b7Yf line 1# expected: '3'# got: '2'» | ||
13:07
fernando____ joined,
fernando____ left,
fernando____ joined,
smash joined,
skarn_ joined
13:08
uncleyear left,
darutoko left,
Psyche^ left,
flussence left,
skarn left,
ugexe left,
smash_ left,
Gothmog_ left,
rudi_s_ left,
pmichaud_ left,
integral left,
hoelzro left,
mephinet left,
yogan left,
fernando___ left,
Juerd left,
Obbi left,
Gothmog_1 is now known as Gothmog_,
Juerd_ is now known as Juerd
13:09
kaare_ left
13:10
smls joined
|
|||
bartolin | m: sub foo ($w) { }; foo :w(3) # trying to set positional parameter via named argument | 13:11 | |
camelia | rakudo-moar 6b1ffd: OUTPUT«Too few positionals passed; expected 1 argument but got 0 in sub foo at /tmp/olcVBPAaVu:1 in block <unit> at /tmp/olcVBPAaVu:1» | ||
bartolin | ^^ I was unable to find an open ticket for this. it seems like it has worked in the past ... | 13:12 | |
13:12
mephinet joined
|
|||
Ven | bartolin: I think that was deprecated/removed quite some time ago... | 13:13 | |
13:13
yogan joined,
uncleyea1 is now known as uncleyear
|
|||
dalek | kudo/nom: 8276cee | jnthn++ | src/Perl6/Grammar.nqp: Fix assignment precedence analysis leak. Per STD, we should have a fresh $*LEFTSIGIL per declarator. Fixes RT #125416. |
13:13 | |
13:13
uncleyear left,
uncleyear joined
|
|||
bartolin | Ven: Oh! It looks there are some fudged tests which rely on it. | 13:13 | |
dalek | ast: a1edc2d | jnthn++ | S03-operators/assign.t: Test to cover RT #125416. |
13:14 | |
jnthn | bartolin, Ven: Yeah, that feature went away. | ||
smls | jnthn: Another case: @foo = $bar = 5, 10; parses both = as list assignments, but my @foo = $bar = 5, 10; parses the 2nd one as item assignment | 13:15 | |
13:16
ugexex joined,
fernando____ is now known as fernando___
|
|||
bartolin | Ven, jnthn: thanks a lot. it looks like it's still mentioned in S06 ... | 13:16 | |
smls | S03 suggests that the determinaing factor for = precedence is "whether the left side is a list or a scalar destination" | ||
bartolin | anyway, I'll adjust those tests, then | ||
jnthn | smls: I don't *think* that difference is out of line with how the standard grammar does it... | 13:17 | |
smls | so if it identified $bar as the destination, shouldn't it automatically use item assignment? | ||
13:18
ilbelkyr_ joined,
amurf_ joined,
ilbelkyr left,
ilbelkyr_ is now known as ilbelkyr
|
|||
smls | OTOH if it considered the whole of (@foo = $bar) as the destination, as in (@foo = $bar) = 5, 10; then it should do list assignment, but in that case $bar should not be filled at all | 13:19 | |
13:19
ribasushi left
|
|||
jnthn | smls: We only get a fresh $*LEFTSIGIL per call to EXPR or declarator | 13:19 | |
13:20
amurf left,
petercommand left
|
|||
smls | Well, I'm arguing more from spec and DWIM here | 13:20 | |
13:20
jasonmay left,
cosimo_ left,
Blub\0 left,
captain-adequate left,
xinming left,
ponbiki left
13:21
moritz left,
Possum left,
agentzh left
|
|||
jnthn | s/spec/design docs/ | 13:21 | |
13:21
pecastro left,
lestrrat left,
bartolin left
|
|||
smls | right | 13:21 | |
though STD is not infallible either, is it? :P | |||
13:22
petercommand joined
|
|||
jnthn | Certainly not, as I've discovered recently | 13:22 | |
smls | It just seems strange (and not supported by the design docs) to identify a $foo as the destination, but then parse the RHS like list assignment. | ||
13:22
ponbiki joined,
captain-adequate joined,
cosimo joined,
bartolin joined,
jasonmay joined
|
|||
jnthn | The mechanism isn't really about identifying destination, is the thing. | 13:22 | |
13:22
ponbiki is now known as Guest84975,
Possum joined,
xinming joined,
pecastro joined
|
|||
jnthn | It's about "does $*LEFTSIGIL end up containing '$'" | 13:23 | |
The one I just fixed was because we failed to have a fresh one of those per declarator. | |||
We do have one per EXPR. | |||
13:23
Blub\0 joined
|
|||
jnthn | iiuc, @foo = $bar = 5, 10; sees an @ first, sets that into $*LEFTSIGIL for the current EXPR, and then the $ from bar never updates it | 13:25 | |
13:26
aborazmeh joined,
aborazmeh left,
aborazmeh joined,
ribasushi joined,
smls left
|
|||
jnthn | But in "@foo = my $bar = 5, 10;" we get $*LEFTSIGIL set for unconditionally by the "my" declarator. The bug I just fixed was that token declarator was missing a fresh declaration of $*LEFTSIGIL | 13:27 | |
13:27
smls joined,
smls left
|
|||
jnthn | So anyway, that's why we get things the way we do, as far as I can tell | 13:27 | |
13:28
smls joined,
moritz joined,
agentzh joined,
agentzh left,
agentzh joined
13:29
lestrrat joined
|
|||
smls | TimToady will know more :) | 13:29 | |
jnthn | Aye | ||
Anyway, now I understand why what's happening is happening, and after going through STD I think it must get the same answers. | |||
13:30
aborazmeh left
|
|||
jnthn | I don't have any idea right now (a) if it's desirable to handle this differently, 'cus it'll almost certainly mean complicating the rules, and (b) how I'd make such a change to try it out | 13:31 | |
Right now the rule is "first sigil we encounter in an expression or in a declarator decides it" | |||
Which is easy enough to explain and remember. | 13:32 | ||
And will DWIM in enough cases. | |||
Zhtwn | ...for programmers that think like parsers... ;-) | 13:33 | |
smls | well, it's easy enough to remember when you think about expressions from a STD/Rakudo grammar perspective | ||
jnthn | Zhtwn: Those who don't will probably not write such complex expressions :P | ||
13:34
xfix left
|
|||
jnthn | Heck, I do know about parsers and I'd tend not subject folks reading my code to such things. :P | 13:34 | |
Zhtwn | jnthn: true. That's a good argument for removing this example from the Variables doc, eh? | 13:35 | |
or maybe putting a "it's neat, but be careful" warning? | |||
jnthn | Zhtwn: I think it's worth the docs containing an example of where you might get caught out | 13:36 | |
Zhtwn | ok, I'll get on that | ||
jnthn | I think the "decided by first sigil seen in an expression or declarator" isn't a bad summary. | ||
smls | jnthn: Well, the testcase from my bugreport was golfed down from a GTK::Simple program where I had something like set_contents( ..Label.new(), my $box = ..Box.new( ... ), ...) | ||
jnthn | If illustrated with examples | ||
smls: Yeah, that one should be dealt with now | |||
smls | ok | 13:37 | |
jnthn | That was due to us not declaring a fresh $*LEFTSIGIL per declarator. | ||
So the postfix in the previous thingy before the , wrongly influenced the decision. | 13:38 | ||
13:39
Zhtwn left
|
|||
smls | but without the "my" it would still influence it? | 13:39 | |
jnthn | smls: Indeed | ||
Or at least, so far as I can follow the intent of STD | 13:40 | ||
I think at this point, though, will have to defer to TimToady++. | |||
It's possible I'm missing something, but it seems doing anything different here would be a non-trivial change.... | 13:41 | ||
dalek | ast: a9f6adf | usev6++ | S06-signature/named-parameters.t: Adjust tests which tried to set That feature is no more. |
||
13:42
nys joined
|
|||
moritz | martinfowler.com/articles/enterpriseREST.html "Some people, when confronted with a problem, think "I know, I'll use versioning." Now they have 2.1.0 problems." :-) | 13:47 | |
13:50
smls left
13:51
petercommand left,
petercommand joined
13:52
RabidGravy joined,
zakharyas joined
14:01
smls joined
|
|||
smls | japhb: ping | 14:02 | |
14:02
tinyblak left
|
|||
RabidGravy | boom! | 14:03 | |
14:07
muethos joined
|
|||
dalek | ecs: f01cb30 | usev6++ | S06-routines.pod: [S06] remove fossil this complements 25eb879f36: we no longer map named arguments to positional parameters. |
14:08 | |
bartolin | ^^ could someone please look at that commit and check if it's sane? | 14:09 | |
xinming | How do we compile the perl6 code to moarvm byte code please? | 14:10 | |
Just curious on how the they are built. | |||
moritz | in stages | 14:11 | |
parse it, AST, MAST, bytecode | 14:12 | ||
xinming | I'm reading the compiler-overview.pod | 14:14 | |
I just try to compile a simple perl6 script myself, to see what how they are built. | 14:15 | ||
14:15
kaare_ joined
14:17
isBEKaml joined
14:18
Humbedooh joined,
silug_ left
14:21
cognominal left
|
|||
moritz | --target=ast might be instructive | 14:21 | |
./perl6-m --target=ast -e 'my $x = 42; say $x' | |||
then --target=mast | 14:22 | ||
geekosaur | I think the question is not so much stages as just how one generates the bytecode normally? | ||
xinming | geekosaur: Both. | 14:24 | |
:-) | |||
I also want to see the parsing result for each stage. | |||
moritz | nqp/src/vm/moar/QAST/QASTCompilerMAST.nqp for the MAST->bytecode step, I believe | 14:25 | |
lots of grunt work | |||
ah wait, that's QAST -> MAST | |||
ugexex | Perl6::Grammar.parse($source-code, :actions(Perl6::ACtions.new()).ast.say ? | 14:26 | |
moritz | ugexex: no, perl6-m --target=ast $programfile | ||
14:26
JimmyZ_ joined
|
|||
moritz | you need a bit more work | 14:27 | |
set a Perl6::World instance in $*W, for example | |||
14:32
silug_ joined
|
|||
ugexex | ah | 14:33 | |
m: m: use nqp; use Perl6::Grammar:from<NQP>; use Perl6::Actions:from<NQP>; my $*LINEPOSCACHE; my $x = Perl6::Grammar.parse("say 1;", :actions(Perl6::Actions.new())); say $x.ast.^name; | |||
camelia | rakudo-moar 8276ce: OUTPUT«QAST::CompUnit» | ||
14:33
tinyblak joined
|
|||
ugexex | m: m: use nqp; use Perl6::Grammar:from<NQP>; use Perl6::Actions:from<NQP>; my $*LINEPOSCACHE; my $x = Perl6::Grammar.parse("say 1;", :actions(Perl6::Actions.new())); say $x.ast.dump; | 14:34 | |
camelia | rakudo-moar 8276ce: OUTPUT«- QAST::CompUnit - QAST::Block say 1; - QAST::Var(local __args__ :decl(param)) - QAST::Stmts  - QAST::Op(call) - QAST::Block - QAST::Stmts  - QAST::Var(lexical $! :decl(contvar)) - QAST::Var(l…» | ||
14:35
Ven left
|
|||
xinming | Is there an easy way to dump to moarvm bytecode? | 14:37 | |
14:38
tinyblak left
|
|||
jnthn | If you get a MoarVM bytecode file with "--target=mbc --output=foo.moarvm", then you can "moar --dump foo.moarvm" | 14:39 | |
xinming | I saw that using panda will generate the .moarvm files for pm files. | 14:40 | |
ugexex | panda is literally doing what moritz posted, except --target=mbc | ||
just add a --output="somefile.moarvm" | 14:42 | ||
xinming | Cannot dump this object; no dump method | ||
I got that error | |||
with command perl6-m --target=mbc -e 'my $x = 42; say $x' --output=hahahaha.moarvm | 14:43 | ||
ugexex | perl6-m --target=mbc --output="what.moarvm" -e 'my $x = 42; say $x' | 14:44 | |
14:44
ugexex is now known as ugexe
14:46
JimmyZ_ left,
JimmyZ_ joined
|
|||
xinming | Ok, got it. | 14:46 | |
thanks | |||
moritz | options after the -e are passed to the perl6 programm in -e, and aren't interpreted by the compiler | 14:48 | |
14:49
_mg_ joined
|
|||
xinming | Ok, Thanks, I didn't realize that. | 14:49 | |
mst | moritz: what | 14:51 | |
that should require a -- first :( | |||
xinming | Unhandled exception: While looking for 'ModuleLoader.moarvm': no such file or directory When I try to call full-cleanup or run the dumped .moarvm file, I'll get that error. | 14:53 | |
mst: Glad to see you are here. Do you have a plan to create Catalyst6 for perl6? :-) | 14:54 | ||
mst | xinming: highly unlikely, my first perl6 project is probably going to be carton-for-panda | 14:56 | |
and that's mostly because I want access to the grammar engine | 14:57 | ||
the rest of the language doesn't scratch any itches I currently have | |||
mostly because with Moo(se) perl5's stolen the thing I liked the best :D | 14:58 | ||
TEttinger | mst: are you the shadowcat mst person who implemented wat for perl? | ||
wat's an interesting thing | 14:59 | ||
mst | yes, I am | ||
I like operative lisps | |||
TEttinger | I'm having a fun time learning perl 6 at the same time I implement a lisp in perl 6 | ||
xinming | Moose is great, After I get used to Moose, It made me feel really natural to use the OO in perl6. | 15:00 | |
mst | but I've ended up with an operative prolog derivative instead | ||
TEttinger | I don't really understand the stuff that makes f-exprs special though | ||
I don't exactly know what fexprs really are yet | |||
I attempted to read the kernel spec, did not help too much :) | 15:01 | ||
mst | the way the wat prologue builds things with vau might help | ||
have you done any macro heavy lisp previously? | 15:02 | ||
TEttinger | oh god no | ||
mst | ... | ||
TEttinger | although the first macro I wrote was a macro writing macro in clojure | ||
mst | you shouldn't be scared of that, macros are half the fun | ||
exprs are an even more general case | |||
an unhygienic macro is merely a restricted fexpr | 15:03 | ||
TEttinger | yeah I mean, I've implemented macroexpansion in my lisp before it used perl6 as a toolchain (before, I did a lot more on my own and generated really weird looking lua) | ||
mst | I found Wat really useful for prototyping the DX solver (my prolog derivative) | 15:04 | |
but the production implementation is in highly-functional Moo code | |||
I may re-introduce wat-style stuff later though | 15:05 | ||
TEttinger | so are fexprs a compile-time thing like macros? can they be either compile-time or run-time? | ||
mst | fexpr eliminate the distinction. | 15:06 | |
TEttinger | would it be worth it for me to try to implement macros in my lisp by using fexprs? | ||
hm | 15:07 | ||
mst | uh, there's some performance disadvantages of a naive fexpr based implementation | ||
they're not actually difficult to fix though | |||
TEttinger | yeah, and I would need to expand any compile-time stuff when I hand off the runtime-only QAST to the backend as if it is a perl 6 QAST | 15:08 | |
mst | fexprs are a runtime construct | ||
TEttinger | (I'm using the same toolchain as perl6, which means producing an AST of only runtime stuff) | ||
ok | |||
mst | baaasically, in an fexprs based system, a macro is an fexpr that only uses the local environment at the end, to apply a predictable transform of the source sexprs into expanded sexprs | 15:09 | |
TEttinger | so I'm guessing fexprs get around the old problem that shows up at least in clojure, where you can't pass the value of a macro at runtime, like passing `and` as an argument to `reduce` ? | ||
mst | the way you optimise fexprs is to cache that | 15:10 | |
macro expansion in a normal lisp is effectively 'expanding macro-like fexprs eagerly in a compilation pass' | |||
15:10
zakharyas left
|
|||
mst | and, yes, fexprs pass as arguments fine, though in -most- cases you probably didn't want to do that | 15:11 | |
15:13
_mg_ left
|
|||
nine | Oh how I like this :) > perl6 -Ilib -e 'use Data::Dumper:from<Perl5>; class MyDumper is Data::Dumper { }; my $dumper = MyDumper.new([1]); say $dumper.Dump();' | 15:13 | |
$VAR1 = 1; | |||
mst | :D | ||
TEttinger | nice | 15:14 | |
mst hopes one day somebody will use that to do 'use DX::Endjinn:from<Perl5>;' :) | |||
nine | 68 lines of patch so one doesn't need Perl5Parent anymore for subclassing Perl 5 classes in Perl 6 :) | ||
15:14
muethos left
|
|||
mst | possibly me, depending | 15:14 | |
15:14
_mg_ joined
|
|||
TEttinger | magical, nine. | 15:14 | |
mst | nine: yay | ||
nine: wonder if you could write a MooseX::Rakudo or something to do the converse | 15:15 | ||
nine: I guess MooseX::InsideOut plus MooseX::NonMoose might Just Work, actually | |||
nine | The only problem I see is, that I actually do not have much content for a talk about this anymore. All you need to know is: "install Inline::Perl5, then use Foo:from<Perl5>;". Then there's not much difference anymore between using a Perl 5 or a Perl 6 module. | 15:16 | |
mst | *snrk* | ||
nine: do a talk on writing resultset classes in perl6 :) | 15:17 | ||
TimToady | jnthn: just have a moment, haven't really backlogged yet, but it occurs to me that the correct way to run the precedence limiter is to base it off of the left vs right associativity of the prec level in question, whether it includes the level itself or not | ||
yoleaux | 20 Jun 2015 10:16Z <jnthn> TimToady: While that helps the colon pair case, we run into problems with pairs, as in "my $a = 'foo' => 'bar'", because those are %item_assignment too. Also chained assignments to declarators seem to go wrong (e.g. my $a = $b = 2). | ||
20 Jun 2015 10:58Z <jnthn> TimToady: I ended up doing github.com/rakudo/rakudo/commit/9ed8577888 which I suspect you'll want to review; as far as I can tell, STD is wrong for ages on these things and we never noticed. | |||
TimToady notest that = and => are right associative, so should Just Work if we do that | |||
*notes | |||
nine | mst: I probably will do an example on that, yes. Seems like the most common use case for having Perl 6 code inlined in a Perl 5 module. | ||
mst is really looking forward to playing with reversible parsers | 15:18 | ||
mst looks sadly at the pile of preceding yaks | 15:19 | ||
JimmyZ_ | use mojo:from<perl5>; then we have a productive web framework for perl6 now. | ||
😊 | |||
mst | huh | ||
xinming: actually, I might port Web::Simple for a laugh | |||
nine | JimmyZ_: please give it a try :) | ||
BenGoldberg_ | So, should we now do 'use DBI:from<Perl5>' instead of DBIish? | 15:20 | |
15:20
BenGoldberg_ is now known as BenGoldberg
|
|||
mst | that doesn't seem like a question with an answer. | 15:20 | |
15:22
domidumont joined
|
|||
nine | BenGoldberg: if DBIish's limitations prevent you from using Perl 6 for something useful, please use DBI:from<Perl5>. Worst case for Perl 6 is that your application is a good testcase for an updated DBIish | 15:23 | |
15:25
kaare_ left,
kaare_ joined
|
|||
nine | BenGoldberg: or better yet, do use DBIx::Class:from<Perl5>. There are not many reasons for using plain DBI ;) | 15:28 | |
smls | TimToady: Did the GLR design that you and pmichaud were discussing, reach a conclusion? Or is it on hold again? | 15:31 | |
BenGoldberg | Good point, although what I was actually thinking of was that there (presently) are more perl5 database driver backends than perl6 ones... | ||
15:33
tinyblak joined
|
|||
BenGoldberg | Maybe the sensible thing would be to add a fallback, within DBIish, so that if someone tries to connect to a database type it's unaware of, it will try to load the appropriate perl5 DBD::<whatever> module, and give back an appropriately wrapped instance. | 15:35 | |
So if a user wants to use an oracle database, for example, they don't have to think about whether or not there is a 'real' perl6 binding for it (yet), DBIish will "just" work. | 15:37 | ||
mst | BenGoldberg: well volunteered :D | ||
15:55
spider-mario left
15:57
tinyblak left
|
|||
xinming | m: class A { method t (Int @a, Int @b) { @a.perl.say; @b.perl.say; } } A.new.t((1,2), (2,3)); | 16:09 | |
camelia | rakudo-moar 8276ce: OUTPUT«5===SORRY!5=== Error while compiling /tmp/xUoqKCBeYIStrange text after block (missing semicolon or comma?)at /tmp/xUoqKCBeYI:1------> 3 Int @b) { @a.perl.say; @b.perl.say; } }7⏏5 A.new.t((1,2), (2,3)); expecting any of: …» | 16:10 | |
xinming | m: class A { method t (Int @a, Int @b) { @a.perl.say; @b.perl.say; } }; A.new.t((1,2), (2,3)); | ||
camelia | rakudo-moar 8276ce: OUTPUT«Type check failed in binding @a; expected 'Positional[Int]' but got 'Parcel' in method t at /tmp/xc0Ylze_fj:1 in block <unit> at /tmp/xc0Ylze_fj:1» | ||
xinming | Good, How do we pass an "array" to specified array please? | ||
I tried with ((1,2), (2,3)) | 16:11 | ||
also with ([1,2], [2,3]) | |||
neither worked. | |||
moritz | that's jsut Arrays, not Array[Int] | 16:12 | |
xinming | Yes, But two arrays in arg won't, work, right? | ||
moritz | m: m: class A { method t (Int @a, Int @b) { @a.perl.say; b.perl.say; } }; A.new.t(Array[Int].new(1, 2), Array[Int].new(3)) | 16:13 | |
camelia | rakudo-moar 8276ce: OUTPUT«5===SORRY!5=== Error while compiling /tmp/FWI81QxPQWUndeclared routine: b used at line 1» | ||
moritz | m: m: class A { method t (Int @a, Int @b) { @a.perl.say; @b.perl.say; } }; A.new.t(Array[Int].new(1, 2), Array[Int].new(3)) | ||
camelia | rakudo-moar 8276ce: OUTPUT«Array[Int].new(1, 2)Array[Int].new(3)» | ||
16:13
tinyblak joined
|
|||
xinming | Thanks, though, a bit confused. | 16:13 | |
16:13
tinyblak left
|
|||
xinming | will Array[Int](@old_array) work? | 16:14 | |
Let me try | |||
worked. | |||
m: class A { method t (Int @a, Int @b) { @a.perl.say; @b.perl.say; } }; A.new.t(Array[Int](1,2), Array[Int](2,3)); | 16:15 | ||
camelia | rakudo-moar 8276ce: OUTPUT«Array[Int].new(1, 2)Array[Int].new(2, 3)» | ||
xinming | Thanks | ||
16:16
tinyblak joined
16:17
uncleyea1 joined
16:19
uncleyear left
|
|||
moritz | m: class A { method t (Int @a, Int @b) { @a.perl.say; @b.perl.say; } }; A.new.t( (my Int @ = 1, 2, 3), (my Int @ = 4, 5, 6)); | 16:20 | |
camelia | rakudo-moar 8276ce: OUTPUT«Array[Int].new(1, 2, 3)Array[Int].new(4, 5, 6)» | ||
16:24
molaf joined
16:26
Bucciarati_ is now known as Bucciarati
|
|||
smls | Is there someone besides japhb who understands perl6-bench? | 16:28 | |
I want to test a new benchmark I added in a local git clone | |||
preferably, using the r-m and p5 already installed in my system | |||
But whatever I tell ./bench, either tries to download and build dozens of compiler/version combinations, or does seemingly nothing at all. | 16:29 | ||
16:31
isBEKaml left
16:33
Ven joined
16:34
cognominal joined
16:47
zakharyas joined
|
|||
xinming | m: class X { has $.val; }; class T { has X @.array; method init () { for @!array.kv -> $k, $v { @!array[$k].val($k); }; @!array.perl.say; } }; my @x = (1..5).map: { X.new }; T.new(array => @x).init; | 16:47 | |
camelia | rakudo-moar 8276ce: OUTPUT«Too many positionals passed; expected 1 argument but got 2 in method init at /tmp/PDZvRQUUKF:1 in block <unit> at /tmp/PDZvRQUUKF:1» | ||
xinming | Is this a bug? | ||
16:48
molaf left
|
|||
xinming | the @!array[$k].val($k) thing. | 16:48 | |
16:48
molaf joined
|
|||
xinming | I tried to make $.val is rw. But still the error. | 16:48 | |
moritz | don't name classes X, because it hides the X:: namespace in which most exceptions live | 16:49 | |
maybe you get a wrongly reported error that way | |||
xinming | m: class YY { has $.val; }; class T { has YY @.array; method init () { for @!array.kv -> $k, $v { @!array[$k].val($k); }; @!array.perl.say; } }; my @x = (1..5).map: { YY.new }; T.new(array => @x).init; | 16:50 | |
camelia | rakudo-moar 8276ce: OUTPUT«Too many positionals passed; expected 1 argument but got 2 in method init at /tmp/SgebKf8LsW:1 in block <unit> at /tmp/SgebKf8LsW:1» | ||
xinming | moritz: Thanks, Will remember that. | ||
Here, the problem is, it seems the public accessor doesn't allow support write. | |||
moritz | @!array[$k].val = $k | 16:51 | |
xinming | Even if I added is rw after has $.val | ||
Ok, so, It only generates reader, not writer. | |||
Thanks | |||
moritz | no, it generates a writer | ||
but you use it as an lvalue, not by passing in the new value | 16:52 | ||
m: class A { has $.x is rw }; my $a = A.new; $a.x = 42; say $a.x | |||
camelia | rakudo-moar 8276ce: OUTPUT«42» | ||
xinming | moritz: The writer is differnt from the lvalue, writer can be over writtered by subclass. | 16:53 | |
moritz | xinming: if you say so; but calling an rw method only a reader is also misleading | ||
xinming | If we make it a lvalue, do we have to make a writer method to modifiy the value before storing it? or, we can still update the value before it is updated. | 16:54 | |
16:55
uncleyea1 is now known as uncleyear,
uncleyear left,
uncleyear joined
|
|||
xinming | The idea of reader writer thing are from moose. I'll learn to use the perl6 way | 16:55 | |
16:58
zakharyas left
17:01
yqt joined,
GHAAIQ55 joined
17:02
xfix joined
|
|||
smls | "writer can be over writtered by subclass" -- so can an rw accessor, can't it? | 17:03 | |
ugexe | sounds like you want a Proxy | ||
smls | yeah | 17:04 | |
17:17
Ven left
|
|||
smls | m: class A { has $.a = 4 }; class B is A { method a { Proxy.new(FETCH => -> $ { self.A::a / 2 }, STORE => -> $, \val { self.A::a = val } ) } }; my $b = B.new; dd $b.a; dd $b.a = 5; dd $b | 17:19 | |
camelia | rakudo-moar 8276ce: OUTPUT«2.0Cannot modify an immutable Int in block <unit> at /tmp/w5HqoR0bFx:1» | ||
smls | I can't make it work. :( | ||
xinming | smls: You need is rw. | 17:20 | |
smls | d'oh | ||
xinming | $.a is rw | ||
smls | m: class A { has $.a is rw = 4 }; class B is A { method a { Proxy.new(FETCH => -> $ { self.A::a / 2 }, STORE => -> $, \val { self.A::a = val * 10 } ) } }; my $b = B.new; dd $b.a; dd $b.a = 5; dd $b | ||
camelia | rakudo-moar 8276ce: OUTPUT«2.025.0$b = B.new(a => 50)» | ||
smls | it's a lot to write though. | 17:21 | |
bartolin | m: say Int.^methods(:tree) # is this NYI or a fossil? | ||
camelia | rakudo-moar 8276ce: OUTPUT«Unexpected named parameter 'tree' passed in any methods at src/gen/m-Metamodel.nqp:467 in block <unit> at /tmp/SCiXhCqJrV:1» | ||
bartolin | m: say Int.^methods(:private) # is this NYI or a fossil? | ||
camelia | rakudo-moar 8276ce: OUTPUT«Unexpected named parameter 'private' passed in any methods at src/gen/m-Metamodel.nqp:467 in block <unit> at /tmp/xWtgQSRxT9:1» | ||
17:22
khisanth_ joined
17:23
Khisanth left
|
|||
dalek | rl6-roast-data: c6a75bf | coke++ | / (9 files): today (automated commit) |
17:23 | |
moritz | bartolin: :tree only exists for parents, iirc | 17:28 | |
bartolin: and .^methods(:private) is instead .^private_method_table (but doesn't include superclasses) | 17:29 | ||
xinming | How do we get methods names for a type? | 17:30 | |
.^methods returns soemthing unreadable for human | |||
ignore me, I'm using something like .^methods.perl.say | |||
I should use .^methods.say | |||
smls | m: .say for Str.^methods>>.name | ||
camelia | rakudo-moar 8276ce: OUTPUT«BUILDIntNumchompchoppredsuccmatchordssamecasesamespacetrim-leadingtrim-trailingtrimencodeNFCNFDNFKCNFKDwordcasetransindentpathcodescharsuclctctclcflipordWHYWHIC…» | ||
FROGGS | m: say Any.^methods».name | ||
camelia | rakudo-moar 8276ce: OUTPUT«invoke exists_key EXISTS-KEY delete_key DELETE-KEY delete_pos DELETE-POS list flat eager hash Hash Parcel List elems end keys kv values pairs antipairs invert pairup squish rotor reverse sort reduce combinations permutations unique uniq pick roll classify …» | ||
moritz | .^methods>>.name | ||
bartolin | moritz: both (:tree and :private) are still mentioned in S12 as selector parameters for ^methods | ||
moritz: could be removed there? | 17:31 | ||
17:31
khisanth_ left,
khisanth_ joined
|
|||
xinming | I think I'd vote for a method name to return the max index value in an array. | 17:33 | |
17:34
tinyblak left
|
|||
xinming | We have max already. :-) | 17:34 | |
17:34
tinyblak joined
|
|||
smls | you mean .end ? | 17:34 | |
xinming | smls: Nope, the max index for with the value | 17:35 | |
(1,5,3).max will return 5 | 17:36 | ||
I'd hope a method to return the 1 means the second item | |||
But it's easy to be implemented anyway | |||
17:38
jack_rabbit left
|
|||
smls | m: my @a = 1, 5, 3; say @a.keys.max({ @a[$_] }) | 17:39 | |
camelia | rakudo-moar 8276ce: OUTPUT«1» | ||
smls | Maybe .max should accept :key and :kv adverbs, like .[] | 17:41 | |
.first-index and .grep-index could also be deprecated in favor of .first(... , :k) and .grep(... , :k) | 17:42 | ||
17:42
mj41 joined,
Ben_Goldberg joined
|
|||
smls | alternative there could be a .max-index method, but the name is LTS as it sounds like it might do what .end does | 17:43 | |
ugexe | one returns indices, one returns items | ||
smls | LTA | ||
ugexe: Yeah, and an adverb could control that too | 17:44 | ||
ugexe | no argument there. just pointing out they dont do quite the same thing | ||
17:44
skids joined
17:45
khisanth_ left,
BenGoldberg left
|
|||
smls | like @foo[4] @foo[4]:k @foo[4]:kv | 17:45 | |
17:45
khisanth_ joined
17:48
telex left
17:50
telex joined
|
|||
mj41 | m: gist.github.com/mj41/922a64d233779ceaa17e | 17:52 | |
camelia | rakudo-moar 8276ce: OUTPUT«No compiler available for language 'perl5' in any at /home/camelia/rakudo-inst-1/share/perl6/runtime/CORE.setting.moarvm:1 in any at /home/camelia/rakudo-inst-1/share/perl6/runtime/CORE.setting.moarvm:1 in any load_module at src/gen/m-ModuleL…» | ||
mj41 | m: gist.github.com/mj41/922a64d233779ceaa17e | 17:53 | |
camelia | rakudo-moar 8276ce: OUTPUT«042No compiler available for language 'BestLang' in block <unit> at /tmp/35gXR9KIum:17» | ||
mj41 | hi, any idea why 'multi sub EVAL' doesn't work here? | 17:55 | |
17:55
Zhtwn joined
|
|||
japhb | smls: pong | 17:56 | |
17:56
rindolf left
|
|||
smls | japhb: trying to figure out perl6-bench | 17:57 | |
how can i test a mini-benchmark on only the latest r-m an perl5? | |||
I tried: ./bench setup; ./bench extract rakudo-moar/nom perl5/v5.22.0; ./bench build rakudo-moar/nom perl5/v5.22.0; ./bench time rakudo-moar/nom perl5/v5.22.0 | 17:58 | ||
mj41 | perl5 works ( defined here github.com/rakudo/rakudo/blob/nom/...ol.pm#L168 ) but my BestLang doesn't | ||
smls | but the timings/ directory tree does not contain any files, just empty folders | ||
ugexe | mj41: when you turn it into a multi you need to look at where it dispatches. i imagine 'question', a string, matches a different EVAL better than the one you expect | 17:59 | |
mj41 | ugexe: yes, but multi is the same as for 'perl5' ... and 'perl5' works ok | 18:00 | |
18:00
profan joined
|
|||
ugexe | its also using a proto | 18:01 | |
18:01
araujo left
|
|||
japhb | smls: Did the previous stages work? Meaning, do you see built components/, and are there perl and perl6 binaries in their respective build trees? | 18:04 | |
18:05
JimmyZ_ left,
tinyblak left
|
|||
smls | japhb: ah, looks like the perl6 binary is not there (the perl one is, though) | 18:05 | |
japhb | smls: Sounds like something broke in that build. :-( | 18:06 | |
jnthn | mj41: It seems that the candidate for EVAL-ing Perl 6 code will swallow anything :( | 18:07 | |
japhb | smls: Oh, also, there are a few people who have worked on perl6-bench over the years. timotimo++ probably the most. | ||
jnthn | mj41: Testing a patch for that now | 18:10 | |
timotimo | o/ | 18:16 | |
18:17
beastd joined
|
|||
japhb | nine: Just wanted to let you know that your Inline::* work is very appreciated. Recently got Perl 6 calling Python calling Perl 6 in order to make a Python framework that insisted on being the "outer" entry point (and calling *exit* instead of just returning up the stack when the innermost code returned) happy. | 18:19 | |
smls | japhb: This time, 'build' worked, and I now have components/rakudo-moar/nom/perl6 and components/perl5/v5.22.0/perl executables | ||
mj41 | jnthn++ | ||
smls | however, ./bench time still doesn't seem to do anything | ||
japhb | nine: And I hope to add two more layers (C++ and another Python), so we'll see how deep I can stack the turtles. :-) | ||
smls: Is there a components/rakudo-moar/nom/install/bin/perl6 ? | 18:20 | ||
smls | yes | ||
masak | japhb++ # living the Parrot multi-lang dream | ||
japhb | Hmmm. Do you have the Perl 5 requisites listed in the README? | ||
masak: Couldn't do it without nine++, arnsholt++, FROGGS++, hoelzro++, jnthn++, etc. (all the nativecall'ing heroes) | 18:21 | ||
xinming | For now, .perl method will hang on recursive lists. Anyway to avoid that? | 18:22 | |
japhb | xinming: Does .DUMP work? | ||
xinming | Also, Is there weak object idea in perl6? | ||
Let me try | |||
good, thanks, that worked. | |||
18:23
yqt left
|
|||
timotimo | smls: just checking; you're giving "./bench time" a list of compiler versions you have, yes? | 18:23 | |
smls | yes | ||
japhb | xinming: Yeah, .DUMP spends more effort trying to deal with unusual data structures ... we haven't really armored .perl yet. | ||
smls: Did you answer my question about Perl 5 requisites? I don't see the answer, but I may have missed it. | 18:24 | ||
timotimo | it could be that bench is hit by a recent GLR-related change? | ||
japhb | timotimo: Oh. Crap. | ||
Yeah, that would painfully make sense, actually. | |||
timotimo | i must test this hypothesis | ||
japhb | Please | ||
smls | japhb: Still checking. Looks I have a problem with P5's DateTime module | ||
timotimo | i still have some errands to do and commuting, though | ||
BBIAB | 18:25 | ||
japhb | smls: Yeah, that would do it too. | ||
Zhtwn | I'm still trying to grok when item assignment is used vs list assignment. Not quite there yet. | 18:26 | |
jnthn said it's decided based on the first sigil seen in expression or declarator | |||
smls | o.O "[1] 25765 segmentation fault (core dumped) perl -e 'use DateTime'" | ||
Zhtwn | p6: my @foo = my $bar = 5, 10; say $bar; # list contest | ||
camelia | rakudo-moar 8276ce: OUTPUT«5» | ||
japhb | smls: Woah. You've got some issues on that box. | 18:27 | |
smls | That's with a distro-packaged perl-datetime :/ | ||
japhb | smls: Is it a distro-packaged perl? | ||
Zhtwn | p6: my ( @foo, $bar) ; @foo = $bar = 5, 10; say $bar; # got list context | ||
camelia | rakudo-moar 8276ce: OUTPUT«5 10» | ||
smls | yes | ||
18:28
spider-mario joined
|
|||
japhb | smls: What does `type perl` say (assuming you use bash)? | 18:28 | |
smls | well, except of course the new one built in components/ | ||
also, how come ./bench does not rpint any errors | |||
"perl is /usr/bin/perl" | |||
Zhtwn | p6: my $bar; my @foo = $bar = 5, 10; say $bar; # expected list; got item? | 18:29 | |
camelia | rakudo-moar 8276ce: OUTPUT«5» | ||
japhb | smls: components/ builds are *only* used as timeable compilers, not to run bench, timeall, or analyze | ||
18:29
yqt joined
|
|||
japhb | smls: OK, I'm suspecting that something is really unhappy on your box. | 18:29 | |
18:30
vendethiel- left
|
|||
japhb | smls: timeall captures errors and segfaults and such from compilers it is timing into the timing file. But to be frank I never expected timeall *itself* to segfault. Because, WTF. | 18:30 | |
18:31
vendethiel joined
|
|||
smls is doing a full package upgrade | 18:31 | ||
18:33
khisanth_ left,
khisanth_ joined
|
|||
jnthn | mj41: Ah, my first attempt at a patch wasn't good enough, apparently | 18:33 | |
[Coke] | is there a way to make panda install from a local copy of a module? | 18:34 | |
18:34
khisanth_ is now known as Guest64394
|
|||
timotimo | [Coke]: of course; panda install . | 18:36 | |
japhb: so it's likely that we're running into a problem with perl5 rather than perl6 for perl6-bench? | |||
japhb | timotimo: Given that he segfaults trying to load DateTime in perl5, yes. | 18:38 | |
timotimo | mhm | ||
japhb | Still, I'm not confident that bench is GLR-safe | ||
18:39
Guest64394 left,
Khisanth joined
|
|||
japhb | It's had a history of being sensitive to changes in eagerness, end-of-block loop behavior, and so on. | 18:39 | |
Because I tried to write it relatively idiomatically, and the idioms kept changing. | 18:40 | ||
[Coke] | timotimo: ok. how do I enforce that for subdeps? | 18:45 | |
er, just deps, really. | |||
I realized it doesn't matter anyway, since I'm already dealing with submodules elsewhere. no worries. | 18:46 | ||
masak | really? "penguin" is now a Unicode character? | ||
[Coke] is trying to get the daily runs to also run the Inline::Perl5 tests. | |||
masak | the Unicode consortium will go to history as "they had a good run, but they really didn't know when to stop" | ||
timotimo | [Coke]: i suppose you'll just have to enumerate them on the commandline? | ||
[Coke] | timotimo: yah, more trouble than it's worth, I guess. danke. | 18:47 | |
timotimo | YW | ||
i suppose something could be thought up | |||
[Coke] | be nice if I had a way to make a local, mini modules mirror. | 18:48 | |
Zhtwn | p6: my $bar; my @foo = $bar = 5, 10; say $bar | 18:52 | |
camelia | rakudo-moar 8276ce: OUTPUT«5» | ||
18:52
molaf left
|
|||
geekosaur | do they think them up or do apple and microsoft hand them lists of things they want? | 18:52 | |
(re unicode) | |||
masak | well, *someone* handed them a penguin. | ||
flussenc1 | .u camel | ||
yoleaux | U+1F42A DROMEDARY CAMEL [So] (🐪) | ||
U+1F42B BACTRIAN CAMEL [So] (🐫) | |||
18:53
flussenc1 is now known as flussence
|
|||
masak | very important distinction, Unicode! | 18:53 | |
18:53
molaf joined
|
|||
Zhtwn | jnthn: if item/list assignment is decided by first sigil in expression or declarator, shouldn't the "my @foo" have made the "$bar =" be list assignment? what am I missing? | 18:53 | |
p6: my $bar; my @foo = $bar = 5, 10; say $bar | |||
camelia | rakudo-moar 8276ce: OUTPUT«5» | ||
geekosaur | penguins are popular/"iconic" at least in the US (cf. several recent animated movies) | 18:54 | |
Zhtwn | p6: my ( @foo, $bar ); @foo = $bar = 5, 10; say $bar; | ||
camelia | rakudo-moar 8276ce: OUTPUT«5 10» | ||
flussence | .oO( maybe they should've taken the approach they used for flags [country-code alphabet intended to display flags using font ligatures], and used it for animals too... ) |
18:55 | |
bartolin | .tell FROGGS would you agree that RT #125129 can be merged into RT #78676 (as a duplicate)? | 18:56 | |
yoleaux | bartolin: I'll pass your message to FROGGS. | ||
flussence | .oO( I'd probably have an easier time memorising the latin species names than numeric codepoints anyhow... ) |
||
FROGGS | bartolin: yes | 18:57 | |
yoleaux | 18:56Z <bartolin> FROGGS: would you agree that RT #125129 can be merged into RT #78676 (as a duplicate)? | ||
bartolin | great, will do that ... | ||
jnthn | Zhtwn: That "$bar = 5" is an expression | 18:59 | |
(Parsed as the initializer to the declaration) | |||
19:00
mj41 left
|
|||
Zhtwn | ah. but if there's no declarator, then the relevant expression is "@foo = $bar =", yes? | 19:00 | |
19:01
mj41 joined
|
|||
jnthn | yes | 19:01 | |
Zhtwn | Thanks - I'm seeing it now. | ||
jnthn | mj41: spectesting updated version of my patch, which will hopefully nail it | ||
(also doing 5 other things at the same time afk :-)) | |||
19:05
tinyblak joined
19:08
Alina-malina left,
Alina-malina joined
19:10
tinyblak left
19:15
zakharyas joined
19:23
Guest58780 joined
19:24
lolisa joined
|
|||
Zhtwn | Okay, I think I've got the item/list assignment details documented: github.com/perl6/doc/pull/95 -- comments? | 19:26 | |
masak | Zhtwn++ | 19:28 | |
I had no idea the rule was that complicated. but it's explained well. | 19:29 | ||
smls | I don't think "first sigil seen" is very accurate | ||
m: say (my $x) = 2, 4, 6; dd $x | |||
camelia | rakudo-moar 8276ce: OUTPUT«2 4 6$x = $(2, 4, 6)» | ||
Zhtwn | ugh. You're right. It's not the sigil, it's the context? The parens give a list context even without a sigil, yes? | 19:31 | |
smls | I'm not sure of this stuff anymore, either | 19:32 | |
m: (my $x,) = 2, 4, 6; dd $x | 19:33 | ||
camelia | rakudo-moar 8276ce: OUTPUT«$x = 2» | ||
19:33
domidumont left
|
|||
Zhtwn | m: my $x; ($x,) = 2, 4, 6; dd $x | 19:35 | |
camelia | rakudo-moar 8276ce: OUTPUT«$x = 2» | ||
Zhtwn | m: my $x; ($x) = 2, 4, 6; dd $x | 19:36 | |
camelia | rakudo-moar 8276ce: OUTPUT«$x = $(2, 4, 6)» | ||
smls | I guess those are both list assignments | ||
masak | doesn't S03 explain the rule somewhere? | 19:37 | |
smls | but in the first, the RHS list is slurped into the LHS list "$x,"m so $x gets onlt the first item | ||
jnthn | Inside a (...) you have a new EXPR, which is opaque to the analysis. | ||
Zhtwn | I haven't been able to find a clear explanation of this in S03, fwiw | 19:40 | |
looks like the rule is "first context seen in the expression or declarator" -- gotta define "first context", then | 19:41 | ||
jnthn | Zhtwn: Yes, the mechanism is actually relatively simple when expressed as code in the grammar, it's just finding a way to translate that. :) | 19:43 | |
19:44
Khisanth left
|
|||
nine | japhb: thanks for telling me :) | 19:44 | |
japhb | nine++ # Thank you very much for writing it. :-) | 19:45 | |
19:48
Khisanth joined
19:50
kurahaupo joined
19:52
darutoko- left
19:55
Ben_Goldberg left
19:56
beastd left
19:57
Ben_Goldberg joined
19:58
vendethiel left
19:59
bin_005 joined
20:04
vendethiel joined
20:07
Khisanth left
|
|||
Zhtwn | okay, updated the PR with better details on how the context is determined for item/list assignment | 20:13 | |
same PR: github.com/perl6/doc/pull/95 | 20:14 | ||
labster | m: my $x = "num", 42; say $x.perl | 20:18 | |
camelia | rakudo-moar 8276ce: OUTPUT«WARNINGS:Useless use of "," in expression "my $x = \"num\", 42" in sink context (line 1)"num"» | ||
20:19
uncleyear left
20:20
uncleyear joined,
xfix left
|
|||
dalek | rl6-bench: b4fd74e | smls++ | lib/Bench/ (2 files): Add 'unit' keyword to make deprecation warning go away |
20:23 | |
rl6-bench: 2648ccb | smls++ | / (3 files): Add 'rc-perfect-shuffle' benchmark ...based on the "Perfect Shuffle" task on RosettaCode. With Perl 5 and Perl 6 implementation; NQP still missing. |
|||
rl6-bench: 710b94d | japhb++ | / (5 files): Merge pull request #24 from smls/master Add rc-perfect-shuffle benchmark and add 'unit' keywords to get rid of deprecation warnings. |
|||
20:24
Khisanth joined
20:27
sftp_ joined
20:29
Khisanth left
20:30
sftp left,
sftp_ is now known as sftp
|
|||
cognominal | I just proposed github.com/rakudo/rakudo/pull/445 for a better warning on code stringification | 20:31 | |
flussence | feature request: can we make Bufs a bit more string-like (and useful)? They seem neglected, maybe because nothing in the core really uses them. I threw some ideas up at github.com/flussence/p6-misc/blob/...f-stuff.p6 | 20:32 | |
smls | japhb: How can I generate the HTML/JS graph for a benchmark? | 20:37 | |
20:38
Khisanth joined
20:47
Khisanth left,
BenGoldberg_ joined
|
|||
japhb | smls: ./bench --style=html_plot compare <builds> | 20:49 | |
smls | thanks | ||
20:49
Khisanth joined
20:50
Ben_Goldberg left
|
|||
dalek | c: c110826 | (Noel Maddy)++ | lib/Language/variables.pod: Clarify item vs list assignment in Variables The context used to determine whether item or list assignment used is a bit tricky. Added detailed explanation and examples. |
21:03 | |
c: e46780a | (Noel Maddy)++ | lib/Language/variables.pod: more clarification on item/list assignment It's the overall expression / declarator context that determines the type of assignment used, not simply the first sigil seen. Update with more examples to show how context is determined. |
|||
c: 7fa81a3 | moritz++ | lib/Language/variables.pod: Merge pull request #95 from Zhtwn/assignment-precedence Clarify item vs list assignment in Variables |
|||
21:04
Khisanth left
21:05
Khisanth joined
|
|||
timotimo | maybe i'll continue looking at the binding lowerer now | 21:13 | |
21:14
BenGoldberg_ left
21:15
BenGoldberg_ joined
21:16
FROGGS_ joined
21:17
RabidGravy left
|
|||
mj41 | jnthn: vďaka a dobrú noc (díky a dobrou noc) | 21:18 | |
jnthn | Oh, I forgot to push the patch! | 21:20 | |
dalek | kudo/nom: c4ccf90 | jnthn++ | src/core/control.pm: Make overriding EVAL to provide languages work. This factoring means we now look in the compiler registry, then for a multi candidate. Before, in theory you could write a multi, but in practice we never dispatched to it. |
||
21:20
FROGGS left
|
|||
jnthn | mj41: Prosím! A dobrou noc o/ | 21:20 | |
[ptc] | does anyone know how often proto.json is updated on the modules.p6.org site? | ||
21:21
Khisanth left
21:24
raiph joined
21:27
zakharyas left
|
|||
mj41 | jnthn: funguje to! děkuji. | 21:27 | |
timotimo | jnthn: in the binder lowerer we're hllizing things that come in; should i put the type capturing logic after that or before it? my intuition says it's gotta be after, so that the type actually matches up even if things got hllized | 21:28 | |
21:28
mj41 left
21:34
_mg_ left,
Khisanth joined
21:37
kaare_ left
|
|||
jnthn | timotimo: yes, after | 21:38 | |
timotimo | doing a spectest run right now | 21:39 | |
21:42
Khisanth left
|
|||
timotimo | had to pull in between to get some more fixes | 21:43 | |
gist.github.com/timo/e578fe92a918cea41f07 this is my patch currently, and it seems to survive the spec tests very successfully | 21:49 | ||
masak | 'night, #perl6 | 21:52 | |
jnthn | 'night, masak | 21:53 | |
jnthn figures he should also rest... o/ | |||
dalek | kudo/nom: a927a5a | timotimo++ | src/Perl6/Actions.nqp: allow binder lowering if type captures exist this happens quite often for roles, as they bind ::?CLASS and $?CLASS for their methods when they are composed. I saw 55 cases of binder lowering being prevented by the existence of type captures across CORE.setting. |
||
21:53
Khisanth joined
|
|||
timotimo | gnite jnthn! | ||
dalek | kudo/nom: 62cdc29 | (Stéphane Payrard)++ | src/core/Code.pm: Warning now gives the exact Code descendant class |
21:55 | |
kudo/nom: b95a226 | lizmat++ | src/core/Code.pm: Merge pull request #445 from cognominal/patch-2 Warning now gives the exact Code descendant class |
|||
21:58
Khisanth left
22:05
DrForr left,
DrForr joined
22:06
Zhtwn left
|
|||
vendethiel | cognominal++ timotimo++ jnthn++ | 22:06 | |
22:08
smls left
|
|||
timotimo | huh? | 22:09 | |
22:10
khisanth_ joined
|
|||
cognominal | thx lizmat++ | 22:12 | |
22:15
khisanth_ left
22:17
lsm-desktop left,
khisanth_ joined
22:24
khisanth_ left,
bin_005 left,
khisanth_ joined
22:28
lsm-desktop joined
22:29
khisanth_ left,
khisanth_ joined
22:34
kurahaupo left
22:40
khisanth_ left
22:42
khisanth_ joined
22:47
khisanth_ left
22:50
khisanth_ joined
22:51
raiph left
22:52
raiph joined
22:55
khisanth_ left
22:58
khisanth_ joined
23:03
khisanth_ left
23:05
khisanth_ joined
23:19
khisanth_ is now known as Khisanth
23:25
bakedb joined
23:49
laouji joined
|