»ö« 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.
eater how can I for loop with a regex over a string? 00:01
m: for "aaa" ~~ m:c/./ -> $match { say ~$match; } 00:02
camelia ( no output )
eater does nothing e.g.
gfldex m: for "aaa" ~~ m:c:g/./ -> $match { say ~$match; }
camelia a
a
a
eater oh
a g
thanks gfldex :D 00:03
gfldex also, you should not need that
TimToady that :c, I think you mean 00:10
samcv nice, that's fun to look over the regex, i'll have to try that sometime :) 00:11
gfldex the whole looking over a regex. We tend to use that indirectly with &split and friends
is zef supposed to understand module versions?
samcv yes 00:12
i think you can only install two versions if they both have entries in the ecosystem though?
maybe? i'm not totally sure...
00:13 kurahaupo left
gfldex it's not finding a module that is in the ecosystem with the correct version 00:14
i will worry about that tomorrow.
good *
TimToady did you try 'zef update'
gfldex travis should do that automatically 00:15
TimToady didn't realize travis was in play :)
00:17 astj joined 00:21 astj left 00:28 ufobat_ left 00:30 Mithaldu joined 00:44 Cabanossi left 00:45 Cabanossi joined
eater how "expiremental is Blob.unpack?" 00:45
01:12 Cabanossi left
Juerd eater: Quite 01:13
It's incomplete and hard to fix without breaking compatibility.
Its interface and semantics are likely to change 01:14
01:15 Cabanossi joined 01:20 aborazmeh joined, aborazmeh left, aborazmeh joined 01:25 gdonald left 01:26 gdonald joined
eater ah 01:26
ack
well then 01:28
running 'my ($k, $v) = ("a");'
just kind of pauses moar :')
no cpu usage
it just does nothing
oh... 01:29
maybe I shouldn't put a space between - and e :')))
AlexDaniel m: my ($k, $v) = ("a");
camelia ( no output )
01:30 cyphase joined
eater I did perl - e 'my ($k, $v) = ("a")' 01:30
AlexDaniel ah
eater so it wanted to read STDIN
AlexDaniel haha
eater :')
01:35 BenGoldberg joined 01:41 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 01:45 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 01:46 ilbot3 left, yht joined 01:48 ilbot3 joined, ChanServ sets mode: +v ilbot3
u-ou hi 01:55
AlexDaniel hello
u-ou :) 01:56
02:05 noganex_ joined 02:07 iyra joined, BenGoldberg left
iyra how do I check if a hash has all specified keys? for example, I want to check if 'm' and 'y' are keys of the hash %params 02:08
02:08 noganex left 02:11 gdonald left
MasterDuke_ m: y %h = :1m, :2y; say so all %h<m y>:exists; say so all %h<m b>:exists; 02:12
camelia 5===SORRY!5=== Error while compiling <tmp>
Unsupported use of y///; in Perl 6 please use tr///
at <tmp>:1
------> 3y7⏏5 %h = :1m, :2y; say so all %h<m y>:exist
02:12 gdonald joined
MasterDuke_ m: my %h = :1m, :2y; say so all %h<m y>:exists; say so all %h<m b>:exists; 02:12
camelia True
False
02:12 Cabanossi left
MasterDuke_ iyra: ^^^ 02:12
iyra thanks, do I need the all in front? 02:13
because this is what I tried (without the all) and it didn't seem to be working hah
02:14 AlexDaniel left
MasterDuke_ m: my %h = :1m, :2y; say so %h<m b>:exists; # yeah, you need all 02:14
camelia True
MasterDuke_ m: my %h = :1m, :2y; dd %h<m b>:exists; 02:15
camelia (Bool::True, Bool::False)
02:15 Cabanossi joined
MasterDuke_ m: say so (False, False) 02:15
camelia True
iyra thanks a lot, it works :) 02:16
MasterDuke_ np
02:36 atweiden joined 02:44 zapwai left 02:58 Cabanossi left 03:00 Cabanossi joined 03:18 atweiden left 03:41 iyra left, Cabanossi left 03:44 Cabanossi joined 03:54 poohman joined
poohman m: say "hello"; 03:57
camelia hello
u-ou does use trace only work one file deep? 04:05
because I'm trying to use it with a module but it's not going
poohman m: my @a[2,2];@a[2,2]=44;say @a; 04:11
camelia Partially dimensioned views of shaped arrays not yet implemented. Sorry.
in block <unit> at <tmp> line 1
04:11 kaare_ joined 04:13 geekosaur joined
poohman m: my @a[2,2];@a[1,1]=33;dd @a; 04:14
camelia Partially dimensioned views of shaped arrays not yet implemented. Sorry.
in block <unit> at <tmp> line 1
poohman m: my @a; @a[2,2]=55;say @a; 04:16
camelia [(Any) (Any) (Any)]
04:16 khw left
poohman m: my @a; say @a; 04:18
camelia []
poohman m: my @a; @a[6]=6; say @a; 04:19
camelia [(Any) (Any) (Any) (Any) (Any) (Any) 6]
poohman m: my @a; @a[2;2]=55; say @a; 04:20
camelia [(Any) (Any) [(Any) (Any) 55]]
poohman m: my @a; @a[2;2]=55; say @a.shape; 04:22
camelia (*)
MasterDuke_ m: my @a[2;2]; say @a.shape 04:23
camelia (2 2)
poohman m: my @a; @a[2]=55; say @s.shape; 04:24
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '@s' is not declared
at <tmp>:1
------> 3my @a; @a[2]=55; say 7⏏5@s.shape;
poohman m: my @a; @a[2]=55; say @a.shape; 04:25
camelia (*)
poohman Hi MasterDuke
MasterDuke_ hey 04:26
ugexe gfldex: its handling the versions fine, but the error check that kills it is failing to note the difference in Git::Config and Git::Config:ver<0.1.1> (something else depends on and pulls in 'Git::Config') 04:27
poohman is there a difference in how single and multidimensional arrays work
I mean without declaring the size beforehand 04:28
for a single dimensional array if I give a value to the Nth element it displays it till there 04:29
but does not display a square one when done with Two dimensional 04:31
MasterDuke_ yeah, don't think you can shape an array after the fact 04:32
but i'm off to sleep... 04:33
u-ou wow zsh just saved me. I did `rm *>tar` instead of `rm *.tar` and it asked me if I surely wanted to delete everything
</offtopic> 04:34
ugexe --no-preserve-root
geekosaur zsh asks by itself :)
u-ou if it'd been bash i'd have lost all files in . 04:35
04:39 nadim joined 04:59 aborazmeh left 05:02 wamba joined
ugexe thats not everything 05:06
samcv well if you do rm -rf * in / then you don't need no preserve root 05:07
since it uses shell expansion
and is like doing rm -rf /home /usr /blah /blah /blah /blah 05:08
but yeah. be safe everyone!
05:10 kyan left 05:12 kyan joined, Cabanossi left 05:14 Cabanossi joined
u-ou :) 05:33
05:38 poohman left 05:42 kurahaupo joined 05:44 CIAvash joined 05:55 kurahaupo_ joined 05:56 parv joined 05:59 skids left, kurahaupo left 06:02 kurahaupo_ is now known as kurahaupo 06:10 kurahaupo left 06:13 Cabanossi left 06:14 Cabanossi joined 06:32 gdonald left, gdonald joined 06:34 domidumont joined 06:38 parv left 06:39 domidumont left, domidumont joined 06:56 parv joined 06:58 Cabanossi left 06:59 Cabanossi joined, setty1 joined 07:20 bjz left 07:23 bjz joined 07:48 rindolf joined 07:49 xfix joined, wictory[m] joined 07:50 kent\n left 07:52 wamba left 07:53 tadzik joined 07:56 poohman joined, kent\n joined
poohman m: my @a;@a[2;2];say @a; 07:57
camelia []
07:57 BinGOs joined
poohman m: my @a;@a[2;2]=55;say @a; 07:58
camelia [(Any) (Any) [(Any) (Any) 55]]
08:01 M-Illandan joined
poohman m: my @a;@a[2,2]=55;say @a;@a[1;1]=11;say @a; 08:02
camelia [(Any) (Any) (Any)]
[(Any) [(Any) 11] (Any)]
08:02 timotimo joined 08:03 darutoko joined
poohman m: my @a;@a[2;2]=55;say @a; @a[1;2]=11;say @a; 08:04
camelia [(Any) (Any) [(Any) (Any) 55]]
[(Any) [(Any) (Any) 11] [(Any) (Any) 55]]
08:07 TBSliver joined
poohman m: my @a;@a[2;2]=55;say @a.shape;@a[1;2];say @a.shape; 08:08
camelia (*)
(*)
08:09 wamba joined 08:13 Cabanossi left 08:14 Cabanossi joined
poohman m: my @a; @a[2;2]=55;say @a.shape;@a[1;2]=11;say @a.shape; 08:17
camelia (*)
(*)
08:17 CIAvash left
poohman m: my @a[2;2]; say @a.shape 08:44
camelia (2 2)
08:44 nadim_ joined 08:46 nadim left
u-ou hi 08:47
samcv hi u-ou
u-ou hey samcv 08:48
samcv working more on case insensitive matching of expanding characters 08:49
so that we can pass back how many codepoints were matched in the haystack, because with case insensitive we can't assume the number of codepoints we matched is the same as the needle 08:50
m: say 'sta' ~~ m:i/st/
camelia 「sta」
samcv i hope to one day get this to return 'st' and know that the match was only one codeponit there
and also account for when needle changes size as well as haystack. many things cannot be assumed anymore when your strings change length while you are indexing them :) 08:51
08:52 Mithaldu left
u-ou nice 08:52
08:55 Mithaldu joined 09:13 Cabanossi left 09:14 Cabanossi joined 09:15 grondilu left
samcv three letter variable names are not fun 09:20
i don't know what these hold :(
u-ou I read your blog post on that
samcv oh cool
u-ou looks like tricky work
samcv yeah
09:32 domidumont left 09:45 kyan left 09:55 AlexDaniel joined 10:09 pmurias joined
u-ou night 10:19
timotimo u-ou: "use trace" is, like all "use" statements, lexical in scope 10:20
10:23 isBEKaml joined
u-ou I can't remember the problem I was having specifically, but I couldn't get it to work with a module that i "used" 10:23
anyway, going to bed :I night 10:24
I think I didn't need it in the end
timotimo yeah 10:25
you need to put "use trace" into the module you're using
that's what "lexical scope" means
in the same file, and also in between the same pair of { }
u-ou I think I did, not sure though
timotimo then you might have to do some extra work to make sure that version of the file actually gets used
i.e. not one installed with zef earlier or something
10:34 parv left 10:36 TEttinger left
DrForr o/ 10:57
10:58 isBEKaml left
DrForr Pluggable seems a touch bitrotted as it uses @*INC which is deprecated. Is there a replacement handy? 10:59
11:00 sena_kun joined
DrForr (for either Pluggable or @*INC) 11:01
timotimo it depends on how it uses @*INC 11:05
m: say $*REPO.next-repo.installed>>.meta
camelia ({auth => github:niner, author => github:niner, authors => [Stefan Seifert], depends => [LibraryMake], description => Use Perl 5 code in a Perl 6 program, files => {resources/libraries/p5helper => 2F6B236B77BC9D0E77C1B73DBAFA53E81D238E83.so}, license => …
timotimo this could get you a piece of the way there? 11:06
DrForr Okay, backstory first.
I'm a bit tired of a Dist::Zilla-ish thing not existing for perl6, so I'm writing my own. I'd prefer it to be entirely plugin-driven, so all the main code has to do is load a list of stuff from Six::Zilla::Plugins::* and go from there. 11:08
timotimo right
11:08 labster left
DrForr The catch is, of course, knowing where Six::Zilla is on the file system, and by extension Six/Zilla/Plugins/. 11:09
timotimo "on the file system" is already wrong :)
DrForr Figured as much when I read the documentation. I suspect I'm going to run headlong into precompilation and caching issues. 11:10
That's why I stepped in to get a bit of advice first.
I'm happy with just punting on this for the time being an acting as if my Plugins/ directory was already dynamically loaded, I'll probably roll with that for the time being. 11:12
Right now getting something done so that others can populate the appropriate Plugins:: namespace is what I'm after. 11:14
timotimo that seems easy 11:15
eater #| isn't documentated somewhere?
timotimo the others just have to provide it via their META6.json
robertle DrForr: semistable.com/files/perl6-pluggabl...79f.tar.gz 11:16
this is a modified version of github.com/tony-o/perl6-pluggable, which had some issues last time I looked
DrForr The internals look trivial enough that when the time comes I'll just rewrite it, I think. 11:17
timotimo eater: i don't see it docced in perl6-doc, but it does appear a crapton of times, basically in every single Type/ document
docs.perl6.org/type/Any#(Mu)_method_WHY
in fact, this is exactly what you're after, i'd say 11:18
eater ah yes
POD doesn't apply the formatting rules on it :(
timotimo i love how "do not use for" is a string of keywords and that's why it's boldface
eater oh
thats why :')
timotimo m: #= Do the C<Thing>␤sub test() {}; say &test.WHY.perl 11:19
camelia Nil
timotimo m: #$ Do the C<Thing>␤sub test() {}; say &test.WHY.perl
camelia Nil
timotimo bleh
m: #| Do the C<Thing>␤sub test() {}; say &test.WHY.perl
camelia Pod::Block::Declarator.new(WHEREFORE => sub test () { #`(Sub|44003672) ... }, config => {}, contents => [])
timotimo m: #| Do the C<Thing>␤sub test() {}; say &test.WHY.Str
camelia Do the C<Thing>
eater :(
timotimo it's strange that the .perl doesn't output the contents at all
but the contents are clearly there
m: #| Do the C<Thing>␤sub test() {}; say &test.WHY.contents.perl 11:20
camelia ["Do the C<Thing>"]
timotimo yeah, seems like it just treats it as a string
eater which is wrong!!! 11:21
well let's see where this is done
timotimo in src/Perl6/Grammar.nqp in rakudo
attach_trailing_docs and attach_leading_docs is one interesting bti 11:22
bit*
eater thanks
timotimo oh yeah
look how it's called, it just stringifies the attachment's nibble
that way no formatting codes can survive
eater :( 11:23
hmm
#= does formatting??
timotimo well, i think it should? perhaps? 11:24
oh, no it doesn't even
eater my Pod doesn't even see it :')
timotimo m: #| Do the C<Thing␤sub test() {}; say &test.WHY.contents.perl>␤say "this should be the only thing that runs" 11:25
camelia this should be the only thing that runs
Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5[\"Do the C<Thing\"]' (indicated by ⏏)
in block <unit> at <tmp> line 2

Actually thrown at:
in block <…
timotimo what the ...
that's an impressive failure mode
m: #| Do the C<Thing>␤say "this should be the only thing that runs"
camelia this should be the only thing that runs
timotimo m: #| Do the C<␤Thing␤>␤say "this should be the only thing that runs" 11:26
camelia 5===SORRY!5=== Error while compiling <tmp>
Preceding context expects a term, but found infix > instead
at <tmp>:3
------> 3>7⏏5<EOL>
timotimo when there's an unclosed formatting code, it ought to nom multiple lines
but at the moment it just goes "parse a string of non-newlines"
m: #=( Do the C<␤Thing␤>)␤say "this should be the only thing that runs"
camelia this should be the only thing that runs
timotimo this works, however
eater m: #| C<help␤#| >␤say "ayy"
camelia ayy
eater get rekt 11:27
altho I don't know how this ends up
timotimo it doesn't know about the formatting code at all
eater ye
timotimo m: #| C<help␤#| no closer!␤say "ayy"
camelia ayy
eater I need to rebuild rakudo when I change the grammar right? 11:29
timotimo yep
sadly it'll have to re-parse the whole core setting
so you'll be waiting more than one minute each time ;(
eater :(((
I ~could~ 11:30
timotimo i've tried in the past to create a much shorter core setting, but that's a huge undertaking
eater just use the NQP
and show the AST
masak hi, #perl6
eater hi masak
masak today's autopun spotting: twitter.com/vornietom/status/855858519626596352
timotimo you can try to use the perl6 parser without a core setting, but please be aware that if you don't have a core setting, you don't have the Pod:: classes, and the parse will definitely fail at the point it tries to create one of these to hold your results 11:31
11:35 poohman left
masak timotimo: that sounds... weird. :) 11:36
timotimo yeah, i don't recommend it
eater I'll just be patient
11:36 grondilu joined
masak sounds like "the core setting is designed to be pluggable -- but be careful, removing it won't work!" 11:36
timotimo well, you can replace it with another core setting
it's just that the other core setting has to set up a few things really early, too
11:37 darutoko left
eater then I still like my AST idea better :') 11:38
11:41 Zoffix joined
Zoffix .tell El_Che seems I lied. We ended up cutting yet another point release. The 2017.04.3 is latest release now with 2017.04.2 having a couple of large bugs 2017.04.3 fixes 11:42
yoleaux Zoffix: I'll pass your message to El_Che.
11:42 Zoffix left
AlexDaniel c: releases say rand 11:43
committable6 AlexDaniel, gist.github.com/d4bd00f2444206ebc4...7a50e0cd95
AlexDaniel committable6 :S
eater timotimo: nice, now #| don't even have functionality anymore:') im very good at customimzing perl6 11:44
timotimo :D
AlexDaniel ah, it is still building it… but tags are pulled ahead of time 11:45
timotimo pod is notoriously tricky, eater 11:46
eater oh sweet, it only builds the changed nqp files :> 11:48
AlexDaniel c: releases say rand 11:52
committable6 AlexDaniel, gist.github.com/51782b9747fa16d317...d26e928311
AlexDaniel \o/
pmurias masak: you can plugin in a different core setting, but with an empty one almost nothing parses 11:53
masak pmurias: I'm both very non-surprised and a little bit disappointed at that ;) 11:55
timotimo benchable6: sleep rand * 1.5 11:57
benchable6 timotimo, ¦sleep: «Cannot find this revision (did you mean “all”?)»
timotimo benchable6: all sleep rand * 1.5
benchable6 timotimo, starting to benchmark the 40 given commits
timotimo :P :P
11:57 Cabanossi left 11:59 Cabanossi joined
pmurias masak: there are a bunch of places where rakudo assumes something that's not used in the parsed program exists in the setting that could be (fairly easily) removed 11:59
would anything be gained from supporting tiny settings? 12:00
timotimo faster development turn around time for grammar-only changes
benchable6 timotimo, benchmarked the given commits, now zooming in on performance differences
timotimo i'm so sorry, poor benchable6 12:01
pmurias lunch&
benchable6 timotimo, «hit the total time limit of 240 seconds»
timotimo also i'd be interested to see how low the memory usage gets by removing a few classes 12:02
like, Bag*, Set*, Mix* perhaps
just as an example
eater lol, now whenever you define an #| comment it will throw "Too many positionals passed; expected 1 argument but got 2" 12:10
AlexDaniel m: my $x; #| foo 12:12
camelia ( no output )
eater AlexDaniel: in my own build :p
trying to fix #|
AlexDaniel timotimo: goddamn issue github.com/perl6/whateverable/issues/113 12:13
timotimo the what now? 12:14
12:15 grondilu left
eater timotimo: it's currently just kind of saving the pod string and in theory it should reparse that if we want something useful :s 12:37
12:38 iyra joined 12:42 kaare__ joined
eater well lets break the whole compiler then :> 12:42
12:46 kaare_ left
timotimo reparsing is a big no-no 12:47
eater yea
I understand that
timotimo we pride ourselves on our "single-pass parsing"
eater so Im just kind of breaking everything
oh? single-pass parsing isn't normal? 12:48
timotimo nope
consider perl5 regexes where the modifiers go at the end of the regex 12:49
eater how to get the length of an NQPArray? :') 12:53
timotimo nqp::elems i believe 12:55
eater thanks :D 12:56
I might have fixed #| but in the mean time I broke my whole rakudobrew env :') 13:07
13:14 Ven joined, Ven is now known as Guest63917
eater hgn 13:15
debugging this stuff is hard
timotimo yup
13:15 kaare__ left
eater oh 13:20
wow
it runs even deeper
Pod::Block::Declarator has an trailing array, but it will never return the array itself nor are you able to access it because it's hidden :') 13:23
and if you want to access it you just get @!trailling.join(' ')
13:26 nhywyll joined 13:27 Cabanossi left 13:29 Cabanossi joined, MilkmanDan left, MilkmanD1n joined
timotimo yeah :\ 13:30
ugly
13:31 Zoffix joined
eater I just made an method to debug raw_leading :') 13:31
Zoffix .tell El_Che I fucked up the 2017.04.3 release >_<
yoleaux Zoffix: I'll pass your message to El_Che.
timotimo *sigh*, i'm not really good at NativeCall 13:33
eater timotimo: what are you trying to do?
timotimo well, i have a function here that takes a the_struct** and allocates it for me
so i have a class the_struct is repr('CPointer'), right?
and i set that parameter to "the_struct $foo is rw"
the next thing i do after that function that allocates for me is i increase its reference count 13:34
which immediately segfaults because my $the_thing is a null pointer
13:34 noganex joined
timotimo the annoying thing is that there are functions that return the struct i want, but they are deprecated 13:35
only the functions that take a ** and set that, and then return a status code, are acceptable 13:36
eater bleh
13:37 noganex_ left 13:43 Guest63917 left 13:57 titsuki joined
eater it really feel atm that I'm some car engineer, trying to repair a plane :') 14:01
*feels
14:04 bjz left, bjz_ joined 14:08 kent\n left 14:11 kent\n joined
timotimo grml. why do we cut off the message of a typecheck error 14:16
"Type check failed in assignment to $encoder; expected NativeCall::Types::CArray[sixel_encoder] but got NativeCall::Types::CA..." 14:17
eater :')))
that's really funny
timotimo got => NativeCall::Types::CArray[sixel_encoder].new, expected => NativeCall::Types::CArray[sixel_encoder]
eater rage quits 14:20
fuck this
timotimo i didn't have to put a type annotation on the variable, so i could get it to work 14:22
but the output is still corrupted
Zoffix timotimo: I know that error
timotimo: I know the fix too. How to repro it tho? 14:23
timotimo yeah, i do, too
let's see
Zoffix timotimo: there was a ticket, but I left it unfixed because I couldn't write the test for the issue.
14:23 kaare__ joined
Zoffix Don't see the ticket, but I remember it was by titsuki 14:24
timotimo the obvious way to reproudce it doesn't work 14:25
i think i have an idea why i'm seeing corruption; that'd have nothing to do with how i allocate this sturcture ... 14:29
sturcture? nice one.
fantastic 14:30
it's because the library expects stdout to be harmless, but libuv had a different opinion 14:31
14:44 bjz_ left
gfldex m: my IO::Handle $h = $*OUT; 14:49
camelia Type check failed in assignment to $h; expected IO::Handle but got IO::Handle.new(:path(...
in block <unit> at <tmp> line 1
Zoffix restricted bot 14:50
timotimo m: say $*OUT.perl
camelia IO::Handle.new(:path(IO::Special.new(what => "<STDOUT>")),:chomp)
timotimo m: say $*OUT ~~ IO::Handle 14:51
camelia False
timotimo m: say $*OUT.WHAT.perl;
camelia IO::Handle
timotimo well ...
Zoffix IO::Handle is a different type than $*OUT.WHAT. It's from RESTRICTED
timotimo right 14:52
15:18 ggoebel left 15:22 skids joined
pmurias what's a correct way to describe a "function" that doesn't have side effects but returns a different value every time it's called? 15:24
gfldex generator 15:25
pmurias would generator be a good way to describe something like clone or random? 15:26
15:27 Cabanossi left 15:29 Cabanossi joined 15:30 ufobat_ joined 15:32 ggoebel joined
timotimo clone is a pure function, as it depends only on what you're passing it 15:41
i wouldn't call random side effect free. or any function that "returns a different value every time it's called"
because random(); random() will give you the same sequence of two numbers, except if something else called random() in the middle 15:42
15:43 khw joined
pmurias timotimo: clone returns a different value every time it's called 15:45
timotimo: I'm looking for a word to describe function that don't have side effects but aren't pure 15:47
Zoffix Isn't that just "function"? With side-effect-causing ones being "procedures"? 15:48
.oO( or is it the other way around )
pmurias Zoffix: a function in maths has no side effects, ones in programming often have them 15:50
Zoffix: I want a word to describe nqp ops that have no side effects but return a different value every time 15:51
ilbelkyr nullipotent, perhaps? 15:55
sena_kun I am not a professor, but if the arguments are the same and the return values are different every time, there *are* side effects inside. Result of random is based on some IO call, it is a side effect. 15:57
pmurias in terms of the implementation they *are* side effects but it's not a part of the model 15:59
a nqp::clone can be optimized away if it's result is not used a nqp::writefh shouldn't be 16:00
sena_kun ah, here comes optimisation
pmurias sena_kun: there is (or at least I want it to be) a distinction between how are the nqp ops documented to work and the precise way they are implemented 16:04
sena_kun well, in that case my knowledge is not enough to be helpful here 16:06
gfldex sena_kun: i know that feeling :)
Zoffix m: say now 16:07
camelia Instant:1492963681.978784
pmurias hates the feeling when he doesn't know how to name a function/method/concept
Zoffix sena_kun: ^ that now call has no sideeffects and returns different value (almost) every time
16:08 domidumont joined
sena_kun Zoffix, but a call to IO is already a side-effect, isn't it? 16:08
Zoffix sena_kun: there's no IO call 16:09
sena_kun Zoffix, the value comes from some libastral? Not a joke or sacrasm, just asking. 16:10
pmurias sena_kun: libastral is a astrology library? 16:12
sena_kun pmurias, yes, you can directly connect to astral world and get something mysterious from there. :) 16:13
now I'm curious about how `now` implemented...
timotimo i'm wondering how to build something robust that can give me a perl6 object when i got something passed through a "user value" pointer for a callback
but actually, i can just use a closure over the value 16:14
pmurias sena_kun: stuff like adding two numbers has side effects (like using up electricity and accessing memory) but that's not part of how things are documented/specced 16:15
sena_kun pmurias, yep, changing CPU/memory state for sure, but I'm not about it. 16:16
b2gills antonyms of "specific": ambiguous indistinct imprecise fuzzy similar 16:19
16:27 Cabanossi left 16:29 Cabanossi joined
ugexe DrForr: there are lots of modules in the ecosystem that implement plugin systems. they only require a few lines of code. zef is one such example, but there is also crust and sparrowdo 16:31
two of those examples are even entirely plugin driven 16:32
timotimo this library has a little bit of callback hell %) 16:33
ugexe and one of those even lets you dynamically add arguments to your MAIN commands 16:35
for your plugins
16:38 BenGoldberg joined 16:40 winnie_ joined
winnie_ m: say "Hello"; 16:40
camelia Hello
Zoffix m: say "Hi \c[BLACK HEART SUIT]" 16:42
camelia Hi ♥
Zoffix New blog post: "The Failure Point of a Release": perl6.party/post/The-Failure-Point-of-a-Release 16:43
16:45 Zoffix left
winnie_ i still have 2017.1 from fedora rawhide 16:50
16:50 gdonald left 16:51 yht left, gdonald joined 16:56 bvbfr65bv joined
bvbfr65bv hi all 16:56
eater hey
bvbfr65bv please give me info
eater info
bvbfr65bv have fuzzer's to perl? 16:57
with support SYN/ACK 16:58
b2gills There are people who fuzz Perl, as in Perl 5. The rest of what you are saying doesn't make much sense to me. 16:59
17:00 zapwai joined
bvbfr65bv ok 17:08
17:08 bvbfr65bv left
eater this is the iirc second time someone comes with questionable reasons asking for fuzzing 17:09
geekosaur there's a tendency for a certain group of people to think the only use IRC has or can possibly have is hax0r discussion 17:10
eater luckily we know better, that IRC is actually only used for C&C 17:15
17:20 grondilu joined
TimToady does C&C with jokes 17:21
17:26 nhywyll left 17:29 ChoHag left 17:32 tyil joined
gfldex U 17:37
17:42 espadrine joined 17:50 tyil left, tyil joined 18:03 kurahaupo joined 18:05 labster joined 18:06 poohman joined
eater act.perlconference.org/tpc-2017-amsterdam/ is down :( 18:09
TreyHarris Are TODO's in parts of subtests notionally supported in Test? The overall core behavior is correct (TODO tests are run but their n/ok status doesn't affect the overall pass/fail), but prove misses accidental success because it doesn't look like a passing TODO test because of the indentation. 18:11
you can TODO an entire subtest and if ALL tests inside pass, you still get an unexpected success 18:12
but if you try to TODO tests inside a subtest, unexpected successes are missed
(I mention just because this breaks the way I usually separate NYI tests that I just thought of: I put them in the right place logically in the suite but mark them TODO.) 18:13
samcv TreyHarris, yeah TODO's have always worked for me 18:19
with prove
how do you mark them todo?
18:19 labster left
TreyHarris samcv: OH, TODO's work, but... uh, let me compose a camelia example. one sec. 18:20
m: use Test; subtest { pass; todo 'not yet done'; pass; }; done-testing; 18:22
camelia ok 1 -
ok 2 - # TODO not yet done
1..2
ok 1 -
1..1
TreyHarris samcv: that isn't recognized as an unexpected success because it's on an indented line
18:22 zaltekk joined
TreyHarris if you read it scanning for ok...TODO, you'll find it. But prove doesn't catch it 18:23
As it does when the todo() is at the top level of the test
18:25 eliasr joined
TreyHarris I think the required logic is: if any TODO-marked test in a subtest passes, then the entire surrounding subtest must get marked TODO, recursively to the top-level if you have nested subtests. 18:25
DrForr Including the tests that are in the top-level subtest that ran before the first TODO? 18:27
TreyHarris DrForr: no, just the overall subtest n?ok
18:27 labster joined
DrForr subtest { ok 1; subtest { TODO 'foo' } }; 18:27
18:27 labster left
DrForr Wasn't trying to poke holes, just thinking out loud. 18:27
TreyHarris DrForr: in that case, no plan nor done-testing, so I'm not sure the behavior is defined 18:28
currently, Test seems to implicitly stick in a done-testing in that case, so that should just be an outright fail 18:29
not even a TODO fail
if you pu that todo (it's lowercase) between the ok and the subtest, then you should get a TODO fail 18:30
DrForr Was just thinking out loud. 18:31
TreyHarris if right after the TODO where you had it was a pass inside the sub-subtest, then both the sub-subtest and the subtest should 'ok # TODO', leading to an unexpected success 18:32
here's a more interesting question, though: subtest { ok 1; subtest { todo 'foo'; pass; fail; } } 18:33
oops, sorry, no, that's not interesting. what i mean was: 18:34
subtest { ok 1; subtest { todo 'foo', 2; pass; fail; } }
subtest { ok 1; subtest { todo 'foo', 2; pass; fail; done-testing; # for explicitness} done-testing; } done-testing;
That is a weird case bacause you said to sub-subtests would fail, but one succeeded, and one failed... bubbling TODO up is arguable 18:35
s/to/two/
if the numeric optional positional argument is simply shorthand for repetitively typing the line without a number before each of that next number of tests, then it should. if the numeric argument defines a notional test group that isn't quite a subtest, then it shouldn't. 18:37
but this: subtest { plan 2; ok 1; todo 'b0rken subtest'; subtest { plan 2; pass; fail; }; }; done-testing; 18:40
18:40 Zoffix joined
Zoffix TreyHarris: bubbling the TODO will mask all failures in the subtest 18:41
TreyHarris that shouldn't bubble-up the TODO because you merely asserted that the sub-subtest's contents were, as a whole, unreliable yet.
Zoffix TreyHarris: also subtests aren't part of the TAP spec
This should be handled by harness instead of the TAP generator, which generates everything fine. 18:42
stmuk pl6anet.org/drop/rakudo-star-2017.04-RC0.tar.gz
moritz downloads and builds 18:43
stmuk I suppose I have to soil my hands with a windows VM :(
18:43 winnie_ left, winnie_ joined
moritz can we make an NQP point release and base another rakudo point release on it? 18:44
I need to recommend a rakudo version for my book, and I have to do it soon
Zoffix I'd also need a MoarVM point release.
moritz and I'd like to be a solid one; basing it on a non-released NQP doesn#t seem very solid :/ 18:45
can anyone do that besides jnthn++?
Zoffix Cutting 4th point release just because someone wants to recommend something in a book seems sily to me.
moritz is "because we want a solid release" a better reason?
timotimo you do realize perl5 (or was it 4?) got turned into a proper release becaues of a book? :) 18:46
stmuk I kinda wish there was a Long(ish) Term Support release based on a R*
DrForr Perl has a history of cutting 5th verion releases for the same reason.
Zoffix moritz: what's unsolid about the Star?
stmuk but we aren't really there yet
moritz the book recommendation just amplifies my desire to have a solid release
Zoffix "solid release" is just a buzzword
El_Che moritz: tell people where to get and/or build 18:47
yoleaux 11:42Z <Zoffix> El_Che: seems I lied. We ended up cutting yet another point release. The 2017.04.3 is latest release now with 2017.04.2 having a couple of large bugs 2017.04.3 fixes
13:31Z <Zoffix> El_Che: I fucked up the 2017.04.3 release >_<
16:56Z <Zoffix_> El_Che: basically Rakudo 2107.04.3 is out, but it references a non-release version of NQP. I dunno if it's a major problem. Also, wrote a blog post about this release issues business: perl6.party/post/The-Failure-Point-of-a-Release
El_Che moritz: rakudo is a moving target
stmuk there does need to be a slower moving one
moritz Zoffix: it's something we don't have experience with
18:47 Ven joined
Zoffix Literally nothing will change with it, except we'll have to do acrobatics to cherry pick the commits and two teams will need to cut releases of 3 software projects, hoping not to fuck it up the 5th time. 18:47
18:48 Ven is now known as Guest13374, winnie_ left, winnie_ joined
El_Che Zoffix: I download each component separedly (rakudo, nqp, moarvm), so it needs to be a released version of each 18:49
moritz distributions are squemish when it comes to packaging non-released versions
El_Che Zoffix: the release themselves can be different
stmuk El_Che: it's easy to build your own nqp-2017.04-24-g87501f7b.tar.gz and MoarVM-2017.04-44-gf0db8822.tar.gz 18:50
El_Che stmuk: I know, it's how the image works atm
18:51 setty1 left
stmuk I hope we don't get into the habit of doing this but as a one off fix for an exceptional release it seemed the least worst option 18:51
El_Che Zoffix: shall I retract the 2017.04.2 pkgs?
zaltekk i'm getting 'MoarVM panic: MVM_platform_alloc_pages failed: 12' when trying to build rakudo. am i right to assume that means the box is running out of RAM?
Zoffix zaltekk: yes, you need about 1.2GB just for the build itself. Adding more swap also works 18:52
zaltekk: alternatively, install a distro package instead of building.
zaltekk thanks. 1GB box so that makes sense
timotimo we already print "this step can take a long time" before the core setting build 18:53
18:53 setty1 joined
Zoffix El_Che: they're just buggy releases. I'd keep them. 18:53
timotimo we might want to add "this takes at least one gigabyte of ram"
samcv Zoffix, can i copy this post to make a Camelia wants YOU to add license fields to your Dist's?
perl6.party/post/Tag-Your-Dists
heh
gonna make a blog post about license in meta files
Zoffix samcv: sure
pmurias will we have separate meta files meta-license? 18:55
moritz stmuk: the star RC0 passed all module tests and installed fine here (current Ubuntu 64bit) 18:56
18:56 Guest13374 left
stmuk great I'm just trying on Windows now 18:56
18:58 Cabanossi left
El_Che Silly question, can a rakudo.org/downloads/nqp/nqp-2017.0...f7b.tar.gz be put in place in the meanwhile? Otherwise I need to rebuild all the docker images. 18:58
Zoffix El_Che: moritz Well, if jnthn cuts 2017.04.1 MoarVM release with regex fixes in it, I'll cut—and I can't believe I'm saying this—5th release of Rakudo this week. But IMO enough is enough. Trying to go through unbeaten path right now and mess with cherry picks and tags is just asking to make the problem worse. The next release is in less than 4 weeks. The world isn't going to end if distros don't package 18:59
polished 2017.04 release.
El_Che: no
18:59 Cabanossi joined
Zoffix Use github links to archives. You'll also need whatever MoarVM version it references 18:59
19:00 Zoffix left
TreyHarris Zoffix: thanks, P5 Test2 does the same thing with subtests and the harness also doesn't catch it, I just never noticed it before. The other ways to group tests based on P5 Test::More all flatten down at the file level so they catch *any* single passing test with a surrounding TODO context--which I guess is another reason todo_skip is necessary in Test::More. 19:02
19:03 ChoHag joined
TreyHarris I guess I just never noticed that indented subtests weren't a thing prove pays attention to because I never had code that created them before. 19:03
El_Che Ok, I fixed by marking it as "pre-release" 19:06
TreyHarris easy enough to write my own checker: perl6 -ne '.say if m/^<ws> "ok" .* "# TODO"/' 19:09
19:09 sena_kun left
samcv .tell DrForr the Readline module cannot be installed, this PR needs to be accepted github.com/drforr/perl6-readline/pull/17 19:10
yoleaux samcv: I'll pass your message to DrForr.
eater im pretty suprised, I've already used [R//]= more than //= :') 19:11
DrForr o/ # done. Thanks for the warning.
yoleaux 19:10Z <samcv> DrForr: the Readline module cannot be installed, this PR needs to be accepted github.com/drforr/perl6-readline/pull/17
ugexe m: 42 [R//]= my $foo; say $foo; 19:12
camelia Cannot modify an immutable Int
in block <unit> at <tmp> line 1
ugexe m: 42 = my $foo; say $foo;
camelia Cannot modify an immutable Int
in block <unit> at <tmp> line 1
ugexe m: 42 R= my $foo; say $foo;
camelia 42
eater m: "my $foo = 42; $foo [R//]= $bar; say $foo; my $bar = 6; $foo [R//]= $bar; say $foo;" 19:13
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$foo' is not declared
at <tmp>:1
------> 3"my 7⏏5$foo = 42; $foo [R//]= $bar; say $foo; m
eater m: my $foo = {a => 42}; $foo<a> [R//]= $foo<b>; say $foo<a>; $foo<b> = 6; $foo<a> [R//]= $foo<b>; say $foo<a>; say "look ugexe"; 19:15
camelia 42
6
look ugexe
ugexe wondering why `42 [R//]= my $foo` doesnt work (even if it doesnt make sense
eater because you're assigning $foo to 42
with [R//]= you only flip the arguments for //
ugexe ah yes good call
eater no the whole statement
it's really useful 19:16
ugexe m: 42 [R[R//]=] my $foo; say $foo 19:17
camelia 42
eater m: 42 [R=] my $foo; say $foo; 19:18
camelia 42
ugexe no need for [] 19:21
eater m: my $d = {d => "help"}; $d ~ 19:22
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing required term after infix
at <tmp>:1
------> 3my $d = {d => "help"}; $d ~7⏏5<EOL>
expecting any of:
prefix
term
eater m: my $d = {d => "help"}; $d<d> ~R[//]= $d<a>; $d<d> ~R[//]= $d<d>; say $d<d>;
camelia 5===SORRY!5=== Error while compiling <tmp>
Null regex not allowed
at <tmp>:1
------> 3my $d = {d => "help"}; $d<d> ~R[//7⏏5]= $d<a>; $d<d> ~R[//]= $d<d>; say $d<d>
eater :(
can't stack 19:23
wait
m: my $d = {d => "help"}; $d<d> ~[R//]= $d<a>; $d<d> ~[R//]= $d<d>; say $d<d>;
camelia 5===SORRY!5=== Error while compiling <tmp>
Thunky pattern t. for &METAOP_REDUCE_RIGHT not yet implemented. Sorry.
at <tmp>:1
------> 3my $d = {d => "help"}; $d<d> ~[R//]7⏏5= $d<a>; $d<d> ~[R//]= $d<d>; say $d<d>;
expecting any of:…
DrForr Whew, thought I found a new parser test case :) 19:26
19:26 domidumont left
tyil eater: github.com/scriptkitties/p6-Config and github.com/scriptkitties/p6-Config-Parser-yaml 19:32
or anyone else who wants to take a look at it and check for mistakes 19:34
its my first attempt at a p6 module
DrForr 'github:kitties' in your META6.json, tyop there :) 19:44
gfldex tyil: you may want to add 1 b to "auth": "githu:scriptkitties" 19:45
DrForr Also you've got more .pm6 files than you're listing in the JSON.
tyil that may be worthwhile indeed
I updated the auth part, I'll continue on listing the other files 19:46
gfldex you could safe you some trouble with your next module with github.com/gfldex/perl6-meta6-bin 19:47
eater why do you need to explicitly say which files you provide?
DrForr For the installer.
eater gfldex: <3
gfldex eater: you may want to keep some files around that you don't want zef to install (yet)
tyil github.com/scriptkitties/p6-Config...META6.json 19:50
updatered
TreyHarris I'm blanking (and this is strangely difficult to search even in my clone of perl6/doc): how do you obtain the capture of the current subroutine's call while it's executing? 19:52
19:53 geekosaur left
moritz TreyHarris: declare your subroutine with a caputre argument, |c 19:54
m: sub f(|allargs) { say allargs.perl }; f a, b => 42
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
a used at line 1
19:54 geekosaur joined
moritz m: sub f(|allargs) { say allargs.perl }; f 'a', b => 42 19:54
camelia \("a", :b(42))
tyil if there's nothing else wrong with it, I'll go see if I can get it submitted on modules.perl6
TreyHarris moritz: yes, but if I want to add a diagnostic to an existing routine with a normal signature, can't I get it inside the code block too? 19:55
I can wrap it I guess
moritz iirc there's a nqp:: op for that 19:56
TreyHarris but I thought there was a method call on the routine and a way for a routine to get a handle on itself, but i can't recall either
wrap seems like the easiest option then, since i need to do it for several methods to trace an argument flow 19:57
samcv clickbaits new post cry.nu/perl6/ecosystem-license-module-tagging/
TreyHarris samcv++ 19:58
moritz samcv: btw Artistic License 2.0 isn't the same as the "perl" license 19:59
samcv yes i know. i'm refering to ones that had Artistic 2.0 as their LICENSE file
Geth ecosystem: Tyil++ created pull request #328:
Add Config
20:00
samcv the list only contains things that were listed for proveablely artistic 2.0 licensed modules
some listing perl for the license field didn't have a LICENSE file, so the bot did not make PR to those ones
since it's ambiguous what it actualy is as the license
gfldex tyil: please setup travis if you add modules to the ecosystem 20:01
tyil o-okay
the docs said "consider", so I was already considering
samcv moritz, should i add a caption that says that list only refers to what was on provably artistic 2.0 modules? so it's not confusing?
Geth ecosystem: 3933701cf1 | (Patrick Spek)++ (committed by Zoffix Znet) | META.list
Add Config (#328)
20:09
20:11 TEttinger joined
moritz samcv: your choice 20:12
samcv k. i'm gonna add a little comment
there are definetly some in the eco that may be under Artistic 1.0 and they put "Artistic" but. luckily most of the ones with "Artistic" or perl had LICENSE files and i was able to figure out what they were 20:13
but the ones without license files, could vary well not be artistic 2.0
20:17 zakharyas joined
samcv good to make it clear that i'm not 'guessing' what peoples licenses are when the names are ambiguous. since that would be very bad 20:20
tyil that'd amke some people very upset
samcv yes
tyil resulting in removal before the clock strikes 8
samcv lol
too soon
20:30 labster joined
samcv we're now at 20.4% of modules having license fields 20:32
\o/
Geth ecosystem: 63cf3f86ca | eater++ (committed using GitHub Web editor) | .travis/testpackagemeta.pl
Travis: Actually skip 5 lines and not 6...
20:33
20:35 rindolf left
Geth ecosystem: the-eater++ created pull request #329:
Add PostCocoon::Url
20:37
TreyHarris erm, how can I wrap a BUILD submethod? inside the class, '::<&BUILD>.wrap(...' compiles but has no effect, outside I can't figure out how to get a routine object suitable for wrapping out of My::Class at all. 20:39
geekosaur isn't the whole point of sub,method that it's not accessible outside the class? 20:41
*submethod
eater hmm, can you wrap wrap? 20:42
TreyHarris geekosaur: agreed, but I don't mind doing it inside the class either
moritz TreyHarris: methods live in method tables, where ::<...> can't find it 20:43
eater TreyHarris: if you don't mind doing it inside the class, why not just define BUILD? 20:44
moritz TreyHarris: I think your best shot is mucking with $class.^submethod_table
TreyHarris eater: I am defining BUILD. Now I want to wrap it.
moritz m: class A { submethod BUILD() { say "BUILD" } }; A.new() 20:45
camelia BUILD
eater m: class A { submethod BUILD() { say "BUILD" } }; A.&new.wrap({ say "NO BUILD" }); A.new;
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
new used at line 1 (in Perl 6 please use method call syntax instead)
moritz m: class A { submethod BUILD() { say "BUILD" } }; A.^submethodtable<BUILD> = sub(|c) { say "wrapped!"; A.^submethodtable<BUILD>(|c) }; A.new()
camelia 5===SORRY!5===
Word 'sub' interpreted as 'sub()' function call; please use whitespace around the parens
at <tmp>:1
------> 3ILD" } }; A.^submethodtable<BUILD> = sub7⏏5(|c) { say "wrapped!"; A.^submethodtable
Unexpected block in infix po…
moritz m: class A { submethod BUILD() { say "BUILD" } }; A.^submethodtable<BUILD> = sub (|c) { say "wrapped!"; A.^submethodtable<BUILD>(|c) }; A.new() 20:46
camelia No such method 'submethodtable' for invocant of type 'Perl6::Metamodel::ClassHOW'
in block <unit> at <tmp> line 1
moritz m: class A { submethod BUILD() { say "BUILD" } }; A.^submethod_table<BUILD> = sub (|c) { say "wrapped!"; A.^submethod_table<BUILD>(|c) }; A.new()
camelia Cannot modify an immutable Submethod
in block <unit> at <tmp> line 1
moritz m: class A { submethod BUILD() { say "BUILD" } }; A.^submethod_table<BUILD> := sub (|c) { say "wrapped!"; A.^submethod_table<BUILD>(|c) }; A.new()
camelia BUILD
moritz m: class A { submethod BUILD() { say "BUILD" } }; A.^submethod_table<BUILD> := sub (|c) { say "wrapped!"; A.^submethod_table<BUILD>(|c) }; A.^compose; A.new()
camelia (timeout)wrapped!
wrapped!
wrapped!
wrapped!
wrapped!
wrapped!
wrapped!
wrapped!
wrapped!
wrapped!
wrapped!
wrapped!
wrapped!
wrapped!
wrapped!
wrapped!
wrapped!
wrapped!
wrapped!
wrapped!
wrapped!
wrapped!
wra…
20:47
eater :')
nice busy
Geth ecosystem: 2067da6183 | eater++ | META.list
Add PostCocoon::Url
ecosystem: 4e64f2cc1b | eater++ (committed using GitHub Web editor) | META.list
Merge pull request #329 from the-eater/add-postcocoon-url

Add PostCocoon::Url
gfldex how do I say "a module of version x.y.z or younger" in a META6.json? 20:48
moritz m: class A { submethod BUILD() { say "BUILD" } }; A.^submethod_table<BUILD>.wrap({say 'wrapped'}); A.new() 20:49
camelia wrapped
moritz m: class A { submethod BUILD() { say "BUILD" } }; A.^submethod_table<BUILD>.wrap({say 'wrapped'; callsame}); A.new()
camelia wrapped
BUILD
eater moritz: nice
moritz TreyHarris: ^^
finally :-)
TreyHarris moritz: yup, just got that myself after you suggested ^submethod_table. Thanks! 20:50
can I do it inside the unit class?
20:50 bjz joined
eater m: &rand.wrap({ 4; #`(decided by diceroll) }); say rand; 20:51
camelia 4
eater can't go wrong
gfldex m: say Version.new(1..*); 20:52
camelia v1.*
eater is there a way to turn off wrap?
moritz m: unit class A; submethod BUILD() { say 'BUILD' }; &?CLASS.^submethod_table<BUILD>.wrap({say 'wrap!'; callsame}); &?CLASS.new
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared name:
?CLASS used at line 1
moritz m: unit class A; submethod BUILD() { say 'BUILD' }; &?CLASS.^submethod_table<BUILD>.wrap({say 'wrap!'; callsame}); ::?CLASS.new
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared name:
?CLASS used at line 1
moritz m: unit class A; submethod BUILD() { say 'BUILD' }; ::?CLASS.^submethod_table<BUILD>.wrap({say 'wrap!'; callsame}); ::?CLASS.new
camelia wrap!
BUILD
TreyHarris I can do it inside the unit class using the literal name, but $?CLASS doesn't... yeah
ah-hah
moritz TreyHarris: ::?CLASS it is
gfldex m: my $handle = &rand.wrap({ 4; #`(decided by diceroll) }); &rand.unwrap($handle); say rand; 20:53
camelia 0.850251792911329
gfldex eater: ^^^
20:54 zakharyas left
eater :") 20:54
you have to have the handle? 20:55
20:55 salv0 left
gfldex eater: yes 20:55
eater looks forward to some unique wrap exploits 20:56
20:57 BenGoldberg left
TreyHarris Style question: I'm trying to port a P5 constructor that has two optional boolean args, one which defaults true, one false. Assuming I want the null-arg behavior to be identical (and cognizant that the way it would be called in Perl 5 requires the truthy or falsy value to be explicit, i.e. ->new(enable-normal => 0, verbose => 1) when you want to flip both from their defaults), should I 1) make the attributes 21:00
identically-named and defaulted and thus require the slightly-awkward .new(:!normal-behavior), 2) change the default-true attribute to 'has Bool $.disable-normal;' instead, or 3) keep the same-named and defaulted attributes and add a BUILD arg :disable-normal so that both :!enable-normal and :disable-normal work?
s/be explicit/explicit when named at all/ 21:01
gfldex TreyHarris: do I undestand you right, that you want mutual exclusive Bools? 21:04
TreyHarris gfldex: no, they are independent things. but in the original, one is default 1, the other default 0
moritz TreyHarris: it really depends on how awkward the negated thing is 21:05
if it's not awkward, I'd prefer the named to default to False
TreyHarris moritz: it's literally :enable-ptys, so it can be :!enable-ptys or :disable-ptys 21:06
moritz TreyHarris: then i'd go with :disable-ptys 21:07
21:09 kurahaupo left, ufobat_ left, ufobat___ joined 21:12 BenGoldberg joined 21:13 kent\n left 21:15 kent\n joined 21:16 kurahaupo joined
samcv ok we're from 13% of all modules having license fields to 20.5% :) that's really awesome 21:16
just checked what it was before this push i've been making :) 21:17
very encouraging!
21:18 kent\n left
TreyHarris moritz: agreed, just didn't know if that so-far singular divergence from naming from the CPAN module (except for a global _ -> -) was too weird to claim under the same rationale of changing to non-naming Perl 6-isms. 21:18
21:20 kent\n joined
tyil samcv: did you run an automated PR on all lacking modules? 21:22
samcv no
only automated correcting them
but i have done PR to add fields as well
so that 13% included ones with incorrect values 21:23
as does the 20.5%, but that's a very big increse in 4 days
but the percentage of incorrect data has been cut almost in half i think. i haven't checked the stats on that tho 21:24
eater is at least 56 packages
which is pretty nice
samcv ok 38 have been fixed, out of 105 that had inaccurate info
plus! the ones that didn't have one before
so very very good!
eater :) 21:25
samcv let's get to 100!
*99.9%
heh. 100% would honestly be best
but there may be some modules the authors have disapeared or something
21:29 BenGoldberg left, labster left 21:30 kurahaupo left 21:31 kurahaupo joined
El_Che samcv: do you have a status page for that? 21:31
samcv i do not
but i could maybe make one
or someone. or something. i have a script that will give me stats on the usage of various tags 21:32
21:32 zapwai left 21:40 labster joined
gfldex El_Che: gist.github.com/gfldex/0a3c1152763...f57703de27 21:42
El_Che: perl6 -e 'use META6::bin :HELPER; for fetch-ecosystem().sort(*.<license> // "") { say [.<name>, .<license>] }' > ~/tmp/ecosystem-by-license.txt
El_Che thx 21:44
21:46 n3m0_G7x joined
El_Che samcv: where is the doc again for the meta file changes needed 21:46
samcv design.perl6.org/S22.html#license
21:47 dct joined
El_Che I see a module thx 21:49
fixed one :)
samcv yay!
also this: gist.github.com/2c87aec0c687c32245...e994cd27c6
El_Che mostly written by gfldex :)
samcv will show you the % of modules with metadata, and also a distribution as well as the numbers of modules and ones with license metadata
this is us currently gist.githubusercontent.com/samcv/0...d1795/a.rb 21:50
i made PR to the two packages with misspelled "license" as "licence" so ignore those
uhm
the script can also output non-compliant package names, that have weird fields that aren't in spec 21:51
21:51 n3m0_G7x left
samcv lots of source-type hm maybe that's a real thing? it's not in meta spec tho 21:52
oh there's 4 with licence not license 21:53
22:00 bjz left, wamba left 22:01 gdonald left, gdonald joined
samcv seems "author" is a very commonly incorrect tag. since the correct is authors 22:02
or maybe that needs to be added to the meta spec. idk
see list here gist.githubusercontent.com/samcv/b...f60af8fe/-
ugexe, can you weigh in? 22:03
gfldex samcv: this propaganda material may be of use to you: i2.wp.com/gfldex.files.wordpress.c...icense.png 22:06
samcv hehe
TreyHarris Does GitHub have something in their terms of service about the licensing for otherwise-unmarked uploads to public repos?
samcv i think you give permission for it to be copied and forked 22:07
but. distribution outside github is unlear *i think*
TreyHarris I mean, I assume (but wouldn't be 100% certain) that you can't upload commercial code to a public repo, wait for someone to fork it and send the first PR, and then use that as proof of infringing use 22:08
22:10 bjz joined
samcv ok apparently you have no right to use the code 22:10
but you do have the right to fork it
on github
or something weird like that
so it's all rights reserved but you allow for it to be copied and viewed *on github* but not neccisarily modified
which basically means you have no rights becuase what is forking different than viewing the original project if you can't modify it 22:11
nadim_ jnthn: in the advent calendar 2011 you introduced Grammar::Trace, in the code some result, off the application of a token, is returned. the result has method MATCH, what other methods is there? is it documented somewhere?
does someone have a biggish Grammar and an example text to match, I need it for some test 22:15
MasterDuke_ nadim_: can you just add a `.name.say for $result.^methods` to see what there are? 22:16
22:17 espadrine left
nadim_ right, but I'd like the documentation too, when I asked I wanted the interesting ones ;) 22:17
pmurias samcv: re misspelled license vs licence, don't some people feel strongly enough about the spelling to threaten module deletion? 22:18
;) 22:19
timotimo lisens
lucs lye scents 22:21
MasterDuke_ lie sense
22:22 sammers joined, dct left
tyil for atom users: github.com/0tho/atom-nav-panel-plus/pull/8 22:22
samcv pmurias, uhm that wasn't the thing 22:23
all of their modules have "license" as a key
timotimo so, which one is the one we're going with now? 22:24
samcv it's just the value that's non-standard. though many of their projects do have a LICENCE file in the projject, the metedata key is the right one, just the value isn't
it's always been license
timotimo OK
samcv i don't care if they name their file LICENCE or license.txt or COPYING
i'm not sure what that dispute was over even. :\ something about not enough discussion or something 22:25
but no argument was given about the actual standardized license values or anything or alternatives 22:26
tyil only a few people agreed on what to use in the field
it needed more people to agree, apparently
22:27 bjz left
samcv and it's been on ecosystem issues and i've made PR and updated docs.perl6.org and S22. and nobody had complaints about the fundamentals of it. using SPDX standardized names 22:27
dunno we should have a mailing list announcement too? i'm not on the ML though. so not sure how that works 22:28
timotimo hm. speaking of the ML, has ToddAndMargo not posted in a whole while? 22:29
they were keeping the mailing list alive for a long while 22:30
samcv where are the archives of the ML?
i see some really old ones only talking about Parrot.. and
that seems not up to date
timotimo hah
let me have a look
samcv now i have a blog post and posted it on reddit channel, and uhm 22:31
timotimo i don't see an archive link in the mail headers
samcv hm 22:32
timotimo www.nntp.perl.org/group/perl.perl6.users/
samcv should i send a message to perl.perl6.users?
is that the list i should use?
timotimo i'd use that one 22:33
22:33 nadim_ left
samcv then after that i'll get an arrow www.greenhousesign.com/images/arrow...r-sign.jpg 22:34
or sign and walk around a populated area to make sure everybody has the chance to discuss it
and can't be accused of not disseminating it as widely as possible
MasterDuke_ perl6.org/community/ has links to the various lists 22:36
timotimo lists.perl.org/tag/perl6.html - i found stuff here 22:37
samcv oh looks like www.nntp.perl.org/group/perl.perl6.language/ 22:38
some changes were already sent out mailing list
nice
not sure if anybody is subscribed to that list but
that's nifty
brb lunch 22:39
heh timotimo www.nntp.perl.org/group/perl.perl6.announce/
maybe we should remove this list from the page?
22:41 Cabanossi left 22:44 Cabanossi joined
timotimo perl6.org/compilers/features - still has niecza in it 22:53
and it still refers to "LoL args/params"
samcv doesn't have green for unicode properties for mvm either 22:54
timotimo yeah, that's because we're not feature complete yet
samcv what more features do we need 22:55
timotimo "set operations"
samcv oh. k
timotimo "match all symbols, except 'other'"
samcv we can do that with regex though right
timotimo "match all letters, or 'other', but not 'letter other'"
samcv i mean i have done it
ok you got me there 22:56
timotimo ugh. i started on partial views for native arrays, but i didn't get it into a working proof-of-concept stage yet 22:57
MasterDuke_ partial views? 22:59
timotimo yeah
well, views in general 23:00
23:00 ufobat___ left
timotimo given a native array with 10x5 elements, get one with 10 elements. or with 5x10 elements. or with 10x10 elements of half integer size, or 10x5 elements but transposed, reversed, or flipped 23:00
given a native array of 8 uint8, get one with one int64, or a num64 23:01
MasterDuke_ @a[2;*2]? that?
@a[2;*;2]
timotimo something like that
also, we don't have a syntax for "reversed along axis n" 23:02
or "axis x and y are exchanged"
would be fine if those were methods, i think
23:06 jeek joined 23:10 pmurias left 23:58 poohman left 23:59 Actualeyes joined