»ö« 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<Thingsub 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
|