»ö« 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.
lucs How does 'has $foo' (simple sigil) compare to 'has $.foo' or 'has $!foo'? 00:02
timotimo it means one of the two 00:03
timotimo m: class A { has $a; method foo { say $a } }; A.new.foo 00:03
camelia (Any)
timotimo m: class A { has $a; method foo { say $a } }; A.new.a 00:04
camelia No such method 'a' for invocant of type 'A'
in block <unit> at <tmp> line 1
timotimo looks like it's the same as $!a
lucs looks back at the code where he accidentally did the 'has $foo'... 00:05
timotimo i'd recommend perl6critic to mark that up
not that we actually have that just yet 00:06
lucs :) 00:06
lookatme morning! o\ o| o/ 00:27
skids o/ 00:31
Geth ecosystem: 608ab339e2 | (Nick Logan)++ (committed using GitHub Web editor) | META.list
Add Zef::CPANReporter

Submit test reports to the cpan testers
  github.com/garu/Zef-Reporter
01:39
Geth Swapped META.info → META6.json in 1 dists in github.com/perl6/ecosystem/commit/73dc8ecd4d 04:26
mrdside Hi there! Can somebody explain why this grammar - gist.github.com/mrDSide/0af89805d8...65bca9c227 matchss only first line from this file - gist.github.com/mrDSide/9c18e9e0c8...04c7d46c79 and only before this text "Descr='src\RemoteCallListenerImpl.cpp(3390): 95c658d1-d3d" 06:15
ugexe can you post both of those files in the same gist (you can post multiple files in a single gist) as well as an additional file that shows the output with Grammar::Tracer ? 06:16
mrdside i96.fastpic.ru/big/2017/0517/ad/97f...ebf2ad.png 06:17
ugexe sees a n and windows cmd.exe 06:18
mrdside gist.github.com/mrDSide/0af89805d8...65bca9c227 06:20
ugexe you probably need to account for newline 06:22
ugexe maybe token TOP { ^^ .. $$ } 06:22
mrdside <ugexe> why <descr> mathes only to "... -d3d"? 06:25
ugexe huh
mrdside <ugexe> whith your TOP the same has result
not the same, but nothing 06:26
ugexe in any case you need to account for newlines or something 06:28
mrdside ok, gist.github.com/mrDSide/0af89805d8...65bca9c227 06:29
works same
it is a bug? 06:30
ugexe i dunno, can you explain why its a bug? 06:31
mrdside i think it should find as long string as possible 06:35
ugexe, ".+" works same 06:46
in CyGwin same result 06:47
even "(.|\n|\s)+" works long but matches the same result 06:49
jap6h ) 07:08
mrdside how can i isolate \n and \r\n? 07:15
i mean to read lines containing \n with breakdown \r\n? 07:17
lookatme .open(nl-in => '\r\n') ? 07:18
lookatme docs.perl6.org/routine/open#Newline_options You mean this ? 07:20
mrdside in Grammars
lookatme Oh
mrdside gist.github.com/mrDSide/0af89805d8...65bca9c227
lookatme I see 07:21
Maybe you can tried "\n" "\r\n" ? 07:25
Geth ecosystem: 4cbf9a76ef | (Marcel Timmerman)++ (committed using GitHub Web editor) | META.list
missed meta filename update

rename META.info into META6.json in BSON
10:09
as_ rakudo: say $*THREAD; Thread.start({say $*THREAD}); 10:30
camelia Thread #1 (Initial thread)
Thread #3
as_ Where is thread #2?
nine as_: that's most probably a thread used internally by MoarVM. E.g. for async IO 10:37
jnthn Potentially either VM internal or started/torn down earlier during startup
I'd not read anything much into the IDs
nine My old rule of thumb: never ever apply semantics to IDs. All they need to be is unique. 10:38
as_ No, nothing much into but just curious :)
Geth specs: edb5c57af6 | (Zoffix Znet)++ (committed using GitHub Web editor) | v6d.pod
Propose removal of Str.lines: $count param
12:31
[Coke] oooh, damian is going to be at the swiss perl workshop this year! 12:46
[Coke] 'make xtest' failing again in doc 12:48
Geth doc: 7ef469cca3 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Type/Any.pod6
Fix compilation issue in new duckmap examples
12:56
doc: 7a0843b175 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/list.pod6
Do not test example showcasing syntax error
12:57
doc: 2f8f417037 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Type/Any.pod6
Add extra space around &by param

To make it more obvious it's a positional param, as some reportedly[^1] try to use it as a named arg.
  [1] rt.perl.org/Ticket/Display.html?id...et-history
13:00
[Coke] -1 on adding that extra space.
pmurias hmm, how is nqp::opendir/nqp::nextfiledir behaving on windows? does it return '.', '..'? 13:01
pmurias I'm implementing it on the js backend and not sure if I should return the '.', '..' (node.js is not giving me that) 13:01
Geth doc: 67ab9c1a0b | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Type/Any.pod6
Actually point out &by is a positional arg in prose

Fixes RT#130517: rt.perl.org/Ticket/Display.html?id=130517
13:03
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=130517
Geth doc: 84562697db | (Zoffix Znet)++ | doc/Type/Any.pod6
Revert "Add extra space around &by param"

Per: irclog.perlgeek.de/perl6/2017-05-17#i_14595356
The original issue is more thoroughly addressed by change to prose:
  github.com/perl6/doc/commit/67ab9c1a0b
13:09
doc: 2719b53e66 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/testing.pod6
Clarify is-deeply bug-by-design affects only Seq:D

For Seq type objects it used to crash, but now fixed[^1] and tested[2], to pass them through non-buggy path in is-deeply.
  [1] github.com/rakudo/rakudo/commit/f3f99b3ac4
  [2] github.com/perl6/roast/commit/3ea879737b
13:23
Geth doc: 09250ba945 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/testing.pod6
Idomatic-ize example

We don't post-increment hash keys to count things in Perl 6.
14:16
Geth doc: 6cdbe86624 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/testing.pod6
Use a more elaborate with different types

to showcase how is-deeply tests all of it
14:36
raschipi m: "😛🤔".reverse.put 14:41
camelia 😛🤔
raschipi flip 14:42
Geth doc: 6ff19e6120 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/testing.pod6
Use shiny regex classes in example

Totally forgot we have these. (also fix a bug in letters regex)
14:46
tbrowder hi #perl6 15:06
i've been away for a while but see reports of lots happening in the ecosystem 15:07
are we almost ready to move away from the current procedures? 15:08
timotimo you mean away from modules.perl6.org and onto cpan? 15:11
tbrowder yes 15:14
i have several modules in work and am working on some tools to ease integration with the current ecosystem. i don't want to keep working in that direction if we're about to see a major change in procedures. 15:17
jdv79 the plan, for a year or two now, has been to move off github and onto cpan 15:24
curt_ github.com/ugexe/zef#cpan
jdv79 curious how far along we are myself
pmurias didn't the recent Toolchain Summit make a lot of progress towards moving to cpan? 15:27
ugexe yes you can upload distributions to cpan through PAUSE (or using App::Mi6 + CPAN::Uploader::Tiny), and you can enable searching cpan with --cpan 15:32
enable searching cpan with zef --cpan^
tbrowder: so something you might consider is then keeping your versioned distributions on cpan, but using github master + ecosystem to provide the absolute latest code 15:34
last I knew Inline::Perl5, Acme::Meow, and Text::CSV were the only author uploaded modules on cpan as of yet 15:37
ugexe gist.github.com/ugexe/0e77eaba67c8...a59f20c164 15:37
tbrowder: but anyway - you can have your modules on both cpan and the perl6 ecosystem if you want 15:39
jdv79 so, uploading to cpan has been working for over a year 15:41
ugexe once a fair number of authors (some number more than 3 anyway) have uploaded their own perl6 dists to cpan then it will be enabled by default in zef
jdv79: yeah but now you don't have to do the Perl6 folder thing
jdv79 oh?
ugexe a META6.json can mark a distribution as perl6 in pause now 15:42
which then does the Perl6/ folder thing for you when you upload 15:43
jdv79 oh neat
tbrowder so how should we mod the META6.json file for the dual life? 15:44
ugexe tbrowder: if you upload your distribution to cpan the source-url will be added for you automatically by my indexer 15:45
it won't edit the actual file cpan has, but it does in the big ol json index of cpan that zef searches
ugexe additionally nine has a PR to pause that will do this *for the source-url in the distribution itself* 15:46
so you don't have to mod anything 15:47
ugexe everything should *just work*, and if it doesn't let me know 15:47
perlpilot ugexe: did anyone at the summit discuss mods to metacpan.org for showing Perl 6 modules? 15:49
perlpilot (I'm mostly just curious how people who would use CPAN can find Perl 6 modules in the same way they would Perl 5 modules) 15:50
jdv79 so wouldn't it be nicer to just kick the upload if a source-url is not correct or if anything about the dist is incorrect?
i did the out of date metacpan mods. is someone working on another set? 15:51
if not i have part of the work to get them up to date i could do 15:52
jdv79 the old idea was there will be 2 seperate metacpan instances. i'm not sure if that is the current thinking after the summit. 15:53
ugexe we didn't get a chance to discuss metacpan with anyone, although I did get to point people to jdvs working fork and show that there is a working implementation (that zef can also use fwiw) 15:54
jdv79 nice 15:55
ugexe jdv79: the source-url should be set by pause/cpan because you might not know what the source-url is until you upload
jdv79 is the mi6 thing redundant to zef?
ugexe (technically you could know because it follows a pattern, but still)
App::Mi6 is an authoring tool
jdv79 isn't source-url field moot since to get the meta6.json file you had to fetch teh dist or somwhere very close to it in url 15:56
i thought that field was originally a panda thing to point to gh from the eco 15:57
raschipi I suggest the name "yondercpan" for the P6 tool.
ugexe for instance: metacpan uses download-url
perlpilot I thought the META6.json file was in the tarball they uploaded to PAUSE.
jdv79 also, if and when we do signed dists that's not gonnna fly
ugexe source-url and where the meta6.json is found do not have to be related 15:58
ugexe all cpan json is currently at github.com/ugexe/Perl6-ecosystems/.../cpan.json 15:58
jdv79 the dist should probably just be validated and kicked
ah, that's your file. i had forgotten.
ugexe if you want to sign it then you would probably have to set the source-url yourself 15:59
raschipi Pause should sign it. 16:00
ugexe it could
raschipi Like kernel.org does for linux.
jdv79 i guess. modifying a dist on upload just seems dirty. 16:05
jdv79 whatever works at this point i guess 16:05
ugexe jdv79: maybe the PR only changes the source-url in the .meta file that gets extracted alongside the .tar.gz 16:09
nine ^ ?
raschipi What about Pause submitting a PR to the source-url provided so that if it's accepted it doesn't need to change it every time? 16:11
ugexe there is no reason a dist has to be git based 16:23
pmurias what is supposed to be stored in the source-url?
raschipi I know, but having it in case it is would be nice. 16:24
ugexe source-url tells a module installer where to fetch a distribution from. so whatever "ecosystem" should be handling this
pmurias what do we need source-url from? 16:25
ugexe people have to manually set it for the ecosystem-api.p6c.org/projects.json ecosystem because it has no way of knowing itself (although it certainly could guess pretty easily)
ugexe if you are uploading to cpan you don't need to set the source-url 16:25
for the p6c ecosystem you set it to whatever you want it to download (maybe its even a .tar.gz url to cpan) 16:26
araraloren Any format uri which cam fetch module source code, right ?
ugexe e.g. source-url is not part of META spec, its a recommendation manager / content storage field
pmurias so is there a need for it to be inside dists on CPAN or in module repos? 16:27
ugexe araraloren: yes - it is expected that your package manager will understand the uri
tbrowder ok, i will try out the mixed system with a new module soon. 16:28
ugexe pmurias: it would be nice, but it doesn't have to be. it only needs to be in the *index* of meta data, not in the actual downloaded meta data extracted from the .tar.gz
araraloren pmurias, No, actually even you can write plugin for zef to deal your uri format 16:30
pmurias ugexe: are module author aware what source-url is supposed to be or do they just cargo cult the github repo there 16:32
beginner is there active object design pattern in perl6? 16:39
raschipi beginner: github.com/jnthn/oo-actors ? 16:42
beginner yes 16:44
beginner raschipi : but its mentioned as a partial version 16:54
raschipi jnthn: What's missing on that module? 16:55
jnthn raschipi: The whole parent/child error escalation thing 17:28
tbrowder ugexe: say i just keep master branch in ecosys and releases in cpan. what will zef install for "zef install My::Module"? 17:57
the master or the latest release on cpan? 17:58
raschipi tbrowder: to get from CPAN you need --cpan for now. 18:11
tbrowder hm, 18:12
thanks
ugexe well it depends, it'll take whichever is the highest version as stated in meta6.json - if its the same then it would take whichever it sees first (at the moment this is p6c ecosystem but only because its first in the config and doesn't search concurrently yet) 18:16
nine ugexe, jdv79: my PAUSE PR only changes the source-url in the _extracted_ .meta file. The tar ball remains untouched 18:49
nine Note though that PAUSE will repack your tar ball if the files in there are world writeable. Which is why META6.json detection was so easy to integrate. The tar ball inspection code was already there. 18:50
nine tbrowder: ^^ 18:54
tbrowder so does zef still need --cpan to look there? 19:19
hahainternet so the example i gave yesterday with 'token whatever { :i <@listoftokens> }' becomes a problem when you try and enable backtracking 19:22
i'm assuming that what's happening is that the token with a bunch of possibilities is always matching the first possible, so backtracking doesn't match alternatives
i assume the solution would be what i was considering yesterday, programmatically adding a bunch of tokens from the list rather than declaring a single token that's any list member 19:23
does this seem correct/dumb/reasonable/absurd etc?
nine tbrowder: yes. FAIK it's ugexe's plan to make that the default this weekend. 19:30
tbrowder great! 19:34
avuserow ] 19:36
Zoffix nine: ugexe: is the uploader running again then or will PSIXDIST experiment's dists will be excluded? Otherwise if --cpan is the default lots of people will be getting anicent versions of modules 19:47
Zoffix Feels like the second option is more prefereable, I've just downloaded www.cpan.org/authors/id/P/PS/PSIXDI...001.tar.gz is it's pretty messy... Has 2 META file, both with authority "zoffixznet", but one lists original version 1.001001, but the other lists the faked out version 0.001001 19:49
0.000.001 rather
And that's the only version is see listed in github.com/ugexe/Perl6-ecosystems/.../cpan.json 19:50
Meanwhile, the real latest version is 1.001003, with several bugs fixed: github.com/zoffixznet/perl6-Pasteb...A6.json#L5
Zoffix is a bit annoyed with PSIXDISTS 'cause that shit stays on backpan forever... 19:51
ugexe zef --debug --cpan install Pastebin::Gist # installs version 1.001003 for me 19:52
you have to do `zef --debug --cpan --/p6c --/cached install Pastebin::Gist` to get the crusty old version 19:53
Zoffix ah cool 19:55
ugexe and the PSIXDISTS experiment is why we were able to put the final pieces in place so quickly at PTS (because zef already had a large cpan repo of multiple versions it could be programmed to find in advance)
Zoffix m: say 0.000.001 before * 19:56
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed postfix call
at <tmp>:1
------> 3say 0.000.7⏏05001 before *
ugexe although we can simply stop indexing those dists when we have more than 3 dists
Zoffix m: say v0.000.001 before *
camelia { ... }
ugexe remove them entirely even
Zoffix m: say v0.000.001 before v*
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing required term after infix
at <tmp>:1
------> 3say v0.000.001 before v*7⏏5<EOL>
expecting any of:
prefix
term
Zoffix ugh
ugexe cpan doesn't have any version *
Zoffix ugexe, yes but if I make my module's version *, which will get installed? 19:57
ugexe we have to stop making modules version * 19:58
Zoffix In fact, PSIXDISTS breaks the license of all my modules in several points: it modified from orinal without specifying how it differs, and since modified version still bears the original name it interferes with installation of Standard Version were I to choose to use * as version 20:05
geekosaur not this again. why do people think it;s just fine to accept any random version of an api (or module version that inevitably will express an API)? 20:06
this is one of those "you claim to accept any version? fine, my api launches nethack"
perlpilot geekosaur: we always give people enough rope to hang themselves? 20:07
Zoffix haha :)
+1 on blacklisting * as version in Meta file 20:10
[Coke] +1 20:12
Zoffix (to add tone info for my above comment about licenses: I'm merely making an observation and I'm thankful of all the work done to move P6 to cpan) 20:14
moritz we shouldn't ban * as version until we make it really easy to create and publish releases of modules 20:19
with the current system of pushing stuff to github, you have to remember to change a version number for each commit, or you end up with multiple different versions with the same version number, which totally defeats the point of version numbers in the first place
or does that tooling exist, and I've simply missed it so far? 20:20
Zoffix moritz, except * doesn't meam "latest and greatest" but "but if you got any version installed, you're good"... so basically upgrading requires a --force and I'm guessing when --cpan becomes enabled by default, the ancient 0.000.001 PSIXDIST versions will be fetched instead of * 20:23
m: say v0.000.001 after Version.new(*) 20:24
camelia True
Zoffix yeah, looka like it'd be considered newer 20:25
Which makes sense, otherwise you use '*' once and you're screwed forever
Zoffix star: use JSON::Fast; LWP::Simple.new.get('ecosystem-api.p6c.org/projects.json...p({quietly .version eq '*'}).elems.say 20:28
camelia WARNINGS for <tmp>:
Useless use of "eq" in expression ".version eq '*'" in sink context (line 1)
Could not find symbol '&Simple'
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
Zoffix huh
star: use JSON::Fast; use LWP::Simple; LWP::Simple.new.get('ecosystem-api.p6c.org/projects.json...rsion//'') eq '*'}).elems.say 20:29
camelia No such method 'version' for invocant of type 'Hash'
in block <unit> at <tmp> line 1
Zoffix star: use JSON::Fast; use LWP::Simple; LWP::Simple.new.get('ecosystem-api.p6c.org/projects.json...n>//'') eq '*'}).elems.say
camelia 183
Zoffix yikes
ugexe I dont think cpan indexed * dists 22:03
I havent really checked though... just something I think I remember
er, I dont think PSIXDISTS uploaded dists with version * rather
ugexe moritz: App::Mi6 can handle all the authoring stuff to get a new version to cpan I believe 22:05
skaji implemented at pts
ugexe Zoffix: i can just remove all the PSIXDISTS from the index if its a problem 22:12
Zoffix I think the only potential problem are the 'version: "*"' dists.. and.. let's check 22:25
Zoffix star: use JSON::Fast; use LWP::Simple; say LWP::Simple.new.get('ecosystem-api.p6c.org/projects.json...n>//'') eq '*'})».<name>.head: 10 22:25
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
amp used at line 1. Did you mean 'map'?
Zoffix star: use JSON::Fast; use LWP::Simple; say LWP::Simple.new.get('ecosystem-api.p6c.org/projects.json...n>//'') eq '*'})».<name>.head: 10 22:26
camelia (JSON::Tiny Testing mandelbrot IO::Prompter Math::Polynomial Math::Vector Math::ContinuedFractions Math::ChebyshevPolynomial Math::OddFunctions Config::INI)
Zoffix &amp? oh heh. the log side appears to double-encode stuff that looks like a link
ugexe: yeah, the "*" are indexed, but the version is presereved in the metadata, so I think all that needs to be done is to grep out anything with version *, like this one: github.com/ugexe/Perl6-ecosystems/...2769-L2783 22:29
Zoffix .asl tadzik when are were you looking to merge the /problems/ branch on mp6o? I forsee we'll want to start adding CPAN integration to the site in some form or another and it would be nice to have your changes already in master I think. Merge :) 22:33
ASL tadzik! 22:34
.ask tadzik when are were you looking to merge the /problems/ branch on mp6o? I forsee we'll want to start adding CPAN integration to the site in some form or another and it would be nice to have your changes already in master I think. Merge :)
yoleaux Zoffix: I'll pass your message to tadzik.
tadzik Zoffix: yay :)
yoleaux 22:34Z <Zoffix> tadzik: when are were you looking to merge the /problems/ branch on mp6o? I forsee we'll want to start adding CPAN integration to the site in some form or another and it would be nice to have your changes already in master I think. Merge :)
AlexDaniel do we have any module for generating sha hashes? 23:13
BenGoldberg Of course we do.
What a silly question! 23:14
BenGoldberg thinks there's even an example on RosettaCode.
AlexDaniel which is …?
timotimo i've got Digest::SHA1::Native in use somewhere 23:16
AlexDaniel well, not SHA1 please
timotimo aha 23:17
BenGoldberg SHA1 was broken a few months ago, wasn't it? 23:18
AlexDaniel I know I can just run out, but :|
BenGoldberg: it was clearly broken even before that
just without any examples demonstrating it :)
timotimo you can generate two things that have the same hash now
Zoffix buggable: eco sha 23:19
buggable Zoffix, Found 7 results: Digest::PSHA1, JSON::Unmarshal, Pastebin::Shadowcat, LibraryCheck, JSON::Marshal. See modules.perl6.org/#q=sha
Zoffix heh
BenGoldberg There's libdigest-perl6 p6-digest-sha256, rosettacode.org/wiki/SHA-256#Perl_6
Zoffix yup modules.perl6.org/#q=sha 23:20
ugexe m: use nqp; say nqp::sha1("foo"); # cheat 23:21
camelia 0BEEC7B5EA3F0FDBC95D0DD47F3C5BC275DA8A33
AlexDaniel m: use nqp; say nqp::sha256("foo"); # cheat 23:22
camelia ===SORRY!===
No registered operation handler for 'sha256'
AlexDaniel :P
wait, what is this? github.com/grondilu/libdigest-perl6
AlexDaniel I can't see it in the module directory 23:22
BenGoldberg It's pure perl6, not a library binding, so it will be slow. 23:23
AlexDaniel I see it, but that's ok
AH
it's called just “Digest” 23:24
ok
AlexDaniel is blind
sammers hi #perl6 23:25
AlexDaniel t/sha.t .....1/2# expected: 'fbc1a9f858ea9e177916964bd88c3d37b91a1e84412765e29950777f265c4b75'
# got: 'd7d04233b3a8427b7798817eae45cb70c7c24cfcc6740c2b44fb7aa823662036'
awesome
.seen FROGGS 23:27
yoleaux I saw FROGGS 17 Jan 2017 21:11Z in #perl6: <FROGGS> dataf3l: to this: hg.dyncall.org/pub/dyncall/dyncall/...allf.c#l91
AlexDaniel .tell grondilu Some sha tests are failing when installing Digest, perhaps worth taking a look 23:28
yoleaux AlexDaniel: I'll pass your message to grondilu.
sammers thanks to whoever implemented samemark 23:40
AlexDaniel I agree 23:41