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 |