dalek ast: 1458b47 | (Zoffix Znet)++ | S12-introspection/attributes.t:
[coverage] cover .gist of Attribute:D
00:02
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Make spurt a multi 00:43
travis-ci.org/rakudo/rakudo/builds/161743252 github.com/rakudo/rakudo/compare/7...89a076355c
dalek ast: 6cc1a85 | MasterDuke17++ | S17-procasync/stress.t:
Test passing :out of one proc to :in of another

Tests the fix for RT #129291. Add as a stresstest because while the segfault before the fix was repeatable, it sometimes took a while to happen.
02:36
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129291
kudo/nom: e9409cc | lizmat++ | src/Perl6/Metamodel/EnumHOW.nqp:
Give enums a .^elems method
08:12
llfourn_ [Coke]: I just noticed you labeled RT #128846 an RFC. But I think it's a bug tbh. 09:03
m: my $a = "foo"; (with $a { $a }) = "bar";
m: my $a = "foo"; ($a with $a) = "bar";
oh is camelia not here?
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128846
camelia ( no output )
rakudo-moar e9409c: OUTPUT«Cannot modify an immutable Str␤ in block <unit> at <tmp> line 1␤␤»
llfourn_ oh there we go 09:04
m: my $a = "foo"; ($a if $a) = "bar";
camelia ( no output )
llfourn_ if "if" statement mod works and "with" in non-statement mod form works then "with" in statement mod should work :) 09:05
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Give enums a .^elems method' 09:07
travis-ci.org/rakudo/rakudo/builds/161847102 github.com/rakudo/rakudo/compare/3...409ccbec46
buggable [travis build above] ☠ Did not recognize some failures. Check results manually
Zoffix 13-union 10:09
llfourn_, isn't that to do with `with` aliasing to $_? 10:15
m: my $a = 1; (if $a -> $z { $z }) = 42;
camelia rakudo-moar e9409c: OUTPUT«Cannot assign to a readonly variable or a value␤ in block <unit> at <tmp> line 1␤␤»
Zoffix m: my $a = 1; (if $a -> $z is rw { $z }) = 42;
camelia ( no output )
Zoffix m: my $a = 1; (with $a -> $z is rw { $z }) = 42;
camelia ( no output )
Zoffix m: my $a = 1; (with $a -> $z { $z }) = 42;
camelia rakudo-moar e9409c: OUTPUT«Cannot assign to a readonly variable or a value␤ in block <unit> at <tmp> line 1␤␤»
psch m: my $a = 1; (with $a <-> $z { $z }) = 42; 10:17
camelia ( no output )
llfourn_ Zoffix: $_ should be := to the value so it should work
:= to the container rather 10:18
psch m: say $_.VAR with my $a = 1
camelia rakudo-moar e9409c: OUTPUT«1␤»
psch m: say $_.VAR if my $a = 1
camelia rakudo-moar e9409c: OUTPUT«Any␤»
llfourn_ my point is that it works with everything except with in statement mod form
psch reads up what "it" actually is
Zoffix what's "everything"? I see only an if statement 10:19
llfourn_ err yeah I guess that is everything
psch m: my $a = "foo"; ($_ given $a) = "bar"
camelia ( no output )
psch m: my $a = "foo"; ($_ given $a) = "bar"; say $a
camelia rakudo-moar e9409c: OUTPUT«bar␤»
llfourn_ (and given) :P
Zoffix :) 10:20
psch m: my $a = "foo"; { $_ }($a) = "bar"; say $a
camelia rakudo-moar e9409c: OUTPUT«bar␤»
llfourn_ 'with' with block form works also
Zoffix m: my $a = "foo"; with $a { $_ = "bar" }
camelia ( no output )
Zoffix nods
psch yeah, that seems inconsistent
so my C that is RF would be "this is actually at least an inconsistency, if not straight up bug" 10:21
llfourn_ m: my $a = "foo"; ($a andthen $_) = "bar"; say $a
camelia rakudo-moar e9409c: OUTPUT«Cannot modify an immutable Str␤ in block <unit> at <tmp> line 1␤␤»
llfourn_ well andthen also doesn't work :\
psch m: say ("a" andthen $_) 10:22
camelia rakudo-moar e9409c: OUTPUT«a␤»
Zoffix I changed it to LTA
psch andthen does topicalization?
llfourn_ psch: yep :)
Zoffix
.oO( BUGSORTA )
psch geez all these features :P
llfourn_ Zoffix: ok. I think $_ should always be := to the topic's container. I'll leave classification up to you :) 10:23
psch yeah, implicit topicalization should always be <-> 10:24
llfourn_ psch: does <-> mean "is rw" or "is raw" 10:25
and what is the diff between those two :o
m: say {;};
camelia rakudo-moar e9409c: OUTPUT«-> ;; $_? is raw { #`(Block|62246696) ... }␤»
llfourn_ m: say <-> $a { };
camelia rakudo-moar e9409c: OUTPUT«-> $a is rw { #`(Block|64168488) ... }␤»
psch i think there's still some fuzziness wrt the difference 10:26
but maybe that's just in my head
S04:583 is what i remembered 10:28
synopsebot6 Link: design.perl6.org/S04.html#583_is_wh...remembered
psch oh ffs
S04:583
synopsebot6 Link: design.perl6.org/S04.html#line_583
psch well, a bit higher up, like 575 or something 10:29
and, well, <-> is apparently 'is rw', so topicalization should always be rw, if we take 'for' as reference 10:30
llfourn_ m: { say $_ } for 1,2,3 # hih this works?
camelia rakudo-moar e9409c: OUTPUT«1␤2␤3␤»
llfourn_ didn't know if you statement mod a block it runs it
Zoffix "for and given privately temporize the current value of $_ for the left side of the statement and restore the original value at loop exit:"
Maybe that's why the `given` worked above but `with` and `andthen` didn't ¯\_(ツ)_/¯ 10:31
llfourn_ ('if' works too)
psch doesn't that just concern the value of $_ outside of the statement mod?
m: $_ = "foo"; $a = "bar"; ($a if $a) = "baz"; say $a; say $_ 10:32
camelia rakudo-moar e9409c: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Variable '$a' is not declared␤at <tmp>:1␤------> $_ = "foo"; ⏏$a = "bar"; ($a if $a) = "baz"; say $a; ␤»
psch m: $_ = "foo"; my $a = "bar"; ($a if $a) = "baz"; say $a; say $_
camelia rakudo-moar e9409c: OUTPUT«baz␤foo␤»
psch m: $_ = "foo"; my $a = "bar"; (with $a <-> $_ { $_ }) = "baz"; say $a; say $_
camelia rakudo-moar e9409c: OUTPUT«baz␤foo␤»
Zoffix m: $_ = "foo"; my $a = "bar"; ($a unless $a) = "baz"; say $a; say $_ 10:34
camelia rakudo-moar e9409c: OUTPUT«bar␤foo␤»
llfourn_ ($a unless $a) will be a slip in this case
m: $_ = "foo"; my $a = "bar"; ($a unless not $a) = "baz"; say $a; say $_ 10:35
camelia rakudo-moar e9409c: OUTPUT«baz␤foo␤»
llfourn_ m: my $a = "foo"; (<-> $_ { $_ } with $a) = "bar"; say $a' # even this doesn't work :S 10:36
camelia rakudo-moar e9409c: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> (<-> $_ { $_ } with $a) = "bar"; say $a⏏' # even this doesn't work :S␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ …»
llfourn_ m: my $a = "foo"; (<-> $_ { $_ } with $a) = "bar"; say $a # oops
camelia rakudo-moar e9409c: OUTPUT«Cannot modify an immutable Str␤ in block <unit> at <tmp> line 1␤␤»
psch well, yes
llfourn_ ? 10:37
psch because you're passing a decont $a into the block
llfourn_ why is it decont?
psch because that's the problem with statement mod with?
m: say $_.VAR with $ = 10
camelia rakudo-moar e9409c: OUTPUT«10␤»
psch m: say $_.VAR if $ = 10
camelia rakudo-moar e9409c: OUTPUT«Any␤»
psch m: say $_.VAR given $ = 10
camelia rakudo-moar e9409c: OUTPUT«10␤»
psch okay, no
llfourn_ oh so the with is decont the value that makes sense :)
psch it's just rwness 10:38
i think :/
...i'm actually trying about how to map our built-in types sensibly to java types right now :S
*trying to think
just to explain some confusion, maybe vOv 10:43
it's really annoying, honestly 10:46
considering we can have any kind of type as array or parameterized List on the Java side as parameter
i mean, it's not hard to imagine that [1,2,3] doesn't dispatch to int[], because we already don't do that on the Perl 6 side 10:47
but does 'my Int @a = 1,2,3' dispatch to 'List<Integer>' and int[]?
or only one of them..?
otoh, our Int is more Long, and doesn't that mean only 'my int32 @a' should dispatch to int[]..? >_> 10:48
Zoffix s: &circumfix:<[ ]>, \(1, 2, 3) 10:54
SourceBaby Zoffix, Something's wrong: ␤ERR: Could not find candidate that can do \(1, 2, 3)␤ in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 37␤ in block <unit> at -e line 6␤␤
Zoffix aww
s: &circumfix:<[ ]>, \(1)
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/e940...y.pm#L1379
Zoffix s: &circumfix:<[ ]>, \([1, 2, 3]) 10:55
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/e940...y.pm#L1342
MasterDuke lizmat: do you have any thoughts on RT #129248? 11:28
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129248
lizmat feels to me they should be consistent, but how I'm not sure :-) 11:31
yoleaux2 21 Sep 2016 22:01Z <gfldex> lizmat: if enums would implement the role Enumeration (as the spec asked) the where-clause would not be needed
MasterDuke ha, same here 11:34
should i stick [@LARRY] on it? 11:35
nine Is there any way at all to override stringification or string interpolation in a dynamic scope? I don't care how hacky.
timotimo in a *dynamic* scope, oh boy 11:36
lizmat MasterDuke: sounds like a plan
timotimo interpolation is just turned into a series of strings and ~ operators by the compiler
dogbert17 o/ any ideas about RT #129321
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129321
timotimo so you can't differentiate "foo $bar baz" from "foo " ~ $bar ~ " baz" any more when the compiler is done 11:37
nine So if I could somehow override ~, I'd have a chance?
lizmat nine: dynamically ???
nine What I actually want to try is just for a lightning talk hack together a little SQL parser that eats "where foo = $foo" and can turn it into something like {foo => $foo} to feed it into DBIX::Class 11:38
Just for show
gfldex nine: overloading ~ works if you introduce a new type (SQLString or somesuch) 11:40
timotimo you can wrap infix:<~>
dalek ast: 9a85073 | (Aleks-Daniel Jakimenko-Aleksejev)++ | S17-procasync/stress.t:
Fix RT ticket number after 0a49fcbe0

Dear Sir/Madam. We are X, the state-owned oil and gas company of the Kingdom of Saudi Arabia.
  ??? … Ah, wrong ticket id.
11:41
AlexDaniel dammit 11:42
wrong commit id
*facepalm*
gfldex nine: you may be able to steal from github.com/gfldex/perl6-typesafe-html
nine So like: 11:44
m: class SQLString { has $.str }; sub prefix:<sql>($str) { SQLString.new(:$str) }; multi infix:<~>(SQLString $a, Str:D $b) { "SQL: $a, Value: $b" }; my $bar = "bar"; say sql"foo" ~ $bar
camelia rakudo-moar e9409c: OUTPUT«SQL: SQLString<80893016>, Value: bar␤»
nine But it doesn't seem to work for interpolation: 11:45
m: class SQLString { has $.str }; sub prefix:<sql>($str) { SQLString.new(:$str) }; multi infix:<~>(SQLString $a, Str:D $b) { "SQL: $a, Value: $b" }; my $bar = "bar"; say sql"foo=$bar"
camelia rakudo-moar e9409c: OUTPUT«SQLString.new(str => "foo=bar")␤»
psch m: class SQLString { has $.str; method Str { "sql " ~ self.WHICH ~ " value: " ~ $.str } }; sub prefix:<sql>($str) { SQLString.new(:$str) }; multi infix:<~>(SQLString $a, Str:D $b) { "SQL: $a, Value: $b" }; my $bar = "bar"; say sql"foo=$bar" 11:46
camelia rakudo-moar e9409c: OUTPUT«SQLString.new(str => "foo=bar")␤»
psch qq calls .Str apparently
gfldex you may want to overload .perl as-well to unconfuse yourself 11:47
nine Ah, it calls infix ~ before the prefix sql
Can I make prefix:<sql> tighter? 11:48
dalek ast: 5651b5e | (Aleks-Daniel Jakimenko-Aleksejev)++ | S17-procasync/stress.t:
Better test description for test added in 6cc1a85cf

I am also referring to the right commit hash this time.
nine Oh wait, it's not just a precedence thing as "foo=$bar" is just one thing 11:49
gfldex m: sub prefix:<sql>(Str) is thighter(&infix:<~>) {}
camelia rakudo-moar e9409c: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Can't use unknown trait 'is thighter' in a sub+{precedence} declaration.␤at <tmp>:1␤ expecting any of:␤ rw raw hidden-from-backtrace hidden-from-USAGE␤ pure default DEPRECATED inlina…»
gfldex m: sub prefix:<sql>(Str) is tighter(&infix:<~>) {}
camelia ( no output )
gfldex nine: it's not going to hurt to make it tighter 11:50
nine m: class SQLString { has $.str }; sub prefix:<sql> ($str) is tighter(&infix:<~>) { SQLString.new(:$str) }; multi infix:<~>(SQLString $a, Str:D $b) { "SQL: $a, Value: $b" }; my $bar = "bar"; say sql"foo=$bar" 11:51
camelia rakudo-moar e9409c: OUTPUT«SQLString.new(str => "foo=bar")␤»
psch still not quite right though i suppose
dalek kudo/nom: 73ae93a | lizmat++ | src/core/Array.pm:
Abstract shape-setting logic on arrays

So we don't need to change it later in several places.
11:59
lizmat jnthn: fwiw, perl6 t/spec/S17-procasync/stress.t consistently fails for me (on OSX) with: 12:05
moar(44327,0x7fff79521300) malloc
: *** error for object 0x7fff533206c0: pointer being freed was not allocated
MasterDuke since we just had a release, i thought now would be a good time to ask for more comments on github.com/rakudo/rakudo/pull/871 (Disable grammar errors when running under -e) and github.com/rakudo/rakudo/pull/876 (Add Nil return constraints where possible) 12:18
lizmat MasterDuke: the problem with 876 is that we're pretty sure we will not want all of them 12:20
but which ones we *do* want, we can't make up our minds about, apparently 12:21
:-(
MasterDuke it could just serve as a reference for a different PR that just does the ones that are wanted? 12:23
or i could revert/reset/something some of the commits?
lizmat considering it a meta-PR could work, I guess 12:25
nine m: class SQLValue { has $.str; method Str() { "quoted(" ~ $.str.Str ~ ")" } }; multi sub infix:<~> (Str:D $str, SQLValue:D $val) { $str ~ $val.Str }; sub prefix:<sql> (&block) { my $stringy = Str.^find_method("Stringy"); my $handler = $stringy.wrap(sub ($self) { SQLValue.new(:str($self)) }); my $result = &block(); $stringy.unwrap($handler); $result }; my $foo = "bar"; say sql{"foo=$foo"} 12:30
camelia rakudo-moar 73ae93: OUTPUT«foo=quoted(bar)␤»
nine Yes, it's fugly :)
lizmat $ 6 'enum A (<a b c>); my @a[A]; dd @a' 12:36
Array.new(:shape(3,), [Any, Any, Any])
lizmat is pleased
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Abstract shape-setting logic on arrays 12:53
travis-ci.org/rakudo/rakudo/builds/161891642 github.com/rakudo/rakudo/compare/e...ae93af81b0
buggable [travis build above] ☠ Did not recognize some failures. Check results manually
lizmat ^^^ appears to be a flapper in "make test" 12:59
dalek kudo/nom: c4390ff | lizmat++ | src/core/Array.pm:
Get rid of allocate-shaped-storage

It appears the call to allocate-shaped-storage in STORE is superfluous,
  because it was either just called in set-shape, or the .STORE is done
on an array that already had its shape allocated.
13:05
rakudo/nom: fef3655 | lizmat++ | src/core/Array.pm:
rakudo/nom: Allow an Enum in an array shape declaration
rakudo/nom:
rakudo/nom: As suggested in gfldex.wordpress.com/2016/09/22/ke...-optional/
rakudo/nom:
lizmat review: github.com/rakudo/rakudo/commit/fef3655
gfldex++ :-) 13:06
|Tux| This is Rakudo version 2016.09-25-g73ae93a built on MoarVM version 2016.09 13:11
csv-ip5xs 8.968
test 15.648
test-t 6.874
csv-parser 16.948
gfldex lizmat++ # for fixing my bug that I didn't even report 13:13
lizmat eh? the @a[Enum] one ?
gfldex yes 13:14
lizmat you're welcome :-)
gfldex: now, I'm not sure whether my %h{Enum} really shouldn't be an array underneath 13:19
the hash is really only needed should you specify by Str and you need to look up the associated numeric value 13:20
gfldex there needs to be a type check on they key but underneath it could very well be an array of fixed size
but then, the spec wanted to have Hash with fixed keys (fixed at compile time)
MetaZoffix It's weird that when I build Rakudo with --optimize=off a ton of stresstests fail.... 13:45
jnthn m: my Bool @arr = (True, False).roll(20) 13:47
camelia ( no output )
jnthn oh, in the *shape* declaration
OK, that's more sensible :P
jnthn misread and worried for a moment :D 13:48
lizmat m: my @a[Bool]; dd @a
camelia rakudo-moar fef365: OUTPUT«Array.new(:shape(2,), [Any, Any])␤»
jnthn commitable: 2016.08 my @a[Bool]; dd @a 13:49
commitable6: 2016.08 my @a[Bool]; dd @a
committable6: help?
committable6 jnthn, Like this: committable6: f583f22,HEAD say ‘hello’; say ‘world’
jnthn I have to compare? 13:50
MetaZoffix committable6: 2016.08 my @a[Bool]; dd @a
committable6 MetaZoffix, ¦«2016.08»: []
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Allow an Enum in an array shape declaration
travis-ci.org/rakudo/rakudo/builds/161905742 github.com/rakudo/rakudo/compare/7...f3655c0fb4
MetaZoffix jnthn: you don't, but you have to spell bot's name right :P
jnthn MetaZoffix: Huh, how wsa what you typed different from what I typed?
Oh :P
[Coke] jnthn: heh. 13:51
ilmari the bot is clearly called com<tab>
jnthn Dunno why I didn't tab-complete the first time :)
ugexe m: say reduce { $^a + $^b }, (1, 2); say reduce { $^a + $^b }, (1); say reduce { $^a + $^b }, (); # should reduce work on empty lists like `say [+] ();`? 13:56
camelia rakudo-moar fef365: OUTPUT«3␤1␤Too few positionals passed; expected 2 arguments but got 0␤ in block <unit> at <tmp> line 1␤␤»
ugexe m: say [+] ();
camelia rakudo-moar fef365: OUTPUT«0␤»
[Coke] ugexe: what would the default value be? 13:57
for an operator, we can define a multi with the right answer, aye?
ugexe [Coke]: the same as `[whatever] ()` gives
jnthn ugexe: I suspect it will if you pass it a multi or something that accepts arity 0/1
m: say reduce &infix:<+>, ()
camelia rakudo-moar fef365: OUTPUT«0␤»
[Coke] ugexe: but that gives different things.
m: say [*] ();
camelia rakudo-moar fef365: OUTPUT«1␤»
ugexe to rephrease: should those two styles of reduce give the same thing 13:58
rephrase
jnthn Do you have an example where they don't?
m: say [&({ $^a + $^b })] () 13:59
camelia rakudo-moar fef365: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> say [&({ $^a + $^b })]⏏ ()␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statement mod…»
MetaZoffix m: say reduce -> $a?, $b? { $a + $b }, ()
camelia rakudo-moar fef365: OUTPUT«Cannot resolve caller infix:<+>(Mu, Mu); none of these signatures match:␤ ($x = 0)␤ (\a, \b)␤ (Real \a, Real \b)␤ (Int:D \a, Int:D \b --> Int:D)␤ (int $a, int $b --> int)␤ (Num:D \a, Num:D \b)␤ (num $a, num $b)␤ (Ran…»
jnthn m: my &op = { $^a + $^b }; say [&op] ()
camelia rakudo-moar fef365: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> my &op = { $^a + $^b }; say [&op]⏏ ()␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ st…»
jnthn m: my &op = { $^a + $^b }; say [[&op]] ()
camelia rakudo-moar fef365: OUTPUT«Too few positionals passed; expected 2 arguments but got 0␤ in block <unit> at <tmp> line 1␤␤»
jnthn Same behavior as reduce
MetaZoffix m: say reduce -> $a?, $b? { say 'whatever' }, ()
camelia rakudo-moar fef365: OUTPUT«whatever␤True␤»
ugexe m: say reduce { $^a + $^b }, 1; # "expected 2 arguments"? 14:00
camelia rakudo-moar fef365: OUTPUT«1␤»
lizmat jnthn: would you have anything against splitting out the 1 dimension case of array shapes into a separate role? 14:01
[Coke] m: multi sub a($a,$b) {$a+$b};multi sub a() {0}; say reduce &a, ();
camelia rakudo-moar fef365: OUTPUT«0␤»
jnthn lizmat: Do 2 and 3 while you're add it because they also have special-cased ops that we don't use yet ;)
*you're at it
I just didn't get around to putting them to use yet
I suspect we can share most stuff except atpos/bindpos 14:02
lizmat (accessing a @a[Bool] is now 20x slower than an @a array)
jnthn But yeah, special cases for 1/2/3 was The Idea, so no objects.
lizmat which ops should I be looking at ?
jnthn There's some 2d and 3d ops 14:03
I'm pretty sure they are covered by tests in the NQP repo
lizmat no special 1d ops?
ok, will look
timotimo github.com/MoarVM/MoarVM/blob/mast...plist#L706
jnthn The 1d ops are just called atpos and bindpos ;)
timotimo 2d, 3d, and nd
jnthn (e.g. they're the exact same ops you'd use on an unshaped array)
lizmat jnthn: yes, but upper bounds would need to be checked "manually" right ?
jnthn No 14:04
lizmat ah ?
jnthn The upper bound checking is enforced by the REPR
The atpos ops are polymorphic
So on a VMArray they'll have resize semantics
And on a MultiDimArray will throw on out-of-bounds 14:05
lizmat so on array can be multidim even with 1 dim :-)
jnthn Yes
MultiDim really means FixedDim I guess :)
lizmat and it will get bounds checking thrown in
ok
jnthn Apparently the person naming it was a bit dim ;) 14:06
timotimo and we'll be able to kick out bounds checking in some cases when we reach spesh and jit stages
lizmat ok, lemme see if I can hack that in :-) 14:07
jnthn: fwiw, not sure if you've seen It but t/spec/S17-procasync/stress.t consistently fails for me 14:08
moar(63216,0x7fff79521300) malloc: *** error for object 0x7fff572ca6c0: pointer being freed was not allocated
jnthn shit
jnthn blames OSX
Maybe somebody with OSX can look into it :) 14:09
Will see what it does on Windows too, maybe it also busts there
lizmat who knows :-) 14:10
jnthn Though I'm hugely tempted to just concentrate on fixing Proc::Async up well and then re-impelenting the Proc class using Proc::Async :P
lizmat sounds like a plan, fwiw :-)
ugexe fwiw `reduce { $a + $b } ()` in perl5 returns undef, which is more useful than an exception because you can chain together grep/map/reduce without worrying about the number of elements before the reduce 14:11
jnthn Since we actually use the very same libuv APIs in both
lizmat as long as we don't lose the JVM completely :-)
jnthn I think the JVM supports Proc::Async?
MetaZoffix
.oO( but Proc::Async.start returns a Proc... )
jnthn Will have to check...
MetaZoffix Procseption
ugexe jvm doesnt have proc async 14:12
MetaZoffix well, its Promise does :)
jnthn ugexe: Yes, but in Perl 5 there's no option to design it to take advantage of multi-dispatch to specify what the base value will be
And you can still write it as -> $a?, $b? { DTRT here }
jnthn returns to $day-off :-) 14:15
MetaZoffix New blog post: "Perl 6 Core Hacking: Can Has Moar Cover?": perl6.party/post/Perl-6-Core-Hackin...Moar-Cover 14:18
timotimo "bring your butterfly to work day" is the perfect opportunity to have her tested! 14:21
mst ugexe: I would write that as 'reduce { $a + $b } 0, ...' in perl5 tbh 14:24
yoleaux2 21 Sep 2016 21:19Z <ZoffixMobile> mst: exactly 1 year ago you told me in magnet #perl to poke you in a year about binary package installer for CPAN :)
mst MetaZoffix: and, indeed, my work is grinding slowly along
but it wasn't going to be ready for YAPC::EU this year so I shaved the alien6 yak instead
timotimo MetaZoffix: maybe i didn't read carefully enough, but it says nowhere that the coverage report is far from infallible 14:26
MetaZoffix mst++
timotimo: I mention it in the first sentence here: ds3:3000/post/Perl-6-Core-Hacking-C...tpsreports and here mention they need improvement: ds3:3000/post/Perl-6-Core-Hacking-C...ettercover 14:27
timotimo oh!
MetaZoffix oops, wrong domain. But you get the idea :)
timotimo ah
yes, of course
man, i'm not feeling awake at all
MetaZoffix Coffee! 14:28
ugexe mst: but if you want to chain map/grep/reduce would you still do `reduce { $a + $b } 0, grep { $_ > 10 } (1..9)` 14:32
mst ugexe: probably not, but I fatalize undef warnings so I'd have to end up with that code before it actually passed its tests 14:34
i.e. "I wouldn't, to begin with, but that would be a bug"
lizmat afk& 14:36
ggoebel How likely is it that the JVM GLR won't have happened by the time the next Google Summer of Code rolls around? 15:29
nine The results of my SQL experimentation: niner.name/talks/DBIC%20in%20Perl%2...revisited/
t/test.pl6 probably demonstrates what it's about :)
ggoebel If not, how likely that the JVM GLR would be a viable/submitted/accepted SoC project? 15:31
Kolin_ ggoebel: so when is the next SoC? 15:55
TimToady um, next S 15:56
stmuk northern hemisphere
Kolin_ committable6: 2015.07 say (<a b c>, (<a b c>)) 15:57
committable6 Kolin_, ¦«2015.07»: a b c a b c
Kolin_ r: say (<a b c>, (<a b c>))
camelia rakudo-jvm cd19db, rakudo-moar fef365: OUTPUT«((a b c) (a b c))␤»
TimToady I'm not sure JVM GLR is quite a thing, since most of the GLR work was at the rakudo and nqp levels, what remains might just be a smattering of bugs
Kolin_ Yeah
nine And a lot of it is probably just looking at the workarounds that were done and figure out what the real fix would be like 15:58
Kolin_ What are some good programming books to read? To become better at Rakudo/NQP/MoarVM hacking? 16:09
ggoebel Kolin_: The Google SoC timeline for 2016: developers.google.com/open-source/gsoc/timeline 16:11
SoC is announced in October. Organizations begin submitting applications in February. Applicants apply in March. Accepted Proposals/Students announced in April. Work runs from May to August with various checkpoints and deadlines. Results of SoC Projects are reported at the end of August 16:13
Kolin_ ggoebel: right, but see what others said about. JVM GLR isn't really a thing
stmuk Kolin_: its more online resources (perl6.party blog etc.) and just trying it
Kolin_ Surely there's more to it. 16:14
ggoebel TimToady: Perhaps I'm mistaking, but I've had the impression that Rakudo on JVM hasn't been a first class citizen since the GLR... 16:15
s/mistaking/mistaken/
Kolin_ ggoebel: right, but I don't think it's GLR itself that's the issue. It's just after GLR it hasn't kept up
ggoebel: you can run the stresstest and see what tests are failing to see its current state. Rakudo on MoarVM passes all of them
ggoebel: git clone github.com/rakudo/rakudo/; cd rakudo; perl Configure.pl --gen-nqp --backends=jvm; make; make test; make install; TEST_JOBS=8 make stresstest; 16:16
ggoebel Kolin_: I got the impression that JVM not being kept up coincided with the GLR
Kolin_ ggoebel: it also coinsided with frantic efforts to make something releasable for Christmas 16:17
(if you also want to run Perl5 tests, install Inline::Perl5 per step 12 on github.com/rakudo/rakudo/blob/nom/..._guide.pod ) 16:18
nine Kolin_: TimToady already stated that a 6.c release without JVM is ok back at his FOSDEM talk in February 2015
ggoebel: ^^^
TimToady it would be nice if we could catchup the JVM by 6.d, which is hopefully before next summer 16:19
ggoebel TimToady: okay. One of my offspring is a CS Major who might be interested in a Perl6 JVM SoC project if "it would be nice" doesn't turn out to be practical by next Summer. 16:22
phenny: seen colomon? 16:27
hmm
Kolin_ .seen colomon
yoleaux2 I haven't seen colomon around.
ggoebel where is the nice webpage which shows what is implemented in red, yellow, and green? 16:30
timotimo perl6.org/compilers/features - ggoebel 16:31
Kolin_ It's outdated tho
Ven` It's been some time :-).
timotimo yeah
Kolin_ r: Proc::Async.new 16:32
camelia ( no output )
..rakudo-moar fef365: OUTPUT«Proc::Async is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting line 1␤ in method new at src/RESTRICTED.setting line 32␤ in block <unit> at <tmp> line 1␤␤»
Kolin_ j: say shell 'ls *' 16:33
camelia rakudo-jvm cd19db: OUTPUT«Proc.new(in => IO::Pipe, out => IO::Pipe, err => IO::Pipe, exitcode => 0, pid => Any, signal => 0)␤»
Kolin_ j: shell(:out 'ls *').out.slurp-rest.say
camelia rakudo-jvm cd19db: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Unable to parse expression in argument list; couldn't find final ')' ␤at <tmp>:1␤------> shell(:out⏏ 'ls *').out.slurp-rest.say␤ expecting any of:␤ infix␤ infix stopper␤»
ggoebel So the way to figure out the roadmap to bring JVM up to snuff would be to run the stress test, pick a bug, lather, rinse, and repeat?
Kolin_ ggoebel: yeah. And in particular, you can grep the roast for #?rakudo.jvm fudge 16:34
All of stuff involving Proc::Async is fudged; I think there's unicode stuff too
j: shell(:out, 'ls *').out.slurp-rest.say
camelia rakudo-jvm cd19db: OUTPUT«dalek-queue␤evalbot.log␤foo␤mbox␤p6eval-token␤rakudo-star-2016.01.tar.gz␤rakudo-star-2016.04.tar.gz␤test␤␤Perlito:␤ChangeLog␤LICENSE.md␤Makefile␤README-howto-release.md␤README-perlito5-Java.md␤README-perlito5-JavaScript.md␤RE…»
timotimo oooh, the dancercon is already going on 16:35
Kolin_ Apparently, it isn't using the restricted setting :)
ggoebel :( 16:36
Kolin_ ggoebel: here's one example of the fudge I was talking about: github.com/perl6/roast/blob/master.../Str.t#L12
r: "ẛ̣".chars 16:37
camelia ( no output )
Kolin_ r: "ẛ̣".chars.say
camelia rakudo-jvm cd19db: OUTPUT«3␤»
..rakudo-moar fef365: OUTPUT«1␤»
AlexDaniel haha 16:48
was looking at this query
committable6: 2015.07 say (<a b c>, (<a b c>))
committable6 AlexDaniel, ¦«2015.07»: a b c a b c
AlexDaniel and wondering what the hell
took me a while to realize that it is 2015.07, not 2016.07
dalek ast: b9264ae | usev6++ | S (2 files):
Fudge newly added tests for JVM
17:24
[Coke] t/spec/S10-packages/precompilation.t is failing here. 19:08
TimToady seems to work here 19:19
(I'm running with bleadmoar though)
so I've got the recent syncpipe fix, which could be operative in a test running subprocesses 19:21
[Coke] I'm also running with bleadmoar 19:22
and nqp
opt/local/bin/perl5.22 Configure.pl "--gen-moar=master" "--gen-nqp=master" $*
TimToady (btw, the syncpipe fix didn't change the hang of my unit lexical scope patch)
timotimo damn 19:25
TimToady I did, however, get a non-reproducible fail with t/spec/S02-literals/allomorphic.t 19:37
nine [Coke]: is the precompilation.t failure reproducible? 20:08
dalek kudo/nom: 4bcd7e0 | niner++ | src/core/CompUnit/Repository/ (2 files):
Fix GLOBAL symbol clash re-compiling due to a repo change

After we detected that we need to re-compile a module because one of its dependencies changed, we sometimes turned out to try loading the old version again due to a stale precomp unit cache. However the module would load just fine on the next try.
The reason was that we invalidated the cache of a different precomp store object than what we used for loading precomp files as the repository implementations created different objects for the precomp store list (used for loading) and the accessors of their own store (used for storing).
20:19
nine Zoffix: that ^^^ is the fix for the bug you reported on Tuesday 20:20
dalek kudo/nom: e51cc33 | lizmat++ | t/spectest.data:
Mark S17-procasync/stress.t as a stress test

The name sorta gives it away, no?
20:31
nine lizmat: is it actually a stress test though? It takes about 3 seconds here 20:32
lizmat well, not sure...
why would it be called stress.t ?
ZoffixMobile nine++ thanks 20:33
the stress.t hung for me today, or at least appeared to
dalek kudo/nom: 553cedb | lizmat++ | src/core/native_array.pm:
We can also use Enums for native array shapes

So that 'my int @a[Bool]' will create a 2-element native array
21:09
timotimo neato.
lizmat will look at the 2d/3d cases the coming days 21:11
this was LHF :-)
m: Bool.^elems.say # the new ^elems makes things a lot easier 21:12
camelia rakudo-moar e51cc3: OUTPUT«2␤»
masak yay 21:24
lizmat m: my int $a = True; say $a # expected 21:28
camelia rakudo-moar e51cc3: OUTPUT«1␤»
lizmat m: my str $a = True; say $a # NOT expected 21:29
camelia rakudo-moar e51cc3: OUTPUT«This type cannot unbox to a native string: P6opaque, Bool␤ in block <unit> at <tmp> line 1␤␤»
lizmat this feels like a bug / oversight to me
m: my %h = True => 42; dd %h{True} # as this works
camelia rakudo-moar e51cc3: OUTPUT«Int %h = 42␤»
lizmat anyways, going to sleep on that 21:30
good night, #perl6-dev!
timotimo huh 21:31
well, Enum is Int, but not Str
TimToady the default key type of a hash is not really Str, but Str() 21:35
timotimo very true 21:36
dalek ast: 3c3b8c6 | usev6++ | S32-io/socket-recv-vs-read.t:
Use different ports for IO::Socket::Async servers

We already use port 5000 in S32-io/IO-Socket-Async.t
21:56
Zoffix Found a piece of code that, form what I gather can't be accessed: perl6.wtf/src_core_Backtrace.pm.cov....html#L282 23:54
c: Backtrace.new, 'map', \({...})
Undercover Zoffix, The code is hit during stresstest See perl6.WTF/src_core_Any-iterable-met...e.html#L19 for details
Zoffix ^ that's not the right multi
m: Backtrace.new.map: {...}
camelia rakudo-moar 553ced: OUTPUT«Ambiguous call to 'map'; these signatures all match:␤:(\SELF: &block;; :$label, :$item, *%_)␤:(Backtrace:D $: $block, *%_)␤ in block <unit> at <tmp> line 1␤␤»
Zoffix What do we do? 23:55
c: Backtrace.new, 'map', \(42) 23:56
Undercover Zoffix, The code is NOT hit during stresstest See perl6.WTF/src_core_Backtrace.pm.cov....html#L282 for details
Zoffix giggles at &block; being interpreted as an HTML entity in the reports 23:57