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