dalek | ast: 27ca133 | (Zoffix Znet)++ | S06-signature/slurpy-params.t: Refudge todo to skip for doesn't-hang test As described in #158, under some conditions this test seems to leave hung processes still running, causing them to consume all resources. Fudge it as `skip` instead of `todo`, to prevent this. github.com/perl6/roast/issues/158 |
00:47 | |
ugexe | TimToady: that version sorting bug is fixed in zef. the local cache was short circuiting out of its search before considering all candidates | 01:10 | |
dalek | ast: fc0fe43 | usev6++ | S32-str/comb.t: Skip failing test on JVM |
05:08 | |
jnthn | morning, #perl6-dev | 09:09 | |
nine | Good morning! | ||
jnthn has Perl 6/MoarVM tuits today :) | 09:10 | ||
brrt | good morning jnthn | 09:13 | |
psch | m: my @a = (1...*).grep(* < 20); say @a[20] # is that right..? | 09:15 | |
also, g'morning o/ | 09:16 | ||
camelia | rakudo-moar 8be36b: OUTPUT«(timeout)» | ||
psch | i suppose it's somewhere in the halting problem area, isn't it? as in, we cannot know that the lazy & infinite list is turned finite somehow..? | 09:18 | |
jnthn | Right :) | 09:19 | |
It's not the sequence operator; it doesn't know that once it stops matching it'll not maybe match again later | |||
So goes on searching | |||
psch | okay, thanks | 09:23 | |
good to know it's just a bad test case for what i'm doing :) | |||
lizmat | jnthn: sometimes I wonder whether the default implementation of pull-at-least should have a counter built in | 09:24 | |
jnthn | Why? | 09:25 | |
lizmat | *push-at-least | ||
jnthn | I mean, in this case even it it terminated as soon as it had hit 1 element (which is the point it's allowed to return) then it'd still never hit that goal | 09:31 | |
lizmat | hmmm... perhaps the grep iterator should check for >1 M pulls without anything, and then issue a warning ? | 10:11 | |
dalek | p: 0eff02d | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/jast2bc/JASTCompiler.java: Emit type name for unknown instructions in JASTCompiler. |
||
lizmat | or perhaps a :maxtries parameter set to 1M by default? | ||
dalek | kudo/nom: b87a27b | peschwa++ | / (3 files): Fix List/Array marshalling for jvminterop, add tests. As commented inside the actual patch there might be a smarter or faster way to do this, by reimplementing the bits that are currently called via Perl 6 functions with the minimal necessary nqp backend calls, but I'd rather have it working first. More tests probably wouldn't hurt either, Object[] isn't that demanding of a type after all. |
10:17 | |
jnthn | lizmat: IMO, "let it hang". If the problem is that it's hard to understand where a program is hanging, we should improve our debugging tools, not put in arbitrary limits. | 10:20 | |
lizmat | ok, fair enough, being able to generate an exception in a thread from another thread would already be great, yes :-) | 10:21 | |
gfldex | lizmat: this may be a good place to start thinking about a few better concurrency buildins. Namely `timeout(Callable &c, Num $max-seconds)` | 10:32 | |
lizmat | trivail to make with supply.interval, nice ecosystem module ? | 10:34 | |
actually: Promise.at | |||
or betterder: Promise.in | |||
jnthn | The problem with that is people will have some expectation that it will terminate the work taking place in &c | 10:35 | |
I agree we want some kind of cancellation stuff but code that wants to be cancellable needs to be co-operative in that. | |||
But yes, not waiting forever is easily done with Promise.any(start { c }, Promise.in(5)) | 10:38 | ||
A timeout built-in would be nice, but we should probably keep that name free until we have our cancellation story worked out. | 10:40 | ||
brrt | jnthn: can we hijack (or rather, generalize) the gc-thread flag for interrupting running threads? | 10:43 | |
gfldex | jnthn: my threading woes persist but seam to trigger a lot less frequent then about 1 month ago | 10:46 | |
jnthn | brrt: Yes, that'd be the way to do something like "throw an exception in another thread" | 10:50 | |
Or "Capture the stack trace of another thread" | |||
brrt | how hard and/or fragile would it be to do this? | 10:51 | |
also | |||
or, more importantly | |||
how does that not race with threads that can be blocked | 10:52 | ||
jnthn | That flag can also be popped into a "stolen" state, in which case the thread will wait until it gets unstolen when it returns from blocking | 10:53 | |
So it shouldn't be fragile in that sense | |||
brrt | okay, i'm not sure i follow 100% | ||
jnthn | At the moment, the flag can have 4 values: running, interrupted for GC, blocked, and stolen | 10:54 | |
brrt | uhuh | ||
so suppose the thread is blocked, and we try to throw an exception to it… what happens then? | 10:56 | ||
jnthn | Well, there's a few ways to handle that | 10:57 | |
We could mark it stolen | |||
Then set a "you need to do this on un-block" | 10:58 | ||
And then mark it unstolen again | |||
And when it unblocks it will check its todo list | |||
In that sense the blocked/stolen transition and vice versa serves as a lock acquire/release | |||
brrt | uhuh | 10:59 | |
on the other hand, that means you can't actually interrupt a blocked thread | |||
jnthn | .tell FROGGS I *think* you worked on process code long ago. I just fixed rt.perl.org/Ticket/Display.html?id=129291 by doing github.com/MoarVM/MoarVM/commit/de...e30170e8d3 which I *think* makes sense, but if you have a moment to glance it and comment it'd be great. Thanks! :-) | 11:00 | |
yoleaux2 | jnthn: I'll pass your message to FROGGS. | ||
brrt | unless you can get help from the blocking agent (i.e. the operating system) | 11:02 | |
jnthn | brrt: Indeed. | ||
brrt | and… can we? | ||
jnthn | I don't know. The JVM seems to manage to interupt various things. | 11:03 | |
Like lock acquisitions | |||
I'm not sure about I/O | |||
OpenJDK is open source so we can always look at how they do it :P | |||
brrt | true | ||
i think the standard way of interrupting I/O on unix is to set a alarm signal before you start IO | 11:04 | ||
but, that relies on signals obviously | |||
and is not of much use for different threads | |||
jnthn | .tell AlexDaniel MoarVM HEAD has a hopeful fix for RT #129291 (didn't bump MOAR/NQP_REVISION files yet); if you get chance, please give it a go. :) | 11:09 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129291 | ||
yoleaux2 | jnthn: I'll pass your message to AlexDaniel. | ||
jnthn | Lunch time for me :) | ||
pmurias | nqp::say(nqp::iscclass(nqp::const::CCLASS_ALPHABETIC, "\x16ef", 0)) gives a different result on the jvm and moar backends | 11:33 | |
psch | r: use nqp; nqp::say(nqp::iscclass(nqp::const::CCLASS_ALPHABETIC, "\x16ef", 0)) | 11:37 | |
camelia | rakudo-jvm cd19db: OUTPUT«1» | ||
..rakudo-moar b87a27: OUTPUT«0» | |||
pmurias | psch: Number, Letter characters work differently | ||
psch | r: use nqp; nqp::say(nqp::iscclass(nqp::const::CCLASS_NUMERIC, "\x16ef", 0)) | 11:38 | |
camelia | rakudo-moar b87a27, rakudo-jvm cd19db: OUTPUT«0» | ||
psch | r: use nqp; nqp::say(nqp::iscclass(nqp::const::CCLASS_ALPHANUMERIC, "\x16ef", 0)) | ||
camelia | rakudo-moar b87a27, rakudo-jvm cd19db: OUTPUT«0» | ||
psch | so that's what? Ln? | ||
pmurias | psch: Nl | 11:39 | |
psch | ah | ||
well, nqp-j just asks the JVM | |||
ilmari was going to ask if the JVM had an old unicode version, but even perl 5.8.1 (with unicode 4.0) considers it w | 11:43 | ||
psch | i suppose trying on jdk8 is an idea | 11:44 | |
pmurias | it's not a problem with a JVM bug or old unicode version | ||
it's just that the method we call checks for different unicode categories | 11:45 | ||
psch | j: use java::lang::Character:from<JavaRuntime>; say Character.isAlphabetic(0x16ef) | 11:47 | |
camelia | rakudo-jvm cd19db: OUTPUT«1» | ||
psch | uhhm | ||
that is exactly what we should be doing with that nqp::iscclass call up there | 11:48 | ||
ohh | |||
mixed up the backends | |||
so the JVM is wrongly saying it *is* CCLASS_ALPHABETIC..? | |||
pmurias | JVM considers Nl characters alphabetic | 11:49 | |
Moar doesn't consider them alphabetic | |||
psch | oh, so no definite judgement, just "there's a difference" | 11:50 | |
pmurias | there might be a definite judgement, I just don't know how to make one myself | ||
psch | right, that's what i understood now :) | 11:51 | |
j: use java::lang::Character:from<JavaRuntime>; say Character.isAlphabetic(0x0f33) | 11:52 | ||
camelia | rakudo-jvm cd19db: OUTPUT«0» | ||
MasterDuke | jnthn: your MoarVM fix for RT #129291 seems to work for me. reliable segfaults before, none so far after | 11:57 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129291 | ||
jnthn | MasterDuke: And correct behavior for your use-case too? | 12:07 | |
MasterDuke | haven't been able to test that yet | 12:09 | |
jnthn | ok :) | 12:10 | |
MasterDuke | btw, RT #129248 seems to have a MoarVM component | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129248 | ||
dalek | kudo/nom: 3ed51de | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp: Don't try and concatenate with closure. Exceptions thrown by the binder come in two forms: strings (thrown as adhoc exceptions) or closures that will be invoked to throw a typed exception. Don't try and concatenate "in subsignature of parameter X" style messages on to that closure. |
12:32 | |
ast: 0dddcd3 | jnthn++ | S32-exceptions/misc.t: Test to cover RT #129306. |
12:33 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129306 | ||
MasterDuke | jnthn: i tested with some code that is almost identical to the original code that spawned 129291 and it's working fine | 12:45 | |
jnthn | \o/ | 12:46 | |
OK, then I guess I'll tag it testneeded | |||
MasterDuke | how are tests like that done? i could get it to reliably segfault, but the code (sometimes) took a while to run | 12:49 | |
jnthn | We could add it as a stress test and just do a bunch of iterations. | ||
If the test SEGVs that is considered a fail | 12:50 | ||
MasterDuke | ahh, stresstest, i haven't looked at those | ||
jnthn | You just mark it #stress in spectset.data iirc | ||
MasterDuke | oh, easy enough | 12:52 | |
ZoffixW | :/ Inline::Perl5 tests failing on new install for me | 12:59 | |
gist.github.com/zoffixznet/3a9f295...11c8e50d4d | |||
timotimo | status 11, is that a segfault? | 13:01 | |
arnsholt | Think so | 13:03 | |
ZoffixW | It may be jnthn++'s today's changes | 13:05 | |
'cause I built it using this, by merging latest MoarVM stuff in: gist.github.com/zoffixznet/a3a7910...e6221d27d5 | |||
jnthn | Are the tests using Proc/run/shell? | ||
The only commit in MoarVM since the last release was a fix for that | 13:06 | ||
ZoffixW | doesn't seem to be. This is the one that fails consistently: github.com/niner/Inline-Perl5/blob...r/t/from.t | ||
ZoffixW nukes everything and tries from the start | |||
jnthn | m: class C { has int $!n = 0; method x (int $!n) {}; method y() { say $!n } }; my $o = C.new; $o.x: 42; $o.y | 13:07 | |
camelia | rakudo-moar 3ed51d: OUTPUT«Cannot modify an immutable int in method x at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
jnthn | That now says 42 locally | ||
(This is the good news. :)) | |||
arnsholt | That last comment sort of implies there are bad news too? =) | ||
jnthn | I suspect I can come up with some similar cases that will fail | 13:08 | |
timotimo | awesome \o/ | 13:09 | |
jnthn | Yeah...same in a role blows up | ||
[TuxCM] | This is Rakudo version 2016.09-21-g3ed51de built on MoarVM version 2016.09 | 13:10 | |
csv-ip5xs 9.280 | |||
test 15.854 | |||
test-t 6.839 | |||
csv-parser 16.763 | |||
jnthn | And in a sub-sig | 13:11 | |
Works with named parameters though | |||
So it's an improvement, but not a full solution | |||
ZoffixW | Well, builds fine on my google VM, so if anything it's something with my server. | 13:18 | |
jnthn | Could be a SEGV you get lucky enough to avoid on the VM | ||
If you've change to run the test under perl6-gdb-m or perl6-valgrind-m I can glance the output | 13:19 | ||
ZoffixW | Nah, don't want to take up your time :) | 13:21 | |
(plus, I don't even know how to run that test at all) | 13:22 | ||
dalek | kudo/nom: 77a2ff1 | jnthn++ | src/Perl6/Actions.nqp: Fix basic native attributive parameter binding. This handles the case where the native attribute appears as either a named or positional parameter inside of a signature of a method in a class, where the signature is simple enough to be lowered (so, does not contain a sub-signature). Complex signatures and methods in roles will need additional, likely more involved, fixes. |
13:26 | |
travis-ci | Rakudo build errored. Jonathan Worthington 'Don't try and concatenate with closure. | 13:27 | |
travis-ci.org/rakudo/rakudo/builds/161611092 github.com/rakudo/rakudo/compare/b...d51de3973d | |||
dalek | ast: ab9a035 | jnthn++ | S12-methods/attribute-params.t: Some basic native attributive param binding tests. |
||
jnthn | buggable: No comments? :) | 13:28 | |
timotimo | timeout | ||
wonder why buggable didn't jump on it | |||
psch | oh, we're ignoring jvm again | ||
i guess it timed out too often..? | 13:29 | ||
ZoffixW | psch, no, due to failing `make test` | ||
We fixed the harness, so now all the failures get caught by travis | |||
psch | oh, yeah, nativecall is borked, missed that ZoffixW++ | ||
ZoffixW | As for buggable.. "Method 'new' not found for invocant of class 'IO::Socket::SSL' in method get-connection at"... I think I forgot to install some modules during perl6 update :) | 13:30 | |
timotimo | whoops :) | ||
jnthn | lizmat: I've probably fixed RT #129278 enough for the common cases that occur in CORE.setting | 13:31 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129278 | ||
[Coke] | stackoverflow.com/questions/3960345...with-chars | ||
jnthn | "Returns a list of codepoint numbers, one for the base character of each grapheme in the string." | 13:32 | |
That's wrong, no? | |||
ZoffixW | travis-ci.org/rakudo/rakudo/builds/161611092 | ||
jnthn | ords returns the codepoints of combiners forming a synthetic too | ||
buggable | [travis build above] ✓ All failures are due to timeout (1), missing build log (0), or GitHub connectivity (0) | ||
psch | docs.perl6.org/routine/ords | ||
doc bug i guess? | |||
'cause the line in the SO question is a direct quote | 13:33 | ||
jnthn | Doc bug | ||
Yeah, it even linkd to its source | |||
*linked | |||
I don't have an SO account | 13:34 | ||
But I can patch the documentation :) | |||
[Coke] | I can comment on SO once the docs are fixed. | 13:35 | |
lizmat | ack& | 13:36 | |
afk& | |||
jnthn | Working on it :) | 13:38 | |
[Coke] | jnthn++ danke | 13:47 | |
jnthn | Done, hopefully that helps | ||
I suspect the docs were describing how a previous (and buggy) implementation of .ords worked | 13:48 | ||
So may have been accurate at the time they were written. | 13:49 | ||
ZoffixW | c: &pairs, \(@ = ^10) | 14:03 | |
Undercover | ZoffixW, The code is NOT hit during stresstest See perl6.WTF/src_core_Any.pm.coverage.html#L464 for details | ||
ZoffixW | timotimo, ^ seems there are still false negatives even with optimization off. Because the above *is* hit in github.com/perl6/roast/blob/master...airs.t#L94 | ||
gfldex | i just found myself wanting a subroutine form for .perl | 14:04 | |
m: say perl <a b c>; | |||
camelia | rakudo-moar 77a2ff: OUTPUT«===SORRY!=== Error while compiling <tmp>Undeclared routine: perl used at line 1» | ||
ZoffixW | m: sub perl { $^v.perl }; say perl <a b c>; | ||
camelia | rakudo-moar 77a2ff: OUTPUT«$("a", "b", "c")» | ||
ZoffixW | Done :) | 14:05 | |
gfldex | also, is there a reason why Mu got .take but not .take-rw ? | 14:07 | |
ZoffixW | m: say perl <a b c>: | 14:18 | |
camelia | rakudo-moar 77a2ff: OUTPUT«("a", "b", "c")» | ||
jnthn | Curious...after pulling in the Unicode 9 database, 4 tests start failing in grapheme-break.t | 14:19 | |
(Yes, the NFG algo needs updates that may compensate for this) | |||
m: say uniprop("\c[ZERO WIDTH JOINER]", "Grapheme_Extend") | 14:26 | ||
camelia | rakudo-moar 77a2ff: OUTPUT«1» | ||
jnthn | $ ./perl6-m -e 'say uniprop("\c[ZERO WIDTH JOINER]", "Grapheme_Extend")' | 14:27 | |
0 | |||
That'd be why :) | |||
arnsholt | I guess that having the zero-width joiner not extend graphemes makes sense =) | 14:29 | |
jnthn | Well, they've maintained compact by dropping the grapheme_extend property on it but by making a rule that was previously just Extend be Extend|ZWJ | 14:31 | |
Seems they did it so they can talk about the two separately when it comes to emoji | |||
arnsholt | Aha | 14:32 | |
jnthn | Oh my. | ||
Previously you could determine "should be break" by looking at just the previous codepoint and the current one | 14:33 | ||
In 9 they've added an emoji rule | |||
"Do not break within emoji flag sequences. That is, do not break between regional indicator (RI) symbols if there is an odd number of RI characters before the break point." | |||
timotimo | there now exists a file that tells us "is emoji" basically | 14:46 | |
but it's informative, not normative | |||
jnthn | Also | 15:03 | |
$ ./perl6-m -e 'say ‘🦋’.uniname' | |||
BUTTERFLY | |||
\o/ | |||
Darn, though got a new failure now :S | 15:12 | ||
m: say uniprop(" ", "space") | 15:14 | ||
camelia | rakudo-moar 77a2ff: OUTPUT«SP» | ||
ilmari | hum, no butterfly in symbola yet :( | 15:15 | |
timotimo | i don't see it either :\ | 15:16 | |
jnthn | ./perl6-m -e 'say uniprop(" ", "space")' | ||
1 | |||
Hmmm | |||
ilmari | ooh, the latest one on users.teilar.gr/~g1951d/ has it | 15:17 | |
dropped Symbola_hint.ttf in ~/.fonts, and voila | |||
just not in debian yet | |||
gfldex | lolibloggedalittle: gfldex.wordpress.com/2016/09/21/ar...your-keys/ | 15:36 | |
ilmari | for a moment I was wondering why loli blogging was relevant here | 15:37 | |
gfldex | sorry, wrong channel | ||
jnthn | m: say uniprop(" ", "Space") | 15:53 | |
camelia | rakudo-moar 77a2ff: OUTPUT«SP» | ||
timotimo | m: say uniprop(" ", "Satan") | 15:55 | |
camelia | rakudo-moar 77a2ff: OUTPUT«0» | ||
MetaZoffix | m: sub ave {my int $n = 100_000; my num $sum = 0e0; repeat { $sum += rand; } until ++$ == $n; $sum/$n}; await ^2 .map: { start ave }; say now - INIT now | 16:01 | |
Hangs for some reason. | |||
camelia | rakudo-moar 77a2ff: OUTPUT«(timeout)» | 16:02 | |
MetaZoffix | m: my @cores = ^1 .map: { start {my int $n = 1_000_000; my num $sum = 0e0; repeat { $sum += rand; } until ++$ == $n; $sum/$n}}; @cores = await @cores; say @cores.sum / @cores; | 16:03 | |
camelia | rakudo-moar 77a2ff: OUTPUT«0.500256106089017» | ||
MetaZoffix | m: my @cores = ^2 .map: { start {my int $n = 1_000_000; my num $sum = 0e0; repeat { $sum += rand; } until ++$ == $n; $sum/$n}}; @cores = await @cores; say @cores.sum / @cores; | ||
camelia | rakudo-moar 77a2ff: OUTPUT«0.500343516183882» | ||
MetaZoffix | m: my @cores = ^4 .map: { start {my int $n = 1_000_000; my num $sum = 0e0; repeat { $sum += rand; } until ++$ == $n; $sum/$n}}; @cores = await @cores; say @cores.sum / @cores; | ||
camelia | rakudo-moar 77a2ff: OUTPUT«0.500091965871348» | ||
MetaZoffix | hm, interesting. On my 2016.08.1-143-gc9b18c6 those appear to run as single-core | ||
committable6: c9b18c6 my @cores = ^4 .map: { start {my int $n = 1_000_000; my num $sum = 0e0; repeat { $sum += rand; } until ++$ == $n; $sum/$n}}; @cores = await @cores; say @cores.sum / @cores; | 16:04 | ||
committable6 | MetaZoffix, ¦«c9b18c6»: 0.499774061391611 | ||
MetaZoffix | committable6: c9b18c6 my @cores = ^1 .map: { start {my int $n = 1_000_000; my num $sum = 0e0; repeat { $sum += rand; } until ++$ == $n; $sum/$n}}; @cores = await @cores; say @cores.sum / @cores; | ||
committable6 | MetaZoffix, ¦«c9b18c6»: 0.499908298599251 | ||
MetaZoffix | Oh, I'm printing wrong thing >_< | ||
timotimo | yeah, that's the calculated value | ||
MetaZoffix | m: my @cores = ^1 .map: { start {my int $n = 1_000_000; my num $sum = 0e0; repeat { $sum += rand; } until ++$ == $n; $sum/$n}}; @cores = await @cores; say now - INIT now | ||
camelia | rakudo-moar 77a2ff: OUTPUT«1.9262441» | ||
MetaZoffix | m: my @cores = ^4 .map: { start {my int $n = 1_000_000; my num $sum = 0e0; repeat { $sum += rand; } until ++$ == $n; $sum/$n}}; @cores = await @cores; say now - INIT now | ||
camelia | rakudo-moar 77a2ff: OUTPUT«3.3750978» | ||
MetaZoffix | m: my @cores = ^2 .map: { start {my int $n = 1_000_000; my num $sum = 0e0; repeat { $sum += rand; } until ++$ == $n; $sum/$n}}; @cores = await @cores; say now - INIT now | ||
camelia | rakudo-moar 77a2ff: OUTPUT«2.76104950» | 16:05 | |
timotimo | you do know that you're using a state variable in there, right? | ||
and that's shared for all the cores? | |||
MetaZoffix | Oh, I didn't know that they're shared | ||
timotimo | that's what state vars do | ||
they hang on to the sub or block they live in | |||
i bet one of the cores hits the number exactly and all others count up until infinity | |||
MetaZoffix | Probably | ||
timotimo | that'd explain the hang | 16:06 | |
also, it'd scale ... rather well :) | |||
MetaZoffix | m: sub ave {my int $n = 100_000; my num $sum = 0e0; repeat { $sum += rand; } until $n-- == 0; $sum/$n}; await ^2 .map: { start ave }; say now - INIT now | ||
camelia | rakudo-moar 77a2ff: OUTPUT«0.1089755» | ||
MetaZoffix | timotimo++ | ||
timotimo | yay | ||
psch | jnthn: did you see irclog.perlgeek.de/perl6-dev/2016-0...i_13248341 btw? | 16:41 | |
jnthn: seems that's at least somewhat in the vicinity of your latest moar commits | |||
jnthn | m: say uniname "\x16ef" | 16:47 | |
camelia | rakudo-moar 77a2ff: OUTPUT«RUNIC TVIMADUR SYMBOL» | ||
jnthn | m: say uniprop "\x16ef" | 16:51 | |
camelia | rakudo-moar 77a2ff: OUTPUT«Nl» | ||
jnthn | m: say uniprop 0x16ef | 16:52 | |
camelia | rakudo-moar 77a2ff: OUTPUT«Nl» | ||
timotimo | New line? :P | 16:54 | |
jnthn | Nl is Number, letter | ||
We consider stuff alaphabetic in Moar if they're in L* | 16:55 | ||
Nl is described as "Numerals composed of letters or letterlike symbols (e.g., Roman numerals)" | 16:56 | ||
Not sure that makes them alphabetic. TimToady may have a useful opinion. :) | |||
AlexDaniel | timotimo: this one was funny as well: irclog.perlgeek.de/perl6/2016-08-07#i_12979613 | 17:03 | |
yoleaux2 | 19 Sep 2016 10:36Z <Zoffix> AlexDaniel: no Test.pm? For committable6, 2016.04 m: "ac" ~~ /(.)(.)?(.)/; use Test; is-deeply $/.perl.EVAL, $/ gist.github.com/de1adfd58e8b2fb292...5d85b356fd | ||
11:09Z <jnthn> AlexDaniel: MoarVM HEAD has a hopeful fix for RT #129291 (didn't bump MOAR/NQP_REVISION files yet); if you get chance, please give it a go. :) | |||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129291 | ||
AlexDaniel | oh wow | ||
timotimo | AlexDaniel: no means no? | 17:04 | |
AlexDaniel | jnthn: these are some great news. *Of course* this is going to be tested, as it affects whateverables badly :) | ||
timotimo: no. It's “number, other”. :PP | |||
but yeah | 17:05 | ||
committable6: releases use Test | |||
committable6 | AlexDaniel, gist.github.com/111fbd7cb02b4ce410...f02a290c37 | ||
AlexDaniel | committable6: 2016.04 use Test; say ‘hello world’ | 17:06 | |
committable6 | AlexDaniel, ¦«2016.04»: hello world | ||
AlexDaniel | committable6: 2016.04 use TestFoo; say ‘hello world’ | ||
committable6 | AlexDaniel, gist.github.com/3f5bf962241669547c...273f452748 | ||
AlexDaniel | committable6, 2016.04 m: "ac" ~~ /(.)(.)?(.)/; use Test; is-deeply $/.perl.EVAL, $/ | 17:07 | |
committable6 | AlexDaniel, gist.github.com/b75ba7f354b1629286...e67362f578 | ||
jnthn | AlexDaniel: OK, going for dinner now, but I may bump MOAR/NQP revisions later so we get it available in Rakudo HEAD and can test it out. | 17:08 | |
Was going to bump it after getting basic Unicode 9 support in place, but ran into a weird issue :/ | |||
jnthn bbl | |||
AlexDaniel | jnthn: ah, it's not bumped yet. Did not understand that. | ||
(dammit, should've read the message fully. Was so excited to see it) | |||
.tell Zoffix See this: irclog.perlgeek.de/perl6-dev/2016-0...i_13250357 – it is possible that when you tried it, the archive did not get extracted fully, this happens pretty often with perl6 whateverables (there is also a chance that recent moarvm fix affects this in a good way, see same log). Right now you can try running the same thing twice. Hopefully this issue will go away one day. | 17:14 | ||
yoleaux2 | AlexDaniel: I'll pass your message to Zoffix. | ||
dalek | ast: 50e7fb2 | (Zoffix Znet)++ | S32-array/splice.t: [coverage] test .splice(Whatever, Whatever, <list>) |
18:49 | |
ast: 72c8e95 | (Zoffix Znet)++ | S32-array/splice.t: [coverage] cover all uncovered .splice candidates |
19:23 | ||
lizmat | good *, #perl6-dev | 19:42 | |
suppose someone wants to build a "spurt" in module space that takes a :gzip named parameter | 19:43 | ||
which would automatically gzip the file and add the .gz extension to the file name | |||
afaics, that's not really possible now because "spurt" is an only sub, not a multi | 19:44 | ||
timotimo | you can still override it and call back into SETTING::spurt if you like | 19:50 | |
lizmat | well, I guess my question is: is there a reason why spurt() doesn't start out as a multi ? | 19:51 | |
timotimo | i think it could become a multi. at least in 6.d that ought to be very possible | 19:53 | |
lizmat | why in 6.d ? | 19:54 | |
timotimo | well, going from an only to a multi seems like a big change | 19:57 | |
okay, it's not really a breaking change; the other direction would be | |||
lizmat | indeed, my point :-) | 19:59 | |
ZoffixMobile | Would that break the ability to override the default spurt and break any code that currently does so? | ||
timotimo | no | ||
oh wait | |||
ZoffixMobile | ah no, 'cause you can define your own + for example and those are multies | 20:00 | |
lizmat | ZoffixMobile: you can always override if you provide your own proto | ||
ZoffixMobile | ah | ||
timotimo | m: sub spurt() { } | 20:02 | |
camelia | ( no output ) | ||
timotimo | m: multi sub spurt() { } | 20:03 | |
camelia | ( no output ) | ||
timotimo | currently if you define your own "multi sub", you currently wouldn't have the stuff from the core setting in it | ||
lizmat | indeed | 20:06 | |
so I made spurt a multi, and made my own with a :$gzip! (aka required named param) | 20:07 | ||
but it still selects the setting one :-( | |||
moritz | does the setting one have a *% or so? | 20:08 | |
lizmat | moritz: the setting has a |c | ||
timotimo | ooooh | ||
that's very slurpery | |||
mst | and if you \ it you get a slurpery slope | 20:09 | |
moritz | lizmat: eeks. Then you need to compete on the types of the positionals | ||
pmurias | how fast are multis compared to only subs? | 20:11 | |
lizmat | if the lookup is cached, just as fast | ||
aka no where constraints in the signature | |||
m: multi a($a,:$enc,|c) { "A" }; multi a($a,:$gzip!,|c) { "B" }; say a("foo",:gzip) # expected B | 20:13 | ||
camelia | rakudo-moar 77a2ff: OUTPUT«A» | ||
lizmat | m: multi a($a,|c) { "A" }; multi a($a,:$gzip!,|c) { "B" }; say a("foo",:gzip) # expected B | ||
camelia | rakudo-moar 77a2ff: OUTPUT«B» | ||
lizmat | I guess this is a bug, as the required named is narrower than the optional named | 20:14 | |
moritz very unsure about the role of named tied-breaking | 20:17 | ||
does the spurt in the setting actually needs |c? | |||
if not, changing it to a narrower signature might be the best way to allow enhancements through multi dispatch | 20:18 | ||
lizmat | moritz: I just found out (I think) that it just needs the |c, as the default for :enc is taken care or by IO::Path.spurt correctly | 20:20 | |
so it would solve it for this case | |||
dalek | kudo/nom: 3789a07 | lizmat++ | src/core/io_operators.pm: Make spurt a multi Also make the signature narrower, because IO::Path takes care of defaulting the :enc parameter correctly. This should allow the ecosystem to make a spurt() with a :gzip or :bzip2 named parameter. (hint hint :-) |
20:31 | |
lizmat | spectest clean, fwiw :-) | 20:32 | |
timotimo | OK ... not covered by tests == some freedom for us devs | 20:33 | |
lizmat | re the spurt discussion: #129329 | 21:10 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129329 | ||
lizmat | good night, #perl6! | ||
timotimo | maybe it only works if you turn |c into *% ? | 21:11 | |
ZoffixMobile | .tell mst exactly 1 year ago you told me in magnet #perl to poke you in a year about binary package installer for CPAN :) | 21:19 | |
yoleaux2 | ZoffixMobile: I'll pass your message to mst. | ||
ZoffixMobile | So I'm... poking you, as I promised | ||
gfldex | .tell lizmat if enums would implement the role Enumeration (as the spec asked) the where-clause would not be needed | 22:01 | |
yoleaux2 | gfldex: I'll pass your message to lizmat. | ||
Zoffix | c: Array, 'flat', \() | 22:30 | |
yoleaux2 | 17:14Z <AlexDaniel> Zoffix: See this: irclog.perlgeek.de/perl6-dev/2016-0...i_13250357 – it is possible that when you tried it, the archive did not get extracted fully, this happens pretty often with perl6 whateverables (there is also a chance that recent moarvm fix affects this in a good way, see same log). Right now you can try running the same thing twice. Hopefully this issue will go away one day. | ||
Undercover | Zoffix, The code is NOT hit during stresstest See perl6.WTF/src_core_Array.pm.coverage.html#L490 for details | ||
Zoffix | m: Array.flat() | ||
camelia | ( no output ) | ||
Zoffix | m: dd Array.flat() | ||
camelia | rakudo-moar 3789a0: OUTPUT«Cannot look up attributes in a type object in block <unit> at <tmp> line 1» | ||
Zoffix | (attributes?) | ||
s: &dd | |||
SourceBaby | Zoffix, Sauce is at github.com/rakudo/rakudo/blob/3789...ny.pm#L533 | ||
timotimo | well, how else is Array.flat supposed to do its job? :P | 22:32 | |
Zoffix | m: Array.is-lazy() | ||
camelia | rakudo-moar 3789a0: OUTPUT«Cannot look up attributes in a type object in block <unit> at <tmp> line 1» | ||
timotimo | oh | ||
Zoffix | timotimo, it's identity | ||
timotimo | i see now | ||
m: say Array.flat() | 22:33 | ||
camelia | rakudo-moar 3789a0: OUTPUT«(Array)» | ||
timotimo | it's dd that did it, i see. | ||
Zoffix | Threw me off for a second,. | ||
dalek | ast: 0a49fcb | (Zoffix Znet)++ | S02-types/array.t: [coverage] Array:U.flat is identity |
22:44 | |
ast: d6fff7c | (Zoffix Znet)++ | S32-array/splice.t: [cover] Cover .splice(Whatever, Whatever) |
23:49 | ||
ast: dbb376e | (Zoffix Znet)++ | S32-array/create.t: [coverage] circumfix:<[ ]>() creates an Array |
23:53 |