jnthn tbrowder: Yes, if you have a clear way to reproduce it. 00:00
TimToady got to the point where when he saw a mysterious nqp error he just assumed something wasn't declared right :)
jnthn Though like timotimo said, it soudns very odd
NQP suffers from being the thing we use to build the thing we're actually building 00:01
We barely have time to do that, let alone polish NQP :)
(If somebody wished to, of course, I'd be very happy :))
tbrowder hm, i’ll try, but it’s in the middle of a lot of changes. 00:02
TimToady well, we just need to get the optimizers to the point where Perl 6 code runs as fast as nqp :P
jnthn "just" :-) 00:03
lizmat smop!
jnthn We pay a good amount for all of our Scalar containers
Some kinda escape/alias analysis and related opts would help with at least some of them 00:04
In general, first-class l-values are very powerful, but one of the hardest problems in optimizing Perl 6 00:08
Geth rakudo: cdb53afa54 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/BOOTSTRAP.nqp
We don't need to check for the existence of phasers
00:10
lizmat not much, only one nqp::isnull less per exit_handler call 00:11
jnthn Every little helps 00:13
lizmat jnthn: does the BOOTSTRAP know about nqp::p6bindattrinvres already ? 00:19
looking at the foreign_transform_xxx entries
jnthn Hmm 00:21
I can't remember, sory
*sorry
I think it might
Try it :)
lizmat ok, I'll JFDI :-) 00:22
ok, I reduced the level of the whole block by doing a return on if nqp::p6inpre 00:23
and reduced level on wlll leave by one
alas, same problem as before
lizmat now really calling it a day :-)
gist.github.com/lizmat/4e2d05df2f2...a9106375a2 # in case you're interested 00:24
test file that fails consistenly: t/spec/S16-io/words.t 00:25
good night!
jnthn 'night o/
tbrowder i can give code before and after the var is declared, but the file is about a thousand lines, but i can trim it down some. i can do that later if that is ok. i need to finish another commit on PR #1339 first. 00:28
Geth rakudo/meta-assign-reverse-opt: 7248ac0678 | (Zoffix Znet)++ | src/Perl6/Optimizer.nqp
Reorganize nameless call opt method

Get rid of half-a-screen indent to get some breathing room. No functional changes other than a couple of swaps from +@ to more performant nqp::elems
00:35
travis-ci Rakudo build passed. Zoffix Znet 'Fix typo in comment' 01:26
travis-ci.org/rakudo/rakudo/builds/327967155 github.com/rakudo/rakudo/compare/c...2b8055769b
AlexDaniel releasable6: next 01:30
releasable6 AlexDaniel, Next release in 7 days and ≈17 hours. No blockers. Unknown changelog format
AlexDaniel huggable: star
huggable AlexDaniel, Estimated Rakudo Star releases for 2017: .01, .04, .07 & .10
AlexDaniel ⚠ please no groundbreaking changes this week! :)
Geth rakudo/meta-assign-reverse-opt: 858b659fcd | (Zoffix Znet)++ | src/Perl6/Optimizer.nqp
Performatize MetaAssign with MetaReverse

Unpack it into simpler ops whenever we can, same as with regular MetaAssign unpack that uses a var, except with reversed args. The combination may look rather obscure, but I imagine expert Perl 6 devs will use `$foo [R~]= $bar` to prepend rather than append a string fairly often.
This commit makes `[R~]=` 160x faster 🔥🚀
02:01
roast: 26577a7d2f | (Zoffix Znet)++ | S03-metaops/reverse.t
Couple more tests for metassign + metareverse

Covers work done in
  github.com/rakudo/rakudo/commit/858b659fcd
rakudo/meta-assign-reverse-opt: 0fd88f7234 | (Zoffix Znet)++ | src/Perl6/Optimizer.nqp
Remove accidentally left over debug code
02:02
rakudo: zoffixznet++ created pull request #1390:
Meta assign reverse opt
02:04
rakudo/master: 4 commits pushed by (Zoffix Znet)++ 02:05
rakudo: d73d88717d | (Zoffix Znet)++ | src/Perl6/Optimizer.nqp
Simplify core op lookup
02:40
tbrowder AlexDaniel: rakudo PR #1339 has been modified to use bigints for all %config hash integer values. 03:19
AlexDaniel I know. There's a new comment also :)
Geth nqp: ee6e9c855c | (Zoffix Znet)++ | src/QAST/Block.nqp
Add $!cuid to QAST::Block.dump

So we could see which BVal refers to which Block
03:23
AlexDaniel tbrowder: FWIW, your commit messages could be better 03:27
that's for the next time :)
like, there's the first commit which is great 03:28
and then commits like “chg POD6 to POD”, which is ok but not very presentable
tbrowder ok, i’ll try be a bit wordier and more to the point “next” time... 03:30
AlexDaniel tbrowder: if I were you, instead of committing “remove extra space” and “fix typo” I'd do `git commit --amend`
you'd have to push --force when you do that, but that's OK for pull requests
tbrowder ok, good points—sounds like good stuff for CONTRIBITING 03:32
AlexDaniel IMO it's not so much the lack of words, but more that these intermediate commits that are kinda irrelevant (but have to be pulled in anyway)
tbrowder so no msg with the “git —amend” cmd? 03:33
AlexDaniel git --amend wil put your staged changes into the last commit 03:34
and you can also change the commit message of the last commit while doing that
This looks like a useful article: blog.adamspiers.org/2015/03/24/why...-requests/
(just please anyone who follows these instructions, don't lose your changes :) ) 03:35
tbrowder ok, i’ll check it out. i’ve looked into squashing but not amending which i guess is more relevant for PRs.
AlexDaniel it's also cool when you work locally and haven't pushed anything yet 03:36
and you realize that some file was forgotten, or the commit message should be changed
only works for the last commit tho. A bit more complicated if you need to change something else 03:37
tbrowder right. btw, how do you see my changes so fast? is there a way to get github notifications other than email? i see a web method but am not sure what it is. 03:41
and, in case you haven’t seen it, i have removed the superflous code. 03:42
s/flous/fluous/ 03:43
AlexDaniel: g’night from UTC-5 03:51
AlexDaniel you too, from UTC+2 :)
Geth rakudo: 062dc3f04f | (Zoffix Znet)++ | src/Perl6/Optimizer.nqp
Add a debug point in visit_children
06:24
rakudo: 60566cfc4a | (Zoffix Znet)++ | t/05-messages/10-warnings.t
Label test with ticket number for it
08:04
rakudo: 728acf597c | (Zoffix Znet)++ | t/05-messages/10-warnings.t
Fix spurious warnings in try thunks inside blocks

Fixes RT#131331: rt.perl.org/Ticket/Display.html?id=131331 Fixes RT#131123: rt.perl.org/Ticket/Display.html?id=131123
When we got a thunky `try` in a block, the QAST chain we make contains `nqp::handle` op inside a QAST::Want, but ::Want doesn't know how to propagate wantedness through handle ops. Fix by adding that.
08:09
synopsebot RT#131331 [new]: rt.perl.org/Ticket/Display.html?id=131331 [BUG] Wrong useless use warning in grep + try + after
synopsebot RT#131123 [open]: rt.perl.org/Ticket/Display.html?id=131123 [BUG] Useless use of useless use in smartmatch + block + try
Geth rakudo: 2805b15da4 | (Zoffix Znet)++ | t/05-messages/10-warnings.t
Revert "Fix spurious warnings in try thunks inside blocks"

This reverts commit 728acf597cf31fb2a6ad0b2acf5cb253bc5c99a5.
  (missing files)
08:13
rakudo: ef2dc1b8ba | (Zoffix Znet)++ | 2 files
Fix spurious warnings in try thunks inside blocks

Fixes RT#131331: rt.perl.org/Ticket/Display.html?id=131331 Fixes RT#131123: rt.perl.org/Ticket/Display.html?id=131123
When we got a thunky `try` in a block, the QAST chain we make contains `nqp::handle` op inside a QAST::Want, but ::Want doesn't know how to propagate wantedness through handle ops. Fix by adding that.
rakudo: 99da4a5a6c | (Zoffix Znet)++ | 2 files
Do not warn in explicit sink of variables

Fixes RT#128692: rt.perl.org/Ticket/Display.html?id=128692
It's not useless, since a variable may contain, e.g. a Seq to sink
09:16
synopsebot RT#128692 [open]: rt.perl.org/Ticket/Display.html?id=128692 [BUG] useless uses of "useless use ... in sink context" warning in sink context
geekosaur do we actually do anything in that case? (recalling an earlier bug where untriggered Failures vanish if they're values in a sunk container) 09:21
Geth rakudo: 00188757dc | (Zoffix Znet)++ | src/Perl6/World.nqp
Add node info to ±Inf/NaN num constants
10:14
rakudo: e9c9dc4695 | (Zoffix Znet)++ | src/Perl6/Optimizer.nqp
Warn on ±Inf/NaN in sink context

Fixes RT#126973: rt.perl.org/Ticket/Display.html?id=126973
The neginf likely not needed after we fixed[^1] `-Inf` being a single term, but watch for it anyway, just in case.
  [1] github.com/rakudo/rakudo/commit/ae...4e95579bc4
10:15
synopsebot RT#126973 [open]: rt.perl.org/Ticket/Display.html?id=126973 [BUG] No sink warnings when Inf or NaN is in sink context ( ∞ )
roast: 6869312c03 | (Zoffix Znet)++ | S32-exceptions/misc.t
Test ±Inf/NaN warn in sink context

RT#126973: rt.perl.org/Ticket/Display.html?id=126973 Rakudo fix: github.com/rakudo/rakudo/commit/e9c9dc4695
10:16
araraloren Hi 10:58
I have a question about NQP source code. Where is the source code of stage0 ? 10:59
lizmat Files=1231, Tests=75989, 331 wallclock secs (14.69 usr 5.06 sys + 2252.91 cusr 232.77 csys = 2505.43 CPU) 11:43
5EXAAJYUK Rakudo version 2017.12-198-ge9c9dc469 - MoarVM version 2017.12.1-32-g56c03d99c 11:49
csv-test-xs-20 0.434 - 0.437
csv-ip5xs 1.152 - 1.154
test-t --race 1.151 - 1.155
test-t 2.845 - 2.872
test 11.439 - 11.541
csv-parser 12.362 - 12.528
csv-ip5xs-20 13.212 - 13.665
test-t-20 --race 17.389 - 17.451
test-t-20 50.068 - 51.075
lizmat 5EXAAJYUK: who are you and what have you done to Tux ? 12:15
jnthn araraloren_: It's a compiled version of NQP, so look back to the commit that last updated stage0, and the NQP source at that commit is what was compiled into stage0 12:19
[Tux] Pheeuw :) 12:29
Geth rakudo: 21bc5916c0 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/BOOTSTRAP.nqp
Micro-optimize exit_handler, part #4

  - only fetch %phasers if actually needed
  - only fetch keeps/undos if actually needed
  - appears to make a single LEAVE a few % faster, but it is difficult to bench
   - as "for ^100000 { LEAVE Nil }" is a very tight loop
   - very CPU intensive, so prone to heating up the CPU and getting throttled down
12:52
rakudo: titsuki++ created pull request #1395:
FIx RT#126669
13:46
synopsebot RT#126669 [open]: rt.perl.org/Ticket/Display.html?id=126669 [LHF][LTA] error with "need 6"/"use 6" (no "v")
Geth rakudo: 2dc93ac345 | (Itsuki Toyota)++ | src/core/Exception.pm
Add error messages for Perl5-style pragma (e.g., "use 6.0", "need 6.0")

Fixes RT#126669: rt.perl.org/Public/Bug/Display.html?id=126669
When the name of an undeclared routine matches any keys of the table $obs, it shows the associated error message. This fix leverages this table; it stores "use" and "need" each as a key and their associated error messages each as a value.
14:09
synopsebot RT#126669 [open]: rt.perl.org/Ticket/Display.html?id=126669 [LHF][LTA] error with "need 6"/"use 6" (no "v")
Geth rakudo: 4ec5936cd5 | (Itsuki Toyota)++ | t/05-messages/02-errors.t
Add tests for X::Undeclared::Symbols exception for when Perl5-style pragma is used

Fixes RT#126669: rt.perl.org/Public/Bug/Display.html?id=126669
14:10
dogbert17 ZOFFLOP: t/spec/S03-operators/short-circuit.t (test #84)
rakudo: b2bf8e10b2 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 2 files
Merge pull request #1395 from titsuki/fix-use-lta

Fix RT#126669
rakudo: 0af3f4d1c3 | (Elizabeth Mattijsen)++ | src/core/List.pm
Make .sum on 2-element Lists about 30% faster

  - basically fast path 1 and 2 element lists
  - 1 element lists also slightly faster, but close to noise
Inspired by twitter.com/LearningPerl6/status/9...7266354176
14:13
lizmat afk& 14:14
pmurias samcv: I now see that the tie-breaker behavior is toggable as quaternary 14:21
Geth rakudo: 1e8c9762e4 | (Christian Bartolomäus)++ (committed using GitHub Web editor) | src/Perl6/Metamodel/BOOTSTRAP.nqp
[JVM] Remove superfluous parenthesis

Fixes JVM build.
14:29
nqp: 5d45955607 | (Tom Browder)++ (committed using GitHub Web editor) | docs/ops.markdown
fix typo
15:39
lizmat bartolin++ # oops :-) 16:17
Geth tap-harness6: hankache++ created pull request #24:
Improve documentation
18:52
samcv pmurias: yeah 19:20
it still is non-ignorable in basis though
lizmat ok, I seem to draw a blank: 19:43
m: module A { our sub foo() { 42 } }; my $a := A; say "exists" if A::<&foo>
camelia exists
lizmat what is the syntax if the class is in $a ?
m: module A { our sub foo() { 42 } }; my $a := A; say "exists" if $a<&foo> # not the right syntax or bug ? 19:44
camelia ( no output )
gfldex m: say $*VM; 19:45
camelia moar (2017.12.1.30.ged.7.c.1234.f)
Zoffix m: module A { our sub foo() { 42 } }; my $a := "A"; say "exists" if ::($a ~ '::&foo')
camelia exists
gfldex is there something like $*RAKUDO?
lizmat gfldex: no
Zoffix++ 19:46
Zoffix m: say $*PERL.compiler
camelia rakudo (2017.12.204.g.1.e.8.c.9762.e)
gfldex that's what I'm looking for :)
lizmat Zoffix++ # again!
Geth rakudo: jstuder-gh++ created pull request #1396:
Issue 1261: Throw BIND-KEY Exception instead of using Failure
19:49
rakudo: 6a3db33445 | (Jeremy Studer)++ | src/core/Any.pm
Throw BIND-KEY Exception instead of using Failure

As suggested by zoffix and jnthn, since the result of BIND-KEY does not sink, the Exception within the Failure is never thrown. Throws now.
Addresses [Issue 1261](github.com/rakudo/rakudo/issues/1261)
19:52
rakudo: f25fdbdf0a | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core/Any.pm
Merge pull request #1396 from jstuder-gh/MapBindSinkFail

Issue 1261: Throw BIND-KEY Exception instead of using Failure
b2gills bisect: 'abc'.ords.rotor(2=>-1,:partial) 20:00
bisectable6 b2gills, Bisecting by exit code (old=2015.12 new=1e8c976). Old exit code: 0
b2gills, bisect log: gist.github.com/8a910bae3edb8601bd...0a624a94f2
b2gills, (2017-01-18) github.com/rakudo/rakudo/commit/fd...622cf7486f
lizmat b2gills: please rakudobug / GH issue that 20:17
b2gills lizmat: That was the last thing I was doing as part of filing github.com/rakudo/rakudo/issues/1397 20:18
lizmat ok, cool :-) 20:19
Geth roast: jstuder-gh++ created pull request #376:
Rakudo Issue 1261: Test that there no binding to immutable List/Map
20:39
roast: 347f45c080 | (Jeremy Studer)++ | 2 files
Test that there no binding to immutable List/Map

Also add tests involving binding at a key or position where a Scalar container resides. Binding should not be allowed in those instances either.
Addresses
  [Rakudo Issue 1261](github.com/rakudo/rakudo/issues/1261)
20:46
roast: e6ef7b673c | (Zoffix Znet)++ (committed using GitHub Web editor) | 2 files
Merge pull request #376 from jstuder-gh/issue_1261_tests

Rakudo Issue 1261: Test that there no binding to immutable List/Map
nqp: d1f519b1fa | pmurias++ | 2 files
[js] Implement nqp::unicmp_s

Use the unicode-collation-algorithm package for that
21:09
lizmat ok, so I started to implement tie() for Perl 6, using Perl 5 semantics 21:10
github.com/lizmat/tie
tbrowder jnthn: i just filed nqp GH #389 for the LTA msg i mentioned yesterday. it shows the error msg for as short a code chunk as i could make to duplicate the error.
lizmat and get stumped by:
$ perl6 -Ilib t/01-basic.t
Cannot invoke this object (REPR: Uninstantiable; tie)
stacktrace goes right back into NQP 21:14
weird
aaahhhh 21:15
unit module tie; sub tie {} is export;
if I change the name of the module, it works 21:16
masak interesting 21:21
m: unit module tie; say tie
camelia (tie)
masak m: unit module tie; say tie; sub tie {}
camelia (tie)
masak m: unit module tie; say tie; sub tie is export {}
camelia (tie)
masak lizmat: `is export` doesn't go after `{}`, does it?
lizmat no 21:22
I guess it's a case of DIHWIDT
masak more like a case of "not grammatical"...? :) 21:23
seriously, though, I would expect the name clash to be either completely outlawed, or no problem at all 21:25
lizmat I think that it should just be a compile time error 21:31
it would be trying to export "tie" twice: once as a type, and once as a sub
that can never work, I would thin
k
jnthn It's not a conflict because subs are installed as &foo 21:33
m: class foo { }; sub foo() { "lol I'm a sub" }; say foo; say foo() 21:34
camelia (foo)
(foo(Any))
jnthn m: class foo { }; sub foo() { "lol I'm a sub" }; say foo; say &foo()
camelia (foo)
lol I'm a sub
jnthn There we go
masak ooh, of course 21:36
I'd half-expect that first `say foo()` to work too, tbh
jnthn Coercion type syntax wins 21:37
masak oh!
that makes sense, unfortunately :) 21:38
jnthn Need more bracket chars in ASCII
masak .oO( time-travel fiction about going back and convincing the authors of ASCII to add more bracket chars... ) 21:52
lizmat
.oO( in my days, you only had 6 bits to express a character in )
21:57
geekosaur apparently just missed the tail end of BAUDOT 22:02
masak lizmat: even so, if you really liked brackets, 6 bits could get you 32 pairs of 'em 22:03
lizmat but no more letters :-)
tadzik well, if lisp taught us anything... who needs letters :P
masak not sure that was the lesson of Lisp :P 22:12
sure, with De Bruijn notation I guess you can get rid of letters 22:13
Geth roast: 0bca7906b7 | (Zoffix Znet)++ | S32-list/toggle.t
Spec .toggle

Rakudo impl: github.com/rakudo/rakudo/commit/78...6bceb5ab99
   github.com/rakudo/rakudo/commit/e7...4475370589
Closes github.com/perl6/roast/issues/372
22:26
rakudo: cc19507aba | (Zoffix Znet)++ | t/spectest.data
Add S32-list/toggle.t to list of test files
lizmat Zoffix++ 22:33
Geth specs: 5e5a0c5dba | (Zoffix Znet)++ (committed using GitHub Web editor) | html/perl-with-historical-message.css
Center <body>

Getting a neck cramp reading left-aligned 730px <body> on 1440p/27" monitor
22:53
AlexDaniel 🖕 RT. Pressed the button twice accidentally, it submitted my comment twice. 🤦 23:02
lizmat afk& 23:11