Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2016-07-26

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:01 Herby_ question: If I know I won't have internet access, what's the easiest way to download/view perl 6 documentation?
00:03 Herby_ or maybe the better question is, is there an easy way to view perl6 docs offline?
00:04 cyphase joined #perl6
00:06 lambd0x Herby_: If you want docs from doc.perl6.org they hold everything in a git repo https://github.com/perl6/doc
00:06 lambd0x clone it to your computer and be happy :)
00:06 parabolize Herby_: clone the repo, build the html files and serve them https://docs.perl6.org/language/​about#Generating_an_HTML_version
00:07 parabolize or you can use p6doc buts its slooooow
00:07 parabolize or just read the source
00:08 Herby_ those tips should get me headed in the right direction, thanks!
00:08 lambd0x Herby_: :)
00:08 Zoffix joined #perl6
00:08 Zoffix Herby_, we have a page for just that purpose: https://docs.perl6.org/perl6.xhtml
00:08 Zoffix OTOH a local build would indeed be nicer :)
00:09 Herby_ Zoffix: this is great, thanks.  I don't need anything fancy, just something incase I get stumped and am offline
00:09 Herby_ and I do get stumped often
00:10 lambd0x Herby_: Normal, I find myself often in need of some reference too
00:15 lambd0x Bye folks
00:19 AlexDaniel joined #perl6
00:31 zacts joined #perl6
00:41 cyphase joined #perl6
00:45 AlexDaniel https://www.reddit.com/r/programmin​ghorror/comments/4n4ad0/htmlmediael​ementcanplaytype_returns_probably/
00:45 yoleaux 25 Jul 2016 16:15Z <TimToady> AlexDaniel: I figgered out a way to fix [+] ... 987 for you
00:45 AlexDaniel oh
00:46 AlexDaniel m: 0, 1, [+] ... 987
00:46 camelia rakudo-moar 041919: OUTPUT«Potential difficulties:␤    Apparent sequence operator parsed as stubbed function argument; please supply any missing argument to the function or the sequence (or parenthesize the ... call, or use 'fail' instead of ...)␤    at <tmp>:1␤    ------> …»
00:47 AlexDaniel cool
00:48 tbrowder joined #perl6
00:50 tbrowder left #perl6
00:54 dainis joined #perl6
00:58 kid51 joined #perl6
01:04 TEttinger joined #perl6
01:13 FROGGS_ joined #perl6
01:17 kid51 joined #perl6
01:18 doublec joined #perl6
01:30 cdg joined #perl6
01:46 zacts hi #perl6
02:01 labster joined #perl6
02:04 Actualeyes joined #perl6
02:07 molaf joined #perl6
02:19 zacts joined #perl6
02:20 dalek doc: 8bd9ff0 | (Wenzel P. P. Peppmeyer)++ | doc/Type/ (2 files):
02:20 dalek doc: doc new behaviour of Nil and add Nilness of subclasses of Nil
02:20 dalek doc: review: https://github.com/perl6/doc/commit/8bd9ff0f9f
02:20 gfldex m: class Baddy is Nil {}; sub niler( --> Any:D ) { Baddy.new }; my $i = 42; $i = niler; dd $i;
02:20 camelia rakudo-moar 041919: OUTPUT«Any $i = Any␤»
02:20 dainis joined #perl6
02:20 gfldex don't subclass from Nil, tyvm
02:22 colomon joined #perl6
02:27 kaare__ joined #perl6
02:29 jersni joined #perl6
02:30 jersni left #perl6
02:34 jersni joined #perl6
02:36 jersni p6: say 3;
02:36 camelia rakudo-moar 041919: OUTPUT«3␤»
02:38 s34n joined #perl6
02:41 noganex_ joined #perl6
02:46 jersni left #perl6
02:47 jms joined #perl6
02:55 dpagurek joined #perl6
03:06 ddd joined #perl6
03:06 ddd good evening
03:18 cyg07 joined #perl6
03:23 bob777 joined #perl6
03:24 dpagurek joined #perl6
03:24 cyg07 p6: say 3;
03:24 camelia rakudo-moar 041919: OUTPUT«3␤»
03:25 dpagurek has anyone ever had issues with scripts crashing when declaring constants in modules, but having them work when declaring with 'my'?
03:27 canopus joined #perl6
03:28 dpagurek I binary searched my program down to this thing, it returns -1 when I use 'constant' and it works when I change it to 'my' https://gist.github.com/davepagure​k/444847bffcae922a7a5fdc386a773a00
03:32 geekosaur mrrr. `constant` is compile time, no?
03:33 dpagurek ahh, is there a different way to declare a runtime variable where the container then can't be reassigned?
03:36 dpagurek when I use the same constant declaration in the script I'm running directly without it being in an imported module it seems to work, that may have been a red herring if I'm not using constant correctly
03:37 geekosaur so I think the problem is related to precomp. once it's been compiled, it's not running from where the source is, it's going to be in the closest CompUnitRepo, so it doesn't find your file. but I'm not sure of how that interacts with things :/
03:39 dpagurek oh ok, that gives me more direction for debugging, thanks!
03:43 bob777 joined #perl6
03:49 cyphase joined #perl6
03:49 cdg joined #perl6
03:57 khw joined #perl6
04:06 khw joined #perl6
04:17 dainis joined #perl6
04:46 snoopy3 joined #perl6
04:50 Cabanossi joined #perl6
04:53 maybekoo2 joined #perl6
04:55 movl joined #perl6
05:13 jazz joined #perl6
05:14 ufobat joined #perl6
05:16 snoopy3 gm
05:22 holyghost joined #perl6
05:30 darutoko joined #perl6
05:42 domm joined #perl6
05:43 cooper joined #perl6
05:43 cooper joined #perl6
05:46 CIAvash joined #perl6
05:49 cooper joined #perl6
05:52 holyghost afk
05:53 ufobat moin :)
06:01 cyphase joined #perl6
06:08 ribasushi joined #perl6
06:11 mohae joined #perl6
06:15 neuron joined #perl6
06:17 neuron m: class A { has $.x; }; class B is A { has $.x; }; A $i; say $i.perl;
06:17 camelia rakudo-moar 041919: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3has $.x; }; class B is A { has $.x; }; A7⏏5 $i; say $i.perl;␤    expecting any of:␤        infix␤        infix stopper␤        statement end␤       …»
06:18 neuron m: class A { has $.x; }; class B is A { has $.x; }; my A $i; say $i.perl;
06:18 camelia rakudo-moar 041919: OUTPUT«A␤»
06:18 neuron m: class A { has $.x; }; class B is A { has $.x; }; my A $i { x=> 5 }; say $i.perl;
06:18 camelia rakudo-moar 041919: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unexpected block in infix position (missing statement control word before the expression?)␤at <tmp>:1␤------> 3x; }; class B is A { has $.x; }; my A $i7⏏5 { x=> 5 }; say $i.perl;␤    expecting an…»
06:18 neuron m: class A { has $.x; }; class B is A { has $.x; }; my A $i { $x => 5 }; say $i.perl;
06:18 camelia rakudo-moar 041919: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unexpected block in infix position (missing statement control word before the expression?)␤at <tmp>:1␤------> 3x; }; class B is A { has $.x; }; my A $i7⏏5 { $x => 5 }; say $i.perl;␤    expecting …»
06:18 masak m: class A { has $.x; }; class B is A { has $.x; }; my A $i .= new(x => 5); say $i
06:18 camelia rakudo-moar 041919: OUTPUT«A.new(x => 5)␤»
06:19 masak neuron: if you want to iterate/experiment with camelia, there's also the option of privmsg with her.
06:19 neuron Ah!
06:19 neuron sorry about that
06:19 masak (in this case, though, it gave you some hints from channel, so there is that) :P
06:19 masak it's a, whatchamacallit, balance
06:20 neuron hmph
06:20 masak neuron: I think the unstated question in your eval is "which $.x did I set?" -- A's
06:21 masak er, B's :)
06:21 neuron exactly
06:21 * masak reads minds
06:21 neuron I want to see whether class B has on $.x, or two $.x
06:21 neuron damn you are good :)
06:21 masak only one $.x
06:21 masak think of the `.` as a *method*
06:21 masak the B method overrides the A method
06:22 masak the instance does have two $!x storage locations, though
06:22 neuron Right. I had the feeling it will be like that, just was trying to make camelia to prove to me :)
06:22 masak but since you're only talking to the B $.x method, you end up interacting only with the B $!x
06:23 neuron ah, two storage locations? That's not good for me. I have been doing silly things then
06:23 * masak tries to think of a way to demonstrate there are two storage locations
06:24 neuron I naively thought .perl would give me the guts of the variable
06:24 masak m: class A { has $!x = "A"; method aye { say $!x } }; class B is A { has $!x = "B"; method bee { say $!x } }; given B.new { .aye; .bee }
06:24 camelia rakudo-moar 041919: OUTPUT«A␤B␤»
06:24 masak there you go.
06:24 masak .perl used to be more "guts of the variable"
06:24 masak but we kind of tarnished/destroyed that with a bit too much OO thinking :/
06:25 masak arguing (wrongly) that "only public things should be visible in .perl"
06:25 neuron :)
06:25 masak the whole thing did give me a better appreciation of the nuances of public/private, though
06:25 masak so it wasn't a total loss
06:26 masak perhaps slightly more seriously, .perl is meant to round-trip (as good as possible) with EVAL
06:26 masak which means it's constrained by what .new can accept, which happens to be only public things
06:26 masak (which, yes, is also wrong)
06:27 ShimmerFairy it's the (PRINT) to EVAL's (READ), in Lisp terms :P
06:27 neuron I'm trying to create an object which is repr<CPPstruct> using nativecall and add some more attributes to it.
06:27 neuron That itself does not seem to be possible: CPPStruct representation only handles int, num, CArray, CPointer, CStruct, CPPStruct and CUnion
06:28 neuron So I am trying to think that there should be two objects - one repr<cppstruct> and one encapsulating it and containing more attributes
06:28 masak naughty ShimmerFairy, have you been doing Lisp lately? :P
06:28 neuron By any chance, would this be a scenario someone else alredy tried?
06:29 masak neuron: I feel the question is out of my league -- not used to thinking in reprs
06:29 masak neuron: but it does have the vibe of mixing in roles... maybe
06:29 masak is this something you have considered?
06:30 neuron Yeah, I might have taken something too big. To learn p6 I thought that I would make QT library wrapper for it :)
06:30 * neuron checking what mixing in roles is
06:30 masak m: class A { has $.x = "A" }; role R { has $.y = "R" }; my $a = A.new; $a does R; given $a { say .x; say .y }
06:30 camelia rakudo-moar 041919: OUTPUT«A␤R␤»
06:30 masak like that.
06:30 masak you have `does` which is destructive, and `but` which does a clone first
06:31 masak under the hood, you end up with an instance of an anonymous subclass of A, with R mixed in
06:31 firstdayonthejob joined #perl6
06:32 neuron Hmmm, /me not being used for such wacky object design :)
06:32 neuron But thanks for the pointer, that looks promising
06:35 masak yes, it's a bit of a power tool, with all the caveats that implies
06:35 masak but also occasionally just the thing
06:36 * masak learns that TravisCI has been reporting test failures for 007 since 2016-07-10
06:36 masak seems something changed in Rakudo around that time
06:36 masak `This type (Scalar) does not support positional operations` -- does this failure sound familiar to anyone?
06:37 neuron masak: thank you
06:50 RabidGravy joined #perl6
06:50 dalek Inline-Perl5: 6cd75d0 | niner++ | t/lib/ (2 files):
06:50 dalek Inline-Perl5: Add mising test files
06:50 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/6cd75d0d31
06:53 cibs joined #perl6
06:58 masak ok, minimiz'd
06:58 masak m: my @a; @a.splice(0, 0, 42); say @a
06:58 camelia rakudo-moar 041919: OUTPUT«This type (Scalar) does not support positional operations␤  in block <unit> at <tmp> line 1␤␤»
06:58 * masak submits rakudobug
06:58 masak bisectable: my @a; @a.splice(0, 0, 42); say @a
06:58 bisectable masak: bisect log: https://gist.github.com/1bee​a81fc4c0f7c56d672e0b3330b44d
06:58 bisectable masak: (2016-07-08) https://github.com/rakudo/rakudo/commit/58c2628
06:58 moritz bisectable++ AlexDaniel++
06:58 masak the date seems to match when the failures started in 007
06:58 bisectable moritz: Exit code is 1 on both starting points, bisecting by using the output
06:58 bisectable moritz: bisect log: https://gist.github.com/565a​cf78214f9ac7faa9cb9b41dab392
06:58 bisectable moritz: (2015-12-27) https://github.com/rakudo/rakudo/commit/373adc0
06:59 masak moritz: haha, you found a bisectable bug ;)
07:03 moritz it's a bit trigger happy
07:04 masak I'd say mandate a colon
07:09 domidumont joined #perl6
07:13 domidumont joined #perl6
07:14 masak I have two test failures in t/spec/S10-packages/basic.t (on Rakudo-Moar)
07:15 masak tests 47 and 48 both say "Error: P6M Merging GLOBAL symbols failed: duplicate definition of symbol Foo"
07:15 masak on HEAD (041919)
07:15 masak can anyone confirm this?
07:15 lizmat masak: yes, they've been there since 43debec892f0bdaf0c474d0
07:15 lizmat nine is aware of it, afaik
07:16 lizmat the whole test-file is a bit, what shall I say, pre-CUR
07:16 masak ah.
07:16 lizmat with p5 notions of "use lib" sprinkled liberally in the test file
07:16 wamba joined #perl6
07:16 masak I have no context for what you're describing, but I'm glad there's awareness of the test failures.
07:17 lizmat since that commit, two whole test-files failed, but I could fix those by re-ordering use statements
07:22 masak I ran the spectest to get a baseline. now rebuilding with 58c2628, and re-spectesting.
07:22 masak 58c2628 reverted*
07:25 masak what -- it doesn't even build
07:26 masak fails during Stage optimize with "This type (Scalar) does not support associative operations"
07:26 masak I tried realcleaning and re-configuring. same result.
07:27 sno joined #perl6
07:27 * masak tries `git clean -xdf` too
07:29 masak ...still the same error.
07:30 * masak tries building from 58c2628^
07:33 masak ...that works.
07:33 masak interesting. so we're in a situation where we know which commit is faulty, the commit reverts without conflict, but the build is broken after the revert.
07:33 * masak reports all this to RT
07:36 lizmat and I will look at it later today
07:36 masak ++lizmat
07:36 neuron class A {}; class B is A {}; my $x = B.new(); is there a way to tell that $x is A?
07:37 masak m: class A {}; class B is A {}; my $x = B.new(); say $x ~~ A
07:37 camelia rakudo-moar 041919: OUTPUT«True␤»
07:37 zakharyas joined #perl6
07:37 neuron .WHAT says (B)
07:37 nine masak: the real cause is commit 0498e803b59c3fd93fafc24957ef9a8c9dfaab0d which extended our use of precompilation into new situations where we bailed out before. Commit 43debec892f0bdaf0c474d09c5805d1015fcae6d just fixed a bug that hid the underlying problem.
07:38 neuron masak: Yes, but can I list what all classes $x is composed from?
07:39 moritz m: class A {}; class B is A {}; say B.^mro
07:39 camelia rakudo-moar 041919: OUTPUT«((B) (A) (Any) (Mu))␤»
07:39 moritz m: class A {}; class B is A {}; say B.^parents(:all)
07:39 camelia rakudo-moar 041919: OUTPUT«((A) (Any) (Mu))␤»
07:40 masak lizmat: questions that mystify me currently: (a) how can t/spec/S32-array/splice.t even pass while we have RT #128736?
07:40 synopsebot6 Link:  https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=128736
07:40 * lizmat clickbaits  https://p6weekly.wordpress.com/201​6/07/25/2016-30-fresh-rakudo-star/
07:40 masak (b) why doesn't reverting help? what else has happened since then which messes up the revert without a content conflict?
07:41 lizmat masak: I have no idea currently, but am deep in another optimisation atm and would like to keep my frame of mind focussed on that
07:41 neuron moritz: Ah, this way!
07:41 neuron Thanks
07:41 masak lizmat: oh, for sure. didn't mean to yank you out of any frame-of-mind :)
07:41 masak just listing mysteries for later
07:44 zacts joined #perl6
07:45 labster joined #perl6
07:45 xescugc joined #perl6
07:46 nine masak: I have no idea either. I should be able to find some time this evening to dig into it.
07:48 masak another (unrelated) thing I'm mystified by: people using statement-modifying `with` instead of statement-modifying `given` for no reason
07:48 masak here: https://www.reddit.com/r/perl6/comments/4ud7v​c/a_python_guy_in_perl_6_object_land/d5r1img
07:48 masak ...or am I missing some excellent reason to use `with` there?
07:49 masak isn't the extra semantics on top of `given` "skip this statement if `self` is undefined" ?
07:57 cpage_ joined #perl6
07:58 neuron If I change moar-nom/lib/NativeCall.pm6, how do I recompile rakudo? "rakudobrew build moar" seems to recompile everything
07:58 neuron Or do I have to recompile everything?
07:58 moritz neuron: if you change files yourself, you shouldn't use rakudobrew
07:59 moritz just work in a git clone, and then recompiling is just "make"
07:59 moritz (and "make install")
08:00 xescugc joined #perl6
08:00 neuron I did try just running 'make', maybe I need 'make install' so that changes in NativeCall.pm6 are installed
08:03 neuron Yup, that's it, thank you
08:05 dakkar joined #perl6
08:06 Ven_ joined #perl6
08:06 neuron m: use NativeCall; class A is repr<CPPStruct> {}; class B is A {}; my $x= B.new(); say $x.REPR;
08:06 camelia rakudo-moar 041919: OUTPUT«P6opaque␤»
08:06 neuron Shouldn't it be CPPStruct too?
08:13 masak I... don't know. curious.
08:14 masak do reprs inherit?
08:14 neuron From my point of view they should, but they don't
08:15 neuron But I don't have wide enough knowledge to claim that :)
08:17 masak I can sort of argue that one both ways...
08:17 masak though the case for "yes, they inherit" seems slightly stronger, perhaps?
08:18 holyghost joined #perl6
08:19 Woodi joined #perl6
08:22 * masak always enjoys reading Zefram's bug reports
08:22 neuron I think I'll file a bug we'll see :)
08:23 masak like https://rt.perl.org/Ticket/Display.html?id=126101, for example. that's fun!
08:24 masak m: my $a = 0.99999999999999999999999; say $a > 1
08:24 camelia rakudo-moar 041919: OUTPUT«True␤»
08:24 masak marketing^Wordering -- we suck at it
08:25 DrForr Well, I'm working on the marketing bit :)
08:26 masak DrForr++
08:28 cosimo I'm surely not the first one to think about this, but... http://stackoverflow.com/documentation/perl6 :-(
08:29 psch m: class A { method foo { .perl.say with self; .perl.say given self } }; A.foo; A.new.foo
08:29 camelia rakudo-moar 041919: OUTPUT«A␤A.new␤A.new␤»
08:29 cosimo anything that can be done there?
08:30 psch masak: given doesn't care about what it sets $_ to, its with that wants definedness
08:30 psch ...my example only shows the difference exists though
08:30 psch m: class A { method foo { .perl.say with self; say ""; .perl.say given self } }; A.foo; A.new.foo
08:30 camelia rakudo-moar 041919: OUTPUT«␤A␤A.new␤␤A.new␤»
08:31 abraxxa joined #perl6
08:35 masak psch: yes, that's what I meant. `with` only runs if the expression is defined. sorry if I phrased it less-than-clearly :)
08:36 psch masak: well, using with there means you don't need the :D invocant marker..?
08:36 psch masak: granted, i don't think that's the reason for with in the example
08:38 psch m: class A { has $.b is rw; method set-b($a) { .b = $a with self } }; A.set-b("foo")
08:38 camelia rakudo-moar 041919: ( no output )
08:38 psch m: class A { has $.b is rw; method set-b($a) { .b = $a with self } }; A.set-b("foo").b.say
08:38 camelia rakudo-moar 041919: OUTPUT«Method 'b' not found for invocant of class 'Slip'␤  in block <unit> at <tmp> line 1␤␤»
08:39 psch i mean, that's kind of crazy way of declaring non-static methods, but it does work
08:39 psch s/non-static/instance/ # too much java recently :)
08:46 DrForr cosimo: (after signing up) "This tag is too new, or too low activity..." Another system to be gamed in order to get something accomplished?
08:47 DrForr It also says that documentation itself is in beta.
08:58 cosimo joined #perl6
09:00 maybekoo2 joined #perl6
09:10 nowan joined #perl6
09:16 sftp joined #perl6
09:16 zacts joined #perl6
09:17 sftp joined #perl6
09:37 dj_goku joined #perl6
09:38 cosimo joined #perl6
09:43 s34n joined #perl6
09:44 tbrowder joined #perl6
09:49 hwcomcn joined #perl6
09:53 hwcomcn joined #perl6
10:15 Ven_ joined #perl6
10:15 dalek doc/predefined_search: 2141eca | Altai-man++ | / (3 files):
10:15 dalek doc/predefined_search: Now we take predefined search values from outer file
10:15 dalek doc/predefined_search: review: https://github.com/perl6/doc/commit/2141eca64b
10:24 dalek doc: 5f71718 | (Wenzel P. P. Peppmeyer)++ | doc/Type/IO/Path.pod6:
10:24 dalek doc: remove a few :D because they are a lie
10:24 dalek doc: review: https://github.com/perl6/doc/commit/5f71718231
10:27 sena_kun joined #perl6
10:34 travis-ci joined #perl6
10:34 travis-ci Doc build passed. Altai-man 'Now we take predefined search values from outer file'
10:34 travis-ci https://travis-ci.org/perl6/doc/builds/147427350 https://github.com/perl6/doc/commit/2141eca64bc9
10:34 travis-ci left #perl6
10:46 rindolf joined #perl6
10:50 dvinciguerra_ joined #perl6
11:05 Zoffix stmuk, I forgot to respond at the time, but the guy on Reddit isn't wrong. It's the *language* that's in production, but rakudo is still beta. I believe the Christmas release announcement said so too. RE: <stmuk> I was trying to stress the "production" or "release" nature of R* following the guy on reddit saying it was still in beta
11:06 Zoffix (or at least that's how I remember it. And current stability and bug amount in Rakudo corroborates it being a beta-level software)
11:07 gfldex Zoffix: Rakudo was in beta until https://github.com/rakudo/rakudo/​blob/nom/docs/announce/2015.12.md
11:12 ZoffixMobile joined #perl6
11:13 ZoffixMobile But that very page states it's .0 qualityDo not expect the level of perfection that you see in established products. This is essentially a .0 release of a compiler. We do not claim an absence of bugs or instabilities. We do not claim the documentation is complete. We do not claim portability to many architectures. We do not claim that all downstream software will work correctly:
11:14 ZoffixMobile And then proceeds to clarify that it's the language that's stable
11:19 DrForr How hard would it be (putting my foot in it, I know) to set up something akin to what enlightenment.org does that provides a separate PPA repository that we can control?
11:21 nebuchadnezzar DrForr: we may ask enlightenment.org how they do?
11:22 ZoffixMobile Not sure what "a .0 release" is TBH. Is it 1.0? Is it 0.0?
11:22 psch 6.0 :)
11:22 gfldex .0 means: not beta anymore but expect more bugs then usual
11:22 Woodi DrForr: PPAs are for Ubuntu ? Debian repo is just ftp/http and have broader usage
11:23 ZoffixMobile I see
11:24 DrForr Woodi: Yeah, I was really speaking in more general terms; providing a repository that we control and can update without relying on Debian to accept stable versions and such.
11:24 moritz DrForr: there's a nice command line tool called aptly for managing Debian repositories
11:25 DrForr And yeah, PPA is Ubuntu specific. It's just that "I just installed from apt-get and the latest features don't work" looks like it's starting to become a problem.
11:25 nebuchadnezzar DrForr: I think the best thing to do it to work on -backports
11:25 moritz DrForr: that, a GPG key and 5 lines of HTTP server config is all it takes to create a repo
11:26 kid51 joined #perl6
11:26 moritz if somebody provides the packages, I'm happy to set up the repo
11:26 nebuchadnezzar DrForr: or setup an reprepro
11:26 nebuchadnezzar DrForr: you cloud look at https://wiki.debian.org/SettingU​pSignedAptRepositoryWithReprepro
11:27 DrForr Hrm. Something to look into over (well, not this weekend - I'll be in AMS) next weekend... I've done Debian packaging befoer.
11:28 DrForr I'm also kind of being selfish because I want people to be able to install the latest with their package manager; I have a training course coming up and it'd be nice to have a repo I can point people to.
11:30 DrForr Maybe I should take on doing next month's release and see how much work it is to squeeze a repo out of that... (see what I mean by putting my foot in it?)
11:30 DrForr Bathroom break, back in a few.
11:30 cooper joined #perl6
11:33 nebuchadnezzar DrForr: for what I know, we are only two people to make the Debian packaging (https://tracker.debian.org/news/786610), now if you want the latest package on stable Debian, we could work some -backports packages (https://backports.debian.org/), but we may need more man power
11:36 jonadab joined #perl6
11:42 DrForr Cool. I'm mostly concerned about people being able to install easily, and later on using the same pathway to being able to install perl6-* modules.
11:42 Ven_ joined #perl6
11:44 jdv79 is it hard to install now?
11:45 DrForr Not now, but the fewer barriers to adoption the better.
11:47 DrForr Disclaimer: I use rakudobrew exclusively, just because I need source to play with.
11:47 jdv79 in p5 land i've never used rpm repos for anything
11:48 jdv79 usually just compile a p5 and then cpan it
11:49 DrForr I don't either, but adding 'apt-get foo bar perl6-baz perl6-qux' to a Docker or Vagrant commandline is easier than adding rakudobrew commands.
11:50 jdv79 ok
11:50 dalek joined #perl6
11:53 tadzik joined #perl6
11:53 DrForr Toolsets change, and when I was doing my last training session most of 'em just did an apt-get because that's what they're comfortable with. If they'll get the latest version that way now I'm just fine with that, I just want to cut down on the number of complaints about X not working because they don't have the latest version. Of course, for every person that does that there are probably five (being optimistic here) that think "Huh. Have I... oh
11:55 s34n joined #perl6
12:04 kanishka joined #perl6
12:06 bob777 joined #perl6
12:06 nebuchadnezzar DrForr: if you want, you can follow the Debian perl6 group on alioth https://alioth.debian.org/projects/pkg-rakudo/
12:10 DrForr Nod.
12:17 Matthew[m] joined #perl6
12:17 M-Illandan joined #perl6
12:17 pr1 joined #perl6
12:21 pr1 Hi, why does "'abcd;efgh 2332;ijk:+'.comb(/< .* - [ ; ]>/).say" return (; ;) instead of ("abcd", "efgh 2332", "ijk:+")? Many thanks. pr1
12:22 DrForr Probably because your <..> expression treats 'abcd' as wha to split on. All you should need is /<[ ; ]>? there?
12:23 tadzik are you trying to effectively do .split(/;/)? :)
12:23 DrForr Er, /<[ ; ]>/ # dratted shift key.
12:23 pr1 @tadzik: yes, but in perl6 :-)
12:24 pr1 Lame joke. I'm just playing with .comb
12:26 gfldex m: dd 'abcd;efgh 2332;ijk:+'.comb(/<-[;]>+/);
12:26 camelia rakudo-moar 2efb01: OUTPUT«("abcd", "efgh 2332", "ijk:+").Seq␤»
12:27 pr1 @DrForr: 'abcd;efgh 2332;ijk:+'.comb(/<[ ; ]>/) returns (; ;), not ("abcd", etc.)
12:28 frithnanth joined #perl6
12:28 DrForr yeah, <-[;]> .. that's what I get for not RTFM.
12:29 pr1 @DrForr: getting closer: (a b c d e f g h   2 3 3 2 i j k : +)
12:29 frithnanth Hi, some days ago I committed a little project on GitHub and I added my module to META.list on ecosystem.
12:29 frithnanth Or so I think :-) Can anyone confirm that I really succeeded in doing that for this project: https://github.com/frithnanth/perl6-Desktop-Notify ?
12:30 DrForr /<-[;]>+/
12:30 tadzik I don't see it on http://modules.perl6.org/#q=Desktop
12:30 gfldex frithnanth: you can check in https://github.com/perl6/eco​system/blob/master/META.list
12:31 tadzik right, it's not there
12:31 frithnanth OK, I'll try again
12:32 pr1 @DrForr: my temporary conclusion is that you can do split on groups of distinct characters with .comb
12:32 perlpilot prl: not sure if your "why" question was really answered ...  the pattern to .comb is what to keep; in your pattern you've got a quote words of ".*" "-" "[" ";" "]" and the only part of that that matches your string is the ";"
12:33 perlpilot pr1: ergo, it keeps the semicolons
12:34 DrForr It's more meant to *retain* whatever the regex matches, so /<-[;]>+/ returns a list of the terms that match.
12:37 pr1 joined #perl6
12:39 frithnanth Can anyone check if my pull request is there now?
12:39 Woodi DrForr: re Debian packaes: if we will have our repo then we will want dayly or weekly packages :)  but also standard Debian repos are autamagically trusted so promoting our repo shouldn't be priority...
12:39 moritz pr1: there's nothing wrong with .split, really. If you're more in a split mindset, use it rather than .comb
12:40 moritz we just encourage folks to get more into the "what am I looking for?" mindest rather than "what do I have to throw away?"
12:40 dalek ecosystem: 8627cf2 | frithnanth++ | META.list:
12:40 dalek ecosystem: Desktop::Notify is a set of simple bindings to libnotify using NativeCall.
12:40 dalek ecosystem:
12:40 dalek ecosystem: See: https://github.com/frithnanth/perl6-Desktop-Notify
12:40 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/8627cf235a
12:40 dalek ecosystem: d4c68c5 | (Zoffix Znet)++ | META.list:
12:40 dalek ecosystem: Merge pull request #228 from frithnanth/patch-2
12:40 dalek ecosystem:
12:40 dalek ecosystem: Desktop::Notify is a set of simple bindings to libnotify using Native…
12:40 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/d4c68c5a7a
12:40 dvinciguerra_ joined #perl6
12:40 ufobat yay:D
12:41 frithnanth :-)
12:42 yqt joined #perl6
12:43 DrForr Woodi: Thanks. I really haven't done much research into this matter, and it shows :) I'd just seen a few people cropping up with that problem, figured there had to be an underlying reason.
12:43 moritz frithnanth++
12:44 pr1 Hi, why does '3' ~~ / < [\d] > / return Nil? Thks.
12:44 tadzik oh, libnotify :)
12:44 perlpilot pr1: when you have a space after the <, then < > becomes quote-words just like in normal perl code
12:45 timotimo m: say '[\d]' ~~ / < [\d] > /
12:45 camelia rakudo-moar b294e9: OUTPUT«「[\d]」␤»
12:45 gfldex DrForr: if you believe that the debain folk are a little slow with providing recent packages, you may want to sends them a message and ask if there is any specific reason for that and if we can change stuff on our end to help them to get packages out more frequently.
12:46 DrForr Whoa. I'm not criticising anyone here. I'm just saying that I've seen a few people lately with old rakudo builds.
12:47 perlpilot pr1: in general, the character immediately after the < determines what meta-syntax you're actually using.  So, character classes start with "<[" or "<-" or "<+"  (no intervening whitespace)
12:48 moritz considering that there's a new Debian Stable every 12 or 18 months or so, maybe that's not the primary distribution channel we should aim for right now
12:48 gfldex DrForr: in that case I believe that the debian folk are a bit slow to provide recent packages. Bless them, they got way to much on their table already.
12:48 Woodi DrForr: becouse not everyone things debian testing is the Greatest OS available. no idea why... ;)
12:50 telex joined #perl6
12:52 DrForr Again, I'm not criticising, and I'm not shouting that we have to force people to update worldwide, and I'm well aware that I'm probably seeing confirmation bias; if you're coming here you're more likely to have a problem than not.
12:53 timotimo i was on debian sid for a long while
12:54 gfldex DrForr: my point is that the problem of slow packageing may be a very simple thing. Maybe they depend on a mailing list that is telling them about our monthly release. Or they don't quite now that they don't need to wait for a star release.
12:54 gfldex s/now/know/ # ENEEDMORETEA
12:56 DrForr Ah, thanks. I probably shouldn't be in a serious conversation here right now anyway... <looks at two terminals that demand attention.. And FB pushing changes.. and Twitter feeds scrolling windows.. and Slack notifications... And Skype...>
12:56 Woodi DrForr++ # work++ :)
12:59 DrForr Just grousing at applications demanding attention in lieu of money. And knowing that even if they let me pay I'd still get bombarded with ads, just more targeted.
13:00 DrForr Luckily windows can be hidden and ads blocked, then they start beeping in order to make themselves known.
13:03 gfldex I just checked and 2016.07.1-1 is in unstable. There seam to be no blockers so it will propagate to testing automatically.
13:03 * moritz loves that in a new firefox, you can disable sound per tab
13:04 timotimo also possible in google-chrome :)
13:04 timotimo (it may still be behind a chrome://flags checkbox, though)
13:05 CIAvash Isn't "source-url" in META6.json necessary?
13:07 bob778 joined #perl6
13:07 unmatched} .ask AlexDaniel why did you tell me that I should be fixing things in http://irclog.perlgeek.de/p​erl6/2016-07-22#i_12892225 ? As far as I can tell, I'm actually doing it right. `source-url` is not in the spec
13:07 yoleaux unmatched}: I'll pass your message to AlexDaniel.
13:09 unmatched} CIAvash: thjere's support -> source but it's optional
13:09 unmatched} Though I'm unsure how our ecosystem will handle it. I guess we'll find out with frithnanth's module
13:10 CIAvash Yeah, I thought module installers use that url
13:11 jdv79 unmatched}: no.  that's panda.
13:11 unmatched} jdv79: mp tjat
13:11 unmatched} jdv79: no that's pandda what?
13:11 jdv79 META.info i mean
13:12 unmatched} jdv79: the source-url?
13:12 jdv79 META6.json it should be support.source iirc
13:12 jdv79 yes
13:12 unmatched} Yeah, that's what I recollect too.
13:13 unmatched} Tho we still list `source-url` in the docs: https://docs.perl6.org/languag​e/modules#Distributing_Modules
13:13 jdv79 hmm, wonder if that's good
13:13 unmatched} The whole topic of what should be in the META file is a bit confused :)
13:14 jdv79 i wasn't aware of that.  ugexe probably knows more.  but META6.json is speced
13:14 jdv79 META.info is the legacy unoffical thingee
13:14 unmatched} A few days ago, ugexe said that http://design.perl6.org/S22.html#META6.json is up to date, except for the `resources` field details
13:15 jdv79 meanwhile zef's META6.json has source-url:)
13:15 unmatched} XD
13:15 jdv79 i wonder if that's so panda can install it?
13:15 jdv79 ugexe: ^^
13:15 sufrostico joined #perl6
13:16 unmatched} According to AlexDaniel's counts, out of 680 modules there are only 26 modules with support.source instead of support-url and 19 of them are mine
13:18 pdcawley_ joined #perl6
13:18 CIAvash https://github.com/tadzik/panda/b​lob/master/lib/Panda.pm#L136-L137
13:19 holyghost joined #perl6
13:19 unmatched} And it dies if both are missing, yet source-url is not specced and support.source is optional
13:19 jdv79 whichever.  just choose one please.
13:19 jdv79 and spec it and version the other out over time
13:20 jdv79 amazing how some stuff is still mushy at this point
13:20 unmatched} Unless someone wants to do 660 PRs, I think source-url the contender to stay, based on just use alone
13:20 unmatched} Shorter to type too.
13:20 jdv79 it is optional because there should be an index
13:21 jdv79 there has to be.  how do you fetch META6.json from somewhere without already knowing where somewhere is:)
13:21 tadzik re stuff being mushy, do not underestimate the inertia of existing code :)
13:21 unmatched} :)
13:21 tadzik I had to check, but I woudn't be very surprised if SHELTER was still a thing :)
13:22 unmatched} It is :)
13:22 tadzik waitwhat
13:22 tadzik oh, it's just in mu now
13:22 tadzik yeah, see :)
13:22 unmatched} https://github.com/perl6/m​u/tree/master/misc/SHELTER
13:23 tadzik it dates back to either the birth of panda or a bit before that
13:25 skids joined #perl6
13:26 canopus joined #perl6
13:30 brrt joined #perl6
13:33 jeek tadzik: Love the nick
13:34 * tadzik *blushes*
13:35 unmatched} Well, I opened an issue on the whole META6.json stuff: https://github.com/perl6/doc/issues/764
13:35 unmatched} GitHub won't let me stick any labels on it for some reason :\
13:46 moritz unmatched}: which label do you want me to add?
13:47 moritz unmatched}: "docs" I guess?
13:53 unmatched} moritz: I wanted "BIG" since the fix would require either fixing all of our tooling or changing what the speculation dictates
13:54 rindolf joined #perl6
13:54 ugexe source-url was never a spec'd key. its an ecosystem spec
13:55 ptolemarch joined #perl6
13:56 ugexe and you can't really make it mandatory because of darkpans
13:58 unmatched} Then we just need to fix the tools that explode when no URLs are given
13:58 ugexe the ecosystem could refuse to index them
13:58 ugexe source-url could be seen as an ecosystem related meta6 extension
13:59 unmatched} Sounds good
14:01 moritz unmatched}: ok, I've added the "big" label
14:02 unmatched} moritz++
14:03 timotimo why "big" and not "BIG" or even "BIG"?
14:04 smls joined #perl6
14:04 jdv79 there are no darkpans yet are there?
14:05 jdv79 there is barely a cpan
14:05 smls What's this on latest rakudobrew update:   "===> Install [FAIL] for zef:auth('github:ugexe'): zef:ver<*>:auth<github:ugexe>:api<> already installed"
14:05 unmatched} As far as I can tell, modules.perl6.org doesn't care about source-url and uses the meta file URL to get the repo details from.
14:05 unmatched} smls: the error says it's already installed...
14:06 unmatched} zef uninstall zef; # will probably work
14:06 jdv79 yes.  its that one file for modules.  cpan doesn't care either cause it just knows.
14:07 unmatched} Amusingly, it uses source-url to ascertain panda compliance and I think that's used in Koality score too ^_^
14:07 smls unmatched}: `zef uninstall zef` fails with  "Method 'meta' not found for invocant of class 'Zef::Distribution'"  :S
14:07 smls I guess I have to nuke my rakudobrew again
14:08 unmatched} *shrug*
14:08 ugexe smls: oh, yea you probably need to nuke because of the Distribution changes in 2016.07
14:08 unmatched} smls: I have this aliased for `update-perl6`: update-perl6 is aliased to `rm -fr ~/.zef; rm -fr ~/.perl6; rm -fr ~/.rakudobrew/; git clone https://github.com/tadzik/rakudobrew ~/.rakudobrew; rakudobrew build moar; rakudobrew build zef;  *installation of some modules that I commonly use*
14:09 jdv79 metacpan6 would just use it to expose the repo on the left rail iirc
14:09 unmatched} How is that going, BTW?
14:10 unmatched} Any progress since we last talked about there being no volunteers to do the work and no progress? :)
14:11 jdv79 i haven't looked at it for a couple months.  other things came up.  iirc its just a bunch of minor issues.
14:11 jdv79 i basically stopped when mst said there was some cpan issues
14:11 jdv79 they may be fixed now...?  mst: ^^?
14:11 jdv79 as soon as we can use cpan i think we can move forward easier
14:11 jdv79 :)
14:12 unmatched} :)
14:13 jdv79 and then zef was, around that time, just getting the first hints of cpan support
14:14 jdv79 so its on the edge of being useable maybe
14:15 unmatched} Sweet
14:15 jdv79 and then one complicated issue is how hard it is to gen docs
14:15 jdv79 TimToady said maybe we could relax the runtime requirements for the majority but that seems like a lot of work
14:19 brrt joined #perl6
14:30 nine smls: if you need to nuke thats a bug that I'd like to see reported
14:31 nine ugexe: ^^^
14:31 smls nine: I did nuke, and now everything works fine.
14:32 nine smls: darn :/
14:32 smls (Maybe it's because I was using moar-blead?)
14:32 ugexe nine: its because zef subclassed Distribution. he upgraded rakudo to the new Distribution stuff but zef still had the old code so it couldnt update itself. rakudobrew build zef fails because of version: "*"
14:32 nine smls: no, the only situation at all where nuking may be necessary is when you downgrade
14:33 nine ugexe: yes that's a bug
14:34 kurahaupo joined #perl6
14:34 MorayJ joined #perl6
14:34 ugexe its the fake role / submethod new things in Distribution
14:35 nine ugexe: it means we broke the promise of backwards compatibility and we should fix it
14:35 ugexe oh, i pointed out this before and thought it was known
14:36 nine ugexe: can you please have a look? You're definitely the one most familiar with the code
14:45 ugexe m: role Foo { submethod new(*%_) {class :: { has $.bar; }.new(|%_)} }; say Foo.new(bar => 1).bar; class Foo2 is Foo {}; say Foo2.new(bar => 2).bar
14:45 camelia rakudo-moar b294e9: OUTPUT«1␤Method 'bar' not found for invocant of class 'Foo2'␤  in block <unit> at <tmp> line 1␤␤»
14:46 holyghost joined #perl6
14:47 avenj joined #perl6
14:49 ugexe my suggestion before was if backwards compat was a to priority that the Distribution interface role would need to be named Distribution::Interface or some such https://gist.github.com/ugexe/7​2b5e491fddb977f75a650039725872a
14:53 ugexe m: role Bar { method meta {1}; method content {1}; }; class Foo does Bar { }; my $foo = Foo.new but Distribution; $foo.meta # as a contract role it's also off
14:53 camelia rakudo-moar b294e9: OUTPUT«Method 'meta' must be implemented by Foo+{Distribution} because it is required by role Distribution␤  in block <unit> at <tmp> line 1␤␤»
14:53 nine Well I didn't know that what we ended up implementing was not compatible enough. I just don't know zef's code as well as you
14:55 ugexe i mentioned zef subclassed Distribution after you said we probably didn't have to worry about anyone subclassing Distribution, but it must have got burried
14:56 mst I don't remember seeing that in #perl6-toolchain, sorry
14:56 mst ugexe: is this another case where you keep ignoring the toolchain channel and saying things in here and they get lost?
14:56 Tonik joined #perl6
14:57 mst or did I just completely flake on noticing that line
14:57 ugexe mst: https://irclog.perlgeek.de/​perl6/2016-06-26#i_12738185
14:57 mst ugexe: yeah, not in here
14:57 mst ugexe: in -toolchain which I created specifically so things like this *didn't* get buried
14:57 mst ugexe: which you keep not using, and then they get buried :P
14:58 mst I have already solved the problem. use the solution please.
14:58 khw joined #perl6
15:00 unmatched} Heh, this is amusing :) https://github.com/rails/rails/commit/b​83965785db1eec019edf1fc272b1aa393e6dc57
15:00 inokenty joined #perl6
15:03 * unmatched} didn't even know we had a -toolchain
15:03 unmatched} There's -dev, and -release ETOOMANYCHANNELS
15:04 timotimo and also -noise-gang
15:04 perlpilot unmatched}: aye, but you don't have to be in all of them.
15:05 unmatched} And -gaming too, eh?
15:05 unmatched} perlpilot: but apparently some dev stuff is missed if you aren't :)
15:06 dalek doc: e6261d7 | TimToady++ | doc/Type/Nil.pod6:
15:06 dalek doc: contrast Nil with Failure and Empty
15:06 dalek doc:
15:06 dalek doc: Explain relationship of Nil with Failure a bit better.  On assignment, only
15:06 dalek doc: Nil resets a container to default; Failure or other derived classes never do.
15:06 dalek doc: Failure.new passes Any:D but will fail Int:D.  Mention that Empty is available
15:06 dalek doc: for non-space-taking purposes.
15:06 unmatched} And you get yelled at by mst :)
15:06 dalek doc: review: https://github.com/perl6/doc/commit/e6261d7b10
15:07 perlpilot unmatched}: well ... if you're doing toolchain stuff, #perl6-toolchain is probably the place you want to discuss it.
15:07 TimToady maybe we need a bot that looks for certain concepts and suggests other channels
15:08 Ven_ joined #perl6
15:08 unmatched} perlpilot: why not -dev? I flipped through a few days of logs, it doesn't look like it's high-trafficed
15:08 gfldex 2 more bots and I need a bot to tell me what bot I need to talk to
15:08 unmatched} And -release seems to be dead entirely
15:08 TimToady .oO("You mentioned python, maybe you'd be more comfortable over on #sheeple" :)
15:09 unmatched} And I think -toolchain was created before we got -dev
15:09 TimToady well, we had p6dev before that
15:09 gfldex is there a waterbed theory of communication?
15:09 perlpilot -release is highly specialized and very temporally relevant. ;)
15:09 TimToady gfldex: there's a theory that communication often leaks...
15:10 unmatched} perlpilot: what's the specialization?
15:10 unmatched} and relevance.
15:10 perlpilot releases aren't something we talk about everyday
15:10 unmatched} Considering the release manager for the last two releases never even thought about that channel :P
15:10 molaf joined #perl6
15:12 perlpilot Well ... maybe we've not quite the critical mass to make so many channels necessary.  Maybe we prematurely optimized.  I dunno.
15:13 * unmatched} nods in agreemeent
15:14 pmurias joined #perl6
15:14 pmurias hi
15:15 unmatched} \o
15:17 xinming_ joined #perl6
15:21 pmurias joined #perl6
15:23 Ven_ joined #perl6
15:23 huggable joined #perl6
15:23 unmatched} dalek, camelia, synopsebot6, bisectable, committable, yoleaux, yoleaux2, huggable and [soon to be birthed] buggable. Quite a family of bots we got :)
15:23 unmatched} Oh and ilbot3
15:26 sisar joined #perl6
15:28 [Coke] lizmat++
15:28 Usermac joined #perl6
15:28 [Coke] (hacking, weekly)
15:28 Usermac Is there an online "PERL 6" interpreter?
15:28 lizmat :-)
15:29 unmatched} Usermac: yes, glot.io
15:29 Usermac thx
15:29 unmatched} Usermac: and it's Perl, not PERL
15:31 unmatched} Seems Glot.IO is busted ATM. Says "Running..." but doesn't complete. And perl6.party's code snippets don't return either so the API is  busted too
15:34 cibs joined #perl6
15:36 [Coke] (in review) the -release channel is mostly unused at this point.
15:40 [Coke] m: say "{ 'usermac'.tclc } - there's also one here."
15:40 camelia rakudo-moar b294e9: OUTPUT«Usermac - there's also one here.␤»
15:43 unmatched} lol
15:48 cdg joined #perl6
15:50 xinming joined #perl6
15:56 dogbert17 joined #perl6
15:58 unmatched} Is Perl 5 needed just for panda in R*? https://www.reddit.com/r/perl/comments/​4umm1x/201630_fresh_rakudo_star/d5rkq18
16:00 unmatched} (or any other stuff that comes with Strawberry)
16:00 mst eh?
16:00 mst perl5 is used during configure
16:00 zakharyas joined #perl6
16:00 mst gm
16:00 mst no idea about panda
16:01 unmatched} mst: but that's not run with built .msi's is it?
16:01 mst right, so, dunno wrt panda
16:01 gfldex unmatched}: checking my clean windows VM
16:02 gfldex unmatched}: only git
16:04 unmatched} Thanks.
16:09 AndyBotwin joined #perl6
16:11 ruoso joined #perl6
16:16 zacts joined #perl6
16:16 tadzik panda doesn't use perl5
16:17 ugexe probably from when it used prove
16:19 unmatched} ugexe: does zef require git?
16:21 ugexe unmatched}: short answer yes, long answer no. if you s/$source-url/$github-tar.gz-url/ in the package list then no. but there is no automatic github-to-targz conversion in the main branch yet
16:21 unmatched} Ah
16:24 sena_kun joined #perl6
16:25 Actualeyes left #perl6
16:27 dogbert17 o/ #perl6
16:27 unmatched} \o
16:28 dogbert17 Hi zoffix :)
16:29 dogbert17 Have finally managed to scribble together some docs for categorize-list. Does it look ok or is it bs? https://gist.github.com/dogbert17​/6caf9f744d5e8de6135bece87ef47ab3
16:30 ugexe actually Distribution::Common::Remote::Github does not require `git`, so thats one pure perl6 way
16:34 KaitoDaumoto joined #perl6
16:34 gfldex dogbert17: i would write: `multi method categorize-list(&test:(Any --> Bool), *@list) returns Baggy`. You need to make clear what the &test gets and what it needs to return. Also --> Any:D isn't really a thing.
16:37 dogbert17 gfldex: thx, I'll change it
16:37 gfldex dogbert17: actually it's more like `(&test:(T --> Bool)), ::T *@list)` but I don't think we support this kind of type capture.
16:38 gfldex m: class Baddy is Nil {}; sub niler( --> Any:D ) { Baddy.new }; my $i = 42; $i = niler; dd $i;
16:38 camelia rakudo-moar 22e46b: OUTPUT«Any $i = Any␤»
16:38 gfldex ^^^ that's why --> Any:D isn't really a thing
16:40 dogbert17 gfldex: so should I use your first suggestion then?
16:43 unmatched} m: sub (--> Any:D) { Mu.new }()
16:43 camelia rakudo-moar 22e46b: OUTPUT«X::TypeCheck::Return exception produced no message␤  in sub  at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
16:43 unmatched} nice error :)
16:44 unmatched} gfldex: so :D on return types isn't really a thing?
16:45 psch m: sub f(--> Any:D) { Any }; f()
16:45 camelia rakudo-moar 22e46b: OUTPUT«Type check failed for return value; expected return type Any cannot be itself (perhaps returning a :D type object?)␤  in sub f at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
16:45 psch Nil just is special in a few ways
16:45 psch i don't know if TimToady++'s judgement on container constraints generalizes to return type checks
16:45 psch m: my Any:D $x;
16:45 camelia rakudo-moar 22e46b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable definition of type Any:D requires an initializer␤at <tmp>:1␤------> 3my Any:D $x7⏏5;␤    expecting any of:␤        constraint␤»
16:45 psch m: my Any:D $x = Any;
16:45 camelia rakudo-moar 22e46b: OUTPUT«Type check failed in assignment to $x; expected Any:D but got Any (Any)␤  in block <unit> at <tmp> line 1␤␤»
16:45 unmatched} m: sub f(--> Int:D) { Int }; f()
16:45 camelia rakudo-moar 22e46b: OUTPUT«Type check failed for return value; expected return type Int cannot be itself (perhaps returning a :D type object?)␤  in sub f at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
16:46 unmatched} That error message is confusing
16:46 psch a bit, yeah
16:46 psch m: sub f(--> Any:D) { Any:D }; f()
16:46 camelia rakudo-moar 22e46b: OUTPUT«Type check failed for return value; expected Any but got Any:D (Any:D)␤  in sub f at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
16:47 psch okay yeah that's worse
16:47 unmatched} :}
16:47 psch especially considering that's what the previous error suggests, i think..?
16:48 [Coke] Any:D isn't an Any:D
16:48 unmatched} I think the previous error should have "return type Int:D cannot be itself"
16:48 [Coke] Any:D by itself is a type object, which isn't defined.
16:48 psch [Coke]: oh. i read ":D (type object)" vs "(:D type) object"
16:49 psch ...i'm not sure that actually clarifies anything though
16:49 psch "and object of type :D" i.e. a defined object, vs "a type object with a type smiley"
16:49 unmatched} And the "perhaps returning" part... eh, IMO it should go away entirely.
16:49 unmatched} Doesn't seem to add anything and has an Engrish feel to it.
16:50 psch "return value $value does not match definedness constraint :D" or something maybe
16:50 unmatched} psch++
16:50 psch that is, if it's only about the smiley
16:50 psch if there's also a mismatch in type itself we probably should mention that too :)
16:51 dogbert17 so, should I go for multi method categorize-list(&test:(Any --> Bool), *@list) returns Baggy
16:55 gfldex the error message should state that a undefined value can not be returned thanks to a constraint
16:55 FROGGS joined #perl6
16:56 gfldex dogbert17: yes, and explain that Any should be of the same type then the elements on @list.
16:56 gfldex m: sub f(&c:(T), ::T @l){};
16:56 camelia rakudo-moar 22e46b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Invalid typename 'T' in parameter declaration.␤at <tmp>:1␤------> 3sub f(&c:(T7⏏5), ::T @l){};␤»
16:56 dogbert17 gfldex: will do
16:58 gfldex m: sub f(::T @l){};
16:58 camelia rakudo-moar 22e46b: ( no output )
16:58 gfldex m: sub f(::T @l, &c:(T)){};
16:58 camelia rakudo-moar 22e46b: ( no output )
16:59 * gfldex goes to ponder how to phrase the rakudobug subject for that one
17:01 psch m: sub f(&c:(::T), T @l){};
17:01 camelia rakudo-moar 22e46b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Invalid typename 'T' in parameter declaration.␤at <tmp>:1␤------> 3sub f(&c:(::T), T7⏏5 @l){};␤»
17:01 psch m: sub f(&c:(::T $), T @l){};
17:01 camelia rakudo-moar 22e46b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Invalid typename 'T' in parameter declaration.␤at <tmp>:1␤------> 3sub f(&c:(::T $), T7⏏5 @l){};␤»
17:02 psch right, that's lexical scoping
17:02 psch i mean, the last one
17:02 psch a bit unfortunate for "i want exactly this order"-cases
17:03 pochi joined #perl6
17:04 psch not sure leaking that T outwards is a good idea though
17:04 psch m: sub f(&c:($a), $a) { } # *might* poison this use case if we're not careful
17:04 camelia rakudo-moar 22e46b: ( no output )
17:07 pochi can I prevent perl6 from generating the default new()-method for my class?
17:07 psch pochi: you can overwrite it
17:08 psch pochi: but since you have to have a parent class and Mu implements new you can't really not have it
17:08 psch pochi: except maybe with a different Metaobject
17:08 gfldex pochi: you would have to build your own type system.
17:08 pochi yikes - don't wanna do that :-)
17:09 unmatched} pochi: why?
17:10 unmatched} pochi: you can add proto new (|) {} if the Mu's new conflicts with your own news
17:10 unmatched} (when having multis)
17:10 firstdayonthejob joined #perl6
17:11 pochi what does proto new (|) {} do?
17:12 unmatched} No idea.
17:12 unmatched} Black magic :)
17:12 psch it declares a proto that doesn't dispatch to the multi candidates of the same name
17:12 unmatched} pochi: it's documented here, if it helps: https://docs.perl6.org/syntax/proto
17:12 psch and instead does nothing
17:12 domidumont joined #perl6
17:13 unmatched} psch: but what's a "proto"?
17:13 unmatched} And how come multi dispatch still works if it does nothing?
17:13 psch m: proto foo(|) { }; multi foo($) { say "foo" }; foo 1
17:13 camelia rakudo-moar 22e46b: ( no output )
17:14 psch unmatched}: but it doesn't work if you don't have a Whatever in the body :)
17:14 psch m: proto foo(|) {*}; multi foo($) { say "foo" }; foo 1
17:14 camelia rakudo-moar 22e46b: OUTPUT«foo␤»
17:14 unmatched} m: class Meow { proto new(|) {}; multi method new ($x) { say $x } }.new: 42
17:14 camelia rakudo-moar 22e46b: OUTPUT«42␤»
17:14 unmatched} Seems to work :)
17:14 TEttinger joined #perl6
17:14 psch that's 'cause you also have the Mu.new proto already there
17:15 unmatched} Ah
17:15 dalek doc: d54f984 | (Jan-Olof Hendig)++ | doc/Type/Baggy.pod6:
17:15 dalek doc: Added some docs for Baggy.categorize-list. gfldex++
17:15 dalek doc: review: https://github.com/perl6/doc/commit/d54f984b86
17:15 psch m: class Meow { proto new(|) {}; multi method new ($x) { say $x } }; say Meow.^can('new')>>.is_dispatcher
17:15 camelia rakudo-moar 22e46b: OUTPUT«(True True)␤»
17:15 psch as seen there
17:16 unmatched} m: class Meow { multi method new ($x) { say $x } }.new:
17:16 camelia rakudo-moar 22e46b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Confused␤at <tmp>:1␤------> 3 multi method new ($x) { say $x } }.new:7⏏5<EOL>␤    expecting any of:␤        colon pair␤»
17:16 unmatched} m: class Meow { multi method new ($x) { say $x } }.new: 42
17:16 camelia rakudo-moar 22e46b: OUTPUT«42␤»
17:17 acrussell joined #perl6
17:17 pochi Hm, not sure I understood what the proto thing did ...
17:17 psch pochi: a proto is for declaring what kind of multis you want to allow
17:18 psch pochi: for example a proto with the Signature ($, $) only allows multi candidates with positionals
17:18 psch +two
17:18 pochi I tried proto new(Numeric $t1, |) {*} but it still allowed empty news
17:19 unmatched} m: class Meow { proto method new (|) {*}; multi method new ($x) { say $x } }.new: :42foo
17:19 camelia rakudo-moar 22e46b: OUTPUT«Cannot resolve caller new(Meow: Int); none of these signatures match:␤    (Meow $: $x, *%_)␤  in block <unit> at <tmp> line 1␤␤»
17:19 unmatched} "caller new(Meow: Int);" ??
17:20 psch unmatched}: that should have a named marker on the Int, yeah
17:20 psch m: class Meow { proto method new(|) {}; multi method new ($x) { say $x } }; say Meow.^can('new')>>.package
17:20 camelia rakudo-moar 22e46b: OUTPUT«((Meow) (Mu))␤»
17:21 unmatched} pochi: it's `proto method`
17:21 psch also unmatched}++, 'method' keyword matters a lot there :)
17:21 psch you still don't get rid of the Mu proto, but you at least shadow it
17:21 unmatched} .oO( proto proto )
17:22 unmatched} psch++ I think I finally understand proto :)
17:22 pochi nice, that worked :-)
17:22 pochi _and_ it gives sane error messages when I try empty or non-compliant signatures :-)
17:22 psch m: class Meow { proto method new(|) {}; multi method new ($x) { say $x } }; my &new = Meow.^can('new')[1]; say Meow.&new
17:22 camelia rakudo-moar 22e46b: OUTPUT«Meow.new␤»
17:23 psch but it can still be circumvented :)
17:23 pochi :-)
17:24 psch the problem with too good introspection vOv
17:24 pochi well, at least then you know you're doing something "bad"
17:25 psch yeah, definitely
17:28 dogbert17 hmm, panda install Pod::To::BigPage fails with: ===SORRY!===  Expected MAST::Frame, but didn't get one  t/P.t ..   Dubious, test returned 1 (wstat 256, 0x100)
17:31 unmatched} dogbert17: it's the LWP::Simple. It's busted
17:31 unmatched} I ended up just rewriting one of my modules to use HTTP::UserAgent instead
17:32 unmatched} dogbert17: I think if you force install LWP::Simple Pod::To::BigPage will still work
17:32 unmatched} panda --notests install Pod::To::BigPage # or just skip the testing
17:33 dogbert17 unmatched}: I'll try your suggestion ...
17:35 dogbert17 I'm using rakudobrew if it makes any difference
17:36 gfldex dogbert17: the culprit is IO::Socket::SSL
17:36 dogbert17 gfldex: aha, is it buggy?
17:37 gfldex dogbert17: if you remove it LWP::Simple works just fine
17:38 unmatched} except for HTTPS urls :)
17:42 lichtkind joined #perl6
17:44 gfldex should I need the binding in this example? http://stackoverflow.com/a/38585401/5854207
17:47 skids I would not think you would need a bind, and in fact should generally avoid them with Array indices.
17:47 gfldex doesn't work without it
17:52 skids m: my %a = :a[1,2,3],; my %b = %a.deepmap(*.clone); %a<a>[0].VAR.WHAT.say; %b<a>[0].VAR.WHAT.say # Should be Scalar in both cases
17:52 camelia rakudo-moar 22e46b: OUTPUT«(Scalar)␤(Int)␤»
17:53 skids m: my @a = 1,2,3; my @b = @a.clone; @a[0].VAR.WHAT.say; @b[0].VAR.WHAT.say
17:53 camelia rakudo-moar 22e46b: OUTPUT«(Scalar)␤(Scalar)␤»
17:54 lichtkind cheers
17:54 lichtkind any upcoming event on the jvm fontend?
17:55 skids m: my $a = Pair.new("a",[ 1,2,3 ]); my $b = $a.clone; $a.value[0].VAR.WHAT.say; $b.value[0].VAR.WHAT.say
17:55 camelia rakudo-moar 22e46b: OUTPUT«(Scalar)␤(Scalar)␤»
17:55 psch lichtkind: we recently got a workaround for installing r-j as well as a tidy restructuring of interop
17:56 psch lichtkind: nothing feature wise in the near feature yet afaict, i for one am mostly bashing my head against long standing bugs :)
17:56 lichtkind thanks
17:56 lichtkind but jvm port is still some features behinf moar?
17:56 psch yes
17:57 gfldex skids: do I understand that right, that deepmap is doing something wrong?
17:57 skids gfldex: yes, or something called by it.
17:58 lichtkind psch: can you link me please to the comparison page cant find it
17:59 skids Maybe Hash.clone
17:59 itaipu joined #perl6
17:59 skids m: my %f; %f<a> = 1; %f<b> := 2; my %g = %f.clone; %f<a>.VAR.WHAT.say; %f<b>.VAR.WHAT.say; %g<a>.VAR.WHAT.say; %g<b>.VAR.WHAT.say; # Also fishy
17:59 camelia rakudo-moar 22e46b: OUTPUT«(Scalar)␤(Int)␤(Scalar)␤(Scalar)␤»
17:59 lichtkind im currently lanning some perl 6 article for a major java site :)
18:00 gfldex lichtkind: more propaganda is more better!
18:00 lichtkind i want actually  provide real information
18:01 ismailarilik joined #perl6
18:03 ismailarilik Hi!
18:03 TimToady m: my %a = :a[1,2,3],; my %b := %a».clone; %a<a>[0].VAR.WHAT.say; %b<a>[0].VAR.WHAT.say
18:03 camelia rakudo-moar 22e46b: OUTPUT«(Scalar)␤(Int)␤»
18:03 TimToady m: my %a = :a[1,2,3],; my %b := %a».VAR.clone; %a<a>[0].VAR.WHAT.say; %b<a>[0].VAR.WHAT.say
18:03 camelia rakudo-moar 22e46b: OUTPUT«(Scalar)␤(Scalar)␤»
18:03 TimToady a . will deref a VAR by default
18:06 spider-mario joined #perl6
18:07 gfldex is the borked container a bug then? (need that info to complete the answer on stackoverflow)
18:07 psch lichtkind: i don't know of any comparison page.  grepping for 'rakudo.jvm [skip||todo]' in roast and RT tickets is the only way i keep track of what's not working yet
18:08 psch m: class A { has $.a }; A.a.VAR.WHAT.say
18:08 camelia rakudo-moar 22e46b: OUTPUT«Cannot look up attributes in a type object␤  in block <unit> at <tmp> line 1␤␤»
18:08 psch m: class A { has $.a }; A.new.a.VAR.WHAT.say
18:08 camelia rakudo-moar 22e46b: OUTPUT«(Any)␤»
18:09 girafe joined #perl6
18:09 skids gfldex: Hrm maybe I'm wrong about Hash.clone.  Undoing a direct Scalar link might be in the spirit of .clone.  But, stripping Scalars per the examples with Array probably is not, especially since Array without Scalar containers is supposed  to be something you have to forcefully ask for.
18:09 lichtkind there was once a comparison page of all compilers features but i guess its out of date
18:09 skids s/direct Scalar link/direct link/
18:13 unmatched} lichtkind: the page is this, but yeah, likely very out of date: http://perl6.org/compilers/features
18:15 lichtkind but it only improved from there
18:16 unmatched} Maybe, but that's not guaranteed. If a feature was changed near Christmas and one backend haven't caught up with the changes, it's now busted, even though the feature was working in the past :)
18:17 unmatched} e.g., I doubt niezche does all the basic types at 100% due to GLR :)
18:18 skids m: my %f; %f<a> = 1; %f<b> := 2; my %g := %f.clone; %f<a>.VAR.WHAT.say; %f<b>.VAR.WHAT.say; %g<a>.VAR.WHAT.say; %g<b>.VAR.WHAT.say; # Thanks to TimToady for clearing that one up.
18:18 camelia rakudo-moar 22e46b: OUTPUT«(Scalar)␤(Int)␤(Scalar)␤(Int)␤»
18:23 acrussell joined #perl6
18:25 cyphase joined #perl6
18:25 canopus joined #perl6
18:27 labster joined #perl6
18:27 hankache joined #perl6
18:28 skids m: for 42, $(42), $(42,), $(now) { .VAR.WHAT.say }
18:28 camelia rakudo-moar 22e46b: OUTPUT«(Int)␤(Int)␤(Scalar)␤(Instant)␤»
18:29 skids m: for 42, $(42), (42,), $(42,), $(now) { .VAR.WHAT.say }
18:29 camelia rakudo-moar 22e46b: OUTPUT«(Int)␤(Int)␤(List)␤(Scalar)␤(Instant)␤»
18:30 skids enough scab picking I have to do some $DAYJOB
18:30 gfldex skids: see line 10 https://gist.github.com/gfldex/6​88fb7e3caf68558fa04725ac0a5889a
18:31 skids gfldex: I would not have thought of that as a workaround, kudos.
18:36 rindolf skids: what does := do?
18:38 gfldex i'm not sure if that's a bug or not. If you call clone, do you want the value cloned or the container? Esp. in conjunction with deepmap. deepmap is supposed to recreate the iterable structes and call the block on the values. The default is call by reference, so the container is gone.
18:38 gfldex tricky one
18:38 gfldex rindolf: := will force binding
18:39 rindolf gfldex: what is binding?
18:39 unmatched} ha! neat. gfldex++
18:39 gfldex rindolf: i wrote a lenghty adventpost about binding. It may be lenghty for a reason.
18:40 unmatched} m: set(1,2,3) ~~ Iterable
18:40 camelia rakudo-moar 22e46b: ( no output )
18:40 unmatched} m: say set(1,2,3) ~~ Iterable
18:40 camelia rakudo-moar 22e46b: OUTPUT«False␤»
18:40 gfldex i'm not overy happy with https://docs.perl6.org/language/containers
18:40 arnsholt m: my @a = 1,2,3; my @b = @a; @b.push: 4; say @a; say @b
18:40 camelia rakudo-moar 22e46b: OUTPUT«[1 2 3]␤[1 2 3 4]␤»
18:40 arnsholt m: my @a = 1,2,3; my @b := @a; @b.push: 4; say @a; say @b
18:40 camelia rakudo-moar 22e46b: OUTPUT«[1 2 3 4]␤[1 2 3 4]␤»
18:40 arnsholt Roughly, that's the difference
18:40 rindolf gfldex: ah.
18:40 mohae joined #perl6
18:40 gfldex you need to play with Proxy to understand binding
18:41 unmatched} m: my $s = set(1, 2, 3); -> $c is copy { $c<5>++ }($s); dd $s
18:41 camelia rakudo-moar 22e46b: OUTPUT«Cannot resolve caller postfix:<++>(Bool); none of these signatures match:␤    (Mu:D $a is rw)␤    (Mu:U $a is rw)␤    (Int:D $a is rw)␤    (int $a is rw)␤    (Bool:U $a is rw)␤    (Bool:D $a is rw)␤    (Num:D $a is rw)␤    (Num:U $a is rw)…»
18:41 unmatched} m: my $s = set(1, 2, 3); -> $c is copy { $c<5> = True }($s); dd $s
18:41 camelia rakudo-moar 22e46b: OUTPUT«Cannot modify an immutable Set␤  in block <unit> at <tmp> line 1␤␤»
18:41 unmatched} m: my $s = SetHash.new: 1, 2, 3; -> $c is copy { $c<5> = True }($s); dd $s
18:41 camelia rakudo-moar 22e46b: OUTPUT«SetHash $s = SetHash.new(3,1,2,IntStr.new(5, "5"))␤»
18:41 setty1 joined #perl6
18:41 unmatched} The -> $c is copy trick probably won't work for stuff liek the aBOVE
18:42 unmatched} m: my %h; say %h ~~ Iterable
18:42 camelia rakudo-moar 22e46b: OUTPUT«True␤»
18:43 arnsholt m: my $a = 1; my $b := $a; $b = 2; say $a, $b; # Also, this
18:43 camelia rakudo-moar 22e46b: OUTPUT«22␤»
18:43 arnsholt Roughly speaking, it's a way of aliasing a variable to another one
18:45 * perlpilot would have said "container" because "variable" sometimes hangs people up with an interface
18:47 arnsholt Yeah, it's a pretty rough approximation
18:47 gfldex unmatched}: deepclone (that we don't got) will always depend on the data it works on. Frankly, the cunning noob on stackoverflow is most likely doing something silly that will utterly break when he discovers concurrency.
18:47 unmatched} :D
18:50 moritz or things like: how do you deep-clone a file descriptor? database connection? a lock? a lock that's currently being held? a scope guard?
18:53 skids gfldex: in the particular case of an Array, one should generally avoid handing any users Arrays that do not have containers around each element.  They've been purposfully declared as black magic construct not for end users.
18:53 skids So especially since the original thing that was cloned had scalar containers, suddenly losing them is pretty bad.
18:56 skids One could make a case for either "black arts in/black arts out" or "black arts in/good pixies fix the universe" though.
18:57 dalek doc: 0383718 | (Jan-Olof Hendig)++ | doc/Type/Baggy.pod6:
18:57 dalek doc: Fix typo leading to broken link
18:57 dalek doc: review: https://github.com/perl6/doc/commit/0383718024
19:01 brrt joined #perl6
19:02 dalek doc: a672a23 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Signature.pod6:
19:02 dalek doc: add :() to index
19:02 dalek doc: review: https://github.com/perl6/doc/commit/a672a23283
19:03 FreezerburnV joined #perl6
19:05 FreezerburnV How can I convert a string into a regex? (or in some way use a string as if it were a regex)
19:05 FreezerburnV Or rather, a string stored in a variable
19:05 unmatched} FreezerburnV: <$sting>
19:05 unmatched} m: my $string = '.*'; say "foo" ~~ /<$string>/
19:05 camelia rakudo-moar d7838c: OUTPUT«「foo」␤»
19:06 FreezerburnV unmatched}, Thank you! Could not find that for the life of me
19:06 perlpilot FreezerburnV: where did you look?  Perhaps there's some docs that need updating
19:07 FreezerburnV perlpilot, Regexes language documentation, Regex class documentation, Str documentation were the main ones
19:07 FreezerburnV It might be somewhere in the Regexes docs, but I might have missed it
19:07 * masak finds https://rt.perl.org/Ticket/Display.html?id=126119 hilarious
19:08 gfldex FreezerburnV: you couldn't find it because of ENODOCS
19:08 FreezerburnV gfldex, Heh. Good to know I'm not blind this time. I tend to get EBLIND more often then ENODOCS
19:08 ChristopherBotto joined #perl6
19:09 ChristopherBotto o/ perl6
19:09 ChristopherBotto m: for <A B C>.race( :batch(2)  ) { say ++$; }
19:09 camelia rakudo-moar d7838c: OUTPUT«1␤2␤3␤»
19:09 ChristopherBotto m: for <A B C>.race( :batch(2)  ) { say ++$; }
19:09 camelia rakudo-moar d7838c: OUTPUT«1␤2␤3␤»
19:09 ChristopherBotto m: for <A B C>.race( :batch(2)  ) { say ++$; }
19:09 camelia rakudo-moar d7838c: OUTPUT«1␤2␤3␤»
19:09 ChristopherBotto m: for <A B C>.race( :batch(2)  ) { say ++$; }
19:09 camelia rakudo-moar d7838c: OUTPUT«1␤3␤2␤»
19:09 ChristopherBotto m: for <A B C>.race( :batch(2)  ) { say ++$; }
19:09 camelia rakudo-moar d7838c: OUTPUT«1␤2␤3␤»
19:09 ChristopherBotto m: for <A B C>.race( :batch(2)  ) { say ++$; }
19:09 camelia rakudo-moar d7838c: OUTPUT«2␤1␤3␤»
19:09 ChristopherBotto m: for <A B C>.race( :batch(2)  ) { say ++$; }
19:09 camelia rakudo-moar d7838c: OUTPUT«1␤2␤3␤»
19:09 unmatched} \o
19:10 ChristopherBotto This blows up about 1 out of 10 times on my computer
19:10 unmatched} I don't think that's thread-safe to do that stuff.
19:10 unmatched} So it's probably blowing up when things collide
19:11 timotimo yeah, a shared variable like that would need a lock protecting it
19:11 xinming joined #perl6
19:12 ChristopherBotto Is there a safe way to isolate calls to chdir so that it only has an effect inside a particular block?
19:12 timotimo we don't protect every variable for you "just like that" because we want to be able to have performance at all
19:12 * [Coke] updates 126119 from [BUG] to [RFC]
19:12 * gfldex .oO( use WarnIfSilly; )
19:12 unmatched} RT#126119
19:12 synopsebot6 Link:  https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=126119
19:13 ChristopherBotto lol. We don't always know if we're doing something silly
19:13 [Coke] it was just a page back in scroll, I deliberately didn't link it. :P
19:14 FreezerburnV So I discovered today that, due to if { ... } else { ... } technically using blocks (IIRC at least), $^a and friends get set for them with the result of the if. Is that intended?
19:14 FreezerburnV m: (1, 2, 3).map({ if $^a == 1 { 'foo' } else { $^a } })
19:14 camelia rakudo-moar d7838c: ( no output )
19:14 FreezerburnV m: (1, 2, 3).map({ if $^a == 1 { 'foo' } else { $^a } }).say
19:14 camelia rakudo-moar d7838c: OUTPUT«(foo False False)␤»
19:14 timotimo yeah, if you have curlies, you have a block
19:15 perlpilot FreezerburnV: yes, it's intended.
19:15 FreezerburnV timotimo, Is there a way to 'preserve' $^a there without having to do something like 'my $arg = $^a; ...'?
19:15 unmatched} [Coke]: oh, I didn't notice it :)
19:16 perlpilot m:  (1, 2, 3).map({ $^a == 1 ?? "foo" !! $^a }).say
19:16 camelia rakudo-moar d7838c: OUTPUT«(foo 2 3)␤»
19:16 gfldex FreezerburnV: you could use ?? !! (depends ofc) or put the if at the end
19:16 unmatched} Well, you run it today and today we don't have any leap seconds for past Dec, 2016, so the result is correct IMO.
19:16 perlpilot m:  (1, 2, 3).map({ if $^a == 1 { "foo" } else { $a } }).say
19:16 camelia rakudo-moar d7838c: OUTPUT«(foo 2 3)␤»
19:17 FreezerburnV perlpilot, Oh interesting, so the first time $^a is used, it gets bound to $a as well (or something along that line)
19:17 unmatched} Just because some scientists decides to add more in the future is irrelevant. They can equally abandon the idea of adding leap seconds
19:17 perlpilot FreezerburnV: $^a is a way to self-declare $a, so you can use either (as long as you haven't switched blocks :)
19:17 gfldex just use GPS time, problem solved :)
19:17 FreezerburnV gfldex, Yeah I should have thought of that, bleh. Don't know why I forgot about ternary in a place where it's well suited
19:18 gfldex m: if 1 -> $aa { say $aa, $^a }
19:18 camelia rakudo-moar d7838c: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Placeholder variable '$^a' cannot override existing signature␤at <tmp>:1␤------> 3if 1 7⏏5-> $aa { say $aa, $^a }␤»
19:18 gfldex m: if 1 -> $aa { say $aa }
19:18 camelia rakudo-moar d7838c: OUTPUT«1␤»
19:18 skids Well, being able to know the number of "planned leap seconds" is useful knowledge IMO, though it does involve keeping your software up to date.
19:18 gfldex FreezerburnV: ^^^
19:19 perlpilot you're only ever going to know 1 leap second in advance.
19:19 ChristopherBotto * Note to self, oh, just use "cd" in the shell.
19:19 gfldex m: if 1 -> $aa { if 2 { say $aa } }
19:19 camelia rakudo-moar d7838c: OUTPUT«1␤»
19:19 perlpilot maybe 2 if they do 2 in the same year (unlikely)
19:20 FreezerburnV gfldex, Oh, duh. Of course if can use normal lambda syntax, it's just a block
19:20 unmatched} m: { say "$^a works and so does $a; wtf" }(42)
19:20 camelia rakudo-moar d7838c: OUTPUT«42 works and so does 42; wtf␤»
19:20 unmatched} TIL
19:21 CIAvash me too
19:21 unmatched} m: { my $Δ = 72; say "$^Δ works and so does $Δ; wtf" }(42)
19:21 camelia rakudo-moar d7838c: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Redeclaration of symbol $^Δ as a placeholder parameter␤at <tmp>:1␤------> 3{ my $Δ = 72; say "$^Δ7⏏5 works and so does $Δ; wtf" }(42)␤»
19:21 unmatched} That's LTA
19:22 perlpilot what would you have it say instead?
19:22 unmatched} m: { say "$^Δ works and"; my $Δ = 72; say " so does $Δ; wtf" }(42)
19:22 camelia rakudo-moar d7838c: OUTPUT«Potential difficulties:␤    Redeclaration of symbol $Δ␤    at <tmp>:1␤    ------> 3{ say "$^Δ works and"; my $Δ7⏏5 = 72; say " so does $Δ; wtf" }(42)␤42 works and␤ so does 72; wtf␤»
19:22 unmatched} perlpilot: I wouldn't want it to error out in the second example and do error out in the first.
19:23 unmatched} m: my $*foo = 42; my $foo = 72; say "$*foo $foo"
19:23 mcmillhj joined #perl6
19:23 camelia rakudo-moar d7838c: OUTPUT«42 72␤»
19:23 unmatched} I mean, this twigil isn't colliding, so it's LTA that the $^ twigil does
19:23 perlpilot hrm.
19:24 unmatched} And I'd have to use at least one $^ twigil for the $ to work, so that adds inconsistency into my code anyway and should not be a feature
19:24 perlpilot $^a declares $a (without a sig).  you want to change that?
19:24 mcmillhj joined #perl6
19:24 FreezerburnV unmatched}, At least in the circumstance I originally brought up, having $^a also bound to $a comes in handy
19:24 FreezerburnV Or I shoudl say: $^a creating an implicit "my $a = ...;"
19:24 [Coke] CSRF failures from rakudo to RT have been resolved.
19:24 [Coke] I only ever saw them when I wasn't logged in, now they're gone.
19:25 mcmillhj joined #perl6
19:25 unmatched} perlpilot: I would've expected $^a to be just a variable that affects the signature. And $a to be unrelated. The fact that it "declares $a" seems like a hack to make $^a work
19:25 unmatched} Too late now to change, I guess.
19:25 AlexDaniel joined #perl6
19:26 FreezerburnV unmatched}, If you were going to change it, how would you get around wanting to reference $^a in potential nested blocks without needing to manually declare a local variable?
19:26 timotimo FreezerburnV: sorry, i was distracted, and didn't read backscroll yet, but: $^a is the definition of a variable named $a in the innermost enclosing curly, so you can just have "$^a" outside the inner block and use $a inside the inner block without getting the parameter defined on the inner block
19:26 AlexDaniel [Coke]: hi! I think we need two more labels in the doc repo. “maybe closable” and “comments needed”. What do you think? Can you suggest some better names?
19:26 yoleaux 13:07Z <unmatched}> AlexDaniel: why did you tell me that I should be fixing things in http://irclog.perlgeek.de/p​erl6/2016-07-22#i_12892225 ? As far as I can tell, I'm actually doing it right. `source-url` is not in the spec
19:26 unmatched} FreezerburnV: my $a = $^a
19:26 unmatched} or whatever
19:27 timotimo unmatched}: that's unnecessary, and redundant
19:27 mcmillhj joined #perl6
19:27 unmatched} OK
19:27 timotimo m: if 100 { say $^a; if 99 { say $a; say $^b } }
19:27 camelia rakudo-moar d7838c: OUTPUT«100␤100␤99␤»
19:28 [Coke] AlexDaniel: those sound like they both mean the same thing.
19:29 [Coke] maybe just "review" for now?
19:29 arnsholt Speaking of $^a declaring an $a, ISTR masak talking about that. Apparently there's a reason for why it has to be like that
19:30 arnsholt Dunno what it is though
19:30 skids arnsholt: see timotimo's last evalbot
19:30 timotimo yeah, if it isn't like that you can never use a $^foo variable in an inner block, ever
19:30 unmatched} I rescind my complaint. timotimo++'s example shows a good usecase.
19:31 timotimo is the complaint the unscindled one?
19:31 arnsholt Right, right. You need to be able to access it without the ^ from nested lexical scopes
19:31 * skids waits for the next person to discover $^ alphabetization who didn't already know about it.
19:32 FreezerburnV skids, Already read about that in the docs, so I'm gonna be extra careful ;)
19:32 skids That one sometimes generates an initial "ick" before its utility becomes obvious
19:32 timotimo we do have that in the "traps" document, right?
19:32 FreezerburnV { $a-some-long-name + $b-other-long-name + $c-... } :P
19:33 perlpilot skids: at least it's not sorted based on locale  ;>
19:33 skids lol
19:34 timotimo it'll be very bad when code suddenly works differently because we implement "proper" collation for unicode characters ...
19:34 BillSussman joined #perl6
19:34 timotimo and people have $^apfel and $^äpfel
19:34 unmatched} m: sub alphabetical {say $^こ, $^ん, $^に, $^ち, $^は }(|<こ ん に ち は>)
19:34 camelia rakudo-moar d7838c: OUTPUT«こはにんち␤»
19:34 FreezerburnV timotimo, I don't think it's in traps, but I do see it in variables under the ^ twigil docs
19:36 unmatched} m: sub { say $^apfel, $^äpfel }(1, 2)
19:36 camelia rakudo-moar d7838c: OUTPUT«12␤»
19:36 unmatched} m: sub { say $^äpfel, $^apfel }(1, 2)
19:36 camelia rakudo-moar d7838c: OUTPUT«21␤»
19:37 timotimo they are considered equal, but non-conflicting? %)
19:38 unmatched} equal?
19:38 labster joined #perl6
19:39 unmatched} m: say "äpfel" after "apfel"
19:39 camelia rakudo-moar d7838c: OUTPUT«True␤»
19:42 timotimo sorry, why was it 1 2 once, then 2 1?
19:42 timotimo ah, it confused me because i can't even see which one is ä and which one is a on this font + size
19:44 neuron joined #perl6
19:45 neuron Hi
19:46 skids o/
19:46 neuron Nativecall c++, does the class need the Pointer attribute?
19:46 neuron It seems to work fine even without it, but maybe that's a bug?
19:49 AlexDaniel [Coke]: these are for different purposes. One is like “ok, this issue seems to be solved, but it needs confirmation or something” and another one is “We have to change the world! But let's discuss it first”
19:50 * skids wasn't aware C++ bindings were functional already, should read IRC logs more often.
19:51 sena_kun joined #perl6
19:51 * neuron is giving c++ bindings quite a testing
19:52 * unmatched} comments on 126119 as "it's fine as it is" https://rt.perl.org/Ticket/Disp​lay.html?id=126119#txn-1412719
19:56 FreezerburnV Is there any particular way to speed up code which checks every file, recursively, in a directory for if its name matches some regex? I already only create the regex once and reuse it, but it currently takes 10-15x longer to do that in pure perl than running find. (obviously find is crazy optimized, just looking to make it only take maybe at most 5x longer. currently takes just a bit too long to not break flow)
19:57 hoelzro iirc, I/O is still a bit slower in Perl 6 than it could be
19:58 perlpilot unmatched}: +1
19:58 FreezerburnV :( Oh well
19:58 perlpilot FreezerburnV: show your code?
19:58 perlpilot FreezerburnV: are you using dir() ?
19:58 xinming joined #perl6
19:59 FreezerburnV perlpilot, Yes
19:59 perlpilot okay, just checking that you weren't doing it more manually
19:59 trnh joined #perl6
20:02 FreezerburnV perlpilot, https://gist.github.com/Freezerbur​n/d9efbc524c927163e362ece5d7e9aaea
20:02 FreezerburnV Oh, forgot to include the filename function. Just pulls out the 'test' part from 'test.js'
20:03 FreezerburnV It takes ~11 seconds to run that on my computer
20:03 FreezerburnV My other (terrible bash script) runs almost instantly
20:04 cpage_ joined #perl6
20:04 perlpilot FreezerburnV: dir() has a :test parameter for filtering
20:04 FreezerburnV I can always just run find on the regex that gets built, but was hoping to keep it all Perl6
20:05 FreezerburnV perlpilot, Did not know that
20:05 FreezerburnV Lemme give it a try
20:05 perlpilot it doesn't have a :recurse though :(
20:05 FreezerburnV oh wait, that actually won't work due to needing to grab all the dirs for recursing
20:08 FreezerburnV Guess I'm going to run an async find and do stuff with the resulting files to keep it snappy
20:11 cog_ joined #perl6
20:33 maybekoo2 joined #perl6
20:34 ParsonsNose joined #perl6
20:35 FreezerburnV m: my @t = 'foo', 'bar', 'baz'; for @t.race { .say }
20:35 camelia rakudo-moar d7838c: OUTPUT«foo␤bar␤baz␤»
20:35 FreezerburnV Hm, that doesn't work with my code
20:36 FreezerburnV Wait, the list is empty, what?
20:36 FreezerburnV It had elements a moment ago
20:36 [Sno] joined #perl6
20:37 FreezerburnV Never mind me, somehow I deleted a line starting a process
20:41 gfldex FreezerburnV: dir will create tons of objects from string just to turn them back into strings and forget pretty much all of them. If you need fast you will have to NativeCall.
20:41 FreezerburnV gfldex, Or Proc::Async, which is what I'm doing currently
20:41 FreezerburnV My old bash script just used find, so I'm just going to replicate that with a bunch of nice Perl6 wrapping it
20:42 kid51 joined #perl6
20:42 cpage_ joined #perl6
20:43 cpage_ joined #perl6
20:43 FreezerburnV gfldex, On that note though... why does dir do all that? Is it because it asks the OS for the list of directories, turns those into strings, then turns those into IO? Or is it doing more than that
20:44 FreezerburnV Maybe I can try to look into making IO faster at some point, since that's pretty relevant to me right now
20:44 jersni joined #perl6
20:44 gfldex just that. But creating objects is still pricy and method calls are always late bound.
20:44 perlpilot FreezerburnV: that would be awesome
20:45 FreezerburnV gfldex, Ah. I'm guessing baseline improvements to making objects is what might be necessary to making things quicker? Or do you think there are some improvements to be made in the current code?
20:45 [Coke] AlexDaniel: "we have to change the world" is "big"
20:46 jersni joined #perl6
20:47 kid511 joined #perl6
20:49 gfldex FreezerburnV: NativeCall is the way to go. All you need to do is to compare are c-strings. Only the files that are matched need to be returnd as objects.
20:50 [Coke] in general, more tags are fine, however.
20:50 [Coke] the goal is "close tickets". whatever helps there works.
21:01 dalek doc: dcdfef2 | (Jan-Olof Hendig)++ | doc/Type/Pair.pod6:
21:01 dalek doc: Added docs for Pair.antipairs
21:01 dalek doc: review: https://github.com/perl6/doc/commit/dcdfef2507
21:01 ninjaaron joined #perl6
21:02 ninjaaron left #perl6
21:14 maybekoo2 joined #perl6
21:18 araujo joined #perl6
21:18 pmurias_ joined #perl6
21:18 maybekoo2 joined #perl6
21:20 mohae_ joined #perl6
21:20 cpage_ joined #perl6
21:21 dalek ecosystem: effebaa | (Zoffix Znet)++ | META.list:
21:21 dalek ecosystem: Add Ecosystem::Test
21:21 dalek ecosystem:
21:21 dalek ecosystem: Dummy module for ecosystem toolchain testing.
21:21 dalek ecosystem:
21:21 dalek ecosystem: Related to https://github.com/perl6/doc/issues/764
21:21 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/effebaa01a
21:21 araujo joined #perl6
21:21 araujo joined #perl6
21:24 kid511 joined #perl6
21:25 cpage_ joined #perl6
21:26 rodarmor joined #perl6
21:28 itaipu joined #perl6
21:32 cpage_ joined #perl6
21:37 mst joined #perl6
21:44 pmqs joined #perl6
21:47 * AlexDaniel is happy because bisectable turned out to be useful :)
21:48 cpage_ joined #perl6
21:49 cpage_ joined #perl6
21:56 dalek ecosystem: beda571 | (Zoffix Znet)++ | README.md:
21:56 dalek ecosystem: Add legal blurb
21:56 dalek ecosystem:
21:56 dalek ecosystem: Since we're copying and mangling copyrighted META files, we should mention that by submitting modules, authors gives us more relaxed terms for the META file than the distro license may provide.
21:56 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/beda571760
22:02 Zoffix Ugh
22:02 Zoffix Stupid github. "The contented you edited changed. Please try again" and it deleted all of my additions
22:02 Zoffix That's on this https://github.com/perl6/doc/is​sues/711#issuecomment-235414744
22:09 cpage_ joined #perl6
22:11 AlexDaniel Zoffix: lol, shit…
22:13 AlexDaniel Zoffix: oh yeah, by the way, I stole that list from you
22:15 Zoffix :)
22:23 TEttinger joined #perl6
22:26 skids joined #perl6
22:27 dvinciguerra_ joined #perl6
22:31 lichtkind_ joined #perl6
22:33 cyphase joined #perl6
22:38 Sgeo joined #perl6
22:47 TEttinger joined #perl6
22:53 zacts joined #perl6
22:54 sufrostico joined #perl6
22:59 AndyBotwin joined #perl6
23:00 kurahaupo joined #perl6
23:07 kid51 joined #perl6
23:09 jersni joined #perl6
23:13 andrew____ joined #perl6
23:17 kurahaupo joined #perl6
23:23 kurahaupo_ joined #perl6
23:23 andrewb joined #perl6
23:23 huggable joined #perl6
23:25 mohae joined #perl6
23:31 andrewb_ joined #perl6
23:38 BillSussman joined #perl6
23:38 dalek doc: 9ac245b | Altai-man++ | doc/Language/glossary.pod6:
23:38 dalek doc: This commit *removes* glossary items which are just pointers to Wikipedia and local links to them
23:38 dalek doc: review: https://github.com/perl6/doc/commit/9ac245b216
23:38 dalek doc: 345efdc | Altai-man++ | doc/Language/glossary.pod6:
23:38 dalek doc: Fix for merge conflict
23:38 dalek doc: review: https://github.com/perl6/doc/commit/345efdce3b
23:38 dalek doc: 92faf2e | (Aleks-Daniel Jakimenko-Aleksejev)++ | doc/Language/glossary.pod6:
23:38 dalek doc: Merge pull request #743 from perl6/wiki-entries-cleanup
23:38 dalek doc:
23:38 dalek doc: Second part of entries cleanup
23:38 dalek doc: review: https://github.com/perl6/doc/commit/92faf2eac7
23:42 kurahaupo joined #perl6
23:45 kurahaupo_ joined #perl6
23:47 mcmillhj joined #perl6
23:47 kurahaupo joined #perl6

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

Perl 6 | Reference Documentation | Rakudo