»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_log/perl6 | UTF-8 is our friend! 🦋
Set by Zoffix on 25 July 2018.
Garland_g[m] I'm about ready to release the first version of the module I've been calling "Libui" to CPAN. Would it be reasonable to take that slot in the top level namespace, given that it's a binding to a C library of the same name? 00:31
Zoffix Garland_g[m]: yeah 00:48
yoleaux 19 Sep 2018 20:51Z <tony-o> Zoffix: sure enough. it's used on modules.zef.pm and i could probably integrate it into zef with some work, it would be slow on large repos but at least the functionality would be there i suppose
Zoffix Garland_g[m]: in theory, you can't really "take" a slot, since multiple authors can use the same module name
(due to :auth<> qualifier on module names specifying whose module you want) 00:49
geekosaur hm, there's a question tough. can I use :as<>? 00:51
just in case I want two modules with the same name and different auth or potentially even version (think upgrade scripts, for one)? 00:52
Garland_g[m] Oh, that's cool. I didn't know about that. Thanks, Zoffix.
Zoffix No idea. I think it's a terrible idea anyway. It's trying to solve a headache (authors calling dibs on good names) by cutting off the head (making :auth<> specifier mandatory if you want proper module name, but no one specifies it anyway and users subject themselves to getting from module names) 00:53
*getting wrong modules with just module names 00:54
timotimo maybe someone has to put a fake JSON::Fast that plays rickroll into the ecosystem to "wake people up" to that :) 00:59
daemon waves at Zoffix long time no see :P 01:00
Zoffix doesn't recognize daemon 01:01
daemon walks back his corner
Zoffix Unless you were my boss like 10 years ago. eCreate web dev, eh? 01:01
daemon Zoffix, not boss, but a damn long time ago we was doing something might even be openprojects 01:01
or was it POE related 01:02
Zoffix doesn't remember
daemon god damn im going to have to dig out old logs
buggable New CPAN upload: Libui-0.0.1.tar.gz by GARLANDG cpan.metacpan.org/authors/id/G/GA/...0.1.tar.gz 03:34
El_Che .tell lizmat You have a comment on your second p5-6 article opensource.com/article/18/8/garbag...ion-perl-6 06:18
yoleaux El_Che: I'll pass your message to lizmat.
El_Che .tell lizmat And an error in the 3rd (p5: say @bar[1]) opensource.com/article/18/8/containers-perl-6 06:19
yoleaux El_Che: I'll pass your message to lizmat.
kensanata Is there a blog post somewhere detailing best practice regarding the use of directories? As I'm writing, I'm running into annoying errors again and again. "Died with the exception: Failed to get the directory contents of 'XXX': Failed to open dir: 2" There's no source file or line so I have to hunt for uses of XXX. Specially since I know it doesn't exist. 07:05
moritz kensanata: try adding a 'use fatal;' to your program 07:09
then the failure becomes an exception immediately
(it's lexically scoped, so you can limit its impact)
kensanata Cool, will try.
moritz no blog post for you though, sorry :-)
kensanata :) 07:14
Sadly, this didn't help me locate the error. Does anybody know how to print log statements from a Cro service? 07:17
hankache Hello #perl6 07:28
yoleaux 16 Sep 2018 15:34Z <b2gills> hankache: `abs` is specifically caught by the parser, and the `use isms;` disables the parser from catching it
hankache .seen b2gills
yoleaux I saw b2gills 16 Sep 2018 15:34Z in #perl6: <b2gills> .tell hankache `abs` is specifically caught by the parser, and the `use isms;` disables the parser from catching it
hankache .tell b2gills thanks mate. But shouldn't the parser catch all occurrences? Why did it only catch abs? 07:30
yoleaux hankache: I'll pass your message to b2gills.
ab5tract_ o/ #perl6 08:47
tyil \o
ab5tract_ lizmat: do you ever recall any discussion of an operator for the QuantHash types that will actually remove elements? 08:48
i'm working on the docs for the quanters but found this dichotomy a bit jarring:
m: my $available = <Harry Voldemort Horcrux Horcrux Horcrux>.Set; dd my @fillable-orders = <Owl Horcrux Wand>.grep: * ∈ $available; 08:49
camelia Array @fillable-orders = ["Horcrux"]
lizmat ab5tract_: .grab ? 08:50
ab5tract_ m: my $available = <Harry Voldemort Horcrux Horcrux Horcrux>.BagHash; dd my @fillable = <Horcrux Horcrux Horcrux Horcrux>.grep: { --$available{$_} };
camelia Array @fillable = ["Horcrux", "Horcrux"]
ab5tract_ ooo 08:51
nice. it could be interesting to offer that as in infix though :)
lizmat I think that would be module space, at least for now
ab5tract_ fair enough :) 08:52
hmm... .grab is not what i am looking for, unfortunately 08:53
lizmat then I'm not understanding the question
ab5tract_ i want something that takes one of the keys of the BagHash and decrements it.
jnthn -- ? :) 08:54
ab5tract_ a destructive (elem) check
jnthn: indeed, but that feels exactly like the lookup hash example that i am providing as a "look how primitive this used to be" example :P
s/feels/looks and feels/
it certainly doesn't have the feel of other quanter interactions 08:55
lizmat m: my $b = <a b b c c c>.BagHash; dd $b<a>--; dd $b<a>-- 08:56
camelia 1
0
lizmat ab5tract_: ^^ something like that ?
ab5tract_ well, yes, i'm aware of that.. it's fine, i just feel like this is a gap in the otherwise extensive list of operators that allow you to interact with quanters in declarative rather than procedural terms 08:58
it's really a nothing-burger, but one thing that does make it more cumbersome is that the infix set operators are super easy to WhateverCode, whereas the hash access form requires an explicit block (or else I'd love to be proven wrong :D) 08:59
jnthn Can't you do *<a>-- ?
ab5tract_ doh :) 09:00
jnthn m: my $b = <a b b c c c>.BagHash; dd (*<a>--)($b)
camelia 1
ab5tract_ no, that is taking the bag as an argument, not the key
jnthn Ah, OK
Geth doc: hankache++ created pull request #2319:
Add Pod::Defn & Pod::FormattingCode
09:13
lizmat m: sub circumfix:<(pull)>(\value,BagHash:D \b) { b{value}-- }; my $b = <a b b c c c>.BagHash; dd "a" (pull) $b; dd "a" (pull) $b 09:15
camelia 5===SORRY!5=== Error while compiling <tmp>
Not enough symbols provided for categorical of type circumfix; needs 2
at <tmp>:1
------> 3sub circumfix:<(pull)>7⏏5(\value,BagHash:D \b) { b{value}-- }; my
lizmat m: sub infix:<(pull)>(\value,BagHash:D \b) { b{value}-- }; my $b = <a b b c c c>.BagHash; dd "a" (pull) $b; dd "a" (pull) $b 09:16
camelia 1
0
lizmat ab5tract_: leaving it up to you to devise the unicode equivalent 09:16
ab5tract_ :D :D 09:17
ab5tract_ huggable: hug lizmat 09:17
huggable hugs lizmat
ab5tract_ :)
lizmat weekly: blogs.perl.org/users/lichtkind/2018...e-mmd.html 09:26
notable6 lizmat, Noted!
masak in a regex, is [\d+]? always equivalent to [\d*] ?
lizmat "" would match \d* would it not ? 09:28
jnthn It'd match [\d+]? too :) 09:29
masak aye
lizmat aaah I missed the ?
Geth doc: f917ffe813 | (Naoum Hankache)++ | 3 files
Add Pod::Defn & Pod::FormattingCode
09:30
doc: 3ee141e222 | (Naoum Hankache)++ (committed using GitHub Web editor) | 3 files
Merge pull request #2319 from hankache/master

Add Pod::Defn & Pod::FormattingCode
masak don't blame you -- my last ? was for the question itself :P
I put high demands on my readers
lizmat
.oO( significant whitespace )
jnthn One of the nice things about Perl 6 not using the ` char is that you can always easily quote Perl 6 code using it :P 09:31
masak jnthn: I thought the ` char was "reserved for slangs"
so if we ever get slangs, that benefit goes out the window...?
masak .oO( newsflash: it's 2019 and Perl 6 has used up the last character for actual syntax -- dire metasyntax shortage ) 09:32
I remember the first time I realized that the `...` yadda term was confusing because sometimes people used it as syntax and sometimes as metasyntax 09:33
also, when people write "..." they might refer to the ... or to the ""
jnthn If there's a slang involved, it's not Perl 6 any more, it's Perl 6 + something :) 09:34
masak look a no-true-Scotsman, on #perl6 no less! :D
jnthn Anyway, I can't think of a case where the two regex constructs would match a different thing.
masak no, it feels like an "algebraic law" 09:35
jnthn I mean, if you reduce it to the most basic definition of regular expressions - concat, alt, kleene star - then they both reduce to the same thing 09:37
masak yes, the + doesn't show up in sed and vi IIRC 09:38
masak .oO( Rakudo Kleene Star )
jnthn The ? doesn't show up in the formal def either, since a? is just (a|) :) 09:43
masak everything's sugar
jnthn Yup. So much sugar. :) 09:44
masak what's wrong with combinatorial calculus, really 09:45
masak .oO( gimme an I, gimme a K, gimme an S... ) 09:46
lizmat is reminded she once worked for a company called "IKSX Consultants" :-) 09:49
masak lizmat: nice! is there an X combinator? 09:50
I only know about the Y combinator :)
lizmat hehe
it stood for "Information Knowledge Skills Xfer"
masak rolls right off the tongue 09:51
fun historical fact: the Z metaop that we all know and love was once spelled "Y"
because Y looks like a zipper, ya know
jnthn And the Unicode spelling was the Yen, because it looks even more like one :P 09:52
El_Che lizmat: it looks like yoleaux didn't pass you my messages? 09:53
yoleaux 07:54Z <lizmat> El_Che: those pseky P6isms keep creeping in :-( alas, I cannot correct the artical afaik
lizmat it did, but not on this channel ?
masak .oO( trying to beat Ruby on its home turf ) :P 09:54
El_Che lizmat: your pelr 5 has a strong perl 6 accent nowadays :) 09:54
lizmat masak: in dutch it was pronounced "XX"
lizmat El_Che: yeah, :-( 09:55
masak lizmat: d'oh! of course :) 09:57
buggable New CPAN upload: Image-Libexif-0.1.0.tar.gz by FRITH modules.perl6.org/dist/Image::Libexif:cpan:FRITH 10:04
pmurias Zoffix: re "taking" a slot isn't the unqualified author-less a singular resource? 10:36
Zoffix pmurias: how is the decision on which module to load is made? 10:51
pmurias: I don't understand your question actually. What do you mean "singular resource"? 10:53
pmurias: nothing's stopping me from uploading JSON::Fast module with auth<zoffix>, despite there already being a JSON::Fast with whatever auth timo used (I don't even know what it is). I can guarantee all the numerous users of timo's module have just `use JSON::Fast` in their code, so now their code is ambiguous. Which JSON::Fast is it meant to load? Timo's or mine (oh and as a bonus, mine parses the JSON but 10:55
also has an exploit in it)
And people might notice it now that something fishy went in, but when we'll have thousands upon thousands of packages, I foresee many rogue Leftpads uploaded to pose as legit modules, but with the wrong auth. 10:56
I'm +2 on ditching the :auth :) 10:57
pmurias Zoffix: what I meant that what a unqualified JSON::Fast resolves to can't change when someone else upload an unrelated or nefarious modules 11:06
pmurias s/that/is that/ 11:06
Zoffix pmurias: what are the rules for what it resolves to? 11:07
pmurias Zoffix: you mean current ones or ones that should be? 11:08
Zoffix pmurias: either
pmurias: I don't see how it's possible at all. How would zef know that I meant one JSON::Fast and not the other when I write JSON::Fast only?
pmurias Zoffix: we could have a name registry 11:10
Zoffix It's like calling to a company and asking to speak to "Dave". If there's more than one Dave in the company, how could they possibly know which one you meant?
pmurias: what's that?
pmurias a mapping from JSON::Fast to the "official" JSON::Fast 11:10
Zoffix pmurias: and who's going to maintain it for all the modules? Forget JSON::Fast, how about Leftpad from Joe::NoOneHeardOf 11:11
pmurias: also, that would mean anyone else releasing a JSON::Fast now absolutely MUST use :auth to load it, which completely defeats the original purpose of allowing multiple authors to lay claim to a module name 11:12
So now: we lost most of the benefit from the :auth feature AND we have volunteers trying to keep up with maintaining a "name registry". 11:13
pmurias Zoffix: re everyone else MUST use :auth, it's impossible to avoid that
Zoffix: the "name registry" could work automatically on first come basis 11:14
Zoffix: in npm you can release your own @Zoffix/leftpad but the leftpad name is already taken
Zoffix: there where proposal that a user installing a modules would choose which JSON::Fast module he wants (like in linux distros) 11:15
but that scheme is simply not acceptable at all
Zoffix pmurias: "everyone else MUST use :auth, it's impossible to avoid that" yeah, so why not get rid of it? 11:16
pmurias: what benefit does :auth give, if we still have first-come-dibs for names and everyone else must specify extra qualifiers that are effectively a new name? 11:17
I may as well name my module JSON::Fasterish instead of having to tell everyone they must have JSON::Fast:auth<zoffix> on their uselines all the time 11:18
Zoffix Hell, naming it even JSON::Fast::Zoffix makes more sense than the :auth, since now I won't have to explain to people they must use :auth to get the right module 11:20
pmurias Zoffix: I don't have a super strong opinion about the details, I just share a sentiments that two modules can't both equally share a name 11:22
s/a sentiments/the sentiment
Zoffix: I think one of the motivations behind the :auth scheme is that we could have multiple name registries 11:24
Zoffix I see
pmurias so that JSON::Fast from CPAN would be on thing and a JSON::Fast from Zoffixpan could be something else
Zoffix eyes sub infix:<(pull)> 11:26
Is that going to core? 11:27
Kinda inconsistent that we have .push method but no .pull method, yet (pull) operator, but no (push) operator.
lizmat Zoffix: no, (pull) was just shown by me as an indication how easy it was to make such a thing in module space 11:30
Zoffix Ah, k
pmurias is relived that a (pull) operators is not going into core ;) 11:31
* operator
lizmat m: sub infix:<(push)>(\value,BagHash:D \bag) { ++bag{value} }; my $b = <a b b c c c>.BagHash; dd "d" (push) %=$b; dd $b 11:32
camelia Type check failed in binding to parameter 'bag'; expected BagHash but got Hash (${})
in sub infix:<(push)> at <tmp> line 1
in block <unit> at <tmp> line 1
lizmat m: sub infix:<(push)>(\value,BagHash:D \bag) { ++bag{value} }; my $b = <a b b c c c>.BagHash; dd "d" (push) $b; dd $b
camelia 1
BagHash $b = ("a"=>1,"c"=>3,"d"=>1,"b"=>2).BagHash
lizmat Zoffix: did you eye github.com/ugexe/zef/issues/273 as well ? 11:36
Zoffix lizmat: I saw it in the log. lizmat++ for dropping 2.2 to 0.3s, but I have no other opinions on it :) 12:01
Zoffix m: 'ab' ~~ m:g/./; dd %(); 12:21
camelia Hash % = {:a(Match.new(hash => Map.new(()), orig => "ab", made => Any, from => 1, list => (), pos => 2))}
Zoffix Is this stuff documented somewhere?
(I mean specifically on docs.perl6.org) 12:22
Zoffix So what happened to better sorting on docs/Language? I've seen miles of bikeshedding, but looks like nothing actually got done. 12:36
Found the magiks documented on docs.perl6.org/syntax/$$SOLIDUS 12:39
moritz FTR docs.perl6.org/language/variables also docs.perl6.org/language/variables mentions %() 13:02
Geth doc: f55804fc62 | (Zoffix Znet)++ | doc/Language/variables.pod6
[6.d] Document $()/@()/%() are no longer magical in 6.d

Per 6.d-prep: github.com/perl6/6.d-prep/blob/dff...from--and- Propspec: github.com/perl6/roast/commit/79e86e5f14 POV: github.com/rakudo/rakudo/commit/bb88a0324e
13:04
synopsebot Link: doc.perl6.org/language/variables
Geth doc: 212687526d | (Zoffix Znet)++ | doc/Language/variables.pod6
Document extra magic of $() 6.c shortcut

It doesn't just stringify, but actually checks .ast value first and returns it if it's truthy or stringifies match object if not.
13:21
synopsebot Link: doc.perl6.org/language/variables
[Coke] dd 14:02
ww 14:05
leont Does that mean $() is gone in 6.d? 14:07
jnthn Yes 14:11
ccc On the Perl 6 doc website, I was searching for something, clicked on one of the choices and got a 404 error. The 404 page asked me to please report it. So I go to github.com/perl6/doc/issues/new to do so and the "Submit new issue" button is inactive. 14:23
vrurg ccc: Did you fill in the title? 14:24
[Coke] you have to type in a title.
ccc Ah - no let me try that
[Coke] vrurg++
ccc Thanks vrurg 14:25
vrurg Welcome!
buggable New CPAN upload: JSON-Schema-0.8.tar.gz by JNTHN cpan.metacpan.org/authors/id/J/JN/...0.8.tar.gz 14:32
Geth doc: 1521c9f7c0 | (Will "Coke" Coleda)++ | doc/Language/variables.pod6
allow sample code to compile
14:32
synopsebot Link: doc.perl6.org/language/variables
Zoffix leont: to unpack the umbiguity: In 6.c literally `$()` has special meaning doing magic stuff with `$/`. THAT part is gone in 6.d, and `$()` means the same thing as `$( )`, i.e. a containerized list. The $(@foo) and all other permutations aren't affected 14:48
m: 'test' ~~ /.../; say $(); $/.make: 'McTesty'; say $() 14:49
camelia tes
McTesty
Zoffix m: use v6.d.PREVIEW; 'test' ~~ /.../; say $(); $/.make: 'McTesty'; say $()
camelia ()
()
Zoffix uhh
Ah, it's `say`, not `dd`
m: use v6.d.PREVIEW; 'test' ~~ /.../; dd $(); $/.make: 'McTesty'; dd $()
camelia $( )
$( )
ccc m:sub foo(**@a) {say @a.elems}; foo((1, 2), (3,4,5)) 15:25
evalable6 2
ccc m:sub foo(*@a) {say @a.elems}; foo((1, 2), (3,4,5))
evalable6 5
SmokeMachine is `.race.reduce` sequencial? couldn't it be parallel? 15:27
jnthn Yes, it could, just hasn't been yet 15:28
SmokeMachine jnthn: thanks for the reply 15:29
jnthn: how should it work? `^6 .hyper.reduce: {$^a + $^b}` should it do the following operations in parallel (if :1batch)? `0 + 1`, `2 + 3`, `4 + 5`, `1 + 5`, `6 + 9`? 15:32
returning 15? 15:33
^6 .hyper(:1batch).reduce: {$^a + $^b} 15:35
Geth ¦ ecosystem-unbitrot: CurtTilmes self-assigned Math::Primesieve github.com/perl6/ecosystem-unbitrot/issues/137
Ulti you'd then have to keep dispatching reduces on those results 15:38
Ulti isnt a tree of promises of calling the function on batch size basically what you need? 15:40
SmokeMachine Util: do you mean how to implement it on reduce? 15:45
Ulti yeah 15:46
SmokeMachine Ulti: yes, I was thinking something like that too... 15:47
SmokeMachine Util: maybe it could be `.elems / 2` maps (like this `.map(-> $a, $b { reduce-func($a, $b) })`)chained... 16:02
`^6 .hyper.reduce: -> $a, $b {$a + $b}` be equivalent to: `my &reduce-func = -> $a, $b { $a + $b }; ^6 .hyper.map(&reduce-func).map(&reduce-func).iterator.pull-one` 16:04
m: my &reduce-func = -> $a, $b { $a + $b }; ^6 .hyper.map(&reduce-func).map(&reduce-func).first
camelia A worker in a parallel iteration (hyper or race) initiated here:
in block <unit> at <tmp> line 1

Died at:
Too few positionals passed; expected 2 arguments but got 1
in block at <tmp> line 1
SmokeMachine m: my &reduce-func = -> $a, $b = 0 { $a + $b }; ^6 .hyper.map(&reduce-func).map(&reduce-func).first 16:05
camelia ( no output )
SmokeMachine m: my &reduce-func = -> $a, $b = 0 { $a + $b }; say ^6 .hyper.map(&reduce-func).map(&reduce-func).first
camelia 6
SmokeMachine :(
m: my &reduce-func = -> $a, $b = 0 { $a + $b }; say ^6 .hyper.map(&reduce-func).map(&reduce-func).map(&reduce-func).first 16:06
camelia 15
SmokeMachine does that make sense? 16:07
timotimo not all reduce functions are commutable, though?
sena_kun m: class A { has $.a; has $.b; }; my @a = a => 1, b => 2; A.new(|@a); 16:08
camelia Default constructor for 'A' only takes named arguments
in block <unit> at <tmp> line 1
timotimo commutative*
sena_kun is that a dead end ^?
timotimo no
m: class A { has $.a; has $.b; }; my @a = a => 1, b => 2; A.new(|%@a)
camelia ( no output )
timotimo m: class A { has $.a; has $.b; }; my @a = a => 1, b => 2; A.new(|%@a).perl.say
camelia A.new(a => 1, b => 2)
sena_kun oh. thanks!
timotimo no problem :)
SmokeMachine timotimo: you are probably right but I can't think right now on a example... 16:09
timotimo m: say (1 ** 2 ** 3) ** (4 ** 5 ** 6)
camelia 1
timotimo %)
of course
m: say (2 ** 2 ** 2) ** (2 ** 2 ** 2) 16:10
camelia 18446744073709551616
SmokeMachine sure
timotimo m: say (2 ** 2 ** 2 ** 2 ** 2 ** 2)
camelia Numeric overflow
in block <unit> at <tmp> line 1
SmokeMachine `/` too
timotimo not that that's something you'd sensibly want to reduce in parallel i suppose
m: say (2 ** 1.0001 ** 1.0001 ** 1.0001 ** 1.0001 ** 1.0001)
camelia 2.000138648106738
timotimo m: say (2 ** 1.0001 ** 1.0001) ** (1.0001 ** 1.0001 ** 1.0001)
camelia 2.000277319691376
SmokeMachine timotimo: but how could be made a parallel reduce with a non commutative function? 16:11
timotimo by being very very smart on a case-by-case basis? dunno :| 16:14
jnthn SmokeMachine: With .hyper it can't, only .race, since .hyper implies that order matters. I think it'd be useless if :1batch perhaps; the idea would be to reduce each batch, and then reduce the results of those.
timotimo oh, if you .race you're already specifying the order doesn't matter to you
cool trick
jnthn By using .race you are promising that it's commutative.
AlexDaniel mst: some of my bots got k-lined, what should I do? 16:17
SmokeMachine jnthn: do you think the "chain of maps method" would work? 16:18
ccc multi sub infix:<c>(Str $a, Str $b --> Str) {$a ~ $b}; say 'foo' c 'bar'; 16:19
evalable6 foobar
jnthn SmokeMachine: There's already a bunch of infrastructure in place for breaking up work; that should be used 16:20
SmokeMachine: Effectively, it's differnet kinds of batch workers that fork/process/join 16:21
SmokeMachine jnthn: but isn't it being used by map? 16:21
jnthn Yes, this is the mechanism used to implement hyper/race map and grep 16:22
SmokeMachine jnthn: using map to implement reduce wouldn't use that? I am missing something... 16:23
jnthn I think it'd need to be used directly to get it right
timotimo yeah, if you do it with map, it'll be called once per item, rather than once per batch
jnthn Since at the .map level the concept of batch doesn't exist
mst AlexDaniel: oh? 16:25
hm
AlexDaniel it could be an issue with some bot (maybe it spammed hard for some reason), but I'm not sure 16:26
mst I'm seeing them k-lined but no kill/whatever
mst pokes 16:27
SmokeMachine jnthn: ok... thanks 16:29
mst AlexDaniel: I see a bunch of them ping timeouting then them all showing as k-lined without anything that looks like them triggering spam checks
AlexDaniel mst: could it be because they were trying to rejoin at the same time? 16:30
SmokeMachine timotimo: but wouldn't it process batched? once its the `race.map`...
mst AlexDaniel: it *could* but that seems strange, hence my trying to track stuff down
timotimo because map runs on items, not on batches :)
SmokeMachine Ill study it better... thanks!
timotimo that's the API that map has
m: (1, 2, 3, 4).map(*.say); (1, 2, 3, 4).race(:1batch).map(*.say) 16:31
camelia 1
2
3
4
1
2
3
4
timotimo m: (1, 2, 3, 4).map(*.say); (1, 2, 3, 4).race(:2batch).map(*.say)
camelia 1
2
3
4
1
2
3
4
timotimo if map after a .hyper or .race had batch-based semantics, those two outputs would be different 16:32
Xliff m: my &reduce-func = -> $a, $b = 0 { $a + $b }; say ^6 .hyper.map(&reduce-func).map(&reduce-func).map(&reduce-func).first 16:52
camelia 15
Xliff m: my &reduce-func = -> $a, $b = 0 { $a + $b }; say ^6 .hyper.map(&reduce-func)
camelia (1 5 9)
Xliff m: my &reduce-func = -> $a, $b = 0 { $a + $b }; say ^6 .hyper.map(&reduce-func).map(&reduce-func) 16:52
camelia (6 9)
Xliff m: my &reduce-func = -> $a, $b = 0 { $a + $b }; say ^6 .hyper.map(&reduce-func).map(&reduce-func).map(&reduce-func) 16:53
camelia (15)
Xliff m: say ^6 16:53
camelia ^6
Xliff m: say (^6)
camelia ^6
Xliff m: say (^6).eager
camelia (0 1 2 3 4 5)
TimToady m: say (^6).list 17:00
camelia (0 1 2 3 4 5)
TimToady it's just the listiness, not the eagerness :)
tobs .oO(so a Range is listless) 17:15
ccc When there is an ascii equivalent to a unicode operator is that done with an alias of some kind or with 2 definitions with same name? 17:17
s/different/same/
vice versa 17:18
So I want to define an infix operator of my own and there's a nice unicode symbol for it, but I also want to provide a version easier to type 17:19
ccc So sub infix:<⊛>(...) {...} ; then sub infix:<c*>(...){...} ? 17:20
timotimo my &infix:<⊛> = &infix:<c*>; 17:21
ccc And our &infix:<⊛> = &infix:<c*>; if we want our users to see it? 17:22
timotimo and "is export" if it should be exported like the sub 17:23
ccc got it; thanks
kensanata I'm a bit confused about making my module ready for CPAN. My code is here: alexschroeder.ch/cgit/oddmuse6/tree/ and my idea was that I'd test this by saying "zef install ./Oddmuse" (with lib being below that). That doesn't quite work, however. zef test works but zef install fails because it can't find Oddmuse::View. What am I missing? 18:00
Complete output here: alexschroeder.ch/wiki/Comments_on_..._Review%3f 18:01
timotimo you don't seem to have a META6.json
kensanata timotimo: It's in the directory below that, together with lib/, t/, and all that. 18:02
timotimo: Perhaps I'm calling zef in the wrong dir?
timotimo oh, huh, ok
your provides section isn't right :)
you wouldn't have a .pm6 in the key part, and you don't have Oddmuse::View in the provides section either
kensanata timotimo: Hm. I'm expecting people using the module to just use Oddmuse::Routes and the rest to be "internal" stuff. Should I still list them all? 18:03
timotimo yes, otherwise you can't "use" them in your own module 18:04
kensanata Ah, interesting. OK, adding them all. 18:05
I'm getting the feeling that eventually I'll need some sort of script to assemble META6.json. :) 18:06
timotimo there are tools that handle that, and Comma will also deal with it for you :)
kensanata Hm. I'm too new to this. 18:07
timotimo though i'm not entirely sure if Comma has something for the resources section already or not 18:08
kensanata timotimo: Yay, zef install worked. Thanks! 18:21
Too bad Test::META didn't tell me about this, actually. 18:23
AlexDaniel timotimo: I don't think that it's a wonderful idea to recommend a non-free tool left and right like that 18:33
AlexDaniel “We did not yet decide on a strategy with regards to a release of Comma itself under an open source license” 18:36
hurry up then ;)
mst AlexDaniel: I've had the bots exempted, should sort itself out 18:38
AlexDaniel: tell me if it happens again
AlexDaniel mst: thank you!
ccc zef search take a perl6 regex argument ? 18:52
ccc hmm doesn't look like it 18:56
unless there's an undocumented flag 18:57
or option
Geth doc: 44ac0f916d | (Zoffix Znet)++ | doc/Type/Signature.pod6
[6.d] Document DefiniteHOW's new default defaults

Per 6.d-prep: github.com/perl6/6.d-prep/blob/dff...rmal-types POV: github.com/rakudo/rakudo/commit/38b198c992 Propspec: github.com/perl6/roast/commit/8c8e8f55bb
19:03
synopsebot Link: doc.perl6.org/type/Signature
timotimo AlexDaniel: OK, i'll not push comma as much in the future 19:17
jnthn AlexDaniel: What's your problem? TIMTOWTDI applies to licensing models too. If you personally choose to only use free/open source things, that's fine. Saying something should not be mentioned as an option because you wouldn't personally use it is unreasonable. 19:27
Zoffix timotimo: meh, do push it. It's an IDE designed for Perl 6. Not mentioning it is lame. 19:29
AlexDaniel if it doesn't even provide anything for that issue, why was it mentioned at all… non-free or not 19:30
[Coke] +1 for mentioning it.
jnthn AlexDaniel: The comment was about needing something to maintain META6.json, and Comma *does* automatically maintain the `provides` section for you. 19:31
jnthn I figure some of the other module authoring support tools (mi6? App::Assixt?) also do 19:33
Yes, the latter certainly does help with that. 19:34
lichtkind tyil: ping 19:42
tyil lichtkind: pong 19:43
AlexDaniel no, do not “push” it. There are many people who will feel uncomfortable with that. Also you can visit kensanata's blog for some bonus thougths on free software :) 19:48
lichtkind tyil can you see privat chats on irc? 19:49
tyil I can, but freenode sets +R by default these days
so I have not received your private messages if you sent any 19:50
(+R ignores private messages from unregistered people)
lichtkind tyil that explains it
tyil I unset it for now :>
jnthn AlexDaniel: I saw a mention, not a push. Just like I just mentioned App::Assixt up there.
AlexDaniel jnthn: that was a response to “do push it”
mst thinks "it's worth mentioning it, but probably also nearest OSS equivalents 19:52
AlexDaniel jnthn: but IMO instead of arguing how a non-free tool is an acceptable thing, maybe that energy should be spent on clarifying the strategy. Because if it's open-source then no need to discuss that thing at all.
jnthn AlexDaniel: Yes, I'd tend to agree pushing anything - including the view that all software must be open source - is not really helpful. :) 19:53
mst: Indeed. I even went and found some to mention. :)
[Coke] AlexDaniel: I have plenty of history working with open source, and commercial products. if there's a commercial product that is useful for a thing, I have no issues supporting it.
(and if supporting it here is mentioning it in the context of an OS project, again, don't have an issue) 19:54
jnthn++
jnthn goes back to his cooking for a bit 19:56
AlexDaniel jnthn: that's incorrect though, some things are worth pushing of course 19:57
mst AlexDaniel: hostility to commercial software doesn't seem like a net win from the POV of creating a sustainable ecosystem.
AlexDaniel mst: the issue is not about the thing being commercial or not 19:59
timotimo i'm always oto late, but it's still mildly cathartic 22:09
mst timotimo: MUHAHAHAHAHAHAHA 22:09
timotimo sigyn will do it for us? 22:10
geekosaur sigynificant improvement? 22:12
timotimo yeah, that's better 22:36
mst timotimo: if she eats a bot you can do '/msg sigyn unkline <botname>' if you're quick enough 22:55
(I forget how quick you have to be)
if that doesn't work, poke me
timotimo how quick do i have to be, and how do i know whether i did it right? 22:56
mst (1) I forget, (2) you'll get a message back saying if she un-k-lined or not 22:57
timotimo OK :)
mst ten minutes is definitely fine, two hours probably too late, I don't know if it's a time limit or a rolling buffer or what though
I'm actually pretty bad at freenode's staff toolkit, I tend to get deployed when the problem is liveware 22:58
timotimo OK
mst also if I notice what looks like a bad kill the unkline just requires you to be +o when you send the /msg 22:59
so I can op up and do it
but I've got enough channels where I get to see the spam
timotimo i didn't see any spam in #moarvm in the last time! (also i don't have +o there, so that's pretty obviously a possible cause for that) 23:01
mst timotimo: yes, we're using +mz so you only see unvoiced users if +o 23:04
hence why you can see the spam here, I can see it there, and sigyn can see and act upon it in both
timotimo right 23:06
geekosaur 15m according to my notes 23:10
timotimo thank you geekosaur 23:11
geekosaur and having done it once, you do get a confirmation message 23:12
timotimo cool 23:14
timotimo there is not, however, you can pass around Capture objects 23:27
probably lib/experiemntal.pm 23:32