Camelia, the Perl 6 bug

IRC log for #parrot, 2012-02-02

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:26 whiteknight joined #parrot
00:26 whiteknight good evening, #parrot
00:32 cotto hi whiteknight
00:33 whiteknight hey cotto. how you doin'?
00:59 whiteknight I want to get my pcc_ops branch up to date, tested, and merged soon
01:00 whiteknight With that in we can start updating IMCC to generate better ops, and update winxed to generate better call sequences
01:00 whiteknight I want to see what bacek's pcc work is going to change first though
01:06 whiteknight I suspect, from what little I've seen, his work is going to complement what I'm doing nicely and bring massive win
01:07 bacek_at_work whiteknight, it will not unfortunately...
01:08 whiteknight bacek_at_work: what will not?
01:08 bacek_at_work Sub.invoke and a lot GC pressure kills everything
01:08 bacek_at_work repcc will not improve PCC speed
01:08 bacek_at_work pcc_ops will not do it either
01:11 bacek_at_work for example in "fib.pir":
01:11 bacek_at_work 20% time spent in fill_params
01:11 bacek_at_work 20% in build sig object (including GC cost)
01:12 bacek_at_work 30% of time spent in Sub.invoke (including GC cost)
01:14 bacek_at_work whiteknight, https://gist.github.com/1720728
01:14 bacek_at_work this is example of how fast parrot is.
01:14 bacek_at_work Calculating of prime numbers (without Sub calls)
01:15 whiteknight bacek_at_work: what is that third benchmark? How is it so much better?
01:15 whiteknight no PCC
01:15 whiteknight ?
01:15 bacek_at_work INT vs Integer
01:15 bacek_at_work Integer PMC
01:15 bacek_at_work second benchmark create too much GCables
01:15 dngor joined #parrot
01:17 whiteknight we're going to need to make PMC creation cheaper soon
01:17 bacek_at_work how?
01:17 whiteknight I don't know
01:17 whiteknight GC cost really is the biggest part of it
01:17 bacek_at_work me too
01:18 whiteknight CallContext and PCC need to get faster
01:18 whiteknight but maybe we need to clean up some of the logic first
01:19 whiteknight the pcc_ops work does have an improvement on performance. It's not huge but it is something
01:20 bacek_at_work just because you are omitting all checks
01:20 dngor_ joined #parrot
01:20 whiteknight yeah, the checks are unnecessary if we have the information at compile-time
01:21 bacek_at_work add something like "One more hash to store used param names for error reporting" and it will be slower
01:21 bacek_at_work compile time is not enough
01:21 whiteknight of course, but those cases are rare
01:21 bacek_at_work take "hash :flat" vs ".param foo :named" as example
01:22 bacek_at_work with current PCC "promise" we have to check that
01:22 bacek_at_work "hash" has only one key "foo"
01:22 whiteknight yeah, I know. we will still have get_params, we will use it less when we don't need it
01:22 bacek_at_work which means creating hash of used keys
01:22 whiteknight picking when we do and do not use it is important
01:23 bacek_at_work and we try to squeeze it through our crappy VTABLE inferface...
01:23 whiteknight vtables are terrible
01:23 bacek_at_work ~/src/parrot (master) $ time ./parrot examples/benchmarks/primes2_inline.pir
01:23 bacek_at_work N primes calculated to 5000 is 4999
01:23 bacek_at_work last is: 4999
01:23 bacek_at_work real0m0.374s
01:23 bacek_at_work user0m0.352s
01:24 bacek_at_work sys0m0.012s
01:24 bacek_at_work ~/src/parrot (master) $ time ./parrot examples/benchmarks/primes2_i.pir
01:24 bacek_at_work N primes calculated to 5000 is 670
01:24 bacek_at_work last is: 4999
01:24 bacek_at_work real0m0.525s
01:24 bacek_at_work user0m0.372s
01:24 bacek_at_work sys0m0.008s
01:24 bacek_at_work nice one. PCC cost about 30% of time...
01:24 bacek_at_work we have to get rid of current PMC design
01:24 whiteknight that's why I want 6model. It gives us a chance to redesign everything from the bottom
01:24 bacek_at_work we have to get rid of storing raw pointers in PMCs
01:25 whiteknight yes
01:25 bacek_at_work we do need compacting GC with simple bump-pointer allocation
01:25 bacek_at_work we do need simple set of ops to build JIT
01:25 whiteknight you think it's worth the overhead?
01:25 whiteknight the compacting GC?
01:25 bacek_at_work compacting GC should be fast.
01:26 bacek_at_work it's much more cache-friendly
01:26 bacek_at_work or something like immix GC
01:26 bacek_at_work still - raw pointers in PMC are stopping from implementing them
01:26 bacek_at_work no, let me rephrase
01:27 bacek_at_work absence of information about PMC memory layout stopping us
01:27 bacek_at_work because we can't update pointers
01:29 whiteknight right, we can't just update pointers in our current state
01:29 whiteknight we would need all sorts of crazy magic to even attempt it
01:45 whiteknight shit. I hate bootstrap-ops
02:20 Util joined #parrot
02:27 wagle joined #parrot
02:41 benabik joined #parrot
03:25 logie joined #parrot
03:50 dngor joined #parrot
05:17 logie joined #parrot
05:19 logie left #parrot
06:01 jsut joined #parrot
06:01 dngor joined #parrot
06:19 PacoAir joined #parrot
07:06 dngor joined #parrot
07:31 dngor joined #parrot
08:09 dm8 joined #parrot
08:39 dalek parrot/repcc: d57ea95 | bacek++ | lib/Parrot/Pmc2c/PMC.pm:
08:39 dalek parrot/repcc: Fix bug in Pmc2c which always generate WriteBarrier even :manual_wb was specified.
08:39 dalek parrot/repcc: review: https://github.com/parrot/parrot/commit/d57ea9535f
08:44 jsut_ joined #parrot
08:49 mj41 joined #parrot
08:54 bacek aloha, 2_486_014_571
08:54 bacek aloha, 2_486_014_571 / 150_155_435 * 100
08:54 bacek aloha, 2486014571 / 150155435 * 100
08:54 aloha bacek: 1655.62743100175
08:55 bacek aloha, 150155435 / 2486014571 * 100
08:55 aloha bacek: 6.04
08:55 bacek hmm
09:27 lucian joined #parrot
09:48 Psyche^ joined #parrot
09:58 lucian joined #parrot
11:45 dm8 joined #parrot
12:19 dalek nqp/bs: 5deb755 | jnthn++ | src/6model/serialization. (2 files):
12:19 dalek nqp/bs: Refactor serialization code to eliminate a bunch of code duplication and make it more extensible.
12:19 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/5deb7557d0
12:19 dalek nqp/bs: 0deef9b | jnthn++ | src/6model/serialization. (2 files):
12:19 dalek nqp/bs: Similar refactor for deserialization.
12:19 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/0deef9b7cc
13:09 bluescreen joined #parrot
13:34 dngor joined #parrot
14:09 fperrad joined #parrot
14:19 dm8 joined #parrot
14:19 mtk joined #parrot
14:41 PacoAir joined #parrot
15:01 benabik joined #parrot
15:34 PacoAir joined #parrot
15:45 jsut joined #parrot
15:50 dmalcolm joined #parrot
16:28 dalek nqp: 2208373 | jnthn++ | src/QAST/Compiler.nqp:
16:28 dalek nqp: Implement subtype 'fail' of anchors in QAST::Compiler.
16:28 dalek nqp: review: https://github.com/perl6/nqp/commit/220837314e
16:35 dalek rakudo/nom: 6b62395 | jnthn++ | tools/build/NQP_REVISION:
16:35 dalek rakudo/nom: Bump to latest NQP to get <!> fix.
16:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6b6239564f
16:45 benabik joined #parrot
17:55 cotto ~~
17:59 PacoAir joined #parrot
18:15 bluescreen joined #parrot
18:21 bacek joined #parrot
18:29 dalek nqp/bs: 3e5b40c | jnthn++ | t/serialization/02-types.t:
18:29 dalek nqp/bs: First few basic tests for type serialization, just knowhow for now.
18:29 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/3e5b40c5ed
18:30 dalek nqp/bs: fdf9376 | jnthn++ | src/6model/serialization.c:
18:30 dalek nqp/bs: Start stubbing in STable serialization/deserialization.
18:30 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/fdf9376181
18:30 dalek nqp/bs: d82072a | jnthn++ | t/serialization/02-types.t:
18:30 dalek nqp/bs: Simplify initial type serialization test - use the P6int REPR (P6opaque is needier).
18:30 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/d82072a943
18:30 dalek nqp/bs: 23841b2 | jnthn++ | src/6model/reprs/KnowHOWREPR.c:
18:30 dalek nqp/bs: Implement serialize/deserialize REPR functions for KnowHOWREPR.
18:30 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/23841b26cd
18:30 dalek nqp/bs: ad6c86b | jnthn++ | src/6model/serialization.c:
18:30 dalek nqp/bs: Make sure we create STables that are properly initialized when deserializing.
18:30 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/ad6c86b14d
18:30 dalek nqp/bs: f3156d5 | jnthn++ | t/serialization/02-types.t:
18:30 dalek nqp/bs: Oops, correct test count.
18:30 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/f3156d50ad
18:30 dalek nqp/bs: 3e8a06a | jnthn++ | src/6model/knowhow_bootstrapper.c:
18:30 dalek nqp/bs: A KnowHOW really should publish a type check cache, so it at least matches itself.
18:30 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/3e8a06a5a8
18:30 dalek nqp/bs: 54ce490 | jnthn++ | src/6model/serialization.c:
18:30 dalek nqp/bs: Serialization/deserialization of type check caches.
18:30 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/54ce49048b
18:31 mj41 joined #parrot
19:07 dalek rakudo/nom: acbec86 | moritz++ | tools/build/NQP_REVISION:
19:07 dalek rakudo/nom: fix NQP_REVISION
19:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/acbec86cab
19:11 particle left #parrot
19:12 particle joined #parrot
19:19 davidfetter joined #parrot
19:46 lucian joined #parrot
20:27 bluescreen joined #parrot
20:46 dmalcolm joined #parrot
21:02 davidfetter joined #parrot
21:55 contingencyplan joined #parrot
21:55 bluescreen joined #parrot
22:04 GodFather joined #parrot
22:06 dalek nqp/bs: d638979 | jnthn++ | t/serialization/02-types.t:
22:06 dalek nqp/bs: Add a test case for serializing a P6opaque based type with knowhow meta-object; it has a single attribute.
22:06 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/d638979c1b
22:06 dalek nqp/bs: 5d153d9 | jnthn++ | src/6model/serialization.c:
22:06 dalek nqp/bs: Should not try to serialize body of type objects, as they don't have one.
22:06 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/5d153d991a
22:06 dalek nqp/bs: 8b5594d | jnthn++ | src/6model/s (2 files):
22:06 dalek nqp/bs: Add hook for REPR data serialization/deserialization.
22:06 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/8b5594db44
22:06 dalek nqp/bs: ea75288 | jnthn++ | src/6model/serialization.c:
22:06 dalek nqp/bs: Remove unused variable to get rid of a warning.
22:06 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/ea752883b8
22:06 dalek nqp/bs: 4df246b | jnthn++ | src/6model/s (3 files):
22:06 dalek nqp/bs: Add write/read functions for serializing references to STables.
22:06 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/4df246bc7d
22:06 dalek nqp/bs: 2b2818f | jnthn++ | src/6model/reprs/P6opaque.c:
22:06 dalek nqp/bs: Get serialization and much of the deserialization (minus the derived info we'll re-calculate) in place for the P6opaque REPR data. Gets the P6opaque-based type with attribute tests passing.
22:06 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/2b2818fa80
22:34 davidfetter joined #parrot
23:01 PacoAir joined #parrot
23:03 davidfetter joined #parrot

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced