Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-10-03

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 vendethiel joined #perl6
00:01 dalek doc: 9b0f023 | skids++ | lib/Type/Array.pod:
00:01 dalek doc: Correct the slurpies in documented signatures
00:01 dalek doc: review: https://github.com/perl6/doc/commit/9b0f0238fe
00:17 BenGoldberg joined #perl6
00:19 BenGoldberg joined #perl6
00:25 dalek doc: 7fb82bf | (David H. Adler)++ | lib/Type/Array.pod:
00:25 dalek doc: Added usage statements to Array.pod
00:25 dalek doc: review: https://github.com/perl6/doc/commit/7fb82bf499
00:25 dalek doc: b25a49a | (David H. Adler)++ | lib/Type/Array.pod:
00:25 dalek doc: Merge branch 'usage_statements'
00:25 dalek doc: review: https://github.com/perl6/doc/commit/b25a49a108
00:25 dalek doc: 4f0449c | (David H. Adler)++ | lib/Type/Array.pod:
00:25 dalek doc: Merge branch 'master' of https://github.com/perl6/doc
00:25 dalek doc:
00:25 dalek doc: Resolved conflicts between commit
00:25 dalek doc: 9b0f0238fe073a050e1a31970fbd9b07106badb3
00:25 dalek doc: and pull request #141
00:25 dalek doc: review: https://github.com/perl6/doc/commit/4f0449c7ff
00:26 abaugher joined #perl6
00:26 [Coke] dha: IWBNI "unlike perl5" blocks were somehow marked.
00:26 [Coke] (people reading perl 6 docs shouldn't need to care about perl 5 if they don't need to)
00:26 dha IWBNI?
00:27 [Coke] S99:IWBNI
00:27 [Coke] it would be nice if
00:28 dha Ok, marked... how?
00:28 [Coke] with a begin/end block perhaps?
00:28 [Coke] then they could be fomratted differently by default, milder for standard docs, but highlighed if someone wanted.
00:28 [Coke] =begin perl5/ =end perl5
00:29 * [Coke] drops off his precarious wifi. laters.
00:29 ZoffixWork \o
00:31 ShimmerFairy [Coke], dha: it would have to be spelled Perl5, since 'perl5' is reserved :)
00:32 dha . tell skids I had to resolve a conflict with your commit on Array.pod. I think I did it correctly, but take a look to make sure I didn't mess it up.
00:32 ShimmerFairy so  =begin Perl5 ... =end Perl5  (and then theoretically the doc/ repo could have a module that provides the appropriate class to implement Perl5, but I don't know how the current Pod parser handles that)
00:32 dha .tell skids I had to resolve a conflict with your commit on Array.pod. I think I did it correctly, but take a look to make sure I didn't mess it up.
00:32 yoleaux dha: I'll pass your message to skids.
00:33 skids ./
00:33 yoleaux 00:32Z <dha> skids: I had to resolve a conflict with your commit on Array.pod. I think I did it correctly, but take a look to make sure I didn't mess it up.
00:33 skids Sorry I didn't expect you'd keep editing that file.
00:41 pyrimidine joined #perl6
00:41 dalek ecosystem/softmoth-pod-markdown: 0177c7a | (Tim Smith)++ | META.list:
00:41 dalek ecosystem/softmoth-pod-markdown: Take over maintenance of perl6-pod-to-markdown
00:41 dalek ecosystem/softmoth-pod-markdown:
00:41 dalek ecosystem/softmoth-pod-markdown: It appears that jpve is not available to maintain the module at this time, given no response on pull requests for over 3 months. I am willing to maintain the module in the mean time.
00:41 dalek ecosystem/softmoth-pod-markdown: review: https://github.com/perl6/ecosystem/commit/0177c7ae81
00:46 dha joined #perl6
00:46 dha skids -  did I at least not screw things up? :-)
00:46 skids looks fine
00:48 dha whew. thanks.
01:15 dalek doc/usage_statements: 2dd4903 | (David H. Adler)++ | lib/Type/Hash.pod:
01:15 dalek doc/usage_statements: Added usage statements to C<push>
01:15 dalek doc/usage_statements: review: https://github.com/perl6/doc/commit/2dd4903fcf
01:17 dha Hm. There's discussion of the .kv method in Hash.pod. Should it be explicitly mentioned where that comes from so someone seeing it for the first time can find the actual docs?
01:19 ShimmerFairy dha: you could provide a link on the first mention or so of .kv
01:19 dalek ecosystem: 0177c7a | (Tim Smith)++ | META.list:
01:19 dalek ecosystem: Take over maintenance of perl6-pod-to-markdown
01:19 dalek ecosystem:
01:19 dalek ecosystem: It appears that jpve is not available to maintain the module at this time, given no response on pull requests for over 3 months. I am willing to maintain the module in the mean time.
01:19 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/0177c7ae81
01:19 dalek ecosystem: e1162fa | (Zoffix Znet)++ | META.list:
01:19 dalek ecosystem: Merge pull request #64 from perl6/softmoth-pod-markdown
01:19 dalek ecosystem:
01:19 dalek ecosystem: Take over maintenance of perl6-pod-to-markdown
01:19 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/e1162fa90e
01:20 ShimmerFairy dha: although Hash.kv does exist, so perhaps that method should be doc'd :)
01:21 dha ShimmerFairy -  the first is what I was thinking, but if Hash has its own .kv, yes, that probably should be documented.
01:36 dha is-prime has an optional $tries argument. Can I assume that in method form, it can be used as C<$int.is-prime($tries)> or C<$int.is-prime: $tries> ?
01:36 dha And, of course, I assume C<is-prime $int, $tries>
01:41 skids I think it was just removed?  Don't know why.
01:41 skids m: 3.is-prime(:tries(400)).say
01:41 camelia rakudo-moar 61d1f9: OUTPUT«True␤»
01:42 skids or something went on with it in commit  59cb611af9
01:45 dha It certainly doesn't spit at you.
01:47 skids m: is-prime(3, :tries(400))
01:47 camelia rakudo-moar 61d1f9: OUTPUT«WARNINGS:␤Useless use of "is-prime(3, :tries(400))" in expression "is-prime(3, :tries(400))" in sink context (line 1)␤Unexpected named parameter 'tries' passed␤  in block <unit> at /tmp/oGObJVJ67w:1␤␤»
01:47 skids Because methods are tolerant, but subs are not, so the above.
01:50 dha Ah, there it is. Shall I take it out of the docs, then?
01:51 pyrimidi_ joined #perl6
01:53 dalek doc/usage_statements: 3bed9cc | (David H. Adler)++ | lib/Type/Int.pod:
01:53 dalek doc/usage_statements: Added usage statements for C<chr>, C<expmod>, and C<is-prime>
01:53 dalek doc/usage_statements: review: https://github.com/perl6/doc/commit/3bed9cc87c
01:57 skids dha: Yes I looked at the conversation and it amounts to "we're taking it out until someone asks for it and if we put it back in it will be either a named or a different function"
01:58 dha ok. Will remove from signature and doc.
02:00 dha done.
02:00 dalek doc: 47e2521 | (David H. Adler)++ | lib/Type/Int.pod:
02:00 dalek doc: Removed $tries from signature and docs of is-prime to bring docs in line
02:00 dalek doc: with rakudo commit 59cb611af9
02:00 dalek doc: review: https://github.com/perl6/doc/commit/47e2521ca1
02:05 aborazmeh joined #perl6
02:05 aborazmeh joined #perl6
02:05 dalek doc/usage_statements: 2d7c132 | (David H. Adler)++ | lib/Type/Int.pod:
02:05 dalek doc/usage_statements: Added usage statements for C<lsb>, C<msb>, and C<unival>
02:05 dalek doc/usage_statements: review: https://github.com/perl6/doc/commit/2d7c132658
02:12 ShimmerFairy Apparently, trying to subclass Grammar and replacing some of its various "!..." methods (since I need to add something that needs to be shared between cursors, like $!shared) gets me an unhelpful "Unknown QAST node type NQPMu" error :P
02:15 ShimmerFairy The problem with it is that --ll-exception is useless in telling me what I did wrong, and I can't even so much as get --target=parse output
02:17 dalek doc/usage_statements: cac4619 | (David H. Adler)++ | lib/Type/Pair.pod:
02:17 dalek doc/usage_statements: Added usage statements for C<antipair>, C<value>, C<cmp>, C<fmt>, C<kv>,
02:17 dalek doc/usage_statements: and C<pairs>
02:17 dalek doc/usage_statements: review: https://github.com/perl6/doc/commit/cac461954f
02:21 ShimmerFairy The 'easiest' solution I can see for now is to basically reimplement src/QRegex/Cursor.nqp, but in a pure-P6 way :/ . Seems suboptimal, but should at least be interesting.
02:23 raiph joined #perl6
02:28 dalek doc/usage_statements: 9b0f023 | skids++ | lib/Type/Array.pod:
02:28 dalek doc/usage_statements: Correct the slurpies in documented signatures
02:28 dalek doc/usage_statements: review: https://github.com/perl6/doc/commit/9b0f0238fe
02:28 dalek doc/usage_statements: b25a49a | (David H. Adler)++ | lib/Type/Array.pod:
02:28 dalek doc/usage_statements: Merge branch 'usage_statements'
02:28 dalek doc/usage_statements: review: https://github.com/perl6/doc/commit/b25a49a108
02:28 dalek doc/usage_statements: 4f0449c | (David H. Adler)++ | lib/Type/Array.pod:
02:28 dalek doc/usage_statements: Merge branch 'master' of https://github.com/perl6/doc
02:28 dalek doc/usage_statements:
02:28 dalek doc/usage_statements: Resolved conflicts between commit
02:28 dalek doc/usage_statements: 9b0f0238fe073a050e1a31970fbd9b07106badb3
02:28 dalek doc/usage_statements: and pull request #141
02:28 dalek doc/usage_statements: review: https://github.com/perl6/doc/commit/4f0449c7ff
02:28 dalek doc/usage_statements: 9cbd4ec | (David H. Adler)++ | lib/Type/Array.pod:
02:28 dalek doc/usage_statements: Bring Array.pod in line with commit
02:28 dalek doc/usage_statements: 9b0f0238fe073a050e1a31970fbd9b07106badb3
02:28 dalek doc/usage_statements: review: https://github.com/perl6/doc/commit/9cbd4ec147
02:28 dalek doc/usage_statements: aeab89d | (David H. Adler)++ | /:
02:28 dalek doc/usage_statements: Merge branch 'master' into usage_statements
02:28 dalek doc/usage_statements: review: https://github.com/perl6/doc/commit/aeab89d8cd
02:30 ShimmerFairy (btw, the easier alternative to subclassing cursors and whatnot would be to force module users to declare particular dynamic variables, but that doesn't really seem cool.)
02:32 skids Yeah I was working on something the other day tat had me in the same trace-limbo situation.
02:32 dalek doc: 2dd4903 | (David H. Adler)++ | lib/Type/Hash.pod:
02:32 dalek doc: Added usage statements to C<push>
02:32 dalek doc: review: https://github.com/perl6/doc/commit/2dd4903fcf
02:32 dalek doc: 3bed9cc | (David H. Adler)++ | lib/Type/Int.pod:
02:32 dalek doc: Added usage statements for C<chr>, C<expmod>, and C<is-prime>
02:32 dalek joined #perl6
02:32 noganex joined #perl6
02:33 skids (At least if you die in P6 code, you usually can figure out what died due to the error message about not being able to make the error message saying what type of exception it was trying to make)
02:33 laouji joined #perl6
02:34 geekosaur joined #perl6
02:37 ShimmerFairy skids: sometimes I wonder how NQP would benefit if it was developed a bit more like a real language, instead of just being a stepping stone. Things I've run into frequently include NQP-level errors (though this one is a first for being unhelpful), and NQP objects not having .gist and such.
02:37 araujo__ joined #perl6
02:40 skids Might end up being slower, though.
02:40 ShimmerFairy skids: sure, it's just the .gist issue in particular that gets annoying.
02:41 ShimmerFairy m: say Cursor.^methods
02:41 camelia rakudo-moar 61d1f9: OUTPUT«Method 'gist' not found for invocant of class 'NQPRoutine'␤  in block <unit> at /tmp/ldygB1ipq2:1␤␤»
02:41 ShimmerFairy for example ^
02:43 skids Yeah.  I wonder if it would be expensive to macroize ".gist" at a P6 level and fix up NQP data structures that way.
02:44 ShimmerFairy There's nothing wrong with NQP exactly, it's just the points where NQP and P6 mix together, and don't do so very well, that's annoying. (Trying to mess with Cursor ends up bringing up this problem, since everything regex-based is rooted firmly in NQP-land)
02:48 tokuhiro_ joined #perl6
02:52 vendethiel- joined #perl6
02:53 * skids wanted to use a vaguely fp sounding term for a meta behavior, decided he'd better look it up to see if it was an appropriate use, and got totally lost in wikipedia fp pages which may as well have been written in iambic pentameter by The Riddler.
03:00 dha Hm. Arrays seem to have min and max methods that are not documented. Unless it inherits it from somewhere.
03:04 skids dha: design docs say they come from List.  Codewise, after GLR, they are really from Iterable.
03:05 dha They're not documented in List either.
03:05 dha But I'll look at Iterable
03:05 skids S32-setting-library/Containers.pod
03:06 dha Nope. not documented in Itreable either. Hm...
03:07 lichtkind good night
03:11 dha In fact, the only min and max documentation is in Range and Supply.
03:12 skids (well codewise we cheated and they are from "Any" via an augment rather than Iterable, and Any makes any non-Iterable object into a 1-list but doe not compose Iterable)
03:13 dha Yeah, not documented there either. :-)
03:14 dha If we ever get to the end of this class rabbit hole, we should probably document it. :-)
03:15 ShimmerFairy I think one of the biggest problems with rakudo's roles is that they're for the most part just empty roles that are effectively glorified annotations.
03:15 skids You mean most of the MetaModel things?
03:16 ShimmerFairy (And I imagine that's at least in part because you can't stub multi methods in a role to require their implementation)
03:16 ShimmerFairy skids: not Metamodel, the src/core roles. Positional, Stringy, etc.
03:17 mr_ron joined #perl6
03:18 ShimmerFairy When it comes to stubbed role methods, the RoleToClassApplier goes by name only (not checking signatures), and ignores multi methods entirely, leaving it to the dispatcher to come up with an ambiguous call error.
03:18 skids Not that there's anything wrong with using them as annotations, but probably more code would filter into them if they worked "better", yes.
03:21 ShimmerFairy skids: of course not, if you just want to use them as a 'tag', then fine. But especially the core roles should be requiring and/or defaulting methods for things doing them.
04:03 maverick87 joined #perl6
04:06 mr_ron joined #perl6
04:12 pyrimidine joined #perl6
04:25 pyrimidi_ joined #perl6
04:26 [Coke] RT: 1041; xmas: 98; testneeded: 9; glr: 4; weird: 12; lta: 87
04:36 pyrimidine joined #perl6
04:49 tokuhiro_ joined #perl6
05:17 mr_ron joined #perl6
05:40 TEttinger joined #perl6
06:00 araujo joined #perl6
06:01 araujo joined #perl6
06:25 Ven joined #perl6
06:28 rurban joined #perl6
06:37 kaare__ joined #perl6
06:43 crux joined #perl6
06:50 FROGGS[tab] joined #perl6
06:51 tokuhiro_ joined #perl6
06:57 RabidGravy joined #perl6
07:00 gfldex m: my constant @fib := 0, 1, *+* ... *; @fib[^10].perl.say;
07:00 camelia rakudo-moar 61d1f9: OUTPUT«(0, 1, 1, 2, 3, 5, 8, 13, 21, 34)␤»
07:01 gfldex .tell AlexDaniel the correct correction is m: my constant @fib := 0, 1, *+* ... *; @fib[^10].perl.say;
07:01 yoleaux gfldex: I'll pass your message to AlexDaniel.
07:06 xfix joined #perl6
07:06 xfix joined #perl6
07:14 gfldex http://design.perl6.org/S02.html#Names_and_Variables seams to be pre-GLRish
07:15 gfldex constant @your-name-here doesn't do Positional but Seq
07:15 gfldex TimToady: you may want to have a look at ^^^
07:18 mr_ron joined #perl6
07:30 Woodi hallo #perl6 :)
07:31 Woodi writing   my $output = run($command, $arg1, $arg2, :out).out.slurp-rest;  is over-terrible replacement for qqx//
07:32 Woodi but removing qqx// is not necesarry
07:33 Woodi .out/.IO parts are realy needed ?
07:34 domidumont joined #perl6
07:34 Ven joined #perl6
07:39 domidumont joined #perl6
07:41 rindolf joined #perl6
07:48 pyrimidi_ joined #perl6
07:51 [ptc] joined #perl6
08:03 vvz joined #perl6
08:03 Woodi as for LINQ: I think it was MS post-SQL-embaded idea and we are quite obligated to do something post-LINQ. So: something to proces one table/array is unnecesary, we needs foreign keys integration; XML have XQuery - not having it in Perl6 LINQ would be mistake; LINQ4hash is bad, LINQ4nestedData is good
08:09 Ven joined #perl6
08:14 dalek rakudo/nom: 18b7f1e | lizmat++ | src/core/List.pm:
08:14 dalek rakudo/nom: Simplify List.pick
08:14 dalek rakudo/nom:
08:14 dalek rakudo/nom: After sleeping on it, I realised that having two different classes
08:14 dalek rakudo/nom: + methods just to prevent a single native int to be incremented
08:14 dalek rakudo/nom: every iteration, is a bit of overkill to get better performance.
08:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/18b7f1eb39
08:22 darutoko joined #perl6
08:39 FROGGS joined #perl6
08:53 tokuhiro_ joined #perl6
08:54 Ven joined #perl6
09:14 paulmr joined #perl6
09:19 mr_ron joined #perl6
09:30 lizmat star: say <a b c>.pick(Inf)
09:30 camelia star-m 2015.03: OUTPUT«b a c␤»
09:30 lizmat *sigh*
09:33 Ven m: say <a b c>.pick(Inf) # that works now?
09:33 camelia rakudo-moar 18b7f1: OUTPUT«Cannot coerce Inf or NaN to an Int␤  in block <unit> at /tmp/mmNsdfSFf1:1␤␤Actually thrown at:␤  in block <unit> at /tmp/mmNsdfSFf1:1␤␤»
09:33 Ven oh..
09:34 philh joined #perl6
09:37 lizmat Ven: it used to work, I broke it
09:37 lizmat but there was no test for it
09:37 Ven oh!
09:37 Ven well, when one commits that much code, something is bound to get a bit broken at some point :-).
09:38 mattprelude joined #perl6
09:39 nine Woodi: as I see it: people hate writing SQL. To be precise, they hate writing select lists and join conditions. The rest really is quite ok, since it's a very readable and even succinct way to specify queries. In Perl 6 this could result in: my $results = from $table join .relation1 left join .relation2 where .foo > 1 and .relation1.bar = 'baz' select *;
09:40 spider-mario joined #perl6
09:40 nine And I really like how we can use Whatever there to mean exactly the same in SQL :)
09:41 cognominal [Coke] what are these numbers?
09:41 cognominal [06:26]  <[Coke]> RT: 1041; xmas: 98; testneeded: 9; glr: 4; weird: 12; lta: 87
09:42 geekosaur bug summary. 1041 open tickets; 98 tagged as needed for release, 9 tagged as fixed but test needed, 4 tagged as GLR-related; 12 tagged as [WEIRD]; 87 tagged as correct behavior but needing better error messages
09:43 geekosaur s/needed for release/release blockers/
09:45 geekosaur ([WEIRD] might be summarized as "That isn't right. That isn't even wrong."
09:45 geekosaur )
09:46 FROGGS o/
09:46 lizmat FROGGS \o
09:50 dalek roast: 94cbbb5 | lizmat++ | S32-list/pick.t:
09:50 dalek roast: Remove 5-year old obsolete test
09:50 dalek roast:
09:50 dalek roast: Was testing for a named parameter whose existence would only still
09:50 dalek roast: be known by *very* few people.
09:50 dalek roast: review: https://github.com/perl6/roast/commit/94cbbb5a58
09:51 dalek roast: 7ce4a38 | lizmat++ | S32-list/pick.t:
09:51 dalek roast: Add test for List.pick(Inf)
09:51 dalek roast: review: https://github.com/perl6/roast/commit/7ce4a38c45
09:51 FROGGS m: my $a = "oh hai"; say $a .= "uc"()
09:51 camelia rakudo-moar 18b7f1: OUTPUT«Method '' not found for invocant of class 'Str'␤  in block <unit> at /tmp/7v4KeURejK:1␤␤»
09:52 dalek rakudo/nom: 880d3c8 | lizmat++ | src/core/List.pm:
09:52 dalek rakudo/nom: Re-add support for List.pick(Inf)
09:52 dalek rakudo/nom:
09:52 dalek rakudo/nom: Apparently, that was supposed to work but did not have a spectest.
09:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/880d3c8faf
09:53 lizmat FROGGS: seems the method name got lost in translation ?
09:54 lizmat star: my $a = "oh hai"; say $a .= "uc"()
09:54 camelia star-m 2015.03: OUTPUT«No such method '' for invocant of type 'Str'␤  in method dispatch:<.=> at src/gen/m-CORE.setting:1370␤  in block <unit> at /tmp/AGzM819C4o:1␤␤»
09:54 rindolf joined #perl6
09:54 lizmat looks like breakage of infix .
09:54 tokuhiro_ joined #perl6
09:54 lizmat (well, at least at the error reporting level :-)
09:55 Ven joined #perl6
09:55 timotimo joined #perl6
09:56 FROGGS lizmat: that's an old RT ticket I tackle now
09:56 lizmat ah, ok  :-)
09:57 lizmat j: <a b c>.Bag.pick(*).say
09:57 FROGGS m: my $a = "oh hai"; say $a.="uc"()
09:57 camelia rakudo-jvm 18b7f1: OUTPUT«(b c a)␤»
09:57 camelia rakudo-moar 18b7f1: OUTPUT«OH HAI␤»
09:57 lizmat j: <a b c>.Bag.pick(2).say
09:57 camelia rakudo-jvm 18b7f1: OUTPUT«(b a)␤»
09:58 FROGGS so it is just a grammar issue, and the old ticket just said that the working case should be disallowed in rakudo because std disagrees
09:58 lizmat m: map { .say; last }, *
09:58 camelia rakudo-moar 18b7f1: OUTPUT«*␤»
09:58 FROGGS but I think std is wrong here
09:58 lizmat I agree with you
09:58 FROGGS (std complains about P5 concat, which is clearly wrong IMO)
09:59 DrForr Just walked outside and to the end of the block.
09:59 lizmat yeah, I think we've reached the point where TimToady is no longer updating std, but directly works on rakudo :-)
09:59 lizmat DrForr++
09:59 lizmat DrForr: and back again, I hope ?
09:59 DrForr Of course.
09:59 FROGGS DrForr: did you trigger a phaser?
10:00 DrForr Damn, I *knew* I forgot something. Give me a few minutes.
10:00 * FROGGS .oO( Just .walk'd to the OUTERS and to the END of the Block )
10:00 FROGGS s/and/&&/
10:01 AlexDaniel joined #perl6
10:01 DrForr Yes, yes, channl theme and all ;)
10:01 FROGGS :o)
10:02 DrForr Going upstairs was decent, downstairs was the hard bit. At least I have a better idea of what to exercise now :)
10:08 AlexDaniel OK gloggle, check my email!
10:08 yoleaux 07:01Z <gfldex> AlexDaniel: the correct correction is m: my constant @fib := 0, 1, *+* ... *; @fib[^10].perl.say;
10:09 revdiablo joined #perl6
10:11 AlexDaniel .tell gfldex I find it a bit messy, but you are probably right. I've changed it as you recommended
10:11 yoleaux AlexDaniel: I'll pass your message to gfldex.
10:16 roguelazer joined #perl6
10:16 diana_olhovik_ joined #perl6
10:16 AlexDaniel Woodi: run() is not a replacement for qqx//, these are different beasts
10:18 AlexDaniel Woodi: if removing qqx// is not necessary, do you know any example when qqx// is easier to use rather than a normal sub call (like suggested “shellout”)?
10:18 AlexDaniel Woodi: in other words, why qqx// is even there?
10:21 domidumont joined #perl6
10:26 ShimmerFairy There are a number of adverbs on Q that call functions on strings (e.g. :v for val(), :w for Str.words, and ISTR a :p relating to paths that's NYI), and I've not heard a convincing argument for why just :x must be removed.
10:26 ShimmerFairy And, as stated before, we have &shell and &run if you'd rather prefer sub calls. (I don't quite get what "shellout" would provide over the existing subs)
10:31 domidumont joined #perl6
10:34 AlexDaniel ShimmerFairy: well, then maybe you have any other idea how to make this easier to type: run($command, $arg1, $arg2, :out).out.slurp-rest
10:35 ShimmerFairy AlexDaniel: ah, that's what it's for, I didn't know. I agree that that's a bit much to type :)
10:35 AlexDaniel ShimmerFairy: or how to change it so that people would first choose “run” over “shell”
10:35 ShimmerFairy .oO(we could start by bringing back .slurp , gosh darn it! :P)
10:35 AlexDaniel I mean, run is already shorter than shell, but not shorter than qqx
10:36 AlexDaniel Currently I'm cloning all perl6 modules to grep for qqx
10:37 AlexDaniel because I'm still not convinced that it provides anything that could make it worth keeping
10:38 ShimmerFairy AlexDaniel: well, looking at S02, there is space for a :r/:run adverb on Q, so you could have qr// and so on for run(). Depends on if others think it could be confused with :r[atchet], I suppose.
10:38 AlexDaniel basically I'm interested in (misuse / "shell" not good enough) rate…
10:39 AlexDaniel but somehow I feel like qqx is mostly used in user code, not in modules…
10:39 AlexDaniel ShimmerFairy: I'm confused, how would it split arguments?
10:40 * AlexDaniel opens up S02
10:41 ShimmerFairy AlexDaniel: Well, I also suggested Q:w:x (or :ww) as a way of doing run() instead of shell(), but that might be too magical for :x (so a hypothetical :r could either imply :w or require a :w or :ww, e.g. qqwwx)
10:42 nine FWIW I think quote word is a very good match for run()
10:43 nine my $output = Q:w:x(perl -e $code);
10:43 ShimmerFairy nine: yeah, that was my idea a bit ago: q:w:x[my args]  <->  run(q:w[my args])
10:43 Ven http://rosettacode.org/wiki/Idiomatically_determine_all_the_characters_that_can_be_used_for_symbols#Perl_6 <- did anyone get bored enough to write a Slang::UnicodeWhitespace yet? :D
10:43 ShimmerFairy nine: you can't use parens there though, but that's the idea :)
10:44 nine One of these days I'm gonna lern Perl 6 for real :)
10:44 nine wooohooo!
10:44 nine nine@sphinx:~/install/rakudo (bool_enum *+)> perl6 -e 'say Bool::True.HOW;'
10:44 nine Perl6::Metamodel::EnumHOW.new
10:44 ShimmerFairy m: say q:w(a b c)
10:44 camelia rakudo-moar 880d3c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/l0yJnCGU0N␤Invalid adverb value for :w(a b c)␤at /tmp/l0yJnCGU0N:1␤------> 3say q:w(a b c)7⏏5<EOL>␤»
10:45 ShimmerFairy nine: ^^^ that's why, in case you were curious. It looks like arguments to the pair
10:45 ShimmerFairy also, nine++ \o/ :)
10:45 AlexDaniel still I don't get it. "shell" basically accepts one argument – string. "run" accepts multiple arguments, that's the point. Why would it be a quoting construct – I have no idea
10:45 AlexDaniel let's make everything a quoting construct then?
10:46 domidumont joined #perl6
10:46 nine AlexDaniel: I'd say because program invocation usually contains quite a lot of constant string arguments
10:46 AlexDaniel nine: which is why you should use a sub – run
10:46 nine AlexDaniel: that's what makes run('perl', '-e', $code) cumbersome to write
10:46 ShimmerFairy AlexDaniel: that was in response to your lament about qqx being not shorter than run --- make another adverb that is to run() like :x is to shell()
10:47 AlexDaniel nine: what about this? run(«echo $test», :out).out.slurp-rest
10:47 nine AlexDaniel: what if $test contains white space?
10:48 tokuhiro_ joined #perl6
10:48 AlexDaniel I've always thought that «» would handle that. I could be wrong though
10:48 AlexDaniel or do you need quotes there?
10:48 ShimmerFairy m: my $test = "a b"; say «echo $test».perl
10:48 camelia rakudo-moar 880d3c: OUTPUT«("echo", "a", "b")␤»
10:48 ShimmerFairy m: my $test = "a b"; say «echo "$test"».perl
10:48 camelia rakudo-moar 880d3c: OUTPUT«("echo", "a b")␤»
10:49 AlexDaniel ok, you need quotes, right…
10:49 nine Having to quote all interpolated variables is just what makes this harder to use for newbies and cumbersome for oldies
10:49 AlexDaniel nine: but you have to quote it anyway, don't you?
10:51 AlexDaniel ShimmerFairy: that's not a bad solution, actually
10:53 ShimmerFairy I don't know how the specifics would work out (I personally think it would be best if you could choose between :w and :ww, and maybe q:r runs an argless command), but I personally wouldn't mind run() getting a Q adverb too :)
10:55 AlexDaniel I think that the problem is that sometimes you might want to pipe it to some other program
10:55 AlexDaniel for that you can set :in()
10:56 AlexDaniel but since you have to change the code to a fullblown run(), you might feel that it is much easier to just change "r" to "x"…
10:56 pyrimidine joined #perl6
10:58 AlexDaniel nine: your argument is valid if you're to say that people will just use shell("all $stuff $unquoted") rather than splitting their arguments and using "run"
10:58 ShimmerFairy well, you're not meant to use the adverbs for _everything_. I think my main objection to removing :x is that I don't see a too strong reason for getting rid of it. I get the security risks, but "it might trip people up!" isn't enough for me for :x .
11:00 AlexDaniel ShimmerFairy: but you know, I'm still waiting for a code example where qqx is all that much harder than the proposed “shellout”
11:01 AlexDaniel and until then “security risks” is a much stronger argument
11:01 AlexDaniel some might not agree with me, and I get it. But let's help the newbies…
11:01 ShimmerFairy AlexDaniel: I certainly don't know one off-hand. It all comes down to TIMTOWTDI: if you want to do your 'shellout' in a sub-like way, then you can. If you want to think of it as a modification on how you handle a string, then you can.
11:01 ShimmerFairy AlexDaniel: there's always documentation to help the newbies :)
11:02 AlexDaniel ShimmerFairy: oh yeah! Yesterday I've edited this http://rosettacode.org/wiki/Get_system_command_output#Perl_6
11:03 AlexDaniel and maybe it's not perfect, but at least it attempts to go all explaining how you should prefer run() over something else
11:03 dalek rakudo/nom: 03a9e73 | lizmat++ | src/core/Baggy.pm:
11:03 dalek rakudo/nom: Iterify Baggy.pick/roll
11:03 dalek rakudo/nom:
11:03 dalek rakudo/nom: And another piece of jvm specific code bites the dust!
11:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/03a9e732d0
11:04 ShimmerFairy "Unfortunately, it is very long to type," sounds a bit too subjective, but otherwise it's a nice, concise explanation :)
11:04 pyrimidi_ joined #perl6
11:04 AlexDaniel ehhh
11:07 AlexDaniel ahaha
11:08 lizmat m: sub a { say +?$^a }; a 42; a ""  #  line noise in Perl 6  :-)
11:08 camelia rakudo-moar 880d3c: OUTPUT«1␤0␤»
11:09 AlexDaniel https://gist.github.com/AlexDaniel/176da249d1314b8cf3a9
11:09 AlexDaniel So here I've grepped for qqx across all modules
11:09 nine AlexDaniel: my $output = qqx<mail -s $subject -c $cc -r $from $to>; # this is what people want to do and what should do the right (secure) thing
11:09 AlexDaniel What I see in that gist is a bunch of quoting errors
11:10 AlexDaniel even when run() could have done the job just as well
11:10 AlexDaniel I mean, not just as well, but of course much better
11:11 AlexDaniel who is going to fix all this stuff?
11:12 AlexDaniel some of these are not critical, I agree
11:14 AlexDaniel But what I see is a heavy misuse… something has to be done with that…
11:15 pyrimidine joined #perl6
11:16 timbunce_ joined #perl6
11:16 Sgeo joined #perl6
11:16 AlexDaniel yet can anybody see anything that could not be done without qqx?
11:20 AlexDaniel nine: what do you mean, I don't get it
11:20 AlexDaniel nine: so if $subject is 'rm -rf /', then what?
11:20 AlexDaniel nine: I mean, '$(rm -rf /)'
11:20 mr_ron joined #perl6
11:21 AlexDaniel nine: I do understand that it is what people want to do, yet it is not going to work as expected
11:21 AlexDaniel nine: and qqx does not help with that, so that's why I think it has to be deprecated
11:21 kmel joined #perl6
11:21 FROGGS that probably means that we need a shell grammar and pass the string passed to qx/qqx/(backticks?) to run()
11:23 nine AlexDaniel: qqx<mail -s $subject -c $cc -r $from $to> should just mean run('mail', '-s', $subject, '-c', $cc, '-r', $from, $to, :out).out.slurp-rest;
11:23 FROGGS that would be the final goal, yeah
11:23 ShimmerFairy I'm not sure implying :w is a good idea, though
11:24 ShimmerFairy (or :ww , in this case)
11:24 AlexDaniel ShimmerFairy: Perhaps. Any example when it does not work as expected?
11:24 AlexDaniel I mean, sure there is redirection and stuff
11:25 AlexDaniel qqx{$*EXECUTABLE -c $filename 2>&1};
11:25 AlexDaniel hm
11:25 ShimmerFairy No, I meant just in general, the only Q adverb that implies other adverbs (IIRC) would be :qq . I'm not sure having :x imply :w/:ww is a good idea, I think I'd prefer having to make that explicit
11:26 AlexDaniel ShimmerFairy: I agree
11:26 lizmat afk for a few hours&
11:26 telex joined #perl6
11:26 ShimmerFairy so q:w:x or q:ww:x or ...
11:26 nine .oO(note to self: beef up on those quoting adverb thingies before joining a discussion like this)
11:27 pierrot joined #perl6
11:30 AlexDaniel FROGGS: I like your idea
11:30 Woodi AlexDaniel: I bet qqx is there becouse it is cute :) it's just fast way to do what user wants
11:31 AlexDaniel Woodi: yeah, like introduce shell injections! That's what user wants
11:31 AlexDaniel FROGGS: however, it also means that it shouldn't pass anything to shell
11:32 AlexDaniel FROGGS: in perl5 there was a similar issue – sometimes system() runs it in shell, sometimes it doesn't
11:32 AlexDaniel I'm pretty confident that there must be a distinction
11:32 AlexDaniel so basically your suggestion ends up with the same idea – deprecate qqx first…
11:33 pyrimidi_ joined #perl6
11:34 nine Should Bool::True.Int return 1.Int or Bool::True (which isa Int)?
11:34 Woodi AlexDaniel: you see, it's like with any problem domain. you can to want just get stuff from db as fast as possible. same here, if someone is writing something bigger then small-script-fo-myself then he should consider other options
11:35 AlexDaniel I really don't want to defend this position as hard as I do now, but I see no other choice… I started mentioning this problem in June, I think. And now the Christmas is coming
11:35 AlexDaniel Woodi: if you want it quick and dirty, then my suggestion is that you should use “shellout”
11:36 Woodi AlexDaniel: but if it is a way to securely ommit such problems then I'm +1
11:36 rurban joined #perl6
11:36 Woodi AlexDaniel: I even have no idea what shellout means
11:36 AlexDaniel Woodi: so I'm not saying that you shouldn't be able to pass stuff to shell, I'm just saying that it should be easier to do it with “run”
11:36 Woodi 'shell', ok
11:36 AlexDaniel Woodi: yeah, but
11:37 kid51 joined #perl6
11:37 AlexDaniel Woodi: sub shellout(|c) { shell(|c, :out).out.slurp-rest }
11:37 AlexDaniel so that the user does not have to type all that “:out).out.slurp-rest” stuff
11:38 Woodi AlexDaniel: I bet qqx is doing just that :)
11:38 AlexDaniel basically just a shortcut to “shell” that gets the output as string
11:39 AlexDaniel Woodi: yeah, yet the Huffman coding is just right with this one
11:39 AlexDaniel Woodi: “runout” is shorter than “shellout” :)
11:39 jnthn MESSAGES
11:39 yoleaux 2 Oct 2015 22:54Z <lizmat> jnthn: I get the feeling that any new class in the setting (like the anonymous once for iterators) make parsing the setting a lot more expensive
11:39 yoleaux 2 Oct 2015 22:54Z <lizmat> jnthn: possibly even O(n)  :-(
11:40 jnthn eek, caps lock
11:41 jnthn .tell lizmat Could do with some measurements rather than feeling...
11:41 yoleaux jnthn: I'll pass your message to lizmat.
11:41 AlexDaniel By the way, this change is just a 3 line commit: runout, shellout and deprecation notice for qqx. I have it ready, and I will write tests, docs and whatever what is required for this change, just show me the green light :)
11:42 AlexDaniel and pull request for the change itself, of course
11:42 Woodi AlexDaniel: shellout/runout names are bad, IMO
11:42 jnthn I don't see the names runout/shellout really flying.
11:42 AlexDaniel Woodi: I agree! Any better alternative?
11:42 jnthn Why not implement qqwx?
11:42 Woodi `  ;)
11:42 psch AlexDaniel: are you also deprecating the "Q :qq :x" form?
11:42 AlexDaniel nooooooooooooooooooooooo…
11:43 AlexDaniel psch: basically, yes, you think that it is a wrong thing to do?
11:44 psch AlexDaniel: well, composability of adverbs seems like it's a core feature of Q, and i don't think forbidding certain combinations "because you have to be careful with them" is particularly perlish
11:44 psch that is assuming that the deprecation will lead to removal
11:45 psch oh, but i guess that was the core of the whole preceeding discussion, nvm then :)
11:46 AlexDaniel psch: yeah but my point is that you can pass whatever you want to shellout just as fine, :x should not be there
11:46 AlexDaniel I know it sounds a bit too revolutionary, but what else
11:46 psch eh, it sounds like "we have the opportunity to remove this historical feature, so why didn't we yet" to me
11:46 AlexDaniel jnthn: FROGGS actually said that there could be a shell grammar for all that stuff
11:47 AlexDaniel and I agree, but until then…
11:47 Woodi AlexDaniel: 'shell grammar' is code for: we don't know how to do this in general case :)
11:47 AlexDaniel psch: I'm sorry that I did not show up in 2000 or whatever it was with an RFC
11:48 AlexDaniel psch: basically because I barely stopped shitting under myself at that time
11:49 Woodi AlexDaniel: we should hijack ppls mind with better huffman coding not worse one
11:49 AlexDaniel Woodi: that's what my change is about
11:49 psch AlexDaniel: you misunderstand (or i wasn't clear enough).  i'm not saying that it's bad that it only happens now, i'm saying it's good that it happens at all
11:49 AlexDaniel oooh
11:50 AlexDaniel well, thanks then
11:50 kmel_ joined #perl6
11:50 Woodi AlexDaniel: s/shellout/`/ and I'm with you :)
11:50 AlexDaniel Woodi: “run“ is shorter than “shell”, “runout“ is shorter than “shellout”
11:50 AlexDaniel Woodi: but that's the whole point??
11:51 AlexDaniel Woodi: basically you are saying that it should be easier to pass stuff to shell even when you don't need that
11:51 test joined #perl6
11:51 Woodi AlexDaniel: now I'm lost which side you are arguing...
11:52 Woodi ok, do not pass to shell ? pls explain.
11:52 Woodi execsomething ?
11:52 AlexDaniel my Str $output = qqx{$*EXECUTABLE -c $filename 2>&1};
11:52 AlexDaniel what happens if $filename has spaces in it?
11:53 AlexDaniel well, then you should quote it right?
11:53 AlexDaniel that's how the typical logic goes
11:53 Woodi yes and no
11:53 AlexDaniel but no, there's no way to quote that…
11:54 AlexDaniel because you have to escape all of the shell meta characters and stuff
11:54 Woodi what if $filename is '.todo' ?
11:54 AlexDaniel Woodi: that'd be ok?
11:54 Woodi you are starting with complicated examples and disaallow ppls to do simple things
11:54 AlexDaniel Woodi: https://gist.github.com/AlexDaniel/176da249d1314b8cf3a9
11:55 AlexDaniel here I've greeped for qqx in all perl6 modules
11:55 AlexDaniel “simple things” is a string without interpolation
11:55 AlexDaniel that is, it's qx// (not qqx)
11:55 AlexDaniel YET qx// will interpolate ENV variables… That's weird
11:56 Woodi AlexDaniel: that's other topic :)
11:56 AlexDaniel if you need qqx//, then it is not a simple thing
11:56 AlexDaniel because you are trying to shove your variable in there, and that's where the security issue is
11:56 AlexDaniel and the solution? Use “run()“!
11:57 Woodi so 'qqx' is better 'qx' but failing in what it should do ?
11:57 AlexDaniel if you end up using run to do that correctly, then why did you use shell in the first place
11:58 AlexDaniel you say “simply things” – like running some program and passing some arguments to it (even const ones)? Good, that's exactly what run() is for
11:58 AlexDaniel simple*
11:59 AlexDaniel I'd be glad to hear a better name for shellout and runout… outrun and outshell? Not that much better…
12:00 AlexDaniel but the word “shell” has to be there to clarify meaning
12:00 jnthn qqx basically *is* what you want to call shellout, no?
12:00 Ven joined #perl6
12:01 ShimmerFairy jnthn: AIUI, the argument is essentially based on making sure the secure version is more Huffman-friendly than the insecure version.
12:01 AlexDaniel jnthn: yes pretty much, but you can also use all of the named arguments and stuff that “shell“ does. So in reality it is a shortcut for “shell” that gets the output
12:02 ShimmerFairy (which I personally don't think is a very convincing argument to get rid of :x)
12:02 AlexDaniel I find that gist pretty convincing, there is a huge amount of misuse.
12:03 dalek rakudo/bool_enum: 398f255 | (Stefan Seifert)++ | src/ (3 files):
12:03 dalek rakudo/bool_enum: Turn Bool into a proper enum
12:03 dalek rakudo/bool_enum: review: https://github.com/rakudo/rakudo/commit/398f255659
12:03 jnthn I'd be more inclined to find a way (a qqr that implies ww semantics?) to provide a shorter form of run and get out
12:03 jnthn *output
12:03 Woodi ` pleas, pleas !
12:04 ShimmerFairy It's only misuse from a security standpoint. I still think the security issue is more appropriately solved with documentation than getting rid of language features in core you don't like.
12:04 AlexDaniel jnthn: yeah, thinking about other ways since June!
12:04 jnthn Woodi: no, we decided already to leave that for user-space circumfixes.
12:04 ShimmerFairy Or with a hypothetical :r to make Huffman happy :)
12:04 jnthn ShimmerFairy: Well, it's good if the langauge guides people towards the Right Thing
12:04 AlexDaniel jnthn: yeah!
12:05 jnthn I do agree it's unfortunate there's not a succinct way to do with run what qx/qqx currently does with shell.
12:05 ShimmerFairy jnthn: that's true, I think my main issue with the idea to remove :x is that it seems like a minimally-useful way to do that. To me, it doesn't seem like it would do much more than annoy people who've come to expect :x to be available.
12:06 AlexDaniel jnthn: and then, when you need a bit more flexibility (like specifying the input), runout can be upgraded to run in your code in a straightforward way
12:06 nine Are there known sequence related spec test errors?
12:06 AlexDaniel jnthn: which I don't think will be possible with quoting constructs
12:06 ShimmerFairy jnthn: my idea would be an :r that didn't imply :w or :ww , making that explicit: q:r for a no-argument command (how useful would that be?), q:w:r, and q:ww:r for using arguments
12:06 psch nine: i had some on jvm a few days back, but that's probably not your focus :)
12:07 AlexDaniel ShimmerFairy: the problem is that people will upgrade to qqx when they need to pipe things together
12:07 nine psch: err...no, not really :)
12:07 AlexDaniel ShimmerFairy: yet you can do that with run: http://doc.perl6.org/type/Proc
12:07 jnthn ShimmerFairy: Hmm
12:07 jnthn Well, it's worth thinking about. I think we can do something better than what we have now.
12:08 * jnthn needs to go shopping...we're getting hungry here :)
12:08 jnthn bbl :)
12:08 ShimmerFairy AlexDaniel: if someone's natural inclination for that is to use shell syntax for redirection, that's fine with me (though teaching people that P6 Does It Better™ is of course important).
12:08 AlexDaniel jnthn: yeah, but at the same time I feel that qqx is way too short for what it does, you can't huffmanly beat that. So a deprecation notice looks like a right thing to me…
12:09 nine m: say (1...Inf)[3]
12:09 camelia rakudo-moar 03a9e7: OUTPUT«4␤»
12:09 ShimmerFairy AlexDaniel: and I suspect that at least a few people would sooner use shell() than learn run(), if you took away :x and they suddenly need redirection :P
12:09 AlexDaniel ShimmerFairy: yes, but as you've said there are people who really want to do that
12:10 AlexDaniel ShimmerFairy: and in such case the rope is provided, I have no problem with that
12:10 pyrimidine joined #perl6
12:10 AlexDaniel but throwing some rakes under the feet of users is the worst case scenario
12:11 ShimmerFairy Basically, I'm OK with adding :r to the Q lang (because having an :x/shell & :r/run symmetry would be nice), but removing :x doesn't seem like it'd do much to improve the security issue, at least to me.
12:12 AlexDaniel uhhhhhh
12:12 AlexDaniel ok I need some food
12:13 Woodi AlexDaniel: if you have qx than user will want something what use $
12:13 FROGGS I think we just need a short and clear name for a sub that receives and arglist that invokes run(:out)...
12:13 nine m: say Bool::False.WHAT
12:13 camelia rakudo-moar 03a9e7: OUTPUT«(Bool)␤»
12:14 FROGGS because interpolating into a string to detangle it afterwards seems errorprone
12:14 ShimmerFairy FROGGS: how about the totally-not-system-dependent name run1(...) ? :P
12:14 psch huh, we've removed the deprecation warnings for "use ...:from<java>" but still allow it..?
12:15 psch i suppose that ties in with RT #126088
12:15 ShimmerFairy isn't :from<foo> an important part of the use declaration? (Or am I missing something?)
12:15 nine m: say 0.WHAT === Bool::False.WHAT
12:15 camelia rakudo-moar 03a9e7: OUTPUT«False␤»
12:15 psch ShimmerFairy: :from<java> was deprecated in favor of :from<Java>
12:16 psch ShimmerFairy: which is what the ticket is about, for the lazy :)
12:16 Woodi nine: about:  my $results = from $table join .relation1 left join .relation2 where .foo > 1 and .relation1.bar = 'baz' select *;
12:16 ShimmerFairy psch: ah, so it's just the from<> adverb assuming anyone would be silly enough to try and make a distinction between 'java' and 'Java' :P
12:16 Woodi nine: you want it to call database ?
12:16 psch i'm inclined to say ".lc the language name when registering the loader" as a resolution for the ticket, fwiw
12:17 psch oh, and also ".lc the :from-value when looking for a loader" of course
12:17 ShimmerFairy psch: or .fc , since that's generally the nicer way to do caseless comparison
12:17 ShimmerFairy (in Unicode land, specifically)
12:17 psch ShimmerFairy: right, Unicode land is somewhat uncharted for me :)
12:17 Woodi nine: I think it is: a) too relational dbs specific;  b) cargo-culted SQL syntax (via LINQ)...
12:18 zakharyas joined #perl6
12:18 ShimmerFairy psch: so, it'd be something like    given $from.fc { when "java".fc { ... } ... }    , to give you an idea :)
12:18 pyrimidi_ joined #perl6
12:18 Woodi nine: spliting it into two parts, creating structures (join tables or prepare things) and querying would be much clener
12:19 nine Woodi: do you have a suggestion?
12:20 nine Woodi: I don't see a problem with cargo-culting SQL syntax, since that's exactly what it should look like. SQL is good at what it does. People know SQL. I'd really just like people to do everything SQL allows for.
12:20 psch m: say &fc
12:20 camelia rakudo-moar 03a9e7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/xWLPMCGXlW␤Undeclared routine:␤    &fc used at line 1. Did you mean '&uc', '&lc', '&tc'?␤␤»
12:20 psch aww :l
12:22 ShimmerFairy I don't think fc exists yet, sadly :(
12:22 ShimmerFairy m: say "FoO".fc
12:22 camelia rakudo-moar 03a9e7: OUTPUT«Method 'fc' not found for invocant of class 'Str'␤  in block <unit> at /tmp/wsCsRTQMXL:1␤␤»
12:22 ShimmerFairy (I don't think Moar even parses the UCD file that would enable .fc yet)
12:22 psch the remaining question would be if we require the module loader to be registered with the .fc name or do assume we have to do it ourselves
12:23 [Tux] test             50000    36.227    36.111
12:23 [Tux] test-t           50000    39.322    39.206
12:23 ShimmerFairy I think for clarity in the code that does the actual comparison, it'd be best to have it do .fc on both.
12:23 [Tux] http://tux.nl/Talks/CSV6/speed4.html
12:23 ShimmerFairy (It would also let module loader writers care less :P)
12:24 psch i'll add that to the ticket
12:25 dalek rakudo/bool_enum: 017c6bc | (Stefan Seifert)++ | src/core/operators.pm:
12:25 dalek rakudo/bool_enum: Fix SEQUENCE not expecting Bool ~~ Real to be true
12:25 dalek rakudo/bool_enum: review: https://github.com/rakudo/rakudo/commit/017c6bc6a6
12:26 psch in any case, i think complaining about wanting a specific case-ing for the :from value seems somewhat silly
12:27 psch i mean, i at least wouldn't want to forbid "use ...:from<jaVa>" just because
12:27 psch and i hope there's no two languages (that we'll be likely to support calling from) that share a fold-case
12:29 mscha joined #perl6
12:29 mscha p6: my $ℕ = set(1..Inf); say 42 ∈ $ℕ;
12:30 ShimmerFairy psch: that's my thinking exactly. Who would create a language called 'java' and insist to everybody that it's actually different from 'Java' ? :P
12:30 camelia rakudo-moar 03a9e7: OUTPUT«(timeout)»
12:34 Ven joined #perl6
12:41 aborazmeh joined #perl6
12:41 aborazmeh joined #perl6
12:42 Woodi nine: it is to low level. dealing with tables, troubles with joins, nulls
12:42 Woodi I prefer DataSources in MS world
12:43 mattprelude joined #perl6
12:44 Woodi and still ActiveRecords are replacement for Transaction Script Pattern and then Domain Model is replacement for ActiveRecord/Gateway pattern...
12:45 nine Woodi: trying to abstract those away is exactly why ORMs fail once you start needing recursive queries (Common Table Expressions), select statements in the from clause or even something as mundane as exists subqueries.
12:45 nine Or window functions
12:46 nine SQL and relational databases are so powerful, yet we waste cycles and developer time because ORMs optimize the most simple case and make the hard cases impossible.
12:48 Woodi nine: actually I thinking about in-memory structures/operations more then constructing specific queries...
12:48 mr_ron joined #perl6
12:49 tokuhiro_ joined #perl6
12:49 nine Woodi: which is fine. It's just a different problem domain.
12:53 psch hm, i have something fix-ish for #119919, but that just makes #117737 more weird
12:54 psch i suspect a fix for the former that correctly deals with the latter needs more Perl6::Grammar-fu than i have lying around at the moment
13:00 rurban joined #perl6
13:01 rurban joined #perl6
13:09 Ven joined #perl6
13:18 pyrimidine joined #perl6
13:20 dalek rakudo/bool_enum: 31cbac7 | (Stefan Seifert)++ | src/Perl6/Metamodel/EnumHOW.nqp:
13:20 dalek rakudo/bool_enum: Make Bool augmentable
13:20 dalek rakudo/bool_enum: review: https://github.com/rakudo/rakudo/commit/31cbac7bfa
13:20 dalek rakudo/bool_enum: fe41cd7 | (Stefan Seifert)++ | src/Perl6/Metamodel/EnumHOW.nqp:
13:20 dalek rakudo/bool_enum: Fix type check for binding parameters
13:20 dalek rakudo/bool_enum:
13:20 dalek rakudo/bool_enum: EnumHOW just needed an is_composed method like many other HOWs.
13:20 dalek rakudo/bool_enum: Fixes regression in t/spec/S06-signature/optional.t
13:20 dalek rakudo/bool_enum: review: https://github.com/rakudo/rakudo/commit/fe41cd704b
13:29 pyrimidi_ joined #perl6
13:33 pyrimidine joined #perl6
13:37 [Sno] joined #perl6
13:39 bjz joined #perl6
13:40 pyrimidi_ joined #perl6
13:40 dalek rakudo/bool_enum: db729c1 | (Stefan Seifert)++ | src/Perl6/Metamodel/ (2 files):
13:40 dalek rakudo/bool_enum: Allow for mixing into enums.
13:40 dalek rakudo/bool_enum:
13:40 dalek rakudo/bool_enum: Fixes Bool but role {} and t/spec/S14-roles/mixin.t regressions
13:40 dalek rakudo/bool_enum: review: https://github.com/rakudo/rakudo/commit/db729c138d
13:41 dalek ecosystem/p6-HTTP-Server-Tiny: da18127 | (Tokuhiro Matsuno)++ | META.list:
13:41 dalek ecosystem/p6-HTTP-Server-Tiny: Added HTTP-Server-Tiny
13:41 dalek ecosystem/p6-HTTP-Server-Tiny: review: https://github.com/perl6/ecosystem/commit/da18127196
13:49 kmel joined #perl6
13:49 nine Why is this illegal? use MONKEY-TYPING; enum Weekday <Mon Tue>; augment class Weekday { }
13:49 nine m: use MONKEY-TYPING; enum Weekday <Mon Tue>; augment class Weekday { }
13:49 camelia rakudo-moar 03a9e7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1BCvIxk8d_␤Cannot augment Weekday because it is closed␤at /tmp/1BCvIxk8d_:1␤------> 3Weekday <Mon Tue>; augment class Weekday7⏏5 { }␤    expecting any of:␤        generic role␤»
13:50 pyrimidine joined #perl6
13:53 kmel hello everyone, I am new to perl6 and was trying to install DBIish (panda instal DBIish). Unfortunately it filed (# Connect failed with error Cannot locate native library 'libmysqlclient.so': libmysqlclient.so: cannot open shared object file: No such file or directory). Any recommendations?
13:54 leont joined #perl6
13:59 _itz what does locate 'libmysqlclient.so' say?
13:59 pyrimidi_ joined #perl6
14:04 zakharyas joined #perl6
14:06 dalek roast: ecb2fb7 | (Stefan Seifert)++ | S06-currying/named.t:
14:06 dalek roast: Fix test failing for the wrong reason
14:06 dalek roast:
14:06 dalek roast: priming-fails-bind-ok(sub (Int :$a!) { }, '$a', Int, :a); should actually
14:06 dalek roast: fail to find a bind error since Bool is specced to be an enum with base type
14:06 dalek roast: Int, IOW Bool ~~ Int.
14:06 dalek roast: Change it, so it will still pass, once Bool is a proper enum.
14:06 dalek roast: review: https://github.com/perl6/roast/commit/ecb2fb7705
14:07 timotimo kmel: these are "just" warnings that tell you that some tests have been skipped; if you were hoping to use mysql with dbiish, you'll probably have to install the -dev package, so that the libmysqlclient.so symlink gets added to your system
14:07 AlexDaniel and if you're on debian, then "apt-file search libmysqlclient.so" should give you the name of the required package
14:08 dalek ecosystem: da18127 | (Tokuhiro Matsuno)++ | META.list:
14:08 dalek ecosystem: Added HTTP-Server-Tiny
14:08 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/da18127196
14:08 dalek ecosystem: 74d415c | timo++ | META.list:
14:08 dalek ecosystem: Merge pull request #65 from tokuhirom/p6-HTTP-Server-Tiny
14:08 dalek ecosystem:
14:08 dalek ecosystem: Added HTTP-Server-Tiny
14:08 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/74d415ce01
14:08 AlexDaniel which is libmysqlclient-dev, I'm not surprised
14:11 Ven joined #perl6
14:11 FROGGS_ joined #perl6
14:12 FROGGS[tab]_ joined #perl6
14:13 kmel timotimo & AlexDaniel: Thanks.
14:14 kmel i was missing the -dev packages
14:14 timotimo i found it a bit counter-intuitive that this is the way linux distros handle that, but whatever
14:14 psch hrm, i think for #68024, #119919 and #117737 we have to pull <circumfix> out of <coloncircumfix>
14:14 psch or rather, have coloncircumfix handle all the <circumfix> cases independently
14:15 khw joined #perl6
14:16 psch 'cause it breaks in routine_def because not all <circumfix> bring a <nibble>
14:16 psch (well, more precise it breaks in World.colonpair_nibble_to_str)
14:18 AlexDaniel timotimo: I don't find it counter-intuitive. Once perl6 (and all of its modules) is packaged with debian, I think that installing DBIish will pull it as dependency (or at least will list it as a suggested package). If nothing on your system depends on this package, then why would you want it to be installed?
14:20 kmel Now I have a new error message (# Connect failed with error DBD::mysql connection failed: Access denied for user 'testuser'@'localhost' (using password: YES))
14:21 AlexDaniel kmel: well!
14:21 AlexDaniel kmel: It seems like access is denied for this user-password combo!
14:21 dalek roast/bool_enum: be773e7 | (Stefan Seifert)++ | S02-types/bool.t:
14:21 dalek roast/bool_enum: Bool is now an enum with base type Int
14:21 dalek roast/bool_enum:
14:21 dalek roast/bool_enum: Fixes RT #72580
14:21 dalek roast/bool_enum: review: https://github.com/perl6/roast/commit/be773e7ed4
14:21 dalek roast/bool_enum: 44e937d | (Stefan Seifert)++ | S32-exceptions/misc.t:
14:21 dalek roast/bool_enum: Enums are now augmentable
14:21 dalek roast/bool_enum:
14:21 dalek roast/bool_enum: I see no reason why an enum should not be augmentable. Indeed there are tests
14:21 dalek roast/bool_enum: for augmenting Bool which is an enum by spec. So remove the bogus test.
14:21 dalek roast/bool_enum: review: https://github.com/perl6/roast/commit/44e937d598
14:21 dalek roast/bool_enum: 83c7804 | (Stefan Seifert)++ | S03-operators/relational.t:
14:21 dalek roast/bool_enum: TODOs for chaining !before and !after now pass
14:21 dalek roast/bool_enum:
14:21 dalek roast/bool_enum: Don't know why though?
14:21 dalek roast/bool_enum: review: https://github.com/perl6/roast/commit/83c7804fdb
14:22 AlexDaniel kmel: are you sure that there is such user? Are you sure that what you are providing as a password is actually the right password?
14:22 nine .tell jnthn branch bool_enum in rakudo and roast is ready for review. Any input would be greatly appreciated :)
14:22 yoleaux nine: I'll pass your message to jnthn.
14:23 timotimo kmel: if you want the tests to run to completion, you'd need to follow the instructions in the readme - with "panda look DBIish" you can get it to check out the repository for you so you can read it
14:23 timotimo why don't we have a "panda readme" command, btw?
14:25 AlexDaniel ah it's still about tests
14:27 kmel AlexDaniel & timotimo: Sorry to bother you, I am completely new to perl.
14:27 kmel :)
14:27 timotimo the # at the beginning tells me it's from the tests
14:27 kmel timotimo: yes tests
14:28 AlexDaniel kmel: you are welcome!
14:28 timotimo it's hard to test the database api without a running server with a user + password that the test file knows about
14:28 AlexDaniel true
14:29 kmel ok but how
14:30 timotimo first of all: do you even want to use MySQL in the first place?
14:30 kmel how do i specify which user+pass the tests should use?
14:31 timotimo ... didn't the readme once tell exactly what you had to do to make it work?
14:31 timotimo because now it doesn't
14:31 timotimo ah
14:31 timotimo it's in the test file
14:31 timotimo https://github.com/perl6/DBIish/blob/master/t/10-mysql.t
14:32 AlexDaniel timotimo: perhaps it will be easier to skip tests?
14:32 timotimo the tests are already skipped
14:32 Ven joined #perl6
14:33 AlexDaniel hmmmm then why does it fail?
14:33 timotimo it doesn't fail
14:33 timotimo it just looks very explosive
14:33 kmel timotimo: I see... Let me go back to reading then.
14:33 timotimo it doesn't matter if the exit code is actually 0 if it makes warning lights and alarms and sirens go off
14:34 kmel it is actually failing.
14:34 timotimo oh?
14:34 timotimo damn
14:34 timotimo can you paste the whole output on gist.github.com or something?
14:34 AlexDaniel I'll try to install it
14:34 timotimo the only fails it should care about are the ones that say "not ok" somewhere, actually
14:35 kmel let me run the scripts you pointed in the test file and come back later
14:35 kmel maybe this should fix the issue
14:36 timotimo perhaps
14:36 timotimo otherwise: maybe your rakudo is too old? it'd be interesting to learn what exact version you're running
14:36 timotimo (via perl6 --version)
14:36 kmel This is perl6 version 2015.09-174-ge503dfc built on MoarVM version 2015.09-39-g1434283
14:37 AlexDaniel It works for me: https://gist.github.com/AlexDaniel/b574f2a94d2185a44b12
14:38 timotimo ah, good, it's not old
14:43 timotimo https://speakerdeck.com/shoichikaji/how-to-write-perl6-modules-with-mi6 - cool
14:51 tokuhiro_ joined #perl6
14:55 bjz joined #perl6
14:55 RabidGravy joined #perl6
14:56 mr_ron joined #perl6
14:57 Ven joined #perl6
14:59 pyrimidine joined #perl6
15:06 pyrimidi_ joined #perl6
15:09 rivarun joined #perl6
15:19 pyrimidine joined #perl6
15:19 nightfrog joined #perl6
15:25 isBEKaml joined #perl6
15:27 dalek rakudo-star-daily: 17d36ad | coke++ | log/ (9 files):
15:27 dalek rakudo-star-daily: today (automated commit)
15:27 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/17d36ad5c0
15:27 dalek perl6-roast-data: 1b1c239 | coke++ | / (9 files):
15:27 dalek perl6-roast-data: today (automated commit)
15:27 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/1b1c239074
15:27 dalek perl6-roast-data: 5a1f31a | coke++ | / (9 files):
15:27 dalek perl6-roast-data: today (automated commit)
15:27 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/5a1f31a481
15:28 mr_ron One of the old authors of URI just posted this git joke on facebook that I thought was not bad: http://hugelolcdn.com/i460/356078.jpg
15:30 [Coke] (ORMS) I have never had a problem where ORM was a real solution. It always ends up getting in my way.
15:30 rurban joined #perl6
15:31 AlexDaniel mr_ron: whoops, forgot to stage files!
15:31 Zoffix heh
15:31 colomon Pod::To::Markdown failing one test?
15:36 [Coke] I feel somewhat meta, using a JS profiler to profile why the profiler html hangs. :|
15:41 moritz [Coke]: next up: debugging whie the JS profiler hangs whie profiling the profiler html output :-)
15:43 [Coke] moritz: sadly, the js profile output doesn't appear to help at all (using chrome. partially because none of the click throughs are showing me any JS code, and partially because I don't use angular.
15:45 [Coke] moritz: so, running htmlify, even with a sparse run generates a profile that is unusuable. Adding an exit to avoid doing work to profile part of it trips a profiler bug. whee
15:45 [Coke] *unusable
15:45 timotimo replacing the angular version we're using with the next minor version would probably help with the performance quite a bit, but the most naive way to do it left big parts of the thing nonfunctional :|
15:46 spider-mario joined #perl6
15:52 tokuhiro_ joined #perl6
15:54 Ven joined #perl6
15:55 rurban joined #perl6
15:56 dalek rakudo/nom: 0ac5dbc | lizmat++ | src/core/ (2 files):
15:56 dalek rakudo/nom: Remove one argument boilerplate for new +@args
15:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0ac5dbc34f
15:59 lsm-desktop joined #perl6
16:00 timotimo here's a suggestion
16:00 timotimo when we find the end of a quote and after that experience a syntax error of some kind, look if the first character before the end-quote is a comma %)
16:02 TimToady and what?
16:02 timotimo and alert the user that in programming languages, the comma comes after the closing quote, not before it
16:02 timotimo "that's ridiculous," timo said.
16:02 timotimo "no, that's just english," the internets said
16:02 * timotimo shudders
16:03 dalek rakudo/curli: d028dae | lizmat++ | src/core/Any-iterable-methods.pm:
16:03 dalek rakudo/curli: More whitespace correction for readability
16:03 dalek rakudo/curli: review: https://github.com/rakudo/rakudo/commit/d028daed9c
16:03 dalek rakudo/curli: e19a521 | lizmat++ | src/core/Any-iterable-methods.pm:
16:03 dalek rakudo/curli: Some comments + code legibility
16:03 kaare__ joined #perl6
16:03 lizmat sorry dalek
16:03 yoleaux 11:41Z <jnthn> lizmat: Could do with some measurements rather than feeling...
16:03 dalek joined #perl6
16:04 lizmat .tell jnthn looking at increasing parse times the past week while iterifying code: doesn't really get below 45 secs anymore  :-(
16:04 yoleaux lizmat: I'll pass your message to jnthn.
16:04 lizmat .tell jnthn when it used to be around 32 not too many weeks ago
16:04 yoleaux lizmat: I'll pass your message to jnthn.
16:05 TimToady I thought it was the dynvar cache getting overwhelmed, so I measured, and found it was only 2.5% of the overhead--improvable with a better cache, but not causing the slowdown
16:05 lizmat .tell jnthn flussence also notived: http://irclog.perlgeek.de/perl6/2015-10-02#i_11310569
16:05 yoleaux lizmat: I'll pass your message to jnthn.
16:06 TimToady nobody's disputing the slowdown, but there are many possible causes
16:07 lizmat TimToady: jnthn asked for measurements :-)
16:07 TimToady meaning of specific possible causes, not of the slowdown
16:09 TimToady could be as simple as the GC is no longer tuned for the size of our setting, but probably not
16:09 rurban joined #perl6
16:09 [Coke] timotimo: updating to angular 1.2.27 seems ok
16:10 timotimo oh, neat
16:10 rindolf joined #perl6
16:10 timotimo i've noticed a slowdown in stage parse, too
16:10 [Coke] updating all the way to 1.4.2 explodes.
16:10 timotimo but i expect jnthn was hoping for more granular measurements
16:11 TimToady could also be that we accidentally disabled an optimization
16:11 timotimo [Coke]: is the symptom that all tabs are shown at the same time and all variants of text and such?
16:11 TimToady could be that the NFAs are going O(n**3) or something
16:11 TimToady could be lots of things
16:13 [Coke] timotimo: I can work on getting us to angular 1.4 this evening. Looks like they have a decent guide on upgrading.
16:13 lizmat ok ok ok  :-)   I will stop throwing hunches on the channel  :-)
16:13 timotimo oooooh
16:13 timotimo that would be quite fantastic!
16:13 TimToady hunches are fine, and so is suggesting we measure :)
16:13 timotimo i've heard very good things about performance in 1.4
16:15 TimToady so, I've got this talk I'm giving Monday; what would be the best example of reactive programming to show as one slide?
16:15 TimToady and the best one-slide meta-programming example?
16:16 pyrimidine joined #perl6
16:16 * TimToady is terrible at thinking up examples...
16:17 lizmat between the commit just before infix:<.> and now, settings parse went from 41 to 44 seconds (+7%)
16:19 lizmat meanwhile, the size of core setting went from 32172 lines to 32258 lines (.25% increase)
16:19 lizmat that's what giving me a O(n) feeling
16:19 rurban joined #perl6
16:20 rurban left #perl6
16:22 Ven joined #perl6
16:22 TimToady but infix:sym<.> was already there, so that didn't change the parse at all..., and while it does now to a <.ws> lookahead, that terminates LTM, so LTM should always pick a longer dot form anyway first
16:24 pyrimidi_ joined #perl6
16:24 TimToady so if infix:<.> is the culprit, the problem is likely to be elsewhere than NFA blowup
16:28 moritz did the new composition operator change compile time?
16:30 TimToady seems unlikey to be a large delta
16:32 TimToady I did, at some point, mark a bunch more functions as 'is pure', which could have an effect
16:34 TimToady but there have been lots of other changes as well; I remember when I first remarked upon my parse time going up 10 seconds, and it was not obvious at that point what did it
16:36 TimToady http://irclog.perlgeek.de/perl6/2015-09-28#i_11287048 is when I pointed it out
16:39 lizmat TimToady: it had gotten slower before that as well already, I was just taking some noticeable commit it the past
16:39 timotimo [Coke]: maybe with the new angular and better performance i'll be invigorated enough to implement some features i've wanted for a long time in the profiler ...
16:40 lizmat I mean, before it, parse time was already 40+ (when it used to be more like 32 on my machine)
16:40 Ven joined #perl6
16:40 Ven .ask lichtkind shouldn't that be a regexp? https://github.com/perl6/problem_solver_tutorial/blob/master/chapter_4/bn4.pl6#L25
16:40 yoleaux Ven: I'll pass your message to lichtkind.
16:40 lizmat unfortunately, I need to be afk tonight, cu tomorrow!
16:41 lizmat &
16:41 timotimo bye lizmat!
16:43 colomon joined #perl6
16:46 pyrimidine joined #perl6
16:49 FROGGS joined #perl6
16:50 colomon joined #perl6
16:53 tokuhiro_ joined #perl6
16:54 Ven joined #perl6
16:59 pyrimidi_ joined #perl6
17:03 colomon joined #perl6
17:03 TimToady it's not the 'is pure'—backing that out makes no difference
17:16 colomon joined #perl6
17:19 pyrimidine joined #perl6
17:26 abaugher joined #perl6
17:34 TimToady also doesn't appear to be the infix<.> changes, based on before/after timings
17:37 [Sno] joined #perl6
17:41 psch $ ./perl6-m -e'sub infix:["@"] { say $^a, $^b }; 5@5'
17:41 psch 55
17:41 psch but: "infix:[$op]" should work too, i gather
17:41 psch and i'm pretty sure what i did for the working bit above doesn't help getting there
17:41 psch on the plus, i'm not relying on <semilist> but added a token that catches this correctly
17:43 psch what i understand from the bits of design that talk about this is that we have a colonpair after the category the content of which are BEGIN-evaluated
17:43 jdv79 RabidGravy: figured out that lame H::UA bug
17:43 RabidGravy cool
17:43 psch the colonpair delimiters still carry most of the usual Q adverb semantics
17:44 psch i.e. infix:<[ ]> works as expected, infix:['{', '}'] works as it would for q[]
17:45 psch i'm a bit confused if infix:<<$ldelim $rdelim>> should work as expected from << >> or not
17:46 TimToady seems like it oughta
17:47 jdv79 just not sure how to test it
17:47 TimToady m: my %hash = :a; my $a = 'a'; say %hash«$a»
17:47 camelia rakudo-moar 0ac5db: OUTPUT«(True)␤»
17:48 TimToady on run(), I think the default should maybe be :out, and just optimize that away in sink context
17:48 jdv79 i guess we'd need to setup a local server and watch the back and forth
17:48 jdv79 bleh
17:49 psch TimToady: is there any delimiter for sub *fix: that shouldn't interpolate to an existing compile time value?
17:50 TimToady not sure I understand the question
17:50 jdv79 no.  intercepting recv.
17:50 psch actually, it's probably ang
17:51 psch as in, circumfix:<$l $r> is literal $l 1, 2, 3 $r
17:51 TimToady correct
17:51 TimToady are you working on making the canonical form legal perl?
17:52 psch i'm working on #68024, #119919 and #117737
17:53 TimToady well, I guess it's time to fire up the browser again; had it down for benchmarks
17:53 TimToady though I should be working on my talk, sigh...
17:57 El_Che TimToady: where are you talking?
17:59 TimToady San Francisco
17:59 TimToady special release talk sponsored by craigslist++
18:00 timotimo releasing a talk, TimToady?
18:00 TimToady only if you guys help me come up with good examples :)
18:00 El_Che TimToady: you'll tell them about Christmas? :)
18:00 TimToady well, sure
18:01 timotimo i've never exampled well
18:10 carlin m: sub foo { say "foo" }; my $t = Thread.new(code => &foo); $t.run; $t.run;
18:10 camelia rakudo-moar 0ac5db: OUTPUT«Invalid GC status observed; aborting␤»
18:12 carlin m: sub foo { say "foo" }; my $t = Thread.new(code => &foo); $t.clone.run; $t.clone.run;
18:12 camelia rakudo-moar 0ac5db: OUTPUT«Unhandled exception: Cannot invoke null object␤   at <unknown>:1  (/home/camelia/rakudo-inst-1/share/nqp/lib/Perl6/BOOTSTRAP.moarvm::4294967295)␤ from gen/moar/m-CORE.setting:21755  (/home/camelia/rakudo-inst-1/share/perl6/runtime/CORE.setting.moarvm:p…»
18:12 carlin m: sub foo { say "foo" }; my $t = Thread.new(code => &foo); $t.clone.run; $t.clone.run;
18:12 camelia rakudo-moar 0ac5db: OUTPUT«Unhandled exception: Cannot invoke null object␤   at <unknown>:1  (/home/camelia/rakudo-inst-1/share/nqp/lib/Perl6/BOOTSTRAP.moarvm::4294967295)␤ from gen/moar/m-BOOTSTRAP.nqp:2046  (/home/camelia/rakudo-inst-1/share/nqp/lib/Perl6/BOOTSTRAP.moarvm::73)…»
18:12 carlin m: sub foo { say "foo" }; my $t = Thread.new(code => &foo); $t.clone.run; $t.clone.run;
18:12 camelia rakudo-moar 0ac5db: OUTPUT«Unhandled exception: Cannot invoke null object␤   at <unknown>:1  (/home/camelia/rakudo-inst-1/share/nqp/lib/Perl6/BOOTSTRAP.moarvm:is_narrower:4294967295)␤ from gen/moar/m-BOOTSTRAP.nqp:1962  (/home/camelia/rakudo-inst-1/share/nqp/lib/Perl6/BOOTSTRAP.…»
18:12 carlin that occasionally segfaults here
18:16 Xor_ joined #perl6
18:20 jnthn .run should refuse to work more than once, and .clone on a thread should probably die telling you that's a non-sensical thing to do...
18:20 yoleaux 14:22Z <nine> jnthn: branch bool_enum in rakudo and roast is ready for review. Any input would be greatly appreciated :)
18:20 yoleaux 16:04Z <lizmat> jnthn: looking at increasing parse times the past week while iterifying code: doesn't really get below 45 secs anymore  :-(
18:20 yoleaux 16:04Z <lizmat> jnthn: when it used to be around 32 not too many weeks ago
18:20 yoleaux 16:05Z <lizmat> jnthn: flussence also notived: http://irclog.perlgeek.de/perl6/2015-10-02#i_11310569
18:20 colomon joined #perl6
18:21 jnthn .tell nine Will review tomorrow if I have energy, or Monday if not. You've kinda changed the nature of enums a bit in the MOP, but it may be OK...
18:21 yoleaux jnthn: I'll pass your message to nine.
18:21 nine I think, the parse time regression is in NQP or MoarVM rather than rakudo
18:21 yoleaux 18:21Z <jnthn> nine: Will review tomorrow if I have energy, or Monday if not. You've kinda changed the nature of enums a bit in the MOP, but it may be OK...
18:21 nine jnthn: ok, thanks. Whenever you find some energy :)
18:21 jnthn TimToady: I'd take one of the examples from my Japan talk for async stuff (either the auto-test-runner or the juggling concurrent processes)
18:22 TimToady what about meta-programming?
18:22 TimToady debugger?
18:22 jnthn Depends what you want to focus on really.
18:23 TimToady just want to wow them and give them something to look at
18:23 jnthn If "we can add powerful new things that feel almost built in" then the OO::Monitors/OO::Actors example ain't bad - depends if you want to show *how* it's done rather than just show that it's possible
18:23 TimToady not to explain the details, but show we've thought deeply about things
18:23 jnthn Grammar::Tracer is a fairly neat example too
18:23 TimToady don't have time to go into much how
18:24 TimToady just enough time (an hour) to say here's where we've got too, and you're gonna like it
18:24 TimToady but just talking *about* p6 will be deadly, so gotta show some nifty code, both deep and every-day
18:25 psch the non-multiple-inheritance-class example from the advent posts maybe?
18:25 jnthn The MVC example ("can statically check for missing URL templates by extending the langauge") wasn't a bad one also
18:25 jnthn At end of http://jnthn.net/papers/2015-fosdem-static-dynamic.pdf
18:25 psch although maybe that's a bit narrow in scope, not sure
18:26 TimToady might appeal to the SF crowd, who are largely webdevs
18:26 jnthn I'm not sure I'd go with the "ooh look, we can forbid MI"...some people might point out we perhaps shoulda anyway :P
18:27 TimToady but the talk is aimed more at js, python, ruby users than at p5ers
18:27 TimToady we already have the p5ers attention :)
18:27 TimToady though I do plan to give the same talk at ppw
18:28 jnthn Well, showing js-ers that our async isn't a mess of callbacks is worthwhile :)
18:28 pink_mist is there already a neat webframework build for p6? I'm not really sure how appealing to webdevs p6 will be without one ... I think I've heard mention of P6SGI?
18:29 psch jnthn: right, forbidding MI when it's widely considered bad practice anyway is a good reason it shouldn't be an example... :)
18:29 psch s/forbidding/showing how to forbid/ # or w/e...
18:30 TimToady what might be a really good example of role usage?
18:31 TimToady I guess something veering into generics?
18:32 TimToady maybe that's a good place to show dogfooding in the setting
18:32 jnthn Maybe...various of my talks had examples...I can't think of one that was incredibly succinct. I guess I don't think of roles as a show-offy thing any more 'cus I got used to them :)
18:33 jnthn afk for a bit again
18:33 TimToady thanks!
18:37 colomon joined #perl6
18:40 abaugher joined #perl6
18:41 DrForr pink_mist: Bailador maybe?
18:42 pink_mist nice =)
18:42 pink_mist thanks
18:43 DrForr And yeah, I've heard of P6SGI but I've been somewhat out of touch for a little while.
18:47 yqt joined #perl6
18:49 * _itz curses Visual Studio and wishes he never left the safety of UNIX
18:54 tokuhiro_ joined #perl6
19:03 masak evenin', #perl6
19:04 FROGGS hi masak
19:06 masak I'm trying to enumerate all the grammatical things in Perl 6 that can declare stuff. here's what I have so far: variable declarations (`my`, `our`, etc), routine declarations (`sub`, etc), type declarations (`class`, `role`, `grammar`, etc), block/routine signatures (`->`, `()`), role signatures, imports (`use`, `import`, etc)
19:06 masak did I miss anything? :)
19:07 FROGGS constants?
19:07 masak btw, I define "declare stuff" as "introduce a name in a lexpad or package namespace"
19:07 masak FROGGS: constants go under the first group.
19:07 FROGGS yeah, thought so
19:07 masak but good point
19:07 FROGGS hmmm
19:08 masak I'm scouring Rakudo's grammar for things I might've missed
19:09 xfix joined #perl6
19:10 FROGGS hmmm, I think your list is complete
19:10 masak I should probably call "type declarations" "package declarations" instead...
19:10 FROGGS aye
19:12 rindolf joined #perl6
19:16 masak m: sub foo($obj) { $obj.abs }; sub bar($obj) { -$obj }; say [.] -5, &foo, &bar
19:16 camelia rakudo-moar 0ac5db: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tjrLFid24Y␤Unsupported use of . to concatenate strings; in Perl 6 please use ~␤at /tmp/tjrLFid24Y:1␤------> 3.abs }; sub bar($obj) { -$obj }; say [.]7⏏5 -5, &foo, &bar␤»
19:16 masak aww :)
19:17 masak m: sub foo($obj) { $obj.abs }; sub bar($obj) { -$obj }; say [-5, &foo, &bar].reduce(&infix:<.>)
19:17 camelia rakudo-moar 0ac5db: OUTPUT«5===SORRY!5=== Error while compiling /tmp/8XvjVaNKs5␤Undeclared routine:␤    &infix:<.> used at line 1. Did you mean '&infix:<∖>', '&infix:<o>', '&infix:<⊎>', '&infix:<∩>', '&infix:<<>'?␤␤»
19:17 masak aww xx 2 :/
19:29 dalek rakudo/nom: 98d9b87 | FROGGS++ | src/Perl6/Actions.nqp:
19:29 dalek rakudo/nom: fix RT #69204, allow $foo .= "bar"()
19:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/98d9b87aaa
19:29 dalek roast: 5f82bde | FROGGS++ | S03-operators/inplace.t:
19:29 dalek roast: test RT #69204, $foo .= "bar"()
19:29 dalek roast: review: https://github.com/perl6/roast/commit/5f82bde7e0
19:30 TimToady I hope it still disallows it without the parens
19:30 TimToady since that's a likely P5 error
19:30 FROGGS $ perl6 -e 'my $a = "oh hai"; say $a .= "uc"'
19:30 FROGGS ===SORRY!=== Error while compiling -e
19:30 FROGGS Quoted method name requires parenthesized arguments. If you meant to concatenate two strings, use '~'.
19:31 TimToady super!
19:31 FROGGS aye :o)
19:31 masak oh, that's one of mine. from 2009.
19:31 masak FROGGS++
19:31 TimToady maybe we can allow $a . "uc"() as well if there are parens, but we'd have to check it in the lookahead, I suspect
19:32 TimToady which means we'd have to parse the string twice, which is kinda bogus
19:32 abaugher joined #perl6
19:32 TimToady either that, or we delay the P5 warning till later
19:32 FROGGS TimToady: what is "uc"() ?
19:32 TimToady some old P5 thing :P
19:33 FROGGS O.o
19:33 * FROGGS .oO( Who are you? - Some ol' P5 thing! )
19:33 TimToady my $a = "oh hai"; say $a."uc"()
19:33 TimToady m: my $a = "oh hai"; say $a."uc"()
19:33 camelia rakudo-moar 0ac5db: OUTPUT«OH HAI␤»
19:34 FROGGS ahh
19:34 TimToady m: my $a = "oh hai"; say $a . "uc"()
19:34 camelia rakudo-moar 0ac5db: OUTPUT«5===SORRY!5=== Error while compiling /tmp/C7J9_g3ngK␤Unsupported use of . to concatenate strings; in Perl 6 please use ~␤at /tmp/C7J9_g3ngK:1␤------> 3my $a = "oh hai"; say $a . "7⏏5uc"()␤»
19:34 TimToady currently disallowed
19:34 FROGGS yes, my brain parsed it differently
19:35 masak by the way, I might be fine with adding back https://github.com/perl6/specs/commit/9950d83ede3d1aa77a96ad83fd7549a69fc9e4a5 at some point.
19:35 TimToady I suppose for a heuristic we could just scan forward for a "(
19:35 masak (I saw that there was an XXX about it in the Rakudo grammar)
19:35 masak but I would like us to ponder whether there's a better alternative first
19:35 masak for example, if the main use case is to allow for commutative operators, maybe a trait would do this better
19:43 araujo joined #perl6
19:50 BenGoldberg joined #perl6
19:56 tokuhiro_ joined #perl6
20:12 ZoffixWork joined #perl6
20:18 ZoffixWork Hey all. Please review this PR for a proposed new design of perl6.org: Demo website: http://perl6.xtatik.org/   PR: https://github.com/perl6/perl6.org/pull/22
20:18 ZoffixWork moritz, ^^
20:20 moritz ZoffixWork: I like it
20:20 moritz ZoffixWork: on first glance, the only thing that needs a bit of rework is at the bottom the "more" buttons
20:20 moritz they have too little contrast, IMHO
20:21 Psyche^_ joined #perl6
20:23 ZoffixWork Sure. I can fix that.
20:25 moritz the colors are a bit muted (compared to before, at least), but it's still not boring
20:27 ZoffixWork Yeah, I've tried like 6 different palettes :) The good thing is they can be easily changed: http://getbootstrap.com/customize/#colors
20:27 moritz and s/unicode/Unicode/ :-)
20:28 TimToady I like it; the yellowish green kinda swears at the more bluish green color in camelia's wings, but that's a minor nit
20:29 * [Coke] returns from errands and starts to poke at angular.
20:30 ZoffixWork moritz, footer buttons updated: http://perl6.xtatik.org/  does that look better?
20:30 TimToady so maybe a slightly different hue with the same saturation would be nicer, but then it might clash with the blue buttons
20:30 moritz ZoffixWork: aye
20:30 moritz ZoffixWork: thanks
20:31 moritz ZoffixWork: I want to give others the chance to chime in, and then maybe merge in a day or so
20:31 ZoffixWork Of course.
20:33 [Coke] ZoffixWork: are you the same person that was working on a redesign a month or so ago in perl6-site ?
20:33 FROGGS ZoffixWork: I like it :o)
20:34 FROGGS ZoffixWork: the only thing I'd try changing is the colorset of the top bar
20:34 ZoffixWork [Coke], probably not
20:36 ZoffixWork FROGGS, sure, they are easy to change. I suck with colours. My hope is some genius designer will pick better ones :P
20:36 FROGGS *g*
20:36 ZoffixWork Anyway. I gotta bounce, but I'm still logged in here from home as "Zoffix" and will read the log and comments on the PR :) Cheers!
20:36 FROGGS Zoffix++
20:42 leont Hoe should temp interact with || in rules?
20:42 leont How
20:43 leont I think I'm observing it not reverting on failure of the left hand side, or is it supposed to revert with the entire rule?
20:44 leont Or :temp if I want to be pedantic
20:44 TimToady temp is only scoped to blocks, and not really intended for regexes
20:45 TimToady we revert things by throwing away cursors, generally, so you'd use make to store something you want to throw away later
20:45 abaugher joined #perl6
20:46 leont I'm not sure how else to parse context-sensitive formats
20:46 leont That didn't parse for me
20:46 leont I know cursors exist and have a rough idea of what they do, but how to use them I don't have a clue
20:50 mr_ron joined #perl6
20:50 TimToady sorry, gotto go do sysadminny stuff now, maybe someone else can help
20:50 TimToady afk &
20:51 leont Basically, I need to store an indentation level somewhere
20:51 leont https://github.com/Leont/yamlish/blob/master/lib/YAMLish.pm6#L172
20:53 timotimo oooh that website design is neato
20:54 timotimo [Coke]: i think that was probably smls?
20:57 rurban joined #perl6
20:57 dalek rakudo/nom: 2e92038 | timotimo++ | src/core/ (2 files):
20:57 dalek rakudo/nom: make fail, die and Failure.new cheaper
20:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2e92038e92
21:01 timotimo cool, my rosettacode galton box still works :)
21:05 * [Coke] finds one {{ }} that appears to kill angular1.4.x and hopes he can fix it.
21:05 [Coke] timotimo: I also see we're including jquery just to get tooltips; we should be able to do those with angular bootstrap instead of jquery bootstrap
21:12 TEttinger joined #perl6
21:14 [Coke] any angular users around?
21:15 timotimo sure, throw jquery out
21:16 timotimo i don't even remember any tooltips being used in there
21:16 [Coke] aha, figured it out.
21:17 [Coke] I now have a functioning version with angular 1.4.2
21:18 [Coke] Need to recode one of the functions to avoid an issue, but should be easy. timotimo: anything I should be looking out for? I clicked through all the tabs, no errors.
21:26 vendethiel joined #perl6
21:28 timotimo oh?
21:28 timotimo no errors, eh?
21:28 timotimo that sounds great; can you gimme the code?
21:28 timotimo and what's the function that needs to be recoded?
21:29 timotimo does sorting the routine list feel faster? changing tabs, too?
21:29 timotimo perhaps even less ram usage?
21:29 timotimo oh that would be joyous
21:34 [Coke] timotimo: the function is backgroundColor - it is returning random values, which annoys later version of angular.
21:34 [Coke] I'm trying to find a thing that I can hash to get a constant color in that $scope.
21:35 [Coke] callee's name seems plausible?
21:36 [Coke] nope.
21:36 masak [Coke]: I'm an angular user, and I'm around.
21:36 masak how may I be of service?
21:39 [Coke] I'm looking at the profiler html. there is a CallGraphController - trying to introspect the $scope object to find a unique ID I can use.
21:40 [Coke] Not sure if $scopes have something inherently unique I can use, or if I need to examine the datastructure to find something.
21:45 [Coke] ah, I think I have a lead; I should update backgroundColor to take the callee, and use that, not the scope.
21:47 [Coke] \o/
21:47 [Coke] Ok, I have a working local copy of a profile page working.
21:48 [Coke] double working?
21:50 timotimo awesome
21:55 masak [Coke]++
21:57 tokuhiro_ joined #perl6
21:59 kid51 joined #perl6
22:01 [Coke] testing in a build, one sec.
22:05 [Coke] well, crap. I tried a different one liner to profile on the full build, getting new failures.
22:05 [Coke] Still seems to be mostly working when clicking through, however.
22:06 [Coke] timotimo: https://gist.github.com/coke/b1815d6a28da9dfe9e10 for the WIP
22:06 masak 'night, #perl6
22:06 cognominal Speaking of callgraph https://gist.github.com/cognominal/eedf4128848d4e54ab9a :)  Comment on style welcome.
22:08 [Coke] timotimo: still digging.
22:16 timotimo hum.
22:18 TimToady nine: I can't seem to panda install Inline::Perl5, I get:
22:18 TimToady gcc -Wall p5helper.c `perl -MExtUtils::Embed -e ccopts -e ldopts` -shared -o /home/larry/.panda-work/1443910514_1/blib/lib/Inline/p5helper.so -fPIC -g
22:18 TimToady /usr/bin/ld: cannot find -lperl
22:19 TimToady which is odd, because I have a /usr/lib/libperl.so.5.18.2 out there, and 18.2 is what I'm invoking
22:19 FROGGS TimToady: https://github.com/niner/Inline-Perl5/#building
22:20 cognominal good night
22:20 TimToady okay, but it's a weird error message for that...
22:20 FROGGS TimToady: it is also possible that you need the libperl-dev package to get a libperl.so, without the version suffix
22:21 TimToady that was it
22:22 FROGGS ahh, cool
22:22 TimToady would be nice if panda could point that out somehow...
22:22 _itz I was caught by that as well .. its at least a FAQ candidate
22:22 FROGGS but it is easy to report false positives there... perhaps it should only give tips when failing
22:25 zakharyas joined #perl6
22:26 _sri joined #perl6
22:29 raz9r joined #perl6
22:34 [Coke] masak: the icycle_graph_callee_renderer.html template is fiddly in angular 1.4x. depending on how complex your profiled code is, my patch is sufficient. however, more complicated code starts throwing infdig exceptions.
22:39 ketadmin joined #perl6
22:40 atweiden joined #perl6
22:41 timotimo "infdig"?
22:42 atweiden p6: my @requested = qw<Baz Bazz BazBar FooBar>; my @found = qw<Baz Bazz BazBar>; @requested (-) @found
22:42 camelia rakudo-moar 2e9203: OUTPUT«WARNINGS:␤Useless use of "(-)" in expression "@requested (-) @found" in sink context (line 1)␤»
22:42 atweiden p6: my @requested = qw<Baz Bazz BazBar FooBar>; my @found = qw<Baz Bazz BazBar>; say @requested (-) @found
22:42 camelia rakudo-moar 2e9203: OUTPUT«set(FooBar)␤»
22:42 telex joined #perl6
22:42 atweiden p6: my @requested = qw<Baz Bazz BazBar BazBar>; my @found = qw<Baz Bazz BazBar>; say @requested (-) @found
22:42 camelia rakudo-moar 2e9203: OUTPUT«set()␤»
22:43 atweiden is there a way to make that work for detecting duplicates?
22:50 [Coke] best guess right now: need to call $rootScopeProvider.digestTtl() and up the recursion limit.
22:51 _sri joined #perl6
23:01 [Coke] ff
23:01 [Coke] woot. Fixed.
23:12 jasanj`` joined #perl6
23:13 dalek nqp: 71dbe59 | coke++ | src/vm/moar/profiler/template.html:
23:13 dalek nqp: Update MoarVM profiler output to angular 1.4.2
23:13 dalek nqp:
23:13 dalek nqp: Use consistent bg color, avoid template recursion problems.
23:13 dalek nqp: review: https://github.com/perl6/nqp/commit/71dbe59947
23:17 travis-ci joined #perl6
23:17 travis-ci NQP build failed. Will "Coke" Coleda 'Update MoarVM profiler output to angular 1.4.2
23:17 travis-ci https://travis-ci.org/perl6/nqp/builds/83502339 https://github.com/perl6/nqp/compare/99a21194859c...71dbe59947d8
23:17 travis-ci left #perl6
23:18 dalek rakudo/nom: c52b0b3 | coke++ | tools/build/NQP_REVISION:
23:18 dalek rakudo/nom: bump NQP to get new moarvm profile html page
23:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c52b0b3593
23:19 mr_ron joined #perl6
23:29 [Coke] sadly, still doesn't let me bring up an htmlify run.
23:30 [Coke] (From perl6/doc)
23:39 cognominal joined #perl6
23:58 tokuhiro_ joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo