AlexDaniel ah… okay… 00:00
eveo ZOFFLOP: t/spec/S32-io/pipe.t 00:03
ZOFFLOP: t/spec/S11-modules/require.t 00:07
Geth rakudo/nom: e4468c610c | (Zoffix Znet)++ | src/core/Proc.pm
Polish Proc methods that expect the Proc to be done

Affects methods .status, .Numeric, .Bool, .exitcode, and .sink. Fixes module build installation failures and RT#125757:
  rt.perl.org/Ticket/Display.html?id...et-history
Even before Proc refactor, we had some issues where users would call, say, ... (12 more lines)
00:23
eveo There. Fixed forever! Gonna write tests tomorrow.
eveo goes to $relax()
Geth roast/6.c-errata: 2c8d5c7704 | (Samantha McVey)++ | S15-nfg/grapheme-break-test-gen.p6
Add a die to grapheme-break-test-gen.p6 since tests were altered

2 tests that were generated with this script were altered, since they were incorrect. Since this is in 6.c-errata the tests should not change unless they are incorrect, so rewriting the script or taking it from master would not be the best idea.
00:30
samcv hmm having some weird testing errors 00:56
with my font info query module
# expected: :!autohint
# got: :!autohint
using is-deeply
odd
ok i think i got it. looks like .perl is the same... but they're actually not the same 01:00
eveo Then it's a bug in .perl, innit?
they is what? Pair objects?
s: &[eqv], \(:!autohint.Pair, :!autohint.Pair) 01:01
SourceBaby eveo, Sauce is at github.com/rakudo/rakudo/blob/14d7...air.pm#L91
samcv yep
hash
this is the .gist: 01:02
verticallayout => (Bool)
which is correct. but the .perl is :!verticallayout
is the same code that does hash pairs the same that does other Pairs?
eveo Ah, I see it
m: (Pair.new: "foo", Bool).perl.say
camelia :!foo
eveo s: :2a.Pair, 'perl', \()
SourceBaby eveo, Sauce is at github.com/rakudo/rakudo/blob/14d7...air.pm#L65
samcv yep 01:03
eveo fixes
samcv :-)
bisectable6, (Pair.new: "foo", Bool).perl.say
bisectable6 samcv, On both starting points (old=2015.12 new=e4468c6) the exit code is 0 and the output is identical as well
samcv, Output on both points: «:!foo»
eveo huh... "!(nqp::istype($!key,Num) && nqp::isnanorinf($!key))" that'll never be true, will it? 01:05
samcv weird 01:06
maybe want to check when that was added
if there was some reason 01:07
eveo ah, yeah, git blame suggests that ! shouldn't be there 01:08
Oh wait
I need to start wearing my glasses. Totally missed the extra layer of parens there -_-
samcv heh 01:09
eveo, what $* variable gets me what rakudo version is running? 01:11
eveo m: $*PERL.compiler.version 01:15
camelia ( no output )
eveo m: $*PERL.compiler.version.say
camelia v2017.05.440.ge.4468.c.610
samcv very good. thanks :) 01:16
eveo m: Pair.new(Complex, 42).perl.say
camelia Complex => 42
eveo Another bug
Geth rakudo/nom: c6b03c45c7 | (Zoffix Znet)++ | src/core/Pair.pm
Fix Pair.perl

  - Do not assume all Str keys are Str:D
  - Do not assume all false Bool values are Bool:D
  - Do not assume all Numeric keys are Numeric:D
Bug find: irclog.perlgeek.de/perl6-dev/2017-...i_14734597
01:24
roast: 9e351a224a | (Zoffix Znet)++ | S02-types/pair.t
Test Pair.perl with typeobject components

Rakudo fix: github.com/rakudo/rakudo/commit/c6b03c45c7 Bug find: irclog.perlgeek.de/perl6-dev/2017-...i_14734597
eveo powersdown
ugexe perl6 -e "prompt('y/n')" # can anyone try this on windows with moar-blead? 02:26
y/nCannot flush handle: Failed to flush filehandle: No such device or address 02:28
it works with just "prompt()" though (the other multi) 02:29
`my $out := $*OUT; $out.print(42); $out.flush()` reproduces - ok except on windows 02:32
samcv hmm something is tried to convert to a num on /gen/moar/ModuleLoader.nqp on my travis build environment 03:00
i'm guessing it tries to convert some ENV var to a number
my $DEBUG := +nqp::ifnull(nqp::atkey(nqp::getenvhash(), 'RAKUDO_MODULE_DEBUG'), 0) i see this on line 32 which is what the error is from
is it another line or could you get Unhandled exception: Can't convert 'yes' to num: expecting a number from that line? 03:01
oh. i see the + there
yeah that seems to be it
ugexe Proc might need to use CLONE-HASH-DECONTAINERIZED(%env) 03:02
it used to be used, but got removed
well no i guess its just in proc::async now 03:03
samcv ugexe, RAKUDO_MODULE_DEBUG is supposed to be a number yes? 03:11
as it converts to a number with the +, it seems if the variable is set to a string that can't be converted to a number, perl6 won't even compile 03:12
have a fix but just want to confirm that. or should it set to 1 if there is a defined string?
or just accept numbers, if not a number set to 0?
ugexe well if this is a new bug then should probably find out what caused it 03:13
samcv it's not new
well. actually it could be
but i fixed it.
ugexe RAKUDO_MODULE_DEBUG is an env var, so it will always be a string representation 03:14
samcv as long as RAKUDO_MODULE_DEBUG accepts numbers. if it's not able to convert to a number then it sets to 0
i understand this
all i'm asking is if it should accept anything that isn't a number
because that's how it currently works
atm if it's not able to convert to a number then rakudo won't work, or at minimum won't compile. so my fix sets it to 0 if it can't be converted to a number instead of breaking 03:15
actually yeah this bug is old. that line was added in 2013 03:17
ugexe i dunno, im included to say anything but 0 and '' are true but ' ' makes me reconsider
inclined^
samcv i would say so too. though that is not currently how it works atm. but i could always try and do that hmm 03:18
i'm going to commit this fix, which won't change any behavior except stopping the crash, and we can figure out if we want to do that
actually not too much to that, so i'll go ahead and do that 03:20
ugexe, it seems other places in the codebase accept things not 0 and not '' as true 03:26
i just figured out. so this should be changed to match
ugexe hmm zef is able to install itself on windows now, but using `zef ...` always results in a precomp error due to not being able to rename a file. `perl6 -Ilib bin/zef ...` works, just not `zef ...` 04:00
samcv did more work to make sure it emulated it properly. wrote about 10 tests testing various scenarios and checked how the Perl 6 code checked if the env would be set 05:06
so finally got it so both things agree with each other instead of in certain cases them not being set the same
Geth rakudo: samcv++ created pull request #1101:
Fix ModuleLoader.nqp so RAKUDO_MODULE_DEBUG works the same as elsewhere
05:32
samcv ugexe, code is a bit longer than i had hoped, but i wanted to make sure it matched in practically all cases with the Perl 6
Full description of everything in the PR description
[Tux] This is Rakudo version 2017.05-441-gc6b03c45c built on MoarVM version 2017.05-85-g21ee1a50 06:14
csv-ip5xs 3.043
test 13.002
test-t 4.224 - 4.533
csv-parser 13.196
nine samcv: I'm really not sure the debug output in ModuleLoader.nqp has helped anyone in the past 3 years. And I've thought about trimming RAKUDO_MODULE_DEBUG output to the parts that I usually need a couple of times already. Just left everything in in case somebody would at some point benefit from it. 07:10
samcv: but without knowing that anyone benefits and instead knowing that it can harm, I'd go for removing it. 07:11
lizmat Files=1204, Tests=62034, 216 wallclock secs (13.24 usr 5.10 sys + 1319.83 cusr 131.33 csys = 1469.50 CPU) 07:36
yoleaux 14 Jun 2017 16:14Z <eveo> lizmat: this commit change the time of DateTime.second from a Rat to Num. Does it matter? github.com/rakudo/rakudo/commit/74...46bb6891bf
14 Jun 2017 16:46Z <perlawhirl> lizmat: re: eveo's msg... i think the real question is, should *.seconds type be consistent, eg: ( DateTime.new('2012-02-29T12:34:56Z'), DateTime.now ).map( *.second.^name )
eveo NeuralAnomaly: status 10:16
yoleaux 10:09Z <zengargoyle> eveo: yay, thanks much.
NeuralAnomaly eveo, [✘] Next release will be in 1 day and 18 hours. Since last release, there are 65 new still-open tickets (3 unreviewed and 1 blockers) and 43 unreviewed commits. See perl6.fail/release/stats for details
eveo buggable: speed 10 10:17
buggable eveo, ▂▂▂▁▁▁▁▁↓▄ data for 2017-06-11–2017-06-15; range: 4.224s–4.533s; 3% slower
eveo FWIW, I don't have %*ENV<ComSpec> set to anything on my windows box: github.com/rakudo/rakudo/blob/nom/...oc.pm#L127 10:19
Oh wait I do 10:20
would help if I printed the value -_-
Geth rakudo/nom: 241d292568 | (Jonathan Worthington)++ | src/vm/moar/Perl6/Ops.nqp
Generate much better code for p6bool in some cases

An earlier optimization to make it better handle the case of native lexicals unfortunately also made it works for native intermediates, such that things like `nqp::p6bool(nqp::isconcrete($foo))` would generate bad code. While it's true that VM-level box interning meant it didn't actually allocate, it still produced much more costly code than it should have. This fixes it using the recently added decont context mechanism, giving simpler code that still produces a good result on native lexicals.
10:22
rakudo/nom: 7e8bac9bcc | (Jonathan Worthington)++ | src/core/IO/Handle.pm
Optimize lines pull-one a little.

It turns out that `a // b // c` compiles as `(a // b) // c`. Add some parens to make it `a // (b // c)`, which saves an extra .defined call.
10:36
jnthn eveo: I translit'd the C code we've had in place for some years there
eveo jnthn: what about CLONE-HASH-DECONTAINERIZED thing ugexe++ mentioned? Is it no longer needed? 10:38
jnthn Hm, I can't see where that was mentioned 10:39
Oh, I see
No, it's done in Proc::Async 10:40
We don't need to do it twice. :)
eveo cool 10:41
[Coke] Note that I didn't see the proc/in/out issue on my version of nom. Updating to head, trying again. 12:12
Geth nqp/master: 6 commits pushed by pmurias++ 12:13
[Coke] updated, still not getting the errors. 12:15
(testing by running perl6 xt/aspell.t in perl6/doc)
eveo What sort of errors? 12:20
Ah, the ones dogbert17 had last night
[Coke] Did find more new spelling words, though. 12:22
Geth rakudo/nom: b03d8044a4 | (Elizabeth Mattijsen)++ | src/core/set_operators.pm
Fix various issues with Map (<) Map

Mostly to do with the fact that we didn't check for the values in the Map, which we should, as they are when coercing to .Set.
12:29
roast: 2a147f38f3 | (Elizabeth Mattijsen)++ | S03-operators/proper-subset.t
Add a number of Map (<) Map tests

Because we had a bug there that wasn't covered by tests yet.
dogbert17 [Coke] I just fixed #1375 12:38
eveo m: say 948/874
camelia 1.084668
eveo Interesting.... doing $*OUT.encoding: Nil; before doing my $s := "y\n".encode; and a bunch of $*OUT.write: $s; makes the writes 8% slower :S 12:39
s: IO::Handle, 'write'
SourceBaby eveo, Sauce is at github.com/rakudo/rakudo/blob/7e8b...le.pm#L530
dogbert17 [Coke] the discussion yesterday (wrt spurious spelling errors) sort of ended here: rt.perl.org/Public/Bug/Display.html?id=131576
eveo well, maybe.. seems there's some variance 12:41
[Coke] dogbert17: I'm on OS X, and am not seeing that particular problem. 12:55
(just fyi) 12:56
dogbert17: thanks for the fix. Can you take github.com/perl6/doc/issues/1381 as long as you're in there? 12:57
dogbert17 sure, do you want me to add foooooooobar to code.pws? 13:01
dogbert17 does that 13:05
[Coke] +1 13:09
eater eveo: intresting :) I just did it /after/ because I was thinking .write may had additionial checks 13:10
mst eveo: not convinced you're right on reddit 13:16
Printing to dynamically set filehandle
Using filehandle that's an object that can be anything really
both of those are doable in perl5 AFAICT albeit not as prettily
eveo mst: doable != being done in that code 13:17
timotimo right, the code that just uses say("foo") pays that cost without the user benefitting at all
whereas the perl5 code doesn't pay for that
eveo say() literally looks up what's in $*OUT dynvar and calls that object's .say method
mst eveo: well, certainly, "Printing to dynamically set filehandle" is true of both
timotimo AFK for half a day
mst yeah, and perl5's say() looks up the currently selected filehandle and prints to that
eveo mst: how to change it? 13:18
ilmari select($fh)
mst select($fh);
eveo And that's dynamic?
mst it's a global, but it's still a lookup
eveo :/
mst in perl5 a dynamic variable would cost exactly the same to look up
ilmari tehre's SelectSaver, which is basically a scope guard that restores it on DESTROY 13:19
mst since 'local' is handled via stack annotations, so looking it up is just a variable lookup
eveo: I do wish you'd actually learn perl5 before criticising it.
it gets quite old when a bunch of your "look at how much cooler perl6 is" stuff turns out to just be that you'd never learned how to do that in perl5 :( 13:20
eveo That's not at all what that post is saying. 13:21
mst this is a general complaint
lizmat mst eveo afaik everybody has the best intentions here 13:22
mst well, yes, duh
eveo Fine, then I do wish perl5 people would actually try perl6 and stop telling people it doesn't even compile
You know, just a general complaint.
lizmat well, yes, duh :-) 13:23
mst I have tried perl6. the last time resulted in TWEAK getting added because I got annoyed that perl6 was more typing than perl5 ;)
so complained until you stole it and were better again :D
lizmat there you go, we need more of mst in Perl 6 :) 13:24
eveo mst: what do I need to `local` to make the behaviour dynamic and not global?
mst eveo: that isn't directly exposed, but you're talking about performance, and 'local' has no effect on perl5 variable lookup performance, so that still seemed odd 13:25
the fact that perl6 actually handles unicode sensibly is probably the biggest hit anyway, and also the hugest advantage perl6 has over perl5 of the things you listed
eveo So there *isn't* a way to dynamically set the variagble in perl 5?
*the handle 13:26
mst it's "just a global", but so are dynamically scoped variables
eveo No, they're not. 13:27
mst in perl5, they are.
hence if it *was* local()ed the performance wouldn't change
(local in perl5 pushes an entry onto the savestack which is restored when that frame's unwound; read/write to the local()ed variable is a plain access) 13:28
ilmari the issue is that PL_defoutgv isn't available as an actual perl variable, only indirectly via select()
eveo mst: so it goes through dynamic scopes, trying to find a global?
mst no 13:29
eveo Perl 6 does as I understand it
*to find a dynvar
mst that's probably a cleaner implementation but (uneducated guess) potentially slower than the way perl5 handles it
ilmari when you local()-ise a global variable its value gets replaced in-place, and an entry to restore it gets pushed on the save stack 13:30
eveo Does perl5 even have dynamic variables?
ilmari any variable can be set for the current dynamic scope
eveo How?
ilmari any non-lexical variable, that is
local $foo = 42;
mst with 'local'
ilmari will be restored to its old value at the end of the enclosing scope
lizmat but $foo needs to exist already, right ? 13:31
ilmari global variables exist by virtue of being mentioned
mst it being perl5, it probably autovivifies the stash entry
ilmari under strict 'vars' it needs to be fully-qualified or declared with 'our' 13:32
mst or use vars'ed
eveo ilmari: you said it's non-lexicals only, get one?
ilmari eveo: "get one"?
mst 'my $foo;' can't be local()ed, but given 'my %foo;' $foo{bar} can
ilmari lexicals as in variables declared with 'my'
eveo How to make a dynamic varaible in Perl 5
ilmari mention it 13:33
mst again, anything except a pad entry can be made dynamic with local
ilmari and use 'local' to assign a value dynamically scoped
eveo OK
lizmat in Perl 6, a dynamic var is always a pad entry
be it in MY:: or PROCESS:: 13:34
mst basically, 'local' in perl5 works roughly like 'my $saved = $foo; $foo = undef; LEAVE { $foo = $saved }'
ilmari that sounds like a stash entry, not a pad entry
mst except it's at the VM level
ilmari a pad belongs to a scope, a stash to a namespace
mst in soviet perl6, ALL variables live in pads
EQUALITY!
(sorry)
lizmat mst: isn't that more like "our $saved = $foo" ?
mst lizmat: I said 'roughly' because honestly it's C-level fuckery in the VM so any description is going to be at least slightly wrong :) 13:35
lizmat gotcha :-)
mst it's actually more like push @SAVE_STACK, [ \$foo, $foo ] in terms of how the C works 13:36
except it's probably a struct
but we're now into "you can pick 'roughly' or you can read the source" territory, I suspect, and it's a while since I read the source :D
for the record, my goal here is "it annoys me when I see a perl6 to perl5 comparison, and the perl5 is basically sucky, so I first have to mentally rewrite the perl5 to be good perl5, and only then can I appreciate that the perl6 is still nicer, and I'd like to be able to skip that step and go straight to the appreciating the perl6 being nicer" 13:37
this seems like a goal we can all find useful :) 13:38
lizmat agree :-) 13:40
eveo Wonder if there's anyway to make dynamic vars cheaper in Perl 6. 13:42
s: &DYNAMIC 13:43
lizmat eveo: in general, or for builtin dynamic vars ?
SourceBaby eveo, Sauce is at github.com/rakudo/rakudo/blob/b03d...ubs.pm#L30
eveo lizmat: built-in would be enough. In some IO benches I did in the past, &DYNAMIC was usually high on the list
jnthn Yes. iirc, $*OUT is expensive because at present it doesn't actually live on the call stack at all 13:44
mst assuming 'whenever' blocks preserve their dynamic environment, you probably can't do the simple-but-stupid version that perl5 does?
jnthn But falls back to looking in PROCESS
eveo + $*SPEC + $*CWD
jnthn And that fallback isn't something we can presently cache
Which means it ends up a bunch worse than it really should 13:45
eveo Cool.
mst: and yes, TIL I learned `local` was dynamic 13:46
s/I learned/
eveo & 13:47
mst also, while you're right that the perl5 STDOUT isn't an object, the VM *does* have to check the currently selected filehandle isn't
so we're still paying some cost for it being allowed to be
Geth rakudo/nom: 3363c7b93b | (Elizabeth Mattijsen)++ | 3 files
Streamline unknown .WHY handling

It shouldn't matter whether something is a Block, or an Attribute or something else. If no doc could be found, it should return something consistent (Nil for now).
13:48
eveo ok, I removed that from the list 13:49
lizmat is GLOBAL.WHO collapsed at compile time ? 13:57
eveo: perhaps this change has a positive effect on that yes benchmark: gist.github.com/lizmat/f8978bee4ec...bddcf50efa 14:01
it spectests clean
jnthn lizmat: What does "collapsed" mean? 14:05
lizmat I meant, is the lookup done once at compile time, or every time at runtime
eveo lizmat: cool 14:06
lizmat if the former, we could save it somewhere
FWIW, &DYNAMIC is called for $*OUT for *every* say 14:10
eveo: ah, found a way to benchmark it 14:11
eveo Sweet
ugexe any idea what broke `prompt("y/n")` on windows? 14:15
lizmat jnthn's IO refactor ?
jnthn Yes
Saw it earlier. No Windows on this machine. 14:16
But will try and remember to look at it tonight
ugexe its because it does $*OUT.flush essentially. need to fake it?
jnthn Need to just ignore it rather than error on things that it doesn't make sense to flush 14:17
ugexe try { $out.flush } or $out.?flush ? (in case i see this pattern in modules somewhere) 14:19
jnthn Oh, I meant ignore it down at VM level
That'll be much cheaper 14:20
dogbert17 eveo: considering you recent IO++ work, do you think that doc issue github.com/perl6/doc/issues/931 can be closed? 15:01
eveo well, the $COLON$COLON URL no longer works. 15:03
I thought we had .htaccess stuff to make old colon URLs work
dogbert17 which link on that page are you referring to? 15:06
eveo dogbert17: closed the issue
dogbert17 eveo++ 15:07
eveo dogbert17: the OP in the issue links to docs.perl6.org/type/IO$COLON$COLONPath and docs.perl6.org/type/IO$COLON$COLON...$COLONUnix
Both of those are 404s, because of the $COLON crap. But are fine if you change them to proper colons
dogbert17 only 262 issues left ...
eveo Looks like this needs updating: github.com/perl6/doc/blob/master/h...ess#L9-L18 15:08
To make these links work
dogbert17 wonders if we're still generating these erroneous links 15:12
Geth rakudo/nom: 74242e5532 | (Elizabeth Mattijsen)++ | src/core/stubs.pm
Make &DYNAMIC about 1% faster

Hardly measurable, but important as this is a hot code path in looking up dynamic variables, such as $*OUT and %*ENV.
Other things I tried but that didn't give a positive effect:
  - replace nqp::replace by nqp::concat(nqp::substr,nqp::substr)
  - replace assign to native str by binding
  - use "str $name" in signature
For now, nqp::getlexreldyn is blocking &DYNAMIC from being JITted.
eveo Filed as github.com/perl6/doc/issues/1382 15:14
Geth rakudo/nom: 98b9eae9e6 | (Jonathan Worthington)++ | src/vm/moar/Perl6/Ops.nqp
Comment cleanup; ven++.
15:15
rakudo/nom: 9b0b9effe5 | (Jonathan Worthington)++ | 3 files
Change the way we code-gen simple for loops.

For a for loop with a single argument and no phasers, we can generate inline code that calls .pull-one and invokes the block. This will turn megamorphic callsites inside of sink-all into typically monomorphic ones, which should enable the specializer - at least, once it has had some tweaks - to do a better job.
rakudo/nom: 6f9326877c | (Jonathan Worthington)++ | src/Perl6/Optimizer.nqp
Re-instate for range optimization.
15:22
lizmat jnthn: spectests clean on MacOS 15:31
afk&
dogbert17 m: dd [[1,2,3],[4,5]]>>.elems # is this a bad 'is nodal' examples? 15:34
camelia (3, 2)
dogbert17 m: dd [[1,2,[3, 3]],[4,[5, 6, 7]]]>>.elems # would this be better? 15:35
camelia (3, 2)
dogbert17 this is github.com/perl6/doc/issues/966
eveo m: dd ("a", "b", ("c", "d", "e"), [<c d e>])».elems 15:37
camelia (1, 1, 3, 3)
eveo m: dd ("a", "b", ("c", "d", "e"), $[<c d e>])».elems
camelia (1, 1, 3, 3)
eveo m: dd ("a", "b", ("c", "d", "e"), [ "g", "h", [<c d e>]])».elems 15:38
camelia (1, 1, 3, 3)
eveo m: dd ("a", "b", ("c", "d", "e", [<c d e>]), [ "g", "h", [<c d e>]])».elems
camelia (1, 1, 4, 3)
dogbert17 eveo: which one of these should I pick? 15:39
all of them?
eveo None, probably. 1 sec, I had a good one somewhere
m: say (^3, [^4], '5')».Numeric 15:40
camelia ((0 1 2) [0 1 2 3] 5)
eveo There we go 15:41
dogbert17 taken, thx
eveo m: say (^3, [^4], '5').map: *.Numeric
camelia (3 4 5)
eveo ^ with that for contrast
dogbert17 contrast is good :)
eveo or even more clearer 15:42
m: say ((1.0, "2", 3e0), [^4], '5')».Int
camelia ((1 2 3) [0 1 2 3] 5)
eveo To show that it actualy discends into iterables instead of just ignoring them 15:43
dogbert17 so >> is not nodal? 15:45
according to current docs we have 'is nodal: Mark a method for hyperoperators as to be avoided for descending into.'
eveo *avoided*? I thought it was the reverse 15:46
dogbert17 me too :)
eveo >> (and ») are the hyper operators; .Int and .Numeric above are the methods that are or aren't nodal
dogbert17 ah 15:47
eveo s: &deepmap
SourceBaby eveo, Sauce is at github.com/rakudo/rakudo/blob/9b0b...ps.pm#L646
eveo s: &HYPER
SourceBaby eveo, Sauce is at github.com/rakudo/rakudo/blob/9b0b...ps.pm#L529
eveo m: 42.^lookup('Int').can('nodal').say 15:48
camelia ()
eveo Ok, yeah, nodal means not descend
dogbert17 so which examples should we settle for then 15:50
eveo m: .^lookup('Int') does role { method nodal {} } for Str, Int, Range, Array, List, Rat, Num; say ((1.0, "2", 3e0), [^4], '5')».Int
camelia (3 4 5)
eveo Same as before
Except just say that .Int isn't nodal and then find some nodal method and use it to show that it's nodal 15:51
m: say ((1.0, "2", 3e0), [^4], '5')».elems
camelia (3 4 1)
eveo there. Compare Int vs elems and say elems is nodal, but Int ain't
m: say ((1.0, "2", 3e0), [^4], '5')».Int
camelia ((1 2 3) [0 1 2 3] 5)
dogbert17 eveo++, it will be done 15:52
eveo dogbert17++ doing it
dogbert17 eveo: here's the first attempt at 'is nodal', now incorporating [Coke]'s more readable description: gist.github.com/dogbert17/a0a3057f...4367afcde2 16:17
dogbert17 still thinks it's a bit iffy
[Coke] dogbert17: wait, what did I do? 17:04
travis-ci Rakudo build failed. Jonathan Worthington 'Change the way we code-gen simple for loops. 17:35
travis-ci.org/rakudo/rakudo/builds/243306922 github.com/rakudo/rakudo/compare/7...0b9effe5fe
buggable [travis build above] ☠ Did not recognize some failures. Check results manually.
eveo github connect issue "error: RPC failed; curl 56 SSLRead() return error -36" 17:37
jnthn I promise I didn't break github :P 17:40
eveo :)
[Coke] wonder if that's the cause of my Bailador issues in toolchain.
dogbert17 [Coke]: you suggested another text in the issue 17:50
jnthn ugexe: MoarVM HEAD has Windows prompt fix 17:55
[Coke] dogbert17: ah, cool. 18:00
also asking in toolchain, but: I can't install Bailador with zef. it grabs all the deps, and then just exits. 18:03
I have zef 0.1.17 18:04
(using rakudobrew, just did a self-upgrade there and a rehash) 18:05
eveo [Coke]: what's perl6 -v ? 18:06
[Coke] This is Rakudo version 2017.05-443-g7e8bac9bc built on MoarVM version 2017.05-85-g21ee1a50 18:07
eveo m: $*PERL.compiler.version.say
camelia v2017.05.449.g.6.f.9326877
[Coke] so, pretty close.
eveo c: e4468c6 $*PERL.compiler.version.say
committable6 eveo, ¦e4468c6: «v2017.05.440.ge.4468.c.610»
eveo Yeah, you should already have the fix for yesterday's issues...
eveo builds and tests 18:09
Well, I see it successfully toasted in toaster.perl6.party/module?module=...9-g14d7571 18:14
[Coke]: ===> Install [OK] for Bailador:ver('0.0.4') 18:15
On the same commit you're using. 18:16
I mean ^ that's me just now trying it. And it also toasted fine.
[Coke] I can install panda. installing panda and using that to install Bailador.
eveo :S
Weird
[Coke] eveo: did you get the cpan version or the github version, OOC? 18:17
might be able to tell after the fact by ls ~/.zef/tmp/Bail* if it's .git or .tar.gz
eveo [Coke]: no idea. here's full output: gist.github.com/zoffixznet/795d8ed...54e534fc1d 18:18
It sas ===> Fetching [OK]: Bailador:ver('0.0.4') to /home/cpan/.zef/tmp/Bailador-0.0.4.tar.gz
So I guess cpan
[Coke] right.
eveo does the version bumps to get latest and greast moaaar 18:19
[Coke] panda missed that bailador required YAMLish 18:21
eveo: my version of that gist basically ends after the last Fetching. 18:24
no indication of any error, exitcode=0
I was able to get bailador installed with panda, back to $dayjob. :| 18:25
eveo ZOFVM: Files=1254, Tests=139491, 113 wallclock secs (19.55 usr 3.19 sys + 2198.82 cusr 168.46 csys = 2390.02 CPU) 18:29
Geth nqp: 06586046cb | (Zoffix Znet)++ | tools/build/MOAR_REVISION
Bump MoarVM

MoarVM bump brought commits:
  github.com/MoarVM/MoarVM/compare/2...0-g5ea6aaa
5ea6aaa Don't barf on things we can't flush on Windows. 1f5be6a Make find_separator only look at the last chars. ... (13 more lines)
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...0-g5ea6aaa
rakudo/nom: e9b30933b4 | (Zoffix Znet)++ | tools/build/NQP_REVISION
Bump NQP

NQP bump brought commits:
  github.com/perl6/nqp/compare/2017....1-g0658604
0658604 Bump MoarVM be2279d [js] Serialize low level arrays using the REPR ... (24 more lines)
18:30
rakudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017....1-g0658604
23d6d42d91 | (Elizabeth Mattijsen)++ | src/core/Mu.pm

So, in the REPL, you can now do:
   > 42.WHY
   No documentation available for type 'Int'
   Perhaps it can be found at docs.perl6.org/type/Int
Meanwhile, the value returned is still Nil for every other purpose.
eveo Time for another toaster run.
"*** Error in `/home/cpan/toaster/build/nom/install/bin/moar': free(): invalid pointer: 0x000000000416b4c0 *** 18:51
Crawled among the toast output :)
timotimo oh, good one 19:11
eveo: can you isolate that explosion?
eveo timotimo: don't think so. I don't even know which module caused it 19:12
timotimo OK 19:17
AlexDaniel timotimo: if you want to investigate into a module explosion that has a reliable way to reproduce it, and which actually affects people… see rt.perl.org/Public/Bug/Display.html?id=131003 19:29
timotimo oh lord, gumbo 19:40
i'm not actually convinced moar is to blame for it exploding 19:42
but now i can try it under rr and reverse-step
eveo New toast run: toaster.perl6.party/ 11 burns 13 unsuccs 19:47
Haven't looked at whether any of them are false negatives
eveo relocates
timotimo anyway, i'm building a fresh rakudo and see that i can install gumbo 19:50
timotimo also reduces the nursery size 20:03
eveo New blog post: "Perl 6 Release Quality Assurance: Full Ecosystem Toaster": perl6.party/post/Perl-6-Release-Qu...em-Toaster 22:06
samcv eveo++ 22:12
jnthn eveo: I'm wondering if that crash you saw came from File::Temp; I see a few things are burned because of it 22:21
Will see if I can reproduce that tomorrow
Curiously enough, File::Temp itself installed fine
Ominously, the failure is in a test called gc_stress.t :P
MasterDuke eveo++ nice post 22:25
jnthn Nice post and even nicer tool for helping us ship better releases :) 22:26
MasterDuke jnthn: btw, do you have any suggestions for github.com/rakudo/rakudo/pull/1098 ? 22:27
jnthn Well, it's just one of the classic things that happens because we're implementing Perl 6 in Perl 6 :) 22:30
Maybe a non-awful general solution would be to add some kind of parameter trait 22:32
will bind-error { ... }
And then X::TypeCheck::Binding::Parameter can invoke it to get a better message 22:33
MasterDuke to Hash's key and value?
jnthn Yeah
Note that it's a trait though, not a runtime closure
So we'll have to pass in something to the block (perhaps the exception object itself) 22:34
That'd give us a general solution to this kind of problem
MasterDuke little bit more involved than the change in that PR... :) 22:35
think i should just close it until the general solution exists? which maybe i could do, but can't make promises 22:36
lizmat eveo++
eveo: s/similarly elimited/similarly eliminated/ ? 22:37
MasterDuke on a different topic, is anybody going to YAPC::NA 2017? i didn't manage to get $work to pay for it, but they might let me count the time as work time. or if not maybe i'll just come down for a dinner if anything like that is going on 22:42
lizmat MasterDuke: sadly, won't be able to make it :-( 22:43
jnthn MasterDuke: Yeah, I'd rather we solve the general case
MasterDuke jnthn: ok, i'll close and include your suggestion in a comment 22:45
lizmat: too bad, know if any of the P6 core devs are gonna make it? 22:46
jnthn lizmat: 23d6d42d91 is a great idea but does fall into the "role is not a closure" trap
lizmat MasterDuke: TimToady will be there 22:47
jnthn (Though probably will get away with it too)
lizmat argh, I see your point
jnthn: it does seem to work ? 22:48
MasterDuke lizmat: nice, now to figure out who i lent my Programming Perl to... and can i get it back before then...
jnthn Yeah, these things "work" because the scope is captured by the latest outer invocation
MasterDuke should probably ask in #perl6 also 22:49
jnthn Which basically means they work until you have two threads or recursion or something :)
lizmat jnthn: do you have any suggestion to do this properly? 22:50
having .WHY just return a Str by default breaks just about everything :-(
jnthn lizmat: Parametric role 22:51
my role Suggestion[$type] { method ... }; Nil but Suggestion[$type] or so
lizmat ah, duh
Geth rakudo/nom: cc4d9091d7 | (Elizabeth Mattijsen)++ | src/core/Mu.pm
Use a proper typed role for Mu.WHY jnthn++

  See irclog.perlgeek.de/perl6-dev/2017-...i_14739446
23:02
lizmat jnthn: better? ^^^
apart from the commit message: s/typed/parametric/ :-( 23:03
jnthn Yeah, that'll do it :) 23:04
lizmat ok, then that concludes my hacking for today
good night, #perl6-dev!
japhb g'night, lizmat! 23:05
jnthn 'night, lizmat 23:08
Think I'll go rest up too...hoping to get some more perf improvements in tomorrow :) 23:12
o/
japhb 'night jnthn! 23:15
So happy to see perf improvements. :-)