»ö« 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:03 yqt left
leont japhb: cute, but not very intuitive 00:07
00:17 tokuhiro_ joined 00:18 leont left
TimToady m: say (Nil) => Nil 00:18
camelia rakudo-moar 4653d9: OUTPUT«(Any) => Nil␤»
TimToady hmm
timotimo do we know what's wrong with CURL::I? 00:20
CUR::L::I?
CURLI?
00:22 laouji joined
adu <3 cURL 00:23
ShimmerFairy timotimo: we seem to have agreed on tossing the namespace 'sigils' (?) in the abbreviation of CURL, CURLF, and CURLI :) 00:24
pink_mist do those names actually have to do with curl(1)? 00:28
(had it only been CURL, I would have assumed so, but with CURLF and CURLI thrown into the mix I'm less sure) 00:30
timotimo separators, eh? 00:31
Comp Unit Repository:: Local:: Installation
in this case
ShimmerFairy pink_mist: well, if your module installer uses curl to download the modules it installs... :P 00:33
pink_mist hehe :P
00:37 larion left
timotimo it could 00:37
that'd also allow us to distribute our modules via gopher
00:38 larion joined 00:39 laouji left 00:40 laouji joined
ShimmerFairy timotimo: I'm personally excited to see if gentoo's portage/emerge could do P6 module installation 'natively', as opposed to going through other installers like they do for other languages :3 00:40
00:42 laouji left 00:43 laouji joined 00:46 xinming left 00:57 kid51 left
timotimo is paludis still a thing, btw? 00:59
dalek ast: 71be130 | TimToady++ | S02-types/pair.t:
make sure pairs can take Nil and such as key
01:03
ast: f31fbab | TimToady++ | S32-exceptions/misc.t:
make sure return errors report Nil and Junction ok
kudo/nom: 77d6f04 | TimToady++ | src/core/Range.pm:
exception wants a type, not a string
kudo/nom: b02c4e1 | TimToady++ | src/core/traits.pm:
allow 'is default' on attributes

It simply sets the default slot in the container_descriptor that the attribute already has one of. And seems to work right.
kudo/nom: 8c9be89 | TimToady++ | src/core/Exception.pm:
use defaults on attrs to allow Mu/Nil type reports
kudo/nom: 8edd1cd | TimToady++ | src/core/Pair.pm:
Pair should allow Nil keys and values
kudo/nom: 1b73d7a | TimToady++ | src/core/Pair.pm:
forgot => and pair() also need the Mu treatment
kudo/nom: 9e2dd67 | TimToady++ | lib/Test.pm:
allow checking 'got' against Nil
ShimmerFairy timotimo: don't know what that is
TimToady .tell lizmat turns out adding 'is default' to an attribute's container descriptor was a 3-line patch :) 01:05
yoleaux TimToady: I'll pass your message to lizmat.
ShimmerFairy timotimo: looking now, and it seems interesting so far. Haven't had a problem with portage myself, but then again I don't really mess with any of the code or ebuilds :) 01:07
01:09 rurban left 01:18 abaugher left 01:19 abaugher joined
TimToady m: say (Nil) => Nil 01:25
camelia rakudo-moar 9e2dd6: OUTPUT«Nil => Nil␤»
TimToady m: sub foo(--> Nil) { 42 }; foo 01:27
camelia rakudo-moar 9e2dd6: OUTPUT«Type check failed for return value; expected 'Nil' but got 'Int'␤ in sub foo at /tmp/NVYwJX_SCx:1␤ in block <unit> at /tmp/NVYwJX_SCx:1␤␤»
TimToady \o/
dinner &
01:35 helloworldlang joined
helloworldlang what is the the surrounding list? 01:37
01:37 thou joined 01:41 thou left, mattprelude left 01:42 timbunce_ left 01:43 aborazmeh joined, aborazmeh left, aborazmeh joined 01:46 timbunce_ joined, lolisa joined 01:47 dnmfarrell joined 01:51 adu left
geekosaur errr. context? 01:53
01:56 Peter_R left 02:05 chenryn joined
helloworldlang what is the the surrounding list? 02:08
02:14 zakharyas joined
Zoffix helloworldlang, you'd get a more helpful response if you explained the context. Where are you seeing that term? 02:17
02:17 MadcapJake joined 02:23 samb1 left
helloworldlang Flattening is the idea that an @-like thing will, in certain contexts, have its values automatically incorporated into the surrounding list. 02:24
in page design.perl6.org/S07.html 02:25
Zoffix helloworldlang, I don't know Perl 6, but in other languages that would mean that, say, [ 'foo', [1, 2, 3], 'bar'], when flattened, would become ['foo', 1, 2, 3, 'bar'] 02:26
so 'list' [1, 2, 3], when flattened is incorporated into the "parent" 'list', [ 'foo', $this, 'bar'] 02:27
geekosaur yes 02:28
perl 5 has this thing where if you have a list inside another list, it "gets absorbed" into the outer list
implicit flattening
02:29 lolisa left
geekosaur but perl 5's notion of what a "list" is for that purpose, many people find confusing. perl 6 is trying to be more clear about such things (and a great many other fun perl5-isms that often trap the unwary...) 02:29
02:33 lolisa joined
dalek kudo-star-daily: d302375 | coke++ | log/ (9 files):
today (automated commit)
02:34
02:35 samb1 joined
BenGoldberg m: gist.github.com/BenGoldberg1/bc39a...aeb733012a 02:38
camelia rakudo-moar 9e2dd6: OUTPUT«Cannot send a message on a closed channel␤ in block <unit> at /tmp/8zxPwX29g7:33␤␤»
02:38 [particle] joined
BenGoldberg is confused. 02:40
02:40 lolisa left
BenGoldberg If I never call .close on a Channel object until after I'm done sending into it, then the above error shouldn't be able to occur, yes? 02:41
02:41 noganex joined
Zoffix Can someone that knows Perl 6 see if this entry is wrong: en.wikipedia.org/wiki/Fluent_interface#Perl_6 Shouldn't the last line of code be say $employee.gist; ? 02:42
geekosaur "say" does .gist 02:43
Zoffix Weird. :)
Zoffix should find time to learn Perl 6 02:44
geekosaur if you want the whole thing, use print instead of say
(or some other output)
02:44 noganex_ left 02:46 mr_ron joined 02:47 rurban joined, larion left
mr_ron Why can't the rakudo star daily find URI::Escape? 02:47
Zoffix is not seeing URI::Escape neither in modules.perl6.org nor in Task::Star 02:49
Looking at some other channels, it seems Perl 6 is getting some negative rep because you can't put method calls on new lines, like say, here (look at last lines): en.wikipedia.org/wiki/Fluent_interface#Ruby 02:50
The given {} bit feels to verbose here: en.wikipedia.org/wiki/Fluent_interface#Perl_6
geekosaur you can but you need to use an unspace. which I agree is a bit unfortunate
dnmfarrell URI::Encode 02:51
02:51 kaare__ joined
mr_ron It's part of URI. If you install URI you get URI::Escape with it ... 02:51
Zoffix geekosaur, would you be able to provide an example? I'm not getting any matches for unspace on doc.perl6.org/
geekosaur ? 02:52
Zoffix how would I use unspace. ?
geekosaur I just entered "unspace" in the search box and the first hit talks about it
Zoffix 0.o
geekosaur oh
design.perl6.org/
Zoffix Oh, I was using the wrong website, sorry. 02:53
geekosaur if you are somewhere else then the docs you are seeing may be out of date (or not indexed properly)
Zoffix was looking at doc.perl6.org/
geekosaur anyway the idea of unspace is that a backslash followed by any (nonempty) amount of any kind of whitespace is "invisible" 02:54
yeh. I reclal that being way out of date and unmaintained. and down for a while I think
design.perl6.org/S02.html#Unspaces
anyway, it works but I find the backslashes (a) cluttery (b) too reminiscent of the more annoying aspects of shell scripting 02:55
dnmfarrell mr_ron: you've installed URI, but cannot use URI::Escape, is that the issue?
geekosaur maybe the question is "CPAN can find the package for a module by module name, shouldn't we as well"? 02:56
mr_ron No, I just noticed that "rakudo-star-daily" autocommit had lots of errors about no seeing URI::Escape irclog.perlgeek.de/perl6/2015-09-25#i_11272436 02:57
geekosaur right, I feel like modules.perl6.prg is indexing packages, not modules
*.org
Zoffix Is it difficult to make Perl 6 accept method calls on new lines without unspaces? 02:59
Looking at other languages on en.wikipedia.org/wiki/Fluent_interface, I get a feel that Perl 6 should not be listed there at all. 03:01
ShimmerFairy Zoffix: it would count as TTIAR, since .method means $_.method, thus $foo .bar really means $foo $_.bar 03:02
Zoffix: and before you ask, it's too late to make .method not mean that anymore :P
Zoffix ShimmerFairy, what's "TTIAR"? 03:03
ShimmerFairy Two Terms In A Row
Zoffix Ah
ShimmerFairy m: say 42 42
camelia rakudo-moar 9e2dd6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5Xou6G3CeR␤Two terms in a row␤at /tmp/5Xou6G3CeR:1␤------> 3say 427⏏5 42␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statement…»
03:03 BenGoldberg left
Zoffix It's never too late! :) 03:04
By why does it mean that? I don't know Perl 6, so I'm speaking from ignorance, but isn't $foo \n .bar; unambiuous, since $foo \n $_.bar is an error anyway, since there's no semicolon? 03:05
ShimmerFairy trust me, there are cases where I personally think an implied $_ is not that useful (m// being the main thing for me, since I _always_ do $thing ~~ m//), but there's no hope of making people use $_ in their code more :)
Zoffix: If I'm correct (I don't know the correct reason for sure off-hand), it's because method calls are a postfix operation, and you generally can't put space between a term and a postfix 03:07
m: my $a = 41; $a ++; say $a
camelia rakudo-moar 9e2dd6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gUilA_Iyko␤Prefix + requires an argument, but no valid term found␤at /tmp/gUilA_Iyko:1␤------> 3my $a = 41; $a ++7⏏5; say $a␤ expecting any of:␤ prefix␤»
ShimmerFairy ^ an example of this
Zoffix Ah
03:10 chencho joined 03:12 mr_ron left 03:22 chencho left 03:26 makapa joined
geekosaur perl 6 has a number of places where whitespace is significant 03:30
I think in the end it's probably better than what perl 5 does with print ($x + 2) * 3;... 03:31
03:32 uvtc joined
uvtc Is there a video available to go with jnthn's recent "Perl 6 hands-on tutorial" slides? 03:33
(Swiss Perl Workshop 2015)
helloworldlang p6: my @a = 1,2,3; my @b; @b.push: @a,; 03:35
camelia ( no output )
helloworldlang p6: my @a = 1,2,3; my @b; @b.push: @a,; say @b;
camelia rakudo-moar 9e2dd6: OUTPUT«[1 2 3]␤»
helloworldlang p6: my @a = 1,2,3; my @b; @b.push: (@a,); say @b; 03:36
camelia rakudo-moar 9e2dd6: OUTPUT«[[1 2 3]]␤»
helloworldlang p6: my @a = 1,2,3; my @b; @b.push: @a,; say @b;
camelia rakudo-moar 9e2dd6: OUTPUT«[1 2 3]␤»
03:41 MadcapJake left, rurban left
[Coke] there was only one video made at the SPW - the Q&A with larry - www.youtube.com/watch?v=zmNInkzaYLc 03:41
uvtc [Coke]: Yup, saw that one. With you hosting! 03:42
Thanks.
[Coke] </plug> 03:45
uvtc :) Also nice --- when no video is available --- is when there's an approx textual transcription under each slide. 03:46
03:47 helloworldlang is now known as newname, newname is now known as name, name is now known as electricface 03:49 dnmfarrell left 03:54 chenryn left 04:07 vendethiel joined 04:08 laouji left 04:15 ShimmerFairy left 04:22 electricface left, electricface joined, chenryn joined 04:24 laouji joined 04:26 rmgk left, rmgk_ joined, rmgk_ is now known as rmgk 04:27 ShimmerFairy joined 04:30 vendethiel left 04:32 uvtc left 04:44 skids left 04:47 kanishka joined 04:53 chenryn left 04:57 chenryn joined 04:59 khw left 05:03 dnmfarrell joined, makapa left 05:05 kanishka left 05:08 adu joined 05:13 telex left 05:14 telex joined
ShimmerFairy t/spec/S32-io/IO-Socket-Async.t hangs for me :( 05:40
chenryn p6: say -3%2; 05:43
yoleaux 22 Nov 2014 04:30Z <JimmyZ> chenryn: 那个是匿名变量
camelia rakudo-moar 9e2dd6: OUTPUT«1␤»
05:54 adu left
dalek kudo/nom: f347690 | ShimmerFairy++ | t/harness:
Have harness run with 'trap' enabled

This lets you still get a test summary if you send a SIGINT, which means you can quit out of the spectest if one of them is hanging by typing ^C, and still get a summary of whatever was run. Inspired by the fact that I would've appreciated this when I ran the spectest just now :) .
06:04
kudo/nom: c84ff30 | ShimmerFairy++ | t/harness:
Remove leftover parrot cruft from t/harness

This includes the icu option (since, as I recall, that was a Parrot thing, and there are no # icu lines in spectest.data anymore anyway), as well as the parrot-revision option and attempts to use perl6-p or fudge on rakudo.parrot.
The ternaries that were modified simply default to moar now. I figured that would be the safest option, though I could also see some sort of exception being thrown in those spots instead, or something along those lines.
06:05 dnmfarrell left
tony-o CURLI!!!! 06:06
06:10 diana_olhovik joined 06:11 espadrine joined 06:18 domidumont joined 06:26 FROGGS joined, Ven joined 06:28 xfix joined, electricface left, araujo_ joined 06:29 aiacob joined 06:32 araujo left 06:33 araujo_ left
[Tux] test 50000 34.938 34.837 06:42
test-t 50000 35.454 35.353
06:57 nwc10 joined
nwc10 hi. 06:57
commit f3476903e466c047d95d888639c0f7750e3c6fd8
Have harness run with 'trap' enabled
Breaks on older versions of Test::Harness.
that's somewhat LTA
Unknown arguments to TAP::Harness::new (trap) at t/harness line 120 06:58
offhand I don't know what the minimum version needed is
I suspect that the Awesome fix is to optionally add that argument if $TAP::Harness::VERSION is new enough
ShimmerFairy perldoc.perl.org/5.20.1/TAP/Harness.html mentions nothing about what version 'trap' is for, and since it does mention a couple "NEW in" lines, presumably it's been around for a while. 07:00
How old is your TAP::Harness?
rather, Test::Harness 07:02
07:02 xinming joined
nwc10 3.17 07:03
metacpan.org/changes/distribution/Test-Harness 07:04
3.22 2010-08-14
- Add --trap (summary on Ctrl-C) option to prove (#59427).
FROGGS nwc10++ 07:05
ShimmerFairy woah, that's from five years ago O_o
07:05 RabidGravy joined
nwc10 sometimes I think "woah, it's still using Perl 5" :-/ 07:06
after all, Perl 5 isn't using Perl 4 to run its tests :-)
ShimmerFairy nwc10: true, I frequently wonder when we can replace P5 stuff in rakudo with P6 :P (though IIRC P5 doesn't do its config in P5...) 07:08
nwc10: honestly, I'm used to implicit *%_ enough that I'm surprised it balked at the strange named :P 07:10
masak nwc10: optionally adding the argument based on version sounds sane. 07:16
ShimmerFairy I agree, even though I'm very tempted to say "this was added five years ago, why are you so outdated?" :P (Then again, I guess I just don't understand how P5 upgrading works, or something.) 07:17
masak people are running old versions of a lot of things. 07:18
frequent/timely updates sometimes seem to be the exception, not the rule
ShimmerFairy masak: I guess it's just weird to me since I keep a bleeding-edge copy of rakudo (and LLVM whenever I remember it), and I'm toying with the idea of finally installing a C++14 capable version of gcc, despite gentoo still marking them unstable :) 07:20
[Tux] tux.nl/Talks/CSV6/test-t.jpg (all reports taking longer than 75 seconds stripped) 07:21
masak ShimmerFairy: en.wikipedia.org/wiki/Diffusion_of_innovations 07:22
ShimmerFairy masak: I think another reason is that 5 years ago in Perl 6, we still had only parrot (and IIRC rakudo was itself fairly new), so I can't help but automatically think that a version of Perl from a few years back shouldn't be very maintainable anymore :P 07:25
masak heh. 07:26
I'm sure at least some would agree with you.
ShimmerFairy Though on the other side I'm sure it's a testament to P5 that you can get away with lagging behind for half a decade :D 07:27
07:29 abraxxa joined
masak the sad thing about "DarkPAN" users of Perl is that they often don't upgrade, and don't immediately see why they should. thus increasing the distance and isolation with connected community people. 07:30
s/with/from/
ShimmerFairy
.oO(Spell it like DARKPAN, it reads like some sort of edgy cyber-enemy from an 80's/90's movie)
07:33
nwc10 I wonder how the average age of Perl installs compares with that of Python installs 07:34
07:35 Ven left
masak fwiw, I saw Python people being stuck with Python 2.6 sometimes. 07:36
I think that was due to some default Linux distro install, maybe.
07:36 Ven joined
ShimmerFairy Reading www.modernperlbooks.com/mt/2009/02/...oblem.html , I kinda hope we don't end up being quite so careful in the future of Perl 6. I like the idea that big and necessary changes can happen :) 07:37
07:37 abaugher left 07:38 abaugher joined
masak I think we'll have a Scylla/Charybdis like situation there, where the "spirit" of the Perl 6 codebase/community is to change things as needed. but we also want to gel more and more as we get more customers and more people depending on stability. 07:41
dalek p: a54d49e | ShimmerFairy++ | src/HLL/sprintf.nqp:
Remove useless conditional in sprintf

Unless I've severely forgotten my math, a < b && a > b is never True. This ternary inside an if statement was effectively testing that, meaning the False portion would always happen. Doesn't make a difference to remove this ternary, but I think it's nice to not be using a conditional that isn't very conditional :) .
07:42
ShimmerFairy masak: sure. Perhaps a good way to do that is to encourage not upgrading to a new version of the standard when you're not willing to correct new problems :) 07:43
07:43 leont joined
nwc10 mmm, a < b && a > b will always be false, won't it 07:58
but a < b || a > b won't always be true
(because NaN)
ShimmerFairy nwc10: well, math generally only deals with numbers though :P 08:01
RabidGravy ^ This Fedora has has python 2.7 *and* python 3.4 (and must have got installed as deps of something as I didn't do it deliberately) 08:04
ShimmerFairy RabidGravy: I have python2 and python3, but I think that's just how it works out on gentoo :) 08:08
dalek c/MARTIMM-patch-1: eb77e04 | (Marcel Timmerman)++ | lib/Language/functions.pod:
small changes

  - Modified a pod command at line 351
  - A typo at line 395
08:09
08:10 dakkar joined 08:12 darutoko joined
masak m: class W {}; multi infix:<< < >>($a, $b) { True }; multi infix:<< > >>($a, $b) { True }; my ($a, $b) = W.new xx *; say $a < $b && $a > $b 08:14
camelia rakudo-moar c84ff3: OUTPUT«Ambiguous call to 'infix:<<>'; these signatures all match:␤:(\a, \b)␤:($a, $b)␤ in block <unit> at /tmp/1sejb7Djt1:1␤␤»
08:14 leont left
masak m: class W {}; multi infix:<< < >>(W $a, W $b) { True }; multi infix:<< > >>(W $a, W $b) { True }; my ($a, $b) = W.new xx *; say $a < $b && $a > $b 08:14
camelia rakudo-moar c84ff3: OUTPUT«True␤»
masak nwc10: ^
ShimmerFairy cheater :P 08:16
masak cheating is technique. :)
08:16 jack_rabbit_ joined
masak but I agree that with Real things there's an expectation that `a < b && a > b` is never true. 08:17
ShimmerFairy masak: the only mathematical place I know where that breaks down is the real projective line, or whatever the one is that connects both ends of the real number line to Inf 08:18
dalek c: eb77e04 | (Marcel Timmerman)++ | lib/Language/functions.pod:
small changes

  - Modified a pod command at line 351
  - A typo at line 395
08:19
c: d884b12 | RabidGravy++ | lib/Language/functions.pod:
Merge pull request #133 from perl6/MARTIMM-patch-1

small changes
ShimmerFairy (and for that weird number line, then it becomes a < b ↔ a > b, if I'm not mistaken ☺) 08:20
08:24 Ven left
psch ShimmerFairy: from what i understand from wikipedia that's wrong 08:25
ShimmerFairy psch: my use of ↔ or my mention of the number line?
psch ShimmerFairy: the real projective line is cyclically ordered, which means you'd have to go from a to Inf to b when a > b
ShimmerFairy: but you won't reach Inf
ShimmerFairy psch: ah, I could swear I came across a number line where ordering broke down, and I was sure it's the one that looks like a circle :) 08:26
08:27 rindolf joined, TEttinger left 08:28 araujo joined
psch ShimmerFairy: afaiu that's true for every cycle whos underlying set is countable finite 08:31
e.g. 12 pm < 12 am < 12 pm
ShimmerFairy Maybe the projective real line page once claimed ordering broke down or something, who knows? 08:32
08:32 laouji left 08:33 laouji joined
psch shrugs 08:33
not like i really learned all of this anywhere else either :)
08:33 Ven joined
psch well, school up to a point of course... 08:33
ShimmerFairy psch: I did see a mention of being totally ordered, so I'm inclined to think I misremembered :) 08:35
08:41 salv0 joined
jnthn morning, #perl6 08:43
08:43 Ven left 08:44 Ven joined
nwc10 good UGT, jnthn 08:45
08:47 _mg_ joined
jnthn
.oO( given how my throat feels, it's more like URGH-T )
08:47
ShimmerFairy jnthn: hope you're not using any voice-to-text, then :) 08:48
08:51 bjz_ joined
psch backends don't agree on one specific usage of superstituous parenthesis :( 08:52
r: sub f { (sub g { 1 }) }; say f()()
camelia rakudo-{moar,jvm} c84ff3: OUTPUT«1␤» 08:53
psch r: sub f { sub g { 1 } }; say f()()
camelia rakudo-moar c84ff3: OUTPUT«1␤»
..rakudo-jvm c84ff3: OUTPUT«java.lang.NullPointerException␤ in block <unit> at /tmp/tmpfile:1␤␤»
psch also hi jnthn, and get well soon jnthn
08:53 laouji left
jnthn ShimmerFairy: Thankfully not :) 08:53
FROGGS r: sub f { my $ = sub g { 1 } }; say f()() 08:55
camelia rakudo-{moar,jvm} c84ff3: OUTPUT«1␤»
FROGGS this has been in a workaround in the setting for a while
08:56 salv0 left, Ven left 08:57 Ven joined, salv0 joined
psch FROGGS: i suppose that means you don't have an idea where to start looking either? 08:57
08:58 laouji joined
FROGGS psch: no 08:59
psch: and I lack knowledge to guess 09:00
jnthn If I had to guess, it may be in the QAST::Want void hanlding, since we use that to decide whether we need to emit the closure taking in place or if it's just a straight declaration 09:01
Probably somewhere near the end of routine_def is a good place to start exploring
FROGGS jnthn: but how can that be an issue on jvm only? 09:03
ShimmerFairy QAST->JAST would be my guess :)
09:06 brrt joined
FROGGS hi brrt 09:06
brrt hi FROGGS
jnthn FROGGS: I'm assuming code-gen mis-hap
09:09 Ven left
psch the stage=ast output is identical, fwiw 09:09
so QASTCompilerJAST i guess..?
09:11 cognominal joined
jnthn psch: Yes, I was expecting it would be...you can verify --target=optimize also is 09:11
psch oh, right, optimize
jnthn psch: But yeah, I was more pointing you to routine_def to give you a point to start digging rather than expecting the issue to be near there...it probably is in QAST->JAST.
psch mhm 09:12
09:12 espadrine left
FROGGS the void handling compile_all_the_stmts looks differently on moar/jvm... but I've not enough brain cycles atm spare 09:21
09:27 aborazmeh left
grondilu suddenly wonders if my & = sub {} is ok 09:38
09:38 espadrine joined
grondilu std: my & 09:38
camelia std 28329a7: OUTPUT«ok 00:00 138m␤»
grondilu m: my &
camelia ( no output )
09:40 Ven joined
brrt how do dynamic variables actually work in perl6? 09:41
(dynamically scoped, that is) 09:42
lizmat messages ? 09:43
yoleaux 01:05Z <TimToady> lizmat: turns out adding 'is default' to an attribute's container descriptor was a 3-line patch :)
lizmat wow, TimToady++ :-)
brrt ah, i get it 09:45
hmm, just making dynvars fail is not so simple 09:48
masak m: (my &)()
camelia rakudo-moar c84ff3: OUTPUT«Cannot invoke this object␤ in block <unit> at /tmp/lOtyyWW442:1␤␤»
masak m: say (my &).^name
camelia rakudo-moar c84ff3: OUTPUT«Callable␤»
dalek ast: 3abe56f | lizmat++ | S02-names/is_default.t:
Unfudge now passing tests
09:49
jnthn brrt: They're just lexicals; it's just the lookup that is different 09:50
brrt yeah, i figured 09:51
brrt wonders what would be necessary to make a failing case outside of the compiler
timotimo ShimmerFairy: did you consider perhaps $a > $b && $a < $b is for NaN handling? 09:52
ShimmerFairy timotimo: still false 09:55
timotimo OK, good
brrt i fear it'll be a grammar, and we all know how easy they are to debug
ShimmerFairy timotimo: or rather, you wouldn't enter that conditional in the first place :)
m: say 1 < NaN; say 1 > NaN; 09:56
camelia rakudo-moar c84ff3: OUTPUT«False␤False␤»
timotimo mhm
i didn't look at the code, just the commit message sounded dangerous :D
jnthn brrt: I'm not sure it's about grammars per se 09:57
timotimo i still have masak's post about that topic in the back of my head 09:58
jnthn brrt: That's just where it shows up
brrt yeah, that's what i think too
it's just that grammars tend to be the type of code where these bugs show up
in general
jnthn They showed up a couple of SSA bugs 'cus they have the most interesting control flow ;) 10:05
But I don't think that's what this is
10:05 aiacob left
lizmat m: my @b; @b.push: (1,2,3),; dd @b # note comma after list, should this flatten ? 10:08
camelia rakudo-moar c84ff3: OUTPUT«Array @b = [1, 2, 3]␤»
10:08 Ven left
lizmat jnthn: 13 days ago you wrote that it should :-) 10:09
*shouldn't
jnthn lizmat: uh...did I? :) 10:10
m: my @b; @b.push: ((1,2,3),); dd @b
camelia rakudo-moar c84ff3: OUTPUT«Array @b = [(1, 2, 3),]␤»
lizmat commit de53e4be in specs
jnthn Argh
OK, I should fix that. :)
lizmat the specs or the runtime ?
psch m: my @b; @b.push: (1,2,3),; dd @b[0] # dd output is a bit confusing, in some cases
camelia rakudo-moar c84ff3: OUTPUT«Int @b = 1␤»
jnthn m: my @b; @b.push: $(1,2,3); dd @b # idiomatic way
camelia rakudo-moar c84ff3: OUTPUT«Array @b = [(1, 2, 3),]␤»
jnthn lizmat: The specs :)
lizmat ah, ok
I'll reject #126172 then :-) 10:11
jnthn There's no way we can make argument lists do such weird things with trailing commas :)
Sorry for the confusion
lizmat shall I fix it ? 10:14
10:15 nwc10 left 10:16 zakharyas left
jnthn lizmat: Please 10:19
dalek ecs: 82b8032 | lizmat++ | S07-lists.pod:
Spec fix for #126172
10:20
10:22 tokuhiro_ left, tokuhiro_ joined 10:23 makapa joined 10:24 _mg_ left 10:26 tokuhiro_ left 10:29 chenryn left 10:38 AlexDaniel joined 10:39 abraxxa left 10:46 raiph left 10:47 brrt left 10:57 aiacob joined 10:58 tokuhiro_ joined
ilmari discovers he has a cow-orker called camelia, thanks to her accidental reply-all 11:02
dalek kudo/nom: e87794e | lizmat++ | src/core/Any-iterable-methods.pm:
Add List.repeated(:as,:with)

The opposite of List.unique: returns all things that are seen more than once.
  <a b b b c c d e f>.repeated.say
  (b b c)
If you only want unique repeats, add unique:
  <a b b b c c d e f>.repeated.unique.say
  (b c)
This is basically a cat license job on .unique and really only for discussion so far. Please revert if considered unneeded.
11:02 tokuhiro_ left
lizmat ilmari: she should have a camelia button :-) 11:04
11:16 Ven joined
lizmat m: 42 11:20
camelia rakudo-moar c84ff3: OUTPUT«WARNINGS:␤Useless use of constant integer 42 in sink context (line 1)␤»
11:23 rindolf left 11:24 _mg_ joined 11:26 Ven left, Peter_R joined, Ven joined
pink_mist is sink context the equivalent of perl5's void context? 11:30
11:31 brrt joined
moritz yes 11:32
dalek kudo/nom: 08b0359 | lizmat++ | t/spectest.data:
Move S32-io/IO-Socket-INET.t to "right" place

Well, the list gets sorted in the end anyway, so there was no point putting it at the end. *And* it seems to survive under load nowadays
11:48
11:50 Ven left
moritz maybe we could have a warning for the use of 'return' in a routine that was marked as 'is rw'? 11:55
11:55 AlexDaniel left
lizmat or maybe "is rw" should be enough to have the return transmogrify into a return-rw autmatically ? 11:56
ShimmerFairy I think it'd be a bit weird if I had to write 'rw' twice :) (might also discourage use of 'is rw' altogether, since "it doesn't matter") 11:59
12:01 cognominal left, zakharyas joined 12:03 timbunce_ left 12:05 larion joined
masak I thought all things ending in `-rw` were basically stopgap things until we figure out how to do without them performantly. 12:05
ShimmerFairy that would be news to me, though that doesn't mean much :) 12:07
brrt oh goody, are we killing containers? :-P 12:10
12:12 FROGGS left
masak brrt: not likely. 12:12
brrt: but I was thinking there are still things that could be done that would push them into the background. 12:13
like ShimmerFairy says, if I already did `is rw` on the routine, why shouldn't it be clear enough that it's the *container* I want to return when I do `return $x;` ?
brrt hmm yeah, it probably should 12:14
masak if it were Java, I would expect it to be specified in triplicate, but this is Perl.
ShimmerFairy It also means the 'is rw' trait becomes useless, since it adds nothing over 'return-rw'
.oO( use JavaJavaJava; )
12:15
brrt return.... return probably decontainerizes the value normaly
*normally*
12:17 makapa left, cognominal joined
jdv79 ShimmerFairy: have you worked with large legacy codebases? I think its common ot be lagging the bleeding edge by a lot. 12:22
ShimmerFairy no, I haven't. 12:23
12:24 andreoss joined 12:32 aiacob left 12:41 ab6tract joined 12:44 FROGGS joined
masak brrt: if I had never heard about the `return-rw` workaround, and I was wondering how to return a container from an `is rw` routine, my expectation/guess would be squarely on `return`. 12:45
brrt: and I guess you could say that this is because at that moment, I don't care about containers. I want it to Just Work.
12:46 plicease left, plicease joined
jnthn masak: I don't see why we have to have "return-rw", tbh 12:47
masak: There's no deep impl reason as far as I can see
12:49 laouji left
dalek kudo/nom: 4b2f8e1 | lizmat++ | t/harness:
Implement "slow" fudger

A test marked as "slow" will not be done in alphabetical order. Instead, all tests marked "slow" injected as far apart from each other in the total run of testing. When given enough TEST_JOBS (e.g. 10 on a quad-core CPU) this results in almost 100% CPU usage for the whole run. Which should result in smaller wallclock times.
12:49
kudo/nom: 80578e5 | lizmat++ | t/spectest.data:
Mark slow test files
12:50
lizmat TimToady: the fan should not go off anymore :-)
cycling&
masak as long as we're fairly agreed that `return-rw` (et al) are deliberately ugly stopgap features, which we may end up supporting for a long time after 6.christmas because backwards compatibility, we're all good
lizmat++ # slow fudger 12:51
jnthn masak: I don't really see take/take-rw as being in the same boat fwiw 12:52
masak sounds like a British insult. :P "come along, ya slow fudger!"
jnthn That seems legit
masak jnthn: ok. because they build different results?
jnthn Well, and the alternative would be a gather-rw :)
And putting it on the take is the more flexible option
masak I can't recall ever wanting `take-rw`, tbh. 12:53
if anyone has a use case for that, I'd be much interested :>
I always build a sequence of values, not of containers.
jnthn Well, something traversing a tree finding things to process, and you want to do for the-things() { s/foo/bar/; } 12:54
12:56 rindolf joined 13:00 tokuhiro_ joined
[Coke] RT: 1,019; testneeded: 9; GLR: 4; xmas: 98; LTA: 78; WEIRD: 12 13:02
13:04 pat_js` joined, tokuhiro_ left
vytas sorry for a silly question, but what does "use v6;" mean for Perl6 ? does it have to be used? 13:07
DrForr It's more for when you accidentally run the script in perl5 :) 13:10
pat_js` vytas: it's a perl5-compatible way of saying that you are using perl6
is there an “interactive perl6-shell mode” for emacs out there? 13:11
vytas does Perl5 output warning? I know there is p6.pm
pat_js` vytas: here is the message you get: Perl v6.0.0 required--this is only v5.20.2, stopped at rb_tree.p6 line 1. 13:12
vytas thanks :)
jdv79 lizmat: a *real* test runner would randomize the execution:) 13:13
DrForr prove(1) has a randomizer :) 13:14
jdv79 i've never done it though. seems of dubious value.
oh yeah. forgot about that. DrForr++ 13:15
13:16 dnmfarrell joined
ShimmerFairy m: multi sub foo(Int $a) { say "I" }; constant &bar = &foo; multi sub bar(Str $a) { say "S" }; foo(42); bar("A"); foo("A"); bar(12) 13:18
camelia rakudo-moar 08b035: OUTPUT«I␤S␤S␤I␤»
ShimmerFairy someone please tell me it isn't this easy to define a "synonym" for something :)
13:18 Ven joined
[Coke] lizmat: anything marked stress should also be considered slow, aye? 13:18
jdv79 they don't get run in spec though right?
jnthn [Coke]: Those are excluded in a normal spectest run, though 13:19
[Coke] not in spectest, but in stresstest - but it's the same harness, just different options.
so if we want slow to be the default, it should be the default for stressy things too, I think.
13:22 Ven left
jdv79 does anyone use Net::IRC::Bot? And is there something better these days? 13:32
tony-o .tell nwc10 there is a perl6 'prove' module/bin out there called 'Green', can be installed with zef or panda. 13:33
yoleaux tony-o: I'll pass your message to nwc10.
[Coke] hurls a new SE question: stackoverflow.com/questions/327778...ule-system 13:35
er, SO, not SE
[Coke] thinks he might have combined stack overflow and experts exchange there. 13:36
jdv79 maybe that first comment is the best idea there 13:37
tony-o seems like that is what the :auth in that spec should be used for [Coke], if that company wants to have its own private ecosystem for modules.
jdv79++ 13:38
[Coke] tony-o: to be clear, I didn't ask it, I just mentioned it here.
TimToady: You just brought + prefix on argument lists back, yes? stackoverflow.com/questions/159476...perl6?rq=1 might need a new answer. :) 13:40
13:43 kjk joined 13:46 skids joined 13:48 Ven joined
kjk how do I find out what methods I can invoke on an object? 13:49
masak is it possible to import a family of multis, and then add another candidate to it in the current lexical scope?
m: say Mu.^methods>>.name 13:50
camelia rakudo-moar 80578e: OUTPUT«(self gimme munch ACCEPTS WHERE WHICH take return-rw return WHY set_why Bool so not defined new is-lazy CREATE bless BUILDALL BUILD_LEAST_DERIVED Numeric Real Str Stringy item say print note gist perl DUMP DUMP-PIECES DUMP-OBJECT-ATTRS isa does can clone C…»
masak kjk: ^
m: say ?Mu.^can("new")
camelia rakudo-moar 80578e: OUTPUT«True␤»
jnthn masak: You just import (or use) and then declare another multi, no?
masak jnthn: so that works? nice.
jnthn: does it work because the import is actually a copy, and so the family of multis you extend are actually located in your lexical scope, not where you imported them from? 13:51
jnthn masak: Don't see why not.
masak: Yeah, should do
skids masak: you mentioned in RT#120895 you'd want to review any ideas for altering dedenting, I posted one in PR#540
kjk masak: thank you! this would really help a lot with exploring perl6 in repl
jnthn masak: We have to do some amount of candidate list copying anyway 'cus you can export just some multis ratehr than the whole set 13:52
dalek ast: 3c32ca8 | hoelzro++ | S17-lowlevel/lock.t:
Unfudge lock/join test

The condition under which it would fail under OS X has been fixed
masak m: module Foo { multi x(Int $n) is export { say "Int" } }; import Foo; multi x(Str $s) { say "Str" }; x(42); x("OH HAI")
camelia rakudo-moar 80578e: OUTPUT«Int␤Str␤»
masak niiiiiice.
skids: url?
jnthn hoelzro: I thought it was :)
hoelzro++
skids masak: github.com/rakudo/rakudo/pull/540 13:53
masak looks
jnthn Time for me to do some Perl 6 bits :)
dalek kudo/rw-cleanup: 890402f | jnthn++ | src/core/ (5 files):
Clean up various `is rw` misuses.

It's meaningless on non-Scalars. In some places, drop bogus `is rw`, and in others switch to using scalars over \foo.
13:54
kudo/rw-cleanup: 03a42d9 | jnthn++ | src/core/ (24 files):
Cleanup of `is rw` usage on subs/methods.

Most of them wanted to be "is raw". Some didn't want anything at all. In some places "rw" stayed. Commit poem! Oh, LOL! Well played.
kudo/rw-cleanup: 73e9f5d | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Only allow `is rw` on Scalar parameters.
jnthn heh, forgot a rebase would replay all the branch here 13:55
Now I need to remember what I was meant to do next with that branch... 13:56
moritz spectest? merge?
masak skids: both look good. 13:57
jnthn heh, no :)
masak skids: the second one more obviously so than the first. :)
jnthn Ah, yeah, actually make "is rw" enforce something...
masak skids: I guess changing from deleting from the end rather than from the front was a fairly deliberate thing? and probably the saner one anyway. 13:58
skids: I don't immediately see that one direction would be more right than the other there. we mainly need to support the use cases we know about, and be consistent/sane. 13:59
skids: in other words, it looks mergeable to me.
skids masak: Yes, deliberate on that (actually I think indenting by padding the right is, while convenient, less what people expect) 14:00
dnmfarrell Just pushed a new version of URI::Encode, and thanks to smls, it's much faster. Swapping a .trans for a .subst did the trick :) 14:02
skids masak: (but I didn't change that, because there may e use cases for "don't alter my tabbification at all") 14:03
tony-o [Coke]: i'm aware, i juyst like talking about the curli spec
since it's still pretty ambiguous.. 14:04
masak skids: OK if I merge? 14:05
skids FIne by be. I'll fix up thos spectests.
dalek rakudo/nom: 12db6c0 | skids++ | src/core/Str.pm:
rakudo/nom: One possible solution to RT#120895
rakudo/nom:
rakudo/nom: Deindents delete from the front. Any spaces that are not
rakudo/nom: contributing to the length are deleted along with the tab
14:05 dalek left
masak merged/ 14:05
jdv79 fyi, the snippets at the top of doc.perl6.org/type/IO::Socket::Async are broken:(
14:06 dalek joined, ChanServ sets mode: +v dalek
RabidGravy jdv79, that'll probably be my fault 14:07
ls
jdv79 Type check failed in binding $b; expected 'Blob' but got 'Str' in block <unit> at test_bot.pl:3 14:08
but there is no $b...
jnthn jdv79: That probably refers to a $b inside IO::Socket::Async's impl somewhere 14:09
jdv79 oh, hmm. yeah. s/write/print/ fixed it but that error. :(
RabidGravy got a different error 14:11
dalek ast: 41afc57 | skids++ | S32-str/indent.t:
Alter two tests due to new semantics arising from RT#120895
skids I'll get to describing that in design docs later, and maybe an RT-specific test 14:12
jdv79 RabidGravy: something about send?
RabidGravy yeah
jnthn skids++ # taking things from fixmas list
jdv79 yeah. i did s/send/write/ wrongly and then to print and it seems better now
but that error message - can that be fixed? 14:13
skids Ah, those were LHF. Most of those tickets I don;t even know where to start or boil down to a spec desicision.
dalek c: 96b4260 | RabidGravy++ | lib/Type/IO/Socket/Async.pod:
s/send/print/
kudo/rw-cleanup: cdc51a7 | jnthn++ | src/core/CompUnitRepo.pm:
A couple more `is rw` -> `is raw`.
14:14
RabidGravy still don't like the client example
14:14 sria91 joined 14:16 sria91 left 14:18 anaeem1 joined 14:19 anaeem1 left, _mg_ left
dalek kudo/rw-cleanup: 8b7d0c1 | jnthn++ | src/Perl6/Actions.nqp:
Topic blocks need $_ to be raw, not rw.
14:22
kudo/rw-cleanup: 2434d18 | jnthn++ | src/Perl6/ (2 files):
Update binder (on Moar) to make `is rw` constrain.

Now it requires to be passed something that is an assignable scalar container (Scalar, Proxy, etc.)
14:25
14:25 pmurias_ joined
andreoss how can I copy a function? 14:26
colomon andreoss: why would you copy a function?
jnthn andreoss: What do you mean by "copy"?
andreoss to undefine state variable
jnthn Oh, that just happens out of closure semantics 14:27
.clone() should do it also though
m: sub foo() { return sub () { state $a = 1; $a++ } }; my &a = foo(); my &b = foo(); a xx 4; b xx 4;
camelia rakudo-moar bff29c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/HCJ0Z_JX4z␤Undeclared routine:␤ xx used at line 1␤␤»
jnthn m: sub foo() { return sub () { state $a = 1; $a++ } }; my &a = foo(); my &b = foo(); a() xx 4; b() xx 4;
camelia ( no output )
jnthn m: sub foo() { return sub () { state $a = 1; $a++ } }; my &a = foo(); my &b = foo(); say a() xx 4; say b() xx 4; 14:28
camelia rakudo-moar bff29c: OUTPUT«(1 2 3 4)␤(1 2 3 4)␤»
jnthn There you go
andreoss m: sub foo { state $x; say "hi {$x++}" } ; my &bar = &foo; foo(); bar(); foo() 14:29
camelia rakudo-moar bff29c: OUTPUT«hi 0␤hi 1␤hi 2␤»
andreoss m: sub foo { state $x; say "hi {$x++}" } ; my &bar = clone &foo; foo(); bar(); foo()
camelia rakudo-moar bff29c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/MoD9e2IjKT␤Undeclared routine:␤ clone used at line 1. Did you mean 'close', 'done', 'none'?␤␤»
andreoss m: sub foo { state $x; say "hi {$x++}" } ; my &bar = &foo.clone; foo(); bar(); foo()
camelia rakudo-moar bff29c: OUTPUT«hi 0␤hi 0␤hi 1␤»
jnthn That works too (and is safe to rely on) 14:30
andreoss m: sub foo { state $x; say "hi {$x++}" } ; my &bar = &(&foo); foo(); bar(); foo()
camelia rakudo-moar bff29c: OUTPUT«hi 0␤hi 1␤hi 2␤»
jnthn You'll have to explicitly clone if you don't want to write it in the function generator form I showed above
Assignment just assigns the same closure. 14:31
andreoss thanks
jnthn Phew, only one spectest I need to look at from making `is rw` check for a container 14:32
14:33 zakharyas left
moritz jnthn: does 'sub f($x is rw) { }; f 42' fail to dispatch in your branch? 14:33
jnthn Yes
moritz \o/
jnthn C:\consulting\rakudo>perl6-m -e "sub f($x is rw) { }; f 42" 14:34
Parameter '$x' expected a container, but got an Int value in sub f at -e:1
Any comments on the message are welcome
psch s/value/literal/ maybe?
oh but there's values that aren't literal
jnthn I pondered literal, but...yes, that. :)
moritz jnthn: "expected a writable container"? 14:35
does sub g($x) { f(x) }; sub f ($x is rw); g my $y; fail to dispatch to &f?
jnthn Hm, that does better link it back to rw
Did you mean f($x) ? 14:36
moritz yes
jnthn Uh, it should but...hmm
Ah... 14:37
iscont isn't sufficient 'cus we use ro Scalar to prevent flattening
grr 14:39
jnthn fixes
jdv79 RabidGravy: yes, that client is awful;) 14:40
jnthn moritz++ for the test base, btw
*case
I'd expected that one to already refuse to bind...
jdv79 maybe better net and/or async docs would be nice
moritz too 14:41
jdv79: I've tried very hard to document Promise, Supply and Channel well
jdv79 i'm just digging in for the first time 14:42
moritz jdv79: if you have any complaints in that part of the docs, please let me know
jdv79 moritz++ # thanks!
jnthn moritz: Turns out it's some work to not totally cheat on it too... Working on it :) 14:45
14:49 jack_rabbit_ left 14:50 domidumont left, zoosha_ left
andreoss m: sub foo { say "hi" }; my &bar = &foo.perl.EVAL; bar() 14:55
camelia rakudo-moar bff29c: OUTPUT«Stub code executed␤ in sub foo at EVAL_0:1␤ in block <unit> at /tmp/kKAytGgWID:1␤␤Actually thrown at:␤ in block <unit> at /tmp/kKAytGgWID:1␤␤»
jnthn &foo.perl doesn't actually provide the source code. 14:56
14:58 bjz_ left
masak there's no real technical limitation there. many JavaScript implementations do that. 14:59
14:59 bjz joined
jnthn It's more a choice 14:59
masak still, there might be security concerns. and maybe performance/memory concerns. 15:00
jnthn We choose not to, otherwise pre-comps have to carry the source code around in them too
Do that for CORE.setting and it's another few megs of RAM on base Perl 6.
masak right.
15:00 pmurias_ is now known as pmurias
TimToady well, or a file lookup 15:00
jnthn True, the info is kept around to do that. 15:01
Well
The start of the function is :)
Even then it's not the whole story because you don't have the context
So it *still* won't round-trip
15:01 tokuhiro_ joined
masak .oO( just forbid closure semantics! ) :P 15:02
jnthn We're not *that* enterprise :P
pmurias m: sub foo {say "hi" }; say(&foo.perl) 15:03
camelia rakudo-moar bff29c: OUTPUT«sub foo () { #`(Sub|77114784) ... }␤»
pmurias it seems less the awesome
jnthn Tough.
pmurias * then
jnthn * than :P 15:04
pmurias yes ;)
Ven masak: Function::toString used to be "nonstandard" (not required to work). I think es6 standardises it.. 15:05
15:06 tokuhiro_ left
skids Oh, that reminded me, is a "wisdom" system for storing spesh/optimization preloads in a disk cache for future runs potentially feasible? 15:06
(JOOC) 15:07
jnthn skids: Potentially, yeah, it's just...hard :)
skids: Ideally you'd store the JITted output but you gotta get security right and write a linker... :)
FROGGS jnthn: once you thought precomp+BEGIN is hard, no? :o)
jnthn FROGGS: It still *is* hard, as evidenced by the fact we still have precomp issues to squish ;) 15:08
nine We do have file and line information for call frames. Isn't this somehow accessible?
jnthn nine: Yeah
nine: I think timotimo did something to make it so
On a routine
m: say Routine.^methods>>.name
camelia rakudo-moar bff29c: OUTPUT«(<anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> of returns onlystar candidates cando multi soft wrap unwrap yada package leave perl add_phaser phasers assuming WHY set_why perl <anon> fire_ph…»
timotimo i *thought* i put something in there
tony-o lizmat: is CURLF or CURLI returning the proper type? CURLF is returning a CompUnitRepo and CURLI is returning an array..
timotimo but i couldn't find it the last time i looked
perhaps it's in a branch 15:09
jnthn m: say Routine.^methods>>.name.grep(* ne '<anon>')
camelia rakudo-moar bff29c: OUTPUT«(of returns onlystar candidates cando multi soft wrap unwrap yada package leave perl add_phaser phasers assuming WHY set_why perl fire_phasers has-phasers count of ACCEPTS signature Str arity returns new outer static_id)␤»
jnthn Yeah, I don't see it in there
15:10 zoosha joined
jnthn timotimo: Mebbe you just did the moar work to make it possible :) 15:11
timotimo cit seems i put a commit there to get nqp::getcodelocation, but didn't put it into core
jnthn aha
timotimo m: say nqp::getcodelocation(nqp::getattr(sub foo() { }), Block, '$!do'))
camelia rakudo-moar bff29c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cDKcckOySP␤Unexpected closing bracket␤at /tmp/cDKcckOySP:1␤------> 3::getattr(sub foo() { }), Block, '$!do')7⏏5)␤»
timotimo m: use nqp; say nqp::getcodelocation(nqp::getattr(sub foo() { }), Block, '$!do')
camelia rakudo-moar bff29c: OUTPUT«===SORRY!===␤Arg count 3 doesn't equal required operand count 2 for op 'getcodelocation'␤»
timotimo m: use nqp; say nqp::getcodelocation(nqp::getattr(sub foo() { }, Block, '$!do'))
camelia rakudo-moar bff29c: OUTPUT«P6opaque: no such attribute '$!do'␤ in block <unit> at /tmp/VehgbQRdUX:1␤␤»
timotimo m: use nqp; say nqp::getcodelocation(nqp::getattr(sub foo() { }, Routine, '$!do')) 15:12
camelia rakudo-moar bff29c: OUTPUT«P6opaque: no such attribute '$!do'␤ in block <unit> at /tmp/e9TnOGH7Wp:1␤␤»
timotimo m: use nqp; say nqp::getcodelocation(nqp::getattr(sub foo() { }, Code, '$!do'))
camelia rakudo-moar bff29c: OUTPUT«file => /tmp/owkwm5aYQe, line => 1␤»
timotimo there we go
this is how we'd implement it
nine: do you want to? :)
nine I give it a try :)
hoelzro o/ #perl6 15:13
tony-o .tell lizmat, i'm looking to fix either CURLI or CURLF so we can keep working on the modules we have. can you tell me whether the CURLF (returns CompUnit) or CURLI (returns an Array) is correct? this will tell me whether CURLI needs to be changed or whether CURLF needs to be fixed along with whatever is trying to call .load on the returned value. 15:16
yoleaux tony-o: What kind of a name is "lizmat,"?!
tony-o .tell lizmat i'm looking to fix either CURLI or CURLF so we can keep working on the modules we have. can you tell me whether the CURLF (returns CompUnit) or CURLI (returns an Array) is correct? this will tell me whether CURLI needs to be changed or whether CURLF needs to be fixed along with whatever is trying to call .load on the returned value.
yoleaux tony-o: I'll pass your message to lizmat.
tony-o thanks yoleaux
15:16 haroldwu joined
jnthn C:\consulting\rakudo>perl6-m -e "sub g($x) { f($x) }; sub f ($x is rw) { }; g my $y;" 15:17
Parameter '$x' expected a writable container, but got an Any value in sub f at -e:1 in sub g at -e:1
\o/
tony-o what is C:\
nine Ok, finding a sub in a file is easy. The hard part is knowing where it ends
pink_mist tony-o: the main harddrive in most windows installs 15:18
dalek p: d55821d | jnthn++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION for isrwcont op.
p: bd77bf7 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Map isrwcont op on Moar backend.
kudo/nom: 94bc1a9 | (Stefan Seifert)++ | src/core/Code.pm:
Make .file and .line of Code objects accessible
jnthn tony-o: Wearning a turban and feeling odd about it. 15:19
*Wearing
15:19 diana_olhovik left 15:20 AlexDaniel joined
nine Now if only we had a Perl 6 parser available for Perl 6 ;) 15:21
AlexDaniel hah
15:21 dnmfarrell left
jdv79 chars-supply seems line oriented. that's not correct right? 15:21
jnthn jdv79: It's not something you can rely on 15:22
jdv79: We give you the stuff the OS gives us
jdv79 thought so
jnthn jdv79: If the programming is outputting data a line at a time it's possible you'll get lines, but don't rely on it :) 15:23
*program
AlexDaniel p6weekly is barely p6monthly again :(
jnthn AlexDaniel: If you're time/interest, I'm sure the two people who try to make it happen woudln't mind a third person to help spread the load. 15:24
AlexDaniel jnthn: sure
jnthn: but I'm afraid that I'm not the right person to do that, because it's basically one of my primary sources of perl6 news
15:24 tokuhiro_ joined
AlexDaniel jnthn: maybe if I was a bit more active on IRC… 15:25
but just wanted to complain a little bit to remember that p6weekly is a really great idea, I wish there were more updates 15:26
tony-o jnthn++
AlexDaniel by the way, maybe it is a good idea to make some wiki page where everyone could make dirty notes? Which would be later refactored into a blog post 15:28
this way, even I could contribute
15:29 tokuhiro_ left
jnthn AlexDaniel: I think looking over the commit logs for Rakudo and the ecosystem module list would get you plenty of info on stuff that's been going on as a source. 15:29
RabidGravy is there a nice way of getting out of a "react"? having troubling working it out
jnthn RabidGravy: "done"
RabidGravy ah-ha! cheers
jnthn AlexDaniel: Collecting that into notes somewhere (just a gist even, or a github wiki) would certainly help 15:30
AlexDaniel: Typically whoever writes it posts it here for review and asks if there's anything people want included also
15:31 travis-ci joined
travis-ci NQP build errored. jnthn 'Map isrwcont op on Moar backend.' 15:31
travis-ci.org/perl6/nqp/builds/82171720 github.com/perl6/nqp/compare/a54d4...77bf71acc1
15:31 travis-ci left
jnthn If we could get up to 4-5 people who contribute then it'd only be once per month for somebody to curate the stuff into a blog post. 15:31
pmurias hoelzro: \o
jnthn oh really, travis...
yowser, that's a nasty build fail 15:32
tony-o jnthn: contribute to what?
jnthn tony-o: perl6 weekly
p6weekly.wordpress.com/
hoelzro o/ pmurias
dalek p: 06ae7d2 | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (4 files):
[js] Progress on serializing P6opaque and object references.
15:37
p: 2f956fd | (Pawel Murias)++ | src/vm/js/nqp-runtime/serialization.js:
[js] Fix bug
15:39 sufrostico joined
RabidGravy is gist.github.com/jonathanstowe/9ca5...6d7bd0a50e a nicer example for an IO::Socket::Async client? jdv79? 15:40
15:42 travis-ci joined
travis-ci NQP build passed. Pawel Murias '[js] Fix bug' 15:42
travis-ci.org/perl6/nqp/builds/82174925 github.com/perl6/nqp/compare/bd77b...956fd2b4c1
15:42 travis-ci left, travis-ci joined
travis-ci Rakudo build failed. Stefan Seifert 'Make .file and .line of Code objects accessible' 15:42
travis-ci.org/rakudo/rakudo/builds/82171738 github.com/rakudo/rakudo/compare/b...bc1a93eda3
15:42 travis-ci left 15:48 Goblin_ joined
Goblin_ How to load module from different location? 15:48
15:49 estrabd joined
jnthn -Ifoo at the command line or use lib 'foo'; in code 15:49
15:50 ab6tract left, Goblin_ left 15:52 estrabd left
dalek p: a2deb14 | jnthn++ | src/vm/jvm/ (3 files):
Implement nqp::isrwcont on JVM backend.
15:52
andreoss why my sub foo {...} is immutable but my &foo = sub {...} is not?
jnthn sub foo installs the sub at compile time into the lexpad 15:53
my &foo is just a Scalar container with a Callable type constraint.
15:54 estrabd joined
jnthn (And since the first happens at compile time, a bunch more error checking and optimization is possible) 15:54
15:55 estrabd left
dalek kudo/rw-cleanup: 6eec497 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for nqp::isrwcont.
15:56
kudo/rw-cleanup: 089e7df | jnthn++ | src/vm/moar/ops/container.c:
Implement new can_store container API on Moar.
jnthn lizmat: fwiw, the slow test re-ordering makes things *slower* on Windows 15:59
lizmat: 'cus it launches tests in batches
lizmat: And now there's more slow batches
16:00 FROGGS left 16:01 Alina-malina left 16:04 Ven left
dalek kudo/rw-cleanup: 19975f9 | jnthn++ | src/Perl6/ (2 files):
Use nqp::isrwcont for checking parameter `is rw`.
16:04
kudo/rw-cleanup: 1d3c344 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Mention "writable" in error; moritz++.
jnthn OK, I got 4 test failures in rw-cleanup, and 3 are about error reporting 16:07
jdv79 Calling emit() will never work with declared signature (\value)
why not ?
jnthn jdv79: emit needs a value to emit 16:08
jdv79: I don't see a sensible "default" value
jdv79 oh i read it wrong
right
jnthn needs a break for a little bit 16:09
16:11 brrt left 16:12 spider-mario joined 16:16 diana_olhovik joined
jdv79 oh WOW. i just spent 10 mins trying to figure out how "Cannot find method 'postcircumfix:<( )>'" could be coming from a react or whenever block since tht's the line # it ref'd 16:16
it was inside the supply block that it was looping over. :( that can't be fixed?
dalek c: 6d961f0 | RabidGravy++ | lib/Type/IO/Socket/Async.pod:
Slightly prettier client example
16:19
16:20 FROGGS[mobile] joined
FROGGS[mobile] jdv79: can you golf and report it? 16:21
16:21 diana_olhovik left
jdv79 ok 16:21
jnthn async error reporting is always some fun to get right :) 16:23
jdv79 is it async related? seems to be def vs runtime on an anon block kinda 16:28
gist.github.com/jdv/81f942b02e414219f79e 16:29
16:30 FROGGS[mobile]2 joined
jnthn Yeah, I can imagine how we lose the original exception 16:31
Can you RT that? I'm working on some of the rw-cleanup regressions and then it'll be dinner time soon...
jdv79 yes
thanks
16:34 FROGGS[mobile] left
TimToady on code locations, it's gonna be hopeless unless we store positions rather than line numbers 16:37
16:37 khw joined
TimToady but I repeat myself... 16:37
16:38 FROGGS[mobile]2 left
timotimo for all those one-liners out there 16:38
and minified perl6 scripts
jdv79 in 3d?
jnthn
.oO( TimToady repetition detected 5 lines ago :P )
16:39 FROGGS[mobile] joined 16:41 cognominal left
dalek kudo/rw-cleanup: dbec58f | jnthn++ | src/ (2 files):
Typed exception for no `is rw` satisfaction.
16:41
jdv79 gist.github.com/anonymous/c4b70a65e2475ff25968 16:43
TimToady jnthn: maybe there should be a Storable role and s/writable container/Storable/? well, maybe Storable is not the best name...
jdv79 is taht really necessary to write? can't the core IO stuff do that?
16:43 cognominal joined
jnthn TimToady: I figured we could put that off until we figure out what `is rw` means on non-Scalar things... 16:44
TimToady: Of course we could test if .VAR ~~ Storable
Though yeah, the name has some...history...we may want to consider ;)
16:45 Alina-malina joined 16:46 dakkar left
jnthn jdv79: $conn.chars-supply.lines 16:48
m: my $s = supply { emit "omg"; emit "wtf\nbbq"; emit "!" }; react { whenever $s.lines { ++state $i; say "$i: $_" } } 16:49
camelia rakudo-moar 94bc1a: OUTPUT«1: omgwtf␤2: bbq!␤»
jnthn OK, I think I got my rw-cleanup branch mergable :) 16:50
16:51 espadrine left
jdv79 ha 16:54
RabidGravy: that's the sort of stuff to put in that example code 16:55
RabidGravy just doing the server example to make it more like that 16:56
dalek kudo/nom: d593789 | jnthn++ | src/core/ (5 files):
Clean up various `is rw` misuses.

It's meaningless on non-Scalars. In some places, drop bogus `is rw`, and in others switch to using scalars over \foo.
16:56 dalek left
jdv79 i did find a perhaps genuine bug though because i reinvented that wheel 16:57
16:57 dalek joined, ChanServ sets mode: +v dalek
dalek ast: 5caab8c | jnthn++ | S0 (3 files):
Update some expected exception types.

We now enforce rw-ness at parameter binding time, so these die earlier.
16:57
jdv79 so maybe not wasted
ast: 6d542a7 | jnthn++ | S06-traits/misc.t:
Update tests for `is rw` for constraint semantics.
16:57 yqt joined
jnthn rw-cleanup merged, thsoe were the fails I noticed and have fixed up tests for :) 16:58
This isn't everything, 'cus the multi-dispatcher needs to learn to enforce the constraint too
And the JVM binder... :)
But, dinner time &
17:01 pierrot_ joined
moritz hack.p6c.org/~moritz/rakudo-star-2015.09.tar.gz # everbody please test it 17:02
jdv79 is there something like say for a socket? 17:03
for line based text protocols for instance
moritz jdv79: no; and I don't advise adding it either 17:04
cause say() uses gist, which is the summary meant for humans 17:05
not something you usually send over the network
jdv79 yup
17:09 pierrot__ joined, pierrot_ left 17:11 AlexDaniel left 17:12 espadrine joined 17:14 domidumont joined 17:19 travis-ci joined
travis-ci Rakudo build passed. jnthn 'Typed exception for no `is rw` satisfaction.' 17:19
travis-ci.org/rakudo/rakudo/builds/82188992 github.com/rakudo/rakudo/compare/9...7ed7e5bb97
17:19 travis-ci left 17:23 telex left 17:24 telex joined
garu_ I *love* the "did you mean" messages on undeclared variables. I wonder if we can do the same for unrecognized character names, since it's also a compile time error 17:26
something like 'say "\c[WHITE HEART]"' -- compile error: did you mean "WHITE HEART SUIT"? 17:28
hoelzro garu_: that's a spectacular idea 17:31
moritz also algorithmically a bit more challenging than for the setting
there are many more Unicode characters than symbols in the setting, for example 17:32
TimToady and you're looking for more than just typos 17:33
hoelzro it's more complex time-wise, but it would only happen at compilation failure, right? 17:36
jdv79 RabidGravy: you work on HTTP::UserAgent, right?
hoelzro so a few extra millis for that info wouldn't be so bad, imo 17:37
jdv79 seems to be hangy again
RabidGravy jdv79, yes
occasionally anyway
17:37 adu joined 17:39 _mg_ joined 17:40 araujo_ joined 17:44 araujo left
jdv79 RabidGravy: i bugged it ^H 17:45
RabidGravy cool
jdv79 who knew an http us could be so cranky:)
*ua
17:52 yqt left 17:55 leont joined
geekosaur anyone who's written one >.> 17:56
dalek c: 70321a6 | RabidGravy++ | lib/Type/IO/Socket/Async.pod:
Make the server example more similar in style
18:00
18:02 dnmfarrell joined 18:04 FROGGS joined
FROGGS o/ 18:11
garu_ \o 18:12
FROGGS hi garu_ :o)
dalek ast: f384b62 | FROGGS++ | S05-capture/array-alias.t:
turn old test into valid Perl 6

That is, fix stringificationn of variables and lexical regex declarations.
18:14
[Coke] FROGGS: that has a note at the top that it doesn't compile. 18:18
... which you can remove now. Not sure if there's anything else that needs doing to fix that RT, either.
er, that test file you just updated.
FROGGS [Coke]: I am working on making it pass... 18:19
m: my @chars; say "abc" ~~ m/@chars=(.)/; say @chars
camelia rakudo-moar 277ed7: OUTPUT«===SORRY!===␤QAST::Block with cuid cuid_1_1443205161.35459 has not appeared␤»
FROGGS [Coke]: it does not compile yet on nom
dalek kudo/nom: 863a2a4 | TimToady++ | src/Perl6/Grammar.nqp:
die better on malformed -->
18:23
18:30 _mg_ left 18:31 domidumont left, mr_ron joined
mr_ron m: gist.github.com/ronaldxs/4cb6bb2b47140eab390a 18:32
camelia rakudo-moar 277ed7: OUTPUT«count should be 1 but is: 2␤»
mr_ron looks like proxy bug
timotimo rakudo doesn't guarantee how often FETCH is called 18:34
18:36 espadrine left, andreoss left
mr_ron I think that conclusion effects a roast test suite: github.com/perl6/roast/blob/master...mutators.t 18:37
18:38 pierrot__ is now known as pierrot, sufrostico left
timotimo ah, i don't think we should be testing for the exact count of FETCH invocations there 18:39
mr_ron the FETCH will be called twice and add 4 instead of 2
timotimo but the test is currently skipped anyway, perhaps because $!varies gets the wrong "self" there?
let's look at RT #124909 18:40
oh
it's one of *those*
rt.perl.org/Public/Bug/Display.html?id=124909
mr_ron yes I saw it - it doesn't say much 18:41
custom mutators are something I want for one of my modules. They don't really seem to be in the documentation. Are they officially documented as part of Perl6 in some way? 18:43
lizmat messages? 18:44
yoleaux 15:16Z <tony-o> lizmat: i'm looking to fix either CURLI or CURLF so we can keep working on the modules we have. can you tell me whether the CURLF (returns CompUnit) or CURLI (returns an Array) is correct? this will tell me whether CURLI needs to be changed or whether CURLF needs to be fixed along with whatever is trying to call .load on the returned value.
18:44 pierrot left
lizmat tony-o: looking into it 18:45
lizmat backlogs first
jdv79: re irclog.perlgeek.de/perl6/2015-09-25#i_11274295 , in 871268e72e11c9dd0c6705 I added a randomize option to t/harness 18:48
jdv79: it did not make things go faster (wallclock wise)
18:48 ggoebel2 joined
lizmat [Coke]: well, slow in my book is more "slow in wallclock" because of sleep() or i/O 18:49
mr_ron custom object attribute mutators I mean. From S12 "You may write your own accessors to override any or all of the autogenerated ones.". Is there similar documentation on mutators?
lizmat [Coke]: so re irclog.perlgeek.de/perl6/2015-09-25#i_11274331 : I don't think tests marked "stress" should be considered slow as well 18:50
the whole idea was to spread out the tests that take long, but don't need a lot of CPU, over the entire run of the spectest, rather than be concentrated at a particular period of the run 18:51
[Coke] lizmat: if stress tests are slow by wallclock standard, what makes them stress tests?
18:51 sufrostico joined
[Coke] *aren't 18:51
lizmat because they are generally CPU intensive, and possibly take long because they do a lot 18:52
the "slow" tests are just slow because they *don't* do a lot, just waiting for things to happen
18:59 yqt joined
lizmat jnthn: re irclog.perlgeek.de/perl6/2015-09-25#i_11275510 about the slow fudger making things slower 19:02
afaik I only changed the *order* in which test files are being executed 19:03
I did not change anything related to batching at all
in fact, in t/harness there is no batching at all (in the end) 19:04
$tap_harness_class->new( \%harness_options )->runtests(@tfiles);
so I'm surprised 19:05
if it really does slow down things on windows, I could make the slow fudger work only if --slow is specified
and have the makefile not specify that on Win ?
moritz R* uploaded, tag pushed, blog post published 19:09
will do the mailing lists soonish
if somebody could update the wikipedia pages, that would be awesome 19:10
lizmat moritz++
19:10 quester-temp joined
quester-temp m: say < a b c d e >.grep( / <[bd]> / ); 19:11
camelia rakudo-moar 863a2a: OUTPUT«(b d)␤»
quester-temp m: say < a b c d e >.grep( m{ <[bd]> } ); 19:12
camelia rakudo-moar 863a2a: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/ipaMoijBFX:1␤␤»
lizmat m: m/a/ 19:13
camelia rakudo-moar 863a2a: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/QQevzKtSUq:1␤␤»
quester-temp say < a b c d e >.grep( { $^x ~~ m{ <[bd]> } } 19:14
m: say < a b c d e >.grep( { $^x ~~ m{ <[bd]> } }; 19:15
camelia rakudo-moar 863a2a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ReFKNXj8b6␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/ReFKNXj8b6:1␤------> 3 b c d e >.grep( { $^x ~~ m{ <[bd]> } };7⏏5<EOL>␤ expecting any of:␤ argu…»
quester-temp m: say < a b c d e >.grep( { $^x ~~ m{ <[bd]> } } );
camelia rakudo-moar 863a2a: OUTPUT«(b d)␤»
19:18 _mg_ joined
dalek kudo/nom: de8b431 | lizmat++ | t/harness:
Make the slow fudger optional: --slow
19:18
19:20 _mg_ left
quester-temp m: say < a b c d e >.grep( re{ <[bd]> } ); 19:22
camelia rakudo-moar 863a2a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/PYEFRCI5ON␤Undeclared routine:␤ re used at line 1␤␤»
quester-temp m: say < a b c d e >.grep( rx{ <[bd]> } );
camelia rakudo-moar 863a2a: OUTPUT«(b d)␤»
19:22 Goblin_ joined
dalek kudo/nom: 5f5cfcf | lizmat++ | Configure.pl:
Factor out Win check into variable
19:23
19:30 araujo_ left
kjk is it possible to get documentation on a method at runtime? 19:30
19:30 araujo joined
tadzik yes 19:31
a bit tricky though
19:31 Goblin_ left
tadzik m: gist.github.com/tadzik/adaded60411f1768aef7 19:32
camelia rakudo-moar 863a2a: OUTPUT«foo bar baz dupa␤»
tadzik kjk: &^
[0] is actually unnecessary 19:33
FROGGS m: class Foo { method bar { } #= baz␤}; say Foo.^find_method('bar')[0].WHY 19:34
camelia rakudo-moar 863a2a: OUTPUT«(Any)␤»
FROGGS m: class Foo { #|flubber␤method bar { } #= baz␤}; say Foo.^find_method('bar')[0].WHY
camelia rakudo-moar 863a2a: OUTPUT«baz␤»
FROGGS that smells like a bug
lizmat I find it hard to believe that we actually need something like ^find_method
hoelzro ruh roh
when did *that* stop working? 19:35
and WHY didn't the S26 tests pick that up?
kjk ic, thanks tadzik! looks like many methods on built-in types still have no docs on them? Str.^find_method('chomp').WHY.say
tadzik kjk: yeah, the built-in things are not documented in the code :(
hoelzro kjk: none of the builtins do, unfortunately =/
moritz that's what p6/doc is for 19:36
hoelzro I have a side project in mind that takes the docs from perl6/doc and injects them into the WHYs, but ENOTENOUGHTIME
tony-o lizmat: lmk, i'll work on CUR because right now it's pretty well broken
lizmat hoelzro: inject? why not go out to fetch the docs when .WHY is called?
kjk ic, I'm just looking for a way to get the docs while I explore objects and methods in a repl
tadzik . o O ( use docs; ) 19:37
hoelzro lizmat: I don't see why not; injecting them would just be easier =)
s/easier/less work/
I think we were musing about documentation sources when I added S26 support
lizmat yeah, but that would increase memory requirements for the runtime ?
hoelzro yes
I was thinking you'd have to ask for them at Configure.pl time 19:38
lizmat I mean, if we have the docs sitting on disk, we could go out to them the moment .WHY is called ?
it would only need filename and possible seek position/length ?
hoelzro it feels like CompUnitRepos could manage that
lizmat tony-o: let's make sure we're not doing double work on CUR... 19:39
hoelzro when you install a module, the installer could extract the docs and put them somewhere nice
lizmat that's one approach, indeed
or if the source is still available, (which I think it should be) 19:40
hoelzro oh, duh
nice idea, lizmat =)
lizmat it could go out to the source and *then* extract
could anyone with enough Configure.pl / Makefile foo add --slow as a parameter to M_HARNESS_WITH_FUDGE when not on Windows ? 19:41
I've been looking at the code, but got lost 19:42
tony-o lizmat: well, i'd like to just get it fixed sooner rather than later. right now CURLF is most likely broken but it's the only thing that works to load modules. i have modules that i haven't been able to load or test for a few weeks now because CURLI is broken
lizmat and it seems to me that this would be a piece of cake for someone
moritz lizmat: what does --slow do?
lizmat it spreads out the tests marked slow equally over the test run
it brings down spectest time for me from 215 to 207 wallclock 19:43
tony-o or if we could at least revert whatever the commit was that broke it
lizmat tony-o: CURLI will remain broken until we got all precomp / installation issues solved 19:44
moritz lizmat: my solution would be to default $slow to 1 in t/harness on non-windows
lizmat that would work for me as well
19:45 FROGGS[mobile] left
moritz lizmat: perlpunks.de/paste/show/5605a45c.5c35.d6 19:45
I need to compile my rakudo before I can test it :-)
19:46 zoosha left 19:47 zoosha joined
lizmat I have a slightly different patch 19:48
jdv79 lizmat: i was 1/2 kidding around
dalek kudo/nom: 65129cf | lizmat++ | t/harness:
Make --slow default to true on non Win
19:49
jdv79 but if randoming spread out the slow offenders and added depedancy breaking yay:)
serm you found not though 19:50
*seems
lizmat no, it made things worse
leont should try a conversion of t/harness to p6 one of these days, and see how far it manages to get
lizmat leont: looks pretty doable to me 19:51
leont I think so too
jnthn lizmat: The batching isn't anything in t/harness, it's just the way parallel testing works on Windows for...some reason
jdv79 curious
lizmat jnthn: yeah, got that later....
jnthn k :)
lizmat it's not spreading out on Win anymore 19:52
leont It's just that parallel testing has been tricky so far (no idea if that's fixed by now)
jnthn lizmat++ # thanks!
tony-o you're really going to deny a PR that fixes something spec'd?
jnthn tony-o: Which PR is in question here?
jnthn can look at it
tony-o i want to fix CURLI so i can continue developing and testing modules for perl6.
lizmat tony-o: which PR ? 19:53
tony-o i will submit a PR to fix it once i know it's worth doing
jdv79 curl* is shrouded in mystery
lizmat please don't assume malice is intended, just laziness and probably stupidity from my end
tony-o i haven't worked on it yet because i'm not sure if CURLF or CURLI is out of spec
lizmat as the person having written most of the spec, I'm not sure atm either
tony-o so would it be okay if i just get CURLI working and submit a PR for that? should i put the PR on a certain branch? 19:54
lizmat tony-o: that's why I said I'm looking into it (yes, I know, I got sidetracked earlier this week)
nine tony-o: I guess you wouldn't have to spend much time to become one of the top 3 experts in that area...
jdv79 would like to see curl* more fleshed out 19:55
tony-o nine: i have some ideas about how to implement but i can't seem to keep the discussion going (maybe that's why ^^)
lizmat tony-o: "just get CURLI working" is something that I think we *don't* want at this point
jnthn lizmat: Why not, ooc?
lizmat there are serious flaws in the way CURLI currently has been implemented
tony-o jnthn: more to refactor is my guess,
jnthn lizmat: Sometimes making the thing work at all is a prereq for knowing how to refactor it, though :) 19:56
lizmat very true
jnthn Not to mention it might let us write tests that the refactor should also pass.
lizmat also true 19:57
tony-o honestly i think CURLF is the one that is borken, i think returning an array for 'candidates' is more ideal than returning a single CU
jnthn I guess that's assuming the thing needing refactoring is the implementation, not the API...
lizmat but like we don't want anything in 6mas Perl 6 that will cause trouble in the future
19:57 rindolf left
tony-o what are the flaws that are in CURL lizmat ? 19:57
lizmat we don't want to start installing moduled in such a way now that will cause a lot of (remote) problems in the future either
nine tony-o: but who is going to decide which of the candidates to pick? Isn't that CURLF's job? 19:58
tony-o i don't mind refactoring a large portion of all of it..
lizmat maybe I should write a blog post about this
tony-o nine: i'd argue that the CUR's job is to provide information about what is available and the module loader to pick one if there are many
jdv79 curl may need more vision and less vaguery 19:59
lizmat what are the prerequisites of a CUR:
jnthn lizmat: That could help
jdv79 lizmat++ # on the grttin the convo started 20:00
jnthn senses this is an area he needs to look at somewhat
jdv79 *gettin
lizmat well, in a way it's the elephant in the room that nobody wanted to talk about
jnthn It's also kinda the elephant that I hoped I could delegate :P
lizmat now that the other elephants have left the room (NFG, NSA and GLR)
jnthn: yes, you will 20:01
jnthn lizmat: Well, I want to follow the discussion well enough to understand what's going on :)
lizmat after having been on the road for ~ 8 weeks and not having had much quality programming time
jnthn Doesn't mean I want to write the code. Especially as tony-o++ also seems interesting in hacking on it :)
timotimo we can probably turn "parallelized hypers and junctions" to +/- on the features matrix by now, right?
FROGGS lizmat: why do you think nobody wants to talk about CURs?
lizmat I'm finally getting into the flow again :-)
FROGGS lizmat: I mean, we brought in a better shape just lately, in order to improve it 20:02
lizmat FROGGS: *you* did that :-)
and I'm trying to muster up the courage to start working on it again
20:02 pierrot joined
FROGGS I can also look into it again 20:02
lizmat FROGGS: wrt to nobody talking about it: it's more nobody wants to make decisions about it 20:03
20:03 pierrot is now known as Guest84393
FROGGS that discussion about how broken it is makes me feel that I don't even know it 20:03
jdv79 what are the blockers?
20:03 Guest84393 left
FROGGS jdv79: I just know one: slowness 20:03
lizmat as far as I understand now, TimToady doesn't really care about how it happens
FROGGS if you install 200+ modules, your startup time grows to at least 5s
tony-o yea i'm more than happy to fix it or even come up with what it should look like, i just need to know where i should start
jdv79 lizmat: sounds like you are it then:) 20:04
tony-o if it's a total design/write, i can do that too
lizmat ok, let me try to outline the design I have in mind in a gist
give me an hour or so to write that down, ok 20:05
20:05 pierrot_ joined
jdv79 woohoo 20:05
FROGGS tony-o: that is certainly not needed
tony-o roger that
lizmat
.oO( should have done that a long time ago, but I guess some things need to ripen)
jnthn can put on this pumpkin-shaped hat if any decisions need his input to make :)
lizmat jnthn: that would be cool 20:06
20:06 quester-temp left
lizmat meanwhile, having run some spectests in a row: it appears I got a few random flappers / hangers 20:06
jnthn hopes lizmat, FROGGS, and tony-o will find a way to collaborate on getitng us something nice. :)
lizmat thinks that's entirely possble! :-)
20:06 pierrot_ is now known as pierrot
jnthn lizmat: What're you seeing? 20:06
FROGGS tony-o: IMO there are a few things to solve: 1) give CULF and install method 2) make it precomp 3) fix the slowdown (which is the problem what I probably know best atm) 20:07
lizmat repeatable;
$ perl6 t/spec/S28-named-variables/slangs.t
1..6
Cannot make a Block object using .new
FROGGS though, I need jnthntime for #3
20:07 TEttinger joined
lizmat $ perl6 t/spec/S06-signature/defaults.t 20:07
===SORRY!=== Error while compiling t/spec/S06-signature/defaults.t
Type 'Hash' is not declared
jnthn I...what?! 20:08
lizmat t/spec/S17-supply/syntax.t hung
jnthn Sounds like the compiler is doing Hash :P
FROGGS weird compiler is weird
jnthn lizmat: Odd, defaults.t works fine here 20:09
Lemme pull latest
I get the slangs.t one
lizmat: You did re-configure recently, yes? 20:10
lizmat yup
recompiled moar and nqp
jnthn OK, odd
lizmat I will nuke install and start from scratch to make sure 20:11
jnthn m: $~MAIN 20:13
camelia rakudo-moar 5f5cfc: OUTPUT«Cannot make a Block object using .new␤ in block <unit> at /tmp/J2rQZIHdBU:1␤␤»
jnthn There's a golf...
FROGGS m: $~TDI 20:14
camelia rakudo-moar 5f5cfc: OUTPUT«Cannot make a Block object using .new␤ in block <unit> at /tmp/aR65qPwoI9:1␤␤»
FROGGS now it's a golf TDI
tony-o i have a golf wagen tdi 20:15
on the recall list
jnthn m: Slang.new 20:16
camelia rakudo-moar 5f5cfc: OUTPUT«Cannot make a Block object using .new␤ in block <unit> at /tmp/VFQ3rXaRf2:1␤␤»
20:16 diana_olhovik joined
jnthn What on earth... 20:17
FROGGS I have no car, so I've got other problems :o)
RabidGravy broked
jdv79 hmm? 20:19
jnthn Will look more tomorrow...getting sleep now 20:22
'night
tony-o FROGGS: bike? i have a lot more of those than cars. i'm happy vw gave the epa the finger, though.
20:23 _dolmen_ joined
masak wow, we've had Slang since Nov 2013... 20:23
FROGGS tony-o: I've got no car anymore since I'm living about 1000m from $work 20:24
tony-o: everything is nearby, and I enjoy my bike more atm :o)
20:24 diana_olhovik left
hoelzro this has probably been brought up already, but a cursory log search didn't find anything - did spectest get a lot slower recently? 20:26
20:26 xfix left
lizmat hoelzro: there's more tests... and settings compiling has gone up from 35 to 40 seconds for me 20:27
20:27 darutoko left
lizmat but I'm not sure that's because parsing got slower, or there's more to parse now 20:27
hoelzro hmm
lizmat feels to me that all of the anonymous classes for Iterator could cause a compiling slowdown in settings 20:28
20:28 khw left
lizmat much more to look up / compose / resolve at compile time now 20:28
nine lizmat: my feeling is that parsing got slower as code was added
Also it's not that much slower
lizmat 35 -> 40 is ~ 15% 20:29
hoelzro make spectest has been running for an hour on my machine =/
nine .tell jnthn the Slang.new failure started appearing in the range 94bc1a9..65129cf
yoleaux nine: I'll pass your message to jnthn.
hoelzro I haven't seen that since parrot times
lizmat hoelzro: then something is hanging
FROGGS hoelzro: so it hangs, no?
hoelzro well, I just killed the socket async test
I don't know how long that was hanging
lizmat do a ps, grep on moar and kill all the higher numbered processes :-) 20:30
nine I thought we could just do ctrl+c now?
hoelzro the test speed seems to be ok now
lizmat or press CONTROL-C now ?
hoelzro oh, you can? great!
I always hated doing that by mistake and killing the whole run
nine I seem to remember a commit about that yesterday
hoelzro yay 20:31
hoelzro has not been as involved as he would like since the SPW
lizmat yeah, ShimmerFairy ++
hoelzro ShimmerFairy++
bad combination of MGS5 + Stein's Gate + Japan prep
20:34 mr_ron left 20:36 pat_js left
jdv79 the build and testing timing concerns remind me of $ex-work's 1/2 test syite time and our, mostly failing, attempts at "fixing" that. 20:41
*1/2 hour
lizmat well, I guess with less than 4 minutes, we're not doing to bad then ? 20:42
jdv79 ha
lizmat ( 207 seconds with TEST_JOBS=10 on my machine)
jdv79 its only a matter of time:) 20:43
FROGGS though I dont see why we add complexity there for a 8s speedup (if I remembered it correctly) 20:44
lizmat it's more about fans not switching off :-)
and the complexity is not during the running of the test... just a little bit before starting testing 20:45
nine .tell jnthn or...not. When I checkout 94bc1a9 and rebuild nqp/Moar I still get "Method 'new' not found for invocant of class '$?CLASS'". But with rakudo from this afternoon it worked.
yoleaux nine: I'll pass your message to jnthn.
lizmat nine: feels more like a Moar change issue? 20:46
FROGGS lizmat: yes, I understand it is just about preparing the test files beforehand
nine lizmat: that'd be my guess. That's why I'm so surprised by getting an error with an older nqp/Moar
lizmat ah... ok :-) I thought you just reverted rakudo, not nqp / moar as well 20:47
jdv79 at least its only complexity and not complication
RabidGravy man at my previous work the tests took two and a half hours
jdv79 ew
testing hard fail
lizmat fwiw, I run spectests many times a day... typically before any commit that I do 20:48
FROGGS same here
RabidGravy well 90% coverage over 250,000 lines of code with database build and tear down, quite quick really ;-)
20:48 dnmfarrell left
FROGGS gnight #perl6 20:51
20:51 FROGGS left
[Coke] nite 20:52
jdv79 RabidGravy: i can sympathize though. its a real problem.
[Coke]: cya 20:53
oh, nm
20:57 espadrine joined
[Coke] ;) 20:58
I'm about to commute, though, so I'll take it.
lizmat work on CURLI description so far: gist.github.com/lizmat/f3807956c354c14902a3 21:07
comments welcome
21:10 skids left
hoelzro wipes some sweat from his brow 21:10
.tell FROGGS that S26 example you posted that looked buggy is fine; you need a whitespace between '#|' and your comment 21:11
yoleaux hoelzro: I'll pass your message to FROGGS.
lizmat *phew* :)
hoelzro which almost makes me think that '#|my comment' should warn the user or something
lizmat: I always have a small panic when S26 stuff is broken =)
lizmat Know the feeling, but for other S-es :-) 21:12
hoelzro hehe
21:21 _dolmen_ left 21:25 adu left 21:26 kjk left 21:30 tokuhiro_ joined 21:35 tokuhiro_ left, uberbaud joined 21:40 cognominal left 21:42 uberbaud left
lizmat jnthn: how would you call the ID by which rakudo recognizes "its" precomped files ? 21:45
21:45 uberbaud joined 21:49 mullagainn left, araujo_ joined 21:52 araujo left
lizmat updated gist.github.com/lizmat/f3807956c354c14902a3 21:55
tony-o: any comments so far? ^^^ 21:56
21:57 pmurias left
ShimmerFairy hoelzro: I ran into IO::Socket::Async 's test hanging yesterday (and didn't notice until the very end), so I added the trap => 1 option to the harness so ^C still prints a summary for however much happened :) 21:59
22:06 uberbaud left 22:07 uberbaud joined 22:13 sufrostico left 22:14 uberbaud left 22:19 uberbaud joined 22:25 skids joined 22:32 ponbiki left
dalek ecs: 4b6d27a | TimToady++ | S0 (2 files):
Start documenting one-arg slurpies
22:35
lizmat final update of CURLI writeup for today: gist.github.com/lizmat/f3807956c354c14902a3 22:39
timotimo o/ 22:40
ShimmerFairy TimToady: yesterday I found that constant &bar = &foo is enough to create a 'synonym' like I've talked about before (including defining multis on either and having them available to both). Would constant &infix:<(elem)> = &infix:<∈> be sufficient for that sort of thing, or are there reasons to want a separate 'synonym' concept?
lizmat .tell tony-o please read gist.github.com/lizmat/f3807956c354c14902a3 for first stab at CURLI revival
yoleaux lizmat: I'll pass your message to tony-o.
lizmat .tell FROGGS please read gist.github.com/lizmat/f3807956c354c14902a3 for first stab at CURLI revival
yoleaux lizmat: I'll pass your message to FROGGS.
lizmat .tell jnthn please read gist.github.com/lizmat/f3807956c354c14902a3 for first stab at CURLI revival
yoleaux lizmat: I'll pass your message to jnthn.
22:41 ponbiki joined
ShimmerFairy lizmat: "S11 / S22 describe an API" immediately makes me think there should be an S32::CUR doc or something :) 22:42
22:42 ponbiki is now known as Guest40225
lizmat perhaps this gist is a start of that :-) 22:42
22:42 BenGoldberg joined
dalek kudo-star-daily: 8b22370 | coke++ | log/ (9 files):
today (automated commit)
22:44
rl6-roast-data: bf53de7 | coke++ | / (9 files):
today (automated commit)
22:46 kanishka joined
lizmat good night, #perl6! 22:46
ShimmerFairy lizmat o/
BenGoldberg Hellow and good evening.
dalek kudo/nom: de8024d | TimToady++ | src/ (3 files):
implement definite return of values
22:51
ast: 815bd50 | TimToady++ | S (2 files):
definite return of values implemented
22:53 sufrostico joined 22:59 dnmfarrell joined
dnmfarrell *is not a robot* 23:00
tony-o .tell lizmat does this mean that i'm open to putting whatever i want in a CURLI manifest file? how does CURLF store information about multiple modules with :auth and :ver? how do i handle *not* being able to write to a precomp directory, is that a total failure for installing the module? this doesn't seem to imply that a CURLF and CURLI should have the same interface, does the loader behave differently depending on which on 23:09
yoleaux tony-o: I'll pass your message to lizmat.
22:40Z <lizmat> tony-o: please read gist.github.com/lizmat/f3807956c354c14902a3 for first stab at CURLI revival
tony-o i should maybe gist that
ShimmerFairy tony-o: as I understand it, CURLF should be seen as really just for things like perl6 -Ilib testing_my_module.p6 23:10
.tell lizmat left a comment on your gist, hope it helps! :) 23:11
yoleaux ShimmerFairy: I'll pass your message to lizmat.
tony-o ShimmerFairy: i'm not into guessing, i want to fix CURLI. If i need to fix CURLF too then i will. I've been digging around in CURL{I|F} and asking a lot of questions about it for more than a year and a project i was working on is now dead until CURLI is fixed. I'm willing to contribute to fix the issue but we're under the consensus that CURLs need to change and we're trying to hammer out how. CURLF is useful on a bigger sc 23:15
ShimmerFairy tony-o: well, lizmat++'s gist pretty much says that CURLF doesn't do the auth/ver stuff, and that it's more for development purposes. 23:16
23:17 mr_ron joined
tony-o it really doesn't say that but thank you for your opinion. 23:19
explicitly not addressing something doesn't mean the opposite is true.
23:21 mattprelude joined, spider-mario left
ShimmerFairy tony-o: have you not read this section? gist.github.com/lizmat/f3807956c35...le1-txt-L9 23:21
> It is basically just a frontend to the module loader that supports Perl 5 like module loading semantics (aka, without any from / auth / version support) 23:22
> A CURLF is intended for a development situation, *not* for a production environment
tony-o i have. it's dumb to knee cap ourselves out of the gate.
ShimmerFairy What I've said is how I've interpreted that section, particularly what I quoted :) 23:23
tony-o worse is the pandering
ShimmerFairy tony-o: well, you may disagree with the current definition of CURLF, but then why did you claim the gist wasn't saying what it is?
dalek ast: 383e161 | TimToady++ | S06-signature/definite-return.t:
unfudge, more tests for definite return
23:24
ShimmerFairy (are we just interpreting that section differently?) 23:25
tony-o did you read the response full SF? i replied to lizmat's gist with the full thing spelled out.
fully^
23:26 CurtisOvidPoe left
ShimmerFairy tony-o: your messages got cutoff, both when you did .tell lizmat and when you started with "i'm not into guessing, i want to fix CURLI..." 23:27
so I'm not sure I got to see everything you said :( 23:28
tony-o gotcha, i went back and read it and understood
23:28 sufrostico left
ShimmerFairy tony-o: for the record, I do think CURLFs would be slightly more useful if they understood the provides section in META6.info, just so you don't have to set up the old filesystem-based layout for testing via -Ilib and such :) 23:29
23:30 Guest40225 is now known as ponbiki 23:31 adu joined, tokuhiro_ joined
dalek ast: 7eb5190 | TimToady++ | S06-signature/definite-return.t:
test definite return of booleans, named constnts
23:31
TimToady m: sub foo(--> pi) {}; say foo 23:32
camelia rakudo-moar de8024: OUTPUT«3.14159265358979␤»
ShimmerFairy TimToady: this is unrelated to --> Foo:D , right? (or does it mean 'definite' in that way too?)
TimToady no, Foo:D is not definite 23:33
it's just a test of it
ShimmerFairy Yeah, I figured you didn't mean .DEFINITE too, just wanted to make sure :)
TimToady m: sub foo(--> pi) { return 3 }; say foo
camelia rakudo-moar de8024: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dKR9wGCGjz␤No return arguments allowed when return value 3.14159265358979e0 is already specified in the signature␤at /tmp/dKR9wGCGjz:1␤------> 3sub foo(--> pi) { return 3 7⏏5}; say foo␤»
TimToady it is that meaning of definite 23:34
m: say Int:D.DEFINITE
camelia rakudo-moar de8024: OUTPUT«False␤»
TimToady though actually it's using nqp::isconcrete internally
ShimmerFairy oh, derp. I'm confusing the smileys for what they ask for it seems :)
m: sub foo (--> Int:D) { Int }; say foo # this is still NYI then, just to provide a clear example of what I'm saying 23:35
camelia rakudo-moar de8024: OUTPUT«(Int)␤»
23:35 tokuhiro_ left
TimToady yeah, looks like :D isn't checked there 23:36
ShimmerFairy (And of course Int:U too)
TimToady m: -> --> 42 {}().say 23:38
camelia rakudo-moar de8024: OUTPUT«42␤»
TimToady could use a bunch more tests there, we don't test lambdas or methods yet
m: class Foo { method foo(--> 42) {}}; Foo.new.foo.say 23:39
camelia rakudo-moar de8024: OUTPUT«42␤»
TimToady whew!
m: say grep -> $x --> False { say $x }, 1..10 23:41
camelia rakudo-moar de8024: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤()␤»
ShimmerFairy TimToady: what's the rationale for definite return? It seems pretty silly for these "glorified constant" examples, but I'm assuming something like sub do-foo-for-sure(--> True) { ... } (where the hypothetical base do-foo returns a Bool indicating if it actually did something)?
TimToady it's part of the contract
m: sub foo(--> pi) { return 3 }; say &foo.signature 23:42
camelia rakudo-moar de8024: OUTPUT«5===SORRY!5=== Error while compiling /tmp/vODWXr0epr␤No return arguments allowed when return value 3.14159265358979e0 is already specified in the signature␤at /tmp/vODWXr0epr:1␤------> 3sub foo(--> pi) { return 3 7⏏5}; say &foo.signature␤»
TimToady m: sub foo(--> pi) { return}; say &foo.signature
camelia rakudo-moar de8024: OUTPUT«( --> 3.14159265358979e0)␤»
TimToady from the standpoint of multiple dispatch and binding, putting the return into the signature makes little sense, but from a dataflow contract perspective, it's treating the inputs and outputs equally 23:43
ShimmerFairy Sure, I think that's fair :) 23:44
TimToady: looks like you can't do sub foo(--> pi) { return $*INDIANA ?? 3.2 !! Nil } to conditionally break a return in this case, though I'm not sure if you'd ever want that. (I just chose Nil 'cos it seemed like a possible way of saying "return nothing") 23:47
pierrot When a proper book about Perl 6 well be published? 23:48
yoleaux 1 Sep 2015 22:46Z <raiph> pierrot: irclog.perlgeek.de/perl6/2015-09-01#i_11155377 is wrong. One must use a `?` or `!` for an assertion, eg `<?{...}>` is an assertion -- note the `?`. (I was right that `<{...}>` inserts the ... as a subrule.) (A plain `{...}` just tells P6 to do regular code (eg the debugging `say` that I used in irclog.perlgeek.de/perl6/2
TimToady m: sub foo(--> pi) { fail 3 }; .way without foo 23:55
camelia rakudo-moar de8024: OUTPUT«3␤ in sub foo at /tmp/YTQgf3AxjO:1␤ in block <unit> at /tmp/YTQgf3AxjO:1␤␤Actually thrown at:␤ in any at gen/moar/m-Metamodel.nqp:2869␤ in block <unit> at /tmp/YTQgf3AxjO:1␤␤»
TimToady m: sub foo(--> pi) { fail 3 }; .say without foo
camelia rakudo-moar de8024: OUTPUT«3␤ in sub foo at /tmp/sjoKqerDwu:1␤ in block <unit> at /tmp/sjoKqerDwu:1␤␤»
23:55 captain-adequate left
TimToady m: say $~MAIN # this seems like a recent breakage that I don't think is my fault, but maybe it is 23:57
camelia rakudo-moar de8024: OUTPUT«You cannot create an instance of this type␤ in block <unit> at /tmp/m_XjX5Trdt:1␤␤»
dalek kudo/nom: 0024b0a | TimToady++ | src/core/ (6 files):
definite dogfood
23:59