Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-09-04

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:31 lizmat joined #perl6-dev
00:34 [Coke] ... huh. cleaned out ./install and did a rebuild, now have a jvm perl6
01:14 Geth ¦ roast: skids++ created pull request #305: Fix test that expected pre-GLR behavior.  RT##124572.
01:14 Geth ¦ roast: review: https://github.com/perl6/roast/pull/305
01:14 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=124572
01:15 Geth ¦ roast: skids++ created pull request #306: Fix test that expected pre-GLR behavior.  RT##124572.
01:15 Geth ¦ roast: review: https://github.com/perl6/roast/pull/306
01:15 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=124572
01:31 lizmat joined #perl6-dev
01:33 chinarulezzz joined #perl6-dev
01:52 ilbot3 joined #perl6-dev
01:52 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
02:07 Geth ¦ rakudo/nom: 1da075f93c | (Samantha McVey)++ | tools/lib/NQP/Configure.pm
02:07 Geth ¦ rakudo/nom: Fix Configure.pl so --ignore-errors works for wrong NQP version
02:07 Geth ¦ rakudo/nom:
02:07 Geth ¦ rakudo/nom: Make sure it properly sets the right flags and ignores the error
02:07 Geth ¦ rakudo/nom: properly.
02:07 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1da075f93c
02:07 Geth ¦ rakudo/nom: fc632cd8da | (Samantha McVey)++ | src/core/Match.pm
02:07 Geth ¦ rakudo/nom: Add a comment explaining why INTERPOLATE has non-opt params
02:07 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fc632cd8da
02:48 astj joined #perl6-dev
03:14 AlexDaniel .tell Skarsnik I have tested your proposed MoarVM fix. Are you sure that it affects anything on your machine? Have you tried the snippet from this bug report? RT #131003
03:14 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=131003
03:14 yoleaux AlexDaniel: I'll pass your message to Skarsnik.
03:15 AlexDaniel .tell Skarsnik because it makes no difference at all here. :S
03:15 yoleaux AlexDaniel: I'll pass your message to Skarsnik.
03:51 sivoais joined #perl6-dev
05:44 samcv i'm gonna increase the max length of the needle for Knuth morris pratt to 8192
05:45 samcv and store it in a 16 bit integer array instead of 32 bit array (which was larger than we needed)
06:02 stmuk joined #perl6-dev
06:13 unicodable6 joined #perl6-dev
06:19 [Tux] This is Rakudo version 2017.08-68-gfc632cd8d built on MoarVM version 2017.08.1-53-gad5a6464
06:19 [Tux] csv-ip5xs        1.360 - 1.451
06:19 [Tux] test            10.488
06:19 [Tux] test-t           3.482 - 3.526
06:19 [Tux] csv-parser      11.363
06:25 lizmat Files=1223, Tests=67674, 294 wallclock secs (13.80 usr  5.28 sys + 1980.49 cusr 207.52 csys = 2207.09 CPU)
06:31 [Tux] .hug
06:31 * huggable hugs everyone
06:33 samcv :)
06:53 nine nice way to start into a Monday morning :)
08:11 lizmat good *, #perl6-dev
08:11 lizmat is there a reason why we can't coerce a Seq into a Channel?
08:17 robertle joined #perl6-dev
08:20 masak lizmat: good afternoon. Seq->Channel seems like a sensible thing to want IMO
08:20 masak maybe Channel->Seq too, I dunno
08:21 lizmat masak o/
08:21 * lizmat makes mental note
08:21 samcv gonna bump moarvm so we get the new grapheme caching for KMP based indexing
08:21 samcv \o/
08:22 * masak .oO( Kolmogorov-Markov-Perelman based indexing!? )
08:22 masak :P
08:22 samcv heh
08:22 masak clearly I've been away too long
08:24 masak needless to say, an indexing based on those three couldn't avoid being awesome
08:56 Geth ¦ rakudo/nom: 9dbc3c50c5 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
08:56 Geth ¦ rakudo/nom: Some minor cleanup on R:I.FirstNThenSinkAll
08:56 Geth ¦ rakudo/nom:
08:56 Geth ¦ rakudo/nom: - removed unnecessary attribute
08:56 Geth ¦ rakudo/nom: - made sure pull-one's are raw so containers can be passed
08:56 Geth ¦ rakudo/nom: - sink-all is supposed to return IterationEnd
08:56 Geth ¦ rakudo/nom: - added some comments for clarity of flow
08:56 Geth ¦ rakudo/nom: - removed some trailing whitespace
08:56 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9dbc3c50c5
09:08 Skarsnik joined #perl6-dev
09:32 jnthn wtf, just build Rakudo HEAD and all of make test fails :S
09:33 jnthn It seems it's going for the installed things rather than the ones in my local directory?
09:34 timotimo is that from having removed the relative paths from the default module search paths?
09:35 jnthn No, it seems it put them there in the wrong order :/
09:37 jnthn Thing I figured out the fix
09:37 jnthn But really, did nobody try make test without doing make install first?
09:39 Geth ¦ rakudo/nom: fb0b3eb5c7 | (Jonathan Worthington)++ | tools/build/Makefile-Moar.in
09:39 Geth ¦ rakudo/nom: Fix `make test` without `make install` first.
09:39 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fb0b3eb5c7
09:41 timotimo is that the same runner that gets installed?
09:41 jnthn I sure hope not.
09:42 jnthn No, we call that script again in make install
09:42 jnthn Without . and blib in the path
09:42 timotimo good
09:49 Geth ¦ rakudo/nom: 0877278ede | (Jonathan Worthington)++ | src/core/Scheduler.pm
09:49 Geth ¦ rakudo/nom: Give full thread backtrace under --ll-exception.
09:49 Geth ¦ rakudo/nom:
09:49 Geth ¦ rakudo/nom: Which makes debugging certain problems that result in an unhandled
09:49 Geth ¦ rakudo/nom: exception on a thread easier.
09:49 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0877278ede
09:53 Geth ¦ rakudo/nom: 59a2056a62 | (Elizabeth Mattijsen)++ | 2 files
09:53 Geth ¦ rakudo/nom: Add Thread.is-initial-thread
09:53 Geth ¦ rakudo/nom:
09:53 Geth ¦ rakudo/nom: After a question on perl6-users and some discussion on #perl6-dev,
09:53 Geth ¦ rakudo/nom: presenting class / instance method "is-initial-thread(--> Bool).
09:53 Geth ¦ rakudo/nom: Works by saving the current vm thread in Rakudo::Internals at startup,
09:53 Geth ¦ rakudo/nom: and then comparing that to either the current thread, or the vmthread
09:53 Geth ¦ rakudo/nom: given by the object.
09:53 Geth ¦ rakudo/nom:
09:53 Geth joined #perl6-dev
09:53 jnthn I'm...not sure wanting to know that isn't enough of an anti-pattern to warrant a method for it...
09:55 lizmat jnthn: well, otherwise people will just start asking for the thread's name, and checking for "Initial thread', which feels more fragile
09:55 lizmat in any case, I think we had a race condition in PROCESS::<$THREAD>
09:55 jnthn True, but they're likely writing fragile code anyway
09:55 jnthn Doesn't add much overhead to have the method though, so guess it can stay
09:56 lizmat in which case I will document it and write some tests
10:07 Skarsnik Can be usefull for something like Qt binding were it must live in the main thread
10:07 timotimo in that case you need to use a different scheduler like in the gtk bindings
10:07 timotimo the solution is not to check if it's the initial thread, because what if it isn't?
10:08 Skarsnik you have to die x)
10:08 timotimo also
10:08 timotimo no need to have the main thread be the UI thread
10:08 timotimo which makes is-initial-thread completely useless
10:08 jnthn Generally, it doesn't have to live in the main thread, it just has to use a consistent thread.
10:09 jnthn ah, timotimo beat me to it :)
10:09 * jnthn is fixing RT #132016 fwiw
10:09 jnthn Well, trying, anyways :)
10:09 timotimo conveniently, that thread is usually one that has something event-loopy going on in it, which allows you to push work items onto that very thread
10:10 jnthn Indeed
10:10 timotimo synopsebot6: RT 132016
10:10 jnthn Which is how I arranged it in GTK::Simple
10:11 lizmat BTW, if any has an explanation why I can't do a any(@a) in  https://github.com/rakudo/rakudo/commit/51c3d86ccfb9d868515d47a5a , I'd like to hear it :-)
10:11 jnthn Well, got a fix, and cleaned up the whole $*KERNEL.signals safety issues in general, so the thing compensating for that in Proc::Async can also go away
10:12 Skarsnik I should finish my work to bind glibc/gstreamer in a nice OO fashion x)
10:13 timotimo that'd probably be cool. how about gobject introspection support? :)
10:17 Geth ¦ rakudo/nom: 1f411693bd | (Jonathan Worthington)++ | 2 files
10:17 Geth ¦ rakudo/nom: Make signal introspection in Kernel threadsafe.
10:17 Geth ¦ rakudo/nom:
10:17 Geth ¦ rakudo/nom: This is a more general fix for the issue that Proc::Async was working
10:17 Geth ¦ rakudo/nom: around; it turned out to also be a problem for the `signal` sub.
10:17 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1f411693bd
10:17 Geth ¦ rakudo/nom: 13b6a33c20 | (Jonathan Worthington)++ | src/core/signals.pm
10:17 Geth ¦ rakudo/nom: Fix thread safety issues in the `signal` sub.
10:17 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/13b6a33c20
10:17 Skarsnik first I need to finish my libxml binding. Waiting 30sec each run of gptrixie on big header is kinda not fun
10:18 Skarsnik or you need to make rakudo 100x faster for the XML module to be faster maybe ^^
10:19 jnthn s/rakudo/the specific parts of rakduo the XML module is using/ :-)
10:20 Skarsnik I think objects creation is also not that fast
10:21 jnthn Yup
10:23 Skarsnik my bench on the gumbo module are kinda scary. the C lib take 0.04 sec to parse the html file I use in my tests (and create the C tree), then perl6 take 1.5 sec to go throught the tree and create xml objects.
10:24 jnthn Is it a lot of C calls to access the tree?
10:25 jnthn If so, recent work by nine++ mighta sped up that part significantly
10:25 Skarsnik hm
10:25 jnthn Or might speed up that part...
10:25 jnthn I guess some of it is landed, some still in progress.
10:26 Skarsnik there is like 11 000 calls to one C function
10:26 nine The JIT part still lives in a branch. But that needs only one fix brrt++ pointed out today and a bit of commit cleanup.
10:26 jnthn Ah, then that's probably fairly hot path for the code
10:27 nine But all in all it speeds up csv-ip5xs by ~ 4 % which I have to admit is less than I'd hoped for.
10:27 jnthn :S
10:27 jnthn Yeah
10:27 nine OTOH 100000 calls to a C function take about ~ 20ms according to our profiler
10:27 jnthn That ain't bad :)
10:27 Geth ¦ roast: 43a0d860b6 | (Elizabeth Mattijsen)++ | S17-lowlevel/thread.t
10:27 Geth ¦ roast: Add tests for Thread.is-initial-thread
10:27 Geth ¦ roast: review: https://github.com/perl6/roast/commit/43a0d860b6
10:27 nine So those 11000 should be done in almost no time
10:28 Skarsnik https://gist.github.com/Skarsnik/1c356d1d3b115ce08a4368778b6999b4 It's not these call yes
10:30 nine A cool fact btw: csv-ip5xs runs > 90 % JITed frames
10:31 lizmat nine: wouldn't that imply there isn't much space for improvement anymore ?  :-(  :-)
10:32 |Tux| joined #perl6-dev
10:32 nine lizmat: no, both optimization strategies still very much apply: * do less work * do work more efficiently
10:32 jnthn Better JIT. Better spesh. Better Inline::Perl5. :P
10:32 nine First part is optimizations in Inline::Perl5 and Spesh, the last part is even-moar-jit
10:34 nine Something I want to have a look at in the near future is why encode-chars is not JITed currently
10:34 nine That should help other programs, too
10:35 Skarsnik 4% is not that much :(
10:35 nine I've learned quite a bit about spesh over the weekend and certainly want to spend more time with it :)
10:36 jnthn spesh-bus-number++ \o/
10:38 tadzik spesh bus number bump and 4%? That's a fat improvement :)
10:53 Skarsnik benchable6, releases sub hanoi(int $n, int $d, int $a, int $i) {return if $n == 0; hanoi($n - 1, $d, $i, $a) ; hanoi($n - 1, $i, $a, $d) }; hanoi(15, 1, 2, 3);
10:53 benchable6 Skarsnik, starting to benchmark the 22 given commits
10:54 benchable6 Skarsnik, benchmarked the given commits, now zooming in on performance differences
10:54 travis-ci joined #perl6-dev
10:54 travis-ci Rakudo build failed. Jonathan Worthington 'Give full thread backtrace under --ll-exception.
10:54 travis-ci https://travis-ci.org/rakudo/rakudo/builds/271620184 https://github.com/rakudo/rakudo/compare/fb0b3eb5c792...0877278edea1
10:54 travis-ci left #perl6-dev
10:54 buggable [travis build above] ? All failures are due to timeout (0), missing build log (0), GitHub connectivity (1), or failed make test (0).
10:55 benchable6 Skarsnik, https://gist.github.com/4b3b6a0bb2275650f42618a7c522af3a
11:20 Geth ¦ nqp: a260342ee0 | (Jonathan Worthington)++ | tools/build/MOAR_REVISION
11:20 Geth ¦ nqp: Bump to latest MoarVM.
11:20 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/a260342ee0
11:20 Geth ¦ nqp: version bump brought these changes: https://github.com/MoarVM/MoarVM/compare/2017.08.1-52-gf59ac65d... No newline at end of file
11:24 Geth ¦ roast: 5f7605d09f | (Jonathan Worthington)++ | S32-io/io-handle.t
11:24 Geth ¦ roast: Test for RT #131961.
11:24 Geth ¦ roast: review: https://github.com/perl6/roast/commit/5f7605d09f
11:24 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=131961
11:25 Geth ¦ rakudo/nom: 75c987047e | (Jonathan Worthington)++ | tools/build/NQP_REVISION
11:25 Geth ¦ rakudo/nom: Bump for latest MoarVM.
11:25 Geth ¦ rakudo/nom:
11:25 Geth ¦ rakudo/nom: Includes a fix for an occasional UTF-8 decoding bug and JIT refactors.
11:25 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/75c987047e
11:25 Geth ¦ rakudo/nom: version bump brought these changes: https://github.com/perl6/nqp/compare/2017.08-33-ga1efba5b1... No newline at end of file
11:36 |Tux| This is Rakudo version 2017.08-75-g75c987047 built on MoarVM version 2017.08.1-99-gee06f56f
11:36 |Tux| csv-ip5xs        1.273 - 1.285
11:36 |Tux| test             9.529
11:36 |Tux| test-t           3.405 - 3.436
11:36 |Tux| csv-parser      11.295
11:36 Skarsnik right is previous?
11:36 BenGoldberg joined #perl6-dev
11:37 |Tux| no, I run it twice. left is fastest, right is slowest. It depicts a range
11:37 Skarsnik ohh
11:38 |Tux| 2017-08-30 08:11:54 test-t 3.471
11:38 |Tux| 2017-09-04 08:16:39 test-t 3.482
11:38 |Tux| 2017-09-04 13:32:36 test-t 3.436
11:38 |Tux| 2017-09-04 13:34:23 test-t 3.405
11:39 |Tux| there is no 3.3 or lower yet, so this 3.405 is a new low-record :)
11:43 timotimo cool
12:20 pmurias joined #perl6-dev
12:23 Geth ¦ nqp/master: 7 commits pushed by pmurias++
12:23 Geth ¦ nqp/master: febba4e51e | Fix test
12:23 Geth ¦ nqp/master: c9ac792fb3 | [js] Pass native arguments specially
12:23 Geth ¦ nqp/master: 11d31c8a78 | [js] Fix --target=ast
12:23 Geth ¦ nqp/master: 5ecebe4f5b | [js] Fixup passing of native arguments
12:23 Geth ¦ nqp/master: dada807c55 | [js] Create the nqp::backtracestrings using the same method we use for nqp::backtrace
12:23 Geth ¦ nqp/master: 1c0906b750 | Test that native arguments get boxed in the called code ref
12:23 Geth ¦ nqp/master: f9c49e4b78 | Test nqp::captureposarg_{i,s,n} with native arguments
12:23 Geth ¦ nqp/master: review: https://github.com/perl6/nqp/compare/a260342ee0...f9c49e4b78
12:30 pmurias joined #perl6-dev
12:39 * jnthn wonders why sub exit ended up in src/core/Rakudo/Internals.pm
12:45 lizmat jnthn: there was a logic to it: perhaps because it was needed early in the setting ?
12:46 lizmat seems to be related to &*EXIT
12:47 jnthn mebbe :)
12:47 jnthn Doesn't affect me, just noticed it
12:48 jnthn I'm currently looking into switching on output buffering on non-tty handles fwiw
12:50 lizmat jnthn: now that we have atomic inc / cas, shouldn't we also fix any race conditions in once blocks ?
12:50 jnthn Not sure how they relate :)
12:51 lizmat well, once blocks use a hidden state var
12:51 jnthn If question is "can we use them to fix once blocks to be magically threadsafe" then no.
12:51 lizmat ah, but that can't be a native, right ?
12:51 jnthn The problem is
12:51 jnthn sub foo() { once { ...init work... }; ...code that relies on that init work... }
12:51 jnthn Here, the issue is not that we only need to do init work once
12:52 jnthn It's that there's also a race between it being done and something using it
12:52 jnthn So once isn't a good construct for those things
12:52 lizmat ok, gotcha
12:53 jnthn Not unless we introduce some kinda blocking
12:53 jnthn It would be nice to have something like a deferred operation that's certain to do the work once, and you block on it being available
12:53 lizmat implicitly lock all once blocks?
12:53 lizmat feels like a recipe for deadlock  :-(
12:53 jnthn Right, I don't think we can overload this onto once very sanely
12:54 jnthn It's also like we want a phaser
12:54 jnthn *almost
12:55 jnthn Since there is at least precedent for those not just being once-per-lexical-scope
12:55 lizmat but unlike phasers, this would be in the line of the program  :-(
12:55 jnthn No idea what we'd call it
12:55 jnthn That's fine though
12:55 lizmat it used to be called START  :-)
12:55 jnthn my $foo = BEGIN ...;
12:55 jnthn my $foo = INIT ...;
12:55 jnthn Those are understood to run at certain times and once
12:55 jnthn For various definitions of once :-)
12:56 jnthn START ain't a good name for this. It's more like once-per-process-on-demand :)
12:56 lizmat .oO( oppod )
12:56 jnthn :P
12:57 * lizmat drops the idea for now  :-)
12:57 jnthn Well, I like the idea, just dunno what to call it :)
12:57 * jnthn glances at TimToady :)
12:59 jnthn A small number of tests suffering from buffering.
13:01 jnthn 'not ok 1 - buffer is flushed when IO goes out of scope'
13:01 jnthn uh...no, dear test, that is not how Perl 6 works :P
13:05 pmurias joined #perl6-dev
13:08 jnthn Darn, these tests are utterly bogus :/
13:09 timotimo that must be ooooold
13:09 jnthn Indeed
13:09 jnthn Well, they'll just have to change
13:11 jnthn I just worry that people will not be closing file handles in general and somehow expecting them to magically be closed for them at program exit
13:12 timotimo brian d foy pointed out that log10(10 ** 1000) doesn't work; should we have candidates for those functions that work with Int? (because right now it coerces 10 ** 1000 to Num yielding Inf, and log10 of Inf is Inf)
13:12 jnthn I've already stuck in a MoarVM patch for stdout/stderr to auto-flush at exit
13:12 timotimo yeah, the user code normally doesn't open stdout/stderr by itself :)
13:12 jnthn Right
13:12 jnthn releasable6: status
13:12 releasable6 jnthn, Next release in 12 days and ?5 hours. No blockers. Changelog for this release was not started yet
13:12 releasable6 jnthn, Details: https://gist.github.com/dbaad6553900a1829b5ebba581374165
13:12 jnthn OK, 2 weeks is enough to find out what the impact will be
13:17 Zoffix timotimo: dunno; if log10 would work with big ints, I'd expect the rest of all these routines to work too; like cos(10 ** 1000)
13:17 Zoffix And if we fix just a handful of them to work, it'd be harder to remember which of them do and don't work.
13:18 timotimo that's a good point i suppose
13:18 Zoffix Wonder if we should have some detection for these cases and a warning or something "warning, large Int coerced to Num ends up as Inf"
13:18 timotimo not sure if that's sane
13:18 Zoffix ok :)
13:19 Zoffix wonder if there's a way to fix all of them; they're all periodic, aren't they
13:20 Geth ¦ roast: 72ce6bc930 | (Jonathan Worthington)++ | S32-io/io-handle.t
13:20 Geth ¦ roast: Fix/eliminate tests for IO handles and scope exit.
13:20 Geth ¦ roast:
13:20 Geth ¦ roast: Quite simply, Perl 6 makes no promises whatsoever about handles being
13:20 Geth ¦ roast: automatically closed for you at scope exit, and can't make any about
13:20 Geth ¦ roast: flushing either. It never has done so; these tests simply passed due
13:20 Geth ¦ roast: to a lack of output buffering. Thus they were never passing for the
13:20 Geth ¦ roast: reason they claimed they were.
13:20 Geth ¦ roast: <…commit message has 7 more lines…>
13:20 Geth ¦ roast: review: https://github.com/perl6/roast/commit/72ce6bc930
13:22 Geth ¦ rakudo/nom: 138b6ce000 | (Jonathan Worthington)++ | src/core/IO/Handle.pm
13:22 Geth ¦ rakudo/nom: Have tell do a flush first.
13:22 Geth ¦ rakudo/nom:
13:22 Geth ¦ rakudo/nom: Otherwise it can report the position incorrectly if we have got
13:22 Geth ¦ rakudo/nom: buffering enabled.
13:22 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/138b6ce000
13:23 Zoffix well, other than log, but there's the multiplication -> sum thing; log(A*B) = log(A) + log(B)
13:26 Zoffix m: sub huge_log_10($a) { my $ans = 0; $ans += log10 10**300 while ($ans /= 10**300) > 10**300; $ans + log10 $ans }; say huge_log_10 10**1000
13:26 camelia rakudo-moar 75c987: OUTPUT: «-Inf?»
13:27 Zoffix hehe, well, that's the most wrong answer, I'd say :)
13:27 timotimo :D
13:27 timotimo m: say log10 10**300
13:27 camelia rakudo-moar 75c987: OUTPUT: «300?»
13:28 timotimo not sure if you should put $ans back into the calculation over and over like that
13:28 Zoffix m: 'sub huge_log_10($a is copy) { my $ans = 0; $ans += log10(10**300) while ($a /= 10**300) > 10**300; $ans + log10 $a }; say huge_log_10 10**1000
13:28 camelia rakudo-moar 75c987: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>?Unable to parse expression in single quotes; couldn't find final "'"?at <tmp>:1?------> 3s + log10 $a }; say huge_log_10 10**10007?5<EOL>?    expecting any of:?        single quotes?       …»
13:28 Zoffix m: sub huge_log_10($a is copy) { my $ans = 0; $ans += log10(10**300) while ($a /= 10**300) > 10**300; $ans + log10 $a }; say huge_log_10 10**1000
13:28 camelia rakudo-moar 75c987: OUTPUT: «700?»
13:28 timotimo close
13:28 Zoffix but no cigar
13:29 Zoffix m: sub huge_log_10($a is copy) { my $ans = 0; repeat { $ans += log10(10**300) } while ($a /= 10**300) > 10**300; $ans + log10 $a }; say huge_log_10 10**1000
13:29 camelia rakudo-moar 75c987: OUTPUT: «1000?»
13:31 Zoffix m: sub huge_log_10($a is copy) { my $ans = 0; if $a > 10**300 { repeat { $ans += log10 10**300 } while ($a /= 10**300) > 10**300 }; $ans + log10 $a }; say huge_log_10 $_ for 10, 10**100, 10**99, 10**1000, 10**10000
13:31 camelia rakudo-moar 138b6c: OUTPUT: «1?100?99?1000?10000?»
13:35 MasterDuke joined #perl6-dev
13:35 llfourn joined #perl6-dev
13:41 Geth ¦ rakudo/nom: 72bf0238a5 | (Jonathan Worthington)++ | src/core/IO/Handle.pm
13:41 Geth ¦ rakudo/nom: Revert "Have tell do a flush first."
13:41 Geth ¦ rakudo/nom:
13:41 Geth ¦ rakudo/nom: This reverts commit 138b6ce0009bd91d5d8893c61539773b8d0e41b1. Since
13:41 Geth ¦ rakudo/nom: the VM is doing the buffering, it's better to let it manage this bit
13:41 Geth ¦ rakudo/nom: of sync-up also.
13:41 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/72bf0238a5
13:55 Skarsnik_ joined #perl6-dev
13:57 Skarsnik__ joined #perl6-dev
14:01 Skarsnik_ joined #perl6-dev
14:06 travis-ci joined #perl6-dev
14:06 travis-ci Rakudo build failed. Jonathan Worthington 'Have tell do a flush first.
14:06 travis-ci https://travis-ci.org/rakudo/rakudo/builds/271686300 https://github.com/rakudo/rakudo/compare/75c987047e5d...138b6ce0009b
14:06 travis-ci left #perl6-dev
14:06 buggable [travis build above] ? All failures are due to timeout (0), missing build log (0), GitHub connectivity (0), or failed make test (1). Across all jobs, 27 unique test files failed.
14:07 jdv79 any ideas why one would do "stat <= 0" before calling mkdir in C?
14:07 jdv79 isn't that all return values?
14:08 ilmari according to both the POSIX and Linux manpages it always returns 0 or -1, yes
14:09 jdv79 maybe its a question for #moarvm then cause its in there.  weird.
14:10 jnthn Well yay, got a clean spectest now with output buffering enabled by default for non-TTYs
14:11 timotimo that's lovely
14:22 AlexDaniel joined #perl6-dev
14:32 Geth ¦ nqp: 83197a2721 | (Jonathan Worthington)++ | tools/build/MOAR_REVISION
14:32 Geth ¦ nqp: Bump to latest MoarVM.
14:32 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/83197a2721
14:32 Geth ¦ nqp: version bump brought these changes: https://github.com/MoarVM/MoarVM/compare/2017.08.1-98-g1dd4486...2017.08.1-103-g41e1b7c
14:33 Geth ¦ rakudo/nom: 44680029b4 | (Jonathan Worthington)++ | tools/build/NQP_REVISION
14:33 Geth ¦ rakudo/nom: Bump to get latest MoarVM version.
14:33 Geth ¦ rakudo/nom:
14:33 Geth ¦ rakudo/nom: Has a number of fixes related to output buffering.
14:33 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/44680029b4
14:33 Geth ¦ rakudo/nom: version bump brought these changes: https://github.com/perl6/nqp/compare/2017.08-34-ga260342...2017.08-42-g83197a2
14:36 geekosaur jdv, iirc mkdir in moarvm is shell mkdir -p, so it tests for existence/not a directory at each level
14:36 geekosaur which is not how I'd do that, but I already tilted at that windmill
14:42 Geth ¦ rakudo/nom: 4b02b8aadc | (Jonathan Worthington)++ | src/core/IO/Handle.pm
14:42 Geth ¦ rakudo/nom: Enable output buffering by default for non-TTYs
14:42 Geth ¦ rakudo/nom:
14:42 Geth ¦ rakudo/nom: Prior to this change, output buffering had to be explicitly turned
14:42 Geth ¦ rakudo/nom: on using `:buffer` when opening a file, and was never turned on for
14:42 Geth ¦ rakudo/nom: the standard output handles. Now it will be turned on for handles
14:42 Geth ¦ rakudo/nom: that are not TTYs. This gives a sizable performance boost for output.
14:42 Geth ¦ rakudo/nom: For example, writing a million line file drops from ~2.05s to ~1.29s,
14:42 Geth ¦ rakudo/nom: thus running in 63% of the time it used to. Presuming UTF-8 encoding,
14:42 Geth ¦ rakudo/nom: this brings us to being 1.4x slower than Perl 5 (which is also doing
14:42 Geth ¦ rakudo/nom: output buffering) at this benchmark, as opposed to 2.2x slower before.
14:42 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4b02b8aadc
14:43 timotimo yes! i love it!
14:44 Zoffix \o/
14:46 skids joined #perl6-dev
15:35 lizmat afk for dinner&
15:42 Ben_Goldberg joined #perl6-dev
16:19 japhb OK, so the three major benchmarks we seem to be running of late are: the [Tux] CSV benchmark, jnthn's "read a million lines", and jnthn's "write a million lines".  Any others in relatively active use?
16:24 jnthn The write one just got faster again :)
16:31 dogbert2 joined #perl6-dev
16:54 robertle joined #perl6-dev
17:02 lizmat joined #perl6-dev
17:12 japhb W00t!
17:24 travis-ci joined #perl6-dev
17:24 travis-ci Rakudo build passed. Jonathan Worthington 'Bump to get latest MoarVM version.
17:24 travis-ci https://travis-ci.org/rakudo/rakudo/builds/271715837 https://github.com/rakudo/rakudo/compare/72bf0238a5c4...44680029b417
17:24 travis-ci left #perl6-dev
18:14 BenGoldberg m: sub huge_log_10($a is copy, $pow) { my $ans = 0; if $a > 10**$pow { repeat { $ans += log10 10**v } while ($a /= 10**$pow) > 10**$pow }; $ans + log10 $a }; say huge_log_10($_, 300) for 10, 10**100, 10**99, 10**1000, 10**10000
18:14 camelia rakudo-moar 4b02b8: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>?Undeclared routine:?    v used at line 1??»
18:14 BenGoldberg m: sub huge_log_10($a is copy, $pow) { my $ans = 0; if $a > 10**$pow { repeat { $ans += log10 10**$pow } while ($a /= 10**$pow) > 10**$pow }; $ans + log10 $a }; say huge_log_10($_, 300) for 10, 10**100, 10**99, 10**1000, 10**10000
18:14 camelia rakudo-moar 4b02b8: OUTPUT: «1?100?99?1000?10000?»
18:15 BenGoldberg m: sub huge_log_10($a is copy, $pow) { my $ans = 0; if $a > 10**$pow { repeat { $ans += log10 10**$pow } while ($a /= 10**$pow) > 10**$pow }; $ans + log10 $a }; say huge_log_10($_, 100) for 10, 10**100, 10**99, 10**1000, 10**10000
18:15 camelia rakudo-moar 4b02b8: OUTPUT: «1?100?99?1000?10000?»
18:15 BenGoldberg m: sub huge_log_10($a is copy, $pow) { my $ans = 0; if $a > 10**$pow { repeat { $ans += log10 10**$pow } while ($a /= 10**$pow) > 10**$pow }; $ans + log10 $a }; say huge_log_10($_, 1) for 10, 10**100, 10**99, 10**1000, 10**10000
18:15 Zoffix ?
18:15 camelia rakudo-moar 4b02b8: OUTPUT: «(timeout)1?»
18:15 Zoffix The 10**300 is just near-upper limit before that Int when numified would be Inf
18:16 Zoffix huggable: log
18:16 huggable Zoffix, Comes out 2.41x faster than core .log10 and can handle Ints larger than 1.8e308: https://gist.github.com/zoffixznet/2539e8bebe9c5e19ab38ca43e173fe8f
18:16 Zoffix Also; ^ improved version of the routine
18:16 Zoffix well, performance-wise, not readability-wise :P
18:17 BenGoldberg nqp looks very lisp-y to me.
18:18 BenGoldberg Sure, it's got commas, and the names of the functions are on the wrong side of the (, and progn is misspelled stmts, but it's still clearly lisp.
18:18 Zoffix :)
18:19 geekosaur somewhere there's a backronym for "perl" where the "l" is LISP
18:23 [Coke] the malformed utf8 issue is fixed for me on the mac; any idea why I was able to reproduce so much more consistently than others?
18:23 [Coke] jnthn++
18:35 committable6_ joined #perl6-dev
18:43 eater joined #perl6-dev
18:48 ilmari[m] joined #perl6-dev
19:03 jnthn [Coke]: Glad it's fixed. It could have been something about where boundaries fell in the input or some such
19:25 lizmat joined #perl6-dev
20:59 lizmat and another Perl 6 Weekly hits the Net: https://p6weekly.wordpress.com/2017/09/04/2017-36-blogs-a-reading/
21:17 dogbert2 joined #perl6-dev
22:21 masak joined #perl6-dev
22:24 Ven joined #perl6-dev
23:03 AlexDaniel joined #perl6-dev
23:14 samcv lizmat++
23:44 bisectable6 joined #perl6-dev
23:44 committable6 joined #perl6-dev
23:44 nativecallable6 joined #perl6-dev
23:44 benchable6 joined #perl6-dev
23:44 coverable6 joined #perl6-dev
23:44 quotable6 joined #perl6-dev
23:44 bloatable6 joined #perl6-dev
23:44 greppable6 joined #perl6-dev
23:44 unicodable6 joined #perl6-dev
23:44 releasable6 joined #perl6-dev
23:44 evalable6 joined #perl6-dev
23:44 squashable6 joined #perl6-dev
23:44 statisfiable6 joined #perl6-dev

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary