|
Topic for #parrot is: Parrot 3.3.0 released | parrot.org | Log: irclog.perlgeek.de/parrot/today Set by moderator on 20 April 2011. |
|||
|
00:09
bbatha left
00:14
bbatha joined
00:17
bbatha left
00:24
Eduardow joined
00:31
mikehh joined
00:49
Eduardow left,
redicaps joined
00:52
Eduardow joined
|
|||
| dalek | TT #1230 closed by plobsing++: src/pmc/eval.pmc: Walk the fixups, locate globals and nullify the Sub PMC | 00:54 | |
| TT #1230: trac.parrot.org/parrot/ticket/1230 | |||
|
01:05
Eduardow left
01:07
whiteknight joined
|
|||
| dalek | TT #2100 created by soh_cah_toa++: Automate the release process | 01:09 | |
| TT #2100: trac.parrot.org/parrot/ticket/2100 | |||
|
01:13
Eduardow joined
01:19
bbatha joined
01:34
rdesfo joined
01:39
rdesfo left,
Eduardow left,
bbatha left
|
|||
| dalek | rrot: 1a7e92a | (Gerd Pokorra)++ | docs/parrothist.pod: apply stable identification to 3.3 release |
01:43 | |
|
01:44
Eduardow joined
02:05
whiteknight left
02:10
petdance joined
02:11
dafrito left
|
|||
| dalek | rrot/tt1931-nci-parameters-deprecation: 431a52c | plobsing++ | / (3 files): eliminate tests for removed "t" nci signature functionality (or modify to avoid where possible) |
02:21 | |
| rrot/tt1931-nci-parameters-deprecation: a608e9a | plobsing++ | src/nci/extra_thunks. (2 files): eliminate deprecated "B" nci signature from extra thunklib |
02:22 | ||
| rrot/tt1931-nci-parameters-deprecation: d818fb5 | plobsing++ | / (3 files): remove support for deprecated "B" nci signature |
|||
| rrot/tt1931-nci-parameters-deprecation: 6c38adc | plobsing++ | / (4 files): eliminate unnecessary special treatment of "O" NCI type (handled implicitly by PCC) |
|||
|
02:38
mrwall-e left
02:51
redicaps left
03:37
woosley joined
03:40
soh_cah_toa left
|
|||
| dalek | rrot: ee53d0b | petdance++ | runtime/parrot/library/Stream/ (2 files): removed embedded tabs |
03:46 | |
| rrot: 56ed657 | petdance++ | runtime/parrot/library/NCI/Utils.pir: removed embedded tabs |
|||
| rrot: 68ee5a9 | petdance++ | runtime/parrot/library/ (7 files): Change the search.cpan.org URLs to use the more permanent /dist/-based path, rather than tying them to a specific author |
|||
|
03:53
ShaneC left
03:59
hudnix left
04:13
ShaneC joined
04:26
bubaflub left
04:41
woosley left
04:51
bacek left
05:01
petdance left
05:05
jrt4 joined
05:08
jrt4__ left
05:17
Khisanth left
05:19
theory left
05:29
Khisanth joined
05:36
jrt4 left
|
|||
| cotto | ~~ | 05:54 | |
| dukeleto | ~~ | 06:12 | |
|
06:17
jrtayloriv joined
06:19
redicaps joined,
redicaps left
06:20
redicaps joined,
redicaps left
|
|||
| dalek | rrot/leto/embed_grant: 254bb2d | dukeleto++ | t/src/extend_vtable.t: [t] Parrot_PMC_defined_keyed |
07:00 | |
|
07:01
mj41 joined
|
|||
| dalek | rrot/leto/embed_grant: 6d018dd | dukeleto++ | t/src/extend_vtable.t: [t] Parrot_PMC_defined_keyed_str |
07:02 | |
| rrot/leto/embed_grant: f0346a2 | dukeleto++ | t/src/extend_vtable.t: [t] Parrot_PMC_delete_keyed_str |
07:05 | ||
|
07:11
bacek joined
07:15
ShaneC1 joined
07:17
rblackwe_ left,
rblackwe joined
07:18
kthakore left,
kthakore joined,
simcop2387_ joined,
ShaneC left,
simcop2387 left,
simcop2387_ is now known as simcop2387
|
|||
| dalek | rrot/leto/embed_grant: 9bb2660 | dukeleto++ | t/src/extend_vtable.t: [t] Parrot_PMC_does_pmc |
07:27 | |
|
07:31
dodathome joined
|
|||
| dalek | rrot/leto/embed_grant: 0e4f51f | dukeleto++ | t/src/extend_vtable.t: [t] Parrot_PMC_get_pmc_keyed_str |
07:33 | |
| rrot/leto/embed_grant: 75e32d3 | dukeleto++ | t/src/extend_vtable.t: [TT ##2098] Use a non-empty hash key to prevent: failed assertion 'key' |
07:38 | ||
|
07:40
atrodo left
|
|||
| dalek | parrot: bf9ab0d | leto++ | Makefile: Grab a sha1 instead of a revision and print it |
08:18 | |
|
08:33
mj41 left
08:53
mj41 joined
09:01
mj41 left
09:37
dodathome left
09:41
BloodyCoin left,
BloodyCoin joined
10:06
woosley joined
10:15
bacek left
10:18
lucian joined
10:21
mj41 joined
10:27
ambs joined
10:45
dafrito joined
10:55
bacek joined
10:56
bacek left,
bacek joined
11:17
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 11:18 | |
| blog.mozilla.com/dmandelin/2011/04/...ript-2011/ | 11:27 | ||
|
11:39
hudnix joined
11:43
mj41 left
11:46
tewk joined
11:51
lucian_ joined,
ambs left
11:54
lucian__ joined
11:56
lucian left
11:57
Patterner left
|
|||
| dalek | rrot-linear-algebra: e6263ab | Whiteknight++ | t/testlib/testcontext.nqp: add in testcontext file, which I forgot |
11:57 | |
|
11:57
Psyche^ joined,
Psyche^ is now known as Patterner
11:58
lucian_ left
12:03
jrtayloriv left
12:09
ambs joined
12:15
Patterner left
12:16
Psyche^ joined,
Psyche^ is now known as Patterner
12:19
kid51 joined
12:21
bacek left
12:24
lucian__ is now known as lucian
|
|||
| dalek | rrot: 7413e30 | jkeenan++ | t/src/extend_vtable.t: Applied to master patch previously applied to 'Parrot_PMC_defined_keyed_str' test in the same way other tests had been corrected. Now all tests PASS on Darwin/PPC. |
12:44 | |
| TT #2098 closed by jkeenan++: t/src/extend_vtable.t: test failures on Darwin/PPC with --gc=ms2 | 13:04 | ||
| TT #2098: trac.parrot.org/parrot/ticket/2098 | |||
| kid51 | Wow! First PASS on Darwin/PPC in weeks: smolder.parrot.org/app/projects/rep...ails/15348 | 13:36 | |
| tadzik | oh, kid51 | ||
| ipv6 capabilities are misdetected on my linux box | 13:37 | ||
| gentoo, amd64 | |||
| dukeleto told me you're the one who wrote the checks | |||
| kid51 | Have you file a TT about this? | 13:38 | |
| If not, please do so. | |||
| tadzik | okay, will do | ||
| kid51 | However, in any event, I have no particular knowledge about ipv6. | ||
| IIRC, someone else wrote (or pasted) the C probe which is the essence of the test. I probably only write the Perl around it so that the test looked like all other config/auto/*.pm probes. | 13:39 | ||
| Confirmed: there's nothing of interest in config/auto/ipv6.pm per se. | 13:40 | ||
| config/auto/ipv6/test.in is where we have to look. | |||
| When you create that TT, cc nwellnhof about that. From git blame, it looks like he wrote the crucial parts of the probe. | 13:42 | ||
| kid51 added whitespace and a vim coda! | |||
| tadzik | I can look into that myself | 13:47 | |
| dalek | sella: 3aa3589 | Whiteknight++ | setup.winxed: fix setup so we can cut an sdist release |
13:48 | |
| sella: f517965 | Whiteknight++ | / (2 files): update README to include information about the release. Make sure the winxed library generates winxed.pbc, not winxed_distutils.pbc |
|||
| sella: 0ab2e93 | Whiteknight++ | README.md: this is Rosella version 1 |
|||
| kid51 | tadzik: 'man ipv6' looks like a good place to start | 13:50 | |
|
13:51
whiteknight left
|
|||
| tadzik | kid51: I just examine this C code and it indeed works for my system, getaddrinfo() works with no errors as if everything was fine | 13:52 | |
| socket(AF_INET6) however, returns -1 on my machine | 13:53 | ||
| so I can open a ticket for this, write a new test in a branch and ask everyone to test it, that's the workflow, right? | |||
| kid51 | Exactly. | 13:54 | |
| tadzik | the old test is funny, for it prints "OK" disregarding what getaddrinfo() returns | ||
| kid51 | As Andy would say, "Patches welcome!" | ||
| However, as +40 config/auto/ipv6.pm shows, many of our config probes check for both absence of an error message and presence of OK on STDOUT | 13:57 | ||
| So in test_c.in, the printf of OK probably needs to be made conditional upon the return value of getaddrinfo() | |||
| 'man getaddrinfo' also looks interesting for this | 13:59 | ||
| tadzik | getaddrinfo returns 0 anyway, as I described in the ticket | 14:02 | |
| socket() returns -1 though, so I'm going to rewrite that test to use socket() | |||
| okay, so how do I recompile this test.in? | 14:03 | ||
| nopaste | "kid51" at 192.168.1.3 pasted "config/auto/ipv6/test.in: Use return value of getaddrinfo()." (18 lines) at nopaste.snit.ch/41617 | ||
| tadzik | not needed it seems | ||
| auto::ipv6 - Determine IPV6 capabilities..........................no. | 14:04 | ||
| achievement unlocked! | |||
| pushing to a branch | |||
| kid51: as I said, it returns 0 on my system | |||
| kid51 | config/auto/ipv6.pm handles all the C run details | ||
| which? socket or getaddrinfo | 14:05 | ||
| benabik | tadzik: Achievement Unlocked: IPvWhat? "Nobody'll need more than 4 million addresses anyway." | ||
| dalek | TT #2101 created by tadzik++: Broken ipv6 detection on Gentoo linux | 14:06 | |
| TT #2101: trac.parrot.org/parrot/ticket/2101 | |||
| tadzik | kid51: getaddrinfo(). socket() returns -1 | ||
| lolipushed | |||
| dalek | rrot/tadzik/tt-2101-fix: 8b4e11c | tadzik++ | config/auto/ipv6/test.in: Rewrite the ipv6 detection test to use socket() |
||
| kid51 | Run: perl Configure.pl --verbose-step=auto::ipv6 | ||
| tadzik | please test if this works for you alright | ||
| kid51: on which branch? | 14:07 | ||
| kid51 | tadzik: Either. I'm just pointing out that you can get debugging output for a particular configuration step by calling --verbose-step=auto::ipv6 | 14:09 | |
| tadzik | kid51: I'll look into that | ||
| well, as much as I can read from that the old test is broken indeed | 14:10 | ||
| anyway, I have no idea how it should work. C has no die() or anything, so that test would print "OK" whatever happens. Unless there is some assert() or something in getaddrinfo() but I highly doubt it :) | 14:11 | ||
|
14:11
woosley left
|
|||
| kid51 | tadzik: That patch compiles on my Linux box and detects ipv6. | 14:12 | |
| tadzik | kid51: good. Can you state that in the TT? | ||
| kid51 | However, I think we should discuss that with nwellnhof before applying to master. He obviously was allowing for Win32 differences, etc. | 14:13 | |
| benabik | tadzik: Also appears to work on Darwin/i386 | 14:14 | |
| tadzik | those Win32 things seemed to be getaddrinfo() specific, but I don't know much about windowses, so maybe it needs some magic for socket() too | ||
| benabik: cool. Could you comment that ticket too? | |||
| benabik | tadzik: Of course. :-) | ||
| tadzik | thanks | ||
| I'm afk for some time now | |||
|
14:22
JimmyZ joined
|
|||
| kid51 | seen nwellnhof | 14:29 | |
| aloha | nwellnhof was last seen in #parrot 8 days 20 hours ago joining the channel. | ||
|
14:38
kid51 left
15:18
JimmyZ left
15:19
JimmyZ joined
15:21
theory joined
15:29
JimmyZ left
16:04
lucian_ joined
16:08
lucian left
16:31
rohit_nsit08 joined
16:50
birdwindupbird joined
|
|||
| tadzik | I'm back | 16:58 | |
|
17:03
rohit_nsit08 left,
rohit_nsit08 joined
17:10
rohit_nsit08 left,
hudnix left
17:12
rohit_nsit08 joined
17:14
mj41 joined
17:39
S_Arms joined
17:43
BloodyCoin left
17:49
S_Arms left
17:57
S_Arms joined
17:58
soh_cah_toa joined
18:06
rohit_nsit08 left
18:08
birdwindupbird left
|
|||
| dalek | p/ctmo: d59b19a | jonathan++ | src/ (3 files): Pass along current view of $*GLOBALish to module loader. Needs to be optional param now until we take another trip around the bootstrapper. |
18:10 | |
| p/ctmo: 22efd68 | jonathan++ | src/stage0/ (6 files): Update bootstrap. |
|||
| p/ctmo: 184a976 | jonathan++ | src/ModuleLoader.pm: The dumbest GLOBAL merger that could possibly work (TM). Seems it actually will handle what NQP needs - or at least, it doesn't complain about anything. |
|||
| p/ctmo: 2882b8e | jonathan++ | src/ModuleLoader.pm: Make sure multiple uses of the same module won't run into issues. |
|||
| p/ctmo: e46af01 | jonathan++ | src/ModuleLoader.pm: A symbol can never conflict with itself. |
|||
| p/ctmo: 57da2ce | jonathan++ | src/NQP/Actions.pm: Extend find_lex, which finds a compile-time known lexical, to find_sym, which knows how to look in packages too. |
|||
| p/ctmo: 772f1f5 | jonathan++ | src/HLL/SerializationContextBuilder.pm: Fix a thinko. |
|||
|
18:16
rohit_nsit08 joined
18:25
Eduardow left
18:32
theory left
18:36
ShaneC1 left
18:47
whiteknight joined
18:49
ShaneC joined
18:50
bubaflub joined
|
|||
| whiteknight | good afternoon, #parrot | 19:10 | |
| tadzik | good evening whiteknight | ||
| whiteknight | how are you doing today tadzik ? | ||
| tadzik | whiteknight: not bad. Looking around in the Java world | 19:11 | |
| whiteknight | did you ever get a prognosis on your wrist? | ||
| tadzik | somewhat. They removed my cast, looked at the hand, "oh, looks fine", and I'm free now | 19:12 | |
| it still misses some functionalities (rapid moves, funny angles), but works quite good | |||
| whiteknight | okay, that's better than it could be | 19:13 | |
| just treat it gingerly | |||
|
19:13
rohit_nsit08 left
|
|||
| tadzik | yeah, I'm taking care | 19:15 | |
| plobsing | whiteknight: does your recent IMCC work fix TT #1610? | 19:19 | |
| whiteknight | plobsing: I don't know, let me take a look | ||
| I think that ticket may be invalid now | 19:20 | ||
| IMCC doesn't pass errors through that string anymore | |||
| exceptions are caught by the next available handler | |||
| dalek | rrot-instrument: 5fc6951 | Whiteknight++ | src/dynpmc/instrument.pmc: initial_pf -> current_pf, following the packfile_wrap merge |
||
|
19:23
mj41 left
|
|||
| dalek | rrot/tt1931-nci-parameters-deprecation: 74b5665 | plobsing++ | / (4 files): use positive values for PARROT_DATA_TYPE Negative values were used to support multi-dispatch. This code smell has been moved closer to the source and will eventually be eliminated. |
19:24 | |
| rrot/tt1931-nci-parameters-deprecation: 22c5c84 | plobsing++ | / (3 files): add ref_flag to native type system to denote pass-by-reference |
|||
| rrot/tt1931-nci-parameters-deprecation: f2268bb | plobsing++ | / (7 files): eliminate nci_sig_elem_t, unifying NCI and StructView with PARROT_DATA_TYPE specifications |
|||
| rrot/tt1931-nci-parameters-deprecation: 4e962eb | plobsing++ | src/nci/extra_thunks. (2 files): eliminate deprecated pass-by-reference types from extra thunklib |
|||
| rrot/tt1931-nci-parameters-deprecation: 23f7de0 | plobsing++ | src/nci/ (2 files): remove support for deprecated "2", "3", "4", and "V" nci signature types |
|||
| rrot/tt1931-nci-parameters-deprecation: 858f6ce | plobsing++ | / (3 files): eliminate tests for removed NCI signature types |
|||
| rrot/tt1931-nci-parameters-deprecation: 21f81fb | plobsing++ | tools/dev/nci_thunk_gen.pir: remove deprecated types from thunk generator |
|||
| rrot/tt1931-nci-parameters-deprecation: cf941a9 | plobsing++ | config/gen/opengl.pm: avoid generating unsupported signatures |
|||
| p/ctmo: c15d820 | moritz++ | build/Makefile.in: [build] fix whitespaces in Makefile.in |
|||
|
19:25
theory joined
19:35
bacek joined
19:51
wagle left
19:52
wagle joined
|
|||
| dalek | p/ctmo: da7760a | jonathan++ | src/ (3 files): Add a --module-path option so we can make sure we load the correct module during the bootstrap. |
20:09 | |
| p/ctmo: e67c854 | jonathan++ | build/Makefile.in: Build Regex.pbc in the stages, like everything else. Also add a bunch of dependencies to try and get things a bit more honest. May go some way to helping the parallel build also. |
|||
|
20:19
SHODAN left
20:20
wagle left
|
|||
| dalek | sella/test_asserter: 6bba47e | Whiteknight++ | src/test/TestFactory.winxed: fix asserter so it actually works now |
20:28 | |
| sella/test_asserter: 333957d | Whiteknight++ | src/test/Asserter.winxed: remove debugging statements |
|||
| sella/test_asserter: b64e098 | Whiteknight++ | src/test/Asserter.winxed: +comments about what Asserter is |
|||
| Heuristic branch merge: pushed 200 commits to nqp/match-nom by jnthn | 20:32 | ||
| rrot-instrument: 4e61e4a | Whiteknight++ | src/dynpmc/instrumentgc.pmc: fix instrument.t to pass tests |
20:33 | ||
| whiteknight | blah. Somewhere along the line Parrot-Instrument is corrupting the memory pools | 20:42 | |
| and it's not just doing it on GMS, it's also doing it on MS2 | |||
| so I have no idea what the hell is going on with that | 20:43 | ||
| dalek | p/match-nom: b39657f | jonathan++ | / (5 files): Various twiddles to bring that was done in the original match-nom branch up to date with the latest changes in ctmo. |
20:49 | |
| soh_cah_toa | whiteknight: yay, gsoc hasn't even begun and already my project has bugs. whoopie! | 20:50 | |
|
20:51
theory left
|
|||
| whiteknight | soh_cah_toa: yeah, we don't want to get your hopes up | 20:56 | |
| soh_cah_toa: if it were easy, there would be no money involved | |||
| soh_cah_toa | whiteknight: yeah, i'm prepared for some resistance though | 20:57 | |
| whiteknight: 330 ohms to be exact | |||
| whiteknight: all part of the learning process, i suppose | 20:58 | ||
| whiteknight | don't worry. One way or another Parrot-Instrument will be fixed and working soon | 21:12 | |
| dalek | p/match-nom: 6677389 | jonathan++ | src/Regex/Cursor-builtins.pir: Restore some DEBUG capabilities. |
||
| p/match-nom: e886b7e | jonathan++ | src/Regex/Match.pir: Fix a probable copy-pasto. Also toss some useless :vtable declarations - we set those up via the meta-object now. |
|||
| whiteknight | I don't have a goat to sacrifice to the gods of debugging yet, but I found an interested seller on craigs list | ||
|
21:13
jrtayloriv joined
|
|||
| whiteknight | I've got chickens of course, but the GDB gods don't like poultry as much | 21:13 | |
| soh_cah_toa | i should have included that in my proposal: "week 3 - sacrifice mentor to the gods of debugging" | 21:16 | |
|
21:16
ambs left
21:17
ShaneC left
|
|||
| whiteknight | blah. I just configured with --no-line-directives, and there are clearly #line directives in the imccompiler.c file | 21:18 | |
| clearly | |||
| realclean, reconfigure, rebuild, and they are clearly still there | |||
| msg kid51 I just configured with --no-line-directives (realclean, reconfigure, rebuild) and there are many #line directives in src/pmc/*.c on my system | 21:20 | ||
| aloha | OK. I'll deliver the message. | ||
| plobsing | I hate it when that happens. I've been tempted on more than one such occasion to simply remove #line-directive support from pmc2c | 21:23 | |
| whiteknight | I posted a ticket about it, and the ticket was closed | 21:24 | |
| I would *love* if pmc2c was mangled to remove #line directives | 21:25 | ||
|
21:25
rohit_nsit08 joined
|
|||
| whiteknight | they are absolutely useless and even counter-productive when debugging | 21:25 | |
| rohit_nsit08 | whiteknight: hi | 21:26 | |
| whiteknight | hello rohit_nsit08 | ||
| plobsing: actually, unless you are already in the middle of it, I'm going to make that change right now | 21:32 | ||
| plobsing | whiteknight: nah. I'm knee deep in NCI ATM | 21:33 | |
| whiteknight | plobsing: oh, anything fun? | ||
| plobsing | well, if you're looking for goodies, I'm implementing a more generic replacement call-by-reference mechanism | ||
| otherwise, it is mostly rip-out and patch-up | 21:34 | ||
| whiteknight | nice, sounds fun | 21:35 | |
| I'm always looking for goodies, and I know you always deliver :) | |||
|
21:38
theory joined
|
|||
| whiteknight | plobsing: I want to get to work on some of the serialization needs of Rakudo soon, I don't know what your schedule is | 21:38 | |
| dalek | rrot: 6eb1def | Whiteknight++ | / (19 files): fix conflict |
||
| rrot: 327b110 | Whiteknight++ | lib/Parrot/Pmc2c/Emitter.pm: remove #line directives from pmc2c. They serve no positive purpose that I can think of, they make debugging significantly more difficult, and they don't always disappear when I configure with --no-line-directives |
|||
| rrot: 1cd8ab2 | Whiteknight++ | t/src/extend_vtable.t: Merge branch 'master' of github.com:parrot/parrot |
|||
| plobsing | whiteknight: I've been out of parrot for a couple of weeks. Has that issue become a pressing one? | ||
| I was going to cleanup the NCI deprecations and implement some new features, but I can finish this off and move on to that. | |||
| whiteknight | plobsing: no more pressing than it has been. There was a thread on the p6 list a few days ago complaining about bytecode size, and some people blamed it on Parrot's inferior serialization technologies | ||
| plobsing: what new features? | 21:40 | ||
| dalek | p/match-nom: 48e3d16 | jonathan++ | src/HLL/Grammar.pm: We don't implement the string-returning keyed variants of the v-table yet; just work around that, since the values for now are all stored boxed anyway, so it doesn't matter to much where we unbox. |
||
| p/match-nom: ad848d0 | jonathan++ | src/ops/nqp.ops: Make sure we really do consider all available Parrot v-table indexes when building the overloads array; we missed some off the end. |
|||
| plobsing | hmmm... I'm not on the p6 list. | ||
| p/match-nom: 8b9383f | jonathan++ | src/pmc/sixmodelobject.pmc: Make unshift_pmc and push_pmc overridable. |
|||
| p/match-nom: af53a9b | jonathan++ | src/core/NQPCapture.pm: Override unshift_pmc and push_pmc in NQPCapture. |
|||
| plobsing | whiteknight: can you FWD: me the convo? | ||
| whiteknight | plobsing: yessir | ||
| jnthn__ | I suspect it may be the op stream so much as the object serialization, fwiw. | 21:41 | |
| plobsing | new NCI features: general-purpose call-by-ref, long long, u?int64, long double | 21:42 | |
| jnthn__ | ooh :) | ||
| plobsing++ | |||
| whiteknight | plobsing: www.nntp.perl.org/group/perl.perl6....g1504.html | ||
| that's the thread, you can see all the responses | 21:43 | ||
| I don't know why the pbc file sizes are so large. I haven't looked into it myself | |||
| 10 MB does seem exorbitant | |||
| but then again, we aren't optimizing, aren't doing any kind of dead code elimination, etc | |||
| plobsing | chromatic did a comparison of runtime sizes of rakudo vs. perl5. once you factor in the added functionality, the disparity decreases. | 21:44 | |
| I suspect the on-disk size is much the same | |||
| whiteknight | Still, 10MB of bytecode for the Rakudo compiler does seem like a hell of a lot | ||
| somewhere along the line, somebody is being wasteful | |||
| as much as I would love to blame the rakudo folks and wash my hands of it, I think it would be better to do some due-diligence and explore | 21:45 | ||
| jnthn__ | I'm sure Rakudo take some of the blame. OTOH, the fact that the bytecode file doubles in size when you're on a 64-bit machine, or that we have ops that could easily be represented in 16 bits but use 32 or 64 bits for them, is part of the issue, I suspect. | 21:49 | |
| plobsing | there is some cost in the excessive size of ops themselves. If we provided dedicated routines for serialization/deserialization of INTVALS (in stead of depending on sizeof opcode_t == sizeof INTVAL), we could reduce opcode_t to uint16. | 21:50 | |
| jnthn__ | Well, maybe not doubles, but along those lines. | ||
| whiteknight | yes, cutting opcode_t down to uint16 would have an immediately beneficial impact on all target machines | ||
| would we lose tons of performance doing INTVAL lookups instead of including them directly in the opstream? | 21:51 | ||
| plobsing | whiteknight: yes, but not as much as you might think. most of the size of perl6.pbc is locked away in the constants table, which would remain unaffected. | ||
| whiteknight | is it really most of the size? | ||
| is there an easy way to get size measurements? | |||
| plobsing | whiteknight: those dispatches would be branch predicted and effectively cost-free | ||
| whiteknight: when I reduced the cost of complex object graphs, perl6.pbc reduced in size by 2/3 | 21:52 | ||
| that was *entirely* a consttable improvement | |||
| every sub, every namespace, every pcc call, they're all constants | 21:53 | ||
| whiteknight | oi vey | ||
| and I know Rakudo uses three buttloads of subs | |||
| plobsing | subs are *very* heavy | 21:54 | |
| dalek | rrot: a4f3037 | petdance++ | src/pmc/boolean.pmc: quiet an unused interp warning |
||
| rrot: 8906192 | petdance++ | src/pmc/iterator.pmc: quiet an unused interp warning |
|||
| whiteknight | jnthn__: I wanted to ask you, why can't the core.pm compilation be broken down into individual files and compiled separately | 21:56 | |
| ? | |||
| jnthn__: I don't think that would make the build any faster, but the user would get more progress indication | |||
| plobsing | every sub references { a namespace pmc, a multisig pmc, an outer sub pmc, a lexinfo pmc, start offset integer, end offset integer, flags integer, a name string, a method name string, a namespace entry string, an hll id name string, a compilation flags integer, a vtable index, 4 registure use integers, and a subid integer } | 21:57 | |
| whiteknight | oh, okay. So that's clearly a big FAIL in terms of space-efficiency | 21:58 | |
| plobsing | only accounting for the size of the reference (not the backing store for the refered object), that is 18 words (72 bytes 32-bit, 144 bytes 64-bit) | 21:59 | |
| jnthn__ | whiteknight: The issue is that it's not just a module of classes, but rather it forms the outer lexical scope of the program, and needs to be a single lexical scope. It's tricky to find a way to do that when it's multiple compilation units in size. | 22:00 | |
| s/in size// | 22:01 | ||
| plobsing | and then there is the innefficiency of strings storage in PBC. every string is aligned to an opcode_t offset. most strings are less than 8 bytes, so inefficient on 64-bit. if we stored all the strings together, we could pack them much more tightly. | ||
| in fact, we store almost all of our strings in a single strings-table subsection of the const-table, so we're already mostly there. | 22:02 | ||
| to make the strings improvement (likely the simplest), I would rewrite PBC serialization to work in terms of ropes in stead of streams. | 22:04 | ||
| we could eliminate half ot the ImageIO types at the same time. | 22:05 | ||
|
22:08
wagle joined,
wagle left
|
|||
| dalek | p/match-nom: af16e75 | jonathan++ | src/core/NQPCapture.pm: Implement .list and .hash on NQPCapture. |
22:08 | |
| p/match-nom: 354eff8 | jonathan++ | src/HLL/Grammar.pm: Fix an earlier fix. D'oh. |
|||
|
22:10
wagle joined,
wagle left
|
|||
| plobsing | the thing is, though, that this on-disk size cost does not translate significantly into startup time costs or memory-usage costs | 22:17 | |
| well the heavy-weight-subs thing also costs in terms of memory, but mostly no | |||
| we read the PBC in a linear fashion, so any half-smart OS will prefetch the pages. the pages are read-only-clean, and can be shared between arbitrarily many rakudo processes. | 22:18 | ||
|
22:19
wagle joined
|
|||
| sorear | how much of the PBC data has to be copied to be used? | 22:20 | |
| my understanding is that the point of the PBC format was that it *didn't* have to be read on startup *at all* | |||
| dalek | p/match-nom: 15a19ea | jonathan++ | src/core/NQPCapture.pm: Unfortunately, we rely on the semantics of Capture returning PMCNULL; mimic that for now in NQPCapture. This is the last bug that stood in the way of NQP completely building on match-nom. No test regressions either! No speed win, though that's not entirely surprising at this point - there's several known sub-optimalities. moritz++ for most of the work on match-nom. |
||
| plobsing | the object graph needs to get built. there are basically 4 kinds of thing in PBC - integer, float, buffer, and reference. only buffers (mostly strings and bytecode) aren't copied. | 22:25 | |
| fortunately, those tend to constitute most of PBC. | 22:26 | ||
| dalek | p/ctmo: 05aa5ed | jonathan++ | / (117 files): Merging ctmo into match-nom. |
||
| p/ctmo: b39657f | jonathan++ | / (5 files): Various twiddles to bring that was done in the original match-nom branch up to date with the latest changes in ctmo. |
|||
| p/ctmo: 6677389 | jonathan++ | src/Regex/Cursor-builtins.pir: Restore some DEBUG capabilities. |
|||
| p/ctmo: e886b7e | jonathan++ | src/Regex/Match.pir: Fix a probable copy-pasto. Also toss some useless :vtable declarations - we set those up via the meta-object now. |
|||
| p/ctmo: 48e3d16 | jonathan++ | src/HLL/Grammar.pm: We don't implement the string-returning keyed variants of the v-table yet; just work around that, since the values for now are all stored boxed anyway, so it doesn't matter to much where we unbox. |
|||
|
22:26
rohit_nsit08 left
|
|||
| p/ctmo: ad848d0 | jonathan++ | src/ops/nqp.ops: Make sure we really do consider all available Parrot v-table indexes when building the overloads array; we missed some off the end. |
|||
| p/ctmo: 8b9383f | jonathan++ | src/pmc/sixmodelobject.pmc: Make unshift_pmc and push_pmc overridable. |
|||
| p/ctmo: af53a9b | jonathan++ | src/core/NQPCapture.pm: Override unshift_pmc and push_pmc in NQPCapture. |
|||
| p/ctmo: af16e75 | jonathan++ | src/core/NQPCapture.pm: Implement .list and .hash on NQPCapture. |
|||
| p/ctmo: 354eff8 | jonathan++ | src/HLL/Grammar.pm: Fix an earlier fix. D'oh. |
|||
| p/ctmo: 15a19ea | jonathan++ | src/core/NQPCapture.pm: Unfortunately, we rely on the semantics of Capture returning PMCNULL; mimic that for now in NQPCapture. This is the last bug that stood in the way of NQP completely building on match-nom. No test regressions either! No speed win, though that's not entirely surprising at this point - there's several known sub-optimalities. moritz++ for most of the work on match-nom. |
|||
| jnthn__ | Aww, I didn't write enough patches in the branch to trigger the branch merge heuristic. | ||
| plobsing | wouldn't you look for commits with multiple parents (rather than a lot of commits) to detect a branch merge? | 22:28 | |
| whiteknight | it's not a "branch merge" heuristic so much as a "don't flood the damn IRC channel" heuristic | 22:29 | |
| it's just pooly named | |||
| poorly* | |||
| plobsing | ah | ||
| dalek | p/ctmo: dccac63 | jonathan++ | src/stage0/ (7 files): Update bootstrap. |
22:32 | |
|
22:43
rohit_nsit08 joined
|
|||
| whiteknight | "Since I lost my organ of hearing and my doctors wrote to | 22:51 | |
| me on a paper that I have only few months to live, It is my last wish to see that | |||
| the $4.5 Million I have in the bank should be used to build a charity organization | |||
| on my name in your Country in order to help the poor and motherless babies." | |||
| the spam parrot-dev is receiving is starting to hit the theoretical upper-threshold of maximum sympathy | |||
| we're already starting to cross over into the realm of hilarious absurdity | 22:52 | ||
| every time a spam filter checks string literals, the spammers find a thesaurus | 22:54 | ||
| and then "ear" -> "my organ of hearing" and "orphans" -> "poor and motherless babies" | 22:55 | ||
| blogs.fedoraproject.org/wp/sgallagh...t-project/ | 22:57 | ||
|
23:07
hudnix joined
23:10
lucian_ left
|
|||
| soh_cah_toa | "my organ of hearing"? that's hilarious | 23:56 | |
| i've always wondered if there are still people out there stupid enough to fall for messages like that | 23:57 | ||
| i mean, what are spammers thinking when they are writing stuff like this? "oh yeah. this is good stuff. they are totally gonna fall for this one. suckers..." | 23:59 | ||