»ö« 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:06
kid51 joined
00:10
Ben_Goldberg is now known as BenGoldberg
00:16
mr_ron left
00:18
laouji joined
00:22
yqt left
00:31
zacts left
00:35
zacts joined
00:39
laouji left
00:40
laouji joined
00:43
laouji left,
laouji joined
00:51
araujo_ joined
00:52
araujo left
00:53
makapa joined,
araujo_ left
00:54
araujo_ joined
00:57
makapa left
01:03
helloworldlang joined
01:05
colomon left
01:07
mr_ron joined
01:11
colomon joined
01:17
aborazmeh joined,
aborazmeh left,
aborazmeh joined
01:19
Akagi201 joined
01:22
makapa joined
|
|||
colomon | TimToady: Happy Birthday! | 01:26 | |
01:29
mr_ron left
01:33
royalkiran007 left,
clkao_ joined
01:34
Ulti_ joined,
Woodi_ joined,
smash_ joined,
zostay_ joined,
[Coke]_ joined
01:35
TimToady_ joined,
maettu1 joined,
skids1 joined,
mathw left
01:36
jordman_ joined,
mathw joined,
avalenn_ joined,
KotH_ joined,
telex left
01:37
telex joined,
adhoc joined
01:38
SmokeMachine_ joined,
mephinet- joined,
clkao left,
Woodi left,
mprelude left,
smash left,
Ulti left,
zostay left,
gensym left,
[Coke] left,
xxx left,
KotH left,
maettu left,
skids left,
TimToady left,
SmokeMachine left,
mtj_ left,
mephinet left
01:39
clkao_ is now known as clkao
01:41
xdbr joined,
gensym joined
01:42
xxx joined
01:43
dg joined
01:44
tokuhiro_ joined,
kaare__ joined
01:47
kaare__ is now known as kaare_,
mprelude joined
01:48
mtj_ joined
01:53
TimToady_ left
01:54
TimToady joined
02:09
kid51_ joined
|
|||
timotimo already caught a glimpse of a partially darkened and partially reddened moon | 02:09 | ||
02:12
kid51 left,
kid51_ is now known as kid51
02:15
rurban joined
|
|||
Zoffix can't due to clouds so they are watching Slooh telescope online: | 02:16 | ||
www.youtube.com/watch?v=wgv0Z8Q2OIQ | |||
02:17
kid51 left
02:26
BenGoldberg left
02:29
Akagi201 left
02:31
makapa left
|
|||
timotimo | Live Streaming is not available in your country due to rights issues. | 02:34 | |
02:37
colomon left
02:38
noganex_ joined
02:40
noganex left
|
|||
dalek | rl6-roast-data: d5cc33c | coke++ | / (9 files): today (automated commit) |
02:45 | |
kudo-star-daily: e1a9dfe | coke++ | log/ (9 files): today (automated commit) |
|||
02:55
aborazmeh left
02:58
colomon joined
|
|||
[Coke]_ | RT: 1,028; testneeded: 9; GLR: 4; WEIRD: 12; LTA: 81; xmas: 98 | 03:00 | |
03:02
thou left,
[Coke]_ is now known as [Coke]
03:03
aborazmeh joined,
aborazmeh left,
aborazmeh joined
03:04
zacts left
03:07
zacts joined
03:27
thou joined
03:50
khw left
04:00
BenGoldberg joined
04:05
BenGoldberg left
04:20
rurban left
04:26
Peter_R left
04:35
aborazmeh left
04:38
MadcapJake left
04:39
vendethiel joined
04:48
[Sno] left
05:04
quester joined,
aborazmeh joined,
aborazmeh left,
aborazmeh joined
05:05
vendethiel left
05:18
ssflying joined
05:21
makapa joined
05:23
wak joined
05:24
spider-mario left
05:25
spider-mario joined
05:26
skids1 left
05:29
wak left
05:42
zakharyas joined
05:58
aborazmeh left,
_28_ria joined
06:11
diana_olhovik_ joined
06:16
espadrine joined,
FROGGS joined
06:18
makapa left
06:20
KotH_ is now known as KotH
06:21
Ven joined
06:24
[Sno] joined
06:42
mn080202 left
06:45
baest left
06:46
abraxxa joined,
araujo_ left
06:47
araujo joined,
domidumont joined,
domidumont left
06:48
domidumont joined
06:49
domidumont left
06:52
espadrine left
06:55
spider-mario left
06:56
Ven left
06:58
domidumont joined
|
|||
[Tux] | test 50000 35.708 35.606 | 07:03 | |
test-t 50000 36.133 36.030 | |||
tux.nl/Talks/CSV6/test-t.jpg | 07:05 | ||
jdv79 | what's the "good enough" again? | 07:07 | |
07:09
quester left
07:12
z8 joined
|
|||
[Tux] | jdv79, that was a question directed to me? | 07:17 | |
FROGGS | I'd guess so | 07:22 | |
my gut feeling is that 25s would be "quite awesome" for rakudo, but in the end we want to get down to at least 10s to be competitive at all | 07:23 | ||
[Tux] agrees | 07:24 | ||
jdv79, note that the perl5/XS time for the same code is 0.016 seconds | |||
FROGGS | jdv79: if you feel the urge, you could profile it to get a feeling for the slow parts... | 07:30 | |
07:30
laouji left
07:31
laouji joined
07:33
rindolf joined
07:39
zakharyas left
07:42
zakharyas joined
07:48
bjz joined
07:53
araujo_ joined
07:56
araujo left
07:59
CIAvash joined
08:12
espadrine joined
08:17
darutoko joined
08:24
dakkar joined
08:28
araujo_ left
08:29
z8 left,
araujo joined
08:40
TimToady left
08:41
TimToady joined
08:48
thou left
08:54
rindolf left
08:58
laouji left
09:01
laouji joined
09:05
xfix joined,
xfix left,
xfix joined
|
|||
masak | [Tux]++ # relentless benchmarking | 09:05 | |
09:06
RabidGravy joined
09:07
Ven joined
09:10
cognominal joined
|
|||
moritz | any objections to rejecting rt.perl.org/Ticket/Display.html?id=126208 ? | 09:10 | |
09:13
CIAvash left
09:14
CIAvash joined
|
|||
jnthn | moritz: Seems it does indeed close the channel too early (before waiting on the promises) | 09:16 | |
an await @promises before the .close for ... should help, I think | |||
09:20
Ven left
|
|||
moritz | ok, ticket rejected. | 09:22 | |
09:26
emilbarton joined
|
|||
emilbarton | hello, I've worked hard to isolate the error I met yesterday. And I come with an 8 lines script that will allow to easily understand my problem with regex match (either : Cannot assign to a readonly var, or Cannot modify an immutable cursor). I've dropped a gist : gist.github.com/emilbarton/7d6671529b0fd6d90423 . Thank you very much for your explanations. | 09:29 | |
jnthn sees if he can work out how the weird .new regressions happened | |||
m: Slang.new # this one | |||
camelia | ( no output ) | ||
jnthn | Oh, what, it works now? | ||
m: say StrDistance | |||
camelia | rakudo-moar 1ed1ea: OUTPUT«-> { #`(Block|73197096) ... }» | ||
09:29
Ven joined
|
|||
jnthn | Ah, that doesn't though | 09:29 | |
moritz | emilbarton: ah, it seems to be !~~ that's the problem | 09:30 | |
m: say 'abc' !~~ /(a)/ | |||
camelia | rakudo-moar 1ed1ea: OUTPUT«False» | ||
emilbarton | moritz no! | ||
ShimmerFairy | jnthn: I noticed that nqp::tc() titlecases everything in the string, while Str.tc does just the first character. Come to think of it, nqp's behavior is more consistent, but surprising where I was expecting the current P6 behavior :) | 09:31 | |
emilbarton | I get the same with ~~ but I wanted KO | ||
09:31
camelia left
|
|||
ShimmerFairy | I keep forgetting nqp: kills camelia e_e | 09:31 | |
09:32
camelia joined
09:33
ChanServ sets mode: +v camelia
09:36
rurban joined,
zakharyas left
|
|||
|Tux| | did anyone look at the panda list fail? | 09:37 | |
panda list --installed --verbose | |||
jnthn | ShimmerFairy: I thought it was tclc? | ||
(in Perl 6) | |||
09:38
telex left
|
|||
ShimmerFairy | m: say "foobar".tc | 09:38 | |
camelia | rakudo-moar 1ed1ea: OUTPUT«Foobar» | ||
ShimmerFairy | jnthn: no, but admittedly it makes far more sense to be consistent with .uc and .lc | ||
jnthn | m: say "Foobar".tclc | ||
camelia | rakudo-moar 1ed1ea: OUTPUT«Foobar» | ||
jnthn | huh, both exist | ||
ShimmerFairy | m: say "fooBar".tc; say "fooBar".tclc | ||
camelia | rakudo-moar 1ed1ea: OUTPUT«FooBarFoobar» | ||
09:38
[Sno] left
|
|||
ShimmerFairy | jnthn: the difference is that .tc doesn't lowercase the rest. | 09:38 | |
09:39
[Sno] joined
|
|||
ShimmerFairy | admittedly, I think .tc titlecasing every character would be more sensible. | 09:39 | |
09:39
zakharyas joined
|
|||
dalek | osystem/cookie-baker: 798d3ef | (Tokuhiro Matsuno)++ | META.list: Added Cookie::Baker |
09:39 | |
09:40
telex joined
09:41
larion joined
09:47
Ven left
09:48
Ven joined
|
|||
jnthn | It's really taking some work to even track down what introduced the weird symbol mis-compile regression | 09:50 | |
09:51
makapa joined
|
|||
FROGGS | jnthn: the Pandabug? | 09:56 | |
09:56
makapa left,
Ven left,
nebuchadnezzar left,
nebuchadnezzar joined
09:57
rindolf joined
|
|||
jnthn | FROGGS: No idea | 09:59 | |
m: say StrDistance | |||
camelia | rakudo-moar 1ed1ea: OUTPUT«-> { #`(Block|71853608) ... }» | ||
jnthn | star: say StrDistance | ||
camelia | star-m 2015.03: OUTPUT«(StrDistance)» | ||
FROGGS | ohh | ||
jnthn | That one is an example of it | ||
FROGGS | what the | ||
jnthn | Yes, it's utterly weird | ||
10:00
nebuchad` joined,
z8 joined
|
|||
jnthn | It seems that occasionally a WVal ends up pointing to the totally wrong thing o.O | 10:00 | |
10:00
jsimonet left
10:01
jsimonet joined,
nebuchadnezzar left
10:02
grondilu left
|
|||
jdv79 | sounds like fun | 10:02 | |
10:02
mrf left
|
|||
jdv79 | or at least not boring | 10:03 | |
lizmat | good *, #perl6! | ||
10:03
grondilu joined
|
|||
jdv79 | lizmat: mornin | 10:03 | |
10:03
mrf joined,
grondilu left,
grondilu joined
|
|||
lizmat | jdv79 o/ | 10:03 | |
jdv79 | oh, aft now | ||
lizmat | jnthn: as another datapoint: when I we speeding up .min and .max last night | 10:04 | |
at one point the setting could not build the RESTRICTED setting anymore | |||
ah, nvm, figured out it was my fault after all | 10:05 | ||
m: my $a; sub b(\c) { c := 42 }; b $a # this was the problem | 10:06 | ||
camelia | rakudo-moar 1ed1ea: OUTPUT«5===SORRY!5=== Error while compiling /tmp/AB7s51bdpYCannot use bind operator with this left-hand sideat /tmp/AB7s51bdpY:1------> 3my $a; sub b(\c) { c := 42 7⏏5}; b $a # this was the problem» | ||
jnthn | Yeah, you can't bind do that :) | ||
*to | |||
lizmat | well, actually trying to throw that error :-) | ||
jnthn | It's REALLY weird. I've got my Moar and NQP builds back basically to the last release. | ||
And I still get it | 10:07 | ||
lizmat | .oO( but you don't get it as well ) |
||
jnthn | aha | ||
bff29c4 bad, but 4653d98 good | 10:08 | ||
10:10
helloworldlang left
|
|||
jnthn | e87794e good | 10:13 | |
10:14
woolfy joined
|
|||
jnthn | And the patches between that and bff29c4 are just to the harness | 10:14 | |
10:14
woolfy left
|
|||
ShimmerFairy | jnthn: keep in mind that bff29c4 is a merge commit; did you check the other branch? | 10:15 | |
10:16
thou joined
|
|||
jnthn | ShimmerFairy: The last good commit I posted was the last significant change in nom before the merge, so yeah, the branch is implicated | 10:17 | |
Currently building everything at HEAD but with the two patches from the branch reverted | |||
ShimmerFairy | jnthn: ok, just wanted to make sure you didn't accidentally miss it being a merge commit :) | ||
jnthn | Thanks for checking :) | 10:18 | |
ShimmerFairy | (My guess is the change to the indent, not so much <.vws> -> \v ) | ||
10:20
thou left
|
|||
jnthn | Uh, with those reverted I still get oddness :S | 10:20 | |
grrr | 10:21 | ||
10:25
zakharyas left
10:28
][Sno][ joined,
kolikov joined,
kolikov left,
kolikov joined
10:30
rurban left
10:31
bjz_ joined,
[Sno] left,
rurban joined,
apotheon left,
apotheon joined
|
|||
jnthn | What's really interesting is that StrDistance and Slang both come really near the end of CORE.setting | 10:31 | |
10:31
bjz left
10:32
Khisanth left
10:33
Woodi_ left
|
|||
kolikov | For : emilbarton ... seen on public logs at 9:10h ... maybe too late: interpolate varibles in regexes ... this way: $<varible> | 10:33 | |
10:33
Woodi joined
10:34
FROGGS left
|
|||
lizmat | jnthn: have you tried moving StrDistance up? if not, I could do that | 10:39 | |
just as another datapoint | |||
10:39
FROGGS joined
|
|||
jnthn | lizmat: I've been looking at the SC indexes, and it looks like a 16-bit truncation issue...somewhere | 10:40 | |
lizmat | that would be: yuck ? | 10:41 | |
jnthn | Very | ||
There's not that many places it could be though | |||
FROGGS | hmmm, I could imagine that something similar happened to panda too... | 10:42 | |
10:44
Khisanth joined
|
|||
lizmat | jnthn: as a confirmation: if I move StrDistance up a few lines in moar_core_sources, the restricted setting doesn't build with: Cannot look up attributes in a type object | 10:44 | |
10:51
brrt joined
|
|||
dalek | osystem: 798d3ef | (Tokuhiro Matsuno)++ | META.list: Added Cookie::Baker |
10:55 | |
osystem: 142a500 | RabidGravy++ | META.list: Merge pull request #60 from perl6/cookie-baker Added Cookie::Baker |
|||
jnthn | lizmat: Seems I've found it and have a fix | 10:57 | |
lizmat | cool! | ||
brrt | \o/ | 10:58 | |
jnthn spectests | |||
10:59
z8 left
|
|||
jnthn | Some new win32-specific fails on POD-y/heredoc-y things wrt line endings, it seems | 11:01 | |
(Unrelated to my fix) | |||
11:12
brrt left
|
|||
jnthn | urgh, spectest is a real mess on Windows, thanks (I think) to heredoc changes leading to extra newlines all over on Windows | 11:15 | |
dalek | p: c3a92ed | jnthn++ | tools/build/MOAR_REVISION: Bump MOAR_REVISION for assembler overflow bugfix. |
11:16 | |
p: 1deb686 | jnthn++ | src/HLL/World.nqp: A couple of native type annotations. Should avoid some boxing. |
|||
kudo/nom: dd6c855 | jnthn++ | tools/build/NQP_REVISION: Bump NQP_REVISION for MoarVM assembler fix. Resolves weird mis-compiles of things near the end of CORE.setting. |
11:18 | ||
11:19
leont joined
11:20
travis-ci joined
|
|||
travis-ci | NQP build passed. jnthn 'A couple of native type annotations. | 11:20 | |
travis-ci.org/perl6/nqp/builds/82534948 github.com/perl6/nqp/compare/3f2ad...eb6862ddf6 | |||
11:20
travis-ci left
|
|||
dalek | ast: 347a9f9 | lizmat++ | S02-types/WHICH.t: Test for 2 more classes' existence |
11:26 | |
grondilu notices that ctags now supports Perl6 www.perlmonks.org/?node_id=1137752 | 11:27 | ||
grondilu wonders if that helps browsing the core | |||
lizmat | wow, a clean spectest! haven't seen that in a while! | 11:30 | |
Files=1042, Tests=47028, 211 wallclock secs (12.32 usr 3.61 sys + 1395.44 cusr 128.19 csys = 1539.56 CPU) | |||
moritz | \o/ :/ | ||
moritz is glad the spectest is clean, and sad that it isn't the norm | |||
lizmat | so it would seem to me this bug was causing all sorts of other issues as well | ||
jnthn | There's still at least one known icky concurrency bug lingering that can cause flaps. | 11:31 | |
Thankfully there's a lot less of them than there used to be :) | |||
lizmat | indeed ! | 11:32 | |
lizmat goes back to writing Perl 6 Weekly | 11:33 | ||
nine | 16 bit overflow? I thought those times are long gone :) | ||
lizmat | let me know if you have anything you think *should* be in there! | ||
FROGGS | err, the ctags repo and website state that the project is about maintaining ctags.... but wth is ctags? | 11:34 | |
timotimo | a collection of name-to-location links, more or less | ||
nine | "Ctags is a tool that makes it easy to navigate large source code projects. It provides some of the features that you may be used to using in Eclipse or other IDEs, such as the ability to jump from the current source file to definitions of functions and structures in other files." | 11:35 | |
courses.cs.washington.edu/courses/c...ctags.html | |||
jnthn | nine: You can easily recreate them by copy-pasto'ing a cast, apparenlty... :) | ||
FROGGS | aha | ||
timotimo | it lets you "jump to definition" as well as have a list/tree of symbols for the current file | ||
11:35
brrt joined
|
|||
nine | Woah! It seems like this also fixes the panda problem! | 11:35 | |
I reverted the workaround in panda and perl6 bootstrap.pl still works | 11:36 | ||
brrt | what | ||
that's impossible | |||
timotimo | huh? must be flappy! | ||
brrt | impossibru | ||
timotimo | inconceivable! | ||
nine | indeed :( | ||
jnthn | Yeah, there's a separate bug there, surely. | ||
nine | It _is_ flappy | ||
jnthn | Given how far we're hunted it down | ||
nine | Or rather it worked the first time and fails since | 11:37 | |
11:38
kid51 joined
11:44
zakharyas joined
11:45
jkva joined,
nebuchad` is now known as nebuchadnezzar
11:46
kid51 left
12:02
Peter_R joined
12:04
thou joined
12:09
thou left
12:10
TEttinger left
12:20
laouji left,
woolfy joined,
woolfy left
12:21
pmurias joined
12:22
emilbarton left
12:23
TEttinger joined,
brrt left
12:26
pmurias left
12:27
carlin joined
12:28
szymon joined
|
|||
leont | YAML keeps surprising me, so many edge-cases while implementing itx85 | 12:29 | |
[Coke] | hoelzro: if RT #126202 is the correct behavior, what's the ticket for? | ||
12:31
rurban left
|
|||
moritz | leont: iirc the YAML spec is longer than the XML spec :-) | 12:33 | |
leont | Tell me about it! :-/ | ||
12:33
pmurias_ joined
|
|||
leont | How can I express "not in between" in a rule? | 12:33 | |
moritz | there's no good way | 12:34 | |
leont | I guess I should first define an AND, and then add the NOT, but I'm not sure that's going to work :-s | 12:35 | |
moritz | especially if you want to scope the "not in between" somehow | ||
leont | Not between "\n| and "..." | ||
... is a valid plain scalar, except on the main scope where it terminates the document -_- | 12:36 | ||
moritz | <!after\n> <token> <!before $> | ||
or since it's valid syntax, but different semantics, you could parse it normally, and make the distinction in the actions | 12:37 | ||
12:41
rindolf left
12:48
abraxxa left
|
|||
lizmat updated gist.github.com/lizmat/28d6d9b8f3a968e6c92e # Perl 6 Weekly in progress | 12:48 | ||
comments welcome! | 12:49 | ||
moritz | lizmat++ # my comment | 12:50 | |
[Coke] | lizmat++ nice. | 12:53 | |
12:53
ggoebel left
|
|||
leont | Think I solved my problem by special-casing the higher-level rule. Crude, but effective. | 12:58 | |
13:01
FROGGS left
13:04
rindolf joined
13:08
rurban joined
13:15
ggoebel joined
13:24
szymon left
13:26
mullagainn joined
|
|||
tony-o | m: say (('x' x 4) ~ '-') x 3) | 13:29 | |
camelia | rakudo-moar dd6c85: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gmyAnupxwUUnexpected closing bracketat /tmp/gmyAnupxwU:1------> 3say (('x' x 4) ~ '-') x 37⏏5)» | ||
tony-o | m: say ((('x' x 4) ~ '-') x 3) | ||
camelia | rakudo-moar dd6c85: OUTPUT«xxxx-xxxx-xxxx-» | ||
13:32
brrt joined
13:34
CIAvash left
13:37
khw joined
13:39
aborazmeh joined,
aborazmeh left,
aborazmeh joined
13:43
Ven joined
13:52
thou joined
13:53
aborazmeh left
|
|||
carlin | is there a way do "hash key exists and value equals..." as one statement? eg. a shorter `if %hash<foo> && %hash<foo> eq "baz" ...` | 13:54 | |
13:56
thou left
|
|||
timotimo | maybe %hash<foo>:exists:value | 13:57 | |
m: my %foo = a => 10; say %foo<a>:exists:value | |||
camelia | rakudo-moar dd6c85: OUTPUT«Unexpected adverb 'value' and unsupported combination of adverbs (exists) passed to slice on %foo in block <unit> at /tmp/4vLwugAyZx:1Actually thrown at: in block <unit> at /tmp/4vLwugAyZx:1» | ||
timotimo | m: my %foo = a => 10; say %foo<a>:exists | ||
camelia | rakudo-moar dd6c85: OUTPUT«True» | ||
timotimo | m: my %foo = a => 10; say %foo<a>:value:exists | ||
camelia | rakudo-moar dd6c85: OUTPUT«Unexpected adverb 'value' and unsupported combination of adverbs (exists) passed to slice on %foo in block <unit> at /tmp/Om3FGVbMVj:1Actually thrown at: in block <unit> at /tmp/Om3FGVbMVj:1» | ||
timotimo | m: my %foo = a => 10; say %foo<a>:kv:exists | ||
camelia | rakudo-moar dd6c85: OUTPUT«(a True)» | ||
timotimo | m: my %foo = a => 10; say %foo<a>:pair:exists | 13:58 | |
camelia | rakudo-moar dd6c85: OUTPUT«Unexpected adverb 'pair' and unsupported combination of adverbs (exists) passed to slice on %foo in block <unit> at /tmp/hUUbAaAbjn:1Actually thrown at: in block <unit> at /tmp/hUUbAaAbjn:1» | ||
timotimo | m: my %foo = a => 10; say %foo<a>:pairs:exists | ||
camelia | rakudo-moar dd6c85: OUTPUT«Unexpected adverb 'pairs' and unsupported combination of adverbs (exists) passed to slice on %foo in block <unit> at /tmp/PRCzRGZl10:1Actually thrown at: in block <unit> at /tmp/PRCzRGZl10:1» | ||
timotimo | m: my %foo = a => 10; say %foo<a>:p:exists | ||
camelia | rakudo-moar dd6c85: OUTPUT«a => True» | ||
timotimo | not quite .. at all | ||
14:01
Ven left
|
|||
tony-o | m: my %a; say (%a.somekey // '') eq 'hello' ?? %a.somekey !! 'nope'; | 14:03 | |
camelia | rakudo-moar dd6c85: OUTPUT«Method 'somekey' not found for invocant of class 'Hash' in block <unit> at /tmp/QFjS6AeuqD:1» | ||
tony-o | m: my %a; say (%a<somekey> // '') eq 'hello' ?? %a.somekey !! 'nope'; | 14:04 | |
camelia | rakudo-moar dd6c85: OUTPUT«nope» | ||
tony-o | too much javascript | ||
m: my %a; say (%a<somekey> // '') eq 'hello' ?? %a<somekey> !! 'nope'; | |||
camelia | rakudo-moar dd6c85: OUTPUT«nope» | ||
tony-o | m: my %a = somekey => 'sup carlin'; say (%a<somekey> // '') eq 'hello' ?? %a<somekey> !! 'nope'; | ||
camelia | rakudo-moar dd6c85: OUTPUT«nope» | ||
lizmat | m: my %h = a => 42; dd %h<a>:v, %h<b> %h<b>:v | 14:05 | |
camelia | rakudo-moar dd6c85: OUTPUT«5===SORRY!5=== Error while compiling /tmp/f1RSBpOnAUUndeclared routine: h used at line 1» | ||
lizmat | m: my %h = a => 42; dd %h<a>:v, %h<b>, %h<b>:v | ||
camelia | rakudo-moar dd6c85: OUTPUT«42Any %h = Any()» | ||
tony-o | m: my %a = { somekey => 'sup carlin' }; say (%a<somekey> // '') eq 'hello' ?? %a<somekey> !! 'nope'; | ||
camelia | rakudo-moar dd6c85: OUTPUT«Potential difficulties: Useless use of hash composer on right side of hash assignment; did you mean := instead? at /tmp/ArRDUb5zhb:1 ------> 3my %a = { somekey => 'sup carlin' }7⏏5; say (%a<somekey> // '') eq 'hello' ?? nope» | ||
tony-o | meh, something like that | ||
lizmat | tony-o: I think :v is what you want, as it filters | ||
leont | How do I prevent flattening in xAB@a.push: (1,2,3)xBB? | 14:06 | |
lizmat | $(1,2,3) | ||
leont | Ah! | ||
tony-o | m: my @a; @a.push($(1,2,3)); @a.perl.say; | ||
camelia | rakudo-moar dd6c85: OUTPUT«[(1, 2, 3),]» | ||
leont | Yes that works much better :-) | ||
lizmat | m: my %h = a => 42; dd %h<a b>, %h<a b>:v | ||
camelia | rakudo-moar dd6c85: OUTPUT«(42, Any)(42,)» | ||
lizmat | tony-o: ^^^ | 14:07 | |
tony-o | i was mostly just answering carlin 's inquiry about checking for a key existing and checking the value in one statement | ||
i always use the ($var // Nil) or something similar | 14:08 | ||
carlin | ah that looks like what I want | ||
m: my %h = a => "test"; if %h<a>:v eq "test" { say "it works"; } | |||
camelia | rakudo-moar dd6c85: OUTPUT«it works» | ||
carlin | m: my %h = a => "test"; if %h<b>:v eq "test" { say "it works"; } | ||
camelia | ( no output ) | ||
lizmat | m: my %h = a => "test"; if %h<b> eq "test" { say "it works"; } | 14:09 | |
camelia | rakudo-moar dd6c85: OUTPUT«Use of uninitialized value %h of type Any in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/S25S5s3GSZ:1» | ||
lizmat | m: say Nil eq "test" | ||
camelia | rakudo-moar dd6c85: OUTPUT«Use of Nil in string context in block <unit> at /tmp/NfH3jif1RV:1False» | ||
lizmat | m: say () eq "test" | ||
camelia | rakudo-moar dd6c85: OUTPUT«False» | ||
lizmat | m: say () eq "" | 14:10 | |
camelia | rakudo-moar dd6c85: OUTPUT«True» | ||
lizmat | carlin: not sure that *currently* does what you think it does | ||
carlin | does "currently" imply that it is supposed to do what I think it does? :-) | 14:11 | |
14:11
skids joined
|
|||
timotimo | did you see the error message there wasn't so awesome? | 14:11 | |
"uninitialized value %h" should really have hinted at the subscript existing | 14:12 | ||
lizmat | m: my %h = a => "test"; say "it works" if $_ eq "test" with %h<a> | ||
camelia | rakudo-moar dd6c85: OUTPUT«5===SORRY!5=== Error while compiling /tmp/MFCyoJmqZfTwo terms in a rowat /tmp/MFCyoJmqZf:1------> 3> "test"; say "it works" if $_ eq "test"7⏏5 with %h<a> expecting any of: infix infix stopper» | ||
moritz | s/with/given/ ? | ||
[Coke] wonders if "with" is the right hammer here. | |||
lizmat | moritz: want to prevent warning on undef value | ||
timotimo | just use === instead of eq? :P | 14:13 | |
moritz | lizmat: but postfix with doesn't set $_, no? | ||
14:13
thou joined
|
|||
lizmat | m: .say with 42 | 14:13 | |
camelia | rakudo-moar dd6c85: OUTPUT«42» | ||
[Coke] might be a few sends behind. | |||
lizmat | m: sub a($a) { .return with $a; die }; a 42; a Int | 14:14 | |
camelia | rakudo-moar dd6c85: OUTPUT«Died in sub a at /tmp/CYyo8Cbwmo:1 in block <unit> at /tmp/CYyo8Cbwmo:1» | ||
lizmat | m: sub a($a) { .return with $a; die }; a 42; | ||
camelia | rakudo-moar dd6c85: OUTPUT«Died in sub a at /tmp/qinKlQEVVG:1 in block <unit> at /tmp/qinKlQEVVG:1» | ||
lizmat | huh? | ||
m: sub a($a) { .return with $a}; say a 42; | |||
camelia | rakudo-moar dd6c85: OUTPUT«42» | ||
lizmat | m: sub a($a) { .return with $a}; say a Int | 14:15 | |
camelia | rakudo-moar dd6c85: OUTPUT«()» | ||
lizmat | m: sub a($a) { .return with $a; die }; say a Int | ||
camelia | rakudo-moar dd6c85: OUTPUT«Died in sub a at /tmp/R6FskgC1U1:1 in block <unit> at /tmp/R6FskgC1U1:1» | ||
lizmat | moritz: it does set $_ :-) | ||
[Coke] | m: sub a($) { 3.return }; say a 42; | ||
camelia | rakudo-moar dd6c85: OUTPUT«3» | ||
lizmat | one of the things I added recently: we have a .take, why not a .return ? | 14:16 | |
tony-o | m: my %h = a => 123; say %h<b>:v eq ''; | ||
camelia | rakudo-moar dd6c85: OUTPUT«True» | ||
tony-o | m: my %h = a => 123; say %h<b> eqv ''; | ||
camelia | rakudo-moar dd6c85: OUTPUT«False» | ||
tony-o | that might be more what you want carlin | ||
lizmat | I would argue that %h<b>:v should return Nil | ||
rather than an empty list | |||
masak | lizmat: ...why do we have a .take ? :P | 14:17 | |
lizmat | I have no idea, that was before my time | ||
masak | if it's just a sub, not a keyword, people who wanted .take could already do .&take | ||
but .take is probably older even than that realization... | |||
lizmat | it *is* being used in the core | ||
masak | ok | ||
jnthn | masak: @foo.deepmap(*.take) is cute | 14:18 | |
Though only 1 char cuter than *.&take :) | |||
masak | for some reason, I find it more palatable to stuff the core setting with useful routines than to stuff Mu/Any with useful methods... | ||
I guess because they inherit into *everything* | |||
and we kinda complicate life a little bit for people who felt .take was a nice method name for their API... | 14:19 | ||
[Coke] has a clean stresstest on OS X. nice. | |||
tadzik: care to apply rt.perl.org/Ticket/Display.html?id=126211 ? | 14:21 | ||
14:22
jkva left
|
|||
tadzik | [Coke]: sure. Not sure where that module lives now... :) | 14:24 | |
[Coke] | hoelzro: I get that RT #126202 isn't doing what you want, but it's following the "spec", yes? So is the request that the spec change? | ||
tadzik: it's a patch against rakudo, I think. | |||
tadzik | [Coke]: indeed | ||
dalek | kudo/nom: cd8ce4e | (Shoichi Kaji)++ | lib/Pod/To/Text.pm: Use Terminal::ANSIColor instead of Term::ANSIColor Because Term::ANSIColor is deprecated See github.com/tadzik/perl6-Term-ANSIC...be708da23d |
14:26 | |
tony-o | dang. | 14:27 | |
[Coke] | When documenting IterationEnd on doc.perl6.org, is it ok to give it a page as a Type (even though it's nto really a type?) | ||
lizmat | do I understand correctly that we have a core module depending on an ecosystem module ? | ||
moritz | lizmat: if it's not available, it simply doesn't color the output | ||
lizmat | ah, ok :-) | 14:28 | |
[Coke] | ah, it's already got a constant entry somewhere. | ||
14:32
FROGGS joined
|
|||
jasanj | ls | 14:36 | |
geekosaur | . .. | ||
jasanj | :) | 14:37 | |
timotimo | you're feeling rather empty today, geekosaur | ||
geekosaur not sure what subdirectories of an irc channel would be... | 14:38 | ||
DrForr | Spaced out even :) | ||
tony-o | geekosaur: it would work like mux | 14:44 | |
14:47
Ven joined
14:50
zakharyas left
|
|||
[Coke] | moritz: I'm unable to get a working --profile for even a sparse=100 run of htmlify. You have any luck? | 14:50 | |
pmurias_ | moritz: would it be possible to get node.js installed on hack according to: github.com/nodejs/node-v0.x-archiv...tributions | 14:51 | |
moritz | [Coke]: I've been able to get one (though I wasn't able to display the results in the browser), but it doesn't make any sense at all | 14:52 | |
pmurias_ | moritz: [Coke] was having weird problems with native node modules building that point at some debian node.js crazyiness | ||
14:52
pmurias_ left
|
|||
moritz | pmurias_: uhm, I don't like the curl | bash - as root much :/ | 14:52 | |
dalek | c: 5fc7cbd | coke++ | lib/Type/Iterator.pod: RT #126159, notes on IterationEnd |
14:53 | |
14:53
jkva joined
|
|||
moritz | whatever. | 14:54 | |
.tell pmurias I've installed a more up-to-date nodejs on hack. Have fun! | 14:55 | ||
yoleaux | moritz: I'll pass your message to pmurias. | ||
[Coke] tests it out. | |||
Woodi | hi today :) | ||
14:55
pmurias joined
|
|||
dalek | rl6-roast-data: cb7b291 | coke++ | / (9 files): today (automated commit) |
14:55 | |
[Coke] | hello from tomorrow. | 14:56 | |
leont | Is there a way to force named arguments into the slurpy array parameter? | 14:57 | |
moritz | leont: uhm, not that I'm aware of; what's the use case? | ||
leont | I'd like to not lose their order | 14:58 | |
moritz | nope | ||
tadzik | well, you can have a slurpy hash | ||
oh, wait | |||
Woodi | I have small performance benchmark, very unscientific. additionally thing run without jit. so my results: spring 2014: 46; spring 2015 36; 2015.07 32; 2015.09 30 where 1 is time of do-same-thing perl5 script... | ||
tadzik | *not* | ||
[Coke] | moritz, pmurias: much better, thanks. | 14:59 | |
moritz | Woodi: nice | ||
[Coke] | pmurias: t/nqp/78-shell.t fails tests 4-5 | ||
Woodi | but when I put exit 0; as first line in program it is 19x perl5... | ||
so parsing takes ages... | |||
15:00
vike joined
|
|||
Woodi | also looks .parsefile is faster then .parse | 15:00 | |
15:01
emilbarton joined
|
|||
[Coke] | moritz: if you can't open it in the browser, how do you know it doesn't make sense? | 15:01 | |
moritz | [Coke]: I've written a small perl5 script that analyses the generated json | 15:02 | |
pmurias | [Coke]: I'm updating my node.js and I'll see if I can reproduce that | 15:04 | |
yoleaux | 14:54Z <moritz> pmurias: I've installed a more up-to-date nodejs on hack. Have fun! | ||
15:04
diakopter left
|
|||
moritz | [Coke]: and it reports that much of the exclusive time is spent in a routine that does nearly nothing, just calls other routines that do a lot of work | 15:05 | |
[Coke] | Woodi: how does it compare with -e "" ? | ||
moritz: any args passed between these subs? | |||
moritz | [Coke]: sure | ||
dalek | c: 5c4ca1a | (Steve Mynott)++ | bin/p6doc-index: GLR fix for github.com/perl6/doc/issues/137 |
15:06 | |
[Coke] | are they big? maybe something is doing a lot of processing of the args? | ||
(just as part of the calling conventions) | |||
(or in a loop, maybe the OSR/Deopt is associated with that sub for some reason?) | 15:07 | ||
hoelzro | [Coke]: I'm not requesting a spec change; I'm just wondering if we should be issuing a warning or something | ||
o/ #perl6 | |||
[Coke] | what would be the condition to generate the warning? | 15:08 | |
15:08
kolikov left
|
|||
brrt | hey, question | 15:09 | |
timotimo | hey, answer | ||
hey, listen! | |||
brrt | can perl6 do evil things like inspect the lexicals of a caller? | ||
moritz | brrt: only if they are marked as "is context", iirc | 15:10 | |
brrt | do you have an example? | ||
hmmmm | |||
_itz_ | did that moarvm serialisation work (for panda ISTR) ever get merged? | ||
hoelzro | [Coke]: two declarands on the same line | ||
TimToady | 'is dynamic' | 15:11 | |
yoleaux | 27 Sep 2015 19:44Z <japhb> TimToady: Happy Birthday! | ||
[Coke] | moritz: can I borrow your perl5 script for looking at the data? | 15:12 | |
15:13
diakopter joined
|
|||
moritz | [Coke]: you'll have to ask me again when I'm home; it's not in da cloud :/ | 15:13 | |
brrt | m: sub foo is dynamic { my $x = 1; bar(); }; sub bar { say CALLER::<$x>; }; foo(); | ||
camelia | rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/fLHewGeaUoCan't use unknown trait 'is dynamic' in a sub declaration.at /tmp/fLHewGeaUo:1 expecting any of: rw raw hidden-from-backtrace hidden-from-USAGE cached pure default DEPR…» | ||
moritz | [Coke]: so, in about an hour | 15:14 | |
[Coke] | moritz: danke. | ||
leont | Is there a cleaner solution than hand-writing the accessor to making xABhas @.fooxBB being publically writable? | ||
ilmari | sub foo { my $x is dynamic = 1; bar(); }; sub bar { say CALLER::<$x>; }; foo(); | ||
m: sub foo { my $x is dynamic = 1; bar(); }; sub bar { say CALLER::<$x>; }; foo(); | 15:15 | ||
camelia | rakudo-moar cd8ce4: OUTPUT«1» | ||
15:15
araujo left
|
|||
ilmari | brrt: it's the variable that needs 'is dynamic', not the sub | 15:15 | |
leont | Erm, that's not clear English, I want it *not* to be writable | ||
brrt | aha | ||
Woodi | [Coke]: -e "" is exactly 6 :) | ||
brrt | ilmari++ | 15:16 | |
15:17
baest joined
|
|||
lizmat | FWIW, I think it's better to use the more visual * twigil | 15:17 | |
15:17
Ven left
|
|||
timotimo | leont: arrays have the problem of being mutable :\ | 15:17 | |
lizmat | m: sub foo { my $*x = 1; bar(); }; sub bar { say CALLER::<$x>; }; foo(); # brrt | ||
camelia | rakudo-moar cd8ce4: OUTPUT«(Any)» | ||
leont has a thing for immutablex85 | |||
lizmat | m: sub foo { my $*x = 1; bar(); }; sub bar { say CALLER::<$*x>; }; foo(); # brrt | ||
camelia | rakudo-moar cd8ce4: OUTPUT«1» | ||
timotimo | of course you do :) | 15:18 | |
brrt | aye, i agree lizmat | ||
ilmari | m: class Foo { has @.foo is ro }; say Foo.new(foo => (1..3)) | ||
camelia | rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gyjIygme_9Can't use unknown trait 'is ro' in an attribute declaration.at /tmp/gyjIygme_9:1 expecting any of: rw readonly box_target leading_docs tra…» | ||
15:19
tokuhiro_ left
|
|||
lizmat | m: sub foo { my $*x = 1; bar(); }; sub bar { say $*x }; foo(); # even simpler :-) brrt | 15:20 | |
camelia | rakudo-moar cd8ce4: OUTPUT«1» | ||
brrt | the question is whether normal not-so-marked lexicals can be accessed via CALLER and so escape the life of the frame | 15:21 | |
i suppose they can't, which is good | |||
masak | yeah. phew. | ||
lizmat | well, probably with some callframe() magic and introspection and nqp, you could probably get at them | 15:22 | |
[Coke] | RT #126130 - Real.new.say goes to Real.Str -> Real.Bridge -> Real.Num -> Real.Bridge -> Real.Num ... ; is the best thing to do here to add a new() to the Role that just throws an exception? (or is there a reason to allow Real.new in the first place?) | ||
brrt | hmmm | ||
masak | I think if someone uses nqp, we're not at fault for optimizing things away without considering the nqp code. | 15:23 | |
15:23
rurban left
|
|||
brrt | however, using nqp::* ops in perl6 is imho very much at your own risk | 15:23 | |
masak | "nqp at your own risk", kind of. | ||
right. | |||
pmurias | node.js-- # packages breaking on the newest node.js | 15:25 | |
15:25
jkva left
|
|||
diakopter | well, at least they got the io.js fork remergered | 15:25 | |
masak | pmurias: breaking how? | 15:26 | |
pmurias | failing to build :( | ||
15:26
n0tjack joined
|
|||
masak | :( | 15:26 | |
n0tjack | If ^10 is a shortcut for 0..9, is there a shortcut for 1..10? | 15:27 | |
p6: 1 [+] ^10; | |||
camelia | rakudo-moar cd8ce4: OUTPUT«WARNINGS:Useless use of "[+]" in expression "1 [+] ^" in sink context (line 1)» | ||
brrt | ^10 >> *+1 maybe | ||
m: say ^10.>> *+1 | |||
n0tjack | oh, interesting | ||
camelia | rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_51BcjafuSMissing postfixat /tmp/_51BcjafuS:1------> 3say ^10.>>7⏏5 *+1 expecting any of: postfix» | ||
n0tjack | I always forget about >> | ||
brrt | nah, that doesn't work | ||
n0tjack | p6: 1 <<+>> ^10 | 15:28 | |
camelia | ( no output ) | ||
n0tjack | p6: say(1 <<+>> ^10) | ||
camelia | rakudo-moar cd8ce4: OUTPUT«(1 2 3 4 5 6 7 8 9 10)» | ||
n0tjack | I also get [+] and <<+>> mixed up | ||
I suppose the answer is just 1..10 | 15:29 | ||
thanks | |||
diakopter | pmurias: you knew about the io.js fork and big controversy and community split? | ||
15:30
larion left
|
|||
|Tux| | So, should "panda --installed --verbose list" do the same as "panda list --installed --verbose" ? | 15:31 | |
the first works, the second barfs | 15:32 | ||
n0tjack | p6: sub prefix:<➕> { (1..*)[^n] } say (➕^10); | ||
camelia | rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileStrange text after block (missing semicolon or comma?)at /tmp/tmpfile:1------> 3sub prefix:<➕> { (1..*)[^n] }7⏏5 say (➕^10); expecting any of: infix infix sto…» | ||
diakopter | it was a reaction to Joyent (and StrongLoop, and others) trying to take over the community & project & such | ||
n0tjack | p6: sub prefix:<➕> { (1..*)[^n] }; say (➕^10); | 15:33 | |
camelia | rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileUndeclared routine: n used at line 1» | ||
n0tjack | p6: sub prefix:<➕> { (1..*)[$^n] }; say (➕^10); | ||
camelia | rakudo-moar cd8ce4: OUTPUT«11» | ||
n0tjack | why isn't the ➕ operator there getting ^10 (0..9) as an array and using it as a slice? | 15:34 | |
15:34
rindolf left
|
|||
n0tjack | p6: sub prefix:<➕> { (1..*)[@n] }; say (➕^10); | 15:34 | |
camelia | rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileVariable '@n' is not declaredat /tmp/tmpfile:1------> 3sub prefix:<➕> { (1..*)[7⏏5@n] }; say (➕^10);» | ||
ilmari | m: sub prefix:<➕>(@n) { (1..*)[@n] }; say (➕^10); | 15:36 | |
camelia | rakudo-moar cd8ce4: OUTPUT«(1 2 3 4 5 6 7 8 9 10)» | ||
n0tjack | thanks! | 15:37 | |
I wasn't sure how to name arguments in operator definitions | |||
ilmari | m: sub prefix:<➕> { (1..*)[@^n] }; say (➕^10); | ||
camelia | rakudo-moar cd8ce4: OUTPUT«(1 2 3 4 5 6 7 8 9 10)» | ||
ilmari | the ^ twigil creates implicit parameters | 15:38 | |
n0tjack | yes, that's what I wanted. | ||
15:39
diana_olhovik_ left
|
|||
n0tjack | because (1..*) is anonymous, will perl6 reconstruct it on every call? | 15:39 | |
or does the lazy-list memoization still apply? | |||
TimToady | the 1..* is not expensive to generate, but unrolling the range can be | 15:40 | |
we oughta be able to add and multiply intervals directly though... | 15:41 | ||
n0tjack | how does the compiler know if it needs to calculate all the indices up to the requested interval vs. when it can get away with calculating htem directly? | 15:42 | |
pmurias | diakopter: I wasn't aware of the controversy | 15:43 | |
diakopter: the fork seemed to resolve itself while I was away from nqp-js and as such I didn't look deep into it | 15:44 | ||
diakopter: what's really annoying me right now is nqp-js deps having unmerged pull request to make them build on current node.js | 15:45 | ||
15:45
jasanj` joined
|
|||
leont | Where can I find more information about that "New slurpy parameter" syntax? | 15:46 | |
I can guess what it does, but details | 15:47 | ||
15:47
brrt left
|
|||
pmurias | diakopter: have you followed the community fork? | 15:48 | |
15:48
domidumont left
|
|||
TimToady | leont: design.perl6.org/S06.html#One-argum...py_binding | 15:48 | |
15:49
jasanj left
|
|||
leont | Thanks, yeah that is by now what I expect | 15:50 | |
nine | m: sub foo() { my $x = 1; bar; }; sub bar() { say CALLER::LEXICAL::<$x>; }; foo; | ||
camelia | rakudo-moar cd8ce4: OUTPUT«1» | ||
nine | brrt ^^^ | ||
I knew there was a way without nqp | |||
pmurias | isn't it spec violating? | 15:51 | |
TimToady | .tell ShimmerFairy no, tc is by definition only for initial caps; use tcuc if you want to uppercase everything | 15:56 | |
yoleaux | TimToady: I'll pass your message to ShimmerFairy. | ||
pmurias | hmm it seems that nqp-js builds on travis are randomly failing due to something that looks like a random moarvm memory error I had sometimes experienced in the past :( | 15:59 | |
16:01
bioexpress joined
16:03
araujo joined
|
|||
bioexpress | Hello, why was the module Term::ANSIColor renamed in Terminal::ANSIColor? | 16:03 | |
16:04
Ven joined,
araujo left
|
|||
TimToady | because someone thought it might collide with the idea of "term" in parsing, but it's an unfounded fear | 16:05 | |
16:05
araujo joined
|
|||
bioexpress | thx | 16:06 | |
Ven waves | 16:08 | ||
TimToady | is it just me, or did the parse phase get about 10 seconds slower overnight? | 16:09 | |
tadzik | well, I still think that Terminal is a better name for terminal stuff than Term | 16:10 | |
16:10
emilbarton left,
araujo left
|
|||
TimToady | it's as likely to collide with an airport terminal | 16:10 | |
all the world is not CS | 16:11 | ||
PerlJam | Terminal::Degree :) | ||
n0tjack | Terminal::Velocity | ||
TimToady | Terminal::Patient | ||
you can play this game on both sides :) | 16:12 | ||
16:12
mr_ron joined
|
|||
TimToady | and Term has history | 16:12 | |
mr_ron | m: class C { method gist { 42 } }; my $c = C.new; my $i = 5; say $i; say $c.perl; say $c | ||
yoleaux | 27 Sep 2015 05:57Z <moritz> mr_ron: that's what the R* releases are for: they are snapshots where the version of rakudo and the modules match | ||
camelia | rakudo-moar cd8ce4: OUTPUT«5C.newThis type cannot unbox to a native string in block <unit> at /tmp/1LGLJiZs1S:1» | ||
pmurias | the module is called Term::ANSIColor in both perl5 and ruby | ||
TimToady | the name is already claimed, basically | 16:13 | |
PerlJam | Shells will still call it TERM too. | ||
TimToady | and we don't really need this to become a FAQ | ||
tadzik | I wasn't aware that "it has always been that way and we've been fine" is an argument in the perl 6 world | ||
TimToady | sure it is | 16:14 | |
tadzik | I'm okay with reverting the change given the apparent outrage that it caused :) | ||
but I still think it was for the better | |||
PerlJam | tadzik: I'm not outraged, just highly surprised. | ||
TimToady | .oO(use Terminal::ANSIColor:api<Term>) |
16:15 | |
pmurias | (reverting the name)++ | ||
TimToady | .oO(use Term::ANSIColor:api<Terminal>)[C[C[C[C[C[C[C[C[C[C[C[C :) |
16:16 | |
yow | |||
.oO(use Term::ANSIColor:api<Terminal>) :) |
|||
tadzik | I was sure that ?C?C?C?C?C?C?C?C is part of the joke :P | 16:17 | |
PerlJam | me too! :) | ||
TimToady | I reverted it | ||
tadzik | . o O ( now you should too ) | ||
Ven | is there a way to get such parameters? | ||
TimToady | eh? | 16:18 | |
16:20
tokuhiro_ joined
|
|||
Ven | the ":api<...>" part of "use" :P | 16:21 | |
pmurias | would bumping the minimal node.js version from the 0.10 to 0.12 cause trouble for anyone? (so I can get rid of an annoying broken dependency) | ||
16:22
rurban joined
|
|||
TimToady | speaking of 16-bit limitations... | 16:23 | |
m: say 1, |(2 xx 65536) | |||
camelia | rakudo-moar cd8ce4: OUTPUT«Too many arguments in flattening array. in block <unit> at /tmp/FivESPhr4o:1» | ||
TimToady | m: say 1, |(2 xx 65535) | ||
camelia | rakudo-moar cd8ce4: OUTPUT«Too many arguments in flattening array. in block <unit> at /tmp/5Mo4af5Avw:1» | ||
TimToady | m: say 1, |(2 xx 65534) | 16:24 | |
camelia | rakudo-moar cd8ce4: OUTPUT«(signal SEGV)» | ||
jnthn | TimToady: Well, on the JVM you hit that at 256... | ||
TimToady: Additionally, on both, the performance of doing huge arg flattens is pretty horrible. | |||
TimToady | pity we can't defer to slip somehow instead | ||
16:25
tokuhiro_ left
|
|||
TimToady | shouldn't SEGV though | 16:25 | |
jnthn | I've pondered that a bit but it's...fraught | ||
Yeah, agee. File that one... | |||
TimToady | and various internals depend on | | ||
jnthn | Arg passing is one of those things you really want to keep pretty low level... | ||
TimToady | but it breaks our metas | ||
jnthn | Why? | 16:26 | |
I never got why they were written in that way, especially after the single arg rule. | |||
TimToady | sub (+values) { op.(|values) } # from METAOP_REDUCE_LIST | 16:28 | |
it's already single-arg | |||
16:29
bioexpress left
|
|||
TimToady | not using | there only works if all possible ops are single arg | 16:29 | |
jnthn | If the purpose is just to delegate, can it not be sub (|c) { op.(|c) } ? | 16:30 | |
TimToady | doesn't help the triangle form | 16:31 | |
but maybe we can write that off as rather specialized | |||
16:32
araujo joined,
araujo left,
araujo joined
16:33
patrickz joined
|
|||
Ven | TimToady: why is the | necessary in (|values)? In case it's not a single-arg-rule'd operator? | 16:34 | |
TimToady | that's the idea | ||
maybe we can optimize it away somehow | 16:35 | ||
lizmat | p6weekly.wordpress.com/2015/09/28/...-birthday/ # it is live! :-) | 16:36 | |
TimToady | and the | -> | trick doesn't really help when we have do more than delegate, as in op.(|values.map({nqp::decont($_)})) | ||
16:37
emilbarton joined
|
|||
TimToady | can we somehow notice when we pass a single arg | and promote it directly to a capture? | 16:38 | |
jnthn | lizmat: I think superstitious parens around (^100) | 16:41 | |
16:42
spider-mario joined,
diana_olhovik_ joined
|
|||
jnthn | TimToady: That may be more manageable, though Capture objects only really exist "on demand" (since we don't really want to allocate a GC-able object per call in Moar, and on the JVM we want to use its own idea of arguments so we can take advantage of stuff like invokedynamic) | 16:43 | |
TimToady: So the actual guts of arg passing don't actual involve a Capture | 16:44 | ||
lizmat | m: ^10.grep( * %% 2 ).say # jnthn: I think not | ||
camelia | rakudo-moar cd8ce4: OUTPUT«Potential difficulties: Precedence of ^ is looser than method call; please parenthesize at /tmp/ZqvzusWWsW:1 ------> 3^107⏏5.grep( * %% 2 ).say # jnthn: I think nWARNINGS:Useless use of "^" in expression "^10.grep( * %% 2 ).…» | ||
16:44
Ven left
|
|||
jnthn | lizmat: No no, only for the infix form. | 16:44 | |
lizmat: Which you used | |||
lizmat | aahhh | ||
jnthn | m: ^10 .grep( * %% 2 ).say | ||
camelia | rakudo-moar cd8ce4: OUTPUT«(0 2 4 6 8)» | ||
lizmat | m: ^10 . grep( * %% 2 ).say # jnthn: I think not | ||
camelia | rakudo-moar cd8ce4: OUTPUT«(0 2 4 6 8)» | ||
lizmat | whee | ||
jnthn | ;) | ||
lizmat | fixed... | 16:45 | |
jnthn | lizmat++ for the weekly btw | ||
I've a partly done thing to post, will finish it up this evening | |||
lizmat | that will be for next week's :-) | ||
cycling& | |||
jnthn | Indeed :) | 16:46 | |
16:48
leont left,
brrt joined
|
|||
tony-o | i just submitted a pr that has some temp fixes for CURLI since it looks like we're going to be spending an inordinate amount of time talking about it | 16:48 | |
jnthn | tony-o: Why the warn, ooc? | 16:50 | |
16:50
mr_ron left
|
|||
jnthn | tony-o: Something looks a bit off whitespace wise too | 16:51 | |
16:51
pmurias left,
spidermario joined
16:52
spider-mario left
|
|||
tony-o | because that seemed to be a large point of contention in our discussion and since i was in there i figured i'd compromise. i don't think it should do anything if no precomp is available. others think it should die | 16:52 | |
jnthn: my bad, i'm always on 2 spaces per tab. will correct it | |||
16:52
spidermario is now known as spider-mario
|
|||
jnthn | OK, I need to read a bunch of discussions :) | 16:52 | |
Also, will @candi not now always be empty? | 16:53 | ||
TimToady | .oO(taking children from candi...) |
||
jnthn | :P | ||
tony-o | haha | ||
it will always be empty if it gets to the last line, which means there is no candidates | 16:54 | ||
jnthn | Right, but the push to it is gone too? | ||
tony-o | it returns directly, like CURLF | ||
jnthn | I guess I'm just asking, why "+@candi ?? @candi[0] !! ();" intead of just () ? | ||
tony-o | jnthn: i pushed that in there with my spacing fix | 16:55 | |
jnthn | Will this cause warnings for folks using Panda? | 16:56 | |
Since it doesn't pre-comp? | |||
Or does it not use CURLI at all any more? | |||
tony-o | panda doesn't use CURLI at all so it shouldn't | ||
i get this error when i try to use panda so i can't test: /Users/tonyo/.rakudobrew/bin/panda: fork: Resource temporarily unavailable | 16:57 | ||
16:57
brrt left
17:03
espadrine left
|
|||
jnthn | o.O | 17:04 | |
gotta go; bbl | |||
But if somebody can test Panda with tony-o's patch, then I'm happy for it to go in | |||
17:06
larion joined
17:10
dha joined
|
|||
dha | Have published a blog post. FEAR ME. | 17:10 | |
TimToady has the appropriate amount of fu^Wfear | 17:11 | ||
nine | jnthn: I added a EnumHOW based class called Boolean to BOOTSTRAP.nqp. In Boolean.pm I can ^add_method, but when I try to ^add_multi_method, I get a "Cannot auto-generate a proto method in the setting" error. But when I try to ^add_multi_method the proto manually I get a Redeclaration error during compilation. | ||
jnthn: Any pointers for where should I go from here? | |||
dha | TimToady++ | 17:12 | |
17:16
darutoko- joined
|
|||
dha | .tell lizmat Have blogged, if you're still summarizing. dhaperl6.blogspot.com/2015/09/im-back.html | 17:18 | |
yoleaux | dha: I'll pass your message to lizmat. | ||
17:19
darutoko left
17:20
dakkar left
17:21
tokuhiro_ joined
17:23
diana_olhovik_ left
17:26
tokuhiro_ left,
diana_olhovik joined
17:32
rindolf joined
|
|||
btyler | dha: don't want to do the blogspot login dance, but for me the quality of perl 5's documentation was the omnipresent "SYNOPSIS" section | 17:37 | |
was/is, excuse me | |||
dha | no worries. I'll take comments here. ;-) | 17:38 | |
Thanks. | |||
17:38
pierrot left,
pierrot joined
|
|||
dha | That would be in module docs, rather than the perl docs per se, yes? | 17:39 | |
btyler | for me, a decent synopsis makes up for a lot of other failings; heck, I might not even discover the other documentation failings :) | ||
I suppose, although perldoc -f split has essentially a synopsis in the first 3 lines | |||
17:40
larion left,
n0tjack left
|
|||
dha | Ah. That kind of synopsis. Noted. | 17:41 | |
btyler | you're totally correct, I was thinking module, but both are deeply appreciated | ||
although I think it's fair to say that module docs for modules that ship in the main distribution are almost as important as core language doc | |||
dha | Indeed. but different from the point of view of doc writing. | 17:42 | |
And, yes, although not labelled "SYNOPSIS" the format examples for functions are important. | 17:43 | ||
btyler | for sure. ok, that's all the input I had, sorry for conflating module doc with core language doc | ||
dha | No worries. It's valuable and appreciated. | ||
btyler | I just have a deep love for SYNOPSIS culture | ||
dha | synopses are good. :-) | ||
btyler | it really helps me get stuff done | ||
Juerd found S07 easy to read, except for Iterable section | 17:44 | ||
Juerd doesn't know what "mark out" means, technically | 17:45 | ||
The second paragraph can be read as "mark out when .flat is used", or as "flatten when .flat is used" | |||
I'm not sure if "in conjunction with" means "together with", or somehow refers to junctions. | 17:46 | ||
dha | Hm. looking at C<split> in the p6 docs, I'm wondering if maybe we need "synopses" more like the p5 ones, rather than ones that seem to reflect the p6 implementation rather than use. | ||
Juerd | The last sentence ends in "returns identity". I don't know what returning identity is, but which identity is returned? | 17:47 | |
dha: What's a Perl 5 synopsis? | |||
dha | As discussed above. If I understand btyler correctly, stuff like "split /PATTERN/,EXPR,LIMIT" | 17:48 | |
btyler | I was just shoe-horning the term into a pattern seen in the p5 core docs | ||
Juerd | Oh, synopsis as in =head1 SYNOPSIS, not synopsis as in design document. I get it. | ||
17:49
rurban left
|
|||
dha | as opposed to what's in split for p6, e.g. "multi sub split( Str:D $delimiter, Str:D $input, $limit = Inf, :$all) returns Positional" | 17:49 | |
17:49
domidumont joined
|
|||
Juerd | I quite like having the signature in the documentation | 17:49 | |
dha | Of course, because there are several C<split>s, this gets complicated. | ||
btyler | I'd also note an anti-pattern in the python core docs: I used python for two years in university and pretty much had no idea what the docs meant by "kwargs" everywhere | ||
PerlJam | dha: since types have a more prominent role in P6 and multis exist, I think having the full signature is quite useful | ||
btyler | of course, once you know it, it is very clear | ||
dha | Juerd - I should have said "along with" rather than "rather than" | ||
Juerd | btyler: Have you found out whether kwargs are edible? | ||
btyler | nom nom nom | 17:50 | |
PerlJam | dha: that's not to say there shouldn't *also* be here's-how-to-use-the-thing synopses | ||
dha | PerlJam - right. | ||
btyler | *had no idea what 'kwargs' meant, despite referring to the online docs constantly while working through my assignments | 17:51 | |
dha | With some exceptions, I'm thinking that more information is generally better. | ||
PerlJam | yep | ||
17:51
AlexDani` joined
|
|||
Juerd | PerlJam: When examples are included, I love when there's a basic one and a more advanced one. A lot of documentation uses examples to show off capabilities, rather than the simplicity of the most common usage. | 17:51 | |
17:51
AlexDani` is now known as AlexDaniel
|
|||
btyler | which generalizes to "be really careful of the amount of language-specific vocabulary you ask people to pick up while reading doc" | 17:51 | |
Juerd | (Referring to documentation in general, not Perl docs specifically) | ||
PerlJam | Juerd: indeed. I find it annoying when examples try to show-off everything at once. | 17:52 | |
Juerd | btyler: Wiki-style links can be useful. They allow you to use jargon for conciseness without the downside of having many people miss out. | ||
AlexDaniel | How can I search for all bug reports that were opened by me? Both open and closed, I want to review a couple of them… | 17:53 | |
Juerd | PerlJam: I like it when they do, but not as the *only* example :) | ||
dha | Juerd - I agree. I'm thinking, in general terms, (full signature synopsis)/(usage synopsis)/(description with appropriate examples interleaved) | ||
PerlJam | dha++ sounds awesome | ||
Juerd | dha: That would work. Personally I'm not a big fan of interleaving because it gets messy, but I wouldn't object to it. | ||
btyler | Juerd: yes, certainly, although man page formatting precludes taking too much advantage of links | 17:54 | |
dha | Well, when I say interleaving, I mean "here's what this does (...) like this: (example) | ||
Juerd | I think that probably most people like the interleaved style. | ||
dha | which might be what you don't like, but I think it's generally useful. | ||
Juerd | btyler: I think that primarily advanced users who have previously studied the language and learned the jargon will use manpages, whereas most beginners will very probably (only) use HTML resources instead. | 17:55 | |
btyler | yeah, perhaps. I used them a lot when I was learning perl, if only because it was faster than navigating my browser to the appropriate web version, but I guess I don't know how common that learning scenario is | 17:56 | |
PerlJam | I know that when I must use PHP, php.net is a necessary resource ;) | 17:58 | |
dha | Juerd - I wouldn't assume that. Particularly for p5 programmers who are probably pretty used to using "perldoc perlblah" or "perldoc -f function" | ||
Juerd | I've been called a fossil for using those. | 17:59 | |
dha | I would not call you that for that. :-) | 18:01 | |
Of course I would call people who called you that young whippersnappers and tell them to get off my lawn, so maybe I'm a bit out of touch. ;-) | 18:03 | ||
pink_mist prefers reading the perl5 perldocs online most of the time; the browser has a more featureful interface for navigating around the docs than my terminal has | |||
dha | Young whippersnapper. Get off my lawn! | 18:04 | |
Juerd | :) | ||
18:04
sufrostico joined
|
|||
pink_mist | plus I can keep track of which window is docs easier if it doesn't look the same as one where I'm coding :P | 18:04 | |
18:05
diana_olhovik left,
z8 joined
|
|||
dha | Hm. I'm also wondering how something like p5-s "perldoc -f" would work in p6, when there are multiple versions of a function in different classes. | 18:05 | |
pink_mist - You kids today... tsk. | 18:06 | ||
(I can keep this up all day, you know... :-) | |||
pink_mist | (or at least you could have if you were younger :P) | ||
18:07
sufrostico left
|
|||
dha | Ouch! | 18:07 | |
Juerd | pink_mist: I like your nickname. Does it refer to anything specific? | 18:08 | |
Oh, after looking it up and finding the definition in the "urban dictionary" I don't really like it anymore. | 18:09 | ||
dha | btyler - would it make people's lives easier if I moved to something other than blogger? | ||
Juerd | www.urbandictionary.com/define.php?...=pink+mist | ||
pink_mist | Juerd: it's not from ud :/ | ||
dha | looking things up in Urban Dictionary is usually a mistake. :-) | ||
pink_mist | Juerd: though I guess it's not far from it ... | ||
Juerd | dha: I didn't specifically look it up there. Duckduckgo found it for me. | ||
dha | btyler - or mirrored on something other than blogger? | ||
pink_mist | Juerd: heh, not really ... I got it by being uppity towards an operator in some other channel, long long ago, on a network far far away ... and he got annoyed at me and killed me so hard a pink mist was all that was left | ||
Juerd | Heh | 18:10 | |
dha | Juerd - even so. :-) | ||
PerlJam | pink_mist: here I've been thinking that you have some affinity for bombs/bomb squads | 18:11 | |
pink_mist | 0_o lol | ||
Juerd | I thought maybe it had to do with "My Little Pony" or something like that :) | ||
pink_mist | no no, that's just my hostname (uhm, if I'm uncloaked that is) :P | 18:12 | |
PerlJam | Juerd: that's a far happier version of things :) | ||
btyler | dha: I'm just being a grouch about blog comment systems, don't sweat it | 18:13 | |
dha | btyler - will do. :-) | ||
DrForr | Damnit, we're woking on it, it just got delayed due to a failed gravity check. | ||
*working | 18:14 | ||
Juerd | Gravity failed? | ||
DrForr | No, I spontaneously decided to make sure gravity still worked by moving a limb wrong. | 18:15 | |
dha | ow. | 18:16 | |
But thanks for checking. | 18:17 | ||
DrForr | Hence being hospitalized in Granada for ~2 weeks. | ||
You're quite welcome, gotta keep an eye on that bastard. | |||
dha | Oh. I though you did something bad newly. Still sorry to hear about Granada, but glad you have not reinsured. | ||
dammit autocorrect. reinJURED. | |||
DrForr | Oh, that. No, still the original injuries. | 18:18 | |
dha | Yeah, now that Isaac Newton's dead, we all need to pitch in. | ||
18:18
vendethiel joined
|
|||
dha | back to original comment, what delay are you referring to? | 18:18 | |
DrForr | On revamping blogs.perl.org - I saw teh comment on blogger, thought that might be what you're referring to. | 18:19 | |
dha | oh, no. btyler just had a comment on my last post at dhaperl6.blogspot.com and preferred not to sign in to comment on it. | 18:21 | |
no mention of blogs.perl.org. UNTIL NOW. | |||
:-) | 18:22 | ||
Although maybe I should mirror there. | |||
Speaking of full signatures... I'm seeing things like "Str:D" and "Str:D:" What are all those Ds and colons doing? | 18:25 | ||
pink_mist | I think it's something to do with 'defined' | ||
but I'm unsure | |||
dha | ok. Now we're both unsure. ;_) | 18:26 | |
FROGGS | Str:D $foo - specifies a parameter that accepts a Str instance | ||
Str:D: $self - specifies that the method can only be called on a Str instance | |||
dha | and the D means... ? | 18:27 | |
FROGGS | defined | ||
pink_mist | so what precisely is the difference between 'Str $foo' and 'Str:D $foo'? | ||
... =) | |||
18:27
mohij joined
|
|||
FROGGS | Str $foo also accepts an undefined Str, the type object itself | 18:27 | |
dha | Aha. Ok, now I'm convinced we really need usage synopses (or whatever we would call them) as well as full sig synopses. | 18:28 | |
pink_mist | what is the ':D' construct in that called? why ':' and why 'D'? well ok, I guess I understand the D | ||
18:28
patrickz left
|
|||
dha | because anyone coming to p6 for the first time is going to look at that, shake their head, and go away. | 18:29 | |
FROGGS | pink_mist: a :foo is called a colonpair | ||
pink_mist: we often use these to attach information to things | |||
pink_mist | humm, so the :D colonpair is a predefined one I take it? can one create ones own colonpairs? what colonpairs already exist? | 18:31 | |
TimToady | it's obviously a smiley | ||
Juerd | :D is probably the ugliest commonly used thing in Perl 6 | ||
pink_mist | hehe | ||
TimToady | so it only accepts happy values | 18:32 | |
Juerd | TimToady: I can't parse it as a smiley because it has no whitespace in front of it :) | ||
dha | Juerd - I've been around perl long enough that I do not believe that. :-) | ||
18:32
ggoebel left
|
|||
dalek | kudo/nom: 815eb48 | TimToady++ | src/core/ (5 files): remove various GLR transitional XXX comments |
18:32 | |
Juerd | dha: What other Perl 6 is ugly like it, then? :) | 18:33 | |
dha | Oh, I have no idea. I just don't think that's anywhere near ugly enough to be a winner. :-) | ||
moritz finds character clsses in reexes too verbose | |||
Juerd | Most of the language is so beautiful. Unlike Perl 5, with its $foo->$#* :) | ||
moritz | <[a..z]> vs. [a-z] | ||
Juerd | moritz: That was my #1 ugly thing until :D came along, because :D is used much more often | 18:34 | |
PerlJam has never used :D except in setting code. | |||
Juerd | I wonder if :D is the ASCII equivalent of ☺ | ||
(And if ☺ is equally valid.) | 18:35 | ||
I could so have a sub foo (Str☺ $bar) { ... } | |||
FROGGS | no :o) | ||
moritz | sometimes I wonder if the :D could be implicit for all methods that access an attribute | ||
Juerd | I can even think of why it had to be :D instead of :) | ||
moritz: method:D ;) | 18:36 | ||
FROGGS .oO( metho:D ) | |||
Juerd | Haha | ||
What's metho☺, though? :) | 18:37 | ||
pink_mist | what about metho☻ :P | ||
Juerd | pink_mist: Potato, potato :) | 18:38 | |
AlexDaniel | Hm. How can I search for all bug reports that were opened by me? Both open and closed, I want to review a couple of them… | 18:39 | |
dha | Is :D used in the actual language typically? Or just in implementation/definition? | ||
18:39
pnu left,
mr_ron joined
|
|||
mr_ron | m: grammar G { token TOP { ^ \d+ | <no-such-rule> $ } } ; say ~ G.parse('123'); | 18:40 | |
camelia | rakudo-moar cd8ce4: OUTPUT«123» | ||
mr_ron | m: if False { no-such-method() } | ||
camelia | rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/iRWEUglGvgUndeclared routine: no-such-method used at line 1» | ||
Juerd | dha: Scrolling through my Perl 5 code, I think I would use :D a lot in Perl 6. | ||
dha | Oh? How so? | ||
Juerd | I have quite a lot of "defined" checks, including "// die". | ||
And then there's a lot of code that probably should have those checks, but doesn't have them. | 18:41 | ||
AlexDaniel | yes, because :D is not there | ||
18:41
pnu joined
|
|||
AlexDaniel | Juerd: I agree | 18:41 | |
dha | Ah. you'd do that rather than doing something like "is defined"? Of course, I'm not actually using my brain at the moment, so that may be complete garbage. | ||
mr_ron | is the no-such-rule problem a bug? | ||
Juerd | dha: I like how :D is very short. I just don't like the way it looks. I have no suggestion for changing it. | 18:42 | |
dha | *nod* | ||
moritz | no*d* | ||
Juerd | No:D | ||
AlexDaniel | Juerd: yes, I don't like the way it looks too | 18:43 | |
Juerd | Let's have a sigil, say €, for scalars that only hold defined values ;) | ||
18:43
patrickz joined
|
|||
AlexDaniel | $/var… | 18:43 | |
dha | So, with respect to my suggestion earlier of doing docs in the form (full signature synopsis)/(usage synopsis)/(description and examples), here's an example of my off-the-top-of-my-head thoughts. | ||
gist.github.com/dha/ea03e5c840f7131248de | |||
Is that crazy or maybe something we can work with? | |||
AlexDaniel | or would that be /$var… | 18:44 | |
Juerd | AlexDaniel: / is for regexes | ||
AlexDaniel | Juerd: hm wait, // does not work in perl6? | ||
18:44
mohij left
|
|||
Juerd | AlexDaniel: That's //, not / | 18:44 | |
AlexDaniel | m: say undef // 25; | ||
camelia | rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/FuLGFKYhxUUnsupported use of undef as a value; in Perl 6 please use something more specific: an undefined type object such as Any or Int, :!defined as a matcher, Any:U as a type constraint, Nil a…» | ||
Juerd | AlexDaniel: I meant to say $/, not /. | ||
As in, $/ is for regexes. | 18:45 | ||
AlexDaniel | Juerd: yeah okay, I know that it is the worst suggestion ever | ||
moritz | m: say Any // 25 | ||
camelia | rakudo-moar cd8ce4: OUTPUT«25» | ||
PerlJam | AlexDaniel: undef doesn't work in P6 :) | ||
AlexDaniel | PerlJam: yeah, that's interesting | ||
Juerd | AlexDaniel: Nah, the worst suggestion ever was probably .= ;) | ||
AlexDaniel | so if I want to make something undefined, I just = Any; ? | ||
Juerd | But I love how . behaves more like .= now! :) | 18:46 | |
(Syntactically) | |||
dha | Juerd - Not ∆ for defined? :-) | ||
PerlJam | AlexDaniel: or you can make it typed to whatever (possibly more appropriate) value you want. | ||
AlexDaniel | Juerd: wait, .= ? | ||
Juerd | AlexDaniel: @array.=sort | ||
AlexDaniel: $name.=ucfirst | |||
AlexDaniel | ah no, it's great | ||
does it work? :) | |||
Juerd | It's great but the syntax is (or was) very weird. | ||
It's less weird now that . can be infix. | 18:47 | ||
AlexDaniel | m: my $name = 'hello'; $name .= ucfirst; say $name; | ||
camelia | rakudo-moar cd8ce4: OUTPUT«Method 'ucfirst' not found for invocant of class 'Str' in block <unit> at /tmp/MzJZSDmzJU:1» | ||
AlexDaniel | m: my $name = 'hello'; $name .= uc; say $name; | ||
camelia | rakudo-moar cd8ce4: OUTPUT«HELLO» | ||
Juerd | m: @foo = <a z c d y>; @foo.=sort; say @foo.perl | ||
camelia | rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/SAmWfbNPGJVariable '@foo' is not declaredat /tmp/SAmWfbNPGJ:1------> 3<BOL>7⏏5@foo = <a z c d y>; @foo.=sort; say @foo» | ||
Juerd | m: my @foo = <a z c d y>; @foo.=sort; say @foo.perl | ||
camelia | rakudo-moar cd8ce4: OUTPUT«["a", "c", "d", "y", "z"]» | ||
AlexDaniel | Juerd: I'd say that it is pretty consistent | ||
I like how any operator can be used like that | 18:48 | ||
Juerd | It used to be inconsistent until very recently | ||
m: say([] . perl) | |||
camelia | rakudo-moar cd8ce4: OUTPUT«[]» | ||
Juerd | ^^ recently added syntax | ||
You couldn't have whitespace around . before | |||
AlexDaniel | amazing! | ||
m: say 'test' . uc | 18:49 | ||
camelia | rakudo-moar cd8ce4: OUTPUT«TEST» | ||
AlexDaniel | m: say 'test' . 'woah' | ||
camelia | rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ajkeB_78RuUnsupported use of . to concatenate strings; in Perl 6 please use ~at /tmp/ajkeB_78Ru:1------> 3say 'test' . '7⏏5woah'» | ||
pink_mist | . o O ( 42.3 --> 42.=3? 0_o ) | ||
Juerd | pink_mist: That's a different "." | 18:50 | |
pink_mist | :P | ||
AlexDaniel | m: $_ = 'foo'; say 'test' . .uc | ||
camelia | rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ma4zOiyY7NUnsupported use of . to concatenate strings; in Perl 6 please use ~at /tmp/ma4zOiyY7N:1------> 3$_ = 'foo'; say 'test' . .7⏏5uc» | ||
AlexDaniel | okay | ||
ilmari | m: say 'test' .uc .lc | ||
camelia | rakudo-moar cd8ce4: OUTPUT«test» | ||
Juerd | Does Perl 6 have #line? | ||
I find the /tmp/$garbage ugly | |||
m: say 'test' | 18:51 | ||
camelia | rakudo-moar cd8ce4: OUTPUT«test» | ||
AlexDaniel | m: say 'test'.uc | ||
camelia | rakudo-moar cd8ce4: OUTPUT«TEST» | ||
moritz | Juerd: you're welcome to write a camelia patch that creates poetic temp file names :-) | ||
Juerd | moritz: It'd be better to have a non-filename there | 18:52 | |
18:52
patrickz left
18:53
patrickz joined
|
|||
[Coke] | AlexDaniel: you ever get your ticket query? | 18:54 | |
jnthn | .tell nine: A proto should be added with add_method since it's not a multi, but a proto :) | ||
yoleaux | jnthn: What kind of a name is "nine:"?! | ||
PerlJam | heh | ||
AlexDaniel | [Coke]: nope | ||
PerlJam | yoleaux: you really should be smarter about this sort of thing | ||
dha | I think I like this definition/usage/description and example template for the docs. | ||
Now I just have to get everyone to buy in... | 18:55 | ||
ilmari | yoleaux: the one between eight and ten, obviously | ||
[Coke] | AlexDaniel: I go to rt.perl.org -> tickets -> simple search -> requestor email = .... -> add these terms and search. | ||
18:55
rindolf left
|
|||
jnthn | yoleaux: What kind of idiot are you? | 18:55 | |
.tell nine A proto should be added with add_method since it's not a multi, but a proto :) | |||
yoleaux | jnthn: I'll pass your message to nine. | ||
[Coke] | You have a chance to remove the default search criteria, which for me basically "perl6 queue, only open tickets" | ||
jnthn | mr_ron: Your no-such-method() example doesn't call a method, it calls a sub. | 18:56 | |
18:56
ggoebel joined
|
|||
ilmari | m: #line 42 foodie | 18:56 | |
camelia | rakudo-moar 815eb4: OUTPUT«Died in block <unit> at /tmp/JM9OJhoD0n:2» | ||
18:56
patrickz left
|
|||
jnthn | mr_ron: Sub calls are lexical and so can be compile-time checked. Method calls are late bound, as OO should be. And a call to a subrule is just a method call in disguise. | 18:56 | |
m: if 0 { 42.no-such-method } | |||
camelia | ( no output ) | ||
jnthn | m: no-such-sub() | 18:57 | |
camelia | rakudo-moar 815eb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/pMxUnLi3EbUndeclared routine: no-such-sub used at line 1» | ||
mr_ron | m: grammar G { token TOP { ^ \d+ | <no-such-rule> $ } } ; say ~ G.parse('123'); | ||
camelia | rakudo-moar 815eb4: OUTPUT«123» | ||
mr_ron | m: if False { no-such-sub() } | ||
camelia | rakudo-moar 815eb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4X6QzU7GikUndeclared routine: no-such-sub used at line 1» | ||
[Coke] | AlexDaniel: does that help? | ||
AlexDaniel | [Coke]: oh, rocket science! Yeah hold on I'll try | 18:58 | |
mr_ron | jnthn: I'm confused - I don't understand why the method part matters. The bug would be the part about the rule. Thanks for looking on. | ||
jnthn | mr_ron: A rule *is* a method | ||
mr_ron: And a grammar is just a class with a different default base class | |||
[Coke] | in my experience, everyone who logs into RT sees it completely differently, so those options may not be there for you. :) | ||
m: say Grammar.^mro | 18:59 | ||
camelia | rakudo-moar 815eb4: OUTPUT«((Grammar) (Cursor) (Any) (Mu))» | ||
ilmari | grammar G { token TOP { ^ \d+ | <no-such-rule> $ } } ; say ~ G.parse('foo'); | ||
m: grammar G { token TOP { ^ \d+ | <no-such-rule> $ } } ; say ~ G.parse('foo'); | |||
camelia | rakudo-moar 815eb4: OUTPUT«Method 'no-such-rule' not found for invocant of class 'G' in regex TOP at /tmp/ThJ69mee4i:1 in block <unit> at /tmp/ThJ69mee4i:1» | ||
mr_ron | m: if '123' ~~ / \d+ | <nosuchtoken> / { say 'ok'} | 19:00 | |
camelia | rakudo-moar 815eb4: OUTPUT«ok» | ||
mr_ron | is nosuchtoken a method? | ||
jnthn | A method call, but yes | ||
ilmari | m: 'foo' ~~ / \d+ | <nosuchtoken> / | ||
camelia | rakudo-moar 815eb4: OUTPUT«Method 'nosuchtoken' not found for invocant of class 'Cursor' in block <unit> at /tmp/u_0XigXbCP:1» | ||
jnthn | I was about to do that. :) | 19:01 | |
AlexDaniel | [Coke]: I can't get it to work… | ||
ilmari | qr//.^mro | ||
m: qr//.^mro | |||
camelia | rakudo-moar 815eb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jh2DBlidohUnsupported use of qr for regex quoting; in Perl 6 please use rx//at /tmp/jh2DBlidoh:1------> 3qr7⏏5//.^mro» | ||
dalek | ast: 106b31a | usev6++ | S14-roles/ (4 files): Replace some eval-dies-ok in S14-* with throws-like |
||
ilmari | m: rx//.^mro | ||
camelia | rakudo-moar 815eb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/iku1uR9SK3Null regex not allowedat /tmp/iku1uR9SK3:1------> 3rx/7⏏5/.^mro» | ||
ilmari | m: rx/./.^mro | ||
camelia | ( no output ) | ||
FROGGS | m: say rx/./.^mro | ||
ilmari | m: say rx/./.^mro | ||
camelia | rakudo-moar 815eb4: OUTPUT«((Regex) (Method) (Routine) (Block) (Code) (Any) (Mu))» | ||
mr_ron | if it tries to call it the problem is found but it kind of seems to defeat "strict" in a way | ||
ilmari | FROGGS: damnit | ||
AlexDaniel | oooh wait | ||
FROGGS | ;o) | ||
AlexDaniel | I think I got it | ||
[Coke] | \o/ | 19:02 | |
FROGGS | mr_ron: method calls are not resolved at compile time... sub calls are | ||
AlexDaniel | [Coke]: well not really, it seems like it does not list closed ones | ||
FROGGS | m: '123' ~~ / \d+ | <&nosuchtoken> / | 19:03 | |
camelia | rakudo-moar 815eb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/DXCIIZ9RCUUndeclared routine: &nosuchtoken used at line 1» | ||
AlexDaniel | now I have to figure out what I have to type there to get all… | ||
FROGGS | mr_ron: the SORRY tells you it is a compile time error | ||
AlexDaniel | oh, just “any” | ||
19:04
yqt joined
|
|||
AlexDaniel | [Coke]: so the solution is: 1. go here rt.perl.org/Public/Search/Simple.html 2. type your email address and “any”, like: [email@hidden.address] any | 19:04 | |
and that's it | |||
pretty simple | |||
Hm I wish I could bookmark it but I think that it will throw a CSRF error | 19:07 | ||
… it does it all the time… | 19:08 | ||
19:09
ecocode joined
19:12
diana_olhovik joined,
smash_ is now known as smash
|
|||
mr_ron | thanks to everyone for the clarification that rules are like methods ... | 19:12 | |
19:12
grondilu left,
Gardner left
19:13
apejens left,
pink_mist left
19:14
apejens joined,
Gardner joined,
grondilu joined,
pink_mist joined
|
|||
dalek | ecs: 806ebcb | (Prog Rammer)++ | S07-lists.pod: Add another example that seemed to be missing |
19:15 | |
ecs: cc54811 | jnthn++ | S07-lists.pod: Merge pull request #100 from prammer/one-arg-clarify Add another example that seemed to be missing |
|||
AlexDaniel | m: say [.] ('test', &uc); | 19:17 | |
camelia | rakudo-moar 815eb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/YL0bdyLvypUnsupported use of . to concatenate strings; in Perl 6 please use ~at /tmp/YL0bdyLvyp:1------> 3say [.]7⏏5 ('test', &uc);» | ||
nine | jnthn: thanks! Progress :) | 19:18 | |
yoleaux | 18:55Z <jnthn> nine: A proto should be added with add_method since it's not a multi, but a proto :) | ||
mr_ron | From design.perl6.org/S05.html#Regex_Rou..._Anonymous reads: The analogy between sub and regex extends much further. Just as you can have anonymous subs and named subs... ...so too you can have anonymous regexes and named regexes (and tokens, and rules): These keyword-declared regexes are officially of type Method, which is derived from Routine. | ||
nine | I now have an EnumHOW based Boolean class in BOOTSTRAP that ~~ Int | ||
mr_ron | You have to read the fine print. | 19:19 | |
19:20
diana_olhovik___ joined,
diana_olhovik left
19:21
telex left
19:22
telex joined
19:23
tokuhiro_ joined
19:24
domidumont left
|
|||
dalek | kudo/nom: b1f75d0 | tony-o++ | src/core/CompUnitRepo/Local/Installation.pm: fixes for CURLI until Final Solution™ is inflicted upon us |
19:25 | |
kudo/nom: b805f49 | tony-o++ | src/core/CompUnitRepo/Local/Installation.pm: fix spaces |
|||
kudo/nom: ae9afc5 | tony-o++ | src/core/CompUnitRepo/Local/Installation.pm: no candidates doesnt need a check |
|||
kudo/nom: 9e8b7b4 | lizmat++ | src/core/CompUnitRepo/Local/Installation.pm: Merge pull request #541 from tony-o/nom fixes for CURLI until Final Solution™ is inflicted upon us |
|||
ast: 202bbe6 | usev6++ | S (3 files): Replace more eval-dies-ok with throws-like (S15/S29) |
19:27 | ||
19:27
tokuhiro_ left
19:29
yqt left
|
|||
btyler | dha: any thoughts on "Usage" first in the doc template you linked? | 19:30 | |
19:30
apotheon_ joined
|
|||
tony-o | lizmat++ ty for merge | 19:32 | |
19:32
apotheon left,
bakedb left
|
|||
timotimo | o/ | 19:32 | |
19:34
rindolf joined
|
|||
lizmat | tony-o: yw | 19:35 | |
yoleaux | 17:18Z <dha> lizmat: Have blogged, if you're still summarizing. dhaperl6.blogspot.com/2015/09/im-back.html | ||
jnthn | time for rest...couple of flights tomorrow :S & | ||
nine | jnthn: thank you so much for fixing this 16 bit overflow just in time to safe me from hours of frustrating debugging. | ||
jnthn | nine: Welcome ;) | ||
lizmat | jnthn: safe travels! | 19:36 | |
jnthn | lizmat: Thanks :) | ||
19:36
diana_olhovik___ left
|
|||
jnthn is going for a few days teaching, so will be a bit less available than normal this week | 19:37 | ||
No more teaching until Nov after this though :) | |||
anyways, 'night o/ | |||
19:38
dha left
|
|||
nine | Good night! | 19:38 | |
19:39
dha joined
|
|||
lizmat | .tell dha I feel it would get better attention next week, instead of being in the barrage of blog posts of this week | 19:41 | |
yoleaux | lizmat: I'll pass your message to dha. | ||
19:41
darutoko- left
|
|||
dha | lizmat - so noted. | 19:41 | |
yoleaux | 19:41Z <lizmat> dha: I feel it would get better attention next week, instead of being in the barrage of blog posts of this week | ||
dha | But I warn you, I MAY BLOG AGAIN. :-) | 19:42 | |
lizmat | that is fine, I think we can handle that :-) | ||
19:43
tokuhiro_ joined
|
|||
vendethiel | I was told someone got an APL module for Perl6. is that true? | 19:44 | |
it can't quite be just "embedded", as + and / are reused :P | |||
19:45
][Sno][ left
|
|||
dha | I made the mistake of having an idea. :-) | 19:46 | |
19:47
tokuhiro_ left
19:49
apotheon_ left
|
|||
masak | irclog.perlgeek.de/perl6/2015-09-27#i_11280665 # what it's like to be a (good) language designer | 19:50 | |
19:54
apotheon joined
19:55
rurban joined
19:57
rindolf left
|
|||
[Coke] | vendethiel: (APL) not that I'm aware of. There was an APL implementation on parrot years ago, but it's surely bitrotted. | 19:58 | |
vendethiel | [Coke]: thank you! :) | 19:59 | |
[Coke] | vendethiel: exporting to github... | 20:01 | |
github.com/coke/paraplegic/ | 20:05 | ||
20:08
_dolmen_ joined
|
|||
vendethiel | [Coke]: thank you :-) | 20:10 | |
[Coke]: were grammars not implemented then? | 20:12 | ||
the code is pretty short, for the rest | |||
oh, my bad, it just has this .pg extension -- that confused me | |||
20:13
cognominal left
20:14
emilbarton left
20:15
dha left
|
|||
[Coke] | vendethiel: this is ancient ancient code. | 20:21 | |
20:23
_thou joined,
bakedb joined
20:24
ecocode left
20:25
thou left
20:26
kaare_ left
|
|||
AlexDaniel | masak: no!! Here is what it's like to be a good language designer www.artima.com/weblogs/viewpost.jsp?thread=98196 | 20:28 | |
sorry, couldn't resist | |||
masak | :P | ||
kudos for springing Python on me, and not PHP | |||
20:29
jkva joined
|
|||
masak .oO( T_PAAMAYIM_NEKUDOTAYIM ) | 20:30 | ||
AlexDaniel | I thought that everyone already agreed that PHP is the best language out there, so the next is… | ||
dalek | kudo/nom: 3b1aa2e | lizmat++ | src/core/IO/Handle.pm: Introduce IO::Handle.supply Change an open IO::Handle into an on-demand Supply, so you can now also say: "words".IO.open.supply.lines.tap: { .say } . TIMTOWTDI |
||
vendethiel | lizmat++ | ||
masak | supply.lines! :P | 20:31 | |
lizmat | first time I could use the new supply { } syntax :-) | ||
masak: Supply.lines already existed for quite some time | |||
masak | I'm so out of touch :) | ||
masak .oO( <masak> masak: keep up! ) | |||
pink_mist | lizmat++ yay, been hoping that would get done :D | 20:34 | |
lizmat | hmmm... it should probably be called Supply, as it acts as a coercer | 20:37 | |
20:37
larion joined
20:38
jkva left,
xfix left
|
|||
dalek | kudo/nom: e1cedd3 | lizmat++ | src/core/IO/Handle.pm: Rename to Supply so it can be used as a coercer |
20:43 | |
20:46
jkva joined
|
|||
AlexDaniel | m: say Any < 0 | 20:48 | |
camelia | rakudo-moar 9e8b7b: OUTPUT«Use of uninitialized value of type Any in numeric context in block <unit> at /tmp/05RXqR5Kr3:1False» | ||
AlexDaniel | m: say Any > 0 | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«Use of uninitialized value of type Any in numeric context in block <unit> at /tmp/jsQ_57CDSP:1False» | ||
AlexDaniel | m: say Any == 0 | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«Use of uninitialized value of type Any in numeric context in block <unit> at /tmp/aEqrf9qsBo:1True» | ||
AlexDaniel | hm | 20:49 | |
m: say Any eq 'a'; | 20:50 | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«Use of uninitialized value of type Any in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/HjqLdRZ6ep:1False» | ||
AlexDaniel | I don't understand this error message. Is it just me? | ||
timotimo | wow, "words".IO.open.supply.lines.tap: { .say }; that's so concise! :) :) | ||
AlexDaniel: what's the problem in this case? | |||
AlexDaniel | timotimo: How should I interpret this: Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at ./test2.pl:4 | 20:51 | |
lizmat | timotimo: it's only part of my secret plan to implement support for any type of line ending in Supply.lines :-) | ||
timotimo | m: say Any.^name; say Any.perl; say Any.gist; Any.say | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«AnyAny(Any)(Any)» | ||
timotimo | it's unfortunate that it says "Any" in that case | 20:52 | |
lizmat | AlexDaniel: it feels like the second line is caused by the use of Any in the warning | ||
timotimo | because that's also what the value is in this case | ||
ilmari | m: Int > 0 | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«WARNINGS:Useless use of ">" in expression "Int > 0" in sink context (line 1)Invocant requires an instance of type Int, but a type object was passed. Did you forget a .new? in block <unit> at /tmp/z63KHNPY3f:1» | ||
lizmat | AlexDaniel: or maybe not :-( | 20:53 | |
ilmari | a bare type name is an undef value of that type | ||
AlexDaniel | "can stringify undefined things" – what does this even mean. "if needed" for who? Perhaps I'm an imbecile, but I don't understand a word in this message… | ||
pink_mist | AlexDaniel: if the thing it's called on is undefined, it needs to be stringified, and it can be! | 20:54 | |
AlexDaniel | pink_mist: ooooh | 20:55 | |
pink_mist: OK, now I know how to read it! | 20:56 | ||
AlexDaniel scratches his head | 20:57 | ||
nine | m: enum Foo (1, 2, 3); | ||
camelia | ( no output ) | ||
AlexDaniel | well, you know what… I'll submit a bug report since I find it less than awesome. Probably just a little bit of rephrasing will do the trick | 20:58 | |
nine | m: enum Foo (1, 2, 3); my Foo $foo = 2; say $foo; | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«Type check failed in assignment to $foo; expected Foo but got Int in block <unit> at /tmp/neJOu1Y4dD:1» | ||
nine | m: enum Foo (1, 2, 3); my Foo $foo = Foo::2; say $foo; | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/UZGSc8gVMwTwo terms in a rowat /tmp/UZGSc8gVMw:1------> 3enum Foo (1, 2, 3); my Foo $foo = Foo::7⏏052; say $foo; expecting any of: infix infix stopper postfix…» | ||
mst | AlexDaniel: tweaking error messages for clarity is an aggravating but essential contribution | 20:59 | |
AlexDaniel | but the problem I was going to talk about is a little bit different | ||
look, Any == 0 – True, Ane eq '' – True | |||
everything else is false | |||
it feels like it is a leftover after the time when '0' was False | 21:00 | ||
is it true? | |||
pink_mist | m: say 0 == False | 21:01 | |
camelia | rakudo-moar 9e8b7b: OUTPUT«True» | ||
nine | m: enum Boolean <Falser Truer>; say Falser; | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«Falser» | ||
nine | m: enum Boolean <Falser Truer>; say Falser.WHAT; | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«(Boolean)» | ||
nine | m: enum Boolean <Falser Truer>; say Falser.HOW; | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«Perl6::Metamodel::EnumHOW.new» | ||
nine | m: enum Boolean <Falser Truer>; say Falser.^attributes>>.name; | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«($!key $!value $!value)» | ||
nine | Two $!value attributes? | ||
lizmat | nine: that's possible, if they are of different types | 21:02 | |
dalek | ecs: 7934ea4 | PerlJam++ | S11-modules.pod: minor typo fix |
21:03 | |
nine | m: use nqp; enum Boolean <Falser Truer>; say nqp::getattr(Truer, '$!value'); | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«===SORRY!===Unknown QAST node type NQPMu» | ||
lizmat | PerlJam: braking the speed of sound :-) | ||
AlexDaniel | so, in otherwords, should Any == 0 be True? | ||
pink_mist | I thought it was | 21:04 | |
lizmat | well, in P5 tradition, yes | ||
with a warning :-) | |||
masak | m: class C { has $1value }; class D is C { has $!value }; say D.^attributes>>.name | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/P73NGuRCWLCannot declare a numeric variableat /tmp/P73NGuRCWL:1------> 3class C { has $17⏏5value }; class D is C { has $!value }; s» | ||
21:04
cognominal joined
|
|||
lizmat | m: say Str == 0 | 21:04 | |
camelia | rakudo-moar 9e8b7b: OUTPUT«Use of uninitialized value of type Str in numeric context in block <unit> at /tmp/KNDdOQeZwX:1True» | ||
masak | m: class C { has $!value }; class D is C { has $!value }; say D.^attributes>>.name | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«($!value $!value)» | ||
lizmat | m: say Int eq '' | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«Use of uninitialized value of type Int in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/DRo_I3cGcP:1True» | ||
21:05
FROGGS left
|
|||
AlexDaniel | lizmat: why? When '' and 0 both were falsey, it probably made sense. But currently it looks a bit unexpected | 21:05 | |
lizmat | ah, *very* good point! | ||
AlexDaniel | that's what I was trying to say | 21:06 | |
21:06
jkva left
|
|||
lizmat | m: say ?"" | 21:06 | |
camelia | rakudo-moar 9e8b7b: OUTPUT«False» | ||
lizmat | m: say ?0 | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«False» | ||
AlexDaniel | hmmmmmmm? | ||
lizmat | but their still False ? | ||
I think you're mistaken with: | |||
m: say ?"0" | |||
camelia | rakudo-moar 9e8b7b: OUTPUT«True» | ||
lizmat | *that* used to be false | 21:07 | |
AlexDaniel | ahhhhhh | ||
pink_mist | m: Any eq "0" | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«WARNINGS:Useless use of "eq" in expression "Any eq \"0\"" in sink context (line 1)Use of uninitialized value of type Any in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/pdYj…» | ||
pink_mist | m: say Any eq "0" | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«Use of uninitialized value of type Any in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/fp89IfYjfm:1False» | ||
AlexDaniel | lizmat: right! I did! | ||
thanks! | |||
timotimo | hm, if i had asked jnthn how exactly those things were supposed to be done, i would have been interested in hooking up the grammar and syntax for shaped arrays | ||
i wonder if that's difficult? | |||
masak | timotimo: Try It And See? | 21:08 | |
PerlJam | masak: How do you get the fully qualified names for those attributes? | ||
timotimo | mhm | 21:10 | |
ilmari | m: class Foo { has $!vaue } Foo.^attributes[0].^attributes | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/YGPiNcQzJ9Strange text after block (missing semicolon or comma?)at /tmp/YGPiNcQzJ9:1------> 3class Foo { has $!vaue }7⏏5 Foo.^attributes[0].^attributes expecting any of: infix …» | ||
ilmari | m: class Foo { has $!vaue }; Foo.^attributes[0].^attributes | ||
camelia | ( no output ) | ||
ilmari | m: class Foo { has $!vaue }; say Foo.^attributes[0].^attributes | 21:11 | |
camelia | rakudo-moar 9e8b7b: OUTPUT«Method 'gist' not found for invocant of class 'BOOTSTRAPATTR' in block <unit> at /tmp/f37hXgz0xG:1» | ||
PerlJam | oh, nevermind, the package is stored as part of the attribute | ||
21:11
skids left
|
|||
ilmari | m: class Foo { has $!vaue }; say Foo.^attributes[0].^attributes>>.name | 21:11 | |
camelia | rakudo-moar 9e8b7b: OUTPUT«($!name $!rw $!ro $!required $!has_accessor $!type $!container_descriptor $!auto_viv_container $!build_closure $!package $!inlined $!box_target $!positional_delegate $!associative_delegate $!why)» | ||
masak | m: class C { has $!value }; class D is C { has $!value }; for D.^mro -> $class { for $class.^attributes(:local) -> $attr { say "$class.^name() $attr" } } | 21:12 | |
camelia | rakudo-moar 9e8b7b: OUTPUT«D $!valueC $!value» | ||
masak | PerlJam: ^ | ||
21:12
][Sno][ joined
|
|||
nine | m: enum Boolean <Falser Truer>; say Falser.^attributes>>.package; | 21:14 | |
camelia | rakudo-moar 9e8b7b: OUTPUT«((Boolean) (Boolean) (Int))» | ||
PerlJam | still awkward though | ||
lizmat | m: dd (1,2) xx 5 # with the 1 arg rule, I would expect (1,2,1,2,1,2,1,2,1,2) here | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«((1, 2), (1, 2), (1, 2), (1, 2), (1, 2)).Seq» | ||
PerlJam | nine: Are you working on making True ~~ Int and Bool ~~ Int ? | ||
nine | PerlJam: yes | ||
masak | nine++ | ||
lizmat | nine: would you agree with ^^^ | 21:15 | |
mst | awwaiid: did you get anywhere? | ||
PerlJam | nine: I look forward to seeing how you make it so. I thought it would be some lowish hanging fruit but when I looked at it the other night, it didn't turn out well. | ||
nine | PerlJam: yes, it's full of challenges :) | ||
masak | it's not LHF, it's fraught | 21:16 | |
mst | "it's only hanging low until the relevant parts of your anatomy retract in fear" | ||
nine | lizmat: if you see xx as infix:<xx>(\list, \repeat) then it's not a single arg anymore. When in doubt I kept the input structure in place, since it's very easy to explicitly flatten the result and impossible to do the opposite | ||
btyler | mst: RE newline method calls? github.com/rakudo/rakudo/commit/cb...ceec2c74de | 21:17 | |
lizmat | nine: by that argument push( @a, @b ) would also not be single arg | ||
21:18
_dolmen_ left
|
|||
masak | except if you consider @a the invocant of .push, and thus special | 21:18 | |
no such argument can be made for infix:<xx> | |||
mst | btyler: so what means I can do $foo.bar() .baz() now? | ||
btyler | mst: yep | 21:19 | |
mst | *that | ||
masak | m: say dd (1, 2).&infix:<xx>(5) | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«((1, 2), (1, 2), (1, 2), (1, 2), (1, 2))Nil» | ||
masak | :) | ||
mst | btyler: excellent | ||
masak | wow, I have never called an operator as a method before. I'm gonna use this from now on. | ||
dalek | kudo-star-daily: 996608a | coke++ | log/ (9 files): today (automated commit) |
||
21:20
pierrot left
|
|||
btyler | m: gist.github.com/kanatohodets/af74a...34a4bc8ff8 | 21:21 | |
camelia | rakudo-moar 9e8b7b: OUTPUT«bar called 1 timesbar called 2 timesbar called 3 timesbar called 4 times» | ||
btyler | mst ^ | ||
21:21
pmurias joined
|
|||
btyler | (just to make sure we're talking about the same thing) | 21:21 | |
pmurias | AlexDaniel: there is a lot of value in consistency | ||
mst | btyler: yes, that's exactly what I wanted :D | 21:22 | |
AlexDaniel | pmurias: I agree, but what made you say so? | ||
21:22
vendethiel left
|
|||
pmurias | AlexDaniel: you posting a link to Guido arguing that functional programing style things should be removed from python | 21:22 | |
AlexDaniel | pmurias: I mean, which one of my messages are you commenting on? :) | ||
ah | 21:23 | ||
dalek | kudo/nom: f142d7d | ugexe++ | src/core/CompUnitRepo/Local/Installation.pm: Allow CURLI loading of .pm extension modules CURLI currently writes the manifest such that it may use 'pm' *or* 'pm6' as the key |
21:24 | |
kudo/nom: a41b719 | lizmat++ | src/core/CompUnitRepo/Local/Installation.pm: Merge pull request #542 from ugexe/patch-1 Allow CURLI loading of .pm extension modules |
|||
AlexDaniel | pmurias: well, as far as I can see it's not that much about consistency rather than just “I don't like functional programming”. And that's OK, but everyone is different… | 21:25 | |
PerlJam | AlexDaniel: oddly, you are not the first to make that observation about Guido | 21:26 | |
pmurias | removing functional programming style things from python makes things more consistent | ||
and the python language makes them ugyly | 21:27 | ||
* ugly | |||
dalek | ast: 1753a2b | usev6++ | S04-statements/ (2 files): Replace more eval-dies-ok with throws-like (S04) |
||
AlexDaniel | pmurias: correct, but at the same time it doesn't really mean that such consistency (which is basically about removing features) will make the language better. Which is why the left the things intact, I guess. | 21:30 | |
or maybe it was just because a lot of people were crying about it too much, I don't know | |||
pmurias | AlexDaniel: IMHO there are two different ways of designing things | ||
[Coke] | m: say so any Any or all on & | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«False» | ||
AlexDaniel | [Coke]: what?! | 21:31 | |
[Coke] whistles innocently. | |||
masak | m: say so not Cool or .WHAT | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«True» | ||
pmurias | AlexDaniel: piling good things on top of each other or carefully choose a small elegant mix of things | ||
AlexDaniel: both of those ways work | 21:32 | ||
AlexDaniel: at least for programming languages and board games ;) | |||
AlexDaniel | pmurias: I don't see which way includes timtowtdi | 21:33 | |
masak | pmurias: reminds me of zoo.cs.yale.edu/classes/cs422/2014/...mperor.pdf | ||
pmurias | timtowdi is just piling good things without much concern for consistency | ||
PerlJam | Coke: we haven't had any obfuscation contests yet and you're already trying to win! | ||
AlexDaniel | PerlJam: oh! Wait a minute… | ||
“<PerlJam> AlexDaniel: You clearly win the Perl6 obfuscation contest ;)” | 21:34 | ||
PerlJam | Well, it's you an Coke in the lead then :) | 21:35 | |
s/an/and/ | |||
AlexDaniel | for those who don't remember, the code was | ||
m: say [::]/\/\/\/\/\/\[:/ | |||
camelia | rakudo-moar 9e8b7b: OUTPUT«12» | ||
pink_mist | oh god | ||
lizmat | m: say so not Cool without Exception | 21:36 | |
camelia | rakudo-moar 9e8b7b: OUTPUT«True» | ||
AlexDaniel | sometimes the output is different but I don't remember why | ||
21:36
adhoc left
|
|||
pmurias | AlexDaniel: Perl 6 is just an attempt to refine the pilling of goods features philosophy of Perl 5 by perfecting every thing on the pile and making them all consistent | 21:36 | |
AlexDaniel | pmurias: but there are so many new features! | 21:37 | |
21:39
][Sno][ is now known as [Sno]
|
|||
AlexDaniel | what is “on”? | 21:41 | |
m: on | |||
camelia | rakudo-moar 9e8b7b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_R2pMKtpxJCalling on() will never work with declared signature (&setup)at /tmp/_R2pMKtpxJ:1------> 3<BOL>7⏏5on» | ||
lizmat | .tell FROGGS added tie-breaking logic to gist.github.com/lizmat/f3807956c35.../revisions | ||
yoleaux | lizmat: I'll pass your message to FROGGS. | ||
masak | m: use Test; sub we($) {}; is so not Cool, so say we(all()) | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«all()ok 1 - » | ||
masak | m: use Test; sub we($) {}; is so not Cool, so say we all() | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«all()ok 1 - » | ||
pmurias | AlexDaniel: a bigger pile of good stuff is better | ||
lizmat | .tell FROGGS is that something you can agree to? | ||
yoleaux | lizmat: I'll pass your message to FROGGS. | ||
pink_mist | pmurias: and then you get PHP :P | 21:42 | |
21:42
yqt joined
|
|||
pmurias | pink_mist: PHP is just piling crap | 21:42 | |
ilmari | pink_mist: no, that's if you forget the "good" part | ||
lizmat | AlexDaniel: it appears "on" is not documented on doc.perl6.org | 21:44 | |
masak | 'night, #perl6 | ||
AlexDaniel | lizmat: well, that's why I asked | ||
21:44
tokuhiro_ joined
|
|||
hoelzro | o/ masak | 21:45 | |
PerlJam | There is no "on" | ||
lizmat | github.com/perl6/specs/blob/master...rrency.pod # some text about on near the end | 21:46 | |
PerlJam: oh, but there is | |||
just not documented | |||
afaics | |||
dalek | kudo/nom: 59b5a4b | TimToady++ | src/core/Range.pm: allow shifting and scaling of Range values Since it's actually kind of difficult to do correctly otherwise and maintain endpoint exclusions, we now allow basic arithmetic operations on a Range to clone the Range and modify the endpoints in order to shift an interval arithmetically or expand/contract it geometrically. |
21:48 | |
21:49
tokuhiro_ left
|
|||
dalek | ast: 139c10c | TimToady++ | S02-types/range.t: test new arithmetic ops on intervals |
21:49 | |
c: 1f5443d | (Ronald Schmidt)++ | lib/Language/traps.pod: change typo mofify to modify |
21:52 | ||
ilmari | m: say (0.5..5.0).list | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«(0.5 1.5 2.5 3.5 4.5)» | ||
TimToady | this doesn't prevent people from asking for nonsense, of course :) | 21:54 | |
ilmari was thinking scaling a range would scale the interval too | 21:55 | ||
TimToady | nope, that way lies madness | ||
dalek | c: 5068ab3 | lizmat++ | WANTED: Add "on" to the WANTED list |
21:56 | |
lizmat | $ 6 'dd ^10 + 5' | ||
5..^15 | |||
cool :-) | |||
ilmari | m: say (1..10) «/» 2 | 21:57 | |
camelia | rakudo-moar 9e8b7b: OUTPUT«(0.5 1 1.5 2 2.5 3 3.5 4 4.5 5)» | ||
ilmari | how long does it take from a commit to land until camelia runs it? | ||
TimToady | depends on where in the hour it is, but I expect this one in about half an hour | 21:58 | |
maybe 15 minutes | |||
er, 25, I mean | |||
21:58
pierrot joined
|
|||
TimToady | starts recompile at 7 after the hour, and usually takes til about 20 after or so | 21:59 | |
(last I knew) | |||
timotimo | huh, so if it's a range it won't turn into a number any more when used with arithmetic operations? | 22:00 | |
lizmat | timotimo: wrt to the .min / .max optimisation: are there a large number of numbers involved? | 22:01 | |
timotimo: maybe an approach that wouldn't reify all the values in one go would be better ? | 22:02 | ||
TimToady | timotimo: it still numifies the same | ||
timotimo | 9 values in my case | ||
TimToady: yeah, but not with infix + and - apparently | |||
TimToady | the situation never arose in the test suite, as a data point | ||
timotimo | OK | 22:03 | |
22:03
spider-mario left
22:04
lizmat_ joined
|
|||
lizmat_ | m: dd +^10 | 22:04 | |
camelia | rakudo-moar 9e8b7b: OUTPUT«-11» | ||
timotimo | haha | ||
that's a different operator :) | |||
lizmat_ | yeah :-) | 22:05 | |
dalek | kudo/nom: e503dfc | lizmat++ | src/core/Range.pm: Use the features of .clone |
||
22:05
kid51 joined
|
|||
TimToady | one of those things you might write in a repl but almost never in real code | 22:05 | |
22:06
lizmat left
|
|||
timotimo | a big performance penalty in my code arises from the way i grab neighbouring fields in my 2d array | 22:06 | |
22:06
lizmat_ is now known as lizmat
|
|||
timotimo | i just index into values located "outside" the array and catch that with // Inf | 22:07 | |
because .min will make the Inf "disappear" | |||
lizmat | timotimo: do you use a slice? | ||
timotimo | i do not | ||
lizmat | AT-POS instead of [] ? | ||
timotimo | no | ||
lizmat | you could try that | ||
timotimo | i write it like that because it looks a bit less bleh :) | ||
the problem really is that it throws the exception and i resolve it with // | |||
at least it causes deoptimizations | 22:08 | ||
lizmat | timotimo: in the past (long, long ago, when writing a dungeon game) I resolved this by actually having out of bounds elements with a value | 22:11 | |
that would indicate border in a dispatch table | |||
timotimo | yes, that's a very common way to do this kind of thing | ||
add 2 to each dimension and index with 1 | |||
er, i mean: starting with 1 | |||
lizmat | yup, something like that | ||
timotimo | the worst thing for this program is that it leaks something that is tracked by the garbage collector and ends up with a gen2 root put in place for it | 22:12 | |
the garbage collection time rises steadily | |||
i've had it reach 100ms after perhaps a minute of execution | |||
hm. i'm actually quite curious to see how the performance changes when i remove all SDL2 stuff from that | 22:13 | ||
lizmat | gnight, #perl6! | ||
TimToady | o/ | 22:14 | |
timotimo | gnite lizmat | 22:15 | |
can i just say | 22:16 | ||
i'm *so* glad the whole reify crap is gone | |||
22:17
cognominal left
|
|||
TimToady | no, you can't just say that | 22:19 | |
timotimo | #perl6 is a free country | ||
you can't tell me what i can or can't tell you! | |||
TimToady | you can't *just* say that, obviously | ||
timotimo | pff, are you making fun of my ability to say more than just one thing? | 22:20 | |
TimToady | ayup | ||
timotimo | nobody says what i say has to be right, or not funny | ||
TimToady | we don't have anyone named nobody around here | 22:21 | |
gfldex | ohai! | ||
timotimo | nobody's named that | ||
gfldex | 00:21 [freenode] -!- Nick nobody is already in use | ||
o.0 | |||
pink_mist | what about anybody? | ||
somebody? | |||
everybody! | 22:22 | ||
22:26
pmurias left
22:27
skids joined
|
|||
TimToady | m: say (1..10) * 10 | 22:31 | |
camelia | rakudo-moar 9e8b7b: OUTPUT«100» | ||
TimToady | slow recompile... | ||
22:34
RabidGravy left
|
|||
AlexDaniel | m: say (3..15) * 2 | 22:37 | |
camelia | rakudo-moar 9e8b7b: OUTPUT«26» | ||
22:40
z8 left
22:41
z8 joined
22:43
pink_mist left,
pink_mist joined
|
|||
TimToady | camelia not recompiling for some reason | 22:44 | |
dalek | ast: be4fc4f | TimToady++ | S03-operators/precedence.t: tests to make sure . has proper precedence |
22:46 | |
22:46
rurban left
|
|||
flussence | happy (belated) birthday, TimToady! (I've just caught up on 2 days of backlog, finally understand what the "one-arg rule" is now...) | 22:47 | |
dalek | kudo/nom: 140f3c9 | TimToady++ | src/Perl6/Grammar.nqp: don't really need the fake precedence level since left-to-right associativity makes . happen after prefix anyway, and now we have the tests to prove it. |
||
22:49
leont joined
|
|||
gfldex | m: my @a = (1..2,4..5).flat.map({$_, ''}); @a.perl.say; my %s = @a; %s.perl.say; | 22:52 | |
camelia | rakudo-moar 9e8b7b: OUTPUT«[(1, ""), (2, ""), (4, ""), (5, "")]{"1 " => $(2, ""), "4 " => $(5, "")}» | ||
gfldex | m: my @a = (1..2,4..5).flat.map({slip $_, ''}); @a.perl.say; my %s = @a; %s.perl.say; | 22:53 | |
camelia | rakudo-moar 9e8b7b: OUTPUT«[1, "", 2, "", 4, "", 5, ""]{"1" => "", "2" => "", "4" => "", "5" => ""}» | ||
ShimmerFairy | TimToady: ah, so nqp does the wrong thing, then? (Also, there's no tcuc, but I don't think a cadr/cdar/etc. style collection of casing methods would be a bad thing) | 23:00 | |
yoleaux | 15:56Z <TimToady> ShimmerFairy: no, tc is by definition only for initial caps; use tcuc if you want to uppercase everything | ||
ShimmerFairy | Also, was that "faking precedence" issue related to rakudo having a fake 'unary' associativity? | 23:02 | |
23:04
pierrot left
23:05
Ulti_ is now known as Ulti
23:11
bjz_ left
|
|||
mr_ron | m: my @a = (1..2,4..5).flat.flatmap({$_, ''}); @a.perl.say; my %s = @a; %s.perl.say; | 23:17 | |
camelia | rakudo-moar 9e8b7b: OUTPUT«[1, "", 2, "", 4, "", 5, ""]{"1" => "", "2" => "", "4" => "", "5" => ""}» | ||
timotimo | m: my @field = [(^2).roll(5 + 2)] xx (5 + 2); @field[*;0] = Inf; say @field; | 23:19 | |
camelia | rakudo-moar 9e8b7b: OUTPUT«[[Inf 0 0 1 0 0 1] [(Any) 1 1 1 1 0 0] [(Any) 1 0 1 1 1 1] [(Any) 0 0 1 0 1 1] [(Any) 0 1 0 0 1 0] [(Any) 0 0 1 0 1 1] [(Any) 1 1 1 0 1 0]]» | ||
timotimo | m: my @field = [(^2).roll(5 + 2)] xx (5 + 2); @field[*;0] = Inf xx *; say @field; | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«[[Inf 0 0 1 0 1 0] [Inf 1 1 0 0 0 0] [Inf 0 0 1 0 0 1] [Inf 0 0 1 0 1 0] [Inf 1 1 0 1 1 1] [Inf 0 1 1 0 1 1] [Inf 1 0 1 0 0 0]]» | ||
timotimo | m: my @field = [(^2).roll(5 + 2)] xx (5 + 2); @field[*;*-1] = Inf xx *; say @field; | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«[[0 0 0 1 1 0 Inf] [1 1 0 0 1 1 Inf] [1 0 1 0 1 1 Inf] [0 0 0 1 0 0 Inf] [0 0 0 1 1 1 Inf] [0 0 0 0 0 0 Inf] [1 0 1 1 0 0 Inf]]» | ||
timotimo | huh? why do i get "cannot modify an immutable num" locally ... | ||
oh | |||
m: my @field = [(^2).roll(5 + 2)] xx (5 + 2); @field[0] = Inf xx (5 + 2); @field[*;*-1] = Inf xx *; say @field; | 23:20 | ||
camelia | rakudo-moar 9e8b7b: OUTPUT«Cannot modify an immutable Num in block <unit> at /tmp/mDtfFM705a:1» | ||
timotimo | i don't understand why this happens; is my code wrong? | ||
m: my @field = [(^2).roll(5 + 2)] xx (5 + 2); @field[0] = Inf xx (5 + 2); say @field; | |||
camelia | rakudo-moar 9e8b7b: OUTPUT«[(Inf Inf Inf Inf Inf Inf Inf) [0 1 1 1 0 0 1] [0 1 1 1 0 1 1] [1 1 1 1 1 1 1] [1 0 0 1 0 0 1] [1 1 0 1 1 1 0] [0 1 1 0 0 0 1]]» | ||
timotimo | ah, i see | ||
AlexDaniel | say (3..15) * 2 | 23:24 | |
m: say (3..15) * 2 | |||
camelia | rakudo-moar 9e8b7b: OUTPUT«26» | ||
timotimo | i'm a tiny bit surprised the script still seems to cause lots of deopt in postcircumfix:<[ ]> | 23:34 | |
23:36
bjz joined
23:37
pierrot joined
23:43
pierrot left
23:44
pierrot joined
23:46
tokuhiro_ joined
23:48
bjz left
23:51
tokuhiro_ left
23:52
pierrot_ joined
23:53
pierrot left
|