»ö« 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.
awwaiid thanks parabolize :) 02:46
RabidGravy boom 07:21
RabidGravy I can tell things have been happening since I got distracted by current affairs, five of my modules got broken 07:40
lizmat RabidGravy: any pointers as to what got broken? 07:42
RabidGravy something returns an anonymous class rather than a Distribution object, IO::Path now has a .mode method, and some other as yet undiagnosed things 07:43
lizmat eh, how can an addition of a method break things ? 07:44
RabidGravy if you add a method to the class it does 07:44
which is what IO::Path::Mode does, not sure how I'm going to fix that (my .mode returns an Int with a role that makes sense of the value) 07:47
lizmat ah, ok, clear now 07:50
:-(
RabidGravy I'm sure I'll think of something, I'll consider it an opportunity to make something better :) 07:51
RabidGravy Oooh, no that is actual a genuine bug IMO ("something returns an anonymous class rather than a Distribution object") 08:11
lizmat maybe that was caused by the integration of ugexe's work by nine?
RabidGravy m: say Distribution.new 08:12
camelia rakudo-moar 74a079: OUTPUT«<anon|786110368>.new(name => Any, auth => Any, author => Any, authority => Any, api => Any, ver => Any, version => Any, description => Any, depends => [], provides => {}, files => {}, source-url => Any)␤»
RabidGravy almost certainly
psch m: say Distribution.HOW.^name
camelia rakudo-moar 74a079: OUTPUT«Perl6::Metamodel::ParametricRoleGroupHOW␤»
psch punning gone weird..? 08:13
i remember some bit of discussion about this a few days back, in #perl6-dev
RabidGravy oh, it actually creates an anonymous class deliberately in the constructor 08:23
psch star-m: say Distribution.HOW.^name
camelia star-m 2016.04: OUTPUT«Perl6::Metamodel::ClassHOW␤»
psch yeah, turning it into a role but keeping backwards compat or so was the reasoning iirc
i don't remember or even knew the details :) 08:24
RabidGravy right, I think it's go with the "heritage" interface for the time being to get App::ModuleSnap working again and then fix it again, because it appears there is a better way to do what it is doing 08:38
RabidGravy wahay! Audio::Silan was broken by something unrelated to changes to rakudo 08:51
DrForr Changes to rakudo... great :) 09:03
wamba m: my @objects=<a b c d>; my @atributes=(1, 2); my $relations=set( "a" => 1, "a" => 2, "b" => 1, "c" = 10:04
camelia rakudo-moar ffc79b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing required term after infix␤at <tmp>:1␤------> 3set( "a" => 1, "a" => 2, "b" => 1, "c" =7⏏5<EOL>␤ expecting any of:␤ prefix␤ term␤»
wamba > 2 ); say set ( $_ if ($_ X=> 1,2).all (elem) $relations  for @objects)
m:my @objects=<a b c d>; my @atributes=(1, 2); my $relations=set( "a" => 1, "a" => 2, "b" => 1, "c" => 2 ); say set ( $_ if ($_ X=> 1,2).all (elem) $relations  for @objects)
m: my @objects=<a b c d>; my @atributes=(1, 2); my $relations=set( "a" => 1, "a" => 2, "b" => 1, "c" => 2 ); say set ( $_ if ($_ X=> 1,2).all (elem) $relations  for @objects)
camelia rakudo-moar ffc79b: OUTPUT«set(a)␤»
wamba m: my @objects=<a b c d>; my @atributes=(1, 2); my $relations=set( "a" => 1, "a" => 2, "b" => 1, "c" => 2 ); say set ( $_ if ($_ X=> @atributes).all (elem) $relations  for @objects) 10:05
camelia rakudo-moar ffc79b: OUTPUT«set()␤»
wamba m: say so all(1 X=> 1,2) (elem) set(1=>1,1=>2) 10:10
camelia rakudo-moar ffc79b: OUTPUT«True␤»
wamba m: my @a=1,2; say so all(1 X=> @a) (elem) set(1=>1,1=>2)
camelia rakudo-moar ffc79b: OUTPUT«False␤»
wamba m: my @a=1,2; dd all(1 X=> @a), all(1 X=> 1,2) 10:13
camelia rakudo-moar ffc79b: OUTPUT«all(1 => 1, 1 => 2)␤all(1 => 1, 1 => 2)␤»
RabidGravy lizmat, further to earlier 8ad19e2ec3a7be4e83c06de6b6475f5c6596eef1 broke Lumberjack::Application - as it actually did create Backtrace::Frame objects as they are marshalled to/from JSON :( 10:14
lizmat RabidGravy: so you need the named param interface as well... 10:15
RabidGravy yeah, it was never ideal but it kinda worked
wouldn't just making the explicit constructor a multi fix that? 10:16
lizmat yeah, working on that
wamba m: my @a=1,2; say so all(1 X=> @a) (elem) set(1=>1,1=>2) 10:17
camelia rakudo-moar ffc79b: OUTPUT«False␤»
wamba m: my @a=1,2; say so all(1 X=> 1,2) (elem) set(1=>1,1=>2)
camelia rakudo-moar ffc79b: OUTPUT«True␤»
wamba why does it give different result? 10:19
lizmat RabidGravy: spectesting
RabidGravy if it's a problem I can make the thing that gets serialised a sub-class of Backtrace::Frame with its own constructor
lizmat RabidGravy: don't think it's going to be an issue 10:20
hmmm.. it appears we lost dalek 10:27
github.com/rakudo/rakudo/commit/c3...60ac735786 # RabidGravy 10:28
RabidGravy lizmat++ cheers, let me rebuild and check that out 10:29
hahainternet wamba: that's an interesting one 10:38
i don't know why that works
RabidGravy lizmat++ yep that's great thanks! It's probably an incentive to find a better way to capture the "execution context" of the log messages, which was on my TODO as Backtrace is a little slow 10:45
gfldex m: my @a=1,2; say so all(1 X=> @a) (elem) set(1=>1,1=>2) 10:46
camelia rakudo-moar c35c56: OUTPUT«False␤»
gfldex m: my @a=1,2; say so all(1 X=> |(1,2)) (elem) set(1=>1,1=>2)
camelia rakudo-moar c35c56: OUTPUT«False␤»
gfldex wamba: ^^^ 10:47
Zoffix m: my @a = 1, 2; dd all(1 X=> @a)
camelia rakudo-moar c35c56: OUTPUT«all(1 => 1, 1 => 2)␤»
Zoffix m: my @a = 1, 2; dd all(1 X=> 1,2)
camelia rakudo-moar c35c56: OUTPUT«all(1 => 1, 1 => 2)␤»
hahainternet gfldex: what was with the true though?
Zoffix m: my @a = 1, 2; dd all(1 X=> |(1,2))
camelia rakudo-moar c35c56: OUTPUT«all(1 => 1 => 2)␤»
Zoffix I don't get it
hahainternet shrugs, confused 10:48
Zoffix The @a and 1,2 produce exactly the same junction. the |(1,2) is a different junction
gfldex m: my @a=1,2; dd 1 X=> @a; dd 1 X=> (1,2); 10:49
camelia rakudo-moar c35c56: OUTPUT«(1 => 1, 1 => 2).Seq␤(1 => 1, 1 => 2).Seq␤»
gfldex odd
Zoffix m: my @a=1,2; dd (1 X=> @a)».WHICH; dd (1 X=> (1,2))».WHICH; dd (1=>1,1=>2)».WHICH 10:50
camelia rakudo-moar c35c56: OUTPUT«(ObjAt.new, ObjAt.new)␤("Pair|Int|1|Int|1", "Pair|Int|1|Int|2")␤("Pair|Int|1|Int|1", "Pair|Int|1|Int|2")␤»
Zoffix wamba, ^ set membership uses WHICH and apparently 1 X=> @a creates different .WHICHes... 10:51
gfldex i'm not sure if Junctuin (elem) Set makes sense at all 10:51
gregf_ *looks like haskell.. all those brackets* 10:52
hahainternet how would you slip that @a into that?
gfldex does the (elem) operator collapse the Junction to Bools? 10:53
lizmat (elem) would collapse the junction to a Set, and a Set is a hash of Bool 10:54
hmmm...
Zoffix m: my @a=1,2; dd (1 X=> (|@a))».WHICH; dd (1 X=> (1,2))».WHICH; dd (1=>1,1=>2)».WHICH 10:55
camelia rakudo-moar c35c56: OUTPUT«("Pair|Int|1|Pair|77003600",)␤("Pair|Int|1|Int|1", "Pair|Int|1|Int|2")␤("Pair|Int|1|Int|1", "Pair|Int|1|Int|2")␤»
Zoffix ¯\_(ツ)_/¯
hahainternet yeah Zoffix i'm confused too!
Zoffix m: my @a=1,2; dd (1 X=> (|@a)) 10:56
camelia rakudo-moar c35c56: OUTPUT«(1 => 1 => 2,).Seq␤»
gfldex m: my @a=1,2; dd all(1 X=> @a).Set;
camelia rakudo-moar c35c56: OUTPUT«all(set(1), set(1))␤»
Zoffix m: my @a=1,2; dd all(1 X=> (1,2)).Set; 10:57
camelia rakudo-moar c35c56: OUTPUT«all(set(1), set(1))␤»
gfldex m: my @a=1,2; dd all(1 X=> |(1,2)).Set;
camelia rakudo-moar c35c56: OUTPUT«all(set(1))␤»
Zoffix m: dd set(1=>1,1=>2)
camelia rakudo-moar c35c56: OUTPUT«set(1 => 2,1 => 1)␤»
Zoffix IMO, this stuff should be reported as a bug. It's certainly confusing and unexpected behaviour. 10:58
wamba, would you mind reporting it and include the link to this conversation? irclog.perlgeek.de/perl6/2016-07-04#i_12780360
Zoffix runs to work
lizmat Zoffix: afaik, this is according to design 10:59
gfldex m: dd (1=>1, 1=>2).Set; dd all(1=>1, 1=>2); dd all(1=>1, 1=>2).Set 11:00
camelia rakudo-moar c35c56: OUTPUT«set(1)␤all(1 => 1, 1 => 2)␤all(set(1), set(1))␤»
gfldex m: dd (1=>1, 1=>2).Set # doesn't looks right to me 11:02
camelia rakudo-moar c35c56: OUTPUT«set(1)␤»
llfourn what's the correct answer? 11:03
gfldex m: dd (1=>1, 1=>2).keys.Set
camelia rakudo-moar c35c56: OUTPUT«set(0,1)␤»
gfldex m: dd (1=>1, 1=>2).values.Set
camelia rakudo-moar c35c56: OUTPUT«set(1)␤»
gfldex m: dd (1=>1, 1=>2).pairs.Set
camelia rakudo-moar c35c56: OUTPUT«set(0,1)␤»
Zoffix lizmat, to me it looks like the failure is due to how stuff is represented internally. Both versions produce all(1 => 1, 1 => 2). Isn't it just a matter of this particular implementation that @a and (1,2) produce different .WHICH in the X=> list?
llfourn hmmm that 0 looks wrong
moritz PSA: If hack hangups kill your IRC sessions, there's now a separate host available for IRC only. If you want an account, please talk to me. 11:05
llfourn (oh wait no that 0 is right)
(you did keys on a List not a Set)
gfldex m: dd (1=>2).Set 11:06
camelia rakudo-moar c35c56: OUTPUT«set(1)␤»
Zoffix And that looks weird too
llfourn that's correct
Zoffix Is it?
llfourn yes
gfldex that's a Set of Pairs
Zoffix I'd expect a set with one pair in it
llfourn no then you need to put more () I think 11:07
Zoffix m: dd (Pair.new: 2, 3).Set
camelia rakudo-moar c35c56: OUTPUT«set(2)␤»
llfourn dd ((1=>2)).Set
Zoffix m: dd ((Pair.new: 2, 3),).Set
camelia rakudo-moar c35c56: OUTPUT«set(2)␤»
llfourn m: dd ((1=>2)).Set
camelia rakudo-moar c35c56: OUTPUT«set(1)␤»
llfourn hmm
moritz .tell masak I've created a shell account for you on irc.p6c.org, which should be more stable for IRC session than hack. Password is the same as on hack. Enjoy!
yoleaux moritz: I'll pass your message to masak.
llfourn sorry, yeah if you can't have pairs in a set that does seem wrong 11:07
m: (set (a => b)).keys[0].^name.say 11:08
camelia rakudo-moar c35c56: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ b used at line 1␤␤»
llfourn m: (set (a => "b")).keys[0].^name.say
camelia rakudo-moar c35c56: OUTPUT«Pair␤»
llfourn eh it seems to work there
m: ( (a => "b")).Set.keys[0].^name.say 11:09
camelia rakudo-moar c35c56: OUTPUT«Str␤»
llfourn maybe it's a .Set issue
gfldex method Set() is nodal { Set.new-from-pairs(self.list) } # defined in Any.pm
(and not doced) 11:10
llfourn m: ( Pair.new("a","b") ).Set.keys[0].^name.say
camelia rakudo-moar c35c56: OUTPUT«Str␤»
llfourn m: ( Pair.new("a","b"), ).Set.keys[0].^name.say
camelia rakudo-moar c35c56: OUTPUT«Str␤»
llfourn m: [ Pair.new("a","b"), ].Set.keys[0].^name.say
camelia rakudo-moar f829f6: OUTPUT«Str␤»
ZoffixMobile m: dd ((:2foo) => True).Set 11:12
camelia rakudo-moar f829f6: OUTPUT«set(:foo(2))␤»
lizmat fwiw, I think the .Set behaviour was decided about 2 years ago after long deliberations 11:12
by TimToady 11:13
anyways, that's my recollection :-)
llfourn lizmat: do you remember if it was decided that it should be different to &set (because it is)
llfourn m: [ Pair.new("a","b"), ].Set.keys[0].^name.say; set( Pair.new("a","b") ).keys[0].^name.say 11:14
camelia rakudo-moar f829f6: OUTPUT«Str␤Pair␤»
gfldex m: my $set = Set.new-from-pairs(1=>Any); dd $set; 11:15
camelia rakudo-moar f829f6: OUTPUT«Set $set = set()␤»
llfourn gfldex: that's expected though => creates named arguments
gfldex m: my $set = Set.new-from-pairs([1=>Any]); dd $set; 11:16
camelia rakudo-moar f829f6: OUTPUT«Set $set = set()␤»
llfourn and Any is False :) 11:16
llfourn wait nvm you're right there :) 11:16
gfldex if i got pairs for foo and type objects, i can't have a Set of those. 11:17
llfourn yeah to me it's kinda strange that it does a .new-from-pairs rather than just .new 11:18
lizmat llfourn: yes, because .Set is a coercer
and set() is a builder
again, according to memory :-)
gregf_ m: say :10a.^name 11:19
camelia rakudo-moar f829f6: OUTPUT«Pair␤»
llfourn hmm ok well as long as it is intended :)
gfldex m: my $set = Set.new(List,Hash,Str); dd $set;
camelia rakudo-moar f829f6: OUTPUT«Set $set = set(List,Hash,Str)␤»
gfldex m: my $set = Set.new(['obj1'=>List,'obj2'=>Hash,'obj3'=>Str]); dd $set; 11:20
camelia rakudo-moar f829f6: OUTPUT«Set $set = set(:obj3(Str),:obj2(Hash),:obj1(List))␤»
lizmat llfourn: well, maybe the intent in hindsight is wrong
gfldex m: my $set = Set.new('obj1'=>List,'obj2'=>Hash,'obj3'=>Str); dd $set;
camelia rakudo-moar f829f6: OUTPUT«Set $set = set(:obj3(Str),:obj2(Hash),:obj1(List))␤»
gfldex m: my $set = Set.new-from-pairs(['obj1'=>List,'obj2'=>Hash,'obj3'=>Str]); dd $set;
camelia rakudo-moar f829f6: OUTPUT«Set $set = set()␤»
gfldex i do not agree
lizmat fwiw, new-from-pairs is supposed to be an internal method 11:21
well, internal to the core, I think
gfldex that is called by Any.Set
llfourn lizmat: I can't think of many circumstances where if I called .Set on a list of Pairs, that I would want a Set of only the .key of the Pairs in the list
gfldex so i don't really have a choise in calling it 11:22
ZoffixMobile_ m: my $set = Set.new-from-pairs('obj1'=>Li​st,'obj2'=>Hash,'obj3'=>Str); dd $set;
camelia rakudo-moar f829f6: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in argument list; couldn't find final ')' ␤at <tmp>:1␤------> 3my $set = Set.new-from-pairs('obj1'=>Li7⏏5​st,'obj2'=>Hash,'obj3'=>Str); dd $set;␤ expecting any of:…»
ZoffixMobile_ huh
llfourn coercion I don't think would be an exception -- but I guess it depends on what you're up to
lizmat hmmm... the code does have a # XXX GLR do these really need to force a list? above it 11:23
gfldex %e{.key.WHICH} //= $_.key if .value; # (line 44 in Setty.pm) 11:25
shouldn't that be with instead of if?
lizmat gfldex: fwiw, that code predates the existence of with 11:26
gfldex i guessed as much
lizmat I guess the most confusing is, is that Set.new follows the single arg rule 11:27
m: my @a = ^10l; dd Set.new(@a)
camelia rakudo-moar f829f6: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Confused␤at <tmp>:1␤------> 3my @a = ^107⏏5l; dd Set.new(@a)␤»
lizmat m: my @a = ^10; dd Set.new(@a)
camelia rakudo-moar f829f6: OUTPUT«set(5,7,9,4,8,3,0,1,6,2)␤»
lizmat m: my @a = ^10; dd Set.new(@a,@a)
camelia rakudo-moar f829f6: OUTPUT«set($[0, 1, 2, 3, 4, 5, 6, 7, 8, 9])␤»
lizmat and .Set does not
that just follows List constructor rules 11:28
and .Set on a list tries to interprete the List as pairs
gfldex on pairs where the values have to pass a test 11:29
lizmat compare these: 11:29
m: dd (1=>2,3=>4).Hash
camelia rakudo-moar f829f6: OUTPUT«Hash % = {"1" => 2, "3" => 4}␤»
gfldex I have problems with the whole thing because I asked myself the question, how the hell do I phrase that in the docs?
lizmat m: dd (1=>2,3=>4).Set 11:30
camelia rakudo-moar f829f6: OUTPUT«set(3,1)␤»
gfldex maybe writing the docs late wasn't to optimal :)
lizmat m: dd (1=>2,3=>4).Bag
camelia rakudo-moar f829f6: OUTPUT«(3=>4,1=>2).Bag␤»
lizmat I think this behaviour is consistent between Hash/Set/Bag, once you reailize that Set is a Hash of Bool 11:31
llfourn m: dd (1=>2,3=>4).Hash.Set 11:31
camelia rakudo-moar a557a1: OUTPUT«set("1","3")␤»
lizmat which is the same as: 11:31
lizmat m: dd (1=>2,3=>4).Hash.pairs.Set 11:31
camelia rakudo-moar a557a1: OUTPUT«set("1","3")␤»
ilmari m: dd (1=>-2,3=>4).Hash.Bag 11:32
camelia rakudo-moar a557a1: OUTPUT«Use of Nil in string context in block <unit> at <tmp> line 1␤Use of Nil in string context in block <unit> at <tmp> line 1␤Found negative values for in ␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1…»
ilmari m: dd (1=>0,3=>4).Hash.Bag 11:32
camelia rakudo-moar a557a1: OUTPUT«("3"=>4).Bag␤»
ilmari and Bag is a Hash of Int where * > 0
lizmat m: dd (1=>0,3=>4).Hash.Set 11:33
camelia rakudo-moar a557a1: OUTPUT«set("3")␤»
gfldex that's line 44 for you :)
gregf_ m: say (1=>0,3=>4).^name 11:34
camelia rakudo-moar a557a1: OUTPUT«List␤»
lizmat fwiw, Set and Bag/Mix are still in my crosshairs :-) 11:35
gregf_ m: say {1=>0,3=>4}.^name
camelia rakudo-moar a557a1: OUTPUT«Hash␤»
wamba m: my @a=1,2; say so all(1 X=> @a) (elem) set(1=>1,1=>2) 11:36
lizmat: so, Is it OK, or not?
camelia rakudo-moar a557a1: OUTPUT«False␤»
gfldex (future Any.pod) method Set \n Will create a Set from a single value or Positional. If the elements are Pairs, values are checked for Bool::True. Please note thet C<0> boolifies to False.
i'm somehow reluctant to write that 11:37
wamba: i vote for bug
lizmat please RT it so it does't fall through the cracks 11:39
wamba m: my @a=1,2; say so all(1 X=> @a.List) (elem) set(1=>1,1=>2) 12:01
camelia rakudo-moar a557a1: OUTPUT«True␤»
wamba hm, this works
m: say so all(1 X=> (1,2).Array) (elem) set(1=>1,1=>2) 12:02
camelia rakudo-moar a557a1: OUTPUT«False␤»
gfldex does htmlify.p6 understand X<> inside tables? 12:36
moritz I don't think it understand any markup in tables, but I could be wrong
timotimo correct, our pod parser doesn't do tablet well yet 12:38
i mean, it just doesn't do formatting codes inside tables yet at all
gfldex i just found myself wanting a ?// !!, equivalent to with 12:42
if ?? !! actually an operator or is it syntaxy?
s/if/is/ 12:43
lizmat afk& 12:44
psch ?? !! is syntax, currenlty 12:48
no idea if that'll change either
'$a ?// $b !! $c' is '$a.defined ?? $b !! $c'? 12:49
gfldex yes 12:50
m: class DefinedAlternation is Bool; sub infix:<?//>(\a, \b -->DefinedAlternation){ with a { with b { return DefinedAlternation.new(True) } } DefinedAlternation.new(False) }
camelia rakudo-moar a557a1: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Bool does not support inheritance, so DefinedAlternation cannot inherit from it␤at <tmp>:1␤»
gfldex :(
i do agree that inheritance from enums does not compute 12:51
psch why do you even need that type there?
MasterDuke it's in the operator docs, docs.perl6.org/language/operators#...%3F_%21%21
gfldex if i got a type returned from infix:<?//>) i can define infix:<!!> to handle that type and get what i want 12:52
psch gfldex: but isn't Bool enough?
gfldex i will try that next
Ven o/ 12:53
yoleaux 19 Jun 2016 11:59Z <brrt> Ven: thanks
psch MasterDuke: well, from an implementation POV it's not really an operator, but a special parsing construct
MasterDuke: note that it doesn't fit with any of the foofix operator categories we have
MasterDuke yeah, wonder if that distinction should be made in the docs 12:54
timotimo well, we'd really want to have multi-infixes custom-definable in the future
Ven timotimo: I'm going to get back my `?:` syntax :P
I'm toying with nested sets, and I wrote something to "foreach" them. gist.github.com/anonymous/bbe5e2d7...c51389e76a I, however, would like a better way to write this `while`, instead of this ugly `if ... then last` 12:55
psch make it "last if ..."? :) 12:56
Ven that's syntactic bikeshedding ;)
gfldex m: class DefinedAlternationContainer { has $.item; has $.condition-was-defined }; sub infix:<?//>(\a, \b -->DefinedAlternationContainer) { with a { return DefinedAlternationContainer.new(item => b, condition-was-defined => True) }; DefinedAlternationContainer.new(item => Any, condition-was-defined => False) }; sub infix:<!!>(DefinedAlternationContainer:D \cont, \b){ cont ?? cont.item !! b }; my $v = 2 but 13:09
camelia rakudo-moar a557a1: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing required term after infix␤at <tmp>:1␤------> 3 cont ?? cont.item !! b }; my $v = 2 but7⏏5<EOL>␤ expecting any of:␤ prefix␤ term␤»
gfldex False; dd $v ?// 2 !! 4
ELINETOLONG 13:10
jkramer Ahoy again! 13:10
RabidGravy Hmm, I think I am either going to have to scrap IO::Path::Mode completely or make a completely incompatible change
jkramer Is there a way to override a method in an object on-the-fly? Something like: my $foo = Foo.new { method some-method { do something different than Foo.some-method } } 13:11
gfldex m: gist.github.com/gfldex/02998dc3927...2784b72152
camelia rakudo-moar a557a1: OUTPUT«2␤»
gfldex (Perl 6)++
psch m: class A { method foo { "foo" } }; my $a = A.new but role { method foo { "bar" } }; say $a.foo 13:12
camelia rakudo-moar a557a1: OUTPUT«bar␤»
MasterDuke RapidGravy: whoops, didn't realize that existed when i added IO::Path.mode 13:14
RabidGravy it's fine, I should have been paying more attention :) 13:15
gfldex m: class A { method m(){ say 'A::m' } }; my $a = A.new; $a = $a but role { method m(){ say '::m' } }; $a.m; 13:16
camelia rakudo-moar a557a1: OUTPUT«::m␤»
gfldex jkramer: you can mixin with but at any given time
Ven m: class A { method m(){ say 'A::m' } }; my $a = A.new; $a but= role { method m(){ say '::m' } }; $a.m; 13:17
camelia rakudo-moar a557a1: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot make assignment out of but because structural infix operators are too diffy␤at <tmp>:1␤------> 3{ say 'A::m' } }; my $a = A.new; $a but=7⏏5 role { method m(){ say '::m' } }; $a.m;␤»
Ven aw :D.
where can I get a diffyness-reducer, I wonder
MasterDuke m: class A { method m(){ say "A::m" } }; my $a = A.new; $a but role { method m(){ say "::m" } }; $a.m; 13:20
camelia rakudo-moar a557a1: OUTPUT«A::m␤»
MasterDuke m: class A { method m(){ say "A::m" } }; my $a = A.new but role { method m(){ say "::m" } }; $a.m;
camelia rakudo-moar a557a1: OUTPUT«::m␤»
MasterDuke Ven: ^^^^
RabidGravy Oooh, no that works. Rather than augmenting the IO::Path to add the mode method, I can just over-write the method if it's there or add_method it if it isn't 13:24
Ven MasterDuke: ? 13:26
not sure how that relates to `but=`?
MasterDuke m: class A { method m(){ say "A::m" } }; my $a = A.new; $a = $a but role { method m(){ say "::m" } }; $a.m; 13:28
camelia rakudo-moar a557a1: OUTPUT«::m␤»
MasterDuke looks like it works explicitly, but you're right, no 'but=' 13:29
MasterDuke non-modifiable by design it appears, docs.perl6.org/routine/but 13:33
timotimo you mean modifying 13:34
Ven yeah, we have "does" if we want to mutate :)
tbrowder re RT: I sent a help msg to support earlier today and I look forward to a helpful response. 13:37
b2gills I just heard back from an issue I raised on ideone almost a month ago, they fixed some of the problems I mentioned but are going to wait until the next language maintenance to upgrade ( they have 2014.07 currently ) 13:41
gregf_ m: class A { method m(){ say "A::m" } };role B { method m(){ say "::m"; } }; (A.new does B).m; 14:00
camelia rakudo-moar a557a1: OUTPUT«::m␤»
timotimo m: my $foo = "hello"; say "$foo.replace("e", "a").foo.bar" 14:01
camelia rakudo-moar a557a1: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Confused␤at <tmp>:1␤------> 3lo"; say "$foo.replace("e", "a").foo.bar7⏏5"␤»
timotimo ^- IMO this shouldn't say confused, it should call the replace and just concatenate .foo.bar
moritz agreed 14:05
MasterDuke m: sub LEVCAPTEST() {say "hi"}; levcaptest(); 14:15
camelia rakudo-moar a557a1: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ levcaptest used at line 1. Did you mean 'LEVCAPTEST'?␤␤»
MasterDuke m: sub LEVCAPTEST() {say "hi"}; LEVCAPTESt(); 14:16
camelia rakudo-moar a557a1: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared name:␤ LEVCAPTESt used at line 1␤␤»
MasterDuke m: sub LEVCAPTEST() {say "hi"}; lEVCAPTEST();
camelia rakudo-moar a557a1: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ lEVCAPTEST used at line 1. Did you mean 'LEVCAPTEST'?␤␤»
MasterDuke ^^^^ doesn't seem right
jkramer gfldex: Thanks, that works fine! 14:18
BrokenRobot MasterDuke: what is? The suggestion? 14:19
jkramer Damn, I was trying to find out why a value in a Hash was a List and not a single object for half an hour. The assignment was %foo{'asd'} = $bar, (command, no semicolon at the end) :(
geekosaur dissenting opinion re the embedded replace: it should not error, but it should only expand $foo --- not get itself into arbitrary length parsing, unless I used {}
jkramer There should be a warning for that
MasterDuke a single difference at the end (or middle) of the name says 'Undeclared name', but differences starting at the start of the name says 'Undeclared routine' 14:20
geekosaur in particular, I don't think you can rationally process the inner quotes because they're the same as the outer quotes
(which indeed is where the "Confused" comes from; that should be a better message) 14:21
MasterDuke m: my @neighbors = <Tom Dick Harry>; say [email@hidden.address] ') and I try our best to coexist peacefully."
camelia rakudo-moar a557a1: OUTPUT«Tom, Dick, Harry and I try our best to coexist peacefully.␤»
MasterDuke m: my @neighbors = <Tom Dick Harry>; say [email@hidden.address] ") and I try our best to coexist peacefully."
camelia rakudo-moar a557a1: OUTPUT«Tom, Dick, Harry and I try our best to coexist peacefully.␤»
MasterDuke it works with either quotes 14:21
geekosaur that's going to confuse the heck out of people, judging by how they react to $() in POSIX shells 14:25
stmuk .tell tadzik github.com/tadzik/Getopt-Type/pull/1 14:26
yoleaux stmuk: I'll pass your message to tadzik.
MasterDuke BrokenRobot: i would say it definitely should suggest LEVCAPTEST for both lEVCAPTEST and LEVCAPTESt, and arguably for levcaptest (i.e., do a case insensitive comparison) as well 14:27
tadzik stmuk: thanks, merged 14:30
yoleaux 14:26Z <stmuk> tadzik: github.com/tadzik/Getopt-Type/pull/1
stmuk Zoffix++ # actually doing the fix 14:37
BrokenRobot MasterDuke: personally I wouldn't care about it. I didn't even notice the name/subroutine. As for the comparisons, it's using Levenstein distance to find suggestions, isn't it? It's black magic to me so I don't know if it can be amended to include stuff for this case too 14:56
MasterDuke i'm looking into exactly how it's doing things now 14:58
timotimo i think it's in the beginning of either actions or world .nqp 14:59
MasterDuke but i'd say the current behavior is at least LTA
timotimo we differentiate based on capitalization because classes are usually upper cased, subroutines are usually lower-cased
so if we expect a type in a place, we only look for upper-cased things
but if we're looking for a sub, we look for lower-cased things only
MasterDuke yep, oddly enough, if i copy the levenshtein implementation out to its own file, rakudo segfaults when trying to run it, but nqp is fine
timotimo nqp code and perl6 code aren't 100% compatible 15:00
segfaulting is a bit too much, though
BrokenRobot huggable: cli rt :is: Use RT via CLI: rt.perl.org/rt-cli.html has the docs on getting it setup. See handy script: github.com/coke/rt-six-help
huggable BrokenRobot, Added cli rt as Use RT via CLI: rt.perl.org/rt-cli.html has the docs on getting it setup. See handy script: github.com/coke/rt-six-help
MasterDuke i see there's different costs for case differences
BrokenRobot huggable: rt cli :is: Use RT via CLI: rt.perl.org/rt-cli.html has the docs on getting it setup. See handy script: github.com/coke/rt-six-help 15:01
huggable BrokenRobot, Added rt cli as Use RT via CLI: rt.perl.org/rt-cli.html has the docs on getting it setup. See handy script: github.com/coke/rt-six-help
timotimo hack.p6c.org/~timo/coverage/ - check it out 15:03
BrokenRobot timotimo: what is that? Roast coverage? 15:04
timotimo yup
plus/minus some inaccuracies that make little sense
BrokenRobot Funny... I was just trying to locate all those Tests Needed tickets to work on them for a bit. 15:05
RT sucks tho. Don't see such an option in the search interface on web
moritz BrokenRobot: are you logged in?
BrokenRobot Yeah
Well, I see no field to add "tickets with this tag" 15:06
timotimo now you have to praise me (pretty please)
BrokenRobot timotimo++ Is that stuff available to do coverage for any Perl 6 module? 15:07
timotimo there's some places where lines that are immediately consecutive aren't the same color 15:07
maybe that gets better when disabling spesh? dunno.
yeah, it's an addition to moar that i'd like to push to master 15:08
BrokenRobot :o
timotimo✚✚ then :D 15:09
MasterDuke very cool. timotimo++. however, the pages for the individual results seem odd 15:10
BrokenRobot [Coke]: a suggestion when making such requests is to include the list of tickets: irclog.perlgeek.de/perl6/2016-07-01#i_12770367 15:11
timotimo odd in what way?
MasterDuke e.g., hack.p6c.org/~timo/coverage/src_cor...erage.html seems to actually be for IO::Pipe
BrokenRobot [Coke]: I've no idea how to locate them and now RT pissed me off enough that I gone off the idea of doing those tickets ~_~
timotimo oh, huh
psch BrokenRobot: filtering for RT tickets with a given tag only works with a custom search
MasterDuke same with a couple other IO pages i looked at 15:12
psch BrokenRobot: e.g. the jvm-tag is "CF.VM = 'JVM'"
BrokenRobot psch: I've no idea how to use that custom search.
psch ...although we do have VM listed in the left side in the drop downs now it seems
BrokenRobot There are no instructions. Just a blank box
timotimo you can check the line_based_coverage_3 branch in moarvm
in tools/ there's the script that i use to generate the html from the data it generates 15:13
psch BrokenRobot: well, the Query Builder looks intuitive enough to my eyes... you can select criteria on the left side, click "Add these terms" and then the side reloads and the criteria show up on the right side..?
that's under "Tickets" => "New Search"
ah, right, and clicking "Advanced" gets you a textarea to edit the query manually, which is how i added CF.VM 15:14
although, yeah, that shows up in the Query Builder now vOv 15:15
timotimo perl6 ../moarvm/tools/parse_coverage_report.p6 --annotations=core_setting_dump.txt spectest_core_only.txt gen/moar/m-CORE.setting - this is how i invoked my tool
BrokenRobot psch: what shows up in the query builder? 15:15
timotimo you get the core_setting_dump.txt with moar --dump CORE.setting.moarvm
psch BrokenRobot: the VM tag
well, custom field, not tag 15:16
BrokenRobot I think I got it.
And of course, I can't save this search URL because it'll cry about CSFR right? 15:17
timotimo and setting MVM_COVERAGE_LOG=coverage.%d.txt in your environment when running the spec tests will give you a crapton of files that have HIT filename lineno in them
dalek osystem: cb9ce62 | (Wenzel P. P. Peppmeyer)++ | META.list:
add gfldex/perl6-operator-defined-alternation
timotimo you'll want to grep out m-CORE.setting or what it's called; also, running sort and uniq over it helps make the tool run noticably faster
psch BrokenRobot: you can save the query itself under your RT account 15:18
BrokenRobot 18 minutes to find tickets. Retarded
MasterDuke timotimo: cool, i'll take a look
timotimo thank you
i don't know why, but it took me a lot of energy over the last few days to get that splitting functionality in, even though i basically knew how it'd have to be made
also, the code is super sloppy and hacky and could use some refactoring
and in addition, it's not handling non-split files sensibly at the moment :) 15:19
BrokenRobot m: say "௰".Int 15:22
camelia rakudo-moar a557a1: OUTPUT«10␤»
BrokenRobot m: say "௰".Num
camelia rakudo-moar a557a1: OUTPUT«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␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
psch m: say "௰e0".Num
camelia rakudo-moar a557a1: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5௰e0' (indicated by ⏏)␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
BrokenRobot m: say "௰" + 10
camelia rakudo-moar a557a1: OUTPUT«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␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
psch m: say "0.௰e0".Num
camelia rakudo-moar a557a1: OUTPUT«Cannot convert string to number: radix point must be followed by one or more valid digits in '030.⏏5௰e0' (indicated by ⏏)␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
BrokenRobot That's from rt.perl.org/Ticket/Display.html?id=127866 Seems more work is needed
This was the fix to make it work for Int: github.com/rakudo/rakudo/commit/1c...1797f576b3 15:23
psch that looks almost copy-paste-able, at a glance 15:24
BrokenRobot Or moved to self.Numeric instead of being under .Int? 15:25
psch right, that too
BrokenRobot I'll try to fix it :) 15:26
dalek c: 892fd8e | (Wenzel P. P. Peppmeyer)++ | doc/Language/variables.pod6:
add dynamic variables to index
15:41
stmuk .tell ugexe I'm seeing Base64 test failures 15:46
yoleaux stmuk: I'll pass your message to ugexe.
ugexe stmuk: yeah, it seems random. but i think its a bug in the recent multi dispatch cache that was brought up the other day 15:47
yoleaux 15:46Z <stmuk> ugexe: I'm seeing Base64 test failures
dalek c: 80aded1 | (Wenzel P. P. Peppmeyer)++ | doc/Language/functions.pod6:
add reference to @*ARGS to MAIN section
ugexe i say random in that when it failed testing on appveyor i restarted the run and it passed
gfldex docs.perl6.org/type/Nil is a 404 15:48
and Nil is not a type
ugexe stmuk: see irclog.perlgeek.de/perl6/2016-07-02#i_12774635 and the comment by jnthn a few lines under that 15:49
stmuk ugexe: ah thanks I missed that 15:50
dogbert17 o/ #perl6 15:54
m: my $v = Version.new('v1.0'); say $v.gist # should it really look like this?
camelia rakudo-moar a557a1: OUTPUT«vv.1.0␤»
ugexe yes
dogbert17 ugexe: why two v's
travis-ci Doc build failed. Wenzel P. P. Peppmeyer 'add reference to @*ARGS to MAIN section' 15:55
travis-ci.org/perl6/doc/builds/142243981 github.com/perl6/doc/compare/892fd...aded182844
ugexe because you passed it a string that started with a v 15:55
m: my $v = Version.new(v1.0); say $v
camelia rakudo-moar a557a1: OUTPUT«v1.0␤»
dogbert17 but aren't you supposed to do that?
ugexe why should a version be allowed to start with a a, b, or c but not a v?
ugexe m: my $v = v1.0; say $v.perl 15:57
camelia rakudo-moar a557a1: OUTPUT«v1.0␤»
dogbert17 not sure I understand the question :)
m: my $v = Version.new('v1.0'); say $v.perl
camelia rakudo-moar a557a1: OUTPUT«Version.new('v.1.0')␤»
dogbert17 the docs claim that: Version literals can only contain numeric and Whatever parts. They start with a lower-case v, 15:58
ugexe you aren't passing a literal
you are passing a string
BrokenRobot m: say v1.0
camelia rakudo-moar a557a1: OUTPUT«v1.0␤»
TimToady m: say v6.c
camelia rakudo-moar a557a1: OUTPUT«v6.c␤»
BrokenRobot m: say v1.0 === Version.new: "1.0"
camelia rakudo-moar a557a1: OUTPUT«True␤»
BrokenRobot dogbert17: ^ 15:59
dogbert17 ugexe: aha, the fog is beginning to clear
help here is excellent :-)
BrokenRobot m: say v௰ 16:00
camelia rakudo-moar a557a1: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Bogus postfix␤at <tmp>:1␤------> 3say v7⏏5௰␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statement modifier␤ statem…»
dogbert17 so if I want to create a version object from a string I should drop the 'v'? 16:01
BrokenRobot m: say Version.new: "௰"
camelia rakudo-moar a557a1: OUTPUT«v␤»
BrokenRobot dogbert17: yeah
gfldex docs.perl6.org/language.html is this to short on the live server?
BrokenRobot What do you mean "to short"? 16:02
ugexe usually. but naturally you'll get someone who denotes their versions in only "v"s and complaisn that his version "vvvvv" isnt working right
BrokenRobot gfldex: oh, yeah, it is 16:03
dogbert17 ugexe: thanks for the wisdom
BrokenRobot I wonder if it's that parallel build stuff and one of the threads crapped out
gfldex travis is angry with Pod::To::HTML travis-ci.org/perl6/doc/builds/142243981
ugexe or Version.new("v.iii") # roman numeral
gfldex i have problems with threadings in Pod::To::BigPage as well 16:04
BrokenRobot m: say Version.new: "ᵛ⁶"
camelia rakudo-moar a557a1: OUTPUT«vᵛ␤»
BrokenRobot That's somewhat LTA :) 16:05
m: say Version.new("ᵛ⁶") === Version.new("ᵛ⁷")
camelia rakudo-moar a557a1: OUTPUT«True␤»
gfldex tests for Pod::To::HTML do work locally for me 16:06
ugexe m: say Version.new("x.1") > Version.new("x.0.9") # also remember versions still have some more work to be done 16:07
camelia rakudo-moar a557a1: OUTPUT«True␤»
ugexe oops thats not what i meant
but what i did mean appears to be fixed. cool
timotimo i can have versions snowman and comet of my module? :D 16:09
dogbert17 i was looking into documenting gist, Str etc hence the question. I get easily confused sometimes :)
ugexe m: say Version.new("x")cmp 1; # heh expected a syntax error at first thought
camelia rakudo-moar a557a1: OUTPUT«More␤»
BrokenRobot Last build log for doc: docs.perl6.org/build-log/build-201...0+0000.log 16:10
MasterDuke: I didn't look at your parralelzizidsaikasdkm commit for htmlify.p6, but is it possible it's processing, say Language, docs and stores the processed docs in a shared array or something, so that when the index page is generated, only the docs processed by one/some threads get into the list? 16:12
'cause in the log I see it builkding all of them, but the index has just part of them, 16:13
geekosaur or parallel stuff just throwing fits again per usual 16:14
dalek c: d41f52e | (Wenzel P. P. Peppmeyer)++ | util/update-and-sync:
disable --parallel for now
16:15
BrokenRobot Yeah. It did say "writing" for unicode, but the file ain't here: docs.perl6.org/language/unicode_texas 16:20
dogbert17 too bad it's not working since the build time was quite fast: Processing complete. real 1m8.183s user 1m14.720s 16:22
travis-ci Doc build failed. Wenzel P. P. Peppmeyer 'disable --parallel for now' 16:23
travis-ci.org/perl6/doc/builds/142250644 github.com/perl6/doc/compare/80ade...1f52ec5680
BrokenRobot tehe 16:23
dogbert17 the trailing ws test strikes 16:24
tbrowder (choke) I guess the public doc languages page is broken...any ETA?
BrokenRobot We definitely need a hook. Unbreaking builds all the time will be annoying
tbrowder: that's what the conversation for the past 15 minues has been about :) 16:25
BrokenRobot goes in to fix the spacing tests
MasterDuke BrokenRobot: i don't see anything in what i did to break the index page
gfldex travis and the borked build seam to be unrelated 16:26
ugexe it was broke in the commit before yours 16:27
MasterDuke ugexe: it was broken before my commit?
ugexe oops you aren't talking about that travis build failure 16:28
HEAD~2 on p6doc was the build failure 16:29
BrokenRobot God damn 16:29
Says it's on line 26 of doc/Language/functions.pod6 16:30
I don't see anything there and I'm trying to run perl -pi -e 's/\s+$//m' doc/Language/functions.pod6 but the diff shows me entire file changed by that
dalek c: 19462fa | (Zoffix Znet)++ | doc/Language/functions.pod6:
Remove trailing whitespace
16:31
BrokenRobot looks at edit history 16:32
Ah, it was gfldex's whitespace :) 16:33
gfldex :(
i blame vim's gq
gfldex goes to study ':set list' 16:36
BrokenRobot Hm.. Well, I found a white-space remove pre-commit hook, but I've no idea how to make that part of the repo gist.githubusercontent.com/mxgrn/6...stfile1.sh 16:38
fkit 16:40
gfldex tbrowder: docs are fixed 16:41
(for now) 16:42
BrokenRobot So do we know 100% it was the parallelajfadsedsklwayt stuff? 16:47
I'm just gonna create an issue so we don't forget 16:48
travis-ci Doc build passed. Zoffix Znet 'Remove trailing whitespace' 16:50
travis-ci.org/perl6/doc/builds/142254117 github.com/perl6/doc/compare/d41f5...462fafd253
BrokenRobot github.com/perl6/doc/issues/664 16:53
dogbert17 ugexe brokenrobot: what do you think about gist.github.com/dogbert17/951106b1...1c4753d3e6 16:54
BrokenRobot So along with 666 modules in the ecosystem powered by Mojolicious v6.66, and having 666 redit users on /r/perl6, we now [almost] reached 666th Issues on the docs :)
dogbert17: what is that plus about? 16:55
ugexe dogbert17: normally you would just use v1.0.1, not Version.new(<literal>). Otherwise you are just passing in a literal version to get a version 16:56
dogbert17 BrokenRobot: "A trailing + indicates that higher versions are OK in comparisons" 16:58
BrokenRobot It's weird that if you go to docs.perl6.org/type/Version and click 'Str' method in 'provided by Mu' You actually get to description of val() subroutine: docs.perl6.org/routine/Str#class_Mu
ugexe m: .WHAT.say for v1.0.1
camelia rakudo-moar a557a1: OUTPUT«(Version)␤»
dogbert17 ugexe: I'll fix that, thx for checking
BrokenRobot: I can drop the plus signs if you want 17:00
BrokenRobot dogbert17: nah, it's fine. I just didn't know of that feature. 17:04
dalek c: c79e637 | (Jan-Olof Hendig)++ | doc/Type/Version.pod6:
Added docs for methods Str and gist. ugexe++ BrokenRobot++
17:06
dalek albot: 583120d | peschwa++ | evalbot.pl:
Dont do nqp-p and nqp-j on nqp
17:08
BrokenRobot How can I create a new Str via .new? I'm trying to make a subclass 17:29
m: say Str.new: "foo" 17:30
camelia rakudo-moar a557a1: OUTPUT«Default constructor for 'Str' only takes named arguments␤ in block <unit> at <tmp> line 1␤␤»
ugexe m: say Str.new(value => "xxx")
camelia rakudo-moar a557a1: OUTPUT«xxx␤»
BrokenRobot ugexe++ thanks 17:31
parabolize 「1 X=> |(1, 2)」 is 「1 => 1 => 2」 which is 「1 => (1 => 2)」 not 「1 => 1, 1 => 2」 so 「so all(1 X=> |(1, 2)) (elem) set(1 => 1, 1 => 2)」 is False 17:32
「1 X=> 1, 2」 and 「1 X=> \(1, 2)」 seem to work though 17:33
psch m: say 1 X=> |(1,2)
camelia rakudo-moar a557a1: OUTPUT«(1 => 1 => 2)␤»
psch m: say 1 => |(1,2)
camelia rakudo-moar a557a1: OUTPUT«1 => (1 2)␤»
psch parabolize++
nine ugexe: any thoughts about these? github.com/rakudo/rakudo/commit/5b3a09969d github.com/rakudo/rakudo/commit/ac19874266 17:42
sena_kun Hi, #perl6. Am I the only one who can't use Test::Builder module? With rakudo of last month it gives me pastie.org/private/dugjixmlif97qcoh86hxw 17:49
BrokenRobot sena_kun: I know what the issue is :)
sena_kun BrokenRobot, a-a-a-and this is? 17:50
nine sena_kun: github.com/perl6-community-modules...er.pm#L159 the * is just wrong
ugexe nine: is the gist of this like CUR.new("inst#non/p6lib/path") which can then be copied to "inst#whatever/site"? 17:51
nine sena_kun: there's no reason to pass it to bless and now it's actively harmful.
BrokenRobot sena_kun: sent a PR: github.com/perl6-community-modules...der/pull/3
I don't have commit perms on perl6-community-modules
sena_kun nine, yes, I was able to detect that. Then should I just delete "(*)"? Aw, okay. Sorry I hadn't look in the PRs section before.
BrokenRobot sena_kun: yeah, positionals were removed from bless to gain 180% speed gain (they weren't used anyway). And they were not specced 17:52
nine ugexe: that's the Staging repo's raison d'être, yes. The other change is for supporting custom repository implementations like perl6 -I'CompUnit::Repository::Github#'
ugexe: having the Staging repo in core when it has such a narrow (despite being important) use case felt so wrong that I finally dug into properly supporting custom repo implementations :) 17:54
BrokenRobot :o
That would let people make the BitTorrent-based repos someone wanted :D
nine yep...including full precompilation capabilities :)
BrokenRobot \o/ nine++ 17:55
sena_kun Thanks for the answers and quick fix. 17:56
BrokenRobot m: say val("10").WHAT 18:00
camelia rakudo-moar a557a1: OUTPUT«(IntStr)␤»
BrokenRobot m: say "10".Numeric.WHAT
camelia rakudo-moar a557a1: OUTPUT«(Int)␤»
BrokenRobot How is that possible when Str.Numeric calls val()? :S github.com/rakudo/rakudo/blob/nom/...Str.pm#L93 18:00
"that" being, why is it an Int and not an IntStr? 18:01
BrokenRobot m: say val("10", :val-or-fail).WHAT' 18:03
camelia rakudo-moar a557a1: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3say val("10", :val-or-fail).WHAT7⏏5'␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ state…» 18:03
BrokenRobot m: say val("10", :val-or-fail).WHAT
camelia rakudo-moar a557a1: OUTPUT«(Int)␤»
BrokenRobot That sub looks might scary 18:04
BrokenRobot pretends it didn't see anything
ugexe nine: If I understand then it makes sense, but I don't think you'll want to return IO::Path for `source-file` as I'd expect CUR::Github to treat a remote file like a local file. I suspect `my $WHICH = self.^name ~ '|' ~ $abspath;` may change how CUR::AP/CUR::FS currently load though (probably for the better) 18:08
BrokenRobot m: val("௰", :val-or-fail).say 18:11
camelia rakudo-moar a557a1: OUTPUT«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␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
BrokenRobot Hm
sena_kun And now it breaks in runtime with "Cannot look up attributes in a type object" without even line number. Eh, what an unkind package.
ugexe i've toyed with similar ideas but using Distribution's .content to access the source
buharin hey 18:13
I am looking for PerlGame framework
TimToady we only allow digits in val
௰ is only numeric, not a digit 18:14
nine ugexe: the source-file method is already used that way by CompUnit::RepositoryRegistry::file-for-spec. The implementation in Staging just overrides the one in Locally to pass requests through to the underlying Installation repo if necessary
BrokenRobot TimToady: how come? That's a bit LTA, if I speak whatever language "௰" is an enter that at the terminal prompting me for a number. This started with rt.perl.org/Ticket/Display.html?id=127866 18:15
m: say '௰'.Int
camelia rakudo-moar a557a1: OUTPUT«10␤»
BrokenRobot m: say '௰' + 10
camelia rakudo-moar a557a1: OUTPUT«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␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
BrokenRobot TimToady: And I went to fix the Numeric, but I see it's using val() and I was wondering if val() should be fixed. If not, should Str.Numeric and Str.Int handle No chars?
.u ௰ 18:16
yoleaux U+0BF0 TAMIL NUMBER TEN [No] (௰)
TimToady I think there's enough potential confusion here that we should make programmers use unival if they really need that capability
BrokenRobot TimToady: fair enough. I'll undo the .Int version then. 18:17
TimToady it becomes a teachable moment for the difference between digits and non-digits, and we like those delayed teachable moments 18:18
DrForr buharin: Well volunteered! :) 18:19
buharin not me ;D
pherphaps I should found Perl job first
BrokenRobot buharin: we have a Game Dev group: github.com/PerlGameDev/ 18:20
buharin oh okay 18:21
:)
sena_kun I'll prepare a bit of tests and some fixes for Test::Builder then(hunted "look up" error, at least) tomorrow, if nobody is against. 18:27
timotimo MasterDuke: did you look at the coverage tool yet? 18:53
MasterDuke timotimo: good/bad timing, i got pulled away until just now, but have to leave again in 5 min. i probably won't get a chance for a couple hours 18:55
timotimo that's fine :) 18:56
buharin that what I want to say 19:10
Perl got really strong things
I read about references and it is amazing how can I transform reference to array to scalar etc. 19:11
psch we don't really have references, that's Perl 5 19:12
well, or "everything could be called a reference, but we prefer not to because it's confusing with how Perl 5 uses that term" maybe
buharin ohh I am learning Perl 5 ;D cause I want to get job in it
BrokenRobot buharin: FWIW, there's #perl channel that specializes in Perl 5 19:16
buharin ya I know 19:17
but I like more to stay here
BrokenRobot buharin: how come? 19:18
I mean you can stay here and there at the same time :)
buharin okay :)
DrForr You probably won't learn much perl5 here though. 19:20
dalek c: c8f953e | (Jan-Olof Hendig)++ | doc/Type/Version.pod6:
Added code examples to methods parts and plus
19:22
RabidGravy I think I'm un-learning twenty years of Perl 5 19:29
mrplastic how do i get started with perl 6
timotimo what languages do you have experience with already, mrplastic? 19:30
mrplastic im not a programmer but i'm exploring emacslisp
gfldex mrplastic: see: perl6.org/documentation/
mrplastic i just think itd be a good idea to know 1 or 2 programming languages for personal use 19:31
but i dont know what to do with it, been learning a whole just using emacs for everything
DrForr Good. Check out perl6.org to learn a bit about it. 19:32
timotimo perl6.org/downloads/ - especially this page has a few good links on the right side of the page 19:34
BrokenRobot huggable: new :is: See "For Newcomers" section on perl6.org/documentation/ 19:37
huggable BrokenRobot, Added new as See "For Newcomers" section on perl6.org/documentation/
vendethiel hehehe. I am, day after day, "sneaking" Perl 6 on my coworkers' computers by writing nice scripts \o/. Even my pro-Java coworker admitted it was nice to get something done in so little time for experimental/scripting purposes... 19:58
Also $person-who-did-the-dmg++. Since it's not on Homebrew, I was afraid my colleague would give up if he had to use rakudobrew (since it's a bit long.) but the dmg was perfect. 19:59
mrplastic i'm doubting perl6 is a good first programming language, but its really interesting 20:05
ZoffixMobile mrplastic, it's a great first language, as you don't get forced into a set paradigm and instead learn how to code first. Don't use types. Start using them when you want to learn about them. Don't use OO, until you want to learn OO. Best of all, you don't have to suffer the pain of Unicode, since in Perl 6 it just works and learning Grammars is definitely easier than trying to master giant regexes. It's just Perl 6 is *big* and it does have advanced feat 20:10
ZoffixMobile mrplastic, also: try learning Javascript. Everybody and their brother is using it. There's this resource that I found insufferable due to it absolute beginner-oriented approach, but maybe it's perfect for you: eloquentjavascript.net/ 20:12
mrplastic, and that lets you then do node server-side, which is basically a Javascript library 20:13
???
Profit! :)
parabolize mrplastic: perl6 has two problems for new programmers: 1. its documentation is a work in progress, 2. it doesn't have any introductory level texts. Both are temporary issues. On the other hand I wouldn't think perl6 would be any harder to learn than elisp. 20:20
timotimo introductory level texts? is that not what perl6intro is? 20:21
i thought the problem was one level after that?
parabolize for a first language? no, I don't think so. 20:22
timotimo oh 20:25
well, there'll be books in time 20:32
ZoffixMobile this time next year 20:35
And to the point of lacking stuff: since Perl 6 and its ecosystem are so new, it's very easy to find things to write and contribute to, instead of always being told to "just use a module" :) 20:36
parabolize thats true. Its like scheme once was before it was guiled to death. 20:39
timotimo oh? i didn't know guile did bad things to scheme 20:40
parabolize well, good things if you were actually using it for other things than learning low level language mechanics 20:41
dalek osystem: 3096a3d | ugexe++ | META.list:
Add Distribution::Common

  github.com/ugexe/Perl6-Distribution--Common
Installable distributions from common data sources using rakudos new `Distribution` interface
21:15
lizmat is working on the Perl 6 Weekly 21:16
anything happen the last week on #perl6 I should report about ?
AlexDaniel Zoffix: I'm not there to invalidate anything, but I'll point out if some points are not invalid ;) 21:23
Zoffix Don't give a shit. 21:38
freezerburnv With NativeCall, is there a way to say that a CStruct class must have a CArray of length 5 embedded? 21:40
I found the HAS keyword which says something is embedded, but I'm not sure how to use with a CArray to say it has 5 elements 21:41
timotimo we don't have that yet, sorry 21:46
freezerburnv So I just have to do like you've done in the past and just embed 5 of the element? 21:48
So: class Thing is repr('CStruct') { HAS TheStruct $.thing1; HAS TheStruct $.thing2; ... } 21:50
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2016/07/04/...er-starts/ 21:58
tbrowder please review S26 PR: github.com/perl6/specs/pull/111 22:01
dalek ecs: fc36bc2 | (Tom Browder)++ | S26-documentation.pod:
clarify use of column separators
ecs: 0080549 | lizmat++ | S26-documentation.pod:
Merge pull request #111 from tbrowder/doc-table-mod

clarify use of column separators
parabolize do any of the editors or their plugins automatically remove trailing white space with perl6 files? Removing or blocking them on commit is good but it would be nice to see it happen in the editor. Something like jedi with python or emacs where the extra spaces and tabs disappear when you move to another line or save? 22:24
donaldh parabolize: emacs - (add-hook 'before-save-hook 'delete-trailing-whitespace) 22:27
parabolize yeah, emacs is removing them when I move to a new line 22:28
donaldh oh, sorry I thought you were asking for a solution in emacs. 22:29
parabolize problem there is.. everything else. Is there a good perl6 package for highlighting and such
donaldh Yes there's a perl6-mode 22:30
donaldh parabolize: I use github.com/hinrik/perl6-mode 22:31
Available on MELPA
parabolize \o/
Zoffix Does anyone know what perl6 -e "say '/'.IO.mkdir" tries to do on Windows? When I run it in C:\Users\zoffix> it tells me 'True' and if I run it in C:\ it tells me Failed to create directory 'C:\' with mode '0o777': Failed to mkdir: 5 22:36
hum... '/foo'.IO.mkdir run from \Users\zoffix creates C:\foo 22:38
AlexDaniel parabolize: another way to handle it is not to delete trailing whitespace automatically, but to make it visible
parabolize: in fact, 「git diff」 should show it
gfldex lolibloggedalittle gfldex.wordpress.com/2016/07/05/2-2-3/ 23:02
gfldex lizmat: am I to late for a late entry on the weekly? 23:05
BrokenRobot gfldex: yup. "<lizmat> good night, #perl6-dev!" that was an hour ago. Just remind her to list it next week. 23:36
Zoffix m: try { Supply.interval(1).tap(-> { say 'hi' }); sleep 3; CATCH { default { .message.say } } } 23:46
camelia rakudo-moar 234aa4: OUTPUT«Unhandled exception in code scheduled on thread 4␤Too many positionals passed; expected 0 arguments but got 1␤ in block at <tmp> line 1␤␤»
Zoffix Any way to catch that exception?
gfldex did you try a try around await? 23:47
Zoffix gfldex, not sure what you mean. await where? 23:49
await doesn't work on Taps, does it?
gfldex i believe to remember that await will collect all exceptions and reemits them. So if you can rewrite your code to have await, you should be able to CATCH. 23:50
Zoffix m: try { await Supply.interval(1).tap(-> { say 'hi' }); sleep 3; CATCH { default { .message.say } } }
camelia rakudo-moar 234aa4: OUTPUT«Must specify a Promise or Channel to await on (got a Tap)␤»
timotimo you have to install an unhandled exception handler on the scheduler, i'd say 23:53
Zoffix k, I'll go another way. spawn another perl6 (there's already a sub for that in roast) 23:54