| 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 |