»ö« 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.
stevieb me: sub a($a --> 1){if $a==1 {return Failure}}; a(1).say 00:25
m: sub a($a --> 1){if $a==1 {return Failure}}; a(1).say 00:26
camelia rakudo-moar 5ca43c: OUTPUT«(Failure)␤»
stevieb that's pretty awesome to see in the signature what the default return is on success
m: sub a($a --> 1){if $a==1 {return Failure}}; a(2).say
camelia rakudo-moar 5ca43c: OUTPUT«1␤»
timotimo it'll be even more interesting when we can --> $foo and it'll not only declare $foo for us, but also return it from whereever we leave the routine 00:28
sortiz stevieb, beware that those are returning the Failure type, not an instance. 00:29
stevieb soritz: thanks. I was just testing while reading the docs. It can return either Nul or Failure, otherwise return has to be empty (or no return at all) 00:30
ie. an implicit return
sortiz timotimo, yes. I'm waiting that too.
stevieb timotimo: that'll be neat
timotimo i'm just glad nobody's saying "well volunteered!" 00:31
sortiz It is spec'd
stevieb doc.perl6.org/type/Signature is the doc I've been waiting to get to. I've had so many questions, and this doc explains to me the majority of things I've needed to know to start writing some real initial perl6 code 00:34
timotimo hm, that makes sense 00:36
signatures are a really important part of perl6
sortiz Perl6's Signature is really cool!
stevieb yeah. For instance, I had no idea what things like `*@' meant. Instead of asking, I knew I'd hit the doc eventually. I've spent the last couple of weeks when I've had time learning about the types and methods and things, now I'll be able to start using them in more than one-liner tests 00:37
m: my %h= :foo<1>, :bar<2> 00:48
camelia ( no output )
stevieb m: my %h= :foo<1>, :bar<2>; say %h
camelia rakudo-moar 5ca43c: OUTPUT«{bar => 2, foo => 1}␤»
stevieb that's a new way to create a hash :)
BrokenRobot m: my %h= :1foo, :2bar; say %h 00:51
camelia rakudo-moar 5ca43c: OUTPUT«{bar => 2, foo => 1}␤»
stevieb now that's interesting! 00:52
so it separates at the Type...?
m: my %h=:afoo, :bbar; say %h 00:53
camelia rakudo-moar 5ca43c: OUTPUT«{afoo => True, bbar => True}␤»
BrokenRobot You can only use positive Ints in that form
stevieb makes sense
BrokenRobot m: my %h = :६६६meow; say %h
camelia rakudo-moar 5ca43c: OUTPUT«{meow => 666}␤»
BrokenRobot m: my %h= <foo 1 bar 2>; say %h 00:54
camelia rakudo-moar 5ca43c: OUTPUT«{bar => 2, foo => 1}␤»
b2gills :1foo was added for s:1st/// s:2nd// etc 00:55
stevieb m: sub a(*%h){%h.say}; a(<a 1 b 2>); 00:57
camelia rakudo-moar 5ca43c: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤ in sub a at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
b2gills m: sub a(*%h){%h.say}; a |%( <a 1 b 2> ); 00:58
camelia rakudo-moar 5ca43c: OUTPUT«{a => 1, b => 2}␤»
stevieb that's what I was just testing ;)
haven't seen the pipe used like that in the docs yet though
sortiz And is cool in: .hyper(:10batch, :3degree) 00:59
b2gills It was added in the rush to the Christmas release, so may not be docced
stevieb if it's not documented, could you please explain what it's doing? 01:00
sortiz It is documented in doc.perl6.org/type/Capture 01:01
stevieb I could play with it and add it into the docs when I get to the part it belongs in
soritz: thanks
sortiz The reverse of Signature.
parabolize alsa doc.perl6.org/language/operators#prefix_|
timotimo hyper and race are still broken, yeah
parabolize it flattens things
timotimo it's pretty much the next thing on jnthn's list
stevieb been fun all, gotta go. cheers! 01:02
sortiz timotimo, semi broken, seems to be working well in JsonC.
timotimo oh?
sortiz I'm using at unmarshall so is 2x faster than Json::Fast. 01:03
timotimo what, only?
maybe it's suffering from having too many calls to C functions? 01:04
sortiz Yep. 01:05
The pure parser is 200x 01:06
timotimo ah, yeah, i expected at the very least 100x
of course i'm also hopeful for future improvements to make JSON::Fast competitive. both improvements in moar&friends and in JSON::Fast. 01:07
sortiz Parsing panda's projects.json is 0.005056s vs .3871236s 01:08
timotimo some of the decisions i made in JSON::Fast in the past may now be obsolete and some code might want to be changed to perform better again 01:09
ugexe nine: because its nearly 3 months stale now, and all my offers to rewrite it to get merged have been ignored. i was told to implement it and i did, and then was told it was waiting one change after another. i was willing to do a little extra work to work around new conflicts, but it sure seems it doesnt work the other way around 01:19
mst ugexe: would this be better being a toolchain conversation so it doesn't get broken up? 01:28
adu what is a toolchain conversation? 01:32
ugexe mst: i found there was no point in the toolchain channel. i'd wager the logs are primarily myself bringing up problems/ideas with little to no feedback and certainly no path forward on anything 01:33
mst ugexe: I've been reading back every so often and there seems to be discussion
adu ideas are hard to come by these days 01:34
mst ugexe: if you feel like you're being ignored, as I said before, please do raise the issues in there and ping me, given I've done quite a lot of toolchain stuff and can maybe help deconfuse things
ugexe: I offered this when I first helped create the channel and you've never taken that offer up; I don't entirely understand how you can claim there's no point to it when you didn't take up the offer that was part of the point of having it 01:37
ugexe mst: there is on confusion. its in a constant state of waiting on precomp change X, then precomp change Y, things that have little to do with the PR i submitted other than a few conflicts that would need to be fixed 01:38
is no
dalek c: fe7627b | util++ | doc/Type/ (2 files):
Fix typos.
mst ugexe: so tag me in in the appropriate venue, and we can discuss that 01:39
adu ugexe: I have nothing to do this weekend, you can always talk to me 01:43
ugexe adu: while id prefer to talk over drinks, what i need is someone with a commit bit 01:46
adu hrm
adu ugexe: I have a commit bit 01:47
ugexe: I am andydude on github
ugexe adu: oh ok. well for context this is the PR github.com/rakudo/rakudo/pull/729 which has multiple blessings as it is 01:48
adu ugexe: ok, so let me get this straight, every path is relative to "resources/" except that one, and that's what you're fixing? 01:53
ugexe adu: while it does fix some path related bugs in the current implementation, its primarily turning Distribution into a role interface so that more specialized implementations can simply be passed in. its based almost entirely on the S22 design doc 01:55
adu ugexe: what happened to all the "has"s in src/core/Distribution.pm? 01:56
ugexe adu: they are redundant. the current Distribution.pm is a struct thats essentially the meta6 file 01:57
adu ugexe: so you're turning a class into a regular hash, and providing the same features with a role
ugexe in my implementaiton those are simply accessed directly from `method meta`
it provides the same features for the core, but allows it to be expanded by anyone else. then you could pass in a Distribution::Deb or Distribution::Tar and rakudo would be able to understand how to install them 01:59
you can pass in a Distribution that accesses the files in a streaming fashion over a socket 02:01
adu ugexe: I like the sound of that, but how do you guarantee that the hash always contains "depends", and guarantee that it's an array?
ugexe it doesn't have to contain `depends`. as far as enforcing the type, its broken as it is. its assigned via Distribution.new(|%hash) which will give you ( [1, 2, 3] ) instead of (1, 2, 3) 02:04
eventually you could create a META6 role to enforce those things
adu ugexe: is that what S22 says? 02:06
ugexe but you could also enforce those things inside `method meta`, as the meta data is not accessed by the attribute %!meta/$!meta but through the interface method. the attribute just holds the original data to be interpretted
s22 says depends is optional 02:07
adu oh ok
ugexe the ([]) vs () format is a side effect of the binding nature of BUILD + |%hash
adu name, version, provides looks mandatory, does "role Distribution" enforce that? 02:08
adu is a big fan of coding to the spec 02:09
I've been using HAR for about a year now, and I'm still astonished by the fact that the author of the official HAR viewer requires the "pages" attribute when the spec he also wrote says that "pages" is optional 02:10
ugexe not yet. something i brought up in toolchain a few times was that some things need to be broken. version for instance. because currently it looks for `ver` or `version`. or for auth it uses `auth` or `authority` or `author`. its agreed these need to be broken and use a specific thing, but the discussion on what to break never goes far. nevertheless that is a thing that can be added *onto* this 02:12
a problem right now is we are moving on 1 direction, precomp. we could be moving in 2 directions though, distribution/meta and precomp
adu can you explain what you mean by "precomp? 02:13
also, what do you mean by the "distribution/meta" direction? 02:14
ugexe im not sure i even know anymore. originally the pr was held back while changes to precomp were in the works because the work in that fork would conflict with the pr. but those changes have happened as far as i know 02:15
one half is the distributors portion (how distributions are packaged), one half is the consuming portion (rakudo). you have an interface that rakudo understands, then your distributions can fufill that in any number of ways. this means you can have your standard perl6 style distro, but also have one that can read from a .deb, or one that reads directly from a .tar or github etc 02:17
adu ugexe: I would be happy to commit it if you could guarantee the items listed as "mandatory" in S22 02:18
ugexe adu: i can easily accommodate required fields 02:19
but there does have to be default values in some cases, like for versions. a Distribution representing a basic path layout without a meta6 file (like perl5, and CompUnit::Repository::FileSystem can do) is version * 02:22
adu ugexe: ok, so is there still a debate between $.name as an attribute and $.name() as a method? 02:30
ugexe adu: it needs to be called from `method meta`. so $dist.meta<name> (this is how the spec describes accessing meta data). but this also makes it so you can make your own `class Distribution::XXX does Distribution { method meta(...) { ... }; method name { self.meta<name> }; }`. or set an attribute $.name from self.meta<name>. this allows you to pass in the implementation for accesing the meta data itself (for 02:35
instance, it might use the github API to make a net request to raw meta6 file)
gist.github.com/ugexe/8684abcc89aa...st-pl6-L58 for instance this allows a Distribution from a .tar file without extracting the entire thing to the file system. and it doesn't have to extract anything at all until the actual methods are called 02:38
adu ah ok I see 02:39
so how do you indent on guaranteeing name, version, description, etc?
ugexe or via network access gist.github.com/ugexe/1026b2730abe...st-pl6-L39 02:40
adu s/indent/indend/
ugexe im thinking a Meta::Strict role where when composed it will die unless self.meta<name> etc 02:41
adu yeah, errors are good 02:43
dalek c: 4436247 | (Daniel Green)++ | doc/Type/IO/ (2 files):
Add documentation for the new IO.mode method

This requires Rakudo PR #773, which implements RT #125489
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=125489
dalek c: d857a09 | (Daniel Green)++ | doc/Type/IO/Path.pod:
Add some more explanation (labster++)
c: 5762144 | (Daniel Green)++ | doc/Type/IO/Path.pod:
Add an example of using the ourput of IO.mode as input to IO.chmod
c: d838de5 | lizmat++ | doc/Type/IO/ (2 files):
Merge pull request #565 from MasterDuke17/RT125489

Add documentation for the new IO.mode method
dalek c: 34b0873 | (Zoffix Znet)++ | doc/Language/testing.pod:
Remove custom operators work-around prose for cmp-ok

It now fully supports user-defined operators passed as Str
03:00
dalek c: 29c0955 | (Zoffix Znet)++ | doc/Language/testing.pod:
Fix typo
03:04
ugexe for the record all those demo Distribution::<...> implementations worked for installs at one time. they aren't theoretical 03:05
buharin hey, I just thinking about infix& 04:34
why we call this infix 04:35
the examples use has &!callback
it looks more like prefix
however ! is prefix 04:36
geekosaur buharin, wrong & 04:57
infix:<&> would be the junction operator, not the code sigil
buharin oh ok 04:59
geekosaur (I should probably say Callable sigil) 05:02
buharin geekosaur, do you know what's this proto sub infix:<===>(Any, Any)? 05:22
is it something probably operator implementation in this case 05:23
Woodi ugexe++ # lots of work 05:34
Woodi ugexe: looks it wasn't just lack of time when jnthn++ was happy to not do Repos code :) and then nine++ started a thing so he is a bit like a designer/manager on that feature so usually it is good to make common plan or something... such things aren't formalized in open source but in some % it works like that. but now I see just two innocent sides blaming other side... and two almoust 100% complete 05:44
implementations ?
Woodi m: my @l = <a b c>; @l.map: { .say xx 2 } 06:16
camelia rakudo-moar 880f5c: OUTPUT«a␤a␤b␤b␤c␤c␤»
Woodi err, it's not working like that for me...
nine ugexe: to be clear: the only think keeping PR 729 from getting merged is that it is backwards incompatible with the modules installed before it's merge. I thought you'd fix that (probably using the repo upgrade mechanism that has since been merged) and update the PR. 06:22
ugexe: I think I've said multiple times how much I'm looking forward to that PR being merged as it cleans up a lot of organically grown code and also makes my work simpler and that I'm glad you've taken it on because you obviously have thought it through very well. 06:23
ugexe: Also, you could have requested a commit bit for yourself anytime. All you'd have to do is send in some signed form to the Perl Foundation. 06:24
jdv79 is that still really necessary? 06:33
nine jdv79: I think so 06:38
mayuresh hello all :) 07:17
FROGGS o/ 07:19
stmuk www.youtube.com/watch?v=t-hZdeR7oVM <=- talk about using Perl 5 to promote 6 07:28
stmuk also www.youtube.com/watch?v=Fv42f7VZffE "Parallel Crawler in Perl6 and Go" - Jader Dias 07:29
RabidGravy boom! 07:57
Zoffix ab5tract_, ping 12:14
Zoffix diakopter, would you like `diakopter` or your real name in Rakudo release credits? 12:21
ab5tract_, same Q to you. 12:22
the CREDITS file has info but the tool picks up nicknames and I'm unsure if that's on purpose :)
Zoffix I gotta move forward with what I'm doing, but if you wish to amend the results for future stuff, please modify entries in github.com/rakudo/rakudo/blob/nom/CREDITS 13:04
tbrowder_ mornin' p6 people 13:08
tbrowder_ I have another doc pull request for checking: <github.com/perl6/doc/pull/603>; Zoffix I know is interested, and it isn't trivial 13:09
skids man the web is slow (some cdn is having issues I guess) 13:10
BrokenRobot I was interested because someone asked for rakudo ENV vars and I couldn't find them on the doc site. 13:13
Kinda busy today so I won't review :)
.oO( forgiveness > permission )
vis-a-vis mergin :P
sammers hi all 13:30
is there a simple way to copy a directory and all of its contents to a new directory?
skids wonders what he has to nuke to upgrade months old rakudo 13:31
moritz the install dir
maybe also ~/.perl6/precomp
dogbert17 hello #perl6 13:36
dogbert17 the Role Baggy contains a method 'default' which simply returns zero. does anyone know why it's there? 13:37
dalek c: d3dc9f7 | (Jan-Olof Hendig)++ | doc/Type/Baggy.pod:
Added docs for Baggy.default
13:48
skids Yay 4 months and none of my modules got broken :-) 13:53
sammers does anyone know of a good watch / supply example? 14:07
ugexe nine: i mailed that form months ago, and im not sure if they got it or not because there is only 1 person who can give out commit bits and they are not really around anymore 14:14
nine ugexe: oh yes, been there :/ Took quite a while for me, too. Coke can possibly help 14:15
psch [Coke] or perlpilo1 iirc 14:19
at least if i'm not misremembering the latter to have been PerlJam
and yeah, took about three or four months for my commit bit
the problem isn't really the commit but, but the paperwork in TPF afaik 14:20
awwaiid sammers: cp -av olddir newdir # copy files 14:33
dalek c: 4aee715 | (Jan-Olof Hendig)++ | doc/Type/Baggy.pod:
Added docs for Baggy.Set
sammers thanks awwaiid
awwaiid sammers: the -a will keep all the permissions and copy sub-directories, the -v will tell you the name of the files it is copying
sammers ok, is there a way to do this in p6? or just use shell? 14:34
awwaiid all things can be done in p6 :) . Guess it depends on what you're doing ... but qx{ cp ... } is an easy way to do it without reading any docs :) 14:35
sammers yeah, thanks 14:36
awwaiid sammers: looks like doc.perl6.org/routine/copy will at least do one file. Maybe combine that with File::Find. But that sounds like work. 14:37
sammers yeah, that is all I could find. 14:40
thanks
nine Maybe we could speed up the commit bit part. Should be enough if the one handing out the bit has seen the signed paper. No need to wait for TPF to acknowledge receiving it. 14:46
AlexDaniel tbrowder: it is non-trivial indeed 14:59
Woodi @l = slurp $file; don't create lines by default now ? 15:04
gfldex m: my %h; say so %h<foo>; sub f (%h where %h<foo>) { say 'hit' }; f(%h);
camelia rakudo-moar f19241: OUTPUT«False␤hit␤»
gfldex why does it do that?
AlexDaniel Woodi: what about slurp($file).lines ? 15:05
gfldex m: my %h; say so %h<foo>; sub f (%h where { %h<foo>:exists }) { say 'hit' }; f(%h);
camelia rakudo-moar f19241: OUTPUT«False␤Constraint type check failed for parameter '%h'␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
AlexDaniel or lines slurp $file
Woodi AlexDaniel: that work :) but it is strange change from v5... 15:06
AlexDaniel Woodi: perhaps a better way to do it is ‘file’.IO.lines 15:07
Woodi maybe
AlexDaniel Woodi: I don't remember 「slurp」 in perl 5 so I'm not sure what are you talking about ;)
gfldex m: my %h = foo => True; say so %h<foo>.defined; sub f (%h where so %h<foo>) { say 'hit' }; f(%h); %h = (); f(%h) 15:08
camelia rakudo-moar f19241: OUTPUT«True␤hit␤Constraint type check failed for parameter '%h'␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
Woodi AlexDaniel++ : .lines works, thanx
AlexDaniel . 15:10
stevieb AlexDaniel: Woodi may be speaking of File::Slurp 15:13
AlexDaniel: where you can import the slurp() function which is an alias for read_file(): metacpan.org/pod/File::Slurp 15:14
Woodi stevieb: I think in Perl5 $lines = <$fh>; was doing .lines... 15:16
mst in perl5 you'd need @lines to get all lines
awwaiid and chomp
mst stevieb: nobody should ever use File::Slurp - it's completely broken 15:17
Woodi oops, yea, s/\$/@/ :)
mst stevieb: you wanted File::Slurper or IO::All or Data::Munge or Path::Tiny
stevieb mst: I know. I'm just thinking that's what he may have been thinking of
mst Woodi: ^^
stevieb: notice I highlighted him as well to make sure you both saw the recommendations
Woodi mst: I wanted <> :)
stevieb to slurp an entire file in perl5 into a scalar, you need to set $/
mst my $data = do { local (@ARGV, $/) = $file; <> }; 15:18
Woodi mst: why so complicated ? 15:19
AlexDaniel because perl 5
Woodi ah, right, $line = <> gives just one line...
stevieb yes, the first line 15:20
Woodi anyway, @a.pick xx 300; gives me string with ' ...)' ending :) not very *nixy :) 15:22
psch Woodi: &say puts the ..., not &infix:<xx> 15:24
well, or camelia
Woodi psch: but how to use perl6 script in Unix pipeline ??
no, sh too
psch Woodi: don't use &say, but &print?
geekosaur dpm 15:25
don't use say for real output
say uses .gist to give a more compact but incomplete view
it's convenient but not correct if you need full output
psch Woodi: in general, you don't want &say for production code
AlexDaniel actually, you probably want 「put」 15:26
geekosaur (this is a difference from perl5, where say is just print with newline appended)
psch Woodi: if you want &print but with appended \n i think that's what &put is for
Woodi seriously ? never (seriously) heard about it :) 15:27
Woodi p[rin|u]t @a.pick, "\n" xx 300 gives lots of \n :) 15:28
psch Woodi: afaik, every single bit of documentation pertaining to &say mentions it calling .gist on its arguments 15:29
Woodi: the two args to &print or &put you're giving are (1) @a.pick (2) "\n" xx 300
Woodi: so, yes, it will print approximately 300 newlines
m: $*OUT.nl-out = "one newline\n"; print "foo\n"; put "foo\n" 15:30
camelia rakudo-moar f19241: OUTPUT«foo␤foo␤one newline␤»
psch m: $*OUT.nl-out = "one newline\n"; put "foo", "\n" xx 10 15:31
camelia rakudo-moar f19241: OUTPUT«foo␤ ␤ ␤ ␤ ␤ ␤ ␤ ␤ ␤ ␤one newline␤»
Woodi psch: I know about say/print, .gist/.perl difference... just print [email@hidden.address] xx 300 was printing lots of .pick...
geekosaur need {} to expand an expression instead of just a variable
psch Woodi: yes, because @ and . don't interpolate in "" 15:32
m: my @a = ^10; say "@a"
camelia rakudo-moar f19241: OUTPUT«@a␤»
geekosaur scalar variable
psch m: my $x = "foo"; say "$x.gist"
camelia rakudo-moar f19241: OUTPUT«foo.gist␤»
gfldex m: my @exclude = "404.pod", "homepage.pod"; dd so '../404.pod'.ends-with(any @exclude);
camelia rakudo-moar f19241: OUTPUT«Bool::True␤»
gfldex junctions++ 15:33
geekosaur perl5 will expand @ but you need a hack like @{[...]} for anything more complex
psch we only expand @ with any circumfix:<[ ]>
as in, zen slice, single elem, or range
Woodi how far ago "{code}" was specced ?
psch Woodi: probably 10 years or so
geekosaur fairly early on, yes 15:34
psch doesn't want to dig through specs history
Woodi m: my $a = 'a'; say "$a" 15:34
camelia rakudo-moar f19241: OUTPUT«a␤»
psch m: my @a = ^10; say "@a" 15:35
camelia rakudo-moar f19241: OUTPUT«@a␤»
psch m: my @a = ^10; say "$@a"
camelia rakudo-moar f19241: OUTPUT«0 1 2 3 4 5 6 7 8 9␤»
psch m: my @a = ^10; say "@a[]"
camelia rakudo-moar f19241: OUTPUT«0 1 2 3 4 5 6 7 8 9␤»
Woodi everyday man lerns something :) 15:36
psch Woodi++ 15:36
Woodi *learns? :)
psch yeah :)
Woodi btw. we have .^remove_method in Perl6 reflection ? 15:37
psch how's that supposed to work
i mean
imagine 'BEGIN Any.^remove_method: ".perl"' 15:38
gfldex that would produce a runtime error because methods wont be inlined
psch (1) what exactly does that mean for children of Any that have their own .perl (2) what happens with code that gets imported and relies on Any.perl
Woodi psch: I just wanted do some BUM :) /me was reading about object databases :) 15:39
gfldex children that implement their own .perl would have them called 15:39
psch Woodi: what's BUM? 15:40
Woodi BOOM in English probably :)\
psch ...so "break things for fun and insight"?
gfldex the behaviour of the program will be come unpredictable (seen from a human standpoint) but if that's what you want ...
psch like, fsck shut up
Woodi yea. but just got insight :) 15:41
psch right. i mean, you could probably emulate it with reaching into the method cache via something in MROMethodDispatch or so in the MOP
(emulate .^remove_method, that is)
but yeah, as gfldex says, it'll probably turn into a huge mess and no one knows what's happening anymore 15:42
Woodi nah, no .remove_method is ok for sanity :)
parabolize pygments has no tests for the Perl6Lexer? 15:55
I think I found a error in the lexer 15:56
gist.github.com/parabolize/5016122...34e47c4d9e
you can see it in the first code example here doc.perl6.org/language/functions#De..._Operators 15:57
parabolize it sees the < ... > pattern and ignores the stuff between 15:59
dalek c: 3e2bdbd | (Jan-Olof Hendig)++ | doc/Type/Baggy.pod:
Added docs for Baggy.SetHash
16:02
BrokenRobot "I just wanted do some BUM" sounds so very wrong in English :P 16:15
dalek c: fa97bfb | parabolize++ | doc/Language/functions.pod:
fix statement terminator in example
16:51
dalek Heuristic branch merge: pushed 18 commits to doc by zoffixznet 17:49
c: ad40c32 | (Zoffix Znet)++ | doc/HomePage.pod:
Reorder item list
17:50
c: 8f72afd | (Zoffix Znet)++ | doc/Programs/00-running.pod:
Mention \ isn't part of the option
17:52
Zoffix tbrowder, this kinda sucks, since 75% of those pages are empty: imgur.com/kU6dCMu 17:54
I'd also rename the 'Perl 6' item in there to 'Rakudo' or something
By sucks I mean LTA. Maybe the empty files can be tossed for now. Or is there plan to fill them soon? 17:55
stmuk there should be debugging docs at least 18:04
I'll quickly add some unless someone else is? 18:08
dalek c: 6824d88 | (Steve Mynott)++ | doc/Programs/01-debugging.pod:
some very basic pointers to rakudo debuggers
18:20
stmuk I can't think of anything useful to quickly add to either 02 or 03 there 18:22
Zoffix: maybe delete the other two for now?? 18:23
Zoffix +1
dalek c: 8ca211d | (Steve Mynott)++ | doc/Programs/0 (2 files):
delete for now
18:25
tony-o i know, he complains about not having a PR to fix XYZ and then you commit it and he does one of two things; he copies and pastes the code into his own commit -or- he ignores the PR long enough for it to be a problem to merge and then just doesn't bother with it 18:28
Zoffix ? 18:29
tony-o wrong channel 18:30
yanmc I'm trying to give p6 a try and am keeping a list of my confusion where applicable; may or may not be useful.. 18:39
tony-o feel free to ask questions yanmc 18:40
yanmc thanks! I'll give it a college try first 18:41
timotimo cool!
that'll surely be a good piece of data points for our documentation team, as well as for improving error messages and such
masak .oO( he's keeping a list; he's checking it twice ) 18:42
good Saturday, #perl6
timotimo greetings masak
gfldex .oO( Please gist your confusion! ) 18:43
tony-o yanmc: you can run one liners in this channel using: 'm: <code>' 18:46
m: 'sup yanmc'.say
camelia rakudo-moar f19241: OUTPUT«sup yanmc␤»
yanmc cool :) 18:47
stevieb yanmc: I just started as well, and have been compiling a list of the various subtleties as I tredge through the docs reinforcing what I'm learning by typing some of it out: github.com/stevieb9/scripts/blob/m...arning.txt 18:56
timotimo .tell MasterDuke unfortunately the core dump doesn't actually give me any stack traces or anything inside :( 19:04
yoleaux timotimo: I'll pass your message to MasterDuke.
gfldex is the trait `is nodal` a implementation detail? There seam to be no direct test for that trait in roast but it is checked if some operators/methods are marked as such. 19:06
timotimo oh, really? no tests? 19:07
it's a part of how hypers work
webstrand I'm getting an error, "Annotation segment overflows end of stream", whenever I try to execute a script containing use Test. A script containing nothing but use Test is sufficient to cause the error. How do I fix this? 19:10
timotimo can you give us your exact perl6 --version please? 19:11
gfldex it may be that the test was omitted because the trait in itself doesn't really do anything 19:13
webstrand timotimo: This is Rakudo version 2016.05 built on MoarVM version 2016.05 implementing Perl 6.c. 19:14
dalek c: 6caddd5 | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod:
add `is nodal` TODO
19:17
timotimo hm, ok, it's the released version ... but that error is strange 19:18
Zoffix webstrand, does runnin this cause it too? perl6 -Mtest -e ''
webstrand, does runnin this cause it too? perl6 -MTest -e ''
webstrand Zoffix: yep 19:19
Zoffix :S
webstrand, what OS/achitecture? 19:20
timotimo well, the error comes from loading a .moarvm file
Zoffix Oh
webstrand what's another module thats packaged in rakudo (not star)
Zoffix webstrand, NativeCAll
timotimo NativeCall
heh.
Zoffix can't spell for shit today
m: use NativeCall; sub fork is native {}; fork; say 42
camelia rakudo-moar f19241: OUTPUT«42␤42␤»
webstrand well, -MNativeCall produces another error: Attempt to read past end of string heap when reading string 19:21
timotimo "lib" used to be a module, but it's a compiler-builtin pragma nowadays
webstrand Zoffix: archlinux/x86_64
timotimo could it be your files got truncated or corrupted?
webstrand its possible. I just built the packages though 19:22
timotimo can you package up your install/ and send it our way?
dalek c: b660678 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Any.pod:
state that sort returns a new list
19:23
webstrand timotimo: That would be /install from rakudo? 19:24
timotimo yeah, should be 19:25
masak .oO( I was gonna call my module NativeCall::Stupid, but I eventually went with NaïveCall ) 19:28
dalek c: 06cd14d | (Wenzel P. P. Peppmeyer)++ | doc/Type/Signature.pod:
fix markup mixup
19:29
dalek c: 1d028e1 | (Wenzel P. P. Peppmeyer)++ | doc/Language/functions.pod:
link from functions to Routine
19:33
Zoffix Oh, almost forgot. tbrowder what are all the F<> things in here? Is that some POD tag that's supposed to work and isn't? docs.perl6.org/programs/00-running#..._VARIABLES 19:36
webstrand timotimo: I think this is what you're wanting: www.dropbox.com/s/elbq5rc5of5f0qe/...ar.xz?dl=0
travis-ci Doc build failed. Wenzel P. P. Peppmeyer 'fix markup mixup' 19:39
travis-ci.org/perl6/doc/builds/138619415 github.com/perl6/doc/compare/b6606...cd14d9b851
timotimo webstrand: thanks, maybe i can find something out 19:40
it'd be nice if you could grab a rakudo from git and verify if it's still broken? 19:41
webstrand sure
travis-ci Doc build failed. Wenzel P. P. Peppmeyer 'link from functions to Routine' 19:42
travis-ci.org/perl6/doc/builds/138619787 github.com/perl6/doc/compare/06cd1...028e11fe01
Xliff What is the best resource for learning nqp? 19:44
dalek c: be9b155 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Signature.pod:
return type constraints match undefined values
19:45
pmurias Xliff: the language or the QAST etc.?
timotimo webstrand: actually, it'd be interesting if re-building rakudo from the release version would be broken again 19:48
dalek c: 01c3684 | (Daniel Green)++ | doc/Language/operators.pod:
Add some documentation for the =~=/≅ operator
19:49
c: f9ebaba | (Daniel Green)++ | doc/Language/operators.pod:
Clarify absolute difference explanation, Zoffix++
c: 886318f | RabidGravy++ | doc/Language/operators.pod:
Merge pull request #604 from MasterDuke17/add_docs_for_≅

Add some documentation for the =~=/≅ operator
gfldex Zoffix: F<> does not exist for pod6 19:50
webstrand timotimo: I'd deleted the original package sources, so the build I gave you is a re-build with an existing rakudo installation. 19:52
timotimo huh?
webstrand and that build is also broken
Zoffix gfldex, I'm not even sure what they're supposed to be :/ 19:53
travis-ci Doc build failed. Wenzel P. P. Peppmeyer 'return type constraints match undefined values' 19:55
travis-ci.org/perl6/doc/builds/138621154 github.com/perl6/doc/compare/1d028...9b15526922
gfldex Zoffix: it breaks the build. I vote for reverting that commit. 19:55
webstrand timotimo: I built rakudo the first time and installed it to my filesystem, noticed the error, then reported it here. When you asked for /install, I rebuilt the package and sent it to you. Neither build is free from the error.
timotimo oh, ok 19:56
Zoffix gfldex, how can it break the build if they are showing up in the docs? 19:59
And I built that PR before merging
travis-ci Doc build failed. Jonathan Stowe 'Merge pull request #604 from MasterDuke17/add_docs_for_≅ 19:59
travis-ci.org/perl6/doc/builds/138621595 github.com/perl6/doc/compare/be9b1...6318f619a4
stevieb in perl5, I can dynamically create subs by modifying the symbol table: "$x='blah'; *$x=sub{1;}; blah();'. How can I do this in perl6? 19:59
timotimo "symbol tables" are immutable after compile time is finished 20:00
Zoffix stevieb, my &blah = sub { ... } 20:00
pmurias Xliff: if you already know Perl 6, a good way to see what's supported in nqp would be to look at the test in nqp-repo/t/nqp
moritz well, lexical scopes are immutable
Zoffix Well
I guess my answer is useless :P 20:01
stevieb, what are you trying to do?
timotimo you might be interested in sub EXPORT
stevieb look at the begin block here, where I create subs based on _sub_names(): metacpan.org/source/STEVEB/Logging.../Simple.pm
moritz also, you can create subs and put them into a hash, for eample 20:02
stevieb I'm going to try to port this very simple module to perl6 as my first real attempt, and I'm literally just taking the plunge and going for it
in that module, I have methods such as: $obj->_0(); $obj->_7(); etc 20:03
timotimo oh 20:04
moritz oh, methods
timotimo well, methods are an entirely different matter
moritz not subs
$class.^add_method($name, method () { do stuff here })
timotimo or even register a FALLBACK
moritz $class.^compose() # at the end
stevieb moritz: I'm sorry... terminology is everything lol 20:05
stevieb moritz: thanks for that... I'm loving perl6 more every day. so simple! 20:05
moritz stevieb: well, understandble, because in p5, there is no real difference between subs and methods 20:06
masak not much of one in Perl 6 either 20:07
moritz well, the difference is that the lookup is done in different data structures
in p5, the lookup for both subs and methods happens in the namespace
(modulo lexical subs in 5.20+) 20:08
or was it 5.22?
dalek c: 5195846 | (Zoffix Znet)++ | doc/Language/operators.pod:
Fix build failure
20:11
timotimo right, whereas an object has 100% power over how their own methods are looked up 20:12
Zoffix hmm 20:12
mst moritz: not entirely true 20:13
moritz: in perl5, subroutines are looked up by introspecting the stash of the current package at compilation time (unless you &sub), and then the glob is bound into the optree
(hence why namespace::clean can clean things without breaking calls)
methods are looked up by asking ref($self) for its mro (see docs for 'use mro') and then the packages tehreby selected are walked to try and find a method 20:14
moritz mst: yes, but both ultimately look at packages
just at different times, and in the case of methods, also in superclasses
mst moritz: yes, but 'in the namespace' glosses over the fact that you can basically have two separate namespaces
moritz which is why injecting methods and injecting subs use the same mechanism 20:15
which is writing things in packages
mst so, effectively, it *is* 'done in different data structures' potentially, just unless you're using namespace::clean and/or a custom mro that doesn't normally happen
as a lies-told-to-children description of the difference what you said is fine, but perl5 is actually more sophisticated than it first appears, even if we don't take advantage of that sophistication a lot of the time 20:16
moritz but doesn't perl 5 fall back to runtime package lookup for subs as well? 20:17
gfldex m: class Log { method log( $level, $s ){ note "$level: $s" }; method CALL-ME($s){ self.log(4, $s) } }; my sub infix:<-0>(Log:D $l, $s){ $l.log(0, $s) }; my $log = Log.new; $log("ohai"); $log-0 "alert";
camelia rakudo-moar f19241: OUTPUT«4: ohai␤0: alert␤»
gfldex stevieb: you can always cheat with user defined operators ^^^
Zoffix They slow down the startup quite a bit tho 20:18
m: class Log { method log( $level, $s ){ note "$level: $s" }; method CALL-ME($s){ self.log(4, $s) } }; my sub infix:<-0>(Log:D $l, $s){ $l.log(0, $s) }; my $log = Log.new; $log("ohai"); $log-0 "alert"; say 4-0 20:19
camelia rakudo-moar f19241: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing required term after infix␤at <tmp>:1␤------> 3w; $log("ohai"); $log-0 "alert"; say 4-07⏏5<EOL>␤ expecting any of:␤ prefix␤ term␤»
gfldex cheating may break things :)
Zoffix :)
stevieb lol
gfldex i would have guessed that Log:D would prevent this particular problem 20:21
travis-ci Doc build failed. Zoffix Znet 'Fix build failure' 20:21
travis-ci.org/perl6/doc/builds/138624415 github.com/perl6/doc/compare/88631...95846461ce
Zoffix travis-ci, yes, yes, I know. I suck. 20:21
Zoffix has the fix. Just waiting for local build 20:22
gfldex stevieb: «» is not qq, see doc.perl6.org/language/quoting#Word...tion:_qqww 20:29
stevieb gfldex: thanks. I'm pretty confident there's a lot wrong in there. They're just notes as when I type stuff out, I remember better. I'll go back over it frequently fixing things the more I pick up 20:32
dalek c: 7ccc1ec | (Zoffix Znet)++ | doc/Type/Signature.pod:
Fix build failure

Seems X<> is not fully supported in =head directives. Mirroring fix found elsewhere in the docs, by listing X<> before the =head
20:33
c: ff8a09a | (Zoffix Znet)++ | doc/Type/Signature.pod:
Improve wording
20:34
Zoffix Why is this section called "Long Names"? docs.perl6.org/type/Signature#Long_Names 20:35
dalek c: aa21b02 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Junction.pod:
add example to junctions
20:39
c: 67244e4 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Signature.pod:
Merge branch 'master' of github.com/perl6/doc
Zoffix git pull --rebase; lets you avoid merge commits 20:40
stevieb LOL my first module! github.com/stevieb9/p6-log-simple/...Simple.pm6 20:43
Zoffix doesn't get it 20:44
tony-o enum LEVELS qw<INFO DEBUG WARN ERROR>; 20:45
travis-ci Doc build passed. Zoffix Znet 'Fix build failure 20:47
travis-ci.org/perl6/doc/builds/138627012 github.com/perl6/doc/compare/51958...cc1ec8b6ec
Zoffix i2.kym-cdn.com/entries/icons/origin.../fyeah.jpg 20:47
Xliff pmurias++: Thanks! 20:49
Zoffix: LOL!
travis-ci Doc build passed. Zoffix Znet 'Improve wording' 20:49
travis-ci.org/perl6/doc/builds/138627178 github.com/perl6/doc/compare/7ccc1...8a09a2f4c3
gfldex m: { LEAVE say (ENTER $ = now) - now } 20:50
camelia rakudo-moar f19241: OUTPUT«===SORRY!===␤Cannot reference undeclared local 'enter_result__1'␤»
travis-ci Doc build passed. Wenzel P. P. Peppmeyer 'Merge branch 'master' of github.com/perl6/doc' 20:54
travis-ci.org/perl6/doc/builds/138627801 github.com/perl6/doc/compare/ff8a0...244e4ea559
webstrand timotimo: I'm unable to build the git version of rakudo: dpaste.de/sg5x I've tried compiling rakudo-2016.05 on the git version of moarvm and nqp, and I still get the error. 21:21
Zoffix How are you running tools/build/install-core-dist.pl ? 21:23
Just make stuff? 21:24
webstrand Zoffix: make DESTDIR="$pkgdir" install 21:25
where $pkgdir is the some existing directory path
Zoffix Have you cleaned that directory first? 21:26
webstrand That shouldn't have been an issue, but I'll try it now
Zoffix 2016.05 probably won't work on git version of moarvm/nqp 21:27
webstrand actually, it compiled fine. perl -MTest -e '' still errors out though 21:28
Zoffix :(
webstrand, how come 2016.05 of rakudo and not latest? 21:29
s/latest/git HEAD/;
webstrand I don't know. I'm using a script to build both 2016.05 and HEAD. The only difference in the script is the rev number built. 2016.05 compiled fine, but HEAD fails with dpaste.de/sg5x 21:30
I'm still waiting for the clean build of HEAD to finish 21:31
Zoffix :o
webstrand actually, aside from the installation issues, the test suite runs successfully on HEAD. So the original error is fixed in HEAD 21:32
Zoffix Hm 21:33
Zoffix is confused
masak lol, I blog'd! strangelyconsistent.org/blog/train-tracks 21:35
webstrand moarvm-2016.05, nqp-2016.05, rakudo-2016.05: rakudo test suite fails with "Annotation segment overflows end of stream". moarvm-HEAD, nqp-HEAD, rakudo-HEAD: rakudo test suite succeeds, but there's some other bug in installation which means I cant wrap it in a package yet. 21:36
timotimo is the bug in installation the "outdated precomp" thing? 21:37
webstrand yep
Zoffix webstrand, you're making a Linux distro package? 21:37
timotimo argh linux 21:38
webstrand Zoffix, kind-of. Archlinux has facility to build packages from source, so that the package manager can install/upgrade/remove them at will. I'm using this to make a package of rakudo for myself 21:40
Zoffix webstrand, it's just 2016.06 is 1-2 hours away
webstrand No one else will ever see these packages, there for my use alone 21:41
Zoffix aww :(
webstrand Well, anyone else can also build the package from source: aur.archlinux.org/cgit/aur.git/tre...D?h=rakudo is in the AUR, I've just modified it to use git. 21:44
Zoffix How come you don't release the packages you're building? 21:45
Zoffix tries to install Arch 21:47
Looks like something that requires a lot of reading and typing :P
webstrand Well, to a certain extent yes, install takes about an hour typing at a terminal. 21:49
Zoffix is too old for that stuff
webstrand I like it because I get something like gentoo's srcpkgs, so I can easily wrap whatever random software sparks my interest in a way that the dist's package manager can manage. So things like perl6 don't leave behind anything when I remove or upgrade them. 21:51
Zoffix I use rakudobrew for that for Perl 6 github.com/tadzik/rakudobrew
dogbert17 the code for Baggy.Bool is one line, i.e. nqp::p6bool(nqp::elems(nqp::getattr(%!elems,Map,'$!storage'))) - does this check if the instance contains any elements? 21:52
timotimo yeah 21:57
dogbert17 timotimo: many thanks, nqp is too difficult for me atm 21:58
webstrand Any idea when panda is going to get an update? Or is some other tool preferred now?
timotimo did you have a look at the nqp ops documentation yet? it's quite good
hm, no, not "quite good" 21:59
but rather complete, at least
dogbert17 timotimo: where is it hiding? 22:01
timotimo in the nqp repo under docs/ 22:02
Zoffix webstrand, I prefer zef ( modules.perl6.org/repo/zef ) there's also redpanda ( modules.perl6.org/repo/redpanda ) 22:02
timotimo some rakudo-specific ops are also in rakudo/docs/ops.md or something 22:03
Zoffix Oh, it's App::redpanda: github.com/tadzik/App-redpanda
autarch does anyone know off hand of a module that does some sort of meta OO stuff I could look at for an example?
it doesn't need to export this stuff, just do it internally
timotimo autarch: check out my ADT module 22:03
autarch timotimo: thanks 22:03
dalek c: 48b97ca | (Jan-Olof Hendig)++ | doc/Type/Baggy.pod:
Added docs for Baggy.Bool. timotimo++
22:04
autarch timotimo: actually, I was hoping for something that modified how OO works, not just something that uses the metamodel to make classes or attributes 22:05
_webstrand The full output of: make --DESTDIR="" install is pastie.org/10882473. Does anyone have an idea of what might be wrong? Or shall I start bisecting?
timotimo oh
OO::Monitors and OO::Actors comes to mind, but it might not be "enough" for you
autarch I just need a simple example, so enough is probably enough ;) 22:06
timotimo what i mean is it may not fit your description of changing how OO works
autarch I see 22:07
what I'd like to show is something like an attribute traits that modifies the generated accessors
masak 'night, #perl6 22:09
Zoffix webstrand, you could try building this. Though I'm almost certain it won't fix your problem since you say you did try HEAD: temp.perl6.party/rakudo-2016.06.tar.gz
night 22:10
timotimo oh 22:11
autarch I think I found something - github.com/perl6/roast/blob/master...s.t#L6-L49
timotimo there's some things in core that do things like that
for attributes, you can mix in a role that provides an additional implementation of compose
autarch yeah, I remember digging way into the core last time I looked into this stuff to figure out how it worked exactly 22:14
hmm, I suspect this is going to be way too much code for a slide 22:15
I'd like a relatively simple example to hint at the power of the metamodel - any suggestions on an example?
timotimo jnthn already gave a presentation on OO::Monitors and OO::Actors, maybe you can steal a bit from the slides 22:17
autarch I just thought of something good enough 22:18
gist.github.com/autarch/9af544579d...4bf8a358f5
timotimo that's quite boring :) 22:21
webstrand Zoffix: nope, thanks though. Hopefully a bisect will turn up something
autarch yeah, but this is for my basic Perl6 OO talk - I want to end with a hint at possibilities, not show 100 lines of incomprehensible gibberish 22:22
timotimo how about an example that installs a second method that has the same name but upper case and upper cases the return value? :P
Hotkeys can anyone see a good way to shorten this wonderful code golf 22:27
say sum await map ^9: {start {sleep 7;now -ENTER now}};say now -INIT now
Zoffix
.oO( why is everyone trying to shorten already short code lately.... )
22:28
Hotkeys it's for code golf 22:29
timotimo colf 22:30
b2gills Hotkeys: say sum await map {start {sleep 7;now -ENTER now}},^9;say now -INIT now 22:49
timotimo doesn't sleep return how long it slept? 22:50
m: say sleep 7
camelia rakudo-moar f19241: OUTPUT«Nil␤»
timotimo huh, apparently not
Zoffix say sum await start {sleep 7;now -ENTER now} xx 9;say now -INIT now 22:52
nm 22:53
Any idea why Inline::Perl5 build says '/usr/bin/ld: cannot find -lperl' 22:54
I built Perl 5 with perlbrew :/ I dunno why it'd be missing
forgot perlbrew switch perl-5.24.0 22:55
webstrand Zoffix: I've finished bisecting, the first bad commit is c7cd003251a2425c14e91d34f6c5ed9acc1caf55. 23:15
everything before that installs correctly
Zoffix crap 23:17
nine, are you around?
webstrand++ thanks for spotting the issue. I can actually replicate it when I specify DESTDIR to make install 😿 23:27
BenGoldberg m: say sum await map {start {now -ENTER now}},^9; say now -INIT now
camelia rakudo-moar f19241: OUTPUT«0.0791681440␤0.04475032␤»
webstrand zoffix: great, glad to know it's not just my computer :) 23:29
Hotkeys b2gills: ty, forgot about using it as a function, went straight for the funky method syntax 23:40