Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm Set by Zoffix on 27 July 2018. |
|||||||||||||||||||||||||||||||||||||||
00:12
shabius7 joined
00:13
p6bannerbot sets mode: +v shabius7,
shabius7 left
00:18
ZzZombo left
00:29
vertigo joined,
vertigo left
00:32
Sthebig8 joined
00:33
p6bannerbot sets mode: +v Sthebig8
00:34
Sthebig8 left
|
|||||||||||||||||||||||||||||||||||||||
TimToady | obviously the new marketing name should be Pysson, with a filename extension of .py :) | 00:51 | |||||||||||||||||||||||||||||||||||||
timotimo | are we py's son or what? | 00:53 | |||||||||||||||||||||||||||||||||||||
00:56
Ewout7 joined,
p6bannerbot sets mode: +v Ewout7
00:57
Ewout7 left
|
|||||||||||||||||||||||||||||||||||||||
TimToady | no, no, it's not pronounced "pie" there | 00:57 | |||||||||||||||||||||||||||||||||||||
00:59
ZzZombo joined,
p6bannerbot sets mode: +v ZzZombo
|
|||||||||||||||||||||||||||||||||||||||
Zoffix | hehe | 01:09 | |||||||||||||||||||||||||||||||||||||
01:22
asdfguy20 joined,
p6bannerbot sets mode: +v asdfguy20
01:24
asdfguy20 left
|
|||||||||||||||||||||||||||||||||||||||
Geth | nqp: b33470cb7b | (Zoffix Znet)++ | tools/build/MOAR_REVISION [MoarVM Bump] Brings 6 commits MoarVM bump brought: github.com/MoarVM/MoarVM/compare/2...8-g67f85dc 67f85dc optimize_prof_allocated shouldn't try to mess with writers. 5161060 Correct "should we log parameters" check 3ea4a81 Fix poor inlining due to wrong plan sorting 597ccb0 Pass on type tuple when inlining unspecialized 1500090 Optimize ifnonnull branches out a5dd765 [threadcontext] Remove per-thread libuv loop object |
01:26 | |||||||||||||||||||||||||||||||||||||
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...8-g67f85dc | |||||||||||||||||||||||||||||||||||||||
rakudo: 2840a2960a | (Zoffix Znet)++ | tools/build/NQP_REVISION [NQP Bump] b33470c [MoarVM Bump] Brings 6 commits NQP bump brought: github.com/perl6/nqp/compare/2018....0-gb33470c MoarVM bump brought: github.com/MoarVM/MoarVM/compare/2...8-g67f85dc 67f85dc optimize_prof_allocated shouldn't try to mess with writers. 5161060 Correct "should we log parameters" check 3ea4a81 Fix poor inlining due to wrong plan sorting 597ccb0 Pass on type tuple when inlining unspecialized 1500090 Optimize ifnonnull branches out a5dd765 [threadcontext] Remove per-thread libuv loop object |
|||||||||||||||||||||||||||||||||||||||
rakudo: version bump brought these changes: github.com/perl6/nqp/compare/2018....0-gb33470c 5ff64514fb | (Zoffix Znet)++ | t/02-rakudo/99-misc.t Closes github.com/MoarVM/MoarVM/issues/971 R#971 |
|||||||||||||||||||||||||||||||||||||||
01:30
kpuc28 joined,
p6bannerbot sets mode: +v kpuc28
01:34
kpuc28 left
|
|||||||||||||||||||||||||||||||||||||||
synopsebot | R#971 [closed]: github.com/rakudo/rakudo/pull/971 uniprop: set ISO_Comment as Str type | ||||||||||||||||||||||||||||||||||||||
Zoffix | .tell lizmat the profiler crash you mentioned is fixed now colabti.org/irclogger/irclogger_log...09-27#l934 | 01:54 | |||||||||||||||||||||||||||||||||||||
yoleaux | Zoffix: I'll pass your message to lizmat. | ||||||||||||||||||||||||||||||||||||||
02:01
major23 joined
02:02
p6bannerbot sets mode: +v major23,
major23 left
|
|||||||||||||||||||||||||||||||||||||||
MasterDuke | re changing the profile filename options, what about --profile-stage=<stage> and --profile-compile=<kind>? right now they default to the usual name/output type, but you can change that with --profile-filename | 02:18 | |||||||||||||||||||||||||||||||||||||
should we keep --profile-filename around forever for them? or just assume that you would use --profile=<filename> and --profile-(stage|compile) would override it to do the specific kind of profiling? | 02:20 | ||||||||||||||||||||||||||||||||||||||
02:26
liuyq- joined,
liuyq- left
|
|||||||||||||||||||||||||||||||||||||||
Zoffix | FWIW, I withdraw all my previous comments on the subject. I misunderstood how the options worked. | 02:34 | |||||||||||||||||||||||||||||||||||||
Zoffix beds | |||||||||||||||||||||||||||||||||||||||
02:34
Zoffix left
02:46
Napsterbater20 joined
02:47
p6bannerbot sets mode: +v Napsterbater20,
FastJack18 joined,
Napsterbater20 left,
p6bannerbot sets mode: +v FastJack18
02:51
FastJack18 left
03:35
efee229ddfk joined,
p6bannerbot sets mode: +v efee229ddfk
03:40
efee229ddfk left
03:58
MasterDuke left
04:03
Ven` joined
04:04
p6bannerbot sets mode: +v Ven`
04:07
Ven` left
05:14
fake_space_whale left
05:18
siix18 joined
05:19
p6bannerbot sets mode: +v siix18
05:21
siix18 left
|
|||||||||||||||||||||||||||||||||||||||
nige | f | 05:40 | |||||||||||||||||||||||||||||||||||||
05:41
dv_9 joined
05:42
p6bannerbot sets mode: +v dv_9
05:43
dv_9 left
05:58
RamJett joined,
RamJett left
06:01
john_doe_jr4 joined
06:02
p6bannerbot sets mode: +v john_doe_jr4
06:04
john_doe_jr4 left
06:26
SimJoSt4 joined,
AlexDaniel left,
p6bannerbot sets mode: +v SimJoSt4
06:27
SimJoSt4 left
06:33
robertle joined
06:34
p6bannerbot sets mode: +v robertle
06:37
[TuxCM] left
07:22
BullHorn8 joined
07:23
p6bannerbot sets mode: +v BullHorn8
07:25
BullHorn8 left
07:36
lrvick15 joined,
p6bannerbot sets mode: +v lrvick15
07:39
lrvick15 left
07:44
lizmat left
|
|||||||||||||||||||||||||||||||||||||||
Geth | nqp/nqp-mbc: 590134fdb3 | (Stefan Seifert)++ | src/vm/moar/QAST/QASTCompilerMAST.nqp Merge MoarVM::Frame with MAST::Frame Saves the allocations and is the base for writing bytecode during the QAST to MAST phase. |
07:57 | |||||||||||||||||||||||||||||||||||||
08:02
lizmat joined,
p6bannerbot sets mode: +v lizmat
08:04
robertle left
08:06
robertle joined
08:07
p6bannerbot sets mode: +v robertle
08:10
[TuxCM] joined,
adam3us17 joined
08:11
p6bannerbot sets mode: +v [TuxCM],
p6bannerbot sets mode: +v adam3us17
08:13
adam3us17 left,
robertle left
08:16
robertle joined
08:17
p6bannerbot sets mode: +v robertle
08:30
digitalcircuit20 joined
08:31
p6bannerbot sets mode: +v digitalcircuit20
08:33
digitalcircuit20 left
08:43
moetunes joined
08:44
p6bannerbot sets mode: +v moetunes
08:47
big_t joined
08:48
moetunes left,
p6bannerbot sets mode: +v big_t
08:50
big_t left
09:15
ZzZombo left
09:20
Flameeyes3 joined
09:21
p6bannerbot sets mode: +v Flameeyes3,
Flameeyes3 left
09:31
[TuxCM] left
09:34
MarkOtaris1 joined
09:35
p6bannerbot sets mode: +v MarkOtaris1
|
|||||||||||||||||||||||||||||||||||||||
|Tux| not happy | 09:35 | ||||||||||||||||||||||||||||||||||||||
compiling in an ssh session: | |||||||||||||||||||||||||||||||||||||||
compiling src/jit/x64/emit.o | |||||||||||||||||||||||||||||||||||||||
compiling src/jit/x64/arch.o | |||||||||||||||||||||||||||||||||||||||
/pro/bin/perl5.28.0 build/mk-moar-pc.pl pkgconfig/moar.pc | 09:36 | ||||||||||||||||||||||||||||||||||||||
09:36
MarkOtaris1 left
|
|||||||||||||||||||||||||||||||||||||||
|Tux| | and as of that moment, the box seem irresponsive | 09:36 | |||||||||||||||||||||||||||||||||||||
09:52
[Tux] joined,
p6bannerbot sets mode: +v [Tux]
|
|||||||||||||||||||||||||||||||||||||||
|Tux| | it just got further. So that last single step took a whopping * 9 minutes * !!! | 09:55 | |||||||||||||||||||||||||||||||||||||
09:56
lizmat left
|
|||||||||||||||||||||||||||||||||||||||
|Tux| | I think it misinterpreted the number of available CPU's. I have 8. looking at the log it looks like it spawned a multiplication of that | 09:56 | |||||||||||||||||||||||||||||||||||||
ENOTFUNNY! | |||||||||||||||||||||||||||||||||||||||
11:57:04 up 4 days 23:31, 0 users, load average: 3.80, 120.47, 201.62 | 09:57 | ||||||||||||||||||||||||||||||||||||||
09:58
lizmat joined,
p6bannerbot sets mode: +v lizmat
|
|||||||||||||||||||||||||||||||||||||||
|Tux| | That was the bad news | 10:03 | |||||||||||||||||||||||||||||||||||||
But here is the good news: | 10:04 | ||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||
Geth | roast: 4fe5b7d71a | (Zoffix Znet)++ | S32-io/io-handle.t [v6.d REVIEW] No need for a variable in spurt test Orig: github.com/perl6/roast/commit/5f7605d09 |
||||||||||||||||||||||||||||||||||||||
lizmat | [Tux]: whee! :-) | 10:06 | |||||||||||||||||||||||||||||||||||||
yoleaux | 01:54Z <Zoffix> lizmat: the profiler crash you mentioned is fixed now colabti.org/irclogger/irclogger_log...09-27#l934 | ||||||||||||||||||||||||||||||||||||||
|Tux| | 11:57:04 up 4 days 23:31, 0 users, load average: 3.80, 120.47, 201.62 | ||||||||||||||||||||||||||||||||||||||
lizmat | yeah, that is weird... | ||||||||||||||||||||||||||||||||||||||
|Tux| | 201 is BAD news | ||||||||||||||||||||||||||||||||||||||
lizmat | yeah... | ||||||||||||||||||||||||||||||||||||||
it's up in my top 10, but the highest I've ever seen was 2000+ (just before the box became unresponsive :-) | 10:07 | ||||||||||||||||||||||||||||||||||||||
|Tux| | shall I include perl5:text-csv_pp in the list now that test-t is approching it? Just to set a target line? | 10:08 | |||||||||||||||||||||||||||||||||||||
it might have bee 2000+, but I was unable to tell from over here | 10:09 | ||||||||||||||||||||||||||||||||||||||
Geth | roast: 473e73ee1f | (Zoffix Znet)++ | S05-capture/match-object.t [v6.d REVIEW] Don't stringify $/.Int in test Orig: github.com/perl6/roast/commit/b75fca996 |
||||||||||||||||||||||||||||||||||||||
|Tux| | tux.nl/Files/20180928120935.png ← :/ | ||||||||||||||||||||||||||||||||||||||
each yello line is load + 1 | 10:10 | ||||||||||||||||||||||||||||||||||||||
lizmat | [Tux]: so this happened when compiling moar ? | 10:12 | |||||||||||||||||||||||||||||||||||||
10:12
pmurias joined,
p6bannerbot sets mode: +v pmurias
10:15
niemeyer23 joined
10:16
p6bannerbot sets mode: +v niemeyer23
|
|||||||||||||||||||||||||||||||||||||||
|Tux| | This: "/pro/bin/perl5.28.0 build/mk-moar-pc.pl pkgconfig/moar.pc" took 9 minutes | 10:17 | |||||||||||||||||||||||||||||||||||||
while making the box inaccessible | 10:18 | ||||||||||||||||||||||||||||||||||||||
10:19
niemeyer23 left
|
|||||||||||||||||||||||||||||||||||||||
|Tux| | jnthn, was this what you had in mind? :) :) :) jnthn++ | 10:24 | |||||||||||||||||||||||||||||||||||||
perl6 9.44 0.26 1.0000 | |||||||||||||||||||||||||||||||||||||||
perl5.8.8 19.44 0.02 2.0062 | |||||||||||||||||||||||||||||||||||||||
perl5.10.1 17.57 0.01 1.8124 | |||||||||||||||||||||||||||||||||||||||
perl5.12.2 15.19 0.01 1.5670 | |||||||||||||||||||||||||||||||||||||||
perl5.14.1 14.99 0.00 1.5454 | |||||||||||||||||||||||||||||||||||||||
perl5.16.2 16.48 0.03 1.7021 | |||||||||||||||||||||||||||||||||||||||
perl5.18.2 13.72 0.00 1.4144 | |||||||||||||||||||||||||||||||||||||||
perl5.20.0 13.74 0.02 1.4186 | |||||||||||||||||||||||||||||||||||||||
perl5.22.0 12.24 0.02 1.2639 | |||||||||||||||||||||||||||||||||||||||
perl5.24.1 10.94 0.01 1.1289 | |||||||||||||||||||||||||||||||||||||||
perl5.26.2 10.22 0.00 1.0536 | |||||||||||||||||||||||||||||||||||||||
perl5.28.0 10.87 0.02 1.1227 | |||||||||||||||||||||||||||||||||||||||
lizmat, still *not* using native ints! | 10:25 | ||||||||||||||||||||||||||||||||||||||
lizmat | what was this benchmark again ? | 10:26 | |||||||||||||||||||||||||||||||||||||
and: way cool! :-) | 10:27 | ||||||||||||||||||||||||||||||||||||||
Geth | roast: f349244f57 | (Zoffix Znet)++ | S17-supply/watch-path.t [v6.d REVIEW] Loosen IO::Notification spec It's kinda janky that we get a "FileRenamed" changed for deleted and created files. Perhaps that's all we can get from the OS, but since IO::Notification spec appears to work only on macOS, I'm loosening it in these respects, in case we need to modify them to be something else when IO::Notification works right on all OSes. R#2329 github.com/rakudo/rakudo/issues/2329 Orig: github.com/perl6/roast/commit/25c27f065 |
||||||||||||||||||||||||||||||||||||||
synopsebot | R#2329 [open]: github.com/rakudo/rakudo/issues/2329 [NYI] IO::Notification is not fully implemented | ||||||||||||||||||||||||||||||||||||||
|Tux| | o.pl and o.pl6 (object creation and addition of attributes) | ||||||||||||||||||||||||||||||||||||||
tux.nl/Files/o.tgz | 10:28 | ||||||||||||||||||||||||||||||||||||||
10:35
ZzZombo joined,
p6bannerbot sets mode: +v ZzZombo
10:37
wolv15 joined
10:38
p6bannerbot sets mode: +v wolv15
10:41
wolv15 left
10:44
Biohazard5 joined
10:45
p6bannerbot sets mode: +v Biohazard5
10:46
Biohazard5 left
|
|||||||||||||||||||||||||||||||||||||||
nine | That feels like a great title for a lightning talk: "How Perl 5.26 almost cought up to Perl 6 performance!" | 10:53 | |||||||||||||||||||||||||||||||||||||
lizmat | [Tux]: I just tested with native ints: it doesn't make a difference anymore on that benchmark | 10:54 | |||||||||||||||||||||||||||||||||||||
10:55
Sceinox24 joined,
p6bannerbot sets mode: +v Sceinox24
10:58
Sceinox24 left
|
|||||||||||||||||||||||||||||||||||||||
lizmat | m: dd [Nil,Nil,3] # do we consider this correct behaviour, or should it be [Any,Any,3] ? | 11:04 | |||||||||||||||||||||||||||||||||||||
camelia | Array element = [Any, Any, 3] | ||||||||||||||||||||||||||||||||||||||
lizmat | *should it be [Nil,Nil,3] | ||||||||||||||||||||||||||||||||||||||
jnthn | It's correct; the array composer assigns each incoming value into a Scalar container, so you get normal assignment semantics. | 11:05 | |||||||||||||||||||||||||||||||||||||
lizmat | hmmm... trying to optimize [@a] | 11:06 | |||||||||||||||||||||||||||||||||||||
and it produces [Nil] | |||||||||||||||||||||||||||||||||||||||
jnthn | That'd be a wrongtimization :) | ||||||||||||||||||||||||||||||||||||||
11:06
Shadowmm28 joined
|
|||||||||||||||||||||||||||||||||||||||
lizmat | nqp::bindattr(scalar,Scalar,'$!value', nqp::decont(nqp::atpos(params,$i))), | 11:06 | |||||||||||||||||||||||||||||||||||||
so that can not be used ? | 11:07 | ||||||||||||||||||||||||||||||||||||||
11:07
p6bannerbot sets mode: +v Shadowmm28
|
|||||||||||||||||||||||||||||||||||||||
lizmat | with the descriptor being default_cont_spec | 11:07 | |||||||||||||||||||||||||||||||||||||
11:08
Shadowmm28 left
|
|||||||||||||||||||||||||||||||||||||||
jnthn | Nope | 11:08 | |||||||||||||||||||||||||||||||||||||
Because you're missing out on the Nil semantics | |||||||||||||||||||||||||||||||||||||||
Did you try the nqp::p6scalarwithvalue op? | |||||||||||||||||||||||||||||||||||||||
lizmat | no | 11:09 | |||||||||||||||||||||||||||||||||||||
ok, will look that up | |||||||||||||||||||||||||||||||||||||||
jnthn | I added that to try and efficiently make a Scalar with a descriptor and put a value into it honoring the Nil semantics | 11:12 | |||||||||||||||||||||||||||||||||||||
11:13
patrickb joined
11:14
p6bannerbot sets mode: +v patrickb
|
|||||||||||||||||||||||||||||||||||||||
lizmat | hmmm... using that makes my opt go from 1.8x faster to 1.5x :-( | 11:18 | |||||||||||||||||||||||||||||||||||||
jnthn | It's not an opt if it's wrong :P | 11:20 | |||||||||||||||||||||||||||||||||||||
lizmat | true | 11:21 | |||||||||||||||||||||||||||||||||||||
dogbert2 | what 1.662 for test-t! another day another record :-) | 11:22 | |||||||||||||||||||||||||||||||||||||
lizmat | yeah... and that's even before jnthn's escape analysis work | 11:23 | |||||||||||||||||||||||||||||||||||||
dogbert2 | are we running out of 'easy' opts now? | 11:27 | |||||||||||||||||||||||||||||||||||||
jnthn | Depends how you define "easy", but from the spesh perspective I think most of what goes on there wouldn't fall within most people's definition of "easy". :) | 11:28 | |||||||||||||||||||||||||||||||||||||
But in terms of "are there easy things left that we can do in spesh", the answer is maybe, but I suspect the next rounds of bigger wins will need decidedly non-easy things. | 11:29 | ||||||||||||||||||||||||||||||||||||||
PEA being one of them | |||||||||||||||||||||||||||||||||||||||
We could also do with loop invariant code motion | |||||||||||||||||||||||||||||||||||||||
dogbert2 | so no more 'busted stats' | 11:30 | |||||||||||||||||||||||||||||||||||||
jnthn | Both of those are especially interesting around loops. However, OSR means we can move into an optimized version of a loop while the loop is running | ||||||||||||||||||||||||||||||||||||||
So things hoisted out of the loop can get "interesting". | 11:31 | ||||||||||||||||||||||||||||||||||||||
So yeah, there's some headaches ahead there. | |||||||||||||||||||||||||||||||||||||||
I'll probably find more things like I have during the last week where we can better tune the things we have or fix shortcomings that lead to missed opportunities | |||||||||||||||||||||||||||||||||||||||
dogbert2 | what about the 'two hot loops in a row' thingy | 11:32 | |||||||||||||||||||||||||||||||||||||
11:32
M4GNV520 joined
|
|||||||||||||||||||||||||||||||||||||||
jnthn | I think we can perhaps deal with that by spotting than the OSR point in the second loop as never hit yet and speshing it into an unconditional deopt | 11:32 | |||||||||||||||||||||||||||||||||||||
And then perhaps making OSR specializations be keyed on the OSR point at which we entered them | 11:33 | ||||||||||||||||||||||||||||||||||||||
11:33
p6bannerbot sets mode: +v M4GNV520
|
|||||||||||||||||||||||||||||||||||||||
jnthn | Or "additionally keyed" | 11:33 | |||||||||||||||||||||||||||||||||||||
*spotting that, a few messages back | |||||||||||||||||||||||||||||||||||||||
So effectively we'd re-specialize it once we have data about the second loop | 11:34 | ||||||||||||||||||||||||||||||||||||||
dogbert2 | would it gain much you think? | ||||||||||||||||||||||||||||||||||||||
jnthn | For programs that have that structure... | 11:36 | |||||||||||||||||||||||||||||||||||||
dogbert2 | you made an analysis here: github.com/rakudo/rakudo/issues/2210 but since that piece of code now runs much faster I guess that you've managed to fix a couple of the points that you mention | 11:37 | |||||||||||||||||||||||||||||||||||||
11:37
M4GNV520 left
|
|||||||||||||||||||||||||||||||||||||||
tbrowder__ | hi, folks, i just asked a question about roast contributions on #perl6 but meant to ask it here. basically how should i handle a test generator script? | 11:41 | |||||||||||||||||||||||||||||||||||||
i think there is a clever way to get the test harness to use that script but i don’t want to be ad hoc here. | 11:43 | ||||||||||||||||||||||||||||||||||||||
never mind, i think i see some examples | 11:47 | ||||||||||||||||||||||||||||||||||||||
Geth | rakudo: e430813fb0 | (Elizabeth Mattijsen)++ | 2 files Make [@a] and [1,2,3] about 1.4x faster By using the new nqp::p6 ops for setting up scalars. |
11:54 | |||||||||||||||||||||||||||||||||||||
11:55
pmurias left,
cognominal-p6 left
12:02
pmurias joined,
p6bannerbot sets mode: +v pmurias
|
|||||||||||||||||||||||||||||||||||||||
jnthn | lizmat++ # nice :) | 12:03 | |||||||||||||||||||||||||||||||||||||
tbrowder__ | ok, ref roast: it looks like samcv does the same kind of thing: i add my test generator to the appropriate dir (S26) as a manually executed file and version controlled. i execute it to generate the test file which is also version controlled. then all is static until something needs to be changed later. | ||||||||||||||||||||||||||||||||||||||
i will follow that path unless there are objections | 12:04 | ||||||||||||||||||||||||||||||||||||||
dogbert2 | m: for ^10000 { 1.match(/1/) }; say now - INIT now | 12:14 | |||||||||||||||||||||||||||||||||||||
camelia | 1.03046523 | ||||||||||||||||||||||||||||||||||||||
dogbert2 | m: for ^10000 { "1".match(/1/) }; say now - INIT now | ||||||||||||||||||||||||||||||||||||||
camelia | 0.11576961 | ||||||||||||||||||||||||||||||||||||||
lizmat | m: for ^10000 { 1.Str.match(/1/) }; say now - INIT now | 12:16 | |||||||||||||||||||||||||||||||||||||
camelia | 0.1096311 | ||||||||||||||||||||||||||||||||||||||
nine finds it odd that we only have IO::Notification spec tests on macos when IO::Notification works just fine on Linux | |||||||||||||||||||||||||||||||||||||||
lizmat | nine: simple reason is that I've been the only one writing tests, and I'm on MacOS | ||||||||||||||||||||||||||||||||||||||
nobody else has been writing tests | 12:17 | ||||||||||||||||||||||||||||||||||||||
nine | ah, that explains it of course :) | ||||||||||||||||||||||||||||||||||||||
Geth | rakudo: 88e6de226e | (Elizabeth Mattijsen)++ | src/core/array_operators.pm6 Ensure correct semantics for [Nil] |
12:36 | |||||||||||||||||||||||||||||||||||||
12:38
MasterDuke joined,
p6bannerbot sets mode: +v MasterDuke
|
|||||||||||||||||||||||||||||||||||||||
Geth | roast: 0ace718b4a | (Elizabeth Mattijsen)++ | integration/advent2011-day23.t Make sure result of test is not dependent on Nil The resulting Array should contain Any as the first elements, not Nil. This worked because the Nil would be converted in the Array creation logic of circumfix:<[ ]> , but it shouldn't depend on that. |
12:39 | |||||||||||||||||||||||||||||||||||||
12:39
MasterDuke left,
MasterDuke joined,
herbert.freenode.net sets mode: +v MasterDuke,
p6bannerbot sets mode: +v MasterDuke
|
|||||||||||||||||||||||||||||||||||||||
Geth | roast/6.c-errata: 2fa2ad50df | (Elizabeth Mattijsen)++ | integration/advent2011-day23.t Make sure result of test is not dependent on Nil The resulting Array should contain Any as the first elements, not Nil. This worked because the Nil would be converted in the Array creation logic of circumfix:<[ ]> , but it shouldn't depend on that. |
12:40 | |||||||||||||||||||||||||||||||||||||
12:44
Zoffix joined,
p6bannerbot sets mode: +v Zoffix
|
|||||||||||||||||||||||||||||||||||||||
Zoffix | nine: does it work "just fine" tho? I recall trying to write a spec for it on Linux during IO grant and it was mostly broken. | 12:44 | |||||||||||||||||||||||||||||||||||||
nine | Zoffix: have been using it in production for over a year now | 12:45 | |||||||||||||||||||||||||||||||||||||
Zoffix | And I recall trying to use my notification-based restarter script on Windows without luck too (though I don't remember if it was notifications that were the problem or something else). | 12:47 | |||||||||||||||||||||||||||||||||||||
Some files are notified twice for a single change, on Linux. | |||||||||||||||||||||||||||||||||||||||
lizmat | Zoffix: that also happens on MacOS, fwiw | 12:48 | |||||||||||||||||||||||||||||||||||||
nine | Zoffix: some details of what exactly we use: niner.name/blog/house_cleaning_with...index.html | ||||||||||||||||||||||||||||||||||||||
Anyway it's good that you reminded me of that block post which has been sitting there for half a year now waiting to be published :/ | |||||||||||||||||||||||||||||||||||||||
Zoffix | nine: even that tiny code contains an LTAness, from language design standpoint. Why is `.path` from notification is (apparently) a string rather than IO::Path | 12:49 | |||||||||||||||||||||||||||||||||||||
dogbert2 | lizmat: the loop example above came from RT #131805 | 12:50 | |||||||||||||||||||||||||||||||||||||
synopsebot | RT#131805 [open]: rt.perl.org/Ticket/Display.html?id=131805 [REGRESSION] [PERF] .grep-ing Ints with a code block is now almost twice slower ( .grep({/foo/}) ) | ||||||||||||||||||||||||||||||||||||||
nine | Zoffix: very true! | ||||||||||||||||||||||||||||||||||||||
Zoffix | This emits no notifications for me on Linux. Am I using it wrong? `perl6 -e 'start react whenever "foo".IO.watch { .say }; "foo".IO.open(:w); sleep 1'` | 12:52 | |||||||||||||||||||||||||||||||||||||
nine | Can you try watching a directory? | 12:53 | |||||||||||||||||||||||||||||||||||||
Zoffix | No output from this: perl6 -e 'start react whenever ".".IO.watch { .say }; "foo".IO.spurt: "42"; sleep 2' | ||||||||||||||||||||||||||||||||||||||
lizmat | fwiw, that doesn't do anything on MacOS either | 12:54 | |||||||||||||||||||||||||||||||||||||
nine | From inotify(7): | 12:55 | |||||||||||||||||||||||||||||||||||||
Inotify monitoring is inode-based: when monitoring a file (but not when monitoring the directory containing a file), an event can be generated for activity on any link to the file (in the same or a different directory). | |||||||||||||||||||||||||||||||||||||||
lizmat | Zoffix: you're watching the file | ||||||||||||||||||||||||||||||||||||||
but you change the dir with the open | |||||||||||||||||||||||||||||||||||||||
MasterDuke | m: sub f(Int $n) { return $n <= 1 ?? 1 !! f($n - 1) + f($n - 2); }; say f(35) | ||||||||||||||||||||||||||||||||||||||
camelia | 14930352 | 12:56 | |||||||||||||||||||||||||||||||||||||
MasterDuke | m: sub f(Int $n) { return $n <= 1 ?? 1 !! f($n - 1) + f($n - 2); }; say f(35); say now - INIT now | ||||||||||||||||||||||||||||||||||||||
Zoffix | With `react whenever "foo".IO.watch { .say };` running and in another terminal deleting an existing `foo` genned 3 notifications: FileChanged, FileRenamed, FileRenamed. Creating it again generated no notifications. Deleting again generated no notifications. | ||||||||||||||||||||||||||||||||||||||
camelia | 14930352 10.4532881 |
||||||||||||||||||||||||||||||||||||||
lizmat | m: start react whenever ".".IO.watch { .say }; my $a = "zoffix".IO.open(:w); sleep 1 # FileRenamed | ||||||||||||||||||||||||||||||||||||||
camelia | ( no output ) | ||||||||||||||||||||||||||||||||||||||
MasterDuke | m: sub f(Int $n) { $n <= 1 ?? 1 !! f($n - 1) + f($n - 2); }; say f(35); say now - INIT now | ||||||||||||||||||||||||||||||||||||||
camelia | 14930352 4.82992287 |
||||||||||||||||||||||||||||||||||||||
lizmat | Zoffix: if you watch the dir, I *do* get nnotifications | 12:57 | |||||||||||||||||||||||||||||||||||||
MasterDuke | ^^^ i didn't realize return was quite that expensive | ||||||||||||||||||||||||||||||||||||||
Zoffix | lizmat: this gens no notifications even tho I'm modifying file's contents: perl6 -e 'start react whenever "foo".IO.watch { .say }; "foo".IO.spurt: rand; sleep 2' | ||||||||||||||||||||||||||||||||||||||
lizmat: this gives me no notifications: perl6 -e 'start react whenever ".".IO.watch { .say }; my $a = "zoffix".IO.open(:w); sleep 1' | |||||||||||||||||||||||||||||||||||||||
Running inside a temp dir /tmp/tmp.h13QT28V4h | |||||||||||||||||||||||||||||||||||||||
lizmat | it does generate a FileRenamed for me on MacOS | ||||||||||||||||||||||||||||||||||||||
nine | Zoffix: since inotify is inode-based, watching a non-existing file cannot generate any events | 12:58 | |||||||||||||||||||||||||||||||||||||
It doesn't watch the path, it watches a file or directory pointed to by that path. Which one is determined when the watch is set | |||||||||||||||||||||||||||||||||||||||
Zoffix | nine: it exists the second time I run that code, but I still get no notifications | ||||||||||||||||||||||||||||||||||||||
jnthn | Zoffix: Doesn't a *different* (new) file exist, rather than the one that was being watched? | 12:59 | |||||||||||||||||||||||||||||||||||||
(Since it'd have a new inode number) | |||||||||||||||||||||||||||||||||||||||
Zoffix | jnthn: I dunno, does spurt delete the file? | ||||||||||||||||||||||||||||||||||||||
$ perl6 -e 'start react whenever "foo".IO.watch { .say }; "foo".IO.spurt: rand, :append; sleep 2' | 13:00 | ||||||||||||||||||||||||||||||||||||||
no output and in append mode. | |||||||||||||||||||||||||||||||||||||||
jnthn | Oh | ||||||||||||||||||||||||||||||||||||||
If nothing else, that code is a race condition | |||||||||||||||||||||||||||||||||||||||
Zoffix | I also tried running the spurt in another program (without `start` on react in the first) | 13:01 | |||||||||||||||||||||||||||||||||||||
lizmat | perhaps sleep a bit *before* spurting I guess :-) | ||||||||||||||||||||||||||||||||||||||
jnthn | But still, I think you'd need to watch the enclosing directory to see file creations. May be wrong, but that's my recollection of how this works. | ||||||||||||||||||||||||||||||||||||||
Zoffix | $ perl6 -e 'start react whenever "foo".IO.watch { .say }; sleep 1; "foo".IO.spurt: rand, :append; sleep 2' | 13:02 | |||||||||||||||||||||||||||||||||||||
/tmp/tmp.UoGxvUFDFi/foo: FileChanged | |||||||||||||||||||||||||||||||||||||||
Well, I'll believe it works when I'll see a passing spec :) | |||||||||||||||||||||||||||||||||||||||
lizmat | fwiw, delivery of these notifications seems very dependent on load on the machine | 13:03 | |||||||||||||||||||||||||||||||||||||
so running it inside a spec test is probably the worst place to do it | |||||||||||||||||||||||||||||||||||||||
Zoffix | That was an error; was running spurt in wrong dir: <Zoffix> │ I also tried running the spurt in another program (without `start` on react in the first) | ||||||||||||||||||||||||||||||||||||||
Also, is FileChanged/FileDeleted the only thing we can tell? Like, there's no FileCreated or anything? | 13:05 | ||||||||||||||||||||||||||||||||||||||
Oh, there's like a gazillion events listed in `man inotify` | |||||||||||||||||||||||||||||||||||||||
jnthn | Zoffix: We're exposing what libuv provided at the time this was put in (some years ago), and nobody has worked on it since. I suspect it's maybe exposing a portable subset? When I looked at the area a bit, it all seemed pretty fraught and non-portable. | 13:08 | |||||||||||||||||||||||||||||||||||||
(If anyone has worked on it since, then sorry, I missed that. :)) | |||||||||||||||||||||||||||||||||||||||
13:10
AlexDaniel joined,
p6bannerbot sets mode: +v AlexDaniel
|
|||||||||||||||||||||||||||||||||||||||
Zoffix | (for context of that question; last night I reverted some of the IO::Notification spec to not spec that file creation gives FileRenamed, etc event github.com/perl6/roast/commit/f349...d76eb4beca ) | 13:10 | |||||||||||||||||||||||||||||||||||||
jnthn | hah, yes, git log of it shows that the only notable thing that happened since it was added was making it use UTF8-C8 encoding and a bug fix, and the rest was just keeping it up to date with overall MoarVM changes | ||||||||||||||||||||||||||||||||||||||
I think docs.libuv.org/en/v1.x/fs_event.htm...v_fs_event is latest docs and the enum there still only has change and rename | 13:12 | ||||||||||||||||||||||||||||||||||||||
13:18
Zoffix left
|
|||||||||||||||||||||||||||||||||||||||
dogbert2 | "All modern operating systems provide APIs to put watches on individual files or directories and be informed when the files are modified. libuv wraps common file change notification libraries [1]. This is one of the more inconsistent parts of libuv. File change notification systems are themselves extremely varied across platforms so getting everything working everywhere is difficult." | 13:24 | |||||||||||||||||||||||||||||||||||||
from nikhilm.github.io/uvbook/filesyste...l#fsnotify | 13:25 | ||||||||||||||||||||||||||||||||||||||
Geth | rakudo: 3d405e89d5 | (Elizabeth Mattijsen)++ | src/core/List.pm6 Make List.Array coercion about 1.5x as fast By mostly removing code and use the new Array.from-list method that was created for [@a]. This removes the last use of nqp::assign from the core setting. |
13:37 | |||||||||||||||||||||||||||||||||||||
13:40
cognominal-p6 joined,
p6bannerbot sets mode: +v cognominal-p6
|
|||||||||||||||||||||||||||||||||||||||
MasterDuke | is 'is cached' going away? | 13:45 | |||||||||||||||||||||||||||||||||||||
13:54
cognominal-p6 left,
cognominal-p6 joined
|
|||||||||||||||||||||||||||||||||||||||
lizmat | MasterDuke: I would guess, yes | 13:55 | |||||||||||||||||||||||||||||||||||||
13:55
p6bannerbot sets mode: +v cognominal-p6
|
|||||||||||||||||||||||||||||||||||||||
lizmat | MasterDuke: now that we have at least one alternative in module space: modules.perl6.org/dist/Sub::Memoized | 13:55 | |||||||||||||||||||||||||||||||||||||
MasterDuke | i thought i remembered something going on with it recently. but i don't remember why it's going away? | 13:57 | |||||||||||||||||||||||||||||||||||||
lizmat | because we couldn't decide on the exact semantics, I think | 13:58 | |||||||||||||||||||||||||||||||||||||
MasterDuke | hm, that's too bad. i remember thinking from very early on how nice it was having memoization built in to the language itself | 13:59 | |||||||||||||||||||||||||||||||||||||
jnthn | I think a substantially overhauled form of it might live on | 14:01 | |||||||||||||||||||||||||||||||||||||
lizmat | well, then you should fight for getting rid of the "experimental" tag | ||||||||||||||||||||||||||||||||||||||
14:01
zohnex18 joined
|
|||||||||||||||||||||||||||||||||||||||
jnthn | experimental is right about the current implementation | 14:02 | |||||||||||||||||||||||||||||||||||||
But I think `is cached` on methods should store the memoization on the instance | |||||||||||||||||||||||||||||||||||||||
14:02
p6bannerbot sets mode: +v zohnex18
|
|||||||||||||||||||||||||||||||||||||||
jnthn | Then you can write `method foo() is cached { ...expensive computation... }` for example | 14:02 | |||||||||||||||||||||||||||||||||||||
diakopter | that's cool | ||||||||||||||||||||||||||||||||||||||
14:03
zohnex18 left
14:25
MasterDuke left
14:33
MasterDuke joined,
p6bannerbot sets mode: +v MasterDuke
14:34
MasterDuke left,
MasterDuke joined,
herbert.freenode.net sets mode: +v MasterDuke,
p6bannerbot sets mode: +v MasterDuke
14:50
fake_space_whale joined
14:51
p6bannerbot sets mode: +v fake_space_whale
|
|||||||||||||||||||||||||||||||||||||||
[Tux] | So, the time-to-beat is 0.836: perl5.28.0 + Text::CSV_PP | 15:05 | |||||||||||||||||||||||||||||||||||||
m: say 1.662 / 0.836 | 15:06 | ||||||||||||||||||||||||||||||||||||||
camelia | 1.988038 | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | uhhh that's a long way to go | 15:07 | |||||||||||||||||||||||||||||||||||||
but in like a year or two maybe? | 15:08 | ||||||||||||||||||||||||||||||||||||||
timotimo | perhaps we're just one good optimization of "next" away from reaching parity | ||||||||||||||||||||||||||||||||||||||
15:35
robertle left
|
|||||||||||||||||||||||||||||||||||||||
MasterDuke | '<+Zoffix> Don't immediatelly see any logic in the optimizer for telling "this is a routine body and not a block/thunk body" so giving up on return elision right now [...]', anybody have an idea? | 15:37 | |||||||||||||||||||||||||||||||||||||
timotimo | m: class test { method foo(|c) { say c.perl } }; test.new.foo(1, 2, 3) | 15:44 | |||||||||||||||||||||||||||||||||||||
camelia | \(1, 2, 3) | ||||||||||||||||||||||||||||||||||||||
timotimo | if the capture also had the self in it, i'd totally suggest giving "is cached" an API like "is cached(*.Str)" for the simple case where stringifying the capture is enough | 15:45 | |||||||||||||||||||||||||||||||||||||
but the self would have to be put in there some other way | |||||||||||||||||||||||||||||||||||||||
nine | Now that I've got the structure in place, things become interesting. I need to compile all QAST nodes in order. But for some like QAST::Block we only gather the required information while compiling their children. | 15:55 | |||||||||||||||||||||||||||||||||||||
So either I introduce an information gathering pass, or I keep the current structure and compile the children first to a temporary bytecode buffer and append it later. | 16:00 | ||||||||||||||||||||||||||||||||||||||
I'm leaning towards the latter for now as it ought to give me working code sooner. The changes are pretty intrusive already... | 16:02 | ||||||||||||||||||||||||||||||||||||||
jnthn | nine: Yeah, the traversal is a lot of late-bound dispatch, so I think one pass probably will win on performance also | 16:18 | |||||||||||||||||||||||||||||||||||||
16:27
adherzog16 joined
16:28
p6bannerbot sets mode: +v adherzog16
16:32
adherzog16 left
17:16
MasterDuke left
17:19
MasterDuke joined,
p6bannerbot sets mode: +v MasterDuke,
MasterDuke left,
MasterDuke joined,
herbert.freenode.net sets mode: +v MasterDuke,
p6bannerbot sets mode: +v MasterDuke
17:28
wolfshappen12 joined
17:29
p6bannerbot sets mode: +v wolfshappen12
17:31
wolfshappen12 left
17:49
CoilDomain24 joined
17:50
p6bannerbot sets mode: +v CoilDomain24
17:56
CoilDomain24 left
|
|||||||||||||||||||||||||||||||||||||||
Geth | nqp: patzim++ created pull request #504: Remove dead code. |
18:48 | |||||||||||||||||||||||||||||||||||||
18:58
dalek left,
dalek joined,
ChanServ sets mode: +v dalek
18:59
p6bannerbot sets mode: +v dalek
|
|||||||||||||||||||||||||||||||||||||||
stmuk_ | nige: new suggestion emailed! | 19:00 | |||||||||||||||||||||||||||||||||||||
19:03
ExtraCrispy joined,
AlexDaniel left,
AlexDaniel joined,
p6bannerbot sets mode: +v AlexDaniel,
p6bannerbot sets mode: +v ExtraCrispy
19:07
fake_space_whale left
19:17
UTAN_dev17 joined,
p6bannerbot sets mode: +v UTAN_dev17
19:23
UTAN_dev17 left
19:46
hfp joined
19:49
hfp left
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo: samcv++ created pull request #2330: Add a BOM on open for utf16 filehandles |
19:49 | |||||||||||||||||||||||||||||||||||||
19:53
whfsdude26 joined
19:54
p6bannerbot sets mode: +v whfsdude26,
whfsdude26 left
|
|||||||||||||||||||||||||||||||||||||||
lizmat | m: use Test; role A { }; isa-ok A.new, A # that seems wrong to me ? | 20:01 | |||||||||||||||||||||||||||||||||||||
camelia | not ok 1 - The object is-a 'A' # Failed test 'The object is-a 'A'' # at <tmp> line 1 # Actual type: A |
||||||||||||||||||||||||||||||||||||||
lizmat | surely a punned role should match ? | ||||||||||||||||||||||||||||||||||||||
20:02
popeycore joined
|
|||||||||||||||||||||||||||||||||||||||
lizmat | m: role A { }; dd A.new.isa(A # underlying issue | 20:03 | |||||||||||||||||||||||||||||||||||||
camelia | 5===SORRY!5=== Error while compiling <tmp> Unable to parse expression in argument list; couldn't find final ')' (corresponding starter was at line 1) at <tmp>:1 ------> 3{ }; dd A.new.isa(A # underlying issue7⏏5<EOL> |
||||||||||||||||||||||||||||||||||||||
lizmat | m: role A { }; dd A.new.isa(A) # underlying issue | ||||||||||||||||||||||||||||||||||||||
camelia | Bool::False | ||||||||||||||||||||||||||||||||||||||
20:08
popeycore left
20:09
Zoffix joined,
p6bannerbot sets mode: +v Zoffix
|
|||||||||||||||||||||||||||||||||||||||
Zoffix | lizmat: yeah, that bit me once too. There's actually a separate `does-ok` test for testing roles | 20:09 | |||||||||||||||||||||||||||||||||||||
m: use Test; role A { }; does-ok A.new, A | 20:10 | ||||||||||||||||||||||||||||||||||||||
camelia | ok 1 - The object does role 'A' | ||||||||||||||||||||||||||||||||||||||
20:10
pmurias left
20:11
AlexDaniel left,
AlexDaniel joined,
p6bannerbot sets mode: +v AlexDaniel,
Zoffix left
20:12
AlexDaniel left,
AlexDaniel joined,
p6bannerbot sets mode: +v AlexDaniel
|
|||||||||||||||||||||||||||||||||||||||
TimToady | lizmat: you might be interested in playing with nopaste.linux-dev.org/?1185215 | 20:15 | |||||||||||||||||||||||||||||||||||||
it's a .sum method that runs about twice as fast on Rats with limited precision (such as money) | 20:16 | ||||||||||||||||||||||||||||||||||||||
lizmat | TimToady: how would we recognize a List of Rats ? | 20:18 | |||||||||||||||||||||||||||||||||||||
Geth | roast: 78df882612 | (Zoffix Znet)++ | S06-currying/assuming-and-mmd.t [v6.d REVIEW] Test assuming args get passed in right order Orig: github.com/perl6/roast/commit/cd4b22608 |
||||||||||||||||||||||||||||||||||||||
roast: e646ac88ff | (Zoffix Znet)++ | S06-currying/positional.t [v6.d REVIEW] Remove pointless item coercers |
20:19 | ||||||||||||||||||||||||||||||||||||||
TimToady | lizmat: it doesn't, it just tests each one | 20:21 | |||||||||||||||||||||||||||||||||||||
an official list of Rats could omit the individual test | |||||||||||||||||||||||||||||||||||||||
this one's written for a potentially mixed list | |||||||||||||||||||||||||||||||||||||||
lizmat | aaah... ok, get it now | ||||||||||||||||||||||||||||||||||||||
TimToady | and it still runs twice as fast if they actually are all money rats | 20:22 | |||||||||||||||||||||||||||||||||||||
it will probably run a hair slower for Nus | |||||||||||||||||||||||||||||||||||||||
Nums | |||||||||||||||||||||||||||||||||||||||
but maybe if we start seeing Num types we should just bomb out anyway to a pure Num loop | |||||||||||||||||||||||||||||||||||||||
anyway, it's just a prototype, but I thought you might be interested in productizing it :) | 20:23 | ||||||||||||||||||||||||||||||||||||||
lizmat | oh, I'll productize it if you want me to :-) | ||||||||||||||||||||||||||||||||||||||
TimToady | I'd like that, so I can get back to thinking about parsers :) | 20:24 | |||||||||||||||||||||||||||||||||||||
Geth | roast: cab940619e | (Zoffix Znet)++ | S02-names/is_default.t [v6.d REVIEW] Throw out `undefine` tests on defaults This routine is now deprecated. Orig: github.com/perl6/roast/commit/ce1a5a2e6 |
||||||||||||||||||||||||||||||||||||||
patrickb | Should this: `perl6 --output=foo.moarvm --target=mbc foo.p6 && moar --libpath=the-stuff-in-the-perl6-startup-script foo.moarvm` in principle work? | 20:26 | |||||||||||||||||||||||||||||||||||||
lizmat | TimToady: I'll find time for it this Sunday, most likely | 20:27 | |||||||||||||||||||||||||||||||||||||
20:46
pmurias joined,
p6bannerbot sets mode: +v pmurias,
pmurias left
|
|||||||||||||||||||||||||||||||||||||||
MasterDuke | patrickb: i would have thought so | 20:47 | |||||||||||||||||||||||||||||||||||||
20:49
sontek5 joined,
sontek5 left
20:51
pmurias joined,
p6bannerbot sets mode: +v pmurias
20:52
pmurias left
20:56
pmurias joined,
p6bannerbot sets mode: +v pmurias
|
|||||||||||||||||||||||||||||||||||||||
patrickb | I'm still thinking about relocatability. I think there must be some code at run time to determine the rakudo installation folder (and set config<prefix> and config<libdir>). Where should such code go when it's possible to run compiled user code directly? Is there some pre usercode region where stuff can be injected? | 20:57 | |||||||||||||||||||||||||||||||||||||
timotimo | did people get timings for the fib benchmark? i'd expect we're noticeably worse than for example perl, since deep recursions are definitely not our strong suite. | ||||||||||||||||||||||||||||||||||||||
20:59
damnlie_ joined
|
|||||||||||||||||||||||||||||||||||||||
lizmat | timotimo: what I've understood is that the base version achieves parity with Perl 5 for N = 35 | 21:00 | |||||||||||||||||||||||||||||||||||||
so I guess it's worse for Perl 5 ? | |||||||||||||||||||||||||||||||||||||||
21:00
p6bannerbot sets mode: +v damnlie_
|
|||||||||||||||||||||||||||||||||||||||
timotimo | the "base version"? | 21:00 | |||||||||||||||||||||||||||||||||||||
21:01
MasterDuke_ joined
21:02
KenOokamiHoro0 joined,
aalm11 joined
|
|||||||||||||||||||||||||||||||||||||||
lizmat | sub fib($n) { $n <= 1 ?? 1 !! ... } | 21:02 | |||||||||||||||||||||||||||||||||||||
21:02
p6bannerbot sets mode: +v MasterDuke_,
p6bannerbot sets mode: +v KenOokamiHoro0,
p6bannerbot sets mode: +v aalm11
|
|||||||||||||||||||||||||||||||||||||||
MasterDuke_ | timotimo: Perl6 without return ran fib(45) in about 6s, with return in about 14s, perl 5 did it in about 8s (all on my system) | 21:03 | |||||||||||||||||||||||||||||||||||||
timotimo | so perl6 is faster than perl5 in this? | 21:04 | |||||||||||||||||||||||||||||||||||||
lizmat | yes | 21:05 | |||||||||||||||||||||||||||||||||||||
21:05
damnlie_ left,
aalm11 left
|
|||||||||||||||||||||||||||||||||||||||
MasterDuke_ | whoops, fib(35) | 21:05 | |||||||||||||||||||||||||||||||||||||
timotimo | but it's surely slower than the other languages in that set? | ||||||||||||||||||||||||||||||||||||||
patrickb | I think I need to read up on how the start up phase of perl6 works... is there some documentation about that? Some hint where to look first in the code? | 21:06 | |||||||||||||||||||||||||||||||||||||
timotimo | i'd start in nqp's src/HLL/Compiler.nqp | ||||||||||||||||||||||||||||||||||||||
21:06
KenOokamiHoro0 left
|
|||||||||||||||||||||||||||||||||||||||
timotimo | and also src/vm/moar/HLL/Backend.nqp | 21:06 | |||||||||||||||||||||||||||||||||||||
there's also a Perl6/Compiler.nqp inside rakudo's repository, which derives the HLL::Compiler class | 21:07 | ||||||||||||||||||||||||||||||||||||||
21:07
ggoebel joined
|
|||||||||||||||||||||||||||||||||||||||
MasterDuke_ | timotimo: I haven’t timed it with fib(45) yet. of course I also don’t have an identical system | 21:07 | |||||||||||||||||||||||||||||||||||||
timotimo | if you'd like a firehose of information on "where to look", you can set MVM_COVERAGE_LOG=/tmp/foo.txt and that will give you every line that has been hit in the order they were hit in - usually a single line will not be reported twice | 21:08 | |||||||||||||||||||||||||||||||||||||
21:08
p6bannerbot sets mode: +v ggoebel
|
|||||||||||||||||||||||||||||||||||||||
MasterDuke_ | I think now it does report them multiple times | 21:09 | |||||||||||||||||||||||||||||||||||||
ggoebel | ...wondering if TimToady has another Programming Perl(6) book left in him? | 21:12 | |||||||||||||||||||||||||||||||||||||
21:12
pmurias left
|
|||||||||||||||||||||||||||||||||||||||
patrickb | timotimo: Thanks! I'll dig in... | 21:13 | |||||||||||||||||||||||||||||||||||||
timotimo | oh, and there are, or at least used to be, some example compilers in nqp's repository, too | 21:14 | |||||||||||||||||||||||||||||||||||||
21:15
MasterDuke_ left
21:16
MasterDuke_ joined
21:17
p6bannerbot sets mode: +v MasterDuke_
21:18
MasterDuke_ left
21:19
pmurias joined,
p6bannerbot sets mode: +v pmurias
21:20
pmurias left
21:22
xaba joined
21:23
p6bannerbot sets mode: +v xaba
21:24
pmurias joined,
p6bannerbot sets mode: +v pmurias
21:26
pmurias left
21:32
xaba left
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo: 5f3579eb03 | (Elizabeth Mattijsen)++ | src/core/Mu.pm6 Fix false positives of role punning.isa(role) Because the Str candidate would check names, it would create false positives. Fix this by converting the name to a type and then use the normal type check. |
21:57 | |||||||||||||||||||||||||||||||||||||
22:02
Caelum4 joined
22:03
p6bannerbot sets mode: +v Caelum4
|
|||||||||||||||||||||||||||||||||||||||
lizmat | sleep& | 22:06 | |||||||||||||||||||||||||||||||||||||
22:09
Caelum4 left
22:17
Kaiepi joined,
p6bannerbot sets mode: +v Kaiepi
|
|||||||||||||||||||||||||||||||||||||||
Geth | roast: f1db285571 | (Nick Logan)++ | 9 files Decrease search scope for some module lookups Using `use "$roast-dir/foo"` instead of `use "$roast-dir"` saves a lot of useless directory recursion. This is important because we slurp/sha1 every file under a lib, which can become costly if there are many files/folders (especially if they have nothing to do with the module itself). |
23:00 | |||||||||||||||||||||||||||||||||||||
MasterDuke | timotimo: fib(46) took 1290s on my machine for the no-return perl 6 version | ||||||||||||||||||||||||||||||||||||||
Geth | rakudo/cur-candidates: 643 commits pushed by 30 authors review: github.com/rakudo/rakudo/compare/c...99d753c3d7 |
23:02 | |||||||||||||||||||||||||||||||||||||
23:08
patrickb left
23:09
Guest48303 joined
23:10
p6bannerbot sets mode: +v Guest48303
23:11
Guest48303 left
|
|||||||||||||||||||||||||||||||||||||||
Geth | ¦ rakudo: tbrowder self-assigned allow some formatting in pod declarator blocks github.com/rakudo/rakudo/issues/2332 | 23:12 | |||||||||||||||||||||||||||||||||||||
timotimo | MasterDuke: did you run any of the other versions? | 23:19 | |||||||||||||||||||||||||||||||||||||
i mean from other languages | |||||||||||||||||||||||||||||||||||||||
23:54
NinjaTrappeur16 joined
|
|||||||||||||||||||||||||||||||||||||||
MasterDuke | timotimo: perl 5 took 1737s | 23:57 | |||||||||||||||||||||||||||||||||||||
23:58
NinjaTrappeur16 left
|