MasterDuke | turns out i *nearly* have a fix for the JVM. it compiles fine, but './perl6-j tools/build/install-core-dist.pl /home/dan/Source/perl6/install/share/perl6' dies with 'Flattening named argument must have VMHash REPR' | 01:00 | |
--ll-exception output here: gist.github.com/MasterDuke17/0e3fb...7b600706de | 01:02 | ||
that error is in ./src/vm/jvm/runtime/org/perl6/nqp/sixmodel/SixModelObject.java | 01:04 | ||
[Tux] | This is Rakudo version 2016.09-169-ge2cd7a3 built on MoarVM version 2016.09-39-g688796b | 06:37 | |
csv-ip5xs 3.118 | |||
test 15.785 | |||
test-t 6.863 | |||
csv-parser 20.721 | |||
jnthn | morning, #perl6-dev | 08:42 | |
Hmm, just built latest Moar/NQP/Rakudo and get gist.github.com/jnthn/92afc7ae19f9...0c92532e1e | 09:06 | ||
In spectest | |||
Is it "just me"? | |||
timotimo | i'll have a go | 09:07 | |
need to turn off asan frist | 09:10 | ||
first* | |||
S06, and counting | 09:13 | ||
jnthn is fixing Proc::Async to not be vulnerable to the same uncatchable decoding exception bug that IO::Socket::Async had | |||
timotimo | all tests successful on my machine | 09:16 | |
timotimo makes extra sure the nqp is up to date | 09:17 | ||
i think there's only been commits to other backends since last time i make-installed | |||
100% success | 09:23 | ||
jnthn | Oddness | 09:24 | |
Wonder what I'm missing | |||
lizmat | Files=1147, Tests=53301, 214 wallclock secs (12.82 usr 3.99 sys + 1303.13 cusr 121.19 csys = 1441.13 CPU) | 10:07 | |
jnthn: also 100% here | 10:08 | ||
jnthn | Oddness | ||
Well, doing another run now with my latest patches | |||
jnthn seems to have started on a bunch of stuff and finished little of late :/ | 10:09 | ||
So, today going to at least try and finish some stuff up :P | |||
lizmat | jnthn++ :-) | ||
jnthn | oh dear, the water's turned a funny color | 10:15 | |
.oO( That makes beer the healthy option :P ) |
|||
grmbl, now I get a totally different spectest fail | 10:16 | ||
t/spec/S02-literals/allomorphic.t | |||
And it runs fine on its own | |||
lizmat | does it also fail with "use lib "." or so? | 10:18 | |
and if so, how ? | 10:19 | ||
jnthn | I ran it with -Ilib | 10:21 | |
Fine with -I. too | 10:22 | ||
dalek | kudo/nom: 969701c | jnthn++ | / (4 files): Move VMBackedDecoder into Rakudo::Internals. So that we can re-use it in fixing up other I/O. |
10:24 | |
kudo/nom: a745486 | jnthn++ | src/core/Proc/Async.pm: Switch Proc::Async to manage decoding from Perl 6. This solves the same problem IO::Socket::Async had with uncatchable exceptions on decoding errors. |
|||
Zoffix | jnthn, I do get stresstest floppers... I think the other day I mentioned that in 5 runs only the first one passed, and it was a different file failing each time. | 10:25 | |
jnthn | Argh | 10:26 | |
After all the time I spent hunting down flappers before... :/ | |||
Well, not going to get distracted with them. | |||
cygx | o/ | 10:27 | |
Zoffix | \o | ||
jnthn | o/ | ||
cygx | found a serialization bug: BEGIN my @foo[42]; | ||
put that in a module, and see it explode when useing it... | 10:28 | ||
jnthn | How does it explode? | 10:29 | |
timotimo | we'll get the answer once cygx comes back from the hospital ... | 10:30 | |
Zoffix | :D | ||
timotimo | i won't look at this issue. cool guys don't look at explosions! | 10:32 | |
cygx had to check on his cooking | 10:33 | ||
Zoffix tips the waiters | |||
cygx | "Missing serialize REPR function for REPR MVMContext" | ||
jnthn | Odd | 10:35 | |
timotimo | i pushed a little commit to moarvm that gives a tiny bit of extra info on this | 10:36 | |
jnthn | RT it, anyways | ||
cygx | no change in output with the latest moarvm... | 10:38 | |
Zoffix | ZOFVM: Files=1195, Tests=129697, 135 wallclock secs (21.36 usr 3.34 sys + 2444.11 cusr 201.22 csys = 2670.03 CPU) | 10:39 | |
timotimo | no change at all? | ||
Zoffix | No fails in two runs | ||
timotimo | at least the "missing serialize repr function" message should have () at the end | ||
if nothing else | |||
Zoffix | I think there's a better way to sort t/spectest.data (maybe even automagically, before each run): by time the test files take to run, longest first. Maybe even a bit smarter algorithm based on number of cores on the box. I'm seeing most of them fly through the screen, but at the end, there are about 5 that take ages to complete, and my other 19 cores are just sitting there. If those were first to run, the load would be distributed much more evenly. | 10:40 | |
Sounds like a fun project for the weekend \o/ | |||
jnthn | Alternatively, rewrite the tests to not be so slow :) | 10:41 | |
Many tests use sleep and so on | |||
When really we should make a test scheduler | |||
With virtualized time | |||
That we stick in $*SCHEDULER | |||
Zoffix | sounds fancy :D | ||
jnthn | And then tests for stuff like Promise.in and Supply.interval would run in a tiny amount of time | ||
cygx is trying to figure out why his rakudo still uses an out-of-date moarvm | 10:43 | ||
Zoffix | cygx, forgot prefix? | 10:44 | |
cygx, if you don't build it yourself, it'll use the "good enough" version, not the latest. | |||
You need to: cd nqp/MoarVM; git pull; perl Configure.pl --prefix=../../install; make; make install; cd ../../ | 10:45 | ||
timotimo | make -j is worth a lot in moarvm | 10:46 | |
dalek | ast: 4fcb0be | jnthn++ | S17-procasync/encoding.t: Test Proc::Async encoding errors are catchable. Previously, they could bring down the process. Also two tests that tickle a separate supply/whenever/LAST bug that boil down to the long-unresolved phaser cloning issues. |
10:47 | |
p: f8dfb0f | (Pawel Murias)++ | src/vm/js/Compiler.nqp: [js] Remove expensive logging of stuff. |
10:57 | ||
p: cf14d7a | (Pawel Murias)++ | src/vm/js/nqp-runtime/reprs.js: [js] Stub AsyncTask repr. |
|||
p: 558f4df | (Pawel Murias)++ | src/vm/js/RegexCompiler.nqp: [js] Stop from generating unneeded boolifications (caused a bug when rakudo.js was compiling the setting). |
|||
kudo/js: 5c1b5e6 | (Pawel Murias)++ | src/vm/js/perl6-runtime/runtime.js: [js] Fix bug in nqp::p6box_i. |
|||
travis-ci | Rakudo build failed. Jonathan Worthington 'Switch Proc::Async to manage decoding from Perl 6. | 10:58 | |
travis-ci.org/rakudo/rakudo/builds/167007533 github.com/rakudo/rakudo/compare/e...454865eaf7 | |||
buggable | [travis build above] ā Did not recognize some failures. Check results manually | ||
Zoffix | all JVM. | 10:59 | |
dalek | kudo/nom: 6037673 | jnthn++ | t/spectest.data: Run S17-procasync/encoding.t. |
11:02 | |
kudo/nom: e08da94 | jnthn++ | src/core/ (4 files): Factor out byte supply -> chars supply decoding. Also allow the encoding to be specified, in preparation for giving Proc::Async and IO::Socket::Async encoding support. |
|||
ast: 0705a6e | LLFourn++ | S17-promise/start.t: Tests for RT #127033 dynamic variables used to disappear inside start blocks sometimes |
11:05 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127033 | ||
cygx | I've been unable to figure out the weirdness with my system | 11:29 | |
anyway, here's the ticket: rt.perl.org/Public/Bug/Display.html?id=129855 | 11:30 | ||
jnthn | lunch & | 11:34 | |
travis-ci | Rakudo build failed. Jonathan Worthington 'Factor out byte supply -> chars supply decoding. | 11:36 | |
travis-ci.org/rakudo/rakudo/builds/167015196 github.com/rakudo/rakudo/compare/a...8da94d635a | |||
buggable | [travis build above] ā Did not recognize some failures. Check results manually | ||
lizmat | m: sub a(str @b) { dd @b }; a <a b c d> # this should work, no ? | ||
camelia | rakudo-moar e08da9: OUTPUTĀ«Type check failed in binding to @b; expected Positional[str] but got List ($("a", "b", "c", "d"))ā¤ in sub a at <tmp> line 1ā¤ in block <unit> at <tmp> line 1ā¤ā¤Ā» | ||
jnthn | No | 11:40 | |
Types are nominal, not structural | |||
ah, right, I was going for lunch... :) & | 11:41 | ||
lizmat | m: say "1234567890".match(/./,:nth(2,4...*)) # expected to see 2 4 6 8 0 | 12:19 | |
camelia | rakudo-moar e08da9: OUTPUTĀ«ļ½¢2ļ½£ā¤Ā» | ||
lizmat | is that a bug? ^^^ | ||
jnthn | m: sub foo(:@nth) { dd @nth }; foo :nth(2,4...*) | 12:34 | |
camelia | rakudo-moar e08da9: OUTPUTĀ«(2, 4, 6, 8, 10, 12, 14, 16, 18, 20... (lazy list)ā¤Ā» | ||
jnthn | m: sub foo(:$nth) { dd @nth }; foo :nth(2,4...*) | ||
camelia | rakudo-moar e08da9: OUTPUTĀ«===SORRY!=== Error while compiling <tmp>ā¤Variable '@nth' is not declared. Did you mean '$nth'?ā¤at <tmp>:1ā¤------> sub foo(:$nth) { dd ā@nth }; foo :nth(2,4...*)ā¤Ā» | ||
jnthn | m: sub foo(:$nth) { dd $nth }; foo :nth(2,4...*) | ||
camelia | rakudo-moar e08da9: OUTPUTĀ«Seq $nth = (2, 4, 6, 8, 10, 12, 14, 16, 18, 20... (lazy list)ā¤Ā» | ||
jnthn | Looks like, yes | ||
Givne than | |||
m: say "1234567890".match(/./,:nth(2,4, 6)) | |||
camelia | rakudo-moar e08da9: OUTPUTĀ«(ļ½¢2ļ½£ ļ½¢4ļ½£ ļ½¢6ļ½£)ā¤Ā» | ||
jnthn | Does work | ||
No reason the Seq case should not | 12:35 | ||
May need some extra care around laziness | |||
lizmat | indeed... will look at that... | ||
jnthn | But I think we established before that idt doesnt' work on any Seq | ||
Wow, so typing | |||
lizmat | well, laziness is already taken care of, I think | ||
and if not, I will now :-) | |||
jnthn | m: say uniname "Ćl".encode('latin-1').decode('utf-8') | 12:36 | |
camelia | rakudo-moar e08da9: OUTPUTĀ«Malformed UTF-8 at line 1 col 1ā¤ in block <unit> at <tmp> line 1ā¤ā¤Ā» | ||
dalek | kudo/nom: e8880d5 | jnthn++ | src/core/Proc/Async.pm: Allow the encoding to be chosen in Proc::Async. |
12:41 | |
ast: 82eb5c0 | jnthn++ | S17-procasync/encoding.t: Tests for Proc::Async encoding flag. |
|||
kudo/nom: 49c0d63 | lizmat++ | src/core/ (2 files): Give :ov its own iterator One less check to make in a hot loop. |
12:50 | ||
lizmat | m: say "1234567890".match(/../,:ov,:ex) # I would argue this is also a bug | 12:53 | |
camelia | rakudo-moar e8880d: OUTPUTĀ«(ļ½¢12ļ½£ ļ½¢23ļ½£ ļ½¢34ļ½£ ļ½¢45ļ½£ ļ½¢56ļ½£ ļ½¢67ļ½£ ļ½¢78ļ½£ ļ½¢89ļ½£ ļ½¢90ļ½£)ā¤Ā» | ||
lizmat | oops, no | ||
travis-ci | Rakudo build failed. Jonathan Worthington 'Allow the encoding to be chosen in Proc::Async.' | 13:14 | |
travis-ci.org/rakudo/rakudo/builds/167039888 github.com/rakudo/rakudo/compare/e...880d55ce77 | |||
buggable | [travis build above] ā Did not recognize some failures. Check results manually | ||
dalek | kudo/nom: fcb0973 | jnthn++ | src/core/Proc/Async.pm: Allow choice of encoding by handle in Proc::Async. |
13:23 | |
ast: 5f60afa | jnthn++ | S17-procasync/encoding.t: Also test setting Proc::Async encoding by handle. So you can pick a different encoding to read for stdout/stderr vs. the one you pick for stdin. If not specified, the default is the encoding set in the Proc::Async constructor. |
|||
travis-ci | Rakudo build failed. Elizabeth Mattijsen 'Give :ov its own iterator | 13:36 | |
travis-ci.org/rakudo/rakudo/builds/167042840 github.com/rakudo/rakudo/compare/e...c0d63a522d | |||
buggable | [travis build above] ā Did not recognize some failures. Check results manually | ||
dalek | kudo/nom: 2f841db | lizmat++ | src/core/Rakudo/Internals.pm: Add role Rakudo::Internals::MatchIterator Part of the Str.match overhaul |
13:49 | |
travis-ci | Rakudo build failed. Jonathan Worthington 'Allow choice of encoding by handle in Proc::Async.' | 14:01 | |
travis-ci.org/rakudo/rakudo/builds/167052223 github.com/rakudo/rakudo/compare/4...b09733bf66 | |||
buggable | [travis build above] ā Did not recognize some failures. Check results manually | 14:02 | |
dalek | kudo/nom: 23f2e2e | jnthn++ | src/core/IO/Socket/Async.pm: Allow choosing encoding in IO::Socket::Async. |
14:12 | |
p3rln00b | .tell cygx if you'd like to show up under something other than `cygx` in credits in release announcement, please enter yourself into github.com/rakudo/rakudo/blob/nom/CREDITS | ||
yoleaux2 | p3rln00b: I'll pass your message to cygx. | ||
dalek | ast: c46f137 | jnthn++ | S32-io/IO-Socket-Async.t: Test :enc argument in IO::Socket::Async. |
||
jnthn | And that rounds off the IO::Socket::Async/Proc::Async encoding fixes. Phew. :) | 14:16 | |
p3rln00b | \o/ | ||
p3rln00b mods the contributor script to print number of commits along the names... | 14:18 | ||
Jesus... I need to get a hobby :| | |||
dogbert17 | on no, it's p3rln00b :) | 14:21 | |
mst | p3rln00b: I think this particular hobby already got you. | ||
p3rln00b | m: say "{209 / (Date.today.daycount - Date.new("2016-09-17").daycount)} commits/day average" | 14:22 | |
camelia | rakudo-moar 2f841d: OUTPUTĀ«8.36 commits/day averageā¤Ā» | ||
p3rln00b | m: say Date.today - Date.new("2016-09-17") | 14:24 | |
camelia | rakudo-moar 2f841d: OUTPUTĀ«25ā¤Ā» | ||
p3rln00b | This is nice. | ||
NeuralAnomaly: status | 14:25 | ||
NeuralAnomaly | p3rln00b, [ā] Next release will be in 2 days and 14 hours. Since last release, there are 43 new still-open tickets (3 unreviewed and 0 blockers) and 21 unreviewed commits. See perl6.fail/release/stats for details | ||
[Coke] is so glad p3rln00b volunteered to take a few releases back in the day! | 14:28 | ||
you've definitely improved it since I've touched it. | 14:29 | ||
... I mean, that sounds like some kind of back-handed compliment, but I'm genuinely happy with the work you're doing. | 14:46 | ||
travis-ci | Rakudo build failed. Elizabeth Mattijsen 'Add role Rakudo::Internals::MatchIterator | 14:54 | |
travis-ci.org/rakudo/rakudo/builds/167059661 github.com/rakudo/rakudo/compare/f...841db95406 | |||
buggable | [travis build above] ā Did not recognize some failures. Check results manually | ||
dalek | p: 5224878 | jnthn++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp: Stop using flattenropes op. Will be replaced with something non-inplace, and that will be done in !cursor_init. |
15:02 | |
travis-ci | Rakudo build failed. Jonathan Worthington 'Allow choosing encoding in IO::Socket::Async.' | 15:05 | |
travis-ci.org/rakudo/rakudo/builds/167066382 github.com/rakudo/rakudo/compare/2...f2e2ee9911 | |||
buggable | [travis build above] ā Did not recognize some failures. Check results manually | 15:06 | |
lizmat | m: say "1234567890".match(/./,:nth(4,3)) # sorta expected 4 3 here | 15:15 | |
camelia | rakudo-moar 23f2e2: OUTPUTĀ«(ļ½¢4ļ½£)ā¤Ā» | ||
lizmat | ^^^ should we consider this a bug? | ||
p3rln00b | m: say "1234567890".match(/./,:nth(4,3,5)) | ||
camelia | rakudo-moar 23f2e2: OUTPUTĀ«(ļ½¢4ļ½£ ļ½¢5ļ½£)ā¤Ā» | ||
p3rln00b | I wouldo. | ||
lizmat | m: say "1234567890".match(/./,:g)[4,3] # or do we expect them to do this | ||
camelia | rakudo-moar 23f2e2: OUTPUTĀ«(ļ½¢5ļ½£ ļ½¢4ļ½£)ā¤Ā» | ||
lizmat | m: say "1234567890".match(/./,:g)[3,2] # eh this | 15:16 | |
camelia | rakudo-moar 23f2e2: OUTPUTĀ«(ļ½¢4ļ½£ ļ½¢3ļ½£)ā¤Ā» | ||
lizmat | ok, will take that along then as well | ||
p3rln00b | m: say "1234567890".match(/./,:nth(1,0,3,2,5,4)) | ||
camelia | rakudo-moar 23f2e2: OUTPUTĀ«(ļ½¢1ļ½£ ļ½¢3ļ½£ ļ½¢5ļ½£)ā¤Ā» | ||
lizmat | yeah, it's pretty convoluted and sick at the moment :-) | ||
p3rln00b | :) | 15:17 | |
TimToady | according to S05:541, the list provided to nth must be monotonically increasing | 15:22 | |
synopsebot6 | Link: design.perl6.org/S05.html#line_541 | ||
TimToady | in other words, it's only intended for a non-caching, potentially lazy situation | 15:23 | |
p3rln00b | hmm | ||
TimToady | .[] is there if you need caching, as shown above | 15:24 | |
jnthn | Makes sense, given .match produces matches lazily anyway so you'd have to cache (which ruins memory savings of producing matches lazily) | 15:26 | |
And the other way would be to sort the :nth list, which you can't if it's infinite | |||
TimToady | simply ignoring the non-monotonic values is LTA though | 15:28 | |
jnthn | True | ||
It'd be a bit odd to use that as a feature :) | |||
lizmat | but now that we have better iterators since the GLR, why wouldn't we lazily support this anyway ? | 15:29 | |
dalek | p: 13c0c48 | jnthn++ | tools/build/MOAR_REVISION: Bump MOAR_REVISION for indexingoptimized op. |
||
p: 6555575 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp: Map nqp::indexingoptimized op. |
|||
p: 2fbb31b | jnthn++ | src/vm/moar/stage0/ (11 files): Update bootstrap. To provide access to the new indexingoptimized op. |
|||
lizmat | aka, use caching only when needed ? | ||
nqp: c0e80f8 | jnthn++ | src/QRegex/Cursor.nqp: | |||
nqp: On Moar, use indexingoptimized op. | |||
nqp: | |||
TimToady | you can't predict the need for caching without time travel | 15:30 | |
mst | I've written caches that figured if it got called maybe 3 times then it was time to cache | ||
probably not applicable here, but "can't" isn't quite true? | 15:31 | ||
TimToady | :nth(|(1..10000000),3) | ||
lizmat | well, if that were applied to a .match with 5 matches, it would show 1..5 | 15:32 | |
because the :nth list is just a lazy provider of indexes in my book (off by one) | |||
TimToady | :nth(|(1..10),3) | ||
suppose there are 15 matches | |||
jnthn | lizmat: The point is that you can't be lazy in both places we wish to be and have :nth not be monotonic | ||
TimToady | you gonna cache 'em all just on the theory there might be a 3 there? | 15:33 | |
lizmat | no | ||
jnthn | Unless, as TimToady said, you have .match keep all the things around in memory so it can refer back to them, which is not really desirable either | ||
TimToady | so they can use .[] to force caching when they need it | ||
p3rln00b | .oO( Lazy Pokemon: gotta cache 'em all ) |
||
lizmat | jnthn: this is only appicable when :nth is specified with something other than an Int | 15:34 | |
TimToady | :nth(@stuff) | ||
simpler to just disallow decreasing and point them at .[] than to try to guess how much of a list is available at compile time | 15:36 | ||
jnthn | lizmat: Yes, I'm aware | ||
TimToady | it's only applicable when there's more than one value, yes | 15:37 | |
it's difficult for a single integer not to be monotonically increasing :) | |||
lizmat | that would make it complex :-) | 15:38 | |
TimToady wonders how the term "monotonic" is related to tonic | 15:39 | ||
jnthn bbi15 | |||
TimToady | I guess via "monotonous" :) | ||
cygx also likes to point out that complex numbers are indeed unordered | 15:40 | ||
yoleaux2 | 14:12Z <p3rln00b> cygx: if you'd like to show up under something other than `cygx` in credits in release announcement, please enter yourself into github.com/rakudo/rakudo/blob/nom/CREDITS | ||
lizmat | .oO( nobody asks for them :-) |
||
TimToady | at least, not till we get 2D regex running on 2D strings... | 15:41 | |
p3rln00b | :o | 15:43 | |
All of the text I read is in 2D shape. | |||
p3rln00b steals the idea and gets rich | |||
cygx | I wonder, is there a good reason why the signature :($ where A|B) cannot be shortened to :(A|B) | 15:44 | |
that wuold improve the readability of some code I wrote quite a bit | 15:45 | ||
geekosaur | isn't A|B syntax reserved? | 15:46 | |
lizmat | m: sub a(Int|Str $) { } # interesting error | 15:49 | |
camelia | rakudo-moar 23f2e2: OUTPUTĀ«===SORRY!===ā¤No compile-time value for Strā¤Ā» | ||
TimToady | it's formally ambiguous with |c | 15:51 | |
because we don't have delimiters between each assertion of a paramter | |||
s/delimiters/separators/ | 15:52 | ||
likewise Int&Str is ambiguous with &block | 15:53 | ||
m: sub a(Int|Str $) { } | 15:56 | ||
camelia | rakudo-moar 23f2e2: OUTPUTĀ«===SORRY!===ā¤No compile-time value for Strā¤Ā» | ||
TimToady | m: sub a(Str|Int $) { } | ||
camelia | rakudo-moar 23f2e2: OUTPUTĀ«===SORRY!=== Error while compiling <tmp>ā¤Malformed parameterā¤at <tmp>:1ā¤------> sub a(Str|Intā $) { }ā¤ expecting any of:ā¤ constraintā¤Ā» | ||
TimToady | m: sub a(Str&Int $) { } | 15:57 | |
camelia | rakudo-moar 23f2e2: OUTPUTĀ«===SORRY!=== Error while compiling <tmp>ā¤Malformed parameterā¤at <tmp>:1ā¤------> sub a(Str&Intā $) { }ā¤ expecting any of:ā¤ constraintā¤Ā» | ||
TimToady | m: sub a(Int&Str $) { } | 15:58 | |
camelia | rakudo-moar 23f2e2: OUTPUTĀ«===SORRY!=== Error while compiling <tmp>ā¤Malformed parameterā¤at <tmp>:1ā¤------> sub a(Int&Strā $) { }ā¤ expecting any of:ā¤ constraintā¤Ā» | ||
TimToady | odd | ||
m: sub a(Int&Str) { } | |||
camelia | ( no output ) | ||
TimToady | m: sub a(Int|Str) { } | ||
camelia | rakudo-moar 23f2e2: OUTPUTĀ«===SORRY!=== Error while compiling <tmp>ā¤Capture parameter must have a type accepting a Captureā¤at <tmp>:1ā¤------> sub a(Int|Str) { }ā<EOL>ā¤Ā» | ||
lizmat | TimToady: is it ok for me to remove Str.simplematch ? | 16:04 | |
you seem to have added about a year ago, but there is no spec, doc or tests for it | 16:05 | ||
jnthn back | 16:11 | ||
TimToady | lizmat: well, I left it in in case we wanted to use it as an optimization target, but never did the optimization | 16:13 | |
lizmat | ok, well, then I'll remove it after I have done said optimization :) | ||
jnthn | m: use Test; is sub { 42.return }(), 42, "Sub doing 42.return works" | 16:22 | |
camelia | rakudo-moar 23f2e2: OUTPUTĀ«Attempt to return outside of any Routineā¤ in sub at <tmp> line 1ā¤ in block <unit> at <tmp> line 1ā¤ā¤Ā» | ||
dalek | kudo/nom: cff3437 | jnthn++ | src/Perl6/Actions.nqp: Be less eager to not emit return handlers. They're essentially free nowadays, except from prevening static inlining, which we only really care about for native ops, which don't do method calls. |
16:31 | |
ast: 64fef88 | jnthn++ | S06-advanced/return.t: Test for RT #129827. |
|||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129827 | ||
jnthn | Anyone else able to reproduce rt.perl.org/Ticket/Display.html?id=128694 ? | 16:39 | |
jnthn has been running it for a while and a number of times | 16:40 | ||
I suspect one of the earlier supplies fixes dealt with it | |||
lizmat hopes so :-) | 16:42 | ||
jnthn | hm, in theory I can try the test out using commitable | 16:44 | |
perlpilot | jnthn: I can't reproduce it, but the resident memory slowly creeps every upward it seems | ||
s/every/ever/ | |||
jnthn | commitable: help | 16:45 | |
committable6 | jnthn, Like this: committable6: f583f22,HEAD say āhelloā; say āworldā | ||
timotimo watches the RSS of that program | |||
jnthn | commitable6: 2016.05,HEAD gist.github.com/jnthn/81d8ea0aa73c...43db029d75 | ||
committable6 | jnthn, It looks like a URL, but mime type is ātext/html; charset=utf-8ā while I was expecting something with ātext/plainā or āperlā in it. I can only understand raw links, sorry. | ||
timotimo | is it supposed to be growing without bound? | ||
jnthn | I'm not concenred about memory | ||
The bug is about it locking up | 16:46 | ||
timotimo | i know :) | ||
it's not locking up for me | |||
jnthn | As with all these things, it may grow to a fixed point | ||
timotimo | right | ||
95 megs at the moment | |||
p3rln00b | committable6: 2016.05,HEAD gist.githubusercontent.com/jnthn/8...tfile1.txt | ||
committable6 | p3rln00b, Successfully fetched the code from the provided URL. | ||
jnthn | But yes, if it grows forever there's a problem | ||
perlpilot | mine made it to 100M before I killed it | ||
jnthn | p3rln00b: ah, I was about to try something like that :) | ||
committable6 | p3rln00b, Ā¦Ā«2016.05Ā»: Ā«timed out after 10 seconds, outputĀ»: Ā«exit signal = SIGHUP (1)Ā»ā¤Ā¦Ā«HEADĀ»: ok 1 - | ||
jnthn | ooh, nice | 16:47 | |
That means the test will cover the bug | |||
(the folks who made commitable6)++ :) | |||
committable6: 2016.05,HEAD gist.githubusercontent.com/jnthn/8...tfile1.txt | |||
committable6 | jnthn, Successfully fetched the code from the provided URL. | ||
jnthn | (Another try just to see if it was repeatable) | ||
committable6 | jnthn, Ā¦Ā«2016.05Ā»: Ā«timed out after 10 seconds, outputĀ»: Ā«exit signal = SIGHUP (1)Ā»ā¤Ā¦Ā«HEADĀ»: ok 1 - | ||
jnthn | Seems so | 16:48 | |
OK, in goes the test, and another RT down :) | |||
p3rln00b | \o/ jnthn++ | 16:49 | |
jnthn | Vim n00b question: I'm really tired of having to :set paste before I Ctrl+Shift+V. What is a better alternative? :) | 16:50 | |
tadzik | put it in your .vimrc :) | ||
jnthn | Yes, but then it'll not indent stuff? :P | ||
Like, the other times when I want it to... :) | 16:51 | ||
tadzik | Āælol que? | ||
oh, I see | |||
jnthn: i0.kym-cdn.com/photos/images/newsfe...1244616130 | |||
jnthn | Well, the gif was funny enough to make me put up with this for a few more weeks before worrying about it again, so... :P | 16:52 | |
timotimo | jnthn: depending on your platform, you can just paste from the + or * buffer | ||
so "*p or "+p will paste stuff into your buffer without it doing its own indentation and such | |||
dalek | ast: 8470d41 | jnthn++ | S17-supply/zip-latest.t: Test to cover RT #128694. |
16:53 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128694 | ||
timotimo | and ]p or [p will "paste at current indentation level", i'm not sure which | ||
jnthn | Hm, *p complains "No string under cursor" when I type the *, and +p just inserts an empty line | 16:59 | |
geekosaur | the " was part of the command | 17:00 | |
jnthn | oh wow | ||
I totally didn't see there were them until you mentioned it o.O | 17:01 | ||
tadzik | btw, what got into you to make you use vim jnthn? :) | ||
jnthn | They both seem to just insert an empty line though | 17:02 | |
geekosaur | what platform? there's some horkery you need to use to get things to work on OS X iirc (unless for some reason you're using an X11 build) | 17:03 | |
jnthn | geekosaur: Just boring old Ubuntu 16.04 or so | ||
Well, not so old, but still, non-exotic :) | |||
geekosaur | also there's the usual X11 thing with PRIMARY v CLIPBOARD | 17:04 | |
although I thought that was the difference between the * and + registers | 17:05 | ||
jnthn | tadzik: Found myself doing most of my dev work on Linux, and then some mix of being tired of using Atom (probably not Atom's fault but I get weird rendering artefacts going on when running it inside of my VM) and being curious why so many people seem to like Vim :P | ||
My $dayjob stuff of late has involved a bunch of Docker/Kubernetes things, and when I'm doing Perl 6 stuff I want my valgrind/callgrind/massif/perf :) | 17:07 | ||
tadzik | noice :) | 17:08 | |
timotimo | jnthn: clipboard handling can be weird. there's a vim plugin called "fakeclip" that's meant to make that stuff a bit less annoying, but i haven't looked at it closely enough to actually recommend it | 17:15 | |
geekosaur | clipboards are weird. and it seems like very few programmers understand how X selections work, leading to lots of bizarre behavior | 17:17 | |
and sometimes to hangs | |||
timotimo | hangs? how is that? | ||
geekosaur | well, it wont happen if you're using a decent toolkit library, it;s only when using the raw X11 stuff that you are likely to get hangs if you don't understand what yu are doing | 17:18 | |
(so this happens pretty much any time someone tries to do something clipboard related in xmonad because it operates at the raw X11 layer and nobody understands selections) | |||
if you use gtk/qt/fltk/whatever then they handle the low level stuff and the hang bugs have mostly been caught and fixed | 17:19 | ||
but you still sometimes get odd behavior | |||
anyway, the problem is everyone thinks "the clipboard" is a box you stick data in and something else pulls data out of. | 17:20 | ||
in fact, it's a corkboard the program which holds the data hangs a tag on. to get the data you must negotiate with the program holding the data to agree on a common format | |||
timotimo | right, i thought it worked like that | ||
based on how clipboard contents disappear when the owning window disappears | |||
geekosaur | (and this is where the hang happens because you need to be running the X event loop here or you won't be able to respond to the negotiation. this is actually an Xlib issue and one reason xcb is preferred these days...) | 17:21 | |
jnthn | m: use Test; throws-like Q/sub (int $i) { $i() }(42)/, X::Method::NotFound | ||
camelia | rakudo-moar cff343: OUTPUTĀ« 1..2ā¤ ok 1 - 'sub (int $i) { $i() }(42)' diedā¤ not ok 2 - right exception type (X::Method::NotFound)ā¤ ā¤# Failed test 'right exception type (X::Method::NotFound)'ā¤# at /home/camelia/rakudo-m-inst-1/share/perl6/precomp/74305AA5C7FBE80Eā¦Ā» | ||
geekosaur | (but even with xcb if you just block on certain calls, you will never wake up because you aren't processing the negotiation events) | 17:22 | |
anyway, even without the hang lots of folks do not understand the negotiate-common-format thing. including the toolkit devs, so sometimes you try to pull data from the clipboard and can't get it in the format you want | 17:23 | ||
dalek | p: 0592091 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp: Just want an object when compiling a callee. Any natives will thus be boxed, and invoked, which will also produce an error - but a more useful (HLL-specific) one with a location. |
||
geekosaur | so in e.g. vim you'd get a blank line because the other side doesn't handle "no, I need this as a UTF8_STRING" and aborts the negotiation | ||
(or for that matter vim itself could have that bug, but I would hope at this point they have the string negotiation stuff working properly...) | 17:24 | ||
jnthn | The thing I copied from was the Terminal window, fwiw... | 17:26 | |
geekosaur | also it's amazing how many people do not understand that if you clip an image, it might only be available as the pixels not as a URL or filename or whatever, and/or they actually need to negotiate to get the right thing. everyone believes strings are the only data type in existence | ||
timotimo | i've been having super annoying trouble with pasting out of terminal windows recently; whenever the selection ended existing i couldn't paste any more. up until like a month ago i didn't have to ensure the selection sticks around | 17:27 | |
so i had the habit of selecting and clearing the selection, then going over to paste | |||
geekosaur | it switched from CLIPBOARD to PRIMARY? | ||
that's the main behavioral difference, PRIMARY only exists while something is actively selected | |||
timotimo | could be | 17:28 | |
it f'd me up for a solid two weeks, because i had that so strongly ingrained in my muscle memory | |||
geekosaur still makes sure things stay actively selected, because PRIMARY was the only selection back when he got started... | 17:29 | ||
also the CLIPBOARD behavior encourages people to think of the selection as a box you dump strings into, leading to more bugs :/ | 17:30 | ||
jnthn | *sigh* What a mess | 17:31 | |
geekosaur | yep | 17:32 | |
timotimo | there's clipboard managers that suck up your contents and serve it for other programs for as long as you want | ||
geekosaur | there's a jwz rant about the X selection mess, naturally. and nobody has learned anything from it and we have the same problems over adecade later :/ | 17:33 | |
timotimo | like klipper | ||
geekosaur | yes. although in fact they have the same problem in different guise: they generally suck up *one* format because the protocol is designed for "converge on one format" not "iterate all formats" | ||
timotimo | mhm | ||
geekosaur | so if you have a program that can send you either a URL or a temp file or a block of pixels, you only get the first of those that the clipboard manager tries | 17:34 | |
so pasting can behave differently depending on whether a clipboard manager is running or n ot | |||
dalek | kudo/nom: 0d09178 | jnthn++ | tools/build/NQP_REVISION: Get latest NQP. Which, of note, has a fix to give better errors when trying to invoke a native parameter. |
17:35 | |
timotimo | right. ouch. | ||
dalek | ast: 3b11442 | jnthn++ | S32-exceptions/misc.t: Test for RT #129772. |
||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129772 | ||
jnthn | Alrighty, enough fixing for today, I think :) | 17:39 | |
p3rln00b | jnthn++ :) | ||
TimToady just uses a couple of keyboard commands to turn autoindent off and on | 17:45 | ||
timotimo has leader set to , and is very happy with that | 17:46 | ||
TimToady | .oO(Take me to your leader!) |
||
timotimo | , | ||
dalek | kudo/nom: faba645 | jnthn++ | docs/ChangeLog: Update ChangeLog. |
17:50 | |
travis-ci | Rakudo build failed. Jonathan Worthington 'Be less eager to not emit return handlers. | 18:11 | |
travis-ci.org/rakudo/rakudo/builds/167106514 github.com/rakudo/rakudo/compare/2...f3437de58e | |||
buggable | [travis build above] ā Did not recognize some failures. Check results manually | ||
timotimo | jvm only | 18:12 | |
p3rln00b | "Memory allocation failed; could not allocate 462780 bytes" | 19:06 | |
heh.. something's wrong with buggable :} | |||
dogbert17 | perhaps buggable is bugged :) | 19:07 | |
travis-ci | Rakudo build errored. Jonathan Worthington 'Get latest NQP. | ||
travis-ci.org/rakudo/rakudo/builds/167122533 github.com/rakudo/rakudo/compare/c...0917806a08 | |||
buggable | [travis build above] ā Did not recognize some failures. Check results manually | 19:08 | |
dogbert17 | p3rln00b: some spectests leaks memory like sieves, do you think I should RT stuff like that? | 19:09 | |
p3rln00b | Yeah | 19:10 | |
dogbert17 | ok, e.g. t/spec/S17-procasync/stress.t: definitely lost: 91,838 bytes in 1,022 blocks, indirectly lost: 64,240 bytes in 1,350 blocks, possibly lost: 254,216 bytes in 7,249 blocks | 19:11 | |
there are also two tests which gives 'invalid reads': t/04-nativecall/08-callbacks.t and t/spec/S17-supply/start.t. That's a bit scary. Could possibly be due to me being on 32 bit | 19:15 | ||
I have RT'd one of them, i.e. RT #129832, but I guess I should RT the other one as well | 19:17 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129832 | ||
dogbert17 | is jnthn still around? | 20:30 | |
mst | "imagine a perfectly spherical jnthn" | 20:31 | |
dogbert17 | I believe I might have found a memory leak in github.com/MoarVM/MoarVM/blob/mast...ops.c#L572 | ||
just wanted an expert opinion | 20:32 | ||
it seems to me there's a call to MVM_unicode_normalizer_cleanup missing | 20:33 | ||
perlpilot | dogbert17: based on the other uses of MVM_unicode_normalizer_* in that code, I would agree with you. | 20:40 | |
dogbert17 | perlpilot: thx | 20:41 | |
timotimo | dogbert17: i was able to confirm the leak with valgrind | 20:45 | |
do you want to submit a pull request, or shall i just put in the code? | |||
dogbert17 | timotimo: plz fix | 20:46 | |
jnthn | Yes, seems like a reasonable diagnosis/fix | 20:47 | |
perlpilot was half hoping that dogbert17 would make a PR :) | |||
jnthn is still a decent bit of beer drinking off becoming spherical, and even them I think I'll still be pretty imperfect :P | |||
dogbert17 | perlpilot: I will if I find another leak :-) | 20:48 | |
perlpilot | dogbert17: then you'll be just a hop, skip and a jump away from being a regular contributer to MoarVM ;) | 20:49 | |
s/buter/butor/ | |||
arnsholt | In cases like this, I try to be sneaky and don't offer to put in the fix for people =) | 20:50 | |
dogbert17 | perlpilot: perhaps there is something similar here? github.com/MoarVM/MoarVM/blob/mast...NFA.c#L655 | 20:51 | |
perlpilot | argh ... I've been switching back and forth between using sublime and vim at work. Sublime uses ^S to save your file ... vim, not so much :) | ||
dogbert17: Maybe. Looks like a couple of places could use the MVM_unicode_normalizer_cleanup there. | 20:53 | ||
dalek | kudo/nom: 5a79e22 | (David Warring)++ | lib/Pod/To/Text.pm6: handle uneven rows lengths in Pod::To::Text::table2text() |
||
kudo/nom: 7af9ec9 | lizmat++ | lib/Pod/To/Text.pm6: Merge pull request #903 from dwarring/pod-table-fix handle uneven rows lengths in Pod::To::Text::table2text() |
|||
dogbert17 | perlpilot: it does look a tiny bit suspicious to my untrained 'c' eye | 20:55 | |
MasterDukeMobile | I'm still trying to figure out a JVM fix, but in the meantime anybody have any thoughts on my latest PR comments? | 20:57 | |
lizmat | m: say 42.match(/42/); say $/ # /me haz found another .match bug | 20:58 | |
camelia | rakudo-moar faba64: OUTPUTĀ«ļ½¢42ļ½£ā¤Nilā¤Ā» | ||
lizmat | as opposed to: | 20:59 | |
Zoffix | m: say "42".match(/42/); say $/ | ||
camelia | rakudo-moar faba64: OUTPUTĀ«ļ½¢42ļ½£ā¤ļ½¢42ļ½£ā¤Ā» | ||
lizmat | m: say "42".match(/42/); say $/ # /me haz found another .match bug | ||
camelia | rakudo-moar faba64: OUTPUTĀ«ļ½¢42ļ½£ā¤ļ½¢42ļ½£ā¤Ā» | ||
Zoffix | s: 42, 'match' | 21:00 | |
SourceBaby | Zoffix, Sauce is at github.com/rakudo/rakudo/blob/faba...ol.pm#L178 | ||
Zoffix | s: '42', 'match' | ||
SourceBaby | Zoffix, Sauce is at github.com/rakudo/rakudo/blob/faba...tr.pm#L417 | ||
lizmat | Zoffix: it's nqp::getlexcaller('$/'); business :-) | 21:01 | |
Zoffix | Ah | ||
lizmat | hmmm... wondering what's the difference between $/ := nqp::getlexdyn('$/') and $/ := nqp::getlexcaller('$/') | 21:04 | |
jnthn timotimo ^^^ ?? | 21:08 | ||
timotimo | you can use getlexcaller to assign to your local $/ | 21:09 | |
i think getlexdyn might give you the same? i'm not actually sure | |||
lizmat | well, in Cool.subst, getlexdyn is used, but in Str.matcj getlexcaller | 21:10 | |
*match | |||
dalek? | 21:12 | ||
github.com/rakudo/rakudo/commit/8d...c2d39c4c7a # fix for 42.match(/42/) not setting $/ | 21:13 | ||
dalek | kudo/nom: bed1428 | lizmat++ | src/core/Rakudo/Internals.pm: Add generic R::I.SeqNextNFromIterator Create a Seq from a given iterator, given the next N elements of the iterator (if available of course). |
21:44 | |
kudo/nom: 6996512 | lizmat++ | src/core/Any-iterable-methods.pm: .head now uses generic R::I.SeqNextNFromIterator |
|||
jnthn | lizmat: iirc, dyn only walks the dynamic chain, and lexcaller looks in the lexical scopes of each step along the dynamic chain | 21:48 | |
lizmat | any reason why one is used on .match and the other in .subst ? | ||
ok, must be late, but what is the difference ? | 21:50 | ||
jnthn | I guess the difference would show up if you had a sub that returns a closure that does a match | 21:52 | |
subst may well have been thought out a bit better in this regard because the visibility of $/ is more important | |||
lizmat | jnthn: so getexdyn would be better in all cases? | 21:56 | |
jnthn | Maybe. I guess "try it (not the day before a release) and see if there's fallout" | 21:58 | |
It seems odd they differ | |||
lizmat | yeah, all of my Str.match work is going to be pushed post release | ||
except maybe some support stuff :-) | |||
jnthn | :) | ||
Wise move :) | 21:59 | ||
timotimo | the wise moo | 22:05 | |
jnthn | Enough bull from me today. :) 'night | 22:18 | |
dalek | kudo/nom: a8221ee | lizmat++ | src/core/Iterator.pm: Add Iterator.skip-at-least-pull-one Skip at least N values of the iterator, and return the result of the next pull-one. Initially I thought about adding this as a method to Rakudo::Internals, but it seemed more logical to add it here. Although this may have adverse effects, as now every class that does Iterator will have a copy of this method? |
22:34 | |
lizmat | good night, #perl6-dev! | 22:47 |