b2gills | TestNinja: There is one cheaty thing I thought of 「s/'@Testers[0]'/$Current-Tester/」 and in subtest alias 「$Current-Tester」 to what will be 「@Testers[0]」 | 00:35 | |
TestNinja | Already done that, but thanks :) | ||
m: sub foo (\meow?) {} | 00:38 | ||
camelia | rakudo-moar ad5336: OUTPUT«===SORRY!=== Error while compiling <tmp>Malformed parameterat <tmp>:1------> sub foo (\meow⏏?) {} expecting any of: constraint» | ||
TestNinja | m: sub foo (\meow = Any) {} | ||
camelia | ( no output ) | ||
TestNinja | Seems like the first one should also work | ||
hm | 00:39 | ||
m: sub foo (\meow) { meow() }; foo sub { say "hi" } | |||
camelia | rakudo-moar ad5336: OUTPUT«===SORRY!=== Error while compiling <tmp>Variable '&meow' is not declaredat <tmp>:1------> sub foo (\meow) { ⏏meow() }; foo sub { say "hi" }» | ||
TestNinja | Can't find Callables? | ||
*bind | 00:40 | ||
m: sub foo (\meow) { dd meow }; foo sub { say "hi" } | |||
camelia | rakudo-moar ad5336: OUTPUT«sub () { #`(Sub|73869736) ... }» | ||
TestNinja | intresting heh | ||
m: sub foo (\meow) { meow.() }; foo sub { say "hi" } | 00:41 | ||
camelia | rakudo-moar ad5336: OUTPUT«hi» | ||
TestNinja | \o/ | ||
b2gills | m: sub foo (\meow) { meow.() }; foo sub { say "hi" } | 00:49 | |
camelia | rakudo-moar ad5336: OUTPUT«hi» | ||
TestNinja | m: say "New Test.pm6 is {681-433} lines smaller but takes {((484-453)/484*100).Int}% more time to complete" | 01:26 | |
camelia | rakudo-moar ad5336: OUTPUT«New Test.pm6 is 248 lines smaller but takes 6% more time to complete» | ||
TestNinja | Boom. Optimization via using correct math :P | 01:27 | |
m: sub dif (\x, \y) { sprintf '%.2f', abs( (x - y) / max(x.abs, y.abs) )*100 }; my $l = 426; my $to = 453; my $tn = 484; say "New Test.pm6 is {dif 681, $l}% smaller [{681-$l} lines less] and takes {dif $to, $tn}% more time to complete [stresstest takes {$tn-$to} seconds longer]" | 01:36 | ||
camelia | rakudo-moar ad5336: OUTPUT«New Test.pm6 is 37.44% smaller [255 lines less] and takes 6.40% more time to complete [stresstest takes 31 seconds longer]» | ||
TestNinja | m: sub dif (\x, \y) { sprintf '%.2f', abs( (x - y) / max(x.abs, y.abs) )*100 }; my $l = 426; my $to = 294; my $tn = 312; say "New Test.pm6 is {dif 681, $l}% smaller [{681-$l} lines less] and takes {dif $to, $tn}% more time to complete [spectest takes {$tn-$to} seconds longer]" | 01:38 | |
camelia | rakudo-moar ad5336: OUTPUT«New Test.pm6 is 37.44% smaller [255 lines less] and takes 5.77% more time to complete [spectest takes 18 seconds longer]» | ||
TestNinja | Man, there's too much noise in spectest :/ | ||
dalek | kudo/better-test-pm6: 8a2b858 | (Zoffix Znet)++ | lib/Test.pm6: Optimize (1) |
01:59 | |
kudo/better-test-pm6: 697a07b | (Zoffix Znet)++ | lib/Test.pm6: Optimise (2) |
|||
kudo/better-test-pm6: 26e2474 | (Zoffix Znet)++ | / (2 files): Add bench |
|||
kudo/nom: dd5bbd2 | MasterDuke17++ | src/Perl6/Actions.nqp: Allow Unicode digit match variables Fixes one part of RT #129279 |
02:01 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129279 | ||
dalek | kudo/nom: 050f8db | MasterDuke17++ | src/Perl6/Actions.nqp: Allow negative Unicode digit type constraints Part of the fix for RT #129279 |
||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129279 | ||
rakudo/nom: 941ee0e | MasterDuke17++ | src/Perl6/ (2 files): | |||
rakudo/nom: Allow Unicode digits in radix bases | |||
kudo/better-test-pm6: 63e5357 | (Zoffix Znet)++ | lib/Test.pm6: Optimise 3 |
02:20 | ||
ast: 968764e | MasterDuke17++ | S0 (3 files): Tests for Unicode digits in various places E.g., radix bases, match variables, and type constraints Tests for RT #129279 |
02:26 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129279 | 02:27 | |
japhb | TestNinja: I think there's a copy/paste error at the end of github.com/rakudo/rakudo/commit/63e535797a | 02:50 | |
travis-ci | Rakudo build failed. Zoffix Znet 'Merge pull request #878 from MasterDuke17/RT129279 | 02:55 | |
travis-ci.org/rakudo/rakudo/builds/160338801 github.com/rakudo/rakudo/compare/a...393dd41698 | |||
[Tux] | This is Rakudo version 2016.08.1-202-g78393dd built on MoarVM version 2016.08-47-g2eedba8 | 06:17 | |
csv-ip5xs 9.310 | |||
test 16.183 | |||
test-t 6.924 | |||
csv-parser 18.386 | |||
nine | Ok, I'm close to giving up. How can I intercept writes to a hash? I tried mixing in a role that overrides multi method ASSIGN-KEY but then rakudo rightfully complains about ambiguous calls. | 07:13 | |
moritz | nine: what if you give it an "is default" trait? | 07:19 | |
m: my %h = a => 1; %h does role { method ASSIGN-KEY(Str() $key, Mu \value) is default { say "Assigning to $key"; nextsame }}; %h<x> = 'y'; say %h | 07:20 | ||
camelia | rakudo-moar 78393d: OUTPUT«Assigning to x{a => 1, x => y}» | ||
moritz | m: my %h = a => 1; %h does role { method ASSIGN-KEY(Str() $key, Mu \value) { say "Assigning to $key"; nextsame }}; %h<x> = 'y'; say %h | 07:21 | |
camelia | rakudo-moar 78393d: OUTPUT«Assigning to x{a => 1, x => y}» | ||
moritz | m: my %h = a => 1; %h does role { method ASSIGN-KEY($key, Mu \value) { say "Assigning to $key"; nextsame }}; %h<x> = 'y'; say %h | ||
camelia | rakudo-moar 78393d: OUTPUT«Assigning to x{a => 1, x => y}» | ||
nine | moritz: so many thanks! | 07:51 | |
moritz | nine: you're welcome. No idea why it works for me without "is default", but not for you | 08:01 | |
nine | m: my $h = { a => 1, b => 2} but role :: { multi method ASSIGN-KEY(Hash:D: Str:D \key, Mu \assignval) is raw { note "ASSIGN-KEY"; } }; $h<c> = 3; | 08:04 | |
camelia | rakudo-moar 78393d: OUTPUT«Ambiguous call to 'ASSIGN-KEY'; these signatures all match::(Hash:D $: Str:D \key, Mu \assignval, *%_):(Hash:D $: Str:D \key, Mu \assignval, *%_) in block <unit> at <tmp> line 1» | ||
moritz | oh | 08:16 | |
it's because I didn't make it a multi | |||
lizmat | nine: I guess you *can* make it a multi if you give it its own proto ? | 09:35 | |
nine | will try that, too :) | 09:36 | |
TestNinja | japhb, thanks it is | 09:51 | |
That entire commit is crap though. I've just realized my benching was including compilation. I need to rethink this whole thing. | |||
lizmat is preparing for her presentation for the Dutch Linux User Group: nllgg.nl/bijeenkomst/20160917 | 09:53 | ||
DrForr | lizmat: I've found a flight that lets me get to LPWover a weekend, I'll see if that works. I may need to twist Mark's arm to get me some sort of visa though, or at least a declaration that my time is uncompensated. | 09:54 | |
lizmat | sigh # visa troubles | 09:55 | |
timotimo | i wonder if it's less hassle for "terrorists" to enter a country than it is for regular citizens | ||
nine | it probably is | 09:56 | |
timotimo | kind of like how DRM/copy-protection makes it harder for normal customers and "pirates" have it super easy | ||
jnthn | The UK visa systems is a comparatively nasty one too. | ||
timotimo tweetet that out and hopes for interesting insights from people smarter than him | 09:57 | ||
DrForr | Amd I now have to be extra careful due to this Brexit crap. | ||
jnthn | Expensive, no clear rules what they want ("just convince us!"), no appeals process | ||
DrForr | The annoying part is that even if I'm just there for tourism I tend to get delayed by ~2 hours at the customs border check due to ... well, if I'm being honest, being lied to. | 10:01 | |
timotimo | DrForr: i haven't gotten a good-enough look at you, but do you look ... "dangerous"? | 10:02 | |
nine | Looks like mixing in the role works but is really slow. I wonder if I can somehow detect situations in which I actually need it, like having an is rw on a callback's signature. | ||
DrForr | That's not the issue. If I get over there, the story'll cost you an ale :) | ||
dalek | kudo/better-test-pm6: df27b27 | (Zoffix Znet)++ | lib/Test.pm6: Revert "Optimise 3" This reverts commit 63e535797adef the bench that suggested it was incorrectly done and it makes the code too dirty, while offering nearly no benefit. |
10:03 | |
DrForr | (thirsty work, I had to do it several times at YAPC.) | ||
timotimo | i'm not going to be at LPW, DrForr :( | 10:09 | |
DrForr | :( | 10:17 | |
TestNinja | .seen zoffix | 10:36 | |
NeuralAnomaly, stats | 10:38 | ||
NeuralAnomaly | TestNinja, [✘] Next release is today. Since last release, there are 52 new still-open tickets (3 unreviewed and 0 blockers) and 11 unreviewed commits. See perl6.fail/release/stats for details | ||
TestNinja | yey for timezones, rounding, and off-by-one errors (mabby) | ||
jnthn | Today?! :) | 10:39 | |
TestNinja | Nah, tomorrow. | ||
timotimo | "the day of the release starts in less than 24 hours" | 10:40 | |
TestNinja | But it's probably using midnight as a mark and then sees there are X hours only and thinks that's good enough to call it "today" :) | ||
stmuk | I have a pocket chip thing! | 10:47 | |
timotimo | is that the little dev board that comes with an enclosure for game play & development? | 10:49 | |
stmuk | yes! | 10:50 | |
getchip.com/pages/pocketchip | 10:51 | ||
timotimo | cool | ||
i bet if you put this in the hands of a curious child, amazing things could happen | |||
stmuk | arm7 debian jessie .. comes with perl 5 it seems but not rakudo or gcc (yet) | ||
it may end up with my nephew | |||
timotimo | pico8 is magical | 10:54 | |
stmuk | yes a nice idea | 10:58 | |
arnsholt | Oh, neat! | 11:02 | |
brrt | when is the LPW | 11:04 | |
tadzik | oh yeah, it'd be nice to see it while England is still... available for visiting :P | 11:05 | |
brrt | :-P | ||
stmuk | act.yapc.eu/lpw2016/ | 11:08 | |
brrt | december 3rd | ||
nine | Turns out, inspecting the signature and only applying the WritebackHash role if there's an "is raw" is actually a tiny bit slower still | 11:56 | |
Of course, doing that on every call cannot exactly help there... | 11:57 | ||
jnthn | nine: Might be faster to just subclass Hash and just turn the thing straight into that type | ||
Due to potential for action at a distance, mixins cause global deopt | 11:58 | ||
nine | Ah, good to know! Will try with subclassing then. | ||
lizmat | nine: perhaps subclass Map rather than Hash | 11:59 | |
as it was supposed to be (mostly) immutable ? | |||
nine | lizmat: no, no, it is supposed to be writable. It's just that the writes should make it back to the Perl 5 hash, too | 12:00 | |
lizmat | ah, ok :-) | ||
nine | I've also played with the thought of wrapping the P5 hash in a proxy object instead of copying it. But I somehow cannot imagine that being very fast as we have to go through NativeCall for every single access. | 12:01 | |
Another surprise: the subclass is not even faster. Seems like I have to fire up the profiler to get at the bottom of this... | 13:06 | ||
lizmat | :-( | 13:12 | |
afk& | |||
dalek | kudo/better-test-pm6: 9f72bff | (Zoffix Znet)++ | lib/Test.pm6: Format a bit nicer |
13:43 | |
kudo/better-test-pm6: 85c3eb7 | (Zoffix Znet)++ | lib/Test.pm6: Add notes for future perusers of the branch A bench of common tests shows this module is 33% slower than its currently active counterpart. The several hot spots that can be optimized also exist in some form in the "old" module and can be optimized there as well, resulting in a null performance gain for this version of the module. I don't see a way to gain 33% improvement from other code paths, so I'm giving up on this branch and am OK with it being deleted entirely after the tears over the lost time spent dry out. |
13:47 | ||
MetaZoffix | :) knowing when to give up is a useful skill | 13:49 | |
ugexe | m: say "xxx".match(/<after 1>/); say "xxx".match(/<after x>/); # Both of these fail to match, so why does only one of them output that `#<failed match>` in their gist? | 14:37 | |
camelia | rakudo-moar 78393d: OUTPUT«Nil「」 after #<failed match>» | ||
timotimo | um, isn't one of them just an empty match? | 14:38 | |
ugexe | ah yeah, i think i had a better example | 14:39 | |
timotimo | it is, however, strange to have #<failed match> inside there. it might misinterpret zero-width as failed to match for the submatch | ||
m: say "xxx".match(/<.after x>/); | |||
camelia | rakudo-moar 78393d: OUTPUT«「」» | ||
timotimo | m: say "xxx".match(/<after x>/); | ||
camelia | rakudo-moar 78393d: OUTPUT«「」 after #<failed match>» | ||
timotimo | you see? | ||
ugexe | ah ha. yeah that zero width bit was confusing me with this actual code | 14:41 | |
timotimo | however, isn't the <after x> actually supposed to match an x, even though its result is reported as zero-width? | ||
i wonder if perl6's own grammar has a bunch of after and before rules that could get a . without making stuff break | 14:42 | ||
ugexe | it'd probably be a nice little speed boost if so | 14:43 | |
timotimo | fewer GC runs, i expect | 14:45 | |
nine | Oooh. The massive performance difference is actually that my workaround version passes back a hash with values to be merged into %token while the WritebackHash version converts %token into a Perl 6 hash first, just to intercept the writes. | 14:49 | |
Converting the hash to Perl 6 is what takes a lot of time because it makes a _lot_ of calls into Perl 5 | 14:50 | ||
timotimo | ooooh! | ||
nine | That's this code: github.com/niner/Inline-Perl5/blob...5.pm6#L351 | 14:51 | |
That's at least 5 NativeCalls for each hash entry. | 14:52 | ||
timotimo | ouchies! :) | ||
nine | And it recurses. So if there are more hashes and arrays, that's a lot of work. And yes, those %tokens in Dancer2 contain a lot of data. | 14:53 | |
So yes, in this case it would actually be much better to have a Proxy to the P5 hash instead of a copy. | 14:54 | ||
In other cases it will be the other way around. So having the user decide (by way of an "is raw") may actually be a good way to handle this. | |||
Oh yes, that's much faster | 15:12 | ||
timotimo | fantastic! :) | ||
nine | Well at least much less slow ;) | ||
dalek | kudo/nom: 4a954d8 | (Zoffix Znet)++ | lib/Test.pm6: Optimise proclaim() Rewrite $desc.subst with nqp ops Although the profiler shows a 68% improvement with a loop over 100 ok()s, I don't see any difference in spectest run: both versions take 86s. |
15:20 | |
TimToady | why not make a P5Hash repr and use the P5 hash directly? | 15:23 | |
that was one of the early motivations for having representational polymorphism in the first place... | 15:24 | ||
nine | That's certainly something I should look into | 15:25 | |
Though I thought a repr is about memory layout? | |||
TimToady | well, that might be all it is at the moment, but the orignal intent was to allow other language's object formats in as native-ish | 15:27 | |
timotimo | well, the repr also decides how key-based operations are handled | 15:28 | |
at-key, bind-key, exists-key | 15:29 | ||
same for other stuff, too. | |||
TimToady | I mean, basically I've wanted that feature ever since I pulled expat into P5 and realized how much time was being spent translating data to P5 object format | 15:32 | |
which sure sounds a lot like the current situation :) | 15:33 | ||
only maybe in reverse | |||
nine | Absolutely makes sense :) | 15:36 | |
The fastest work is the work you don't have to do at all - like needless copying | |||
timotimo | yeah | 15:37 | |
nine | If I want to iterator over my %p5hash with for %p5hash, all Perl5Hash to do is consume Iterable and implement method iterator(), doesn't it? | 16:06 | |
At least that's what works in a trivial command line test, but in the real thing, iterator() is just not called and instead it iterates only once with the whole Perl5Hash as the item | 16:09 | ||
dalek | kudo/nom: 9154702 | (Zoffix Znet)++ | lib/Test.pm6: Micro-optimise failure output Profiler indicates a 2.1x improvement in 100 is() failures todo()'s reason hashmark escaper removed, because—unlike a test description—there's nothing for it to interefere with and it doesn't need to be escaped. |
16:16 | |
travis-ci | Rakudo build passed. Zoffix Znet 'Optimise proclaim() | 16:18 | |
travis-ci.org/rakudo/rakudo/builds/160476464 github.com/rakudo/rakudo/compare/7...954d8858d5 | |||
buggable | [travis build above] ☠ Did not recognize some failures. Check results manually | ||
MetaZoffix | I'm curious of next [Tux]'s speed results. The profiler showed good gains, but spectest runs showed nothing at all, running at 86s all the time. But I wonder if it's just a couple of slow tests that hide the results of all the rest. | 16:22 | |
timotimo | don't forget the gains are also divided by however many cores you're running tests on | 16:23 | |
does tux's benchmark use Test anyway? | |||
MetaZoffix | Also, stage parse used to 45s and now it's 67s :/ I really hope that's Google ripping me off with its VM. | 16:24 | |
Oh, no idea. | |||
japhb | MetaZoffix: Which VM tier are you trying to use? | 16:25 | |
MetaZoffix | I'm using custom 24 vCPUs, 30 GB | ||
japhb | Huh. Seems like that shouldn't be a problem, unless you're dying of sharing cache bandwidth or something | 16:26 | |
MetaZoffix | Hm? | 16:27 | |
japhb | Meaning, you're not trying to use low memory or shared-CPU instances or anything. | ||
MetaZoffix | A few months ago, that same VM ran stage parse in 45s, but now 67s | ||
japhb | Oh wait! I wonder if you changed CPU family or somesuch. | 16:28 | |
japhb wonders if it's even possible to specify that | |||
timotimo | i wouldn't be terribly surprised if there wasn't something that got added to the core setting that'd make parsing and generating time slower | 16:29 | |
MetaZoffix | Don't think so. But I've noticed a slowdown on my home box as well. It was just below 60s and now it's somewhere in the 70s | ||
Yeah, mabby | |||
japhb | Ah, *phew*. I was thinking that it had somehow gotten 50% slower without any changes to the "expected" parsing speed. | 16:30 | |
MetaZoffix | timotimo: how are they divided though? If I have 4 test files that run for 1m each. On 4core box they will take 1m to run. On 1core box 4m. If I make the tests twice as fast. They will run for .5m and 2m respectively. A 2x gain in both cases. | ||
Oh, now I remember why I came here. | 16:31 | ||
buggable: source | |||
buggable | MetaZoffix, See: github.com/zoffixznet/perl6-buggable | ||
timotimo | hm | ||
japhb | Parsing has the problem that it's single-threaded, so that case at least isn't gaining much from cores past maybe 2 or 3 (to account for efficiencies in I/O and kernel stuff when it's on a separate core) | ||
timotimo | forget i said that ;) | ||
MetaZoffix | travis-ci.org/rakudo/rakudo/builds/160476464 | 16:40 | |
(buggable now ignores JVM, until "allow_failures" is removed) | 16:41 | ||
Zoffix strikes again.... now with: committable6: 2016.04 say ١**2 | 16:54 | ||
star: say ١**2 | |||
camelia | star-m 2016.04: OUTPUT«1» | ||
dalek | kudo/nom: cc88653 | (Zoffix Znet)++ | lib/Test.pm6: Remove erroneous semicolon |
17:03 | |
travis-ci | Rakudo build failed. Zoffix Znet 'Micro-optimise failure output | 17:12 | |
travis-ci.org/rakudo/rakudo/builds/160490926 github.com/rakudo/rakudo/compare/4...5470278b41 | |||
buggable | [travis build above] ☠ Did not recognize some failures. Check results manually | ||
MetaZoffix | t/04-nativecall/13-union.t again | 17:13 | |
dalek | kudo/nom: e406758 | (Zoffix Znet)++ | docs/ChangeLog: Log all changes to date Documents commits beec02a 5f2e96b 4667702 dd5bbd2 050f8db 941ee0e |
17:16 | |
nine | Always proxying hashes instead of copying saves another 33 % of the runtime in the Dancer2 benchmark. | 17:24 | |
DrForr | ++nine | 17:39 | |
[Tux] | timotimo, no (timing doesn't use Test). The test suite does | 17:44 | |
timotimo | wow, nine. that us a lot | 17:50 | |
how easy is it to move a full hash over? perhaps with json works well? | |||
japhb | nine: Proxying with Proxy? Or a REPR? | 17:58 | |
timotimo | well, a repr takes a few more minutes to build | 18:01 | |
lizmat | can we actually build a REPR in NQP / Perl 6 land ? | 18:06 | |
mst | NativeCall into MoarVM ? | 18:07 | |
mst runs | |||
ugexe | appveyor has failed all builds since github.com/rakudo/rakudo/commit/62...77a91b8d38 | 18:20 | |
stmuk | tar-m 2016.04? | 18:21 | |
+s | |||
ugexe | no, latest rakudo built from source | 18:23 | |
nine | I'm definitely going the proxied hash route. It has too many advantages not to. And the only case where it's slower is actually when values are accessed multiple times. | 18:27 | |
Should also do the same with Perl 6 hashes :) | 18:28 | ||
MetaZoffix | ugexe: it was likely still failing tests in earlier commits, but the failures were silent | ||
ugexe | MetaZoffix: yep thats it | 18:29 | |
MetaZoffix | Same with JVM | 18:30 | |
Oh, that's probably *just* the JVM failing. We had to allow_failure for it on travis | |||
ugexe | jvm is not tested on windows | 18:31 | |
MetaZoffix | oh | ||
ugexe | compile_test_lib('02-simple-args') is what fails on windows | 18:40 | |
gist.github.com/ugexe/ac343c406179...1e78182cb7 | |||
travis-ci | Rakudo build passed. Zoffix Znet 'Log all changes to date | 18:42 | |
travis-ci.org/rakudo/rakudo/builds/160506284 github.com/rakudo/rakudo/compare/c...0675887c41 | |||
dalek | kudo/nom: d63f983 | (Zoffix Znet)++ | / (2 files): Make all yadas work to stub classes Only `...` works to stub classes, while `…`, `!!!`, and `???` do not, yet they do to stub subs, for example. This commit makes them all work to stub classes too. Fixes RT#129270: rt.perl.org/Ticket/Display.html?id=129270 |
18:44 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129270 | ||
dalek | ast: 0ade2a5 | (Zoffix Znet)++ | S12-class/stubs.t: Test all yadas work to stub classes RT#129270: rt.perl.org/Ticket/Display.html?id=129270 |
||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129270 | ||
dalek | ast: 3c8e5c6 | (Zoffix Znet)++ | S (2 files): Move sub stub tests Out of class stubs to "advanced" stubs file that does have subs. |
18:49 | |
stmuk | oh the Robot is releasing this weekend? | 18:53 | |
MetaZoffix | Yup. | ||
NeuralAnomaly: status | |||
NeuralAnomaly | MetaZoffix, [✘] Next release is today. Since last release, there are 50 new still-open tickets (0 unreviewed and 0 blockers) and 2 unreviewed commits. See perl6.fail/release/stats for details | ||
MetaZoffix | (never mind the "today" :P) | ||
ugexe | so it can't compile because it doesn't understand `ssize_t` it seems github.com/rakudo/rakudo/blob/nom/...rgs.c#L106 | 18:57 | |
lizmat | reminds me of a program I once wrote that was supposed to countdown the same way for everybody running that program | ||
on the same (mainframe) system: imagine my embarrassment when it went: 5, 4, 3, 2, 1, 0, ..... -1, -2, -3 :-) | 18:58 | ||
MetaZoffix | :) | 18:59 | |
ugexe | s/ssize_t/SSIZE_T/ also fixes it on windows... | 19:04 | |
perlpilot | nine: What's the reason Inline::Perl5 requires Perl 5.18? (I just tried installing it on a system that has 5.16.3 not realizing it needed 5.18) | 19:05 | |
nine | perlpilot: I actually don't know. Only found a commit that lowered the requirement from 5.22 to 5.18. Probably some api function I use but I just cannot remember. | 19:21 | |
perlpilot | nine: okay, thanks. no big deal; I was just curious (and if I should explore making it work with 5.16 :) | 19:22 | |
nine | perlpilot: I'd be happy to take a patch or two :) You're surely not the only one that would help | 19:23 | |
perlpilot | Well ... the more I think about it, the more I think it won't be too difficult to just get Perl upgraded :) | 19:24 | |
nine | Ah, it's av_top_index | 19:26 | |
Seems like av_len does the same and is supported on older perls | 19:29 | ||
dalek | kudo/nom: ee23fc6 | (Steve Mynott)++ | CONTRIBUTING.md: minor typo |
19:45 | |
kudo/nom: 81d71e7 | (Steve Mynott)++ | README.md: another minor typo |
|||
kudo/nom: f3692a0 | (Zoffix Znet)++ | / (2 files): Merge pull request #879 from stmuk/nom minor typo |
|||
kudo/nom: a944eda | ugexe++ | t/04-nativecall/02-simple-args.c: Define ssize_t for win32 nativecall test |
19:46 | ||
kudo/nom: ab68f82 | (Zoffix Znet)++ | t/04-nativecall/02-simple-args.c: Merge pull request #880 from ugexe/patch-12 Define ssize_t for win32 nativecall test |
|||
japhb | OK, so serious yak shaving here: I want to connect securely to my IRC server, so I need SSL/TLS in IRC::Client, but IRC::Client doesn't support secure connections, because it uses IO::Socket::Async (which doesn't support SSL/TLS), instead of synchronous IO::Socket::*, for obvious reasons. But IO::Socket::Async doesn't support SSL/TLS because NQP doesn't, and NQP doesn't because MoarVM doesn't, and MoarVM doesn't because libuv doesn't, and libuv doesn't becaus | ||
There are various posts and repos on the net regarding marrying OpenSSL and libuv, but it looks like even if we did that, it would have to be plumbed all the way back up the stack step by step. Which itself isn't so bad, except I have no idea how the SSL/TLS handshaking and callbacks and stuff would interact with the new async/codec streaming API jnthn++ just wrote. | 19:48 | ||
So ... bleah. | |||
.ask jnthn When you get a few cycles, could you sketch out how you would want async SSL/TLS to even work with your new NQP async streaming APIs, so one of us could do the grunt work? | 19:50 | ||
yoleaux2 | japhb: I'll pass your message to jnthn. | ||
japhb | (Not that I'm particularly looking forward to grunt work, but somebody has to, because dang: not having secure connections is making async APIs way less useful for me.) | ||
ugexe | japhb: this hack works, but its slow as hell gist.github.com/ugexe/71d82eb4bb5653125bd8 | 19:54 | |
japhb | ugexe: Intrinsically so? Or just not optimized much yet? | 20:08 | |
nine | Oh, there's more. On perl 5.16 v6::invoke is a syntax error. | 20:30 | |
perlpilot: ^^^ | |||
mst | oh, right, it's parsing the v6 as a v-string isn't it | 20:31 | |
nine: maybe make it p6::invoke() instead? | 20:32 | ||
nine | I'd say yes: "Bareword found where operator expected at -e line 1, near "v6::invoke"" | 20:33 | |
mst | yeah. V6::invoke works fine, as does p6::invoke | 20:34 | |
nine | That's a real deal breaker. A reason why I chose the v6 package was that I'm very sure no one else has ever used it for a module that's used anywhere. | ||
It was not _just_ because it's cute :) | 20:35 | ||
mst | well, why not just make invoke() an export and avoid the whole problem? | 20:37 | |
I mean, currently, you're just stamping on flavio glock | |||
nine | An export from which package? | 20:42 | |
mst | I thought Inline::Perl6 brought that into scope | ||
so why not do 'use Inline::Perl6 qw(invoke);' or similar? | 20:43 | ||
nine | It's actually part of Inline::Perl5. | 20:50 | |
mst | right, that's what I meant | ||
oh | |||
oh, sorry | |||
lizmat | good night, #perl6-dev | 21:26 | |
TestNinja | night | 21:29 | |
🤘🤘🤘 www.youtube.com/watch?v=yv8xz7I2Wb4 | 22:58 |