»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by moritz on 22 December 2015. |
|||
00:06
llfourn left
00:08
LeCamarade joined
00:09
Actualeyes left
|
|||
AlexDaniel | m: my %h is default(%h<foo>) | 00:13 | |
camelia | rakudo-moar 67aeef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Cannot use variable %h in declaration to initialize itselfat <tmp>:1------> 3my %h is default(%7⏏5h<foo>) expecting any of: term» | ||
AlexDaniel | okay, so what's up with RT #121807 | 00:15 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121807 | ||
AlexDaniel | I'm staring at that bug report and it makes no sense | 00:16 | |
m: my %z; %z<foo> = 42; my %h is default(%z<foo>); say %h<abc> | |||
camelia | rakudo-moar 67aeef: OUTPUT«(Any)» | ||
AlexDaniel | the whole idea of putting something complex in default(…) is insane considering how is default works | 00:17 | |
so it's not that %h<foo> doesn't work, nothing works there | 00:18 | ||
or am I missing something? | |||
and arguably previous error message made more sense | 00:19 | ||
geekosaur | likely needs to be compile time | ||
m: BEGIN my %z; BEGIN %z<foo> = 42; my %h is default(%z<foo>); say %h<abc> | 00:20 | ||
camelia | rakudo-moar 67aeef: OUTPUT«42» | ||
AlexDaniel | yea, that works, sure | ||
but the ticket talks about putting %h there | |||
which is not going to work ever | 00:21 | ||
well, with the current functionality at least | |||
00:21
llfourn joined
|
|||
AlexDaniel | thing is, I'm half way through reverting the results of RT #125371 | 00:21 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=125371 | ||
AlexDaniel | and now this! | ||
geekosaur | the ticket is complaining that "Variable not declared" is LTA for the user, who can see it right there and does not consider compile vs. run time | 00:22 | |
00:22
jjido left
|
|||
AlexDaniel | okay, then we can probably reopen it, yes | 00:22 | |
perhaps the error message can say that 「is default(…)」 is for compile-time stuff only | 00:23 | ||
geekosaur | yes, that was my thought, the message should at least indicate that the name and value needs to be known *at compile time* | ||
00:24
jraglin left
|
|||
geekosaur | but even that is arguably a little unclear because without thinking deeply one would expect a `my` to have a compile time effect | 00:24 | |
00:24
jraglin joined
|
|||
geekosaur | so explaining what's actually up succinctly might prove ... interesting | 00:24 | |
AlexDaniel | yea… definitely some room for improvement :) | 00:25 | |
00:26
jraglin left
00:37
Actualeyes joined
00:38
rindolf left
00:39
aborazmeh joined,
aborazmeh left,
aborazmeh joined
00:40
Sgeo joined
00:51
BenGoldberg joined,
pyrimidine joined
00:56
pyrimidine left
00:57
cdg joined
01:02
aborazmeh left
|
|||
samcv | AlexDaniel++ on that | 01:11 | |
making the error mention compile time | |||
like make sure all variables used exist before compile time by putting them in a BEGIN block | |||
or something | |||
AlexDaniel | well, it's RT #121807 now, feel free to work on it | 01:17 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121807 | ||
AlexDaniel | I don't know from the top of my head where this error message should go | ||
samcv | idk maybe in the optimizer | 01:18 | |
01:19
cdg left
|
|||
samcv | but i'm not an expert. but the optimizer checks if the symbol exists, then could also check whether it was is default or something | 01:19 | |
or uhm maybe it's in the place that handles the `is` things | |||
though looking at optimizer i see this comment | 01:26 | ||
nless $!symbols.is_lexical_declared($op.name) { | |||
# Shouldn't be able to hit this due to checks done in the parse | |||
# phase, but this will catch anything that sneaks past it. | |||
so idk 1569 in Optimizer.nqp could always try pkutting something in there and see if it ends up getting there. otherwise check out the other place | 01:27 | ||
timotimo | RFC: we should agree on one kind of "speed improvement of 2x" in commit messages and such | 01:47 | |
i.e. there's a line in the changelog that says "between 0.1x [...] faster" | |||
whereas i believe some other lines mean the actual number rather than the number + 1.0 | |||
and now i'm going to bed :) | 01:48 | ||
AlexDaniel | yes | ||
timotimo | i wish our measurement stuff was a bit more automized, such that we can always point to some place (maybe even a gist in a specific file-layout?) where you can see the difference | 01:49 | |
maybe benchable is the key here | |||
though sometimes you need a bit more than just a single irc line | 01:50 | ||
01:51
beginner_guy left
|
|||
AlexDaniel | well, one of the issues is that the code for measurements is not published | 01:51 | |
timotimo | yup | ||
we always just time perl6 -e '...' a bunch of times | |||
and then discard the results after we extract an approximate "n times faster" number | 01:52 | ||
good night! | 01:53 | ||
AlexDaniel | night! | ||
01:55
obfusk_ joined,
obfusk left
02:00
astj_ joined,
sufrostico left,
astj left,
eliasr left
|
|||
samcv | i agre timotimo | 02:02 | |
02:07
mls left
02:13
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
02:22
ggoebel left
|
|||
AlexDaniel | OK I'll finish this thing tomorrow… | 02:28 | |
02:32
AlexDaniel left
02:35
ggoebel joined
02:38
pyrimidine joined
02:40
ssotka left
02:41
gdonald joined
02:43
agentzh joined
02:45
ilbot3 left
02:48
ilbot3 joined,
ChanServ sets mode: +v ilbot3
02:50
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
03:01
mls joined
03:03
bwisti joined
03:23
lizmat_ left
03:25
lizmat joined
03:30
deepbook5broo joined,
deepbook5broo left
03:34
noganex_ joined
03:36
pyrimidine left
03:37
pyrimidine joined,
noganex left
03:42
pyrimidine left
03:44
ssotka joined
04:04
adu joined
04:06
jraglin joined
04:07
pyrimidine joined
04:11
cpage_ left
04:12
pyrimidine left
04:15
cdg joined
04:18
cdg left,
labster joined
04:21
falafel joined
04:27
astj_ left
04:28
astj joined,
lowecase joined,
lowecase left
04:29
Cabanoss- joined
04:30
lowecase joined,
lowecase left
04:32
astj left
04:33
Cabanossi left,
Cabanoss- is now known as Cabanossi
04:35
MasterDuke left
04:39
MasterDuke joined
04:42
kybr left
04:44
cpage_ joined
05:00
astj joined
05:07
parv joined
05:15
khw left
05:30
adu left
05:31
wamba joined
05:39
xtreak joined
05:56
ChoHag left
06:05
llfourn left
06:08
skids left
06:09
pyrimidine joined
06:13
falafel left
06:14
pyrimidine left
06:16
cpage left
06:18
cpage__ joined
06:19
cpage_ left,
cpage__ is now known as cpage_
06:32
llfourn joined,
llfourn left
06:38
pyrimidine joined,
Ben_Goldberg joined
06:39
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
06:44
pyrimidine left
06:47
eroux joined
06:50
RabidGravy joined
06:53
ufobat joined
06:56
darutoko joined
07:04
eroux left
07:05
wamba left
07:09
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
07:11
BenGoldberg left
07:15
pyrimidine joined,
ssotka left
07:19
xtreak left
07:20
pyrimidine left
07:48
bjz joined
07:51
abraxxa joined
07:55
abraxxa left
08:06
bhm_ is now known as bhm
08:10
parv left
08:14
abraxxa joined
08:22
wamba joined
08:29
z-b is now known as zb
08:31
brrt joined
08:34
TEttinger left
08:39
zakharyas joined,
awwaiid left
08:49
xtreak joined
09:01
mr_ron left
09:11
petercommand is now known as [Q_Q]
09:14
lukaramu joined,
[Q_Q] is now known as petercommand
09:15
petercommand left,
petercommand joined
09:16
pyrimidine joined
09:20
pyrimidine left
09:24
rindolf joined
09:30
geekosaur left
09:32
geekosaur joined
09:42
ChoHag joined
10:01
wamba left
10:21
wamba joined
10:27
wamba left
10:29
wamba joined,
bjz left
10:33
geekosaur left
10:34
geekosaur joined
|
|||
brrt | why are things so awefully quiet up here | 10:43 | |
jnthn | Friday. Everyone too tired to even type. :P | 10:45 | |
DrForr | Everyone's partying down. | 10:47 | |
jnthn | Bah, I'm writing Java. That's a lot of typing and a lot of typing. :P | ||
And doens't feel like partying at all P | |||
:P | |||
ilmari | java code is 60% class names by volume | 10:51 | |
jnthn looks at the code and suspects that might actually be right | 10:53 | ||
Thankfully, the large codebase I need to deal with is well designed/implemented. | 10:55 | ||
So it's not a particularly painful experience. :) | |||
11:03
pyrimidine joined
11:06
bjz joined
|
|||
arnsholt | jnthn: Incidentally, I the Java sixmodel implementation is my go-to example of Java code that is not riddled with MethodInvocationBeanFactory and the like =) | 11:08 | |
11:08
pyrimidine left
11:13
geekosaur left
11:14
geekosaur joined
11:22
Ven joined
11:23
bjz left
11:24
gdonald left,
gdonald joined,
bjz_ joined
11:46
Ven left
11:47
jraglin left
11:50
Ven joined
11:53
AlexDaniel joined
11:56
eliasr joined
11:57
Ven left
12:05
geekosaur left
12:06
geekosaur joined
12:07
xtreak left
|
|||
AlexDaniel | ahhhhhhh dang it!! | 12:09 | |
RT #87034 | |||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=87034 | ||
timotimo | 2011 :D | 12:10 | |
AlexDaniel | “this is what I expect” | 12:11 | |
「my @foo = 42, @foo; say @foo」 is ok | 12:12 | ||
but 「my @foo := 42, @foo; say @foo」 ? | 12:13 | ||
12:13
wamba left
|
|||
AlexDaniel | locally I get (42 (Mu)) for the last one | 12:14 | |
timotimo | this is a good-ol' can of worms :) | 12:15 | |
12:16
pyrimidine joined
12:17
faraco joined
12:18
labster left
12:19
bjz joined
12:20
andrzejku left,
itaipu joined,
bjz_ left
12:21
pyrimidine left
|
|||
Geth | doc: 6ca40de9c7 | (Tom Browder)++ | doc/Language/control.pod6 improve wording |
12:23 | |
ilmari | tbrowder: freudian slip? "execunted" | 12:25 | |
tbrowder | ugh... | 12:26 | |
AlexDaniel | c: 3754356d8e^ my @foo := 1..3, (@foo Z+ 100) | 12:28 | |
committable6 | AlexDaniel, ¦«3754356d8e^»: | ||
AlexDaniel | c: 3754356d8e^ my @foo := 1..3, (@foo Z+ 100); say @foo | ||
oops… | |||
Geth | doc: 3a81880c72 | (Tom Browder)++ | doc/Language/control.pod6 fix typo |
||
12:28
bjz left
12:29
committable6 left,
xtreak joined
12:30
committable6 joined,
ChanServ sets mode: +v committable6
|
|||
tbrowder | ilmari: ++, you are first person i've heard from since that changed yesterday | 12:30 | |
ilmari | tbrowder: eh? it was in that commit Geth just reported (3a81880c72) | 12:31 | |
uh, 6ca40de9c7 | |||
tbrowder | but that whole when chunk still needs more love | ||
AlexDaniel | c: 3754356d8e^ my @foo := 1..3, (@foo Z+ 100); say @foo[^10] | 12:33 | |
committable6 | AlexDaniel, ¦«3754356d8e^»: Use of Nil in numeric context in block <unit> at /tmp/MouvyRrLde:11 2 3 100 Nil Nil | ||
AlexDaniel | c: 3754356d8e my @foo := 1..3, (@foo Z+ 100); say @foo[^10] | ||
committable6 | AlexDaniel, gist.github.com/2eb6627efe055a7cc3...044eb4c0bb | ||
AlexDaniel | c: 3754356d8e my @foo := 1..3, (@::foo Z+ 100); say @foo[^10] | ||
committable6 | AlexDaniel, ¦«3754356»: Use of Nil in numeric context in block <unit> at /tmp/UcqDtnL1KH:11 2 3 100 Nil Nil | ||
AlexDaniel | c: HEAD my @foo := 1..3, (@::foo Z+ 100); say @foo[^10] | ||
12:33
bjz joined
|
|||
committable6 | AlexDaniel, ¦«HEAD»: No such method 'iterator' for invocant of type 'Mu' in block <unit> at /tmp/AHeiPmn2aA line 1 «exit code = 1» | 12:33 | |
timotimo | tbrowder: do you think it'd be wise to mention "smart matching" in the "default use of $_" part about when? | ||
AlexDaniel | c: HEAD my @foo := @::foo; say @foo[^10] | 12:34 | |
committable6 | AlexDaniel, ¦«HEAD»: Type check failed in binding; expected Positional but got Mu (Mu) in block <unit> at /tmp/tXA40ekPBu line 1 «exit code = 1» | ||
AlexDaniel | c: HEAD my @foo := 42, @::foo; say @foo[^10] | ||
committable6 | AlexDaniel, ¦«HEAD»: (42 (Mu) Nil Nil Nil Nil Nil Nil Nil Nil) | ||
tbrowder | ach! ilmari: you're correct--i did those few changes online with an ipad and that kind of side error is easy to back due to slow feedback | 12:35 | |
AlexDaniel: that was suggested by gfldex and i think it does belong there, but i want to move it to a better place | 12:36 | ||
AlexDaniel | ? | ||
me? | 12:37 | ||
tbrowder | i'm not sure that feature is clearly stated anywhere else | 12:38 | |
sorry, AD, i meant timotimo: | |||
12:38
araraloren joined
|
|||
timotimo | it hopefully is! | 12:39 | |
it's very powerful and it's everywhere | |||
hm. it has a very short section in language/operators | 12:40 | ||
tbrowder | well, a reference to that for the when discussion would be useful, maybe in addition to the few wordss... | 12:41 | |
12:42
sena_kun joined,
andrzejku joined
|
|||
tbrowder | maybe treat the X in the examples with some words about "boolean context" | 12:43 | |
for instance i noticed while experimenting that a standalone when block with an undefined $_ requires a complete boolean expresssion: | 12:46 | ||
timotimo | docs.perl6.org/syntax/default%20when.html - wait, is this the text you wrote? | 12:47 | |
it doesn't match up with what i remember from the commits/diffs | |||
huh | 12:48 | ||
there has already been a section on when before you started writing it? | |||
that's weird | |||
tbrowder | m: my $a=1; when $a {say 'a'}; when so $a {say 'a'} | 12:49 | |
camelia | rakudo-moar c2349d: OUTPUT«a» | ||
timotimo | m: say 1 ~~ Any | 12:50 | |
camelia | rakudo-moar c2349d: OUTPUT«True» | ||
timotimo | m: say Any ~~ 1 | ||
camelia | rakudo-moar c2349d: OUTPUT«False» | ||
timotimo | m: say Any ~~ True | ||
camelia | rakudo-moar c2349d: OUTPUT«Potential difficulties: Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* instead at <tmp>:1 ------> 3say Any ~~ 7⏏5TrueTrue» | ||
tbrowder | timotimo: i made a large change yesterday including moving the when chunk | ||
timotimo | right | ||
the page i was looking at was already built from your commit 27 minutes ago | 12:51 | ||
the one before the "fix typo" one | |||
do you see the other section about "when" on that page? | |||
andrzejku | today I supported Perl6 :D | ||
brrt | by the way, ugexe++ for zef | 12:52 | |
it works pretty well | |||
timotimo | yeah, it's good | ||
tbrowder | m: my $a=1; when $a {say 'a'} | ||
camelia | ( no output ) | ||
DrForr | andrzejku: Yay, what did you do? | 12:53 | |
tbrowder | timotimo: see above, that needs explaining imho | ||
andrzejku | DrForr, bought moritz book :P | 12:54 | |
moritz | andrzejku: thanks! | ||
andrzejku | good source to learn :) | ||
moritz | I already got an email from leanpub telling me it was purchased, but of course not by whom | ||
andrzejku | moritz, are you planning to add more exercises when book would be finished? | 12:55 | |
that's only 7 exercises now and 40% book | |||
so | |||
14 in all? | |||
moritz | andrzejku: more suggestions for exploration than excerises | ||
and yes, I can add more if there's interest | |||
andrzejku | nice, I would read it soon after work | 12:56 | |
keep writing :) | |||
12:58
Actualeyes left
|
|||
moritz | speakinig of which, I could publish the next chapter | 12:59 | |
AlexDaniel | m: Test; is-deeply (42, Mu), (42, Mu) | ||
camelia | rakudo-moar c2349d: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Undeclared name: Test used at line 1Undeclared routine: is-deeply used at line 1» | ||
AlexDaniel | m: use Test; is-deeply (42, Mu), (42, Mu) | ||
camelia | rakudo-moar c2349d: OUTPUT«Type check failed in binding to <anon>; expected Any but got Mu (Mu) in sub _is_deeply at /home/camelia/rakudo-m-inst-1/share/perl6/sources/C712FE6969F786C9380D643DF17E85D06868219E (Test) line 579 in sub is-deeply at /home/camelia/rakudo-m-inst-1/s…» | ||
AlexDaniel | mc: use Test; is-deeply (42, Mu), (42, Mu) | ||
committable6 | AlexDaniel, gist.github.com/ecdd8eeba58c233a68...788a499952 | ||
AlexDaniel | so how do I test it then? | 13:00 | |
is it a bug? | |||
13:00
xtreak left
|
|||
timotimo | tbrowder: you mean the thing where you can put "so" in front of something? yeah, a few words would be good for that. the mechanism is that smart match against True will always succeed and smart match against False will always afil | 13:01 | |
fail* | |||
so by putting something after the "when" that will evaluate to True or to False, you can trigger that specific block when you want it | |||
13:03
MARTIMM joined
|
|||
tbrowder | m: when Any {.say} | 13:05 | |
camelia | rakudo-moar c2349d: OUTPUT«(Any)» | ||
13:05
faraco left
|
|||
tbrowder | when 0 {.say} | 13:06 | |
timotimo | m: when _:U { .say } | ||
camelia | rakudo-moar c2349d: OUTPUT«5===SORRY!5===Function '_:U' needs parens to avoid gobbling blockat <tmp>:1------> 3when _:U { .say }7⏏5<EOL>Missing block (apparently claimed by '_:U')at <tmp>:1------> 3when _:U { .say }7⏏5<EOL>» | ||
timotimo | hah | ||
how do you spell that %) | |||
i guess Mu:U or Any:U would be correct | |||
moritz | Mu:U | ||
IOninja | Depends on what you wanted to spell :) | 13:07 | |
m: with Mu|Mu { when Any:U { .say } } | |||
camelia | ( no output ) | ||
IOninja | m: without Mu|Mu { when Any:U { .say } } | 13:08 | |
camelia | ( no output ) | ||
AlexDaniel | m: use Test; is-deeply (42, Mu), (42, Mu) | ||
camelia | rakudo-moar c2349d: OUTPUT«Type check failed in binding to <anon>; expected Any but got Mu (Mu) in sub _is_deeply at /home/camelia/rakudo-m-inst-1/share/perl6/sources/C712FE6969F786C9380D643DF17E85D06868219E (Test) line 579 in sub is-deeply at /home/camelia/rakudo-m-inst-1/s…» | ||
AlexDaniel | any comment on this? ↑ | ||
13:08
faraco joined
|
|||
IOninja | Use `is` | 13:08 | |
AlexDaniel | m: use Test; is (42, Mu), (42, Mu) | ||
camelia | rakudo-moar c2349d: OUTPUT«Use of uninitialized value of type Mu in string context.Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful. in block at /home/camelia/rakudo-m-inst-1/share/perl6/sources/C712FE6969F786C9380D643DF17E85D06868219…» | ||
IOninja | haha | ||
moritz | AlexDaniel: it's an unfortunate side effect of the decision that === and eqv should autothread, thus they can't compare Mu | 13:09 | |
IOninja | Why do you have a Mu? | ||
AlexDaniel | m: my @foo := 42, @::foo | ||
camelia | ( no output ) | ||
AlexDaniel | m: my @foo := 42, @::foo; say @foo | ||
camelia | rakudo-moar c2349d: OUTPUT«(42 (Mu))» | ||
IOninja | And you want a roast test that would test for that Mu? | ||
moritz | please don't test this as desired outcome | ||
IOninja | Yes. | ||
AlexDaniel | what's the desired output then? | 13:10 | |
IOninja | I'd say currently undefined. | ||
AlexDaniel | OK | ||
IOninja | And hence no test | ||
AlexDaniel | I'm fine with that | ||
IOninja | 'cause Mu there doesn't feel overly useful and if we add a test we lock ourselfs into having Mu there | ||
jnthn wonders if a compile-time error would be the best thing... | |||
IOninja | m: my @foo := 42, @foo; say @foo | 13:11 | |
camelia | rakudo-moar c2349d: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Cannot use variable @foo in declaration to initialize itselfat <tmp>:1------> 3my @foo := 42, @7⏏5foo; say @foo expecting any of: term» | ||
jnthn | m: my @a = 1,2; say @::a | ||
camelia | rakudo-moar c2349d: OUTPUT«[1 2]» | ||
moritz | jnthn: we already have one for the normal case, and the @::foo is a workaround against that :-) | ||
AlexDaniel | yea, I don't mind if there was a proper compile-time error | ||
13:11
itaipu left
|
|||
moritz | but is that something you'd write accidentally? | 13:12 | |
AlexDaniel | no | ||
moritz | then what's the point? | ||
13:12
Actualeyes joined
|
|||
IOninja | We plan to remove that error | 13:12 | |
m: my @foo = 42, @::foo; say @foo | 13:13 | ||
camelia | rakudo-moar c2349d: OUTPUT«(\Array_64468560 = [42 Array_64468560])» | ||
IOninja | ^ cause that works for example | ||
moritz | but that doesn't work for binding, right? | ||
AlexDaniel | yes | ||
IOninja | Right | ||
moritz | so we should keep the error in the case of binding | ||
AlexDaniel | it's only binding that is an actual issue | ||
… no | |||
moritz | why not? | ||
IOninja | Why no? | ||
AlexDaniel | because you just get Mu, what's so horrible about it? | 13:14 | |
DIHWIDT | |||
IOninja | Because the user likely didn't want a Mu there | ||
AlexDaniel | what did they want then? | ||
IOninja | Possibly a circular array | 13:15 | |
moritz | AlexDaniel: they likely made a wrong assumption | ||
IOninja | Same with cases that end up with VMNull or whatever it was | ||
moritz | AlexDaniel: which is why we should catch the behavior that is a likely error, and undefined behavior anyway | ||
IOninja | m: my \a = a; say a.^name | ||
camelia | rakudo-moar c2349d: OUTPUT«VMNull» | ||
AlexDaniel | yea, feel free to implement a proper error | ||
IOninja | m: my $a := $a; say $a.^name | ||
camelia | rakudo-moar c2349d: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Cannot use variable $a in declaration to initialize itselfat <tmp>:1------> 3my $a := $7⏏5a; say $a.^name expecting any of: term» | ||
IOninja | m: my $a := $::a; say $a.^name | ||
camelia | rakudo-moar c2349d: OUTPUT«VMNull» | ||
AlexDaniel | that catches more wrong assumptions and doesn't prevent proper code to work | 13:16 | |
13:17
pyrimidine joined,
newbie1 joined
13:22
pyrimidine left
13:28
lizmat left
13:29
bjz left
13:31
lukiramu joined
13:32
espadrine_ joined
|
|||
MARTIMM | m: my @s=1,2,3; for @s { my $line = $^line; say "->> $line"; } | 13:33 | |
camelia | rakudo-moar c2349d: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Redeclaration of symbol '$^line' as a placeholder parameterat <tmp>:1------> 3my @s=1,2,3; for @s { my $line = $^line7⏏5; say "->> $line"; }» | ||
[Coke] yawns. | |||
AlexDaniel | m: my @s=1,2,3; for @s { say "->> $^line"; } | 13:34 | |
camelia | rakudo-moar c2349d: OUTPUT«->> 1->> 2->> 3» | ||
IOninja | m: my @s=1,2,3; for @s { $ = $^line; say "->> $line"; } | ||
camelia | rakudo-moar c2349d: OUTPUT«->> 1->> 2->> 3» | ||
IOninja | MARTIMM: that's normal. $line can be used instead of $^line once the signature has been figured out, hence its complaint about you trying to declare $line | 13:35 | |
13:35
lukaramu left
|
|||
AlexDaniel | m: my @s=1,2,3; for @s -> $line { say "->> $line"; } | 13:35 | |
camelia | rakudo-moar c2349d: OUTPUT«->> 1->> 2->> 3» | ||
IOninja | lets you use these variables inside inner blocks | ||
MARTIMM | Ok, so after using $^line once it is possible to use $line in this case | 13:36 | |
IOninja | Yes. | ||
MARTIMM | thanks, bye | ||
AlexDaniel | bye :) | ||
IOninja | bye... baby 🎶🎶 | 13:37 | |
13:39
wamba joined
13:43
Actualeyes left,
newbie1 left
13:44
newbie1 joined
13:45
newbie1 left
13:46
newbie1 joined
13:47
newbie12 joined,
itaipu joined
13:50
newbie1 left
13:51
wamba left
13:54
user9 left,
user9 joined
13:56
brrt left,
xtreak joined
13:59
brrt joined
14:01
mr_ron joined,
xtreak left
|
|||
Geth | doc: 73f6e6f910 | (Will "Coke" Coleda)++ | 2 files Test doc/Language/haskell-to-p6.pod6 examples Closes #1199 |
14:03 | |
doc: be0e9fb797 | (Will "Coke" Coleda)++ | doc/Language/haskell-to-p6.pod6 Fix spelling of Perl 6 |
|||
14:07
newbie1 joined,
newbie1 left
14:08
yqt joined
14:09
newbie12 left
14:12
Actualeyes joined
14:14
sammers left
14:17
MARTIMM left
14:25
kurahaupo__ joined,
yqt left,
yqt joined
14:33
ufobat left,
yqt left,
yqt joined
14:34
yqt left
14:35
yqt joined,
yqt left,
yqt joined
14:36
yqt left,
yqt joined,
yqt left
14:37
yqt joined
14:38
pmurias joined
14:42
duncan_dmg joined
14:43
abraxxa left
14:49
skids joined
14:52
girafe joined
14:54
itaipu left
|
|||
Geth | doc: 11c89a09f8 | Cale++ | doc/Type/Str.pod6 Add two more examples to comb Just to make the "chunking" ability more obvious to newcomers. |
14:57 | |
14:59
sunnavy left
15:03
yqt left,
yqt joined
15:05
jonas2 joined
15:06
rumble joined,
sunnavy joined
15:08
girafe left,
grumble is now known as Guest51839,
Guest51839 left,
rumble is now known as grumble
15:10
awwaiid joined,
sammers joined
15:13
ufobat joined
15:14
brrt left,
newbie1 joined,
jonas2 left
15:16
yqt left
15:18
pyrimidine joined
15:21
faraco left
15:23
pyrimidine left
15:28
itaipu joined
15:34
raiph joined
15:38
brrt joined,
wamba joined
15:39
rblackwe_ left,
avuserow left,
rblackwe joined
15:40
avuserow joined
|
|||
stmuk_ reads a certain blog post from yesterday and grrs a bit | 15:46 | ||
IOninja | Which one? | 15:47 | |
"Deception in tests considered harmful"? | 15:48 | ||
stmuk_ | yes | 15:49 | |
IOninja | That guy just loves quoting me, eh? :) | ||
Pretty annoying to have your words taken in bits out of context. | 15:50 | ||
stmuk_ | anyway there was useful technical input even if the tone (and use of "deception" was a bit hostile | 15:51 | |
jnthn | "Handling different EOL conventions is straightforward"...heh, heh...except the first thing that happened when we introduced what he proposed was somebody asking for a way to *not* have that happen. | ||
While I agree it's the right default for Proc::Async, you can't just blanket do it; it's be the wrong thing for socket I/O | 15:52 | ||
15:52
jonas2 joined
|
|||
jnthn | *it'd | 15:52 | |
IOninja | "When I write about flaws and problems I observe in Perl 6, people call me names and claim I am mocking Perl 6, lying about its stability etc. In truth, I want to be enthusiastic about Perl 6, but I am disappointed more often than not." | 15:53 | |
heh | |||
stmuk_ | "hard things in being difficult" shock | ||
brrt | i'm not familiar with the perl6 community being mean, so i'm somewhat surprised by that assertion | ||
IOninja | brrt: you clearly missed his famous thesis whose conclusion is Perl 6 Developers Are Racist. | 15:54 | |
brrt | who is this him | ||
and why | 15:55 | ||
IOninja | The guts of which were rebuked with "you never reported a single issue with Perl 6"; so now he has a bunch. | ||
Geth | doc: 159f1ef02e | (Tom Browder)++ | doc/Language/control.pod6 a little more word-smithing attempt at clarity--please change or comment |
||
IOninja | brrt: no idea who he is. A blog author who writes for clicks? | ||
IOninja shrugs | |||
jnthn | IOninja: Yes, and the reports are actually useful, though more abrasive than necesary. | ||
brrt | if this is on twitter, then, i hate to say, you brought this on yourselves and should've known better | ||
:-P | |||
[Coke] | tbrowder: why did you quote "statement modifier form" ? | ||
IOninja | jnthn: yes, I found the ticket on the \r\n thing useful. Not sure why it warranted a blog post. | 15:56 | |
tbrowder | because it's that way in the if description | ||
[Coke] | ... ok. I'd probably have normalized it the other way, but consistency is a good reason. :) | ||
stmuk_ | my favourite from reddit was "By the way, this is open source. I brought the problem to the attention of a broader group of people. Someone else can also fix those tests." | ||
open source isn't "someone else can do it!" | |||
IOninja | I won't make the mistake of reading reddit comments this time :) | 15:57 | |
tbrowder | i agree, without quotes in both cases seems better to me | ||
15:58
sunnavy left,
sunnavy joined
|
|||
[Coke] | tbrowder: are you editing via a git repo or the UI? | 15:59 | |
IOninja | I guess "look at how broken this shit is" garners more clicks than showing something cool about the language. Just as in news all they report about is murders and roberries. | ||
tbrowder | on-line via chrome browser | ||
IOninja | m: say "\r\n".chars; say "\n" eq "\r\n" | ||
camelia | rakudo-moar c2349d: OUTPUT«1False» | ||
IOninja | So it's one grapheme but it's not the same thing as just \n | 16:00 | |
jnthn | Right | ||
[Coke] | tbrowder: ok. (your commits lately have been failng 'make xtest', but if you're doing it via the UI, that's why) no wrroies. | ||
IOninja | Eh. Will figure it all out eventually :) | ||
jnthn | Transformation is done at the point of "I/O" (except not really, it's done at the point of string decoding) | ||
IOninja | *We'll | ||
[Coke] | who just added examples to Str? | 16:01 | |
jnthn | We "just" need to enable that for Proc::Async | ||
[Coke] | is cale here? | ||
tbrowder | if that's a problem i can go back to my repo, but it's so much easier via browser for much stuff | ||
are we getting bad line endings or ending spaces or munged chars? | 16:02 | ||
Geth | doc: 0f03767624 | (Tom Browder)++ | doc/Language/control.pod6 put closing quote in same place as if block's use |
16:05 | |
16:14
cdg joined
|
|||
Geth | doc: 1122a88012 | (Tom Browder)++ | doc/Language/control.pod6 add format chars |
16:18 | |
16:20
pyrimidine joined
|
|||
AlexDaniel | c: all say "\n" eq "\r\n" | 16:23 | |
committable6 | AlexDaniel, gist.github.com/89de8c3f251dc31b4a...d9bc1823cc | ||
16:23
chee is now known as unix,
cdg_ joined
16:24
gdonald left,
unix is now known as Guest42169,
gdonald joined,
Guest42169 is now known as chee
16:25
lostinfog joined
16:26
brrt left
16:27
cdg left
16:28
ssotka joined
|
|||
AlexDaniel | “Low competitive keyword selection, leading to poor search engine rankings” | 16:47 | |
“Last but not the least your online marketing methods are not directed as per latest guideline” | |||
:D | |||
RT spam that actually sounds like a valid bug report xD | 16:48 | ||
16:50
eliasr left
|
|||
Geth | doc: 72d3a7b4b7 | (Will "Coke" Coleda)++ | doc/Language/control.pod6 remove trailing whitespace |
16:52 | |
doc: a92b7604d1 | (Will "Coke" Coleda)++ | xt/code.pws learn new code words |
|||
doc: 99aa1b7065 | (Will "Coke" Coleda)++ | doc/Type/Str.pod6 fix examples |
|||
[Coke] | (docs) How do people feel about making the examples test part of 'make test' so bad examples break the build? | 16:53 | |
perlpilot | [Coke]: Are there any bad examples that are that way on purpose? | 16:54 | |
16:54
cognominal left
|
|||
sena_kun | perlpilot, there are, but they are properly skipped. We can compile and check all "valid" examples as for now. | 16:54 | |
perlpilot | then +1 from me. | 16:55 | |
sena_kun | I'm personally +1 for this feature, but not until I(or someone quickier) do better error reporting. | ||
[Coke] | perlpilot: I just went through some effort to make sure the test passes. :) | 16:56 | |
sena_kun: are you excited about working on that test file? I am happy to do it, and will have time tomorrow. | 17:01 | ||
(much less frustrating than some of my other doc efforts atm.) | 17:02 | ||
17:02
Actualeyes left
|
|||
sena_kun | [Coke], did you mean the test script or some specific doc file? | 17:02 | |
[Coke] | xt/examples* | 17:03 | |
there's 2 bits left there, I think: removing each skip, and converting the test elements to be per-example rather than per-file. | |||
I was talking about the latter. | |||
17:04
devmikey joined
|
|||
sena_kun | Hmm, let's see. I can/plan to do some improvements(for example, do not throw err to /dev/null), but not so much. I'm still worse at Perl 6 than at doc-related digging. :) So I can't disagree with your effort to do the latter. | 17:06 | |
17:06
itcharlie1 joined
17:08
devmikey left
|
|||
sena_kun | This weekend will be quite busy anyway. But I'm very happy that this work recieves any attention, firstly I thought that it was harmful or redundant. | 17:08 | |
17:11
khw joined,
itaipu left
17:16
duncan_dmg left
17:18
itaipu joined
17:42
eroux joined
17:49
espadrine_ left
|
|||
IOninja is really irked by nanis's post | 17:58 | ||
17:59
jraglin joined
|
|||
IOninja | Most annoying is I wasted time like an idiot explaining him how to run the stresstest. | 17:59 | |
18:02
zakharyas left
|
|||
IOninja | m: note (Nil andthen "foo" orelse Nil orelse "bar"); | 18:06 | |
camelia | rakudo-moar c2349d: OUTPUT«-> ;; $_ is raw { #`(Block|81627504) ... }» | ||
IOninja | m: note (Nil andthen "foo" orelse Nil orelse "bar")() | ||
camelia | rakudo-moar c2349d: OUTPUT«Too few positionals passed; expected 1 argument but got 0 in block <unit> at <tmp> line 1» | ||
IOninja | m: note (Nil andthen "foo" orelse Nil orelse "bar")(Nil) | ||
camelia | rakudo-moar c2349d: OUTPUT«Nil» | ||
IOninja | m: note (Nil andthen "foo" orelse Nil orelse "bar")("meow") | ||
camelia | rakudo-moar c2349d: OUTPUT«Nil» | ||
IOninja | Don't really know how to detect an Empty given to `orelse` :/ github.com/rakudo/rakudo/blob/c234...#L658-L684 | 18:07 | |
The +a slurpy destroys it | |||
Feels like `andthen` returning an Empty is a bad idea. | 18:08 | ||
...or maybe don't need to detect it; just execute anything Callable before returning it? | 18:11 | ||
m: note (Nil andthen "foo" orelse Int orelse "bar")("meow") | |||
camelia | rakudo-moar c2349d: OUTPUT«(Int)» | ||
IOninja | seems it isn't the only issue heh | ||
18:11
zakharyas joined
18:13
itaipu left
18:17
itaipu joined
|
|||
gfldex | [Coke], sena_kun I spend some time on thinking about how to run the tests. Firstly each test should be EVALed (that's what EVAL is for). 2ndly they should be sha1ed so we can cache them easily. We can keep a list of sha1s of tests around that we are fine to fail as a flat file, what allows to remove the skiptest mark in the .pod6 files. | 18:18 | |
sena_kun | gfldex, the idea looks smart for me. though it requires some work, but it can be automated easily. | 18:20 | |
gfldex | be chomping each test we got a good chance to cache examples that pop up in more then one .pod6 | 18:22 | |
[Coke] | we don't need to cache them,^H. | 18:25 | |
sena_kun | why? | ||
[Coke] | because it's fast enough | 18:26 | |
so why expend extra coding effort and complexity? | |||
gfldex | fun | 18:27 | |
[Coke] | and we technically only need to insure they compile, so EVAL might be overkill. (we're not checking results or that the runtime works) | 18:29 | |
gfldex | there could be BEGIN magic | ||
[Coke] | (but if that's faster than perl6 -c and works, that's fine.) | ||
gfldex: sure, BEGIN hits us either way. (and it's why we can't easily test the phasers file ATM) | 18:30 | ||
18:31
lostinfog left
18:34
brrt joined
18:35
brrt left
18:37
rindolf left
18:39
espadrine joined
18:40
hankache joined
|
|||
hankache | hello #perl6 | 18:40 | |
yoleaux | 14 Feb 2017 18:24Z <IOninja> hankache: Your perl6intro site tells users to use untested development commits by building them with rakudobrew: perl6intro.com/#_installing_perl_6 We generally avoid suggesting rakudobrew since users aren't skilled enough to fix any issues with it and users should be using properly tested user releases, not whatever commit ended up being HEAD when they build perl6 | ||
18:42
rindolf joined
|
|||
[Coke] | 'allo | 18:43 | |
IOninja | \o | 18:44 | |
18:49
agentzh left
18:50
agentzh joined
|
|||
tony-o | m: class a { method l($x) { "$x".say; }; }; sub b(Callable $x){ $x.(50); }; my a $a .=new; b(&{$b.l}); | 18:50 | |
camelia | rakudo-moar c2349d: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Variable '$b' is not declared. Did you mean '&b'?at <tmp>:1------> 3ble $x){ $x.(50); }; my a $a .=new; b(&{7⏏5$b.l});» | ||
tony-o | m: class a { method l($x) { "$x".say; }; }; sub b(Callable $x){ $x.(50); }; my a $a .=new; b(&{$a.l}); | ||
camelia | rakudo-moar c2349d: OUTPUT«Too few positionals passed; expected 2 arguments but got 1 in method l at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
tony-o | did that break or change somewhere in the last year? | 18:51 | |
IOninja | that is what? | ||
$a.l is missing the $x arg | 18:52 | ||
tony-o | $x arg should be the $b.l | ||
IOninja | c: 2014.02 m: class a { method l($x) { "$x".say; }; }; sub b(Callable $x){ $x.(50); }; my a $a .=new; b(&{$a.l}); | ||
committable6 | IOninja, ¦«2014.02»: 04===SORRY!04=== Error while compiling /tmp/8LeieoGJpXUnsupported use of &{$a.l}; in Perl 6 please use &($a.l)at /tmp/8LeieoGJpX:1------> 03x){ $x.(50); }; my a $a .=new; b(&{$a.l}08⏏04); «exit code = 1» | ||
tony-o | that worked more than a year ago, it may have changed - just don't recall seeing anything | 18:53 | |
m: class a { method l($x) { "$x".say; }; }; sub b(Callable $x){ $x.(50); }; my a $a .=new; b(&($a.l)); | |||
camelia | rakudo-moar c2349d: OUTPUT«Too few positionals passed; expected 2 arguments but got 1 in method l at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
IOninja | Never sen &($a.l) to be a lookup of a method callable | ||
m: class a { method l($x) { "$x".say; }; }; sub b(Callable $x){ $x.(a, 50); }; my a $a .=new; b(&($a.l)); | |||
camelia | rakudo-moar c2349d: OUTPUT«Too few positionals passed; expected 2 arguments but got 1 in method l at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
IOninja | m: class a { method l($x) { "$x".say; }; }; sub b(Callable $x){ $x.(50); }; my a $a .=new; b($a.^lookup: "l")); | 18:54 | |
camelia | rakudo-moar c2349d: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Unexpected closing bracketat <tmp>:1------> 030); }; my a $a .=new; b($a.^lookup: "l")7⏏5);» | ||
IOninja | m: class a { method l($x) { "$x".say; }; }; sub b(Callable $x){ $x.(50); }; my a $a .=new; b($a.^lookup: "l"); | ||
camelia | rakudo-moar c2349d: OUTPUT«Too few positionals passed; expected 2 arguments but got 1 in method l at <tmp> line 1 in sub b at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
IOninja | bah | ||
m: class a { method l($x) { "$x".say; }; }; sub b(Callable $x){ $x.(a, 50); }; my a $a .=new; b($a.^lookup: "l"); | |||
camelia | rakudo-moar c2349d: OUTPUT«50» | ||
tony-o | hm, that seems unnecessarily complicated..it may not always be an 'a' | 18:55 | |
IOninja | m: class a { method l($x) { "$x".say; }; }; sub b(Callable $x){ $x.(50); }; my a $a .=new; b({$a.^lookup("l").($a, $^arg)); | ||
camelia | rakudo-moar c2349d: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Missing blockat <tmp>:1------> 3$a .=new; b({$a.^lookup("l").($a, $^arg)7⏏5); expecting any of: statement end statement modifier statement modifier loop» | ||
IOninja | m: class a { method l($x) { "$x".say; }; }; sub b(Callable $x){ $x.(50); }; my a $a .=new; b({$a.^lookup("l").($a, $^arg)}); | ||
camelia | rakudo-moar c2349d: OUTPUT«50» | ||
IOninja | m: say &(42.abs) | ||
camelia | rakudo-moar c2349d: OUTPUT«42» | ||
IOninja | c: all say &(42.abs) | ||
committable6 | IOninja, gist.github.com/087164dadfe6c96d91...9ddcec9534 | 18:56 | |
tony-o | github.com/perl6/perl6-http-server...c.pm6#L168 | ||
IOninja | yeah, but what's $m? | ||
tony-o | that's calling a method that could come from anywhere and the order matters | ||
m is a method or sub as specified by the developer | 18:57 | ||
could be both depending on what is pushed into the middleware stack of H:S:A | |||
hankache | IOninja: is there something in rakudobrew that points to the latest release? something like: rakudobrew build moar release? | 18:58 | |
AlexDaniel | hankache: I guess the idea is not to use rakudobrew | 18:59 | |
tony-o | rakudobrew build moar-nom | ||
IOninja | hankache: we actively avoid recommending rakudobrew to users. So IMO it's unfortunate your popular website directly opposes that effort | ||
tony-o | hankache: ^ | ||
hankache | aha ok | 19:00 | |
IOninja | 'cause then they have all sorts of issues and all of a sudden they think Perl 6 sucks when in reality they, for example, forgot to run rakudobrew rehash or something similar | ||
hankache | I didn't know we were avoiding rakudobrew. | 19:01 | |
cool then, what should I recommend? | |||
IOninja | Rakudo Star | ||
tony-o | IOninja: i'm not going to publish a module that requires an end user to use that syntax to allow something to call their method | ||
that seems silly. | 19:02 | ||
IOninja | It's a tested release, both during the compiler release and during Rakudo Star release that includes all the bells and whistles a typical user would need. | ||
tony-o: so don't? | 19:03 | ||
m: class a { method l($x) { "$x".say; }; }; sub b(Callable $x){ $x.(50); }; my a $a .=new; b({$a.l: |@_}); | |||
camelia | rakudo-moar c2349d: OUTPUT«50» | ||
IOninja | m: class a { method l($x) { "$x".say; }; }; sub b(Callable $x){ $x.(50); }; my a $a .=new; b({$a.l: $_}); | 19:04 | |
camelia | rakudo-moar c2349d: OUTPUT«50» | ||
19:04
hankache_ joined,
hankache_ left
|
|||
tony-o | if i looked at module docs that showed me that syntax to push my middleware into their server stack i'd find another solution | 19:04 | |
because that's dumb. | |||
19:05
hankache_ joined,
hankache_ left
|
|||
IOninja | It's 2 characters longer than the original solution you thought was the right syntax. | 19:05 | |
tony-o | it's unecessarily obscure | 19:06 | |
IOninja | heh | ||
19:07
hankache_ joined
|
|||
tony-o | my first thought wouldn't be "i'll wrap my method with a block that calls my method with all of the args!" | 19:07 | |
19:07
hankache left
|
|||
hankache_ | IOninja ok i'll update it | 19:07 | |
19:07
darutoko left
|
|||
tony-o | again, it's not a solution - it's a workaround at best | 19:08 | |
IOninja | tony-o: but it would be "I'll use an imaginary syntax that magically passes my invocant along with the callable"? | ||
tony-o | it worked over a year ago, i didn't ask for the solution. i asked if something changed and broke or if it was planned. | 19:09 | |
IOninja | c: all class a { method l($x) { "$x".say; }; }; sub b(Callable $x){ $x.(50); }; my a $a .=new; b(&{$a.l}); | 19:10 | |
tony-o | so yes. you can call it imaginary if you'd like, but you're missing the point of the actual question. | ||
committable6 | IOninja, gist.github.com/7a88d848424564e5e1...bdefc3775c | ||
IOninja | I called it imaginary because commitable showed say &(42.abs) never returned a callable | 19:11 | |
And based on the above results your original syntax never worked. | |||
tony-o | it did work, timo or jnthn used it to hijack http connections but thanks for all of the peanut gallery help | 19:12 | |
19:12
hankache_ left
19:13
hankache joined
|
|||
IOninja | Umm... You're welcome? Don't let the evidence interfere. | 19:14 | |
tony-o | i think the words you're looking for are "I don't know but I enjoy arguing." | ||
El_Che | hankache: I use my own debs/rpms in my Docker images in case you're in Linux and you want prebuilt binaries | 19:15 | |
hankache: github.com/nxadm/rakudo-pkg/releas...2017.01_02 | |||
IOninja | No, the words I was looking for is "The bot ran your code against all releases for the past 3 years and one none of them the code you think worked in the past worked. Here are three alternative solutions that do work, but feel free to ignore the evidence if you want to be a dick about it" | ||
tony-o | lol. | 19:16 | |
hankache | El_Che++ | 19:17 | |
AlexDaniel | well, I like the way it sounds. Perhaps we can include it in committable… | 19:18 | |
El_Che | hankache: of course for a Regular user, Rakudo::Star may be more applicable. But I don't have the patience to wait until the compiling is done | ||
hankache: specially when building Docker images, in my case | 19:19 | ||
hankache: the packages are just an artifact of the project meant to easily create your own packages | 19:21 | ||
hankache | El_Che indeed, for the sake of perl6intro.com I'll recommend R*. But I'll personally try your docker images. | ||
El_Che | hankache: the docker images is for creating the packages. But you can use the packages in reelase if you don't want to do any compiling | 19:23 | |
stmuk_ | I had a PR for rakudobrew to build the last release but it was never merged and doesn't apply anymore | ||
it would probably be fairly easy to fix it if anyone is interested | 19:24 | ||
19:26
labster joined
|
|||
hankache | stmuk_ it would have, but apparently rakudobrew all together is not recommended anymore (I don't know why though). I'll just replace it with steps to install R* if this is what we recommend now. | 19:27 | |
IOninja | hankache: because we found users frequently have problems with it and don't know enough about Perl 6 internals or rakudobrew itself to resolve them. | 19:33 | |
Or build dev commits | 19:34 | ||
hankache: a common example is users don't know they need to run `rakudobrew rehash` when installing scripts. | 19:36 | ||
So they go and mess up their $PATH trying to make the scripts visible when it's not the right solution. | |||
tony-o | IOninja++ ^ that gets filed as a bug fairly regularly | ||
19:37
itcharlie1 left
|
|||
El_Che | the confusion is pretty understable. Rakudobrew was the easiest way to get perl 6. | 19:37 | |
als on rakudo page | 19:38 | ||
IOninja | Yeah, there's a ticket to update that page... but not enough hands to do it. | 19:39 | |
19:39
cognominal joined
|
|||
El_Che | IOninja: I find the non SSL donwload thing worse (I volunteered to help but no response) | 19:39 | |
moritz | do we want to host the dowloads on rakudo.perl6.org instead? | 19:40 | |
IOninja | +1 | ||
moritz | I can easily get SSL certs for that domain | ||
El_Che | It would be great to at least mirror npq, rakudo, moarvm | 19:41 | |
tony-o | i have a stable server that can mirror moritz . | ||
El_Che | everything you need to build rakudo | ||
19:41
sanctusgray joined
19:43
Unavowed_ joined
19:45
drrho left,
drrho joined
19:46
Unavowed left
|
|||
hankache | +1 for rakudo.perl6.org | 19:46 | |
19:49
hankache_ joined
19:51
hankache left
19:52
zakharyas left
19:53
hankache_ left
19:55
eroux left
20:00
girafe joined
20:03
hankache joined
|
|||
hankache | IOninja perl6intro.com/#_installing_perl_6 ok now? | 20:06 | |
IOninja | hankache++ thanks. FWIW we have special URLs that always point to latest release, e.g. rakudo.org/downloads/star/rakudo-st...est.tar.gz | 20:10 | |
(though I guess they'll change if we're doing the rakudo.perl6.org thing?) | |||
hankache | i guess | 20:11 | |
20:11
andrzejku_ joined
|
|||
moritz | I'm populating rakudo.perl6.org/downloads/source/ as we speak | 20:13 | |
IOninja | \o/ | 20:14 | |
moritz | ... now with TLS: rakudo.perl6.org/downloads/source/ | 20:17 | |
... and complete data, if rsync is to be trusted | |||
IOninja | moritz++ | ||
hankache | moritz++ | 20:18 | |
but I wish someone could take care of rakudo.org | 20:19 | ||
:( | 20:20 | ||
20:22
rindolf left,
ssotka left
|
|||
El_Che | thx moritz | 20:24 | |
tony-o | what do you mean by take care of hankache ? | 20:25 | |
20:25
wamba left
|
|||
hankache | tony-o enable https | 20:26 | |
moritz | get an SSL cert, update wordpress to something non-ancient | ||
hankache | update wordpress erc. | ||
20:26
rindolf joined
|
|||
hankache | etc. | 20:26 | |
IOninja | update php | ||
update downloads page ( rt.perl.org/Ticket/Display.html?id...et-history ) | 20:27 | ||
El_Che | moritz: can you add moarvm as well? | ||
20:28
bjz joined
|
|||
IOninja | For MoarVM we can do it properly on moarvm.com no? | 20:28 | |
moritz | I'd like to talk to jnthn++ first about moarvm | 20:29 | |
El_Che | No SSL | ||
IOninja | El_Che: I mean here we have contact with the person who's got root to the stie | ||
*site | |||
El_Che | (and it would be great to have everything in one place, even if source/moarvm was a redirect to a moarvm ssl page | 20:30 | |
moritz | I just realize that we upload binaries for star as well | ||
maybe I should remove source/ from the URL | |||
tony-o | ah - | ||
IOninja | Sounds good. Less to type too | ||
tony-o | do you just need a CC to get an SSL cert for it or do you need the config done? | ||
20:31
dwarring joined
|
|||
hankache | can't we get hold of the rakudo .org domain/ | 20:32 | |
? | |||
El_Che | moritz: step 2 is hashes and/or signing | ||
IOninja | .seen pmichaud | 20:33 | |
yoleaux | I saw pmichaud 15 Sep 2016 01:34Z in #perl6: <pmichaud> m: my $input = '(\d\d\d)'; my $m = 'a 123' ~~ /$0=<$input>/; say $m | ||
hankache | we can then redirect it to rakudo.perl6.org and build a new wordpress etc. | ||
moritz | we won't run a wordpress on the same host as *.perl6.org | 20:34 | |
for security reasons | |||
it may run on a different host, with a proxy or something | |||
but running wordpress on the same host as where our code dowloads are is just asking for trouble | 20:35 | ||
hankache | moritz ok | ||
moritz | I've removed the source/ part of the URL | ||
hankache | moritz thanks | 20:37 | |
20:37
nicq20 joined
|
|||
hankache | i'll update perl6intro.com and perl6.org/downloads | 20:37 | |
moritz | thanks ++hankache | ||
hankache | to point to the new url | 20:38 | |
dwarring | r: my $r := do 42 with Nil; say $r.perl; | ||
camelia | rakudo-moar a162c4: OUTPUT«Empty» | ||
..rakudo-jvm fb4f16: OUTPUT«slip()» | |||
dwarring | r: my $r := do 42 with Empty; say $r.perl; | ||
camelia | rakudo-moar a162c4: OUTPUT«-> ;; $_ is raw { #`(Block|81724200) ... }» | ||
..rakudo-jvm fb4f16: OUTPUT«-> ;; $_ is raw { #`(Block|277551034) ... }» | |||
IOninja | aw shit | 20:39 | |
20:39
wamba joined
|
|||
IOninja | dwarring: you could add those cases to rt.perl.org/Ticket/Display.html?id...et-history | 20:39 | |
(with compiles to andthen) | |||
dwarring | IOninja: will do | 20:40 | |
jnthn | moritz: You wanted to talk to me? :) | 20:42 | |
moritz | jnthn: yes. I'm mirroring the rakudo, nqp and star downloads on rakudo.perl6.org/ | 20:43 | |
jnthn: because we've got a valid SSL cert for that, but not for rakudo.org | |||
jnthn | moritz: Ah, OK | ||
moritz | jnthn: now people have asked for MoarVM stuff to be there too | ||
jnthn: would you mind that? and/or get an ssl cert for moarvm.org /moarvm.com? | 20:44 | ||
timotimo | i didn't even realize moarvm.org/.com were ssl-cert-less | ||
jnthn | moritz: Lets Encrypt lets me get free certs, yes? | ||
moritz | jnthn: yes | ||
jnthn | OK | ||
Do you recommend the CertBot path? | |||
moritz | jnthn: and you can set up a cron to renew them automatically | ||
jnthn: that's what I use for perl6.org; painless, if a tad heavy on dependencies | 20:45 | ||
timotimo | moritz: do we want to put a README into rakudobrew's home folder to explain under what circumstances updates should happen? | ||
moritz | timotimo: on hack? | 20:46 | |
timotimo | yup | ||
i recently did a rebuild, and also added a module to the MODULES that was needed for doc.perl6.org | |||
moritz | timotimo: the conditions are "whenever somebody reminds moritz to do it, or whenever somebody else does it" :-) | ||
timotimo | i think the rebuild was necessary for it to work with newer Inline::Perl5 versions | ||
oh, OK | 20:47 | ||
20:47
Tonik joined
|
|||
moritz | timotimo: feel free to document that if you feel it's valuable | 20:47 | |
timotimo | i was wondering if we wanted to guarantee some kind of version stability or so | ||
not so important :P | |||
moritz | timotimo: and thanks for updating! :-) | ||
timotimo | sure thing! | ||
those kinds of thing are easy to do even for me! :P | |||
the cron job for testers.perl6.org is annoying the F out of me | |||
i think i want to make it happen 1/3rd as often | |||
ideally at some point it'd actually signal if there has been any changes since the last rsync | 20:48 | ||
there's still some system submitting test reports | |||
moritz | timotimo: you might want to look at the perl6/doc script util/update-and-sync | 20:49 | |
timotimo | but all reports have been marked NA because something somewhere changed and we didn't track the change somewhere else | ||
moritz | it does the git pull + checking if something changed in a quite reliable manner | 20:50 | |
jnthn | moritz: OK, will give it a go | 20:52 | |
moritz: If you know: certbot-auto will enable (not mandate) HTTPS? | 20:53 | ||
(If I just let it go to work) | 20:54 | ||
IOninja | Is there a way to tell if a Callable is a thunk that was automagically made? | ||
jnthn | IOninja: .WHAT === Code | 20:55 | |
IOninja | Simple. Cool. Thanks. | ||
20:55
TEttinger joined
|
|||
jnthn | Aww, certbot-auto somehow didn't work out | 20:58 | |
(Hasn't broken anything) | |||
20:58
kentnl left
|
|||
timotimo | moritz: but this is about the generated html files it build, not the git codebase | 20:58 | |
20:59
kent\n joined
|
|||
jnthn | moritz: No worries, it asks that later, and it worked after manually restarting apache | 21:01 | |
www.moarvm.org/ :-) | |||
Geth | perl6.org: hankache++ created pull request #76: s/ rakudo.org / rakudo.perl6.org |
21:02 | |
timotimo | oh, so we're not mirroring the wordpress instance? | 21:03 | |
21:03
agentzh left
|
|||
moritz | jnthn++ | 21:04 | |
jnthn | moritz++ # nudging me to do it :) | 21:05 | |
It was a lot easier than I expected :) | |||
moritz | yes, let's encrypt makes stuff really easy | ||
and with 90 days validity basically forces you to automate renewal | 21:06 | ||
IOninja | Wow you did it already? | 21:07 | |
Maybe I should do it on perl6.party and perl6.fail then... | |||
jnthn | Yeah, and set up the cronjob for auto-renewal already :) | 21:08 | |
El_Che | who's pgp signing the rakudo releases? could he/she also sign the moarvm release? | ||
jnthn++ | |||
moritz | El_Che: whoever cuts the releases | 21:09 | |
IOninja: do it, it's not hard! | |||
21:09
ufobat left
|
|||
El_Che | moritz: so everytime it's signed by an other key? | 21:09 | |
(that would be bad) | |||
moritz | El_Che: currently yes | ||
21:09
kaare_ left
21:10
kaare_ joined
|
|||
IOninja | El_Che: well, the releases are cut by different teams on different boxes | 21:10 | |
El_Che | moritz: it should be predictabe in the future, so people will bother verifying the key in automated processes | 21:11 | |
IOninja: I get that. I am looking it from the other side | |||
IOninja | El_Che: also rakudo's key is the same on all releases. | ||
21:11
nicq20 left
|
|||
IOninja | El_Che: well, since some point in the past and *is* currently predictable for future releases. | 21:11 | |
El_Che | 3 unique keys could work, yes | 21:12 | |
moritz | El_Che: I agree, we might want to have an official signing key, and a process for doing it | ||
21:12
bjz left
|
|||
AlexDaniel | I didn't do anything to automate the renewal of letsencrypt certs… I wonder what does it… | 21:12 | |
moritz | El_Che: but that's an automation I'm not yet willing to build | ||
El_Che | (although 1 makes more sense for the packager/user) | ||
moritz | El_Che: but I still plan to create .deb repo with a consistent signing key | ||
El_Che | moritz: automation? signing could be a 1 liner for the release manager | 21:14 | |
moritz | El_Che: but then the release manager needs access to the private key, and we have potentially lots of release managers | ||
El_Che | moritz: ah, your thiking of things like Hashicorp's Vault and the like | 21:15 | |
21:16
agentzh joined
|
|||
moritz | El_Che: more like debian's infra where there's a keyring of developers who can all upload to a certain repo | 21:16 | |
El_Che | ic | ||
moritz | El_Che: and then some automation kicks in, verifies the signature, and then signs with the official key | ||
hankache | moritz can you merge github.com/perl6/perl6.org/pull/76 ? thanks | ||
Geth | perl6.org: 258664bdf5 | (Naoum Hankache)++ | source/downloads/index.html s/ rakudo.org / rakudo.perl6.org moritz++ |
21:17 | |
moritz | hankache: sure, done | ||
IOninja | hankache: you should have perms to merge yourself. | ||
hankache | moritz thanks | 21:18 | |
IOninja unfortunately i don't | |||
21:18
zakharyas joined
|
|||
IOninja | hankache: sent an invite. | 21:18 | |
21:19
zakharyas left
|
|||
El_Che | Adapted the rakudo-pkg to use the SSL download links. Thx moritz++ and jnthn++ | 21:20 | |
hankache | IOninja thanks | ||
21:21
faraco joined
|
|||
faraco | Do anyone here an experience making a compiler? | 21:21 | |
IOninja | :) | ||
Yes, several people have. Why? | 21:22 | ||
21:22
agentzh left
|
|||
faraco | Just want to know...how difficult are they to implement? I want to learn to make one, but it seems I'm stuck at parsing. I do not really understand the lexical analysis and the syntax analysis very well. Even if I did understand it, I'm not sure making your own parser is a good idea for learning, and I'm thinking on using mpc parser combinator for a start (i have a bit experience making weird lisp interpreter with it) | 21:25 | |
perlpilot | faraco: "how difficult" totally depends on how difficult you make it :) | 21:26 | |
21:26
Tonik left
|
|||
IOninja | faraco: you could try the Rakudo Internals Course: edumentab.github.io/rakudo-and-nqp-...ls-course/ | 21:26 | |
faraco | and the most magical part to me is, the object code generation (where you can target assembly or virtual machine code, if I'm not mistaken) | ||
moritz | lol, I accidentally synchronized the rakudo/nqp etc downloads through my mobile phone | ||
had forgotten I had tethering enabled | 21:27 | ||
IOninja | faraco: I built a small language in a couple of days with it: github.com/perl7/perl7 | ||
moritz: ouch | |||
faraco | IOninja, that is really coool! | ||
IOninja | I hope you have a better data plan than I do.... | ||
moritz | 2.5gb in <1h. | ||
IOninja: yes, much more than I need, (employer pays) | |||
IOninja | phew :) | ||
moritz | faraco: in some sense, compilers are among the simplest programs, because they just receive a text file as input and output some text or binary data | 21:28 | |
faraco | perpilot: I want to make it easy by using the parsinh combinator, but I have this feelinh where I'm afraid if 'skipped' the essential part on making a compiler. | ||
moritz | doesn't need to be parallel/concurrent/async/whatever | ||
sena_kun | faraco, I did(just a little bit, though). If you know any functional language, you can try Peyton Jones tutorial. "How difficult" is mostly depend on how fast/well-featured compiler(and base language) you want to have. Some simple language can be written very easily, but if you need something harder... It will be harder. | 21:29 | |
moritz | faraco: you can always go back later and implement a different parser | ||
21:29
cpage joined
|
|||
moritz | faraco: but it's also good not to have too many moving parts in the beginning | 21:29 | |
jnthn | Writing an interpreter is also a good stepping stone | 21:30 | |
moritz | faraco: btw the thing that made compiler building "click" for me was compilers.iecc.com/crenshaw/ | ||
faraco | moritz: moving parts? for example? | ||
sena_kun | Parsing is a cool part, but not essential, I think. Code-generation(or writing your own evaluator) is where the fun is. | ||
moritz | faraco: parts that you don't know how to approach | ||
compilers.iecc.com/crenshaw/ is really old-fashioned, but a *very* simple and straight-forward approach to build a compiler | |||
faraco | sena_kun: glad to hear that :) | 21:31 | |
21:31
pmurias left
|
|||
timotimo | probably the most important thing to know for compilers is things that are structured in trees | 21:31 | |
hobbs thinks parsing is fun :) | |||
perlpilot too | 21:32 | ||
sena_kun too | |||
perlpilot | timotimo: you mean lists ;> | ||
21:32
gdonald left,
gdonald joined
|
|||
moritz | and soon you'll find out that dynamic scoping in the compiler corresponds to lexical scoping in the program you're compiling | 21:33 | |
21:33
agentzh joined
|
|||
faraco | timotimo: taking that as a note :D | 21:34 | |
perlpilot | faraco: another important thing is that parsing happens in one direction, but you often need to pass information in the other direction. The tree-nature helps in this regard. | 21:35 | |
faraco | moritz: that is fascinating. I'm actually do no really understand the real deal with lexical scoping (even some already explained it to me), hoping by making this compiler helps me reveal the mysteries about programming languages in general. | ||
21:37
pyrimidi_ joined,
pyrimidine left
|
|||
timotimo | nested lists! | 21:38 | |
moritz | faraco: that's actually a good approach to learn it | ||
perlpilot | faraco: when I was younger I had the Dragon book and Compiler Design in C and a few others. Each book approached the problem from a different perspective. Some theoretical, some pragmatic. It helps you put things together when you can look at the same problem from different sides. | ||
moritz | faraco: oh, and I highly recommend you write your compiler in Perl 6, and use Perl 6's awesome grammars for parsing | 21:39 | |
21:39
lizmat joined
|
|||
faraco | perlpilot: hmm, maybe I need to research more about AST and the tree parsing part before using a parser combinator. I read that in the second chapter in the dragon book, where if I'm not mistaken, the postfix tree is like backward lisp. | 21:39 | |
moritz puts "Writing a Compiler in Perl 6" on his lists of books to write | 21:42 | ||
faraco | moritz: I have a thought in using Perl 6 too, I'm very sure it is good at these stuff when I saw the grammar parsing example (in the docs I believe). | 21:43 | |
perlpilot | moritz: that would be a great book! | ||
moritz | perlpilot: with maybe 5 readers world wide! :-) | ||
faraco | the first reader will be me :D | 21:44 | |
21:45
wamba left,
itaipu left
|
|||
perlpilot | In the late 1980s there was some tutorial on compiler writing that I downloaded from a BBS. I don't remember the name of the tutorial, but that was the first time I tried making my own compiler. I have fond memories of trying to make a compiler in Pascal then. (I was so young!) | 21:46 | |
21:47
wamba joined,
bjz joined
21:49
jonas2 left
|
|||
perlpilot | moritz: if you could somehow couple it with "How to modify the Perl 6 language" or "Writing a DSL in Perl 6" or something related, you could have way more than 5 readers :) | 21:52 | |
21:53
wamba left
|
|||
moritz | perlpilot: yes, 10 | 21:53 | |
perlpilot: of which 5 are beta readers :-) | |||
moritz should temper his sarcasm | 21:54 | ||
tbrowder | jnthn: which client did you use for Letsencrypt cert automation? | ||
moritz | tbrowder: it seems he used certbot | ||
jnthn | Yes, certbot | ||
Just followed the instructions on that page | 21:55 | ||
21:55
wamba joined
|
|||
jnthn | certbot.eff.org/ | 21:55 | |
moritz | I used to use simp_le, but it stopped working some months ago | 21:56 | |
21:56
lizmat left
21:58
andrzejku_ left
|
|||
sena_kun | faraco, I can be late, but it is hard for me to advice Dragon book. Of course, I don't have decades of experience, but when I tried to read it, it was really hard for me to wrap my head around, especially with parsing part. I'm sure there are simplier tutorials(not a large book) around. Dragon book can be good if you have some foundation already. | 22:01 | |
faraco | sena_kun: I too admit that I feel the book is a bit more advanced than I expected. It seems it was targeted for CS major undergraduates. Before the dragon book, I also have tried the Let's make a compiler book. Unfortunately it is in Pascal (I'm hoping for C), that I touched for a couple of times, so far with freepascal (I don't remember if the first program is compilef and working) | 22:06 | |
22:13
hankache left
|
|||
tbrowder | jnthn: moritz: thanks. the problem i've been having is automation when you have a new domain without an active server, seems to need standalone certification. certbot can't handle it, and client acme.sh has done the best for me. documentation of behind-the-scenes stuff is awkward but i think i have a solution and am well on the way to having a working p6 | 22:13 | |
specialized client wrapper to do what i need. basically i use acme.sh driven by my wrapper to always do an original issue only when needed and use my wrapper to do the cron job, etc. the standalone method requires me to shutdown apache for a few minutes and i choose about 0300 local time, and only once per day. when i check the certs at cron time, i read | |||
the expiration date of all certs, then issue ones needed, and copy new files into place. then restart apache and check that all is well--cron job finished. life would be easier with a dns registrar with a better API to do direct domain validation, but namecheap doesn't have a fine-grained API yet (although i just sent them a feature request this morning). | |||
22:16
bjz_ joined
|
|||
sena_kun | faraco, is this "Let's make a compiler" a Wirth's book? I tried it too and it was a lot more compact comparing to Dragon book, but yes, Pascal somewhat complicated things. As I wrote before, you can "mostly" safely skip parsing part, since there are many different concepts that are importaint to reason about how languages work. But in my opinion, when you for a half of night debug infinite loops because of a buggy reduction strategy it is | 22:17 | |
worse than when you work with a parser. :) Anyway, good luck with it! It's time to go to bed already~ 'night, #perl6. | |||
22:18
bjz left
|
|||
faraco | sena-kun: ty for the advice. later. | 22:19 | |
22:19
sena_kun left
22:20
faraco left
22:21
sanctusgray left
22:32
RabidGravy left
22:33
skids left
|
|||
IOninja | oh, totally forgot I ran updater script for perl6.wtf a few days back... Seems the coverage script is still busted. Says everything's uncovered. | 22:39 | |
22:39
rindolf left
|
|||
IOninja | "Use of uninitialized value of type Any in numeric context" in nqp/MoarVM/tools/parse_coverage_report.p6 lines 88, 91, and 168 | 22:41 | |
timotimo | did the update to the moar pr work? i force-pushed it so maybe you have to git reset --hard into/onto it | 22:46 | |
22:47
romrador joined
|
|||
IOninja | I think it did. My script fresh-clones everything. | 22:47 | |
timotimo | ok | 22:48 | |
22:48
espadrine left
22:50
bjz_ left
|
|||
IOninja | wow, certbot.eff.org/ is sure painless. | 22:51 | |
perl6.party perl6.fail perl6.wtf all set up with a single run :) | |||
moritz | IOninja++ | 22:52 | |
timotimo | nice | 22:54 | |
IOninja | heh... I hope this person on TPM's mailing list knows what the latest game in town is :) mail.pm.org/pipermail/toronto-pm/20...03917.html | 23:09 | |
IOninja will never understand the appeal of Monty Python stuff... | |||
diakopter | IOninja: that post seems like a troll/joke post | 23:10 | |
timotimo | a bit, yeah | ||
IOninja | :) | ||
tbrowder | certbot may be painless for a "standard" server set up, but try it with a virgin domain (no server) and custom httpd.conf--i would love to hear cookbook details. | 23:23 | |
IOninja | I started with a plain Debian install. | 23:24 | |
23:25
b7j0c joined
|
|||
b7j0c | constant V = 'x'; my %h = V => 'a'; | 23:26 | |
IOninja | m: constant V = 'x'; my %h = V => 'a'; | ||
camelia | ( no output ) | ||
IOninja | m: constant V = 'x'; my %h = V => 'a'; say %h | ||
camelia | rakudo-moar ffae3f: OUTPUT«{V => a}» | ||
IOninja | m: constant V = 'x'; my %h = V => 'a'; say %h.keys | ||
camelia | rakudo-moar ffae3f: OUTPUT«(V)» | ||
b7j0c | hashes and constants seem to confuse each other | ||
AlexDaniel | wtf | ||
m: constant V = 'x'; my %h = V => 'a'; say %h.keys[0].WHAT | |||
camelia | rakudo-moar ffae3f: OUTPUT«(Str)» | ||
AlexDaniel | m: constant V = 'x'; my %h = V => 'a'; dd %h.keys[0] | 23:27 | |
camelia | rakudo-moar ffae3f: OUTPUT«"V"» | ||
AlexDaniel | riiiiight | ||
IOninja | That's not the only place even. | ||
m: sub e { 42 }; say e + 2 | |||
camelia | rakudo-moar ffae3f: OUTPUT«4.71828182845905» | ||
geekosaur | => still retains some fraction of perl 5's autoquote behavior | ||
IOninja | mhm | ||
AlexDaniel | m: constant V = 'x'; my %h = (V) => 'a'; dd %h | ||
camelia | rakudo-moar ffae3f: OUTPUT«Hash %h = {:x("a")}» | ||
IOninja | m: constant V = 'x'; my %h = V, 'a'; say %h | ||
camelia | rakudo-moar ffae3f: OUTPUT«{x => a}» | ||
AlexDaniel | m: constant V = 'x'; my %h = $V => 'a'; dd %h | ||
camelia | rakudo-moar ffae3f: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Variable '$V' is not declaredat <tmp>:1------> 3constant V = 'x'; my %h = 7⏏5$V => 'a'; dd %h» | 23:28 | |
b7j0c | but %h{VV} = 'a' works | ||
geekosaur | m: constant V = 'x'; my %h = +V => 'a'; dd %h.keys[0] | ||
camelia | rakudo-moar ffae3f: OUTPUT«Cannot resolve caller Numeric(Pair: ); none of these signatures match: (Mu:U \v: *%_) in block <unit> at <tmp> line 1» | ||
geekosaur | whoops | ||
AlexDaniel | m: constant V = 'x'; my %h = ~V => 'a'; dd %h | ||
camelia | rakudo-moar ffae3f: OUTPUT«Odd number of elements found where hash initializer expected:Only saw: "V\ta" in block <unit> at <tmp> line 1» | ||
IOninja | heh | ||
geekosaur | m: constant V = 'x'; my %h = ~V => 'a'; dd %h.keys[0] | ||
camelia | rakudo-moar ffae3f: OUTPUT«Odd number of elements found where hash initializer expected:Only saw: "V\ta" in block <unit> at <tmp> line 1» | ||
geekosaur | just because one p5ism works doesn;t mean they all do... feh | ||
AlexDaniel | but that's an interesting gotcha | ||
b7j0c | this bugs me....if i say V is a constant, i should get the constant back where i use 'V' or get perl6 telling me i am a bad boy | 23:29 | |
IOninja | heh | ||
b7j0c | weird silent fail | ||
IOninja | b7j0c: well, => auto-quotes. So it just auto-quoted your V | ||
There's no silent fail. | |||
TimToady | m: say pi => 3 | ||
camelia | rakudo-moar ffae3f: OUTPUT«Unexpected named argument 'pi' passed in block <unit> at <tmp> line 1» | ||
IOninja | Just ambiguity. | ||
geekosaur is not sure => should autoquote any more, tbh. also precedence of unary ~ is evidently wrong for breaking the autoquote | |||
b7j0c | it isn't even consistent though...if i use the hash differently, it replaces the constant like i want | 23:30 | |
jnthn | It's a purely syntactic distinction. An identifier before => autoquotes. | ||
b7j0c | perl6 silently uses a different key in two supported methods for setting a hash value | ||
IOninja | b7j0c: but it's not about the hash at all, it's about `=>` operator. In the places where it works you're not using `=>` | ||
AlexDaniel | github.com/perl6/doc/issues/1201 | ||
we can talk about it on my favorite page :) | 23:31 | ||
docs.perl6.org/language/traps | |||
IOninja | heh | ||
b7j0c | i'm not feeling the TMTOWTDI moment here, more like "dude where's my car" | ||
IOninja | AlexDaniel: PS on your PR: I'd want more devs to comment on it. | ||
AlexDaniel | IOninja: sure thing | 23:32 | |
IOninja | b7j0c: well, put another way. my %h = a => 42, b => 42, e => 72; would break if it willy-nilly used the constants. | ||
Because core has `e` as a constant | |||
b7j0c: use (V) if you meant the V. Or better still, use a proper sigil with your constant | 23:33 | ||
AlexDaniel | it saddens me a bit that just because some tiny wrong change was overlooked before Christmas we now have to jump through all of the hoops to get it fixed… but that's understandable | ||
IOninja | b7j0c: it's basically an ambiguity. IMO universally assuming the programmer meant a string there is less surprising. | 23:34 | |
jnthn | This partiuclar one was discussed to death well before that. | ||
b7j0c | yeah i will use a sigil....but i still feel perl6 silently proceeding here is wrong....the constant without a sigil is also supported | ||
TimToady | it is working as designed | ||
IOninja | jnthn: I think AlexDaniel refers to the PR about removing @a = 42, @a; error | ||
which is blocked by a roast test | 23:35 | ||
jnthn | IOninja: Ah, that one needs more thought. I wasn't entirely sold on that idea when it went it. | ||
23:35
lep_ left,
Guest89748 joined
23:36
lep-delete joined
|
|||
AlexDaniel | we definitely need something to prevent VMNulls from appearing there | 23:36 | |
oh wait, VMNulls are actually not related to that PR… | |||
but still | |||
23:37
Guest89748 left
|
|||
IOninja | m: constant V = 'x'; dd [ ::V => 42 ] | 23:37 | |
camelia | rakudo-moar ffae3f: OUTPUT«[:x(42)]» | ||
IOninja | b7j0c: another variant ^ to tell it you meant the constant | ||
23:38
kurahaupo__ left
23:39
kurahaupo__ joined
|
|||
IOninja | m: constant V = 'x'; dd [ Pair.new(V, 42) ] | 23:39 | |
camelia | rakudo-moar ffae3f: OUTPUT«[:x(42)]» | ||
IOninja | m: constant V = 'x'; dd [ (V) => 42 ] | ||
camelia | rakudo-moar ffae3f: OUTPUT«[:x(42)]» | ||
IOninja | m: constant V = 'x'; dd [ V.self => 42 ] | ||
camelia | rakudo-moar ffae3f: OUTPUT«[:x(42)]» | ||
TimToady | m: constant V = 'x'; dd [ V [=>] 42 ] | 23:41 | |
camelia | rakudo-moar ffae3f: OUTPUT«[:x(42)]» | ||
IOninja | :o | ||
TimToady++ | |||
TimToady | m: constant V = 'x'; dd [ V Z=> 42 ] | ||
camelia | rakudo-moar ffae3f: OUTPUT«[:x(42)]» | ||
AlexDaniel | m: constant V = ‘x’; my %h = 42 R=> V; say %h | ||
camelia | rakudo-moar ffae3f: OUTPUT«{x => 42}» | ||
AlexDaniel | :P | ||
IOninja | hah | ||
TimToady | m: constant V = 'x'; dd [ V RR=> 42 ] | ||
camelia | rakudo-moar ffae3f: OUTPUT«[:x(42)]» | ||
AlexDaniel | right! | ||
haha :D | |||
by the way | 23:43 | ||
m: constant V = ‘x’; my %h = ~V => 42 | 23:44 | ||
b7j0c | is there anything like "gofmt" for perl6? i always wonder if my layout is idiomatic | ||
camelia | rakudo-moar ffae3f: OUTPUT«Odd number of elements found where hash initializer expected:Only saw: "V\t42" in block <unit> at <tmp> line 1» | ||
AlexDaniel | what is this error message talking about? | ||
What's “V\t42”? | |||
V and 42 I can see, but \t ? | |||
TimToady | pairs stringify with a tab | ||
AlexDaniel | b7j0c: not sure, perhaps check out github.com/jaffa4/perl6format ? | 23:45 | |
23:46
robertle left
|
|||
b7j0c | oh cool, i'll check that out | 23:46 | |
AlexDaniel | TimToady: right! Indeed | 23:47 | |
23:47
cpage_ left
|
|||
geekosaur | which is why I mentioned precedence wrt the ~ | 23:48 | |
TimToady | m: constant V = 'x'; dd [ V<> => 42 ] | ||
camelia | rakudo-moar ffae3f: OUTPUT«[:x(42)]» | ||
AlexDaniel | m: put (V => 42).gist | 23:49 | |
camelia | rakudo-moar ffae3f: OUTPUT«V => 42» | ||
AlexDaniel | m: put (V => 42).Str | ||
camelia | rakudo-moar ffae3f: OUTPUT«V 42» | ||
AlexDaniel | m: put (V => 42).perl | ||
camelia | rakudo-moar ffae3f: OUTPUT«:V(42)» | ||
AlexDaniel | ah, I stringified it myself | 23:50 | |
AlexDaniel hides | |||
jnthn | 'night, #perl6 | 23:52 | |
IOninja | night | ||
23:55
agentzh left
|