»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
Herby_ question: If I know I won't have internet access, what's the easiest way to download/view perl 6 documentation? 00:01
or maybe the better question is, is there an easy way to view perl6 docs offline? 00:03
00:04 cyphase joined
lambd0x Herby_: If you want docs from doc.perl6.org they hold everything in a git repo github.com/perl6/doc 00:06
clone it to your computer and be happy :)
parabolize Herby_: clone the repo, build the html files and serve them docs.perl6.org/language/about#Gene...ML_version
or you can use p6doc buts its slooooow 00:07
or just read the source 00:08
Herby_ those tips should get me headed in the right direction, thanks!
lambd0x Herby_: :)
00:08 Zoffix joined
Zoffix Herby_, we have a page for just that purpose: docs.perl6.org/perl6.xhtml 00:08
OTOH a local build would indeed be nicer :)
Herby_ Zoffix: this is great, thanks. I don't need anything fancy, just something incase I get stumped and am offline 00:09
and I do get stumped often
lambd0x Herby_: Normal, I find myself often in need of some reference too 00:10
00:14 kurahaupo left 00:15 captain-adequate left
lambd0x Bye folks 00:15
00:15 lambd0x left 00:19 AlexDaniel joined 00:26 sena_kun left 00:31 zacts joined 00:36 cyphase left 00:41 cyphase joined
AlexDaniel www.reddit.com/r/programminghorror..._probably/ 00:45
yoleaux 25 Jul 2016 16:15Z <TimToady> AlexDaniel: I figgered out a way to fix [+] ... 987 for you
AlexDaniel oh 00:46
m: 0, 1, [+] ... 987
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␤ ------> 03…»
AlexDaniel cool 00:47
00:48 tbrowder joined 00:50 tbrowder left 00:54 dainis joined 00:57 wamba left 00:58 kid51 joined 01:04 TEttinger joined 01:08 kid51 left 01:13 FROGGS_ joined 01:17 FROGGS left, kid51 joined 01:18 doublec joined 01:20 labster left 01:24 dainis left 01:29 cdg left 01:30 cdg joined 01:34 cdg left 01:41 kid51 left
zacts hi #perl6 01:46
01:55 molaf left 02:00 zacts left 02:01 labster joined 02:04 Actualeyes joined 02:07 colomon left, pochi left, molaf joined 02:20 zacts joined
dalek c: 8bd9ff0 | (Wenzel P. P. Peppmeyer)++ | doc/Type/ (2 files):
doc new behaviour of Nil and add Nilness of subclasses of Nil
02:20
gfldex m: class Baddy is Nil {}; sub niler( --> Any:D ) { Baddy.new }; my $i = 42; $i = niler; dd $i;
camelia rakudo-moar 041919: OUTPUT«Any $i = Any␤»
02:20 dainis joined
gfldex don't subclass from Nil, tyvm 02:20
02:22 colomon joined 02:28 kaare__ joined 02:29 jersni joined 02:30 jersni left 02:34 jersni joined
jersni p6: say 3; 02:36
camelia rakudo-moar 041919: OUTPUT«3␤»
02:36 s34n_ left 02:38 s34n joined 02:41 noganex_ joined 02:44 noganex left 02:46 jersni left 02:47 jms joined, jms is now known as Guest53368 02:48 Guest53368 is now known as jersni 02:55 dpagurek joined 03:01 dpagurek left 03:05 jersni left 03:06 ddd joined
ddd good evening 03:06
03:07 ddd left 03:08 Herby_ left 03:19 cyg07 joined 03:21 canopus left 03:23 bob777 joined 03:24 dpagurek joined
cyg07 p6: say 3; 03:24
camelia rakudo-moar 041919: OUTPUT«3␤»
dpagurek has anyone ever had issues with scripts crashing when declaring constants in modules, but having them work when declaring with 'my'? 03:25
03:27 canopus joined
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' gist.github.com/davepagurek/444847...386a773a00 03:28
03:31 molaf left
geekosaur mrrr. `constant` is compile time, no? 03:32
dpagurek ahh, is there a different way to declare a runtime variable where the container then can't be reassigned? 03:33
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:36
03:36 yqt left
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:37
dpagurek oh ok, that gives me more direction for debugging, thanks! 03:39
03:43 bob777 left, bob777 joined 03:44 cyphase left 03:46 dainis left 03:49 cyphase joined, cdg joined 03:53 khw left 03:57 dpagurek left 03:58 khw joined 04:02 khw left 04:06 khw joined, BenGoldberg left 04:17 dainis joined 04:21 dainis left 04:22 skids left 04:36 dvinciguerra_ left 04:46 holyghost left, snoopy3 joined 04:49 Cabanossi left, khw left 04:50 Cabanossi joined 04:53 maybekoo2 joined 04:55 movl joined 05:10 cdg left 05:13 jazz joined, jazz left 05:14 ufobat joined
snoopy3 gm 05:16
05:21 cyg07 left 05:22 snoopy3 left, holyghost joined 05:27 AlexDaniel left 05:31 darutoko joined 05:39 cpage_ left 05:42 domm joined 05:43 cooper left, cooper joined, cooper left, cooper joined, cooper left 05:44 FROGGS_ left 05:46 CIAvash joined, bob777 left 05:49 cooper joined
holyghost afk 05:52
05:52 colomon left
ufobat moin :) 05:53
05:57 cyphase left 06:01 cyphase joined 06:05 ribasushi left 06:08 ribasushi joined 06:11 mohae joined, holyghost left 06:14 mohae_ left, mohae left 06:15 neuron joined
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␤ …»
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␤»
neuron m: class A { has $.x; }; class B is A { has $.x; }; my A $i { x=> 5 }; say $i.perl;
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…»
neuron m: class A { has $.x; }; class B is A { has $.x; }; my A $i { $x => 5 }; say $i.perl;
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 …»
masak m: class A { has $.x; }; class B is A { has $.x; }; my A $i .= new(x => 5); say $i
camelia rakudo-moar 041919: OUTPUT«A.new(x => 5)␤»
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 zacts left
neuron sorry about that 06:19
masak (in this case, though, it gave you some hints from channel, so there is that) :P
it's a, whatchamacallit, balance
neuron hmph 06:20
masak neuron: I think the unstated question in your eval is "which $.x did I set?" -- A's 06:21
er, B's :)
neuron exactly
masak reads minds
neuron I want to see whether class B has on $.x, or two $.x
damn you are good :)
masak only one $.x
think of the `.` as a *method*
the B method overrides the A method
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 :)
masak but since you're only talking to the B $.x method, you end up interacting only with the B $!x
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
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 }
camelia rakudo-moar 041919: OUTPUT«A␤B␤»
masak there you go.
.perl used to be more "guts of the variable"
but we kind of tarnished/destroyed that with a bit too much OO thinking :/
arguing (wrongly) that "only public things should be visible in .perl" 06:25
neuron :)
masak the whole thing did give me a better appreciation of the nuances of public/private, though
so it wasn't a total loss
perhaps slightly more seriously, .perl is meant to round-trip (as good as possible) with EVAL 06:26
which means it's constrained by what .new can accept, which happens to be only public things
(which, yes, is also wrong)
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.
That itself does not seem to be possible: CPPStruct representation only handles int, num, CArray, CPointer, CStruct, CPPStruct and CUnion
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
06:28 sno left
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?
masak neuron: I feel the question is out of my league -- not used to thinking in reprs 06:29
neuron: but it does have the vibe of mixing in roles... maybe
is this something you have considered?
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
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 }
camelia rakudo-moar 041919: OUTPUT«A␤R␤»
masak like that.
you have `does` which is destructive, and `but` which does a clone first 06:31
under the hood, you end up with an instance of an anonymous subclass of A, with R mixed in
06:31 firstdayonthejob joined
neuron Hmmm, /me not being used for such wacky object design :) 06:32
But thanks for the pointer, that looks promising
masak yes, it's a bit of a power tool, with all the caveats that implies 06:35
but also occasionally just the thing
masak learns that TravisCI has been reporting test failures for 007 since 2016-07-10 06:36
seems something changed in Rakudo around that time
`This type (Scalar) does not support positional operations` -- does this failure sound familiar to anyone?
neuron masak: thank you 06:37
06:38 firstdayonthejob left 06:40 labster left 06:50 RabidGravy joined
dalek line-Perl5: 6cd75d0 | niner++ | t/lib/ (2 files):
Add mising test files
06:50
06:51 cibs left 06:54 cibs joined
masak ok, minimiz'd 06:58
m: my @a; @a.splice(0, 0, 42); say @a
camelia rakudo-moar 041919: OUTPUT«This type (Scalar) does not support positional operations␤ in block <unit> at <tmp> line 1␤␤»
masak submits rakudobug
bisectable: my @a; @a.splice(0, 0, 42); say @a
bisectable masak: bisect log: gist.github.com/1beea81fc4c0f7c56d...0b3330b44d
masak: (2016-07-08) github.com/rakudo/rakudo/commit/58c2628
moritz bisectable++ AlexDaniel++
masak the date seems to match when the failures started in 007
bisectable moritz: Exit code is 1 on both starting points, bisecting by using the output
moritz: bisect log: gist.github.com/565acf78214f9ac7fa...9b41dab392
moritz: (2015-12-27) github.com/rakudo/rakudo/commit/373adc0
masak moritz: haha, you found a bisectable bug ;) 06:59
moritz it's a bit trigger happy 07:03
masak I'd say mandate a colon 07:04
07:09 domidumont joined 07:13 domidumont left, domidumont joined
masak I have two test failures in t/spec/S10-packages/basic.t (on Rakudo-Moar) 07:14
tests 47 and 48 both say "Error: P6M Merging GLOBAL symbols failed: duplicate definition of symbol Foo" 07:15
on HEAD (041919)
can anyone confirm this?
lizmat masak: yes, they've been there since 43debec892f0bdaf0c474d0
nine is aware of it, afaik
the whole test-file is a bit, what shall I say, pre-CUR 07:16
masak ah.
lizmat with p5 notions of "use lib" sprinkled liberally in the test file
07:16 wamba joined
masak I have no context for what you're describing, but I'm glad there's awareness of the test failures. 07:16
lizmat since that commit, two whole test-files failed, but I could fix those by re-ordering use statements 07:17
masak I ran the spectest to get a baseline. now rebuilding with 58c2628, and re-spectesting. 07:22
58c2628 reverted*
what -- it doesn't even build 07:25
fails during Stage optimize with "This type (Scalar) does not support associative operations" 07:26
I tried realcleaning and re-configuring. same result. 07:27
07:27 sno joined
masak tries `git clean -xdf` too 07:27
...still the same error. 07:30
masak tries building from 58c2628^
...that works. 07:33
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.
masak reports all this to RT 07:34
lizmat and I will look at it later today 07:36
masak ++lizmat
neuron class A {}; class B is A {}; my $x = B.new(); is there a way to tell that $x is A?
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
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.
neuron masak: Yes, but can I list what all classes $x is composed from? 07:38
moritz m: class A {}; class B is A {}; say B.^mro 07:39
camelia rakudo-moar 041919: OUTPUT«((B) (A) (Any) (Mu))␤»
moritz m: class A {}; class B is A {}; say B.^parents(:all)
camelia rakudo-moar 041919: OUTPUT«((A) (Any) (Mu))␤»
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: rt.perl.org/rt3//Public/Bug/Displa...?id=128736
lizmat clickbaits p6weekly.wordpress.com/2016/07/25/...kudo-star/
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
neuron moritz: Ah, this way!
Thanks
masak lizmat: oh, for sure. didn't mean to yank you out of any frame-of-mind :)
just listing mysteries for later
07:44 zacts joined 07:45 labster joined, xescugc joined
nine masak: I have no idea either. I should be able to find some time this evening to dig into it. 07:46
masak another (unrelated) thing I'm mystified by: people using statement-modifying `with` instead of statement-modifying `given` for no reason 07:48
here: www.reddit.com/r/perl6/comments/4u...nd/d5r1img
...or am I missing some excellent reason to use `with` there? 07:49
isn't the extra semantics on top of `given` "skip this statement if `self` is undefined" ?
07:52 maybekoo2 left 07:55 xescugc left 07:57 cpage_ joined
neuron If I change moar-nom/lib/NativeCall.pm6, how do I recompile rakudo? "rakudobrew build moar" seems to recompile everything 07:58
Or do I have to recompile everything?
moritz neuron: if you change files yourself, you shouldn't use rakudobrew 07:59
just work in a git clone, and then recompiling is just "make"
(and "make install")
08:00 xescugc joined
neuron I did try just running 'make', maybe I need 'make install' so that changes in NativeCall.pm6 are installed 08:01
Yup, that's it, thank you 08:03
08:05 dakkar joined 08:06 Ven_ joined
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␤»
neuron Shouldn't it be CPPStruct too?
masak I... don't know. curious. 08:14
do reprs inherit?
neuron From my point of view they should, but they don't
But I don't have wide enough knowledge to claim that :) 08:15
masak I can sort of argue that one both ways... 08:17
though the case for "yes, they inherit" seems slightly stronger, perhaps?
08:18 holyghost joined 08:19 Woodi joined
masak always enjoys reading Zefram's bug reports 08:22
neuron I think I'll file a bug we'll see :)
masak like rt.perl.org/Ticket/Display.html?id=126101, for example. that's fun! 08:23
m: my $a = 0.99999999999999999999999; say $a > 1 08:24
camelia rakudo-moar 041919: OUTPUT«True␤»
masak marketing^Wordering -- we suck at it
DrForr Well, I'm working on the marketing bit :) 08:25
masak DrForr++ 08:26
cosimo I'm surely not the first one to think about this, but... stackoverflow.com/documentation/perl6 :-( 08:28
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␤»
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
...my example only shows the difference exists though
m: class A { method foo { .perl.say with self; say ""; .perl.say given self } }; A.foo; A.new.foo 08:31
camelia rakudo-moar 041919: OUTPUT«␤A␤A.new␤␤A.new␤»
08:31 abraxxa joined
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:35
psch masak: well, using with there means you don't need the :D invocant marker..? 08:36
masak: granted, i don't think that's the reason for with in the example
m: class A { has $.b is rw; method set-b($a) { .b = $a with self } }; A.set-b("foo") 08:38
camelia ( no output )
psch m: class A { has $.b is rw; method set-b($a) { .b = $a with self } }; A.set-b("foo").b.say
camelia rakudo-moar 041919: OUTPUT«Method 'b' not found for invocant of class 'Slip'␤ in block <unit> at <tmp> line 1␤␤»
psch i mean, that's kind of crazy way of declaring non-static methods, but it does work 08:39
s/non-static/instance/ # too much java recently :)
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
It also says that documentation itself is in beta.
08:56 cosimo left 08:58 zacts left, cosimo joined 09:00 maybekoo2 joined 09:11 nowan joined 09:16 sftp joined, zacts joined 09:17 sftp left, sftp joined 09:35 Ven_ left, cosimo left 09:36 dj_goku left 09:37 dj_goku joined 09:38 cosimo joined 09:42 s34n left 09:43 s34n joined 09:44 tbrowder joined 09:49 hwcomcn joined 09:50 TEttinger left 09:51 neuron left 09:52 hwcomcn left 09:53 hwcomcn joined 10:15 Ven_ joined
dalek c/predefined_search: 2141eca | Altai-man++ | / (3 files):
Now we take predefined search values from outer file
10:15
10:20 Ven_ left
dalek c: 5f71718 | (Wenzel P. P. Peppmeyer)++ | doc/Type/IO/Path.pod6:
remove a few :D because they are a lie
10:24
10:27 sena_kun joined 10:29 cpage_ left 10:34 travis-ci joined
travis-ci Doc build passed. Altai-man 'Now we take predefined search values from outer file' 10:34
travis-ci.org/perl6/doc/builds/147427350 github.com/perl6/doc/commit/2141eca64bc9
10:34 travis-ci left 10:47 rindolf joined 10:50 dvinciguerra_ joined 10:52 dakkar left
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:05
(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:06
gfldex Zoffix: Rakudo was in beta until github.com/rakudo/rakudo/blob/nom/...2015.12.md 11:07
11:12 holyghost left 11:13 ZoffixMobile joined
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:13
And then proceeds to clarify that it's the language that's stable 11:14
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:19
nebuchadnezzar DrForr: we may ask enlightenment.org how they do? 11:21
ZoffixMobile Not sure what "a .0 release" is TBH. Is it 1.0? Is it 0.0? 11:22
psch 6.0 :)
gfldex .0 means: not beta anymore but expect more bugs then usual
Woodi DrForr: PPAs are for Ubuntu ? Debian repo is just ftp/http and have broader usage 11:23
ZoffixMobile I see
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
11:24 rindolf left
moritz DrForr: there's a nice command line tool called aptly for managing Debian repositories 11:24
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
moritz DrForr: that, a GPG key and 5 lines of HTTP server config is all it takes to create a repo
11:26 labster left, kid51 joined
moritz if somebody provides the packages, I'm happy to set up the repo 11:26
nebuchadnezzar DrForr: or setup an reprepro
DrForr: you cloud look at wiki.debian.org/SettingUpSignedApt...thReprepro 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.
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:28
11:29 ZoffixMobile left
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
11:30 cooper left
DrForr Bathroom break, back in a few. 11:30
11:30 cooper joined, cooper left, cooper joined
nebuchadnezzar DrForr: for what I know, we are only two people to make the Debian packaging (tracker.debian.org/news/786610), now if you want the latest package on stable Debian, we could work some -backports packages (backports.debian.org/), but we may need more man power 11:33
11:36 jonadab joined
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
11:42 Ven_ joined
jdv79 is it hard to install now? 11:44
DrForr Not now, but the fewer barriers to adoption the better. 11:46
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
usually just compile a p5 and then cpan it 11:48
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:49
jdv79 ok 11:50
11:50 dalek joined, ChanServ sets mode: +v dalek 11:52 dvinciguerra_ left 11:53 tadzik joined
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:54
11:54 s34n left 11:55 s34n joined 11:58 xescugc left 12:04 kanishka joined 12:06 bob777 joined
nebuchadnezzar DrForr: if you want, you can follow the Debian perl6 group on alioth alioth.debian.org/projects/pkg-rakudo/ 12:06
DrForr Nod. 12:10
12:12 sena_kun left 12:17 Matthew[m] joined, M-Illandan joined, pr1 joined
pr1 Hi, why does "'abcd;efgh 2332;ijk:+'.comb(/< .* - [ ; ]>/).say" return (; ;) instead of ("abcd", "efgh 2332", "ijk:+")? Many thanks. pr1 12:21
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(/;/)? :)
DrForr Er, /<[ ; ]>/ # dratted shift key.
pr1 @tadzik: yes, but in perl6 :-)
Lame joke. I'm just playing with .comb 12:24
gfldex m: dd 'abcd;efgh 2332;ijk:+'.comb(/<-[;]>+/); 12:26
camelia rakudo-moar 2efb01: OUTPUT«("abcd", "efgh 2332", "ijk:+").Seq␤»
pr1 @DrForr: 'abcd;efgh 2332;ijk:+'.comb(/<[ ; ]>/) returns (; ;), not ("abcd", etc.) 12:27
12:28 frithnanth joined
DrForr yeah, <-[;]> .. that's what I get for not RTFM. 12:28
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.
Or so I think :-) Can anyone confirm that I really succeeded in doing that for this project: github.com/frithnanth/perl6-Desktop-Notify ?
DrForr /<-[;]>+/ 12:30
tadzik I don't see it on modules.perl6.org/#q=Desktop
gfldex frithnanth: you can check in github.com/perl6/ecosystem/blob/ma.../META.list 12:31
tadzik right, it's not there
frithnanth OK, I'll try again
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 ";"
pr1: ergo, it keeps the semicolons 12:33
DrForr It's more meant to *retain* whatever the regex matches, so /<-[;]>+/ returns a list of the terms that match. 12:34
12:36 pr1 left 12:37 pr1 joined
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...
moritz pr1: there's nothing wrong with .split, really. If you're more in a split mindset, use it rather than .comb
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 osystem: 8627cf2 | frithnanth++ | META.list:
Desktop::Notify is a set of simple bindings to libnotify using NativeCall.

See: github.com/frithnanth/perl6-Desktop-Notify
osystem: d4c68c5 | (Zoffix Znet)++ | META.list:
Merge pull request #228 from frithnanth/patch-2

Desktop::Notify is a set of simple bindings to libnotify using Native…
12:40 kid51 left, dvinciguerra_ joined
ufobat yay:D 12:41
frithnanth :-)
12:42 yqt joined
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++
pr1 Hi, why does '3' ~~ / < [\d] > / return Nil? Thks. 12:44
tadzik oh, libnotify :)
perlpilot pr1: when you have a space after the <, then < > becomes quote-words just like in normal perl code
timotimo m: say '[\d]' ~~ / < [\d] > / 12:45
camelia rakudo-moar b294e9: OUTPUT«「[\d]」␤»
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.
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:46
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:47
12:48 yqt left
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.
Woodi DrForr: becouse not everyone things debian testing is the Greatest OS available. no idea why... ;)
12:49 telex left 12:50 telex joined, maybekoo2 left
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:52
timotimo i was on debian sid for a long while 12:54
12:54 pr1 left
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
s/now/know/ # ENEEDMORETEA 12:55
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++ :)
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. 12:59
Luckily windows can be hidden and ads blocked, then they start beeping in order to make themselves known. 13:01
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
timotimo also possible in google-chrome :) 13:04
(it may still be behind a chrome://flags checkbox, though)
CIAvash Isn't "source-url" in META6.json necessary? 13:05
13:07 bob778 joined
unmatched} .ask AlexDaniel why did you tell me that I should be fixing things in irclog.perlgeek.de/perl6/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:07 bob777 left, bob778 is now known as bob777
unmatched} CIAvash: thjere's support -> source but it's optional 13:09
Though I'm unsure how our ecosystem will handle it. I guess we'll find out with frithnanth's module
CIAvash Yeah, I thought module installers use that url 13:10
jdv79 unmatched}: no. that's panda. 13:11
unmatched} jdv79: mp tjat
jdv79: no that's pandda what?
jdv79 META.info i mean
unmatched} jdv79: the source-url? 13:12
jdv79 META6.json it should be support.source iirc
yes
unmatched} Yeah, that's what I recollect too.
Tho we still list `source-url` in the docs: docs.perl6.org/language/modules#Di...ng_Modules 13:13
jdv79 hmm, wonder if that's good
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
META.info is the legacy unoffical thingee
unmatched} A few days ago, ugexe said that 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:)
unmatched} XD
jdv79 i wonder if that's so panda can install it?
ugexe: ^^
13:16 sufrostico joined
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:16
13:18 pdcawley left, pdcawley_ joined, canopus left
CIAvash github.com/tadzik/panda/blob/maste...#L136-L137 13:18
13:19 holyghost joined
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.
and spec it and version the other out over time
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
Shorter to type too.
jdv79 it is optional because there should be an index
13:21 Sgeo left
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 :)
unmatched} :)
tadzik I had to check, but I woudn't be very surprised if SHELTER was still a thing :)
unmatched} It is :) 13:22
tadzik waitwhat
oh, it's just in mu now
yeah, see :)
unmatched} github.com/perl6/mu/tree/master/misc/SHELTER
tadzik it dates back to either the birth of panda or a bit before that 13:23
13:25 skids joined 13:26 canopus joined 13:30 brrt joined
jeek tadzik: Love the nick 13:33
tadzik *blushes* 13:34
unmatched} Well, I opened an issue on the whole META6.json stuff: github.com/perl6/doc/issues/764 13:35
GitHub won't let me stick any labels on it for some reason :\
moritz unmatched}: which label do you want me to add? 13:46
unmatched}: "docs" I guess? 13:47
unmatched} moritz: I wanted "BIG" since the fix would require either fixing all of our tooling or changing what the speculation dictates 13:53
13:54 rindolf joined
ugexe source-url was never a spec'd key. its an ecosystem spec 13:54
13:55 ptolemarch joined
ugexe and you can't really make it mandatory because of darkpans 13:56
unmatched} Then we just need to fix the tools that explode when no URLs are given 13:58
13:58 avenj left
ugexe the ecosystem could refuse to index them 13:58
source-url could be seen as an ecosystem related meta6 extension
unmatched} Sounds good 13:59
moritz unmatched}: ok, I've added the "big" label 14:01
unmatched} moritz++ 14:02
timotimo why "big" and not "BIG" or even "BIG"? 14:03
14:04 smls joined
jdv79 there are no darkpans yet are there? 14:05
there is barely a cpan
smls What's this on latest rakudobrew update: "===> Install [FAIL] for zef:auth('github:ugexe'): zef:ver<*>:auth<github:ugexe>:api<> already installed"
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.
smls: the error says it's already installed...
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.
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
I guess I have to nuke my rakudobrew again 14:08
unmatched} *shrug*
ugexe smls: oh, yea you probably need to nuke because of the Distribution changes in 2016.07
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 github.com/tadzik/rakudobrew ~/.rakudobrew; rakudobrew build moar; rakudobrew build zef; *installation of some modules that I commonly use*
jdv79 metacpan6 would just use it to expose the repo on the left rail iirc 14:09
unmatched} How is that going, BTW?
Any progress since we last talked about there being no volunteers to do the work and no progress? :) 14:10
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
i basically stopped when mst said there was some cpan issues
they may be fixed now...? mst: ^^?
as soon as we can use cpan i think we can move forward easier
:) 14:12
unmatched} :) 14:13
jdv79 and then zef was, around that time, just getting the first hints of cpan support
so its on the edge of being useable maybe 14:14
unmatched} Sweet 14:15
jdv79 and then one complicated issue is how hard it is to gen docs
TimToady said maybe we could relax the runtime requirements for the majority but that seems like a lot of work
14:18 brrt left 14:19 brrt joined 14:29 Ven_ left
nine smls: if you need to nuke thats a bug that I'd like to see reported 14:30
ugexe: ^^^ 14:31
smls nine: I did nuke, and now everything works fine.
nine smls: darn :/ 14:32
smls (Maybe it's because I was using moar-blead?)
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: "*"
nine smls: no, the only situation at all where nuking may be necessary is when you downgrade
ugexe: yes that's a bug 14:33
14:34 kurahaupo joined, MorayJ joined
ugexe its the fake role / submethod new things in Distribution 14:34
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
nine ugexe: can you please have a look? You're definitely the one most familiar with the code 14:36
14:40 hwcomcn left
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:45 holyghost left 14:46 holyghost joined 14:47 avenj joined
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 gist.github.com/ugexe/72b5e491fddb...039725872a 14:50
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␤␤»
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
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:55
mst I don't remember seeing that in #perl6-toolchain, sorry 14:56
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 14:57 brrt left
mst or did I just completely flake on noticing that line 14:57
ugexe mst: irclog.perlgeek.de/perl6/2016-06-26#i_12738185
mst ugexe: yeah, not in here
ugexe: in -toolchain which I created specifically so things like this *didn't* get buried
ugexe: which you keep not using, and then they get buried :P
I have already solved the problem. use the solution please. 14:58
14:59 khw joined 15:00 bob777 left
unmatched} Heh, this is amusing :) github.com/rails/rails/commit/b839...a393e6dc57 15:00
15:00 inokenty joined
unmatched} didn't even know we had a -toolchain 15:03
There's -dev, and -release ETOOMANYCHANNELS
timotimo and also -noise-gang 15:04
perlpilot unmatched}: aye, but you don't have to be in all of them.
unmatched} And -gaming too, eh? 15:05
perlpilot: but apparently some dev stuff is missed if you aren't :)
dalek c: e6261d7 | TimToady++ | doc/Type/Nil.pod6:
contrast Nil with Failure and Empty

Explain relationship of Nil with Failure a bit better. On assignment, only Nil resets a container to default; Failure or other derived classes never do. Failure.new passes Any:D but will fail Int:D. Mention that Empty is available for non-space-taking purposes.
15:06
unmatched} And you get yelled at by mst :)
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
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
unmatched} And -release seems to be dead entirely
TimToady
.oO("You mentioned python, maybe you'd be more comfortable over on #sheeple" :)
unmatched} And I think -toolchain was created before we got -dev 15:09
TimToady well, we had p6dev before that
gfldex is there a waterbed theory of communication?
perlpilot -release is highly specialized and very temporally relevant. ;)
TimToady gfldex: there's a theory that communication often leaks... 15:10
unmatched} perlpilot: what's the specialization?
and relevance.
perlpilot releases aren't something we talk about everyday
unmatched} Considering the release manager for the last two releases never even thought about that channel :P
15:10 molaf joined
perlpilot Well ... maybe we've not quite the critical mass to make so many channels necessary. Maybe we prematurely optimized. I dunno. 15:12
15:13 zakharyas left
unmatched} nods in agreemeent 15:14
15:14 pmurias joined
pmurias hi 15:15
unmatched} \o
15:16 Ven_ left, smls left 15:17 xinming_ joined 15:18 pmurias left 15:20 xinming left 15:21 pmurias joined 15:23 Ven_ joined, huggable joined
unmatched} dalek, camelia, synopsebot6, bisectable, committable, yoleaux, yoleaux2, huggable and [soon to be birthed] buggable. Quite a family of bots we got :) 15:23
Oh and ilbot3
15:26 sisar joined
[Coke] lizmat++ 15:28
15:28 Usermac joined
[Coke] (hacking, weekly) 15:28
Usermac Is there an online "PERL 6" interpreter? 15:29
lizmat :-)
unmatched} Usermac: yes, glot.io
Usermac thx
unmatched} Usermac: and it's Perl, not PERL
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:31
15:32 cibs left 15:34 cibs joined
[Coke] (in review) the -release channel is mostly unused at this point. 15:36
m: say "{ 'usermac'.tclc } - there's also one here." 15:40
camelia rakudo-moar b294e9: OUTPUT«Usermac - there's also one here.␤»
15:42 Usermac left
unmatched} lol 15:43
15:47 sisar left 15:48 cdg joined 15:50 xinming joined 15:53 xinming_ left 15:56 dogbert17 joined
unmatched} Is Perl 5 needed just for panda in R*? www.reddit.com/r/perl/comments/4um...ar/d5rkq18 15:58
16:00 zacts left
unmatched} (or any other stuff that comes with Strawberry) 16:00
mst eh?
perl5 is used during configure
16:00 zakharyas joined
mst gm 16:00
no idea about panda 16:01
unmatched} mst: but that's not run with built .msi's is it?
mst right, so, dunno wrt panda
gfldex unmatched}: checking my clean windows VM
unmatched}: only git 16:02
16:02 domidumont left
unmatched} Thanks. 16:04
16:09 AndyBotwin joined 16:11 BillSussman left, ruoso joined 16:13 pmurias left 16:16 zacts joined
tadzik panda doesn't use perl5 16:16
ugexe probably from when it used prove 16:17
16:17 ptolemarch left, frithnanth left
unmatched} ugexe: does zef require git? 16:19
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 16:26 Actualeyes left
dogbert17 o/ #perl6 16:27
unmatched} \o
dogbert17 Hi zoffix :) 16:28
Have finally managed to scribble together some docs for categorize-list. Does it look ok or is it bs? gist.github.com/dogbert17/6caf9f74...e87ef47ab3 16:29
ugexe actually Distribution::Common::Remote::Github does not require `git`, so thats one pure perl6 way 16:30
16:33 Ven_ left 16:34 KaitoDaumoto joined
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:34
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.
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␤»
gfldex ^^^ that's why --> Any:D isn't really a thing
dogbert17 gfldex: so should I use your first suggestion then? 16:40
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␤␤»
unmatched} nice error :) 16:44
gfldex: so :D on return types isn't really a thing?
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␤␤»
psch Nil just is special in a few ways
i don't know if TimToady++'s judgement on container constraints generalizes to return type checks
m: my Any:D $x;
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␤»
psch m: my Any:D $x = Any;
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␤␤»
unmatched} m: sub f(--> Int:D) { Int }; f() 16:46
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␤␤»
unmatched} That error message is confusing
psch a bit, yeah
m: sub f(--> Any:D) { Any:D }; f() 16:47
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␤␤»
psch okay yeah that's worse
unmatched} :}
psch especially considering that's what the previous error suggests, i think..?
[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"
[Coke] Any:D by itself is a type object, which isn't defined.
psch [Coke]: oh. i read ":D (type object)" vs "(:D type) object"
...i'm not sure that actually clarifies anything though 16:49
"and object of type :D" i.e. a defined object, vs "a type object with a type smiley"
unmatched} And the "perhaps returning" part... eh, IMO it should go away entirely.
Doesn't seem to add anything and has an Engrish feel to it.
psch "return value $value does not match definedness constraint :D" or something maybe 16:50
unmatched} psch++
psch that is, if it's only about the smiley
if there's also a mismatch in type itself we probably should mention that too :)
dogbert17 so, should I go for multi method categorize-list(&test:(Any --> Bool), *@list) returns Baggy 16:51
16:54 zacts left
gfldex the error message should state that a undefined value can not be returned thanks to a constraint 16:55
16:55 FROGGS joined
gfldex dogbert17: yes, and explain that Any should be of the same type then the elements on @list. 16:56
m: sub f(&c:(T), ::T @l){};
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){};␤»
dogbert17 gfldex: will do
gfldex m: sub f(::T @l){}; 16:58
camelia ( no output )
gfldex m: sub f(::T @l, &c:(T)){};
camelia ( no output )
gfldex goes to ponder how to phrase the rakudobug subject for that one 16:59
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){};␤»
psch m: sub f(&c:(::T $), T @l){};
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){};␤»
psch right, that's lexical scoping 17:02
i mean, the last one
a bit unfortunate for "i want exactly this order"-cases 17:03
17:03 pochi joined
psch not sure leaking that T outwards is a good idea though 17:04
m: sub f(&c:($a), $a) { } # *might* poison this use case if we're not careful
camelia ( no output )
pochi can I prevent perl6 from generating the default new()-method for my class? 17:07
psch pochi: you can overwrite it
pochi: but since you have to have a parent class and Mu implements new you can't really not have it 17:08
pochi: except maybe with a different Metaobject
gfldex pochi: you would have to build your own type system.
pochi yikes - don't wanna do that :-)
unmatched} pochi: why? 17:09
pochi: you can add proto new (|) {} if the Mu's new conflicts with your own news 17:10
(when having multis)
17:10 firstdayonthejob joined
pochi what does proto new (|) {} do? 17:11
unmatched} No idea. 17:12
Black magic :)
psch it declares a proto that doesn't dispatch to the multi candidates of the same name
unmatched} pochi: it's documented here, if it helps: docs.perl6.org/syntax/proto
psch and instead does nothing
17:12 domidumont joined
unmatched} psch: but what's a "proto"? 17:13
And how come multi dispatch still works if it does nothing?
psch m: proto foo(|) { }; multi foo($) { say "foo" }; foo 1 17:14
camelia ( no output )
psch unmatched}: but it doesn't work if you don't have a Whatever in the body :)
m: proto foo(|) {*}; multi foo($) { say "foo" }; foo 1
camelia rakudo-moar 22e46b: OUTPUT«foo␤»
unmatched} m: class Meow { proto new(|) {}; multi method new ($x) { say $x } }.new: 42
camelia rakudo-moar 22e46b: OUTPUT«42␤»
unmatched} Seems to work :)
17:14 TEttinger joined
psch that's 'cause you also have the Mu.new proto already there 17:15
unmatched} Ah
17:15 sno left
dalek c: d54f984 | (Jan-Olof Hendig)++ | doc/Type/Baggy.pod6:
Added some docs for Baggy.categorize-list. gfldex++
17:15
psch m: class Meow { proto new(|) {}; multi method new ($x) { say $x } }; say Meow.^can('new')>>.is_dispatcher
camelia rakudo-moar 22e46b: OUTPUT«(True True)␤»
psch as seen there
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␤»
unmatched} m: class Meow { multi method new ($x) { say $x } }.new: 42
camelia rakudo-moar 22e46b: OUTPUT«42␤»
17:17 acrussell joined
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
pochi: for example a proto with the Signature ($, $) only allows multi candidates with positionals 17:18
+two
pochi I tried proto new(Numeric $t1, |) {*} but it still allowed empty news
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␤␤»
unmatched} "caller new(Meow: Int);" ??
psch unmatched}: that should have a named marker on the Int, yeah 17:20
m: class Meow { proto method new(|) {}; multi method new ($x) { say $x } }; say Meow.^can('new')>>.package 17:21
camelia rakudo-moar 22e46b: OUTPUT«((Meow) (Mu))␤»
unmatched} pochi: it's `proto method`
psch also unmatched}++, 'method' keyword matters a lot there :)
you still don't get rid of the Mu proto, but you at least shadow it
unmatched}
.oO( proto proto )
psch++ I think I finally understand proto :) 17:22
pochi nice, that worked :-)
_and_ it gives sane error messages when I try empty or non-compliant signatures :-)
psch m: class Meow { proto method new(|) {}; multi method new ($x) { say $x } }; my &new = Meow.^can('new')[1]; say Meow.&new 17:23
camelia rakudo-moar 22e46b: OUTPUT«Meow.new␤»
psch but it can still be circumvented :)
pochi :-)
psch the problem with too good introspection vOv 17:24
pochi well, at least then you know you're doing something "bad"
psch yeah, definitely 17:25
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:28
unmatched} dogbert17: it's the LWP::Simple. It's busted 17:31
I ended up just rewriting one of my modules to use HTTP::UserAgent instead
17:31 zakharyas left
unmatched} dogbert17: I think if you force install LWP::Simple Pod::To::BigPage will still work 17:32
panda --notests install Pod::To::BigPage # or just skip the testing
17:32 MorayJ left
dogbert17 unmatched}: I'll try your suggestion ... 17:33
I'm using rakudobrew if it makes any difference 17:35
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 domidumont left
unmatched} except for HTTPS urls :) 17:38
17:42 lichtkind joined
gfldex should I need the binding in this example? stackoverflow.com/a/38585401/5854207 17:44
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
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 acrussell left
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)␤»
lichtkind cheers 17:54
any upcoming event on the jvm fontend?
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)␤»
psch lichtkind: we recently got a workaround for installing r-j as well as a tidy restructuring of interop
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
but jvm port is still some features behinf moar?
psch yes
gfldex skids: do I understand that right, that deepmap is doing something wrong? 17:57
skids gfldex: yes, or something called by it.
lichtkind psch: can you link me please to the comparison page cant find it 17:58
skids Maybe Hash.clone 17:59
17:59 itaipu joined
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)␤»
lichtkind im currently lanning some perl 6 article for a major java site :)
gfldex lichtkind: more propaganda is more better! 18:00
lichtkind i want actually provide real information
18:01 ismailarilik joined
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
camelia rakudo-moar 22e46b: OUTPUT«(Scalar)␤(Int)␤»
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
camelia rakudo-moar 22e46b: OUTPUT«(Scalar)␤(Scalar)␤»
TimToady a . will deref a VAR by default
18:06 spider-mario joined
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
m: class A { has $.a }; A.a.VAR.WHAT.say
camelia rakudo-moar 22e46b: OUTPUT«Cannot look up attributes in a type object␤ in block <unit> at <tmp> line 1␤␤»
psch m: class A { has $.a }; A.new.a.VAR.WHAT.say
camelia rakudo-moar 22e46b: OUTPUT«(Any)␤»
18:09 girafe joined
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
skids s/direct Scalar link/direct link/
unmatched} lichtkind: the page is this, but yeah, likely very out of date: perl6.org/compilers/features 18:13
lichtkind but it only improved from there 18:15
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:16
e.g., I doubt niezche does all the basic types at 100% due to GLR :) 18:17
18:17 canopus left
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:20 cyphase left 18:23 acrussell joined 18:25 cyphase joined, canopus joined 18:27 labster joined, hankache joined
skids m: for 42, $(42), $(42,), $(now) { .VAR.WHAT.say } 18:28
camelia rakudo-moar 22e46b: OUTPUT«(Int)␤(Int)␤(Scalar)␤(Instant)␤»
skids m: for 42, $(42), (42,), $(42,), $(now) { .VAR.WHAT.say } 18:29
camelia rakudo-moar 22e46b: OUTPUT«(Int)␤(Int)␤(List)␤(Scalar)␤(Instant)␤»
skids enough scab picking I have to do some $DAYJOB 18:30
gfldex skids: see line 10 gist.github.com/gfldex/688fb7e3caf...5ac0a5889a
skids gfldex: I would not have thought of that as a workaround, kudos. 18:32
rindolf skids: what does := do? 18:36
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
tricky one
rindolf: := will force binding
rindolf gfldex: what is binding? 18:39
unmatched} ha! neat. gfldex++
gfldex rindolf: i wrote a lenghty adventpost about binding. It may be lenghty for a reason.
unmatched} m: set(1,2,3) ~~ Iterable 18:40
camelia ( no output )
unmatched} m: say set(1,2,3) ~~ Iterable
camelia rakudo-moar 22e46b: OUTPUT«False␤»
gfldex i'm not overy happy with docs.perl6.org/language/containers
arnsholt m: my @a = 1,2,3; my @b = @a; @b.push: 4; say @a; say @b
camelia rakudo-moar 22e46b: OUTPUT«[1 2 3]␤[1 2 3 4]␤»
arnsholt m: my @a = 1,2,3; my @b := @a; @b.push: 4; say @a; say @b
camelia rakudo-moar 22e46b: OUTPUT«[1 2 3 4]␤[1 2 3 4]␤»
arnsholt Roughly, that's the difference
rindolf gfldex: ah.
18:40 mohae joined
gfldex you need to play with Proxy to understand binding 18:40
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)…»
unmatched} m: my $s = set(1, 2, 3); -> $c is copy { $c<5> = True }($s); dd $s
camelia rakudo-moar 22e46b: OUTPUT«Cannot modify an immutable Set␤ in block <unit> at <tmp> line 1␤␤»
unmatched} m: my $s = SetHash.new: 1, 2, 3; -> $c is copy { $c<5> = True }($s); dd $s
camelia rakudo-moar 22e46b: OUTPUT«SetHash $s = SetHash.new(3,1,2,IntStr.new(5, "5"))␤»
18:41 setty1 joined
unmatched} The -> $c is copy trick probably won't work for stuff liek the aBOVE 18:42
m: my %h; say %h ~~ Iterable
camelia rakudo-moar 22e46b: OUTPUT«True␤»
arnsholt m: my $a = 1; my $b := $a; $b = 2; say $a, $b; # Also, this 18:43
camelia rakudo-moar 22e46b: OUTPUT«22␤»
arnsholt Roughly speaking, it's a way of aliasing a variable to another one
perlpilot would have said "container" because "variable" sometimes hangs people up with an interface 18:46
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.
unmatched} :D
18:48 sufrostico left
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:50
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
So especially since the original thing that was cloned had scalar containers, suddenly losing them is pretty bad. 18:54
18:55 Tonik left
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:56
dalek c: 0383718 | (Jan-Olof Hendig)++ | doc/Type/Baggy.pod6:
Fix typo leading to broken link
18:57
18:59 itaipu left 19:01 brrt joined
dalek c: a672a23 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Signature.pod6:
add :() to index
19:03
19:03 FreezerburnV joined
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
Or rather, a string stored in a variable
unmatched} FreezerburnV: <$sting>
m: my $string = '.*'; say "foo" ~~ /<$string>/
camelia rakudo-moar d7838c: OUTPUT«「foo」␤»
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
FreezerburnV perlpilot, Regexes language documentation, Regex class documentation, Str documentation were the main ones 19:07
It might be somewhere in the Regexes docs, but I might have missed it
masak finds rt.perl.org/Ticket/Display.html?id=126119 hilarious
19:07 labster left
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
ChristopherBotto o/ perl6 19:09
m: for <A B C>.race( :batch(2) ) { say ++$; }
camelia rakudo-moar d7838c: OUTPUT«1␤2␤3␤»
ChristopherBotto m: for <A B C>.race( :batch(2) ) { say ++$; }
camelia rakudo-moar d7838c: OUTPUT«1␤2␤3␤»
ChristopherBotto m: for <A B C>.race( :batch(2) ) { say ++$; }
camelia rakudo-moar d7838c: OUTPUT«1␤2␤3␤»
ChristopherBotto m: for <A B C>.race( :batch(2) ) { say ++$; }
camelia rakudo-moar d7838c: OUTPUT«1␤3␤2␤»
ChristopherBotto m: for <A B C>.race( :batch(2) ) { say ++$; }
camelia rakudo-moar d7838c: OUTPUT«1␤2␤3␤»
ChristopherBotto m: for <A B C>.race( :batch(2) ) { say ++$; }
camelia rakudo-moar d7838c: OUTPUT«2␤1␤3␤»
ChristopherBotto m: for <A B C>.race( :batch(2) ) { say ++$; }
camelia rakudo-moar d7838c: OUTPUT«1␤2␤3␤»
unmatched} \o
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.
So it's probably blowing up when things collide
19:11 xinming left
timotimo yeah, a shared variable like that would need a lock protecting it 19:11
19:11 xinming joined
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
[Coke] updates 126119 from [BUG] to [RFC]
gfldex .oO( use WarnIfSilly; )
unmatched} RT#126119 19:13
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=126119
ChristopherBotto lol. We don't always know if we're doing something silly
[Coke] it was just a page back in scroll, I deliberately didn't link it. :P
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
m: (1, 2, 3).map({ if $^a == 1 { 'foo' } else { $^a } })
camelia ( no output )
FreezerburnV m: (1, 2, 3).map({ if $^a == 1 { 'foo' } else { $^a } }).say
camelia rakudo-moar d7838c: OUTPUT«(foo False False)␤»
timotimo yeah, if you have curlies, you have a block
19:14 brrt left
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; ...'?
unmatched} [Coke]: oh, I didn't notice it :)
perlpilot m: (1, 2, 3).map({ $^a == 1 ?? "foo" !! $^a }).say 19:16
camelia rakudo-moar d7838c: OUTPUT«(foo 2 3)␤»
gfldex FreezerburnV: you could use ?? !! (depends ofc) or put the if at the end
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.
perlpilot m: (1, 2, 3).map({ if $^a == 1 { "foo" } else { $a } }).say
camelia rakudo-moar d7838c: OUTPUT«(foo 2 3)␤»
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
perlpilot FreezerburnV: $^a is a way to self-declare $a, so you can use either (as long as you haven't switched blocks :)
gfldex just use GPS time, problem solved :)
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 }
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 }␤»
gfldex m: if 1 -> $aa { say $aa }
camelia rakudo-moar d7838c: OUTPUT«1␤»
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.
gfldex FreezerburnV: ^^^
19:19 sena_kun left
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.
gfldex m: if 1 -> $aa { if 2 { say $aa } }
camelia rakudo-moar d7838c: OUTPUT«1␤»
perlpilot maybe 2 if they do 2 in the same year (unlikely)
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)
camelia rakudo-moar d7838c: OUTPUT«42 works and so does 42; wtf␤»
unmatched} TIL
CIAvash me too 19:21
unmatched} m: { my $Δ = 72; say "$^Δ works and so does $Δ; wtf" }(42)
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 darutoko left, hankache left
unmatched} That's LTA 19:21
perlpilot what would you have it say instead? 19:22
unmatched} m: { say "$^Δ works and"; my $Δ = 72; say " so does $Δ; wtf" }(42)
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␤»
unmatched} perlpilot: I wouldn't want it to error out in the second example and do error out in the first. 19:23
19:23 huggable left
unmatched} m: my $*foo = 42; my $foo = 72; say "$*foo $foo" 19:23
19:23 mcmillhj joined
camelia rakudo-moar d7838c: OUTPUT«42 72␤» 19:23
19:23 mcmillhj left
unmatched} I mean, this twigil isn't colliding, so it's LTA that the $^ twigil does 19:23
perlpilot hrm.
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
FreezerburnV unmatched}, At least in the circumstance I originally brought up, having $^a also bound to $a comes in handy 19:24
19:24 mcmillhj left
FreezerburnV Or I shoudl say: $^a creating an implicit "my $a = ...;" 19:24
[Coke] CSRF failures from rakudo to RT have been resolved. 19:25
I only ever saw them when I wasn't logged in, now they're gone.
19:25 mcmillhj joined
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
Too late now to change, I guess.
19:25 AlexDaniel joined
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 mcmillhj left
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 irclog.perlgeek.de/perl6/2016-07-22#i_12892225 ? As far as I can tell, I'm actually doing it right. `source-url` is not in the spec
unmatched} FreezerburnV: my $a = $^a
or whatever 19:27
timotimo unmatched}: that's unnecessary, and redundant
19:27 mcmillhj joined
unmatched} OK 19:27
timotimo m: if 100 { say $^a; if 99 { say $a; say $^b } }
camelia rakudo-moar d7838c: OUTPUT«100␤100␤99␤»
[Coke] AlexDaniel: those sound like they both mean the same thing. 19:28
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
Dunno what it is though 19:30
skids arnsholt: see timotimo's last evalbot
timotimo yeah, if it isn't like that you can never use a $^foo variable in an inner block, ever
unmatched} I rescind my complaint. timotimo++'s example shows a good usecase.
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
skids waits for the next person to discover $^ alphabetization who didn't already know about it.
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
timotimo we do have that in the "traps" document, right?
FreezerburnV { $a-some-long-name + $b-other-long-name + $c-... } :P
perlpilot skids: at least it's not sorted based on locale ;> 19:33
skids lol
timotimo it'll be very bad when code suddenly works differently because we implement "proper" collation for unicode characters ... 19:34
19:34 BillSussman joined
timotimo and people have $^apfel and $^äpfel 19:34
unmatched} m: sub alphabetical {say $^こ, $^ん, $^に, $^ち, $^は }(|<こ ん に ち は>)
camelia rakudo-moar d7838c: OUTPUT«こはにんち␤»
FreezerburnV timotimo, I don't think it's in traps, but I do see it in variables under the ^ twigil docs
19:36 AndyBotwin left
unmatched} m: sub { say $^apfel, $^äpfel }(1, 2) 19:36
camelia rakudo-moar d7838c: OUTPUT«12␤»
unmatched} m: sub { say $^äpfel, $^apfel }(1, 2)
camelia rakudo-moar d7838c: OUTPUT«21␤»
timotimo they are considered equal, but non-conflicting? %) 19:37
unmatched} equal? 19:38
19:38 labster joined
unmatched} m: say "äpfel" after "apfel" 19:39
camelia rakudo-moar d7838c: OUTPUT«True␤»
timotimo sorry, why was it 1 2 once, then 2 1? 19:42
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
neuron Hi 19:46
skids o/
neuron Nativecall c++, does the class need the Pointer attribute?
It seems to work fine even without it, but maybe that's a bug?
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:49
skids wasn't aware C++ bindings were functional already, should read IRC logs more often. 19:50
19:51 sena_kun joined
neuron is giving c++ bindings quite a testing 19:51
unmatched} comments on 126119 as "it's fine as it is" rt.perl.org/Ticket/Display.html?id...xn-1412719 19:52
19:56 ismailarilik left
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:56
hoelzro iirc, I/O is still a bit slower in Perl 6 than it could be 19:57
19:58 xinming left
perlpilot unmatched}: +1 19:58
FreezerburnV :( Oh well
perlpilot FreezerburnV: show your code?
FreezerburnV: are you using dir() ?
19:59 xinming joined
FreezerburnV perlpilot, Yes 19:59
perlpilot okay, just checking that you weren't doing it more manually
19:59 trnh joined
FreezerburnV perlpilot, gist.github.com/Freezerburn/d9efbc...e5d7e9aaea 20:02
Oh, forgot to include the filename function. Just pulls out the 'test' part from 'test.js'
It takes ~11 seconds to run that on my computer 20:03
My other (terrible bash script) runs almost instantly
20:04 cpage_ joined
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
perlpilot, Did not know that
Lemme give it a try
perlpilot it doesn't have a :recurse though :(
FreezerburnV oh wait, that actually won't work due to needing to grab all the dirs for recursing
Guess I'm going to run an async find and do stuff with the resulting files to keep it snappy 20:08
20:11 cog_ joined 20:14 cognominal left 20:18 cpage_ left 20:33 maybekoo2 joined 20:35 ParsonsNose joined
FreezerburnV m: my @t = 'foo', 'bar', 'baz'; for @t.race { .say } 20:35
camelia rakudo-moar d7838c: OUTPUT«foo␤bar␤baz␤»
FreezerburnV Hm, that doesn't work with my code
Wait, the list is empty, what? 20:36
It had elements a moment ago
20:36 [Sno] joined
FreezerburnV Never mind me, somehow I deleted a line starting a process 20:37
20:39 molaf left, sena_kun left
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
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, cpage_ joined, cpage_ left 20:43 cpage_ joined, CIAvash left
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:43
Maybe I can try to look into making IO faster at some point, since that's pretty relevant to me right now 20:44
20:44 jersni joined
gfldex just that. But creating objects is still pricy and method calls are always late bound. 20:44
20:44 jersni left
perlpilot FreezerburnV: that would be awesome 20:44
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 20:47 jersni left, kid511 joined 20:48 kid51 left
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:49
[Coke] in general, more tags are fine, however. 20:50
the goal is "close tickets". whatever helps there works.
20:51 cpage_ left 20:55 FreezerburnV left 20:56 kaare__ left 21:00 kid511 is now known as kid51
dalek c: dcdfef2 | (Jan-Olof Hendig)++ | doc/Type/Pair.pod6:
Added docs for Pair.antipairs
21:01
21:01 ninjaaron joined 21:02 ninjaaron left 21:03 kanishka left, skids left 21:05 araujo left 21:08 ChristopherBotto left 21:13 rindolf left 21:14 maybekoo2 left, dvinciguerra_ left, maybekoo2 joined 21:17 maybekoo2 left 21:18 araujo joined, mcmillhj left, pmurias_ joined 21:19 maybekoo2 joined 21:20 mohae_ joined, araujo left, cpage_ joined
dalek osystem: effebaa | (Zoffix Znet)++ | META.list:
Add Ecosystem::Test

Dummy module for ecosystem toolchain testing.
Related to github.com/perl6/doc/issues/764
21:21
21:21 araujo joined, araujo left, araujo joined 21:22 cpage_ left, mohae left 21:24 kid511 joined, kid51 left 21:25 cpage_ joined 21:26 pmurias_ left, cpage_ left, rodarmor joined 21:28 itaipu joined 21:32 pmqs left 21:33 cpage_ joined 21:37 mst joined 21:39 kid511 left 21:44 pmqs joined 21:45 kurahaupo left
AlexDaniel is happy because bisectable turned out to be useful :) 21:47
21:47 cpage_ left 21:48 cpage_ joined, cpage_ left 21:49 cpage_ joined 21:51 acrussell left
dalek osystem: beda571 | (Zoffix Znet)++ | README.md:
Add legal blurb

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
21:57 cpage_ left 22:00 neuron left
Zoffix Ugh 22:02
Stupid github. "The contented you edited changed. Please try again" and it deleted all of my additions
That's on this github.com/perl6/doc/issues/711#is...-235414744
22:09 cpage_ joined, itaipu left
AlexDaniel Zoffix: lol, shit… 22:11
22:13 trnh left, cpage_ left
AlexDaniel Zoffix: oh yeah, by the way, I stole that list from you 22:13
Zoffix :) 22:15
22:20 TEttinger left 22:23 TEttinger joined 22:26 skids joined 22:27 dvinciguerra_ joined 22:29 cyphase left 22:31 lichtkind_ joined 22:33 cyphase joined 22:35 setty1 left, lichtkind left 22:37 firstdayonthejob left 22:38 girafe left 22:39 Sgeo joined 22:43 TEttinger left 22:47 TEttinger joined 22:53 zacts joined 22:54 sufrostico joined 22:59 AndyBotwin joined, BillSussman left 23:00 kurahaupo joined 23:02 [Sno] left 23:07 zacts left 23:08 kid51 joined 23:09 kurahaupo left, jersni joined, jersni left 23:12 RabidGravy left 23:13 andrew____ joined, andrew____ left 23:17 kurahaupo joined 23:23 kurahaupo_ joined, andrewb joined, huggable joined, andrewb is now known as Guest29402 23:24 mohae_ left 23:25 kurahaupo left, mohae joined 23:26 Guest29402 left 23:27 kurahaupo_ is now known as kurahaupo 23:31 andrewb_ joined, andrewb_ is now known as Guest85538 23:35 Guest85538 left 23:38 BillSussman joined
dalek c: 9ac245b | Altai-man++ | doc/Language/glossary.pod6:
This commit *removes* glossary items which are just pointers to Wikipedia and local links to them
23:38
c: 345efdc | Altai-man++ | doc/Language/glossary.pod6:
Fix for merge conflict
c: 92faf2e | (Aleks-Daniel Jakimenko-Aleksejev)++ | doc/Language/glossary.pod6:
Merge pull request #743 from perl6/wiki-entries-cleanup

Second part of entries cleanup
23:39 spider-mario left, AndyBotwin left, kurahaupo left 23:42 kurahaupo joined 23:45 kurahaupo_ joined, wamba left 23:47 kurahaupo left, mcmillhj joined, kurahaupo joined 23:50 kurahaupo_ left 23:54 kurahaupo left 23:55 cog_ left, lichtkind_ left