»ö« 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.
Zoffix SmokeMachine: I think you filed it even 00:00
m: class Foo { has Numeric @.foo .= new: 1, 2, 3 }.new 00:01
camelia Default constructor for 'Numeric' only takes named arguments
in method at <tmp> line 1
in submethod BUILDALL at <tmp> line 1
in block <unit> at <tmp> line 1
Zoffix Maybe it was this...
Zoffix Don't see any tickets for it tho 00:06
Zoffix .ask masak RE RT#124226 Yes, you can resolve types at compile time, but can you resolve methods? If the idea in the ticket is implemented, this, for example, would begin to crash, no? `class Foo { has $!foo; method foo { $!foo } }; INIT Foo.^lookup("foo").wrap: -> | { "not an error".say }; Foo.foo` 00:13
yoleaux Zoffix: I'll pass your message to masak.
synopsebot RT#124226 [open]: rt.perl.org/Ticket/Display.html?id=124226 [BUG] Opportunity to catch syntactically detectable calls to attribute-accessing methods on type objects in Rakudo 00:14
SmokeMachine Zoffix: yes, I remember something like that... I’ll try to look for that... 00:23
Zoffix SmokeMachine: what's your email address on RT? There's a way to search by ticket-creator's email address 00:26
SmokeMachine I think I loose my rat password... 00:27
*rt
FCO
lookatme :) 00:29
Zoffix SmokeMachine: the first address you gave me showed ~10 tickets but none were about .= 00:32
SmokeMachine :( 00:33
SmokeMachine It’s possible I forgot to fill the rt 00:33
:( 00:34
Zoffix Oh well. I'll just apply the fix and that should fix the mystery bug. 00:36
Geth doc: 07b74c89e6 | (Zoffix Znet)++ | doc/Language/traps.pod6
Remove drift on lazy iterable reuse trap

It's not a trap but a bug.
Rakudo fix: github.com/rakudo/rakudo/commit/f330d7fc44 Spec that it shouldn't occur:
  github.com/perl6/roast/commit/242f297e3d
01:02
synopsebot Link: doc.perl6.org/language/traps
TimToady Zoffix: I'm not using the CArray that way, but I am still trying to isolate the memory leak in my caller-id scanner daemon 01:05
Zoffix Ah 01:05
TimToady I know lots of things it isn't, so may have to resort to the heap analyzer, but that's dicey with a daemon 01:05
TimToady it's a relatively slow leak, so in the current debugging mode I change something and then run it for a day to see whether it still leaks, which is why it's worth asking about possible hypotheses here :) 01:13
Zoffix There's some weird leak with gather/take. This construct leaks: (1…∞).grep(* < 0)[^10] 01:14
TimToady already tried removing his own gather/take, so it'd have to be embedded somewhere 01:15
the weird thing is that if I nqp::force_gc after every input line, it doesn't leak, so it's maybe something do to objects that are forced prematurely to have long-term addresses, or some kind of unreusability/fragmentation in the heap 01:18
things that die from the nursery don't trigger a leak here
(it would seem)
which made me think it might be something to do with the .WHICH of hash keys, but all my experiments there have come up dry 01:20
TimToady I haven't tried turning off SPESH yet, so maybe that should be my next experiment 01:21
TimToady my current experiment involves changing the = to := in the original (one-time) buffer allocation: my $buf = CArray[uint8].new(0 xx bufsize); 01:24
on the theory something could be leaking in NativeCall on the decont somehow 01:25
but it's a long shot
TimToady I've been going under the assumption that spesh shouldn't make a process 3 times bigger over the course of 24 hours 01:27
travis-ci Doc build passed. Zoffix Znet 'Remove drift on lazy iterable reuse trap 01:29
TimToady when it should be reaching a relative steady state after a few minutes of random syslog messages from my router
travis-ci travis-ci.org/perl6/doc/builds/339260205 github.com/perl6/doc/compare/c878e...b74c89e6b7
shinobicl hi perl6! 01:47
lookatme hi shinobicl 01:54
shinobicl how can i load perl6 from a string? I want to build a library of "code" + "knowledge base" in a persistent medium, then load it and discard it when the scope goes away. How can i do this with perl6 code? The code has to be in a database.
lookatme eval ? 01:55
shinobicl, docs.perl6.org/routine/EVALFILE 01:56
Maybe this will help
or this docs.perl6.org/routine/EVAL
shinobicl yes. that is perfect! Thanks! 01:57
lookatme++
Herby_ o/ 03:09
lookatme o} 03:11
ZzZombo Originally this was used to test potential circular dependency, but it got interesting in other ways: 06:14
m: role R[$s=self.a] {method a{$s // 'asd'}};class C does R {}
camelia 5===SORRY!5=== Error while compiling <tmp>
Could not instantiate role 'R':

at <tmp>:1
ZzZombo m: role R[$s=self] {method a{$s // 'asd'}};class C does R {}
camelia 5===SORRY!5=== Error while compiling <tmp>
'self' used where no object is available
at <tmp>:1
------> 3role R[$s=7⏏5self] {method a{$s // 'asd'}};class C do
expecting any of:
term
ZzZombo m: class C {has $.s=self.a;method a{'asd'}}.s.say 06:17
camelia Cannot look up attributes in a C type object
in method s at <tmp> line 1
in block <unit> at <tmp> line 1
ZzZombo m: class C {has $.s=self.a;method a{'asd'}}.new.s.say
camelia asd
Geth doc: db2b417960 | (JJ Merelo)++ | doc/Type/Range.pod6
Changing Inf to ∞ in code samples

Refs #1520. I chose this one because it's got a log of Inf. Not changed in text or when it actually returns Inf.
07:01
synopsebot Link: doc.perl6.org/type/Range
ZzZombo m: my Int $a;$a .//= new: 2;$a.say 09:20
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed postfix call (only alphabetic methods may be detached)
at <tmp>:1
------> 3my Int $a;$a .7⏏5//= new: 2;$a.say
ZzZombo m: my Int $a;$a .= new: 2;$a.say
camelia 2
ZzZombo Well, a pity it doesn't work.
gfldex m: my Int $a; $a = $a // $a.new(2); $a.say 09:28
camelia 2
SmokeMachine m: my Pair $foo .= new: :key<foo> :value<bar>; 10:18
camelia ( no output )
SmokeMachine Zoffix, shouldn’t be with the : after the new? ☝️ 10:19
Zoffix SmokeMachine: both variants are valid. Yours is parsed as args. Without `:` it's parsed as fake-infix and the trailing adverbs are then converted into args 10:26
m: dd <a b c>.grep("b") :p
camelia (1 => "b",).Seq
Zoffix m: dd <a b c>.grep("b") :v
camelia ("b",).Seq
SmokeMachine Zoffix: thanks! I didn’t know that...
Zoffix m: my Int $a; $a orelse .=new: 2; $a.say 10:27
camelia (Int)
Zoffix hm...
m: my Int $a; -> \z { z .=new: 42; }($a);$a.say 10:28
camelia 42
Zoffix The orelse one should prolly work 10:29
Zoffix m: my Int $a; .=new: 2 without $a; $a.say 10:38
camelia 2
Zoffix notandthen works
ZzZombo: ^ 10:39
m: my Int $a; $a notandthen .=new: 2; $a.say
camelia (Int)
Zoffix huh... That's really weird, considering the first one becomes the second one during parsing 10:40
c: 2018.01 my Int $a; $a notandthen .=new: 2; $a.say 10:41
committable6 Zoffix, ¦2018.01: «2␤»
Zoffix oh. Looks like someone's `.=` optimization got a bug in it :} 10:42
Zoffix .tell timotimo RE irclog.perlgeek.de/perl6/2018-02-08#i_15793128 There's no bug. The `=>` op auto-quotes the LHS, so those are string keys. There are several ways to avoid auto-quoting and when you use one of them, the .perl comes out right: say :{(False) => 1, (True) => 2}.perl 11:28
yoleaux Zoffix: I'll pass your message to timotimo.
timotimo oh, haha, i'm not that bright, am i? 11:49
yoleaux 11:28Z <Zoffix> timotimo: RE irclog.perlgeek.de/perl6/2018-02-08#i_15793128 There's no bug. The `=>` op auto-quotes the LHS, so those are string keys. There are several ways to avoid auto-quoting and when you use one of them, the .perl comes out right: say :{(False) => 1, (True) => 2}.perl
moritz I have a weird off-topic question, and hope you don't mind :-) 12:07
so, on linux, a setuid or setgid program generall isn't strace/ptrace'able, even after it dropped its permissions
but, if such a process calls execv() after dropping its permissions, the resulting process can be ptrace()d again 12:08
is there a way to inherit this untracability?
to the exec()d program, that is
according to stackoverflow.com/questions/213379...ter-setuid the PR_SET_DUMPABLE thingy is responsible, but I don't see how I can tell exec and friends to not reset it 12:15
DrForr_ o/ 12:46
ZzZombo What is `quasi`? 13:09
quasi { $cond-attr.get_value($*MONITOR).signal() }
DrForr_ Well, for one it's not mentioned directly in the docs so it's a valid bug to submit... 13:11
but I'd guess it's to do with quasiquoting, meaning the qq{} stuff. 13:12
jnthn It's part of the current experimental macros implementation
qq is just a normal string quoting constrcut 13:14
jnthn a quasiquote is a way of getting Perl 6 code as an AST, so it can be spliced in at the point a macro is used, for example 13:15
moritz I don't think quasi as-is should be documented 13:28
DrForr_ If it's going to have user-space stuff I'd agree, sorry :) 13:29
jkramer Does Int have bounds? 13:56
I can't find methods that return min/max possible values, so I guess not?
jkramer "arbitrary size" ok 13:57
DrForr_ That's what the intX types are for (lower-case, like int16) 13:58
DrForr_ You could use subtypes if the native types don't work... 13:59
If I had the time between now and 1April I'd use it to implement UTF-9. 14:01
jkramer DrForr_: I just needed a way to get a very low negative number from somewhere without using '-' anywhere in my code. :) It's for some coding challenge :)
DrForr_ I'd say ~ to negate, but that's now for strings... 14:03
jnthn m: say unival("༳") 14:05
camelia -0.5
Zoffix m: say ༳ 14:07
camelia -0.5
jnthn oh, hah :)
Didn't realize we did that :)
I did try
Zoffix m: say cotan π 14:08
camelia -8.16561967659768e+15
jnthn m: say +"༳"
camelia Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5༳' (indicated by ⏏)
in block <unit> at <tmp> line 1
jnthn Which refuses
Zoffix That doesn't work on purpose
jnthn What's decides what does and what doesn't?
Zoffix In Str.Numeric we only do Nd chars. In literal numerics we also allow No 14:09
m: "༳".uniprop.say
camelia No
jnthn Makes sense, thanks 14:10
Zoffix m: say sec 1.5*π 14:13
camelia -5.44374645106512e+15
Zoffix m: say Num(i².Int/0) 14:15
camelia -Inf
Zoffix m: say +"\x2DInf" 14:17
camelia -Inf
Zoffix oh 14:18
m: say Num(༳/0)
camelia -Inf 14:18
Zoffix :)
m: say ༳×∞ 14:21
camelia -Inf
Zoffix m: say ༳×𖭡 14:23
camelia -500000000000
Zoffix Guess taht's the shortest way to write a large, non-Inf negative without minuses. The char doesn't render for me tho 14:24
u: 𖭡
unicodable6 Zoffix, U+16B61 PAHAWH HMONG NUMBER TRILLIONS [No] (𖭡)
dogbert17 m: say "abcde" ~~ / ab <![e]> cde | ab.. / 14:29
camelia 「abcd」
Zoffix m: say "abcde" ~~ / ab <![e]> cde | .... / 14:31
camelia 「abcd」
Zoffix m: say "abcde" ~~ / ab <![e]> cde | ... /
camelia 「abcde」
Zoffix weird 14:32
ZzZombo Wait, does `compose` act on an object or class? Why if the latter, the first parameter is called `$obj`? 14:33
jnthn It's called on the meta-object, and passed in the type object as the first argument (as with nearly all meta-methods). 14:41
Passing in the object allows for prototype inheritance to be implemented also
ZzZombo Also, should the name I pass to `add_private_method` start with '!'? 14:42
jnthn No
dogbert17 Zoffix: it's ye olde RT #122951 14:44
synopsebot RT#122951 [open]: rt.perl.org/Ticket/Display.html?id=122951 [BUG] negative lookahead doesn't LTM properly
ZzZombo Alright, so given meta `self` and type `cls`, I can `self.add_private_method(cls,$name,$m)`?
jnthn yeah 14:45
ZzZombo Are methods already built by the time attributes are being composed? 15:08
ZzZombo Why does this work? 15:31
m: class C {has Str:D $.a='1'};my $a=C.new;$a.^attributes[0].set_value($a,False);say $a
camelia C.new(a => Bool::False)
Zoffix m: class { has $.a; has $.b where * > $!a; }.new: :42a, :70b 15:32
camelia Cannot look up attributes in a VMNull type object
in block <unit> at <tmp> line 1
Zoffix This supposed to work, right?
jnthn I don't particularly see how it can 15:34
ZzZombo I don't think so? The implicit code block is not run in context of the object.
jnthn It shouldn't fail like that, though, should give a compile time error about self not being available there 15:35
Zoffix K. I'll do that then
ZzZombo SO how can I write a setter that won't violate any constraints on attribute? 15:37
[Coke] wonders how there was a .WHAT in the docs that didn't fail xt/examples 16:28
(oh, it had a specific ok-test - that can be removed now)
Zoffix Is there some nice way to set a dynvar but only if another dynvar has a specific value? 16:38
m: grammar { token TOP { :my $*A = 10; :my $*B = 20; <foo> }; token foo { :my $*A = $*B == 15 ?? 30 !! $*A; <bar> }; token bar { \d+ { say $*A } } }.parse: "42"
camelia (Any)
Zoffix Basically for that ^ to print whatever $*A is set to. In `token foo` it should be conditionally set to 15 or left at its old value
*conditionally set to 30 16:39
m: grammar { token TOP { :my $*A = 10; :my $*B = 12; <foo> }; token foo { {if $*B == 15 { my $*A = 30; self.bar } else { self.bar }} }; token bar { \d+ { say $*A } } }.parse: "42" 16:40
camelia 10
Zoffix This works with setting it, but if I print the $/, the <bar> match doesn't show up in it. How to shove it into it? 16:40
Zoffix m: say grammar { token TOP { :my $*A = 10; :my $*B = 12; <foo> }; token foo { {if $*B == 15 { my $*A = 30; self.bar } else { self.bar }} }; token bar { \d+ { say $*A } } }.parse: "42" 16:41
camelia 10
Nil
Zoffix well, no $/ is made. I guess something is not right with how to "emulate" a `<bar>` as a call on `self`
m: say grammar { token TOP { :my $*A = 10; :my $*B = 10; <foo> }; token foo { <bar($*B == 10 ?? 30 !! $*A)> }; token bar($*A) { \d+ { say $*A } } }.parse: "42" 16:44
camelia 30
「42」
foo => 「42」
bar => 「42」
Zoffix That's one way that works, but I don't want to modify all teh calls to <bar> in the entire grammar 16:45
(also: this is src/Perl6/Grammar.nqp so no HLL features)
skids m: say grammar { token TOP { :my $*A = 10; :my $*B = 20; <foo> }; token foo { :my $*A = ($*B == 15 ?? 40 !! CALLER::<$*A>); <bar> }; token bar { \d+ { say $*A } } }.parse: "42" 16:49
camelia 10
「42」
foo => 「42」
bar => 「42」
Zoffix no CALLER:: in nqp 16:51
nqp: sub foo() { nqp::say(CALLER::<$*FOO>) }; my $*FOO := 42; foo() 16:52
camelia Unable to parse expression in blockoid; couldn't find final '}' at line 2, near "nqp::say(C"
at gen/moar/stage2/NQPHLL.nqp:707 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm:panic)
from gen/moar/stage2/NQPHLL.nqp:714 (/home/camelia/rakudo-…
Zoffix I think this should do the trick tho: 16:52
m: say grammar { token TOP { :my $*A = 10; :my $*B = 10; <foo> }; token foo { <bar=.speshul-bar($*B == 12 ?? 30 !! $*A)> }; token speshul-bar($*A) { <.bar> }; token bar { \d+ { $*A and say $*A } } }.parse: "42"
camelia 10
「42」
foo => 「42」
bar => 「42」
Zoffix actually, there's some op for caller 16:53
nqp: sub foo() { nqp::say(nqp::getlexcaller('$*FOO')) }; my $*FOO := 42; foo()
camelia 42
Zoffix skids++
skids and then some find op to find the variable prolly.
Zoffix nqp: sub foo() { my $*FOO := 0 ?? 10 !! nqp::getlexdyn('$*FOO'); nqp::say($*FOO) }; my $*FOO := 42; foo() 16:55
camelia 42
Zoffix nqp: sub foo() { my $*FOO := 1 ?? 10 !! nqp::getlexdyn('$*FOO'); nqp::say($*FOO) }; my $*FOO := 42; foo()
camelia 10
skids also maybe have to consider CALLERS vs CALLER... don't know which one getlexdyn is. 16:58
skids or whether it matters for dynamics. 16:59
skids Also note there's no good way to undo it on a backtrack. 17:07
skids Other than the dynamic variables themselves. 17:07
Zoffix Noted. Thanks. 17:09
\o
lucasb is thinking about replying to that naming thread in the mailing list but is afraid of starting WW III. 18:11
[Coke] was going to reply but is also keeping quiet 18:12
El_Che which mailing list?
and for whatever count you're using we are way past the III :)
lucasb El_Che: perl6-language ML
moritz you know, a year or two ago my old email address stopped working, and I never bothered to subscribe to p6l with my new address 18:14
El_Che thx
I never subscribed altogether
moritz and I don't feel like it made me a less happy person
lucasb lol, I clicked send. I hope at least someone agrees with me :-) 18:15
El_Che moritz: you're a wise man :)
let me open the archive :)
lucasb I guess it'll take some minutes to hit the archives 18:16
El_Che it's there 18:19
and we're doomed
lucasb /o\
Zoffix I don't have subscribtion to that list, but someone should mention the article OP dug up is ancient and discussion moved way past the original ideas in that post. 18:21
El_Che Zoffix: just wait 18:22
it'a round track
we'll get there again :)
Zoffix And I'd say the most up-to-date location for it would be the 6.d prep repo: github.com/perl6/6.d-prep/tree/mas...ded-naming
El_Che: it's not round to my mind. It has been a straight line all the time since I started this last summer and is still on a straight course. 18:23
AlexDaniel hehe there's a proposal to rename rakudo xD
Amit need nativecall jar to support Java9 18:24
Zoffix AlexDaniel: I think Damian Conway also had that proposal. 18:24
Guest14511 can u share that
link
El_Che rakudo grew on me 18:25
AlexDaniel www.nntp.perl.org/group/perl.perl6...36765.html
geekosaur the whole thing is growing, for all that it's doing so in a loop. like a weird, persistent weed /o\
Zoffix "Ideally the language itself would be "Rakudo" ("Way of the Camel") and the current implementation would be "Rokudo" ("Way of Six"), but that ship has almost certainly already sailed." 18:26
El_Che It's nice to have a luxury problem, but once there are alternative for rakudo, we'll figure something :)
Guest14511 u guys support for nativecall jar?
Zoffix Guest14511: no idea what you mean. 18:27
El_Che: well, there are already. fan lang.
Which was already even promised to be open sourced in non-optimized version.
El_Che future 18:28
maybe
Zoffix It already exists. All you're saying is: let's pretend this isn't a problem until the currently-existing product becomes open-sourced, as was already promised. 18:29
geekosaur Guest14511, last I heard, rakudo-jvm used the jvm in nonstandard ways that don't play well with other Java libraries. and needs more than a single contributor working on it, if it's to progress beyond that.
Zoffix *sigh* 18:32
Why are people who don't bother keeping themselves in the loop rush out to tell people that the name isn't up for discussion and isn't changing ever?
AlexDaniel I don't know, this whole debate make me feel like we're all living in our personal worlds 18:33
Zoffix I can certainly see why the problem was never resolved in the past. One group of people expects instant changes while another group says it ain't ever gonna happen without having any facts to back it up. 18:35
lucasb I didn't want to upset you, Zoffix. Admittedly, I may be uninformed of current decisions
AlexDaniel I'm certain that we will resolve it eventually, one way or another 18:36
Zoffix Yeah, someone forking rakudo and releasing a "new language" not tied to Perl at all.
Just need a good sponsor.... Wonder what Elon Musk is doing these days... 18:37
www.youtube.com/watch?v=aBr2kKAHN6M oh... 18:38
Geth doc: a9ebcb166d | (Wenzel P. P. Peppmeyer)++ (committed using GitHub Web editor) | doc/Language/typesystem.pod6
fix grammar
18:54
doc: 22dbbacf57 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/typesystem.pod6
Merge pull request #1762 from gfldex/patch-7

add type smiley example
synopsebot Link: doc.perl6.org/language/typesystem
Geth doc: 6918c9e1b4 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/typesystem.pod6
Link to concepts explaining terms used in text
18:56
El_Che we killed zoffx
ctilmes m: multi foo(Str $x) { say 'A' }; multi foo(Str $x, Bool:D :$y) { say 'B' }; foo('this'); foo('this', :y); 18:57
camelia A
B
ctilmes m: multi foo(Str $x) { say 'A' }; multi foo(Str $x, Bool:D :$y, |opts) { say 'B' }; foo('this'); foo('this', :y);
camelia A
Unexpected named argument 'y' passed
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1
ctilmes Why is that unexpected, why not use the second multi that expects it? 18:59
stmuk I probably should unsub from perl6-language 19:01
El_Che stmuk: it doesn't look high traffic 19:02
stmuk its mostly R* accouncements and some perl6/specs commits 19:03
stmuk the specs stuff probably shouldn't even be forwarded anymore since it just encourages people to get misled by them :) 19:04
El_Che rename it to rakudostar-announce 19:05
Zoffix ctilmes: because named args are only used to tie-break dispatch, like in the first case. In the second, there's no tie, so the first candidate gets chosen and then the named don't fit into it
stmuk has anyone got composing unicode stuff to work in colour on a non-Mac platform? I tried copying Menlo fonts over to linux and it doesn't look the same 19:06
I assume Apple have some secret font rendering tech 19:07
ctilmes Zoffix: thanks, I'll try to force a tie ;-) 19:08
El_Che I saw an article about ubuntu getting colour emojis as a font
Zoffix m: multi foo(Str $x, |) { say 'A' }; multi foo(Str $x, Bool:D :$y, |opts) { say 'B' }; foo('this'); foo('this', :y);
camelia A
B
El_Che they are black and white now
Zoffix m: multi foo(Str $x) { say 'A' }; multi foo(Str $x, Bool:D :$y, *%opts) { say 'B' }; foo('this'); foo('this', :y); 19:09
camelia A
B
El_Che stmuk: dunno if it's related: www.omgubuntu.co.uk/2017/11/ubuntu-...olor-emoji 19:10
stmuk yes I was just reading that 19:11
stmuk hmm maybe my chromebook will work 19:14
google's NotoColorEmoji seems most likely 19:15
ctilmes m: multi foo(Str $x, Bool :$z) { say 'A' }; multi foo(Str $x, Bool:D :$y, *%opts) { say 'B' }; foo('this'); foo('this', :y); 19:21
camelia A
B
ctilmes m: class Foo { multi method foo(Str $x, Bool :$z) { say 'A' }; multi method foo(Str $x, Bool:D :$y, *%opts) { say 'B' }}; Foo.foo('this'); Foo.foo('this', :y);
camelia A
A
ctilmes Why do those dispatch differently?
ctilmes m: class Foo { multi method foo(Str $x, Bool :$z) { say 'A' }; multi method foo(Str $x, Bool:D :$y!, *%opts) { say 'B' }}; Foo.foo('this'); Foo.foo('this', :y); 19:23
camelia A
A
stmuk hmm I think I need a terminal program with SVGinOT support 19:30
Zoffix ctilmes: because they have different signatures. All methods have an implied *%_ slurpy 19:34
m: multi foo(Str $x, Bool :$y, *%_) { say 'A' }; multi foo(Str $x, Bool :$z, *%opts) { say 'B' }; foo('this'); foo('this', :z);
camelia A
A
Zoffix And if you add it here, it gets dispatched the same 19:35
m: multi foo(Str $x, Bool :$y, *%_) { say 'A' }; multi foo(Str $x, Bool :$z!, *%opts) { say 'B' }; foo('this'); foo('this', :z);
camelia A
A
Zoffix There's a ticket somewhere to make required nameds be considered better, like so the above would say "A B" 19:36
But I recall jnthn++ mentioning dispatch rules existed for like a decade and every time someone proposes an idea that looks like it makes sense, once implemented, it turns out that it makes someone else go whack 19:37
stmuk or CBDT/CBLC support even better
Zoffix RT#129329 is that ticket
synopsebot RT#129329 [new]: rt.perl.org/Ticket/Display.html?id=129329 Required named params not narrower than optional ones?
Zoffix m: multi foo(Str $x, Bool :$z!, *%opts) { say 'B' }; multi foo(Str $x, Bool :$y, *%_) { say 'A' }; foo('this'); foo('this', :z); 19:38
camelia A
B
Zoffix You can do this tho ^ reorder them and then required ones will fail for cases where they're absent and the next one will be used 19:38
ctilmes Zoffix: thanks, I'll play with this a bit 19:39
stmuk yes! install "Noto Color Emoji" under ~/.fonts, use the chrome ssh terminal with that font configured and full colour unicode! 19:49
although it seems to have messed up the screen display a bit as a side effect 19:50
El_Che what's the usecase again?
geekosaur terminals generally don't handle fullwidth characters very well 19:52
at least, not terminals designed for Western European contexts
mspo Terminal.app is pretty okay 19:54
although spacing side-by-side gets a little weird
stmuk El_Che: I was trying to combine a skin onto a emoji under linux (as I was able to do on macOS) 19:56
stmuk El_Che: which still doesn't work but I'm at least seeing colour characters on linux now 19:56
Herby_ \o 20:03
Zoffix c: 2018.01 my class Meow { has $.a; has $.b; method u { return self.WHAT }; }; my Meow $x4; $x4 orelse .=new :42a :70b andthen .=u orelse .=new: :100b andthen .=new orelse .=new: :10a, :20b; 20:45
committable6 Zoffix, ¦2018.01: «Cannot modify an immutable Meow ((Meow))␤ in block <unit> at /tmp/HdIJfiJdIg line 1␤␤ «exit code = 1»»
Zoffix I don't get it. What exactly makes it immutable? In the entire chain, it's assigning to mutable $x innit?
c: 2018.01 my Int $x2; $x2 notandthen .=self :42moews :100foos notandthen .=new: 42;
committable6 Zoffix, ¦2018.01: «»
Zoffix And here's a shorter example that looks like it works fine
m: my class Meow { has $.a; has $.b; method u { self.WHAT }; }; my Meow $x4; $x4 orelse .=new :42a :70b andthen .=new andthen .=new: :100b andthen .=u orelse .=new: :10a, :20b; 20:47
camelia ( no output )
Zoffix :S
Zoffix c: 2018.01 my class Meow { has $.a; has $.b; method u { self.WHAT }; }; my Meow $x4; $x4 orelse .=new :42a :70b andthen .=new andthen .=new: :100b andthen .=u orelse .=new: :10a, :20b; 21:22
committable6 Zoffix, ¦2018.01: «Cannot modify an immutable Meow ((Meow))␤ in block <unit> at /tmp/aIn0FABQAS line 1␤␤ «exit code = 1»»
Zoffix c: my Int $x; $x orelse .=self orelse .=new 21:23
committable6 Zoffix, ¦my: «Cannot find this revision (did you mean “all”?)»
Zoffix c: 2018.01 my Int $x; $x orelse .=self orelse .=new
committable6 Zoffix, ¦2018.01: «»
Zoffix c: 2018.01 my Int $x; $x orelse .=self orelse .=new andthen .=new 21:24
committable6 Zoffix, ¦2018.01: «»
Zoffix eh, mystery for another day 21:27
lucs m: say Pod::Block::Code.^mro 22:03
camelia ((Code) (Block) (Any) (Mu))
lucs Why is it not «((Pod::Block::Code) (Pod::Block) (Any) (Mu))␤» ?
moritz m: Pod::Block::Code.^roles 22:05
camelia ( no output )
moritz m: say Pod::Block::Code.^roles
camelia ()
moritz lucs: ah, the default .gist-ification of class names only uses the short name 22:06
lucs Ah, hmm...
moritz m: say Pod::Block::Code.^mro.map({.^name})
camelia (Pod::Block::Code Pod::Block Any Mu)
lucs Thanks :) 22:07
moritz nost very happy with that choice
one more reason to use .^name consistenly while debugging
lucs Yeah, having only the short name appears misleading. 22:08
stmuk_ at least there haven't been any "I don't like the logo" threads out there recently 22:22
geekosaur shhhhh 22:25
Geth DBIish: 73e37ebd7b | (Moritz Lenz)++ | 2 files
Remove some Parrot references. Closes #109
22:30
stmuk_ 22:59
Geth doc: 85f212a006 | (Will "Coke" Coleda)++ | doc/Type/Junction.pod6
Escape |, it's a pod table special char

Fixes #1764
23:24
synopsebot Link: doc.perl6.org/type/Junction
Geth doc: 02ed65ecf2 | (Will "Coke" Coleda)++ | doc/Language/typesystem.pod6
whitespace
23:31
synopsebot Link: doc.perl6.org/language/typesystem
Geth doc/coke/build: dd46e5706d | (Will "Coke" Coleda)++ | Makefile
clean precompiled directory
23:32
[Coke] I've done a git clean -xdf in a perl6/doc checkout; pod2onepage is still saying everything is ' (cached)' 23:40
travis-ci Doc build errored. Will "Coke" Coleda 'Escape |, it's a pod table special char 23:49
travis-ci.org/perl6/doc/builds/339696247 github.com/perl6/doc/compare/6918c...f212a0062c
buggable [travis build above] ✓ All failures are due to: timeout (1 failure). 23:49
travis-ci Doc build errored. Will "Coke" Coleda 'whitespace' 23:52
travis-ci.org/perl6/doc/builds/339698696 github.com/perl6/doc/compare/85f21...ed65ecf28c
buggable [travis build above] ✓ All failures are due to: timeout (1 failure). 23:52