»ö« 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.
lucasb some builtins use "proto f($)", and this emits this error with Mu 00:00
m: quielty say Mu.Numeric # I can't call this
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
quielty used at line 1
lucasb m: quietly say Mu.Numeric # I *can* call this 00:01
camelia 0
lucasb m: +Mu # but can't call this
camelia WARNINGS for <tmp>:
Useless use of "+" in expression "+Mu" in sink context (line 1)
Type check failed in binding to parameter '<anon>'; expected Any but got Mu (Mu)
in block <unit> at <tmp> line 1
lucasb My point is... if builtin protos used the signature "proto foo(Mu) {*}", then one would get the nice message "Cannot resolve..." 00:03
but since it uses "proto foo($) {*}", the ugly error "Type check failed in binding to parameter" happens 00:04
geekosaur do note that Mu has slightly special semantics there 00:05
MasterDuke i think using Mu would throw things off with juctions
geekosaur ^
basically if you explciitly declare something as Mu then ti suppresses autothreading junctions
lucasb ah, right, I was expecting Junction interaction trouble 00:06
timotimo i would say it the other way around
MasterDuke m: multi f($a) { say $a }; f("a"|"b")
camelia a
b
MasterDuke m: multi f(Mu $a) { say $a }; f("a"|"b") 00:06
camelia any(a, b)
timotimo the fact that everything takes Any by default, not Mu, means that we get autothreading when binding fails because a non-Mu-or-Junction typed argument is responsible for bind failure 00:07
well, parameters
geekosaur yeh, but that's not the useful version when talking about Mu for general typechecking purposes 00:08
i.e. to get a better error message 00:09
lucasb m: proto f(|) {}; multi f($x) { say "<$x>" }; f(1|2|3) 00:15
camelia ( no output )
lucasb m: proto f(|) {*}; multi f($x) { say "<$x>" }; f(1|2|3) # ok, gets autothreading
camelia <1>
<2>
<3>
lucasb m: proto f(|) {*}; multi f($x) { say "<$x>" }; f(Mu) # and also gets nice "Cannot resolve..." message 00:16
camelia Cannot resolve caller f(Mu); none of these signatures match:
($x)
in block <unit> at <tmp> line 1
MasterDuke thundergnat: fyi, i'm pretty sure you don't need the .Str's on the numbers in Rational.Str 00:17
m: use nqp; my int $a = 12342334423; my $b; for ^100_000 { $b = nqp::chars($a.Str) }; say $b; say now - INIT now 00:18
camelia 11
0.682129
MasterDuke m: use nqp; my int $a = 12342334423; my $b; for ^100_000 { $b = nqp::chars($a) }; say $b; say now - INIT now
camelia 11
0.04109253
thundergnat MasterDuke: You may be right, I just followed syntax I saw elsewhere as I have no clue what I am g=doing when it comes to nqp 00:19
And it looks like it may be worthwhile dropping it.
MasterDuke i think i'm to blame. pretty sure i gave you a thrown-together example that had that 00:20
thundergnat I'll fix the pull request. 00:21
lucasb quietly say (Mu ~ Mu).perl # "" 00:21
quietly say (Mu + Mu).perl # Type check failed in binding to parameter
evalable6 ""
lucasb proto sub infix:<~>(|) {*} 00:22
proto sub infix:<+>($?, $?) is pure {*}
lucasb ^^ the protos overly specify their arguments, that's why infix:<~> is more permissive than infix:<+>, right? 00:23
so my concrete question is: shouldn't builtin multis have more relaxed proto signatures?
s/multis/protos/ 00:24
thundergnat MasterDuke: Hmm. If I remove the .Str in the nqp::chars() ops, I get test failures. Won't even pass sanity tests, let alone spec tests. 00:40
MasterDuke huh
thundergnat I put them back in and it passes again. Looks like they might be necessary. 00:41
thundergnat Probably because I can't guarantee that the numbers will be ints, in fact it is likely that they could be Ints so I can't constrain them. 00:43
MasterDuke heh, was just thinking the same thing
lookatme :) morning
MasterDuke thundergnat: what about using a prefix ~ ? 00:44
thundergnat I'll give it a try.
MasterDuke thundergnat: so far the only i've found faster than .Str is `nqp::tostr_I(nqp::decont($a))`, and that only by a tiny bit 00:55
which is pretty much what Int.Str is anyway 00:56
thundergnat I got a little sidetracked, I was setting up some testing scripts and found some Rat that aren't returning strings I expected. I trying to figure out if my parameters are wrong or my expectations. 00:57
Long story short: don't merge that PR yet... 00:58
lookatme Hi 01:54
raschipi hello 01:59
lookatme If I have a C function like this `void write_arg(int *arg) { }`, how do we create a Pointer point to something of Perl 6 02:00
I just know this way ` my $a := CArray[int32].new; $a[0] = 1; my $arg = nativecast(Pointer[int32], $a)` 02:02
wonder if there has any other convenient way to do it ?
raschipi No idea, sory, never used it. You should try stackoverflow.com, people usually answer very quick there. 02:03
lookatme m: use NativeCall; my $a := CArray[int32].new; $a[0] = 1; my $arg = nativecast(Pointer[int32], $a); dd $arg;
camelia NativeCall::Types::Pointer[int32] $arg = NativeCall::Types::Pointer[int32].new(98213776)
lookatme I think this question is `quick` enough :-)
lookatme and .. seems like I forget my SO account and password :( 02:07
ktown Zoffix: nice plate I will watch for you on the QEW 03:09
Geth doc: cb8229ba6e | (brian d foy)++ (committed using GitHub Web editor) | doc/Type/Str.pod6
Fix a pod directive in .comb
05:06
synopsebot Link: doc.perl6.org/type/Str
doc: 98ed216de3 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | doc/Type/Str.pod6
Merge pull request #2029 from briandfoy/patch-1

Fix a pod directive in .comb Thanks!
lindylex Hello all. I am trying to pass a value to a methid of a class and not sure why it is not working pastebin.com/NuigWFdd 05:10
moritz lindylex: :$myValue declares a named parameter, so you have pass it as myValue => 42 05:12
lindylex: if you don't want it to be named, remove the leading :
moritz DoComputations.addValue( :myValue(12) ) 05:12
or
DoComputations.addValue: :myValue(12);
or
DoComputations.addValue: myValue => 12 05:13
lindylex ok one sec let me see if I get what you are saying. I do not want it as a named. That was my initial plan.
moritz then method addValue($myValue) { ... } 05:16
and
DoComputations.addValue(42)
lindylex I get this as the error : pastebin.com/X4ACdyth 05:16
moritz : thanks I got it to work. I though I did this at first. 05:17
It look liked the way I have done it in other languages but for some reason I could not see the error. Thanks the way you shared work. As I said I though I tried that first. 05:18
moritz my pleasure 05:54
jmerelo moritz: we have stackoverflow-synchronized :-) 05:59
Geth doc: ecfcf1d8dc | (JJ Merelo)++ | doc/Language/objects.pod6
Adds the transitive property to ^roles

Seen in stackoverflow.com/questions/504021...-type-does
06:00
synopsebot Link: doc.perl6.org/language/objects
El_Che do lines on errors refering the the hashed names of precompiled libs, mean something? 06:23
===> Installing: Linenoise:ver<0.1.1>:auth<Rob Hoelz>
Use of Nil in string context 06:24
in block at home#sources/0BDF8C54D33921FEA066491D8D13C96A7CB144B9 (Linenoise) line 15
If I want to debug the error, do I know on which pm to look and what line?
El_Che and if the errors is someone elses, the is no way to have a look in my own installation, I guess? :( 06:25
El_Che I hope perl6 is one day fast enough that it doesn't need that indirection 06:26
perlawhirl El_Che: You can look for the file by that name. Alternatively, just look at the source of Linenoise.pm6 on github and check line 15 07:19
which is: my constant LIBLINENOISE = %?RESOURCES<libraries/linenoise>.Str;
i'm guessing it can't find the linenoise lib on your machine?
perlawhirl tbh, if you're installing it for the REPL, use Readline if possible, as it has better unicode support 07:22
isBEKaml OHHAI, is there a rakudo build failure at the moment? I find that I cannot build rakudo on HEAD over some failure in CORE.setting 07:52
Stage mast : Arg count 0 doesn't equal required operand count 1 for op 'getrusage'
Is this known?
jmerelo isBEKaml: environment and versions? 07:54
isBEKaml: it's probably better anyway if you file a rakudo issue... 07:55
isBEKaml jmerelo: Thanks, the build was on the latest HEAD on rakudo git 08:45
git rev-parse HEAD
4fca9474362f3362603ea79dd35fa0c7d3a1ef8d
uname gives me this: Linux azazel 4.4.118 #2 SMP Sun Feb 25 14:30:46 CST 2018 x86_64 Intel(R) Core(TM) i3 CPU M 380 @ 2.53GHz GenuineIntel GNU/Linux 08:46
isBEKaml It's probably something else if you have travis CI nightly builds working fine - Will look into it some more before filing a bug 08:46
Geth doc/master: 7 commits pushed by (Luca Ferrari)++ 10:22
MasterDuke_ isBEKaml: that commit is from october 2017, which is right around when the default branch was switched from nom to master 10:45
isBEKaml MasterDuke_: perfect, thanks for that. I totally missed that the branch was switched over and was still on nom 11:04
MasterDuke_ np 11:07
El_Che perlawhirl: yes, both Linenoise and Readline are broken on recent distros. I filed a bug report on both (and create an installeble fork for Readline that installs on dists using readline 7) 11:25
(1 line pathc)
Geth doc: 98449d0c5e | (Elizabeth Mattijsen)++ | doc/Language/5to6-nutshell.pod6
Mention Slang::Tuxic if you want foo ("bar") to work
11:52
synopsebot Link: doc.perl6.org/language/5to6-nutshell
robertle does anyone have a quality example of a module documented by pod6? 11:54
Geth doc: 1d80fac5e8 | (Elizabeth Mattijsen)++ | doc/Language/5to6-nutshell.pod6
Spaces *are* allowed around infix:<.> nowadays
11:57
buggable New CPAN upload: P5ref-0.0.4.tar.gz by ELIZABETH modules.perl6.org/dist/P5ref:cpan:ELIZABETH 12:42
robertle wq 12:43
jkramer Is there a way to create a range with whatever like this, but working: 14:34
m: my @foo = <foo bar baz>; say @foo.keys.map(*..@foo.elems)
camelia Cannot resolve caller map(Seq: Range); none of these signatures match:
($: Hash \h, *%_)
(\SELF: &block;; :$label, :$item, *%_)
in block <unit> at <tmp> line 1
jkramer So it does this, just with whatever: 14:35
m: my @foo = <foo bar baz>; say @foo.keys.map({$_..@foo.elems})
camelia (0..3 1..3 2..3)
Herby_ o/ 14:36
Zoffix jkramer: when whatever star is a term on it's own, it's just a Whatever object, not a closure. 14:40
So you're simply creating a Range object there, with Whatever as the starting end point 14:41
m: my @foo = <foo bar baz>; say @foo.keys.map: *.self .. +@foo
camelia (0..3 1..3 2..3)
Zoffix And here, you get a closure, 'cause it's not a term by itself.
AFAIK the ops that get curried over and those that aren't aren't documented yet. It's D#2017 14:42
synopsebot D#2017 [open]: github.com/perl6/doc/issues/2017 [docs] Docs on Whatever curry could be clearer / don't cover everything
jkramer Zoffix: Ah, thanks!
Zoffix m: my @foo = <foo bar baz>; say @foo.keys.map: +* .. +@foo # shorter
camelia (0..3 1..3 2..3)
jkramer Oh even better :) 14:43
Zoffix m: my @foo = <foo bar baz>; say @foo.keys».&[..](+@foo) 14:44
camelia (0..3 1..3 2..3)
Zoffix m: my @foo = <foo bar baz>; say 0..+@foo, {.min+1 .. +@foo} …^ *.min ≥ @foo 14:46
camelia (0..3 1..3 2..3)
Zoffix m: my @foo = <foo bar baz>; say ^@foo «..» +@foo 14:46
camelia (0..3 1..3 2..3)
Zoffix That's the shortest one :)
m: say ^$_ «..» +$_ with <foo bar baz> 14:48
camelia (0..3 1..3 2..3)
Herby_ Is there a release date for the Comma IDE yet? I see on their website they are aiming for this month 14:51
Zoffix "It's ready when it's ready" 14:52
Herby_ gotcha
Herby_ Zoffix: I saw an article of yours from last year where you were talking about writing Rakudo books 14:53
Zoffix Well, I just made that up. I've not heard of any release dates.
Herby_ is that still on the horizon?
Zoffix Herby_: yeah, I still plan to write something and have already produced some content that will be in the book in some form. It's kind'f a negative result of my quitting drinking: I no longer write as much :) 14:55
Zoffix Herby_: and I might deviate from the 3..5 books I originally planned and instead write a book that dispells the myth of Perl 6 being "very big" and stuff. 'cause IMO it really is a myth caused by us providing tools in core, rather than in some 3rd party library. 14:57
Zoffix I mean. It will teach Perl 6, with the goal to teach it just as any other "not big" language, rather than "holy shit, there's 50 ways of doing this and here they all are. Learn them STAT" 14:58
Herby_ Yeah, I think that would be good 14:59
timotimo www.vim.org/vim-8.1-released.php o_O 15:30
geekosaur nvi has had that for how long now? *eyeroll* 15:37
timotimo emacs has had this for at least 30 years i'm sure 15:38
geekosaur wasn;t even going to touch that one. vim is more or less the definition of emacs envy
[Coke] calls Zoffix's plates with NYS KHAAAAAN
timotimo isn't it good that a fork of the thing is prototyping stuff and that's coming back to the original for the benefit of everybody?
mst I've never really understood why you'd want a terminal in your editor rather than using a terminal manager of some sort to launch one of each 15:48
isBEKaml Hmm, the terminal in IntelliJ is much more tolerable than the bare cmd 15:49
But sure, I won't need a terminal in an editor when I'm on Linux 15:51
geekosaur if you're on windows, cmd window is fairly lane
lame
geekosaur a terminal integrated into your editor/IDE/whatever and with smart editing features derived therefrom is a win 15:51
geekosaur conversely it's kinda painful to make an xterm or other terminal emulator *really* behave like your editor, beyond simple line editiing 15:52
Zoffix [Coke]: that reference is lost on me. Something about StarTrek? :) 15:53
Herby_ gist.github.com/sylints/52081eb2f2...a8d9ad7b4b 16:01
maybe I'm half asleep but I'm not sure why this is not working
I zef installed Concurrent::Trie
but when I run that script, i'm being told it cant find Concurrent::Trie
El_Che Zoffix: I don't thing it's a myth 16:05
think
Zoffix Then after I write my book, you can write yours :P 16:07
"Perl 6 is pretty damn huge" 16:08
El_Che a small language, that is not very expressive, like go you'll pick in a few days. The included libraries (http, encryption, etc) you'll pick up by reading the doc, they don't add expressive power
jmerelo Zoffix: And hairy.
El_Che it's the same as a class you wrote yourself
in perl 6 you have all these little shortcuts 16:09
jmerelo Herby_: it looks pretty OK as long as Concurrent::Trie is installed. If you've switched versions, that might be it...
El_Che sometimes with small differences
e.g. on how you write a pair
Herby_ jmerelo: I haven't switched anything that I'm aware of. I just installed the Trie module
El_Che you need to know all 6 (?) ways to read someone elses code
once you paid the price, the expressivity is something you don't want to give up 16:10
jmerelo Herby_: maybe not... perl6 -M Concurrent::Trie -e "my $trie = Concurrent::Trie.new;" returns the same thing...
Zoffix El_Che: there's more in sizes than "small language" and "big language". I never said Perl 6 was a small language and your comparison with Go is unfair. 16:12
jmerelo Herby_: it does not work... jnthn , you there?
El_Che why? it's an extreme example
Zoffix El_Che: and you're making the same mistake Zefram did in his talk where he trashes Perl 6 for being too big. Your Go docs won't cover the dozens of libraries you'd be using to get similar features to what's provided by core Perl 6. Just because you know Go the language doesn't mean you automatically know all those libraries.
jmerelo Herby_: there's something weird here: github.com/JJ/p6-concurrent-trie/b...6.json#L10 16:13
(already forked and working on it...)
Zoffix El_Che: if the myth is "Perl 6 is very big" you can't dispell the myth by saying "It's not very small"
Herby_ jmerelo: I just spotted that too. thanks for taking a look at it
jnthn jmerelo: Yes, what's up?
Zoffix jnthn: s/dispell/prove/; 16:13
s/jnthn//; 16:14
El_Che I don't see big as a problem
jmerelo jnthn: check out Herby_'s code above.
Herby_ gist.github.com/sylints/52081eb2f2...a8d9ad7b4b
Zoffix El_Che: what is this conversation about exactly?
El_Che it's not about libraries
jnthn jmerelo: Ah, yeah, the META.json looksbusted :)
El_Che (sorry bad train wifi)
(cell wifi)
Zoffix: that I don't understand why you say Perl 6 is not big
perl5 is also big in has less expressivity 16:15
jmerelo jnthn: If you don't have time to work on it now, just let me know. Thanks!
El_Che nothing wrong with big languages, it's a choice the language designer makes
jnthn jmerelo: Fixed the META6.json 16:17
jmerelo jnthn++
jnthn Can't remember if it's distributed by CPAN or by GitHub 16:18
geekosaur El_Che, there's an argument that "big" means "stuff wired into core" as opposed to "stuff bundled with"
timotimo jnthn: it's on cpan 16:18
geekosaur we bundle a bunch of stuff, but avoid hardwiring things into e.g. the parser
geekosaur p6 isn;t big language, it's big batteries included 16:18
timotimo jnthn: before you upload the next version, maybe consider adding some tags to the meta6json? :) 16:19
Algorithm::Trie::libdatrie for example has tags "text" and "trie"
and something for "threadsafe" or something 16:20
El_Che geekosaur: yes, but by big I also understand expressivity. You need to understand different ways to do the same thing (something where no libs are needed in perl6 or other languages) 16:21
I gave the pair example
geekosaur I don;t think fo that as big
El_Che you can like it or hate, but you need to deal with it when you read someone else code
geekosaur I mean, by that standard Tcl is enormous
El_Che do you push to an array as a method or function?
etc
geekosaur: perl6 is not the only big language. perl5 is also big in my book 16:22
geekosaur it's flexible. we flex it a bit. this isn't so much big, as youung: provide the pieces, let the community decide what it wants
then deprecate unused ones later
El_Che I don't see big as bad 16:23
geekosaur otherwise youre casting Python "Guido decides how you code"
p5 I see as big because there's so much hardcoded unix not just in the ecosystem but in the parser. which is why it's always been a mess on windows
El_Che I am not proposing to make of perl6 a small language 16:24
Herby_ jmerelo and jnthn: thanks for the quick fix :)
geekosaur but it soulds like your real disagreement is ytou think we should be python There Is Only One Way, Follow Guido
and, no.
jmerelo Herby_: a pleasure. :-)
geekosaur provide the tools, let the community decide which ones it wants to use, deprecate or module the rest
El_Che python is not my cup of tea
geekosaur but you don;t like multiple ways to do things? 16:25
El_Che I don't mind that
(but in the pair case is too much)
geekosaur or at least you have yourself convinced this is a permanent problem instead of a necessary growing pain
El_Che you're missing my argument
I am not saying that big or small is better 16:26
I am saying that some languages are small and some are big because they were ceonceived that way
and in my eyes, perl 6 was conceived as a big languages, very expressive, lots of batteries 16:27
that's why I like perl 6, but I know there is a price to pay for that when you learn the language
El_Che the other extreme, go, that I also like I use, you pick it up really quick but you pay the price later when you're repeating yourself all over the place 16:28
geekosaur I… you have an odd notion of designed
you consider the core and the periphery to be inseperable, apparently 16:29
El_Che having several ways to create hashes, pairs, etc seems core to me 16:29
geekosaur we have the potential for lots of pluggables, we toss a decent selection oinb. this is your bug
er, your big
El_Che yes, indeed 16:30
geekosaur I'm not so sure of that, the core provides one mechanism, you can think foi the rest as slangs/"preprocessors" 16:30
Geth doc: b18bddba29 | (JJ Merelo)++ | doc/Language/contexts.pod6
Adds @zoffix's example to sink context
synopsebot Link: doc.perl6.org/language/contexts
geekosaur my idea of "multiple eways to make a pair" includes "they aren;t the same type" 16:31
which is not true of p6
outer syntax is flexible and extensible
(it is in a sense true of python, which is one of the things I dislike about it: lists and tuples are almost but not quite the same thing) 16:32
El_Che it certainly is, but once out of the bag, I don't see things changing. Only truly broken things will be changed.
HaraldJoerg To add: Having several ways to quote stuff, all in the core: 'foo' or q!foo! Q:q!foo! or Q:single (foo) ... I doubt that any of those will be deprecated
geekosaur I am rapidly landing on "agree to disagree, if you truly are bothered by this, there are other languages"
El_Che you miss my point: I am not bothered at all 16:33
I am just saying Perl 6 is big
and big is not a bad thing
HaraldJoerg I am with El_Che that things like this will make reading other people's code difficult to read 16:34
El_Che it's what it is, you win some, you lose some
geekosaur also if things are designed to be orthogonal,"big" in one dimension is small in another
El_Che many of us are perl 5 programmers
we know how much expressiveness we get
and we know we need to be careful not to be too smart and make the code unreadable
geekosaur and my problem with :difficult to read" is there's an example of trying to simplify that away
it's called java
and it led to massive boilerplate. this is easier? 16:35
El_Che it depends
for the poor sod writing the code no
for the manager looking for cheap people that can pick it up fast? sure
it's in the eye of the beholder
geekosaur for me reading it, I'm swimming in a pig pool looking for the diamond that fell into it 16:36
El_Che fix that
geekosaur I did. I use languages that don't drown me in noise
you think 4 levels of factory to make up for lack of expressiveness is a readability win, you can have it
raschipi Is Python smaller or bigger than Perl 6 in your view, El_Che? 16:37
El_Che geekosaur: for the record I never go to love python and did java in the past (but not anymore)
raschipi: I don't know enough python to answer that
raschipi And Java?
El_Che when I did java (6) I found it a small lang with a big stdlib 16:38
I stick with perl5, 6 and go nowadays
I didn't find Java complex, but recently I helped a collegaue debug Java Spring code 16:39
omg, complexity overdose
raschipi It's like Perl5 lacking parameters, which is extra syntax in Perl 6. It's harder to understand functions in Perl 5 because you need to know how things are being done. 16:44
El_Che true 16:45
raschipi Pushing things from syntax or core to a standard library or to the programmer doesn't make them any smaller. 16:46
El_Che but in this specific case it's concentrated notation that eliminates a lot of boilerplat
e
raschipi: that's not what happens in other languages 16:47
you don't look in the stdlib or third party to have different ways to defines hashes/map in go or java
raschipi Size here being the amount of stuff you need to hold in your head to understand the language.
El_Che you will look for a replacement for the builtin cmd handler in go because it's crap 16:48
jnthn timotimo:Good point, added some
comborico1611 raschipi: That is a good definition of "size" in regard to programming. 16:49
El_Che raschipi: yyou liberate space in your head by the things that are builtin and feel natural
you loose space for the extra things you need to know but you won't use because it's not your style 16:50
e,g, :1st in my case
comborico1611 El_Che: Good point.
geekosaur problem there is you do use them, when they are natural: adverbs 16:51
and having them be the same mechanic underneath is a win
El_Che geekosaur: I understand lot of people love it
more power to them 16:52
so I learnt it for when I read code
jnthn Herby_ jmerelo New version just uploaded to CPAN. Hope that helps. :)
raschipi Exactly, :1st isn't a floating construct, it's used in, for example, m:i/a b c/
Try to do that using i => True syntax. 16:53
El_Che sure, that make sense
for a regular hash, less so 16:54
:42foo, :43bar
jnthn afk
raschipi It's just made as a general construct.
El_Che I understand that
so, you need to understand all the general constructs that can be used in a lot of places 16:55
raschipi m: my sub func (:$no) {say "NO!" if $no }; func():no
camelia NO!
raschipi Better than having to understand special contructs.
El_Che raschipi: I use it i signatures 16:56
geekosaur ^ so it's better to have magic syntax that works only here and nowhere else?
MasterDuke_ huh, i haven't seen that before
El_Che :$var felt more natural to me than :42var 16:56
train almost there. 16:57
my point is not that they are bad or too many
only that there is extra complexity 16:58
you need to know them
you can't not ignore them
and that makes it "big"
Geth doc: adc5f09c12 | (JJ Merelo)++ | doc/Language/traps.pod6
Adds documentation on map "sinkage"

This closes #1718 but see my comment.
synopsebot Link: doc.perl6.org/language/traps
Herby_ jnthn: thanks!
El_Che got to go
thx for the info
interesting discussion 16:59
(and I am the guy explaining perl6 at work, figure that :) )
raschipi There's no problem at all with not understanding all of Perl6. There's no one that understands all of it anyway. Not even Larry. 17:02
comborico1611 El_Che: I think that is fair conclusion.
buggable New CPAN upload: Concurrent-Trie-1.1.tar.gz by JNTHN modules.perl6.org/dist/Concurrent::...cpan:JNTHN
jmerelo jnthn: sure it does. Thanks! 17:04
Geth doc: 3e05b4165c | (JJ Merelo)++ | doc/Language/traps.pod6
Correcting POD thanks to @AlexDaniel for pointing it out
17:06
geekosaur I would say that reusing stuff that way is precisely what contains the complexity, and thinking p6 is "big" is missing the compaction from that reuse. which … yes, entitely possible, but also entirely missing the point of p6's design 17:11
geekosaur so thinking that makes p6 big is not understanding p6 17:11
Geth doc: 97bf51cfe2 | (JJ Merelo)++ | 2 files
Adding some documentation

Reviewing if the merging indicated in #1822 is possible, but well, it is not, because they target a different set of files. It might still be interesting to unify all these tests, and create a set of extensions as well as regexes or tests they should meet. But not for the time being. So it closes #1822.
17:15
Geth doc: 8a00bc15bc | (JJ Merelo)++ | htmlify.p6
Adds a CATCH to catch possible htmlify.p6 errors

This would close #1932, and also refs #1823, which might or might not be done eventually.
17:38
Geth doc: a9ea5277dc | (JJ Merelo)++ | htmlify.p6
Changed disambiguation files to surround the name with «»

This would close #2030, although I'm not sure what disambiguation files are for, since they appear not to be linked from anywhere...
17:54
doc: JJ self-assigned Which phasers are compatible with "will trait"? github.com/perl6/doc/issues/1553
fdeaa1e0a2 | (JJ Merelo)++ | doc/Language/phasers.pod6

Looking mainly at the roast test:
  github.com/perl6/roast/blob/fca87f...ons/will.t
Some not implemented here, but at least an example of those phasers excluded could be added. Not sure the issue is current, anyway, since it said which phasers could be used this way. Closes #1553 anyway.
17:56
synopsebot Link: doc.perl6.org/language/phasers
doc: 6027c8a5c9 | (JJ Merelo)++ | doc/Language/concurrency.pod6
Explains you shouldn't use last in whenever

That would close #1551. Please reopen if you don't feel happy about it.
18:07
synopsebot Link: doc.perl6.org/language/concurrency
khaled hi 18:10
moritz ho 18:12
jmerelo huh? 18:13
Geth doc: b876c85fc7 | (JJ Merelo)++ | doc/Language/contexts.pod6
Adds indexing for sinking

Which had already been documented in #732. Closes #1309.
18:14
synopsebot Link: doc.perl6.org/language/contexts
moritz ha! 18:16
jmerelo he++
jmerelo loling all by himself.
jmerelo closing shop for today. 18:18
Geth doc: ElenaMerelo++ created pull request #2031:
Minor changes
18:29
mspo moritz: hey saw your name on pt-table-sync release notes 18:39
moritz mspo: oh, there's a new release? that's great :-) 18:42
mspo: I just contributed a small patch that $work needed
mspo moritz: I (unfortunately) end up using pt-table-sync every now and then :)
moritz: specifically on hosts with different binlog formats, even 18:43
moritz mspo: does this help you then? or are using it with one of the sync options that needs identical binlog formats? 18:44
mspo moritz: I don't know I didn't look at the patch :) 18:45
but probably
Tison . 19:33
buggable New CPAN upload: P5__DATA__-0.0.1.tar.gz by ELIZABETH cpan.metacpan.org/authors/id/E/EL/...0.1.tar.gz 19:52
lizmat FROGGS++ # helping out 19:54
sjn: ^^^
buggable New CPAN upload: perl6-cache-async-0.1.2.tar.gz by ROBERTLE cpan.metacpan.org/authors/id/R/RO/...1.2.tar.gz 20:22
Juerd polyfloyd.net/post/compile-time-pr...njections/ # Does Perl 6 have a type or other parameter constraint that only allows compile time string literals? 21:03
lizmat Juerd: I came up with: sub a(Str:D \item where -> \value { value.VAR.^name ne "Scalar" } ) { }; a "foo" 21:10
Juerd It'll take me a while to parse that :) 21:11
lizmat Juerd: or with nqp: sub a(Str:D \item where -> \value { use nqp; !nqp::iscont(value) } ) { }; a my $ = "foo"
basically, alias the parameter and see if it is a container or not 21:12
if it's not, then it's a literal value
Juerd But that wouldn't block "WHERE foo = $foo" 21:12
The goal is to reject anything that had anything interpolated or concatenated 21:13
lizmat well, then you would have to do something at compile time 21:14
hmmm.... no, I wouldn't know of a way just yet the
n
slayergames how does Iterator not extend Mu? 21:22
masak m: say Iterator ~~ Mu
camelia True
slayergames oh 21:23
it doesn't say so in the docs
is ~~ also "extends check" besides being regex matching?
MasterDuke slayergames: it's "smartmatching", it does a lot 21:26
buggable New CPAN upload: P5defined-0.0.2.tar.gz by ELIZABETH modules.perl6.org/dist/P5defined:cpan:ELIZABETH 21:32
comborico1611 I'm hearing rumors that emacs 26 might be coming out this weekend. 22:00
El_Che Too late, the new vim is already out 22:03
yesterday actuanlly
comborico1611 heh 22:05
El_Che it's like when you have two messianic religions and one of them already welcomed they mesiah the day before :) 22:06
geekosaur but neither one accepts the other's messiah, so. 22:10
(meanwhile, they;re off having the rapture and the rest of us can get some work done :p )
El_Che haha
slayergames how can you have a range with step? 22:16
lucasb I don't think you can. But you can have a sequence with your desired step 22:20
m: say .min, .min+3 ... .max given 1..10 22:21
camelia (1 4 7 10)
lucasb hopefully someone else will have a better example
El_Che m: (2,4 ... 20).say 22:23
camelia (2 4 6 8 10 12 14 16 18 20)
Herby_ squashable6: help 22:26
squashable6 Herby_, Available commands: status, log, quiet, loud # See wiki for more examples: github.com/perl6/whateverable/wiki/Squashable
Herby_ squashable: status
squashable6 Herby_, Next SQUASHathon in 13 days and ≈11 hours (2018-06-02 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
Herby_ squashable6: log
squashable6 Herby_, Nothing there yet
AlexDaniel Herby_: maybe I can help? What are you searching for? 22:27
Herby_ AlexDaniel: o/
I was looking through the whateverable issues: #314
was trying to see what exactly wasn't working
AlexDaniel Herby_: Ah, 314 22:34
didn't know there was a ticket
it was fixed in github.com/perl6/whateverable/comm...32213de194
Herby_ awesome. one ticket down :) 22:36
AlexDaniel Herby_: still needs tests I think, but Squashable has no tests at all right now 22:37
not sure if it's worth it 22:38
slayergames what is the benefit of using special sigils for arrays? (@) 22:53
El_Che Each sigil, therefore, carries a set of useful default behaviors for data that is to be considered a single item ($), something to index in to positionally (@), something to index in to with a key (%), and something that can be called (&). 22:55
(from jnthn answer on SO)
Syntactic disambiguation (you can call a variable whatever you want, even if there happens to be a keyword with that name)
Readability (the data in the program stands out thanks to the sigil)
Zoffix slayergames: this article explains it well: perl6advent.wordpress.com/2017/12/02/ 22:56
El_Che slayergames: stackoverflow.com/questions/503997...-rebinding (the fist answer, ignore the binding part)
AlexDaniel there are some good points on docs.perl6.org/language/faq#Why_si...hout_them? but I actually expected it to provide more detailed justifications
Herby_ Looking at the performance section: docs.perl6.org/language/performance 23:01
MasterDuke++ for recently updating it
It reads that code that gets JIT'd is a good thing
is there anything out there that speaks to what kind of code/structure etc... you want to aim for in an effort to have the VM jit it? 23:02
not sure if that makes sense
MasterDuke hm, that's a good question 23:05
but i think the jit has pretty good coverage now, so most things do end up getting jitted
Herby_ gotcha 23:07
MasterDuke but there probably could be some suggestions there. like breaking a large routine with branching it based on the types of its arguments into smaller multis 23:11
Zoffix slayergames: as for your earlier question. A Range object doesn't have any steps, only end points and info on whether either of them is excluded. If you meant you want a sequence of numbers for A to B, increasing by an arbitrary number of steps, you can use the sequence operator `…`. But if you do have a Range object and you want to iterate while skipping some items, you could use the .toggle method or .kv +
grep(indeces you want) + map(value)
MasterDuke hm, could you use .rotor for that also? 23:13
Zoffix Actually, .toggle is kinda sucky and long
m: say (1..20).toggle: {++$ %% 2} xx * 23:14
camelia (3 6 9 12 15 18)
AlexDaniel m: say (2..50)[0,2…∞]
camelia (2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50)
Zoffix I was hoping this would `state` the anon var, but it's a separate block each time
[] caches
m: say (1..20).toggle: * %% 2 xx *
camelia (2 4 6 8 10 12 14 16 18 20)
AlexDaniel sorry, caches what? 23:15
Zoffix m: say (1..20).pairs.grep(*.key !%% 2)».value 23:15
camelia (2 4 6 8 10 12 14 16 18 20)
Zoffix AlexDaniel: nm
MasterDuke m: say (1..20).rotor(1 => 1).flat 23:18
camelia (1 3 5 7 9 11 13 15 17 19)
Zoffix cool