|
Parrot 1.1.0 Released | parrot.org/ | 308 RTs left | Weekly Priority: Apply Patches, Fix Bugs, Close Tickets Set by moderator on 18 May 2009. |
|||
|
00:19
wayland76 joined
00:20
bacek_ joined
00:27
tetragon joined
|
|||
| kid51 | Awfully quiet here for a night before monthly release | 00:56 | |
|
00:56
eternaleye joined
|
|||
| Infinoid | Things are looking pretty good here on linux/amd64. | 01:07 | |
| kid51 | Did you see the make fulltest results I've been posting on list? | 01:08 | |
| kid51 agrees with Coke that benchmarks.t takes forevvvvvvver (at least on my old iBook G4). | 01:09 | ||
| Infinoid | I just saw a second ome come through | ||
| s/ome/one/ | |||
| kid51 | then u've got it | ||
| got 'em | |||
| dalek | rrot: r38918 | Infinoid++ | trunk/PLATFORMS: [PLATFORMS] More updates from he++. |
01:10 | |
| rrot: r38919 | Infinoid++ | trunk/DEPRECATED.pod: [DEPRECATED] Update for TT #665. |
|||
| Infinoid | My only failure with normal test is t/library/pcre.t, and that's because dlopen() fails on my libpcre because it's just a linker script, not an actual binary (there's a TT for that) | 01:13 | |
| I'll try fulltest now | |||
| cotto | kid51, maybe that's because we've reached chromatic's goal of having releases be boring. | 01:15 | |
| (and predictable) | |||
| Infinoid | Let's hope. | 01:16 | |
| Whiteknight | I'm getting a testf failure on t/compilers/imcc/syn/regressions.t | 01:21 | |
| is anybody else seeing that? | |||
| Infinoid | kid51 reported it on linux and darwin | 01:22 | |
| I'm still waiting for mine to finish | |||
| cotto | no, but I did see a Perl warning: Use of uninitialized value $ENV{"TEST_PROG_ARGS"} in pattern match (m//) at t/compilers/imcc/syn/regressions.t line 181. | ||
| Whiteknight | okay. Is there a ticket opened for it? | ||
| Infinoid | I don't know, I don't think so | 01:23 | |
| Whiteknight | okay, well I'm disappearing soon for the night, so it's failing on Ubuntu 9.04 x86-64 | ||
| Infinoid | I can see it here too on gentoo x86-64 | ||
| (but I don't know how testf runs parrot, so I need to go through a whole testf to see it) | 01:24 | ||
| Whiteknight | yeah | ||
| Infinoid | ah, perl t/harness -f t/compilers/imcc/syn/regressions.t | ||
| Whiteknight | what is -f anyway? | 01:25 | |
| purl | somebody said -f was for file, remove it or for parrot fast core or for forking | ||
| Whiteknight | ah, fast core | ||
| cotto | with -f it fails for me too (Hardy i386) | 01:26 | |
| Infinoid | # Failed test 'die in immediate, TT \\#629' | 01:29 | |
| # at t/compilers/imcc/syn/regressions.t line 184. | |||
| # 'no | |||
| # current instr.: 'foo' pc -1 ((unknown file):-1) | |||
| # ' | |||
| # doesn't match '/no\\ncurrent inst.*:2\\)$/ | |||
| So it seems fine except for the file/line number. | 01:30 | ||
| I seem to remember something about certain runcores not keeping track of file/lines, which would explain all the failures here... can anyone confirm that? | 01:31 | ||
| dalek | rrot: r38920 | Infinoid++ | trunk/t/compilers/imcc/syn/regressions.t: [t] Not all runcores keep track of filename/line number information. Adjust the test not to depend on this info in the error output. |
01:39 | |
| kid51 | Infinoid: On Linux, r38920 fixes all the failures in t/compilers/imcc/syn/regressions.t *except* -r | 01:55 | |
| Infinoid | wish I knew what -r did | 01:57 | |
| kid51 | -run-pbc | 02:00 | |
| compile to Parrot bytecode and then run the bytecode | 02:01 | ||
| # normal core, write and run Parrot Byte Code | |||
| testr : test_prep | |||
| purl | test_prep is actually what makes miniperl? | ||
| kid51 | $(PERL) t/harness $(EXTRA_TEST_ARGS) -r $(RUNCORE_TEST_FILES) | ||
| Infinoid | ok. "./parrot -r t/compilers/imcc/syn/regressions_14.pir" seems to run fine, I don't know why that test would fail | 02:02 | |
| kid51 | purl, forget test_prep | ||
| purl | kid51: I forgot test_prep | ||
| Infinoid | based on the output you posted to the list, I think it might be something wrong with the test itself (or its infrastructure), rather than the code being tested | ||
| kid51 | purl, test_prep is the 'make' target on which 'make test' immediately depends and is currently equivalent to 'make' | 02:03 | |
| purl | OK, kid51. | ||
| kid51 | quite possibly | ||
| t/benchmark/benchmarks.t has been running for > 90 minutes on my iBook! | 02:05 | ||
| ... much more than the rest of 'make fulltest_all' combined | |||
| Infinoid | wow. | ||
| cotto | Let's drop it from fulltest and bring it back when it runs in a more reasonable time. | 02:09 | |
| kid51 | I'm looking at it but can't figure out how the number of iterations is controlled. | 02:12 | |
| If we were to cut iterations by factor of 10, perhaps we'd get something more reasonable. | |||
|
02:14
particle joined
|
|||
| kid51 | Hmm, I wonder if nothing at all is happening there. I notice I'm not even getting output like: ....4/36 | 02:16 | |
| Infinoid | kid51: Yeah. I don't see the point of any benchmarks which take more than 5 to 15 seconds on normal hardware, to be honest | ||
| kid51 | Woah! it just finished! | ||
| Infinoid | Mine is currently stuck on 28/36 | ||
| heh | |||
| kid51 | 5816 / 60 | ||
| purl | 96.9333333333333 | ||
| kid51 | 97 minutes for one file | ||
| Am also timing it on Linux | 02:17 | ||
| cotto | I'd prefer to cut them down by 100x, but 10x would be reasonable. | 02:21 | |
| Infinoid | I think examples/benchmarks/primes.pasm is the really big one | 02:22 | |
| kid51 | Of course, didn't Andreas file a ticket about 'recently induced slowness'? | 02:23 | |
| That was: rt.perl.org/rt3/Public/Bug/Display.html?id=60692 | 02:26 | ||
|
02:26
dduncan joined
02:27
dduncan left
|
|||
| Infinoid | ah, mmd | 02:28 | |
| kid51 | 1024 / 60 | 02:36 | |
| purl | 17.0666666666667 | ||
| kid51 | 17 minutes for benchmark.t on Linux | ||
|
02:41
janus joined
03:20
donaldh joined
04:01
Andy joined
|
|||
| dalek | rrot: r38921 | petdance++ | trunk (2 files): dropped unused interp and return values |
04:07 | |
|
04:09
Eevee joined
|
|||
| Tene | purl: karma tene | 04:54 | |
| purl | tene has karma of 434 | ||
| dalek | rrot: r38922 | petdance++ | trunk (2 files): consting internal vars |
05:29 | |
|
05:37
flh joined
|
|||
| he | Infinioid: another pass: NetBSD/sparc (32-bit) 5.0 with parrot-current | 05:40 | |
|
05:49
cognominal joined
|
|||
| cotto | this should make some people happy | 06:07 | |
|
06:07
uniejo joined
|
|||
| dalek | rrot: r38923 | cotto++ | trunk (22 files): [t] adjust numbers in tested benchmarks so they take <=10s and omit the mops tests |
06:08 | |
|
06:15
masak joined
06:22
iblechbot joined
07:05
bsdz joined
|
|||
| he_ | Infinoid: another pass: NetBSD/sparc64 (64-bit) 4.0 with parrot-current, tests said "All tests successful (1 subtest UNEXPECTEDLY SUCCEEDED), 16 tests and 630 subtests skipped." | 07:12 | |
|
07:21
donaldh joined
|
|||
| dalek | rrot: r38924 | cotto++ | trunk/tools/dev/pbc_to_exe.pir: [pbc_to_exe] undo accidentally committed change from previous commit |
07:26 | |
| kudo: d0fbfbe | moritz++ | src/setting/Any-list.pm: accept more general matchers in grep |
07:38 | ||
| nopaste | "he" at 158.38.62.77 pasted "Also look in /usr/pkg/include/GL for opengl headers, for the benefit of pkgsrc-using systems such as NetBSD" (14 lines) at nopaste.snit.ch/16596 | 07:51 | |
| japhb | he: That's fine with me, delta fixing the leading tab. | 07:52 | |
| he_ | ah, ok; easy mistake to make. | 07:53 | |
| nopaste | "he" at 158.38.62.77 pasted "Make netbsd join the rest in testing pmc/threads" (12 lines) at nopaste.snit.ch/16597 | 07:57 | |
| he_ | Hm, interesting... NetBSD/sparc64 5.0 fails t/pmc/io.t with a bus error | 08:24 | |
| ...aaand... unsurprisingly, perhaps, this is a bus error due to a non-aligned load. | 08:29 | ||
| 0x1376ec <Parrot_PCCINVOKE+2444>: ldx [ %g1 + 0x4f8 ], %g1 | |||
| g1 0xdeadbeef 3735928559 | |||
| # Failed test 'fdopen - no close' | 08:30 | ||
| cotto | ironically, I'm munching on beef jerky | 08:31 | |
| although not choking on it ;) | |||
| moritz | ;-) | ||
| he_ | Innermost frame is 2870 VTABLE_invoke(interp, pccinvoke_meth, NULL); | 08:34 | |
| Well... it's of course also trying to load via an invalidated pointer. | 08:36 | ||
| hm, pccinvoke_meth->vtable == 0xdeadbeef, pccinvoke_meth->pmc_ext == 0xdeadbeef | 08:38 | ||
| I guess that means "that's not going to work". | 08:40 | ||
|
08:45
mikehh_ joined
|
|||
| cotto | Yup. That means it's already been GC'd. | 08:45 | |
|
08:50
cognominal joined
|
|||
| dalek | kudo: 222993f | moritz++ | docs/ChangeLog: [docs] update ChangeLog |
09:03 | |
| mikehh | make -k fulltest at r38924 fails t/compilers/imcc/syn/regressions.t (test 14) in testr and t/examples/namespace.t in examples_tests | 09:35 | |
| TODO passes t/compilers/imcc/syn/regressions.t TODO passed: 14 and t/op/io.t TODO passed: 4 in testf | 09:37 | ||
| Kubuntu Jaunty (9,04) Amd64 | 09:38 | ||
| he_ | cotto: hm. Makes me wonder why recent tests on NetBSD/sparc64 4.0 succeeded, then. | 09:43 | |
| Perhaps I updated at an inopportune moment, so have a slightly newer parrot on the 5.0 system? | |||
| (how do I find out which revision I'm synced with?) | |||
| <-- svn newbie | |||
| cotto | are you working from an installed parrot? | ||
| he_ | nope | 09:44 | |
| cotto | svn info | ||
| he_ | ok, the failing test is with rev. 38923 | 09:45 | |
| the one which succeeded on 4.0 is rev. 38917 | 09:46 | ||
| I'm doing "svn update -r38917" on the 5.0 system, and will rebuild and re-test. | 09:47 | ||
| mikehh | any idea what's happening with smolder? it been down for a week | 10:15 | |
| plus lots of downtime before that | |||
|
10:16
bacek joined
|
|||
| cotto | it was up earlier today | 10:18 | |
|
10:39
bacek joined
|
|||
| mikehh | cotto: I have not been able to submit through make smoke for quite a while - it times out on me | 10:43 | |
| and I can't connect to the site either | |||
| nopaste | "bacek" at 114.73.146.105 pasted "We have to fix mmd..." (7 lines) at nopaste.snit.ch/16601 | 10:52 | |
| bacek | This is after few twiks in Integer.pmc to not use MMD... | 10:53 | |
| he_ | hm, rev 38917 is failing as well on the 5.0 system. | 11:15 | |
|
11:16
burmas joined
11:20
kid51 joined
11:21
donaldh joined,
wayland76 joined
|
|||
| bacek | when The Release? | 11:26 | |
| And what current policy for non-critical commits? | |||
| moritz | it's often after #ps | 11:28 | |
| and small things (like doc fixes) usually can go in until shortly before | |||
| bacek | I've got couple of commits related to TT#452 | 11:30 | |
| moritz | I can't comment on that | 11:34 | |
| Infinoid | good morning | 11:42 | |
| purl | Here I am, brain the size of a planet, and all they say is 'Good Morning' | ||
|
11:43
pancake joined
|
|||
| pancake | does parrot has a uninstall make target? | 11:43 | |
| moritz | no | ||
| pancake | it is planned? like the manpage? | 11:44 | |
| moritz | I don't see much merit in it | 11:45 | |
| if you develop with parrot, you don't install it | |||
| if you use parrot, you'll use a package from your vendor | |||
| and the package management system can handle uninstalling | 11:46 | ||
| pancake | i always find uninstall pretty useful | 11:47 | |
| f.e, you test parrot svn and install it in /usr/local, and then install it in /usr | |||
| for work, and you want to remove the one in /usr/local | |||
| i can write a stupid perl script that makes the list of installed files and then removes them | 11:48 | ||
| but it will be better if this is in the default parrot | |||
| moritz | well, you can always try to submit it as a patch | ||
| pancake | is the build system of parrot documented? | ||
| moritz | I don't know | 11:49 | |
| maybe there's something in docs/ | |||
| pancake | looks like everything is magically generated with Parrot modules | ||
| nopaste | "he" at 158.38.152.207 pasted "gdb of the core dump from t/pmc/io.t on NetBSD/sparc64 5.0" (92 lines) at nopaste.snit.ch/16603 | 11:51 | |
| pancake | btw, what about cpu_ret() opcode? is really necessary? | 11:55 | |
| src/ops/core.ops:109 | |||
| Infinoid | I would assume it's only there as a JIT template | 12:03 | |
| pancake | but only for x86? looks weird | 12:04 | |
| Infinoid | You could always delete it and see what breaks. :) | 12:05 | |
| pancake notes in todo ;) | 12:06 | ||
| dalek | rrot: r38925 | coke++ | trunk/t/compilers/imcc/syn/regressions.t: [t] this test fails most cores in 'fulltest' |
12:11 | |
| Infinoid | erm... I thought I already fixed that test | 12:17 | |
| bacek | Double fix in action! | ||
| Infinoid | msg Coke r38925 TODOes a test which I thought I had fixed in r38920... did it re-break itself somehow? | 12:20 | |
| purl | Message for coke stored. | ||
| dalek | rrot: r38926 | coke++ | trunk/t/compilers/imcc/syn/regressions.t: [t] revert r38925. |
12:21 | |
| Infinoid | msg Coke Nevermind. :) | 12:22 | |
| purl | Message for coke stored. | ||
| bacek | Cheap karma :) | 12:23 | |
| Infinoid | karma coke | ||
| purl | coke has karma of 2812 | ||
|
12:24
bkuhn joined
12:25
ruoso joined
12:26
Andy joined
12:33
iblechbot joined
12:40
Whiteknight joined,
rg1 joined
|
|||
| nopaste | "he" at 158.38.152.74 pasted "Updates to various NetBSD platforms in the PLATFORMS file" (26 lines) at nopaste.snit.ch/16605 | 12:47 | |
|
12:50
wayland76 joined
|
|||
| dalek | rrot: r38927 | Infinoid++ | trunk/PLATFORMS: [PLATFORMS] More updates from pkgsrc maintainer, he++. |
13:00 | |
|
13:05
mikehh joined
13:14
mikehh joined
13:16
bacek joined
13:17
gryphon joined
13:33
shadowspar left
13:37
hiroyuk__ joined,
whoppix joined
13:43
rakudohudson joined
|
|||
| nopaste | "bacek" at 114.73.49.67 pasted "Two benchmarks..." (14 lines) at nopaste.snit.ch/16606 | 13:47 | |
| bacek | 407/66 | 13:49 | |
| purl | 6.16666666666667 | ||
| bacek | 6 times faster. | 13:50 | |
| bacek going to commit all changes in branch | |||
| dalek | rrot: r38928 | bacek++ | branches/tt452_reduce_mmd: Branch for reducing MMD usage as described in TT#452 |
13:53 | |
| Infinoid | wow, nice timings! | 13:54 | |
| masak | bacek++ | 13:55 | |
| bacek | I broke couple of tests BTW | 13:57 | |
| *incoming* | |||
| ouch... I did something wrong with git-svn | 13:59 | ||
| dalek | rrot: r38929 | bacek++ | branches/tt452_reduce_mmd/src/pmc (3 files): Merge branch 'tt452_mutlis_local' into t452_reduce_mmd_local |
14:00 | |
| bacek | Ah. git svn squashed all my commits in one... | 14:01 | |
| rg | that's what svn does for a merge | 14:02 | |
| bacek | I didn't expect it. It was 5 or 6 commits in my local branch... | 14:03 | |
| Is t/src/extent.t failing only on my box? | 14:05 | ||
| t/src/extend.t | |||
| rg | trunk or branch? | 14:06 | |
|
14:08
Theory joined
|
|||
| rg | *sigh* smolder seems to be more down than up lately | 14:08 | |
|
14:09
bacek_ joined
|
|||
| bacek_ | rg: trunk and branch. | 14:11 | |
| But probably I have to make realclean to test | |||
| Infinoid | t/src/extend.t .. ok | ||
| rg | fine on trunk@r38925 | 14:12 | |
| Infinoid | passes here on trunk@r38927 | ||
|
14:14
jsut joined
|
|||
| nopaste | "bacek" at 114.73.50.241 pasted "t/src/extend.t failure" (6 lines) at nopaste.snit.ch/16607 | 14:14 | |
| bacek_ | It's... weird... | ||
| bacek | Let's try with clean checkout | 14:17 | |
| Infinoid | What platform is that? Could it be confused by an installed libparrot? | 14:18 | |
| Those were macros until very recently, r38654 introduced them as exported symbols | 14:19 | ||
| bacek | Debian Lenny/i386 | ||
| I removed installed libparrot, rm -rf *; git checkout .; perl Configure.pl; make | |||
| Just waiting to build... | 14:20 | ||
| Infinoid | oki | ||
| bacek | passed | 14:21 | |
| Infinoid | Ok, so it prefers installed libparrot over locally built libparrot | ||
| bacek | Looks like something was broken. Either installed parrot or local checkout | 14:22 | |
| Infinoid | it would be the installed parrot | ||
| Up until 10 days ago, those missing symbols were really macros, so your installed libparrot must have been older than that | |||
| bacek | It was about couple of months old :) | 14:23 | |
| Infinoid | Hmm. I'm still not happy with the current state of TT #665 | 14:24 | |
| Relying on this behavior is crackbaby. If I can't introduce a die() without a deprecation cycle, maybe I can just introduce a warn() for now | |||
| bacek | Why you can't do it? | 14:25 | |
| Infinoid | Because it's possible (though insane) that some HLL is relying on the old behavior | 14:26 | |
| NotFound | warn++ | ||
| bacek | Some of them relied on exported VTABLE's functions. | ||
| NotFound | Big ugly warn | 14:27 | |
| bacek | Big ugly warn adn die horribly | ||
| NotFound | bacek: but we already said long time ago that direct usage of vtable functions wasn't supported, I think. | 14:28 | |
| bacek | Misused capitalise in pmc's name and filename never works either. | 14:29 | |
| NotFound | I'm thinking that may be a good idea to add an option --deprecate-now and conditionally comment out deprecated things depending on it. As a way to check that deprecated features are really unused. | 14:30 | |
| bacek | And darbelo++ was first who hit this problem. So, let's nail it down now. | ||
|
14:31
mikehh_ joined
|
|||
| bacek | NotFound: good idea. At least we can add some DEPRECATED macro for C code. | 14:32 | |
| Infinoid | for PIR, we have a "warningson .PARROT_WARNINGS_DEPRECATED_FLAG if you .include warnings.pasm | ||
| uh, insert another '"' in there somewhere | |||
| bacek | Something like '#defined DEPRECATED #warning "This is deprecated"' | ||
| nopaste | "infinoid" at 75.28.74.203 pasted "[PATCH] (TT #665) All right. Everyone happy with this?" (45 lines) at nopaste.snit.ch/16608 | 14:33 | |
| NotFound | We can start using a macro with an #ifndef, even without implementing the option, it works as a big visual cue. | ||
| bacek | Infinoid: +1 | 14:34 | |
| purl | 1 | ||
| NotFound | Infinoid: but that is only for deprecated opcodes, isn't it? | ||
| Infinoid | For now. It seems like a good point for extending that | ||
| bacek | NotFound: it's for deprecated "feature" | ||
|
14:35
Whiteknight_ joined
|
|||
| NotFound | Then a C function that emit a message or not depending on the value of that flag may be a simple solution. | 14:36 | |
| he_ | Infinoid, I guess you didn't see my nopaste.snit.ch/16597 :) | ||
| Infinoid | he_: You're right. Thanks, I'll apply that | 14:37 | |
| he_ | Thanks! | ||
| Whiteknight_ | Who's release manager today? | 14:38 | |
| Infinoid | tewk | ||
| dalek | rrot: r38930 | bacek++ | branches/tt452_reduce_mmd: Remove branch due big wrong commit |
14:40 | |
| rrot: r38931 | bacek++ | branches/tt452_reduce_mmd: Branch for reducing MMD usage as described in TT#452 |
|||
| NotFound | We have Parrot_warn, but is too boring to have to write: Parrot_warn(interp, PARROT_WARNINGS_DEPRECATED_FLAG, "some message"); | ||
| Infinoid | What would you prefer? A wprintf() wrapper macro? :) | 14:41 | |
| NotFound | A function Parrot_wan_deprecated | ||
| Parrot_warn_deprecated | |||
| Whiteknight | Parrot_ur_doin_it_wrong() | ||
| Infinoid | #define DEPRECATED(a...) Parrot_warn(interp, PARROT_WARNINGS_DEPRECATED_FLAG, a) /* sadly that only works on gcc */ | ||
|
14:41
riffraff joined
|
|||
| Infinoid | Actually, a portable version without the varargs would be just as useful | 14:42 | |
| NotFound | No need to ... If someone wants a long complicated message, let write it himself. | ||
| Whiteknight | Parrot_im_in_ur_core_deprecatin_ur_features() | ||
| bacek | #define DEPRECATED Parrot_warn(interp, PARROT_WARNING, "Function %s deprecated", __PRETTY_FUNCTION__) | 14:43 | |
| dalek | rrot: r38932 | Infinoid++ | trunk (2 files): [pmc2c] If your filename doesn't match your pmclass name, pmc2c should emit a big nasty warning. |
||
| Infinoid | bacek: Something like that would work too. +1 | ||
| rrot: r38933 | Infinoid++ | trunk/t/pmc/threads.t: [t] Threads should work on NetBSD, so enable the test. he++ |
|||
| rrot: r38934 | bacek++ | branches/tt452_reduce_mmd/src/pmc/integer.pmc: [pmc] Don't use MMD in Integer.modulus |
|||
| rrot: r38935 | bacek++ | branches/tt452_reduce_mmd/src/pmc/integer.pmc: [pmc] Don't use MMD in Integer.cmp |
|||
| rrot: r38936 | bacek++ | branches/tt452_reduce_mmd/src/pmc/scalar.pmc: [pmc] Optimize scalar.concatenate to reduce GC pressure |
|||
| rrot: r38937 | bacek++ | branches/tt452_reduce_mmd/src/pmc/integer.pmc: [pmc] Don't use MMD dispatch in Integer.is_equal |
|||
| rrot: r38938 | bacek++ | branches/tt452_reduce_mmd/src/pmc/bigint.pmc: [pmc] Use less MULTIs in BigInt.pmc |
|||
| bacek hides | |||
| Infinoid | poor bot | ||
| bacek | which one? | ||
| Infinoid | We work dalek++ pretty hard. | ||
| bacek | karma dalek | 14:45 | |
| purl | dalek has karma of 7 | ||
| bacek | hard karma :) | ||
| dalek++ # good bot :) | |||
| purl | thanks bacek :) | ||
| Infinoid | karma purl | ||
| purl | purl has karma of 8570 | ||
| Infinoid | Cheater. | ||
| bacek | Not you, stupid girl! | ||
| << purl-- >> | 14:46 | ||
| karma purl | |||
| purl | purl has karma of 8569 | ||
| NotFound | Forgot to say: my amd64 machines at dayjob pass packfile test after last fixes :) | ||
| bacek | Get it! | ||
| NotFound: That's good :) | |||
| Infinoid | NotFound: Great, thanks for verifying | ||
| seems like we were seeing the same issue after all | |||
| GC bugs are fun. | |||
| bacek | bad fun... | 14:47 | |
| Infinoid | GC++ # Far better than having no GC... | 14:48 | |
| Whiteknight | purl purl? | ||
| purl | My mother's name is Eliza or some horror port of perl 4 to perl 5 or part of a bot net or hated | ||
| bacek | CAN I HAZ CONSERVATIVE GC? | ||
| Infinoid | I don't think there's any such thing. | 14:49 | |
| Whiteknight | bacek: Working on it! | ||
| Infinoid | Now we just need GCable contexts and PackFile structs and jit pools | ||
| Whiteknight | Infinoid: Sure there is, Boehm is a good example | ||
| Infinoid | Seems like GCs work better when they can track *everything* | ||
| ok, I'm not familiar with boehm | |||
| jonathan votes for liberal GC | 14:50 | ||
| Infinoid votes for libertarian GC | |||
| Whiteknight | Infinoid: We're working on that too, the more it can track the less often we have to call malloc | ||
| and less malloc == more good | |||
| bacek | Whiteknight: no-no-no! Generation-based first! | ||
| Whiteknight | bacek: generational GCs typically are conservative | ||
| bacek | Whiteknight: they are typically "collective" | 14:51 | |
| Infinoid | Whiteknight: Is it something I can help with? | ||
| NotFound | There are no liberal GC? | ||
| Whiteknight | NotFound: They're typically broken down into "Conservative" and "Precise" | 14:52 | |
| Infinoid | NotFound: We were joking about politics :) | ||
| Whiteknight | where "Precise" collectors take more time but guarantee to sweep all garbage, while conservative takes less time but misses some things | ||
| NotFound | Infinoid: ah, yes, I failed to read some lines | 14:53 | |
| Infinoid | Revolutionary GC: free() first, ask questions later | ||
| bacek | Extemistic GC: free() first. And second too! | ||
| Whiteknight | anarchist GC: We don't need your memory, we will make our own!!! | 14:54 | |
| NotFound | That sounds like the infinite memory model. | ||
| bacek | zen GC: garbage? What garbage? | ||
| NotFound | In Soviet Russia garbage collects you | 14:55 | |
| Infinoid | Jedi GC: You don't need to call VTABLE_type(), these are not the objects you're looking for. | ||
| bacek | Alien GC: all your memory are belong to us | 14:56 | |
| Looks like Whiteknite was collected... Prematurely... | 14:57 | ||
| Infinoid | In Nihilistic GC, the mark() function is O(1), and always returns false | ||
|
14:57
Whiteknight joined
|
|||
| bacek | Ressurecting GC: You can always have Whiteknight back :) | 14:58 | |
| Whiteknight | who can have me back? | ||
| Infinoid | [07:57] < bacek> Looks like Whiteknite was collected... Prematurely... | ||
| Infinoid marks Whiteknight | |||
| Whiteknight | yeah, I crashed firefox | 14:59 | |
| NotFound | Monte Carlo GC: random choose some object to destroy | ||
| That may be useful to find GC errors | |||
| bacek | GC of mass destruction: "Don't ask" | 15:00 | |
| Whiteknight | no, that would be useful to create GC errors | ||
| bacek | It's easy to find something that you just created :) | ||
| NotFound | Yes, that way is a lot easy to find one | ||
| Infinoid | Shotgun GC frees the PMC and 1d10 nearby PMCs at random | 15:01 | |
| bacek | Bed GC: sometimes you turn to garbage to be collected by bed | 15:02 | |
| Sleep time. See you tomorrow | |||
| Whiteknight | goodnight | ||
| bacek | goodnight | ||
| Infinoid | goodnight bacek | 15:03 | |
| bacek | If someone will have time to jump on tt452_reduce_mmd branch and fix failure in t/op/bitwise.t I'll be very glad. | ||
| I can't fix it... :/ | 15:04 | ||
| bacek must sleep | |||
| purl | $bacek->sleep(8 * 3600); | ||
| Infinoid | urk. warn() doesn't work after all, because Pmc2cMain.pm contains this line: | 15:11 | |
| $SIG{'__WARN__'} = sub { use Carp; warn $_[0]; Carp::confess; }; | |||
| Whiteknight | lousy | 15:16 | |
| dalek | rrot: r38939 | coke++ | trunk/t/compilers/imcc/syn/regressions.t: [t] recent fixes to the test let this pass under CGP, but it still fails with --run-pbc |
||
| Infinoid | It does look useful for debugging, but I'm going to comment it out for now | ||
|
15:21
donaldh joined
|
|||
| dalek | rrot: r38940 | Infinoid++ | trunk/lib/Parrot/Pmc2c/Pmc2cMain.pm: [pmc2c] There's a signal handler in pmc2c which upgrades warnings to errors (with a Carp backtrace). in r38932, it causes test failures. Add a comment and disable it for now. |
15:23 | |
| Infinoid is looking at bacek's bitwise.t issue | 15:28 | ||
| Looks like bigints are failing to be big. | 15:29 | ||
| dalek | rrot: r38941 | coke++ | trunk/DEPRECATED.pod: [docs] This is /already/ deprecated. |
||
|
16:02
fperrad joined
16:11
moritz joined
16:16
iblechbot joined
16:21
flh joined
16:25
donaldh left
16:35
HG` joined
16:37
cotto joined
|
|||
| Whiteknight | is there a list somewhere for who is going to be release manager each month? | 16:38 | |
| I know that I have a month coming up, but I don't know which one | 16:39 | ||
| cotto | docs/project/release_manager_guide.pod, at the end | ||
| Whiteknight | ah, there it is. Thanks cotto++ | 16:40 | |
|
16:40
riffraff joined
|
|||
| Tene | purl: parrotsketch? | 16:41 | |
| purl | it has been said that parrotsketch is a status meeting for parrot core committers held every Tuesday at 18:30 UTC in #parrotsketch | ||
| pmichaud | parrotsketch in 110 | ||
| Tene | Tue May 19 16:41:38 UTC 2009 | ||
| Whiteknight | purl needs to be able to give us a countdown | ||
| purl | Whiteknight: sorry... | ||
| Whiteknight | it's okay purl, it's not your fault | ||
| Tene | purl: countdown? | ||
| purl | rumour has it countdown is at 4:45 | ||
| Whiteknight | ..and not quite | 16:42 | |
| dalek | tracwiki: v19 | whiteknight++ | GCTasklist | 16:56 | |
| tracwiki: trac.parrot.org/parrot/wiki/GCTask...ction=diff | |||
| moritz | ps? | 16:58 | |
| purl | ps is postscript or process status or see "parrotsketch" or non-vector?! or annoying. | ||
| moritz | parrotsketch? | ||
| purl | i think parrotsketch is a status meeting for parrot core committers held every Tuesday at 18:30 UTC in #parrotsketch | ||
| Whiteknight | time? | ||
| purl | time is 16:55:37 2009 and (did you mean "clock"?) or flowing like a river | ||
| dalek | kudo: ac60b66 | pmichaud++ | docs/spectest-progress.csv: "2009-05-19 00:00",9d2934e,11297,0,389,2199,13885,16603,391 |
17:00 | |
| Tene | I'm starting to feel like it's time for me to back off on the HLL stuff and work on Parrot and languages more. | 17:02 | |
| HLL Stuff isn't quite there yet, though. | |||
| pmichaud | We often have to progress on several fronts simultaneously. | 17:03 | |
| Tene | Yeah. | ||
| pmichaud | Right now I'm doing a benchmark of Rakudo's HLL vs. non-HLL performance. | ||
| to try to quantify it a bit better. | 17:04 | ||
| Tene | Kinda creepy, isn't it? | ||
| :) | |||
| I think my next target will be getting my scheme impl. up to speed | 17:05 | ||
| r6RS and all that | |||
| A few people asked to see HLL interop between languaes less similar than ruby and perl | |||
| pmichaud | that would be good. | 17:06 | |
| Tene | I need to hit pynie sometime soon too. | ||
| Whiteknight | HAH! I just found the ParrotQuotes page on the wiki | ||
| pmichaud | I wonder if I could get APL into a package-able state. | ||
| Whiteknight is going to waste his whole afternoon now | 17:07 | ||
| Tene | That's a great idea. | ||
| NotFound | Tene: if people want a language a lot less similar that those, tell them to try pirric X-) | ||
| moritz | Whiteknight: it doesn't have enough entries to waste an entire afternoon ;-) | ||
| Whiteknight: bug enough to keep laughing for a few minutes | |||
|
17:07
tulcod joined
|
|||
| pmichaud | moritz: unless by "wasting the afternoon" Whiteknight is going to comb the #parrot logs looking for other things to be added :-) | 17:07 | |
| Tene | great plan | ||
| Whiteknight | yeah, but it's going to completely kill my train of thought | ||
| tulcod | how do i get parrot to compile and install nqp? | ||
| Infinoid | Whiteknight++ # finding the quotes | 17:08 | |
| NotFound | Wow, the negative NaN affair is in ParrotQuotes | ||
| moritz | tulcod: a simple 'make' will at least compile it | ||
| tulcod | moritz: where should it land up? | ||
| moritz | tulcod: compilers/nqp/ probably | 17:09 | |
| Tene | tulcod: in your install prefix, lib/1.1.0-devel/languages/nqp/nqp.pbc | ||
| tulcod | hm, and it should just be named nqp? | ||
| oh, nqp.pbc | |||
| Tene | after an install | ||
| in the build tree, compilers/nqp/nqp.pbc | |||
| tulcod | it's there | ||
| not executable | |||
| but it's there | |||
| NotFound | There is no target to build a nqp fakecutable? | 17:10 | |
| pmichaud | there isn't an nqp "executable" | ||
| tulcod | oh | ||
| the parrot manual suggests otherwise | |||
| pmichaud | nqp tends to always be run from a parrot command line | ||
| tulcod | docs.parrot.org/parrot/latest/html/....pod.html, "Running a Language on Parrot" | ||
| Tene | tulcod: where does the manual suggest that? that's a documentation bug. | ||
| huh | 17:11 | ||
| you're right. | |||
| That's a lie in our docs. :) | |||
| try: | |||
| Whiteknight | the docs don't lie! | ||
| Tene | ./parrot compilers/nqp/nqp.pbc | ||
| tulcod | Tene: yeah, i just did that | ||
| Whiteknight | They just describe a different reality from where we are | ||
| pmichaud | I wouldn't have an issue with making an nqp executable, however. | ||
| tulcod | still doesn't work | ||
| purl | Look buddy, doesn't work is a strong statement. Does it sit on the couch all day? Is it making faces at you? Does it want more money? Is it sleeping with your girlfriend? Please be specific! | ||
| Whiteknight | (nqp executable)++ | ||
| tulcod | > say "hi" | 17:12 | |
| Statement not terminated properly at line 1, near "\\"hi\\"\\n" | |||
| moritz | I see no point in it | ||
| tulcod: try say("hi"); | |||
| tulcod | works | ||
| moritz | tulcod: it's a *very* limited subset of Perl 6, including parsing | ||
| Tene | More lies! | ||
| NotFound | tulcod: nqp is not as tolerant with syntax as perl. | ||
| tulcod | purl: and you be quiet, mister, i was about to expand on that | ||
| purl | tulcod: excuse me? | ||
| tulcod | NotFound: yeah, i guess that's the case :P | 17:13 | |
| purl: you wanna fight about it? you dare and come outside, i'll pucnh you in the face | |||
| purl | tulcod: huh? | ||
| NotFound | You can't omit the () on function calls. | ||
| tulcod | hm | ||
| sounds like that should be in the manual :P | |||
| moritz | patches welcome. | ||
| purl | i think patches welcome is ponies welcome or Set Objectives, Achieve Results! or swahili for "Put up or shut up." | ||
| NotFound | I guess the completeness of the manual is one of the nqp limitations X-) | 17:14 | |
| Whiteknight | I feel like purl has been getting steadily more rude in his responses | ||
| tulcod | are his responses automated as well? | ||
| Whiteknight | yeah, he's a bot | ||
| tulcod | yeah, i got that | ||
| NotFound | purl: good bot | 17:15 | |
| purl | thanks NotFound :) | ||
| Whiteknight | yeah, he responds based on input patterns | ||
| tulcod | but i mean, does he collect the reactions on his own? | ||
| Tene | purl: dance! | ||
| purl | No, you dance, Tene. *ka-clik* | ||
| tulcod | okay :) | ||
| Whiteknight | tulcod: sortof | ||
| Tene | tulcod: yes. | ||
| tulcod | markov chains? | ||
| purl | coral's taken the crack again | ||
| Whiteknight | tulcod is asking questions | ||
| tulcod? | |||
| purl | tulcod is asking questions | ||
| NotFound | purl: take a cake | ||
| purl | NotFound: sorry... | ||
| pmichaud | purl: status? | ||
| purl | Since Sat May 9 07:45:02 2009, there have been 2245 modifications and 1199 questions. I have been awake for 10 days, 9 hours, 27 minutes, 47 seconds this session, and currently reference 772701 factoids. Addressing is in optional mode. | ||
| moritz | what's the reason for avoiding a runtime for NQP? | 17:16 | |
| Whiteknight | (I would hate to see that list of 772701 "factoids" purl thinks it has) | ||
| NotFound | He can't sing 'Daisy, Daisy' ? | ||
|
17:16
Theory joined
|
|||
| moritz | making it lean? | 17:16 | |
| or fear of name colissions? | |||
| pmichaud | moritz: nqp's primary purpose is to make it easy to write parrot subs | ||
| those subs tend to run in languages _other_ than nqp | 17:17 | ||
| so it's good if nqp's runtime doesn't tend to interfere with that hll's. | 17:18 | ||
| or, put another way, nqp wants *all* of its runtime to be dynamic :-) | |||
| moritz | i know | ||
| pmichaud | nqp is like a Perl 6 where all builtins have to be dynamically loaded. | ||
| tulcod | hm | ||
| nqp.pbc doesn't get installed | |||
| i mean, by the gentoo ebuild i stole from the gentoo bugtracker | 17:19 | ||
| pmichaud | tulcod: I think nqp is only installed with "install-dev" | ||
| tulcod | aha :) | 17:20 | |
| i think that should be default, then | |||
| pmichaud | moritz: I would not be at all opposed to having people create runtime libraries for NQP that could be easily loaded, though. | ||
| use NQP::Core; | |||
| moritz | pmichaud: ok, good to know. | 17:21 | |
| (Though I don't plan any NQP hacking) | |||
| tulcod | arrg | ||
| nqp.pbc isn't in like, the search path | |||
| Tene | tulcod: eh? | ||
| Which search path? | |||
| tulcod | yeah, i expected that :P | ||
| Whiteknight | I'm looking forward to doing all my compiler writing in IQP (is quite perl) | 17:22 | |
| moritz wonders if you can still create PAST nodes in .HLL-enabled Rakudo | |||
| pmichaud | moritz: yes -- actions.pm does it. | 17:23 | |
|
17:23
szabgab joined
|
|||
| moritz | pmichaud: i mean, from within normal Perl 6 code | 17:23 | |
| pmichaud | moritz: yes, from there too. | ||
| since actions.pm is running from the .HLL-enabled Rakudo | |||
| Tene | see #perl6 for example | ||
| tulcod | lol @ nqp's coding style implications: say("hi"); works, but say ("hi"); does not :P | ||
| moritz | ok | ||
| tulcod: that's Perl 6. | |||
| Tene | tulcod: A space between the function name and its ()s is not allowed in Perl 6. | 17:24 | |
| tulcod | are you seirous?! | ||
| Tene | Yes. | ||
| tulcod | wow... perl 6 *must* be the *greatest* lanugage ever! | ||
| pmichaud | more precisely, the space turns the 'say' into a listop. | ||
| it's not that spaces aren't allowed, it's that the parens are no longer function-call parens. | |||
| say(1,2) # two argument say | |||
| say (1,2) # one argument say | |||
| tulcod | finally no more god**** discussions about whether you should or should not put a space in between | 17:25 | |
| why haven't i started using perl earlier? | |||
| Tene | And NQP doesn't support function calls without ()s. | ||
| pmichaud | I'm thinking of adding listop form to NQP, though. | ||
| We already allow paren-less method calls now (although I think only for the 0-argument case) | |||
| Tene | pmichaud: if you're extending NQP, my first request would be allowing <>-quoted form on colonpairs. | ||
| PAST::Op.new(:name<foo>) | 17:26 | ||
| pmichaud | as long as you're okay with :name<foo bar> being the same as :name('foo bar') | ||
| Tene | I am! | ||
| It's hardly a priority, though. | |||
| pmichaud | well, the primary reason for supporting listops would be to avoid the stream-of-questions that we've just seen :-) | 17:28 | |
| (which happen quite frequently) | |||
| Tene | Heh. | ||
| moritz | maybe a good mention of them in README could also reduce them ;-) | ||
| pmichaud | My experience is that things in README never are. | 17:29 | |
| afk, lunch | 17:30 | ||
|
17:42
HG` joined
17:44
Theory joined
|
|||
| Whiteknight | darbelo: ping | 18:00 | |
|
18:05
davidfetter joined
18:13
Andy joined
18:16
allison joined
|
|||
| davidfetter | HAI | 18:19 | |
| anybody going to malaysia osconf? | |||
|
18:19
darbelo joined
|
|||
| Util | With Parrot r38941, on darwin, plus one patch that does not affect config, running `./parrot parrot_config.pbc --dump` prints the first 12 lines, then "Bus error". | 18:25 | |
| Disabling GC allows all lines to print. `./parrot -G parrot_config.pbc --dump`. | |||
| My build passes all tests in `make test`. | |||
| BTW, I do not see anywhere that we exercise parrot_config in t/*. | |||
| Can anyone duplicate the issue? | |||
| Whiteknight | davidfetter: Nobody that I know of | 18:26 | |
| jonathan | Util: Any chance of a backtrace? | 18:27 | |
|
18:27
iblechbot joined
|
|||
| Whiteknight | Util: and what's the patch? | 18:28 | |
| purl | We don't need no stinking patch! | ||
| Util | jonathan: sure! 50 lines - do you just need part of it, or should I nopaste it all? | ||
| Whiteknight | nopaste it all | ||
| NotFound | nopaste lines are cheap | 18:29 | |
| jonathan | Util: the lot | ||
| 50 lines is fine. :-) | |||
| It's when people have 50,000 that I worry more. ;-) | |||
| moritz | it's nearly #ps-time | ||
| Util | Whiteknight: patch is the latest in my uncommitted pbc_to_exe efforts. That is why I am invoking with the parrot+.pbc call, instead of `./parrot_config` | ||
| Whiteknight | it's peanut butter #ps time | ||
| I see, young grasshopper | 18:30 | ||
| nopaste | "Util" at 68.191.99.24 pasted "parrot_config.pbc backtrace" (94 lines) at nopaste.snit.ch/16609 | 18:34 | |
|
18:35
chromatic joined
|
|||
| Whiteknight | fperrad: you got parrot to build with llvm-gcc? | 18:36 | |
| moritz | actually that worked for me some time prior to 1.0, and then stopped | 18:37 | |
| but I never had the energy to track it down | |||
| jonathan | Util: Oh gee, it's actually segfaulting *inside* the GC... | 18:38 | |
| holy s**t...doing a write goes through 3 layers of PCCINVOKES?! | 18:39 | ||
| Whiteknight | somewhere it looks like a Context is holding a bogus pointer, Unused pointers should be NULL'd in Contexts | ||
| jonathan | Whiteknight: Yeah. | 18:40 | |
| Whiteknight | yeah, the IO system really utilizes it's PMCs | ||
| All the more reason to (1) get PCC optimized and (2) to get asynchronous IO working | |||
| jonathan | Whiteknight: I'm wondering if the something inside PCCINVOKE maybe doesn't init the outer pointer or something... | ||
| chromatic | That could be a context change I committed the other day to avoid calloc. | 18:41 | |
| Whiteknight | weird that it would only show up in such a particular stack trace | ||
| jonathan | Whiteknight: We probably often don't call 3 levels of PCCINVOKES... | ||
| chromatic | It makes sense to me. If there's an uninitialized struct member.... | 18:42 | |
| Whiteknight | 0xbffff570, is that a protected address on darwin? | ||
| jonathan | chromatic: I can only guess it normally gets initialized when doing stuff in PIR and the PCCINVOKE path leaves a junk value. | ||
| chromatic | That could be. | ||
| Whiteknight | or is does that PMC itself contain the bad pointer? | ||
| tulcod | "UTF-8 will upgrade to UTF-16" | 18:44 | |
| Whiteknight | no, I take that back, 0xbffff570 is the bad address | ||
| tulcod | isn't UTF-16 simply a different notation for UTF-8? | ||
| (or the other way around) | |||
| NotFound | tulcod: are different encodings | 18:45 | |
| tulcod | yeah, but they can do the same thing, right? | ||
| jonathan | oh ouch | ||
| tulcod | a character in UTF-8 can be encoded in UTF-16, and vice versa | ||
| jonathan | for (i = 0; i < ctx->n_regs_used[REGNO_STR]; ++i) { | ||
| obj = (PObj *)CTX_REG_STR(ctx, i); | |||
| if (obj) | |||
| Parrot_gc_mark_PObj_alive(interp, obj); | |||
| NotFound | tulcod: for some values of "same thing" | ||
| jonathan | It's that which is passing the bad pointer, it seems. | ||
| (Line 124 is that last one) | |||
| NotFound | They encode | ||
| moritz | tulcod: yes. Both can encode the whole Unicode repertoire | ||
| tulcod | moritz: so how is it an "upgrade"? | 18:46 | |
| i mean, they are just different encodings... | |||
| moritz | tulcod: I don't understand that phrase either | ||
| tulcod | it's from the manual | ||
| docs.parrot.org/parrot/latest/html/...r.pod.html under "Strings: Encodings and Charsets" | |||
| NotFound | I think it means that the 8 is converted to 16 if the other operand is 16 | 18:47 | |
| tulcod | hm, that could be | ||
| it doesn't make sense, though | |||
| i mean, there's no objective reason to prefer -16 over -8 | 18:48 | ||
| moritz | and there isn't one to do it the other way round | ||
| davidfetter | Whiteknight, d'oh. well, i'm going :) | ||
| moritz | so it's an arbitrary choice | ||
| Whiteknight | we just need them to be the same so we can combine them | ||
| tulcod | hm | 18:49 | |
| NotFound | I'd like better utf32, but lots of people don't want the memory consumption | ||
| tulcod | i thought perl would be a language based primarily logic | ||
| but it seems that's not the case | |||
| (yes, that's a joke) | |||
| moritz | tulcod: perl != parrot | ||
| tulcod | ah | ||
| sorry | |||
| s/perl/parrot/ :P | |||
| scrolling scrolling scrolling | |||
| Whiteknight | pmichaud++ | 19:02 | |
| Util | parrot_config issue update - I tried a fresh checkout, with no patches. It has the exact same problem. | 19:10 | |
|
19:12
bsdz joined
19:20
donaldh joined
19:23
ruoso joined
|
|||
| Whiteknight | tewk: ping | 19:55 | |
| cotto | seen tewk | 19:56 | |
| purl | tewk was last seen on #parrot 8 days, 5 hours, 18 minutes and 14 seconds ago, saying: nevermind, I'm alreaddy using 8888 [May 11 14:35:31 2009] | ||
| chromatic | pmichaud, jonathan, do you have a nice representative bit of PIR code we can use to profile Rakudo HLL? | 19:57 | |
| pmichaud | ...PIR code? | ||
| I might be able to create something with --target=PIR | |||
| chromatic | That's easiest. | 19:59 | |
| dalek | kudo: 595d364 | pmichaud++ | src/parser/grammar.pg: Update =begin/=end handling slightly (RT #65782). |
||
| chromatic | It's doable with p6 code too, but it may be easier to profile with and without HLL from PIR. | 20:00 | |
| pmichaud | well, if we do --target=pir it would still depend on the perl6 runtime. | ||
| I'm not sure if straight PIR code would be sufficient to expose the problem. But I'll try a couple of things and see what I get. | |||
| chromatic | Oh, I see. Yeah. | 20:02 | |
| pmichaud | I'll try a few small benchmarks and see what I come up with. | ||
| for those who want to try it at home, the switch is simply to change perl6.pir:13 from | 20:03 | ||
| .macro_const RAKUDO_HLL 'perl6' | |||
| to | |||
| .macro_const RAKUDO_HLL 'parrot' | |||
| that switches the compiler from running in the 'perl6' HLL to the 'parrot' HLL. | |||
| allison | message fperrad I added lua to the language selection in Trac tickets | 20:04 | |
| purl | Message for fperrad stored. | ||
| pmichaud | prepare for massive "omgwtf"... (see nopaste) | 20:13 | |
| nopaste | "pmichaud" at 72.181.176.220 pasted "Rakudo hll 'perl6' versus 'parrot' simple benchmark, #1" (15 lines) at nopaste.snit.ch/16611 | ||
| jonathan | omgwtf | 20:15 | |
|
20:16
cotto joined
|
|||
| PerlJam | It's a good think rakudo is so slow that this phenomenon is blatant ;) | 20:16 | |
| s/think/thing/ | |||
| pmichaud | it appears to be the range-to-list that causes a lot of the slowdown. | 20:18 | |
| $ cat z | 20:19 | ||
| (1..5000).list; | |||
| $ time ./perl6-parrot z | |||
| real\t0m4.344s | |||
| $ time ./perl6-hll z | |||
| real\t0m10.692s | |||
| PerlJam | er ... wow. | ||
| pmichaud | but not all of it. | 20:20 | |
| purl | i guess not all of it is read-only, right? | ||
| jonathan | pmichaud: Did you try running the benchmark script I checked in on the two? | ||
| pmichaud | jonathan: the benchmark script isn't running on my machine -- but I started with the benchmark just to see what happens | 20:21 | |
| (i.e., stole an example from there to begin with) | |||
| jonathan | ah, ok | ||
| Isn't running? :-S | |||
| pmichaud | it assumes the current directory is in my PATH, which it isn't. | ||
| jonathan wonders what he could possibly have done wrong with it... | |||
| Oh | |||
| OK, some platforms are just odd. | |||
| pmichaud | I'm guessing "perl6 ..." needs to be something like "./perl6 ..." | 20:22 | |
| jonathan | ;-) | ||
| nopaste | "pmichaud" at 72.181.176.220 pasted "Rakudo hll 'perl6' versus 'parrot' simple benchmark, #2" (15 lines) at nopaste.snit.ch/16612 | 20:24 | |
| pmichaud | that should be good/simple enough. | 20:25 | |
| I'll post to parrot-dev | |||
| jonathan | srslywtf | 20:26 | |
| pmichaud | yeah, not a lot there to indicate a slowdown. | 20:27 | |
| Some calls to a local sub and postfix:<++> | 20:28 | ||
|
20:30
maximilian joined
|
|||
| maximilian | does anybody here hack the grammer.pg and actions.pm files in emacs? | 20:32 | |
| i'm working through the tutorial and the lack of proper indenting and highlighting is drving me a little crazy. | |||
| Tene | pmichaud: you can see the difference in speed even with just "perl6 -e 1" | 20:33 | |
| which is a *bit* smaller than the spectests. | |||
| pmichaud | Tene: sure, but most of that could be attributed to startup time. | ||
| moritz | maximilian: in the pugs repo there is an (old) perl 6 syntax hilighter | ||
| Tene | ah, you've been talking about it. | 20:34 | |
| I'm still catching up a bit. :) | |||
| maximilian | moritz: does the older one work better? | ||
| pmichaud | I'm more interested in something that demonstrates real runtime speed difference -- i.e., more than just startup cost. | ||
| moritz | maximilian: dunno, I'm a vim user ;-) | ||
| pmichaud | my latest nopaste is the one I'm going with. | ||
| moritz | maximilian: svn.pugscode.org/pugs/util/cperl-mode.el if you want to try it | ||
| maximilian | moritz: cool thanks. i'll see if it works better. I might try coding this stuff in vim if I can't get emacs working better | 20:35 | |
| pmichaud | message sent to parrot-dev | ||
| purl | Message for sent stored. | ||
| pmichaud | afk for a while | ||
| moritz | maximilian: for vim there's github.com/hinrik/vim-perl which has quite good suport for both grammars and normal code | 20:36 | |
| Infinoid | Ok, I'm back. How are we looking for the release? | 20:37 | |
| maximilian | moritz: appreciate it, thanks. | ||
| Infinoid reads parrotsketch logs | |||
| chromatic | Hm, lots more NameSpace marking in the HLL version. | 20:40 | |
| 60% fewer PMCs created in the non-HLL version. | 20:41 | ||
| PMCProxy? | 20:42 | ||
| purl | PMCProxy is probably basically Class for PMCs. | ||
| chromatic | 87 PMCProxy PMCs created in non-HLL version, 14637 created in the HLL version. | 20:44 | |
| allison | tewk says he's busy with a paper submission, but will do the release tonight if no one else picks it up | 20:46 | |
| chromatic: so, PMCProxys check to see if a proxy already exists before creating a new one | |||
| Infinoid | I can try to knock up some release notes, if it helps. | 20:47 | |
| chromatic | These PMCProxy PMCs get created in two places: Parrot_oo_get_class_str() and Parrot_oo_get_class(). | ||
| allison | chromatic: I'm guessing the check for existence checks the current hll, but stores the new proxy in the parrot HLL | ||
| Infinoid | The changes summary tends to be fairly big with our release announcements | ||
| allison | Infinoid: thanks | ||
| yes, anything people can do to help get the release ready is helpful | 20:48 | ||
| chromatic | I don't see anything about a proxy cache. | ||
| jonathan | allison: Hmm, but all PMCs live in the Parrot namespace... | 20:49 | |
| But yes, sounds like it's re-creating them every time or somehting. | |||
| dalek | rcupinepascal: r71 | robin.ge++ | branches/oo-branch/ (9 files): * added split builtin * tweaked logger to open on close on each write * added httpd example |
||
| chromatic | Parrot_oo_get_class_str() does create a new PMCProxy every time. | ||
| Infinoid | Ok, I'll finish debugging a bigint failure in bacek's MMD branch and then sort out a list of changes | 20:50 | |
| allison | chromatic: PMCProxy should be storing itself as a class in the namespace | ||
| if you check, I'd bet 87 is the number of C PMCs in the system | |||
| chromatic | I'm sure 87 is. | ||
| Tene | there are 79 in src/pmc/*.pmc | 20:52 | |
| files, that is. 89 mentions of "pmclass" | |||
| So, around there. | |||
| allison | chromatic: line 157 of src/pmc/pmcproxy.pmc | 20:53 | |
|
20:54
riffraff joined
|
|||
| allison | Tene: it would include the Rakudo dynpmcs | 20:55 | |
| Tene: (if they're loaded) | |||
| chromatic | Okay, but I'm looking at the trace now. Parrot_oo_get_class_str() calls pmc_new_init() for PMCProxy 8,340 times. | ||
| Tene nods. | |||
| allison | so, it's not correctly finding the PMCProxys already created | ||
| either because it's looking in the 'parrot' HLL and they're in the 'perl6' HLL, or because it's looking in the 'perl6' HLL when they're in the 'parrot' HLL | 20:56 | ||
| chromatic | Looks like it. | 20:57 | |
| I made Parrot_oo_get_class_str() call set_class on the NS when it creates a proxy, and Rakudo throws "can't find method" errors. | |||
| allison | okay, it looks up the PMCProxy's relative to "current HLL" | 20:58 | |
| PerlJam | given a .pbc file, how does one tell what bytecode version it uses? | ||
| allison | chromatic: must not be a namespace, then | ||
| but, init already calls set_class | 20:59 | ||
| that is, PMCProxy's init does | |||
| PerlJam | never mind ... I'm somehow using the wrong parrot | 21:00 | |
| nopaste | "chromatic" at 72.90.115.31 pasted "PMCProxy PMCs created" (8400 lines) at nopaste.snit.ch/16614 | 21:04 | |
|
21:06
cognominal joined
|
|||
| nopaste | "chromatic" at 72.90.115.31 pasted "PMCProxy PMCs created, non-HLL" (72 lines) at nopaste.snit.ch/16615 | 21:07 | |
| chromatic | It looks like the caching isn't working correctly. | ||
| dalek | rcupinepascal: r72 | robin.ge++ | branches/oo-branch/ (3 files): * added request handler |
21:13 | |
| Infinoid is having trouble deciding which commits are relevant enough to put in NEWS | 21:21 | ||
| allison | Infinoid: generally larger feature additions go in, bug fixes or small changes don't | 21:26 | |
| Infinoid | Yeah, it's the middle-sized ones that I tend not to be sure about | 21:27 | |
| I'm going through the trac trunk revision log, so far I'm mostly paying attention to branch merges and huge diffs | 21:28 | ||
| allison | Infinoid: if the medium-sized ones are a short list, go ahead and put them in | ||
| if they're a long list, then just take the largest 5-6 of them | |||
| Infinoid | cool, thanks. | 21:29 | |
| around 400 commits in total | |||
| allison | the final news entry shouldn't have more than 20 or so items on it | ||
| some commits may be grouped together under one entry | 21:30 | ||
|
21:31
Whiteknight joined
|
|||
| darbelo | Whiteknight: pong | 21:38 | |
| pmichaud | fwiw, I continue to stand by my assertion that our heavy use of Parrot_oo_get_class_str() is evil. 1/2 :-) | 21:39 | |
| we should identify classes by something other than strings. | |||
| Whiteknight | oh hi darbelo | ||
| pmichaud | afk (shuttling daughter to fencing lesson) | 21:40 | |
| Whiteknight | I was mostly looking to see if (1) you would be at #ps, and (2) if you've been blogging about your progress | ||
| darbelo | Crap. I forgot to blog. | 21:41 | |
|
21:41
kid51 joined
|
|||
| Whiteknight | it sounded like you had some interesting lessons you've been learning about Parrot, and those are always helpful to share | 21:41 | |
| haha, it's okay. I forget all the time too | |||
| Have we heard anything from tewk yet? | 21:42 | ||
| chromatic | Identifying classes by STRINGs is definitely too expensive. | ||
| Whiteknight | chromatic: is that one of the big slowdowns with Rakudo now? | 21:43 | |
| Infinoid | Whiteknight: [13:46] <@allison> tewk says he's busy with a paper submission, but will do the release tonight if no one else picks it up | ||
| I'm working on the NEWS entry right now (400 commits, such fun) | |||
| Whiteknight | Infinoid: Thanks | 21:44 | |
|
21:44
bacek joined
|
|||
| Infinoid | bacek: ping | 21:45 | |
| jonathan | chromatic: The Class PMC for a particular class is meant to be unique, so in theory it should just be possible through pointer comp. | ||
| erm, not just unique | |||
| but canonical | 21:46 | ||
| purl | rumour has it canonical is a company that eats babies | ||
| chromatic | You have to get the Class PMC somehow. | ||
| jonathan | tasty. | ||
| Infinoid | bacek: Actually, unping. Looks like your bigints are failing to be big. It's pretty trivial to reproduce, but I wasn't able to debug it much further than that. (I'll work on it later tonight if I have time) | ||
| allison | purl: forget canonical | 21:48 | |
| purl | allison: I forgot canonical | ||
| chromatic | I don't have time to dig into this any more, but the responsibility for this PMCProxy cache is in a lot of places. | ||
| Whiteknight | purl: our little PR nightmare | ||
| purl | Whiteknight: huh? | ||
| Infinoid | babies, huh? I prefer kittens | 21:49 | |
| allison | chromatic: did you uncover any more details as you were digging? | 21:50 | |
| chromatic: (as in, anything to hand off?) | |||
| Whiteknight needs to get chromatics valgrind and kcachegrind crash courses | 21:51 | ||
| Infinoid | That should be a wiki page, if it isn't already | 21:52 | |
| chromatic | Just those two log files I nopasted. | ||
| Infinoid | Or a blog post or something | ||
| allison | okay, I'll dig a little too | ||
| pmichaud: in this case, Parrot_oo_get_class_str and Parrot_oo_get_class are identical, creating a PMCProxy if they can't find the class object | 21:56 | ||
| dalek | rrot: r38942 | whiteknight++ | trunk/NEWS: [NEWS] add GC-related news update |
21:58 | |
| bacek | good morning | ||
| purl | Here I am, brain the size of a planet, and all they say is 'Good Morning' | ||
| Whiteknight | good morning bacek | 21:59 | |
| bacek | Whiteknight: | ||
| Whiteknight | bacek: | ||
| bacek need coffee... | |||
| purl | clowns'll eat me | ||
| Infinoid | Oh, wow. | 22:01 | |
| allison | I'm going to start committing the various book-keeping changes need for the release | 22:02 | |
| Infinoid | nm libparrot.so.1.0.0 | grep ' T ' | wc -l | ||
| 13633 | |||
| nm libparrot.so.1.2.0 | grep ' T ' | wc -l | |||
| 1186 | |||
|
22:04
contingencyplan joined
|
|||
| dalek | rrot: r38943 | allison++ | trunk/docs/project/ubuntu_packaging_guide.pod: [ubuntu] Some updates to the packaging guide from the most recent |
22:05 | |
| purl | packaging is, like, important, consider how you'll do this carefully before you do anything.. or very cool | ||
| rrot: r38944 | allison++ | trunk/ports/ubuntu/changelog: [ubuntu] Updating the date and PPA number from the most recent packaging. |
|||
| Whiteknight | the testf failures that I was seeing yesterday are disappeared | 22:06 | |
| Infinoid | allison: I've been following the release_manager_guide.pod instructions, but NEWS is probably only halfway done. Want my diff? | ||
| Whiteknight | fulltesting now, but I expect it to pass now | ||
| Infinoid | I've got a separate diff to update the guide; parrot.spec no longer seems to exist | ||
| allison | Infinoid: no need for the diff, just go ahead and commit when you're through | 22:07 | |
| I'll look at PMCProxy instead | 22:08 | ||
| dalek | rrot: r38945 | allison++ | trunk/docs/book/ch03_pir.pod: [book] Part way through the aggregate section edits on the PIR chapter. |
||
| Whiteknight | allison++ # great work on the book | 22:09 | |
| I'm trying not to get in the way of your work | 22:10 | ||
| allison | Whiteknight: thanks for the compliment, and for all the great work you did too | ||
| I'm only working on the PIR chapter at the moment, so all other chapters are fair game | |||
| Whiteknight | well you've already been through chapters 1 and 2 right | 22:11 | |
| ? | |||
| allison | and, I try to commit regularly, to make it easier to coordinate | ||
| yes, chromatic and I have both been through 1 and 2 | |||
| later chapters need more attention | |||
| Whiteknight | okay, then I'll treat those two as sacrosanct for now | ||
| and I'm not doing any book work for a while, until my fulltest completes | 22:12 | ||
| allison | more like "good enough" | ||
| chromatic | There may be some =for author notes in chapters 1-3. | ||
| allison | chapter 1 has none, and the two in chapter 2 are on my work | 22:13 | |
| (the question of whether the later chapters should be dynpmcs and dynops, or just PMCs and ops) | 22:14 | ||
| (those two chapters are pretty thin, and may not make it into this edition of the book) | |||
| Whiteknight | yeah, I was having a big problem fleshing them out | 22:15 | |
| allison | there's plenty to write about, but it may take longer than I have now | ||
| Whiteknight | maybe I'm artificially limiting it, I probably have too narrow a view of the target audience | 22:16 | |
| allison | what we need is an instruction manual for writing your own PMCs and ops | ||
| Whiteknight | in the book? | ||
| allison | aye | 22:17 | |
| but, not this edition | |||
| (it's a developer guide) | |||
| Whiteknight | okay, that's something to put in the todo list then | ||
| (as if I need another thing in my list) | |||
| allison | well, it doesn't have to be your list, could be anyone | 22:19 | |
| chromatic | I'd trade almost anyone task lists, but no one wants mine: set up health insurance, edit novel, write new novel, write profiling instructions, create nanoparrot ops, put previous novel on Scribd.... | 22:20 | |
| Whiteknight | my "list" is things that I want done and will do if nobody beats me to it | 22:22 | |
| Infinoid | Nanoparrot sounds like fun. | ||
| Whiteknight | not staking a claim, just expressing interest | ||
| kid51 must call perlsemny meeting to order | |||
| Whiteknight | chromatic: I'll write your novel. I don't offer warranties on my fiction work, however | ||
| and if you profile for a man, he will have a faster program once. If you teach a man to profile his programs will get iteratively faster | 22:23 | ||
| chromatic | Sure, but teaching other people how to profile isn't paying work, which is what I most need right now. | 22:24 | |
| Infinoid | "Create nanoparrot ops" is the (maybe risc-inspired) reduced list of ops I've heard mutterings of in the past, right? | 22:25 | |
| Whiteknight | do you accept karma? | ||
| Util | allison and pmichaud: the Trac ticket report you discussed on #ps is ready. Is it what you need? trac.parrot.org/parrot/report/16 | ||
| allison | Util: looks good | 22:28 | |
| purl | O_O | ||
| allison | Util: you can skip the "force perl 6 to sort first" part | 22:30 | |
| Util: ultimately more confusing than keeping it alphabetical | |||
| Util | Will do | ||
| chromatic | Infinoid, that's right. | 22:33 | |
|
22:34
eiro___ joined
|
|||
| dalek | rrot: r38946 | allison++ | trunk/docs/book/ch02_getting_started.pod: [book] Delete the removed PASM chapter from the description. |
22:35 | |
| Infinoid | chromatic: Awesome. I want to help. | ||
| Whiteknight | Infinoid: Where are you reading about htis? | ||
| allison | what's all that strange output near the end of 'make test': PMC filename pmc2c.t_2.pmc does not match pmclass name a! | 22:36 | |
| Util | allison: done, and improved the description. Perl6 is still happens to be ascii-first in the languages we have open tickets for. | ||
| Infinoid | Whiteknight: I've heard a few mentions of the idea on IRC, I don't have anything I can point you to | 22:37 | |
| allison | Util: excellent, many thanks! | ||
| Infinoid | Whiteknight: It's usually mentioned whenever someone asks how to make JIT not suck. | ||
| Whiteknight | okay, I was just wondering if there was a ticket | ||
| Util | glad to help | ||
| chromatic | Step one is the PMC PCT branch. | ||
| allison | Whiteknight: it's purely experimental at the moment | ||
| Whiteknight | yes, that branch is key | ||
| dalek | rcupinepascal: r73 | robin.ge++ | branches/oo-branch/ (5 files): * added builtin to return a newline for sheer lazyness * checked for '()' following exit statement in grammar |
||
| darbelo | allison: the strange output is from trac.parrot.org/parrot/ticket/665 | ||
| chromatic | Once we can create the C files from .pmc files, we can enhance that code generator so that we can write our PMCs in a little language that isn't mostly C. | 22:38 | |
| Whiteknight | yes, I'm pumped about that idea | ||
| chromatic | Then we can add nanoparrot.ops as a dynops file -- just as an experiment, at first -- and write PIR code to those ops instead of C code. | ||
| Whiteknight | might be worth trying to draft up a PDD about this language first, before we start breaking code ground on it | ||
| chromatic | Once we can make all of our PMCs work through nanoparrot ops, we can do something similar for the other ops files. | 22:39 | |
| allison | darbelo: thanks | 22:40 | |
| darbelo: the tests need to be updated too, added a quick note to the ticket | 22:42 | ||
| Whiteknight: it may not even be possible, so the path is prototype, review, spec, implement | 22:46 | ||
| dalek | rcupinepascal: r74 | robin.ge++ | branches/oo-branch/ (3 files): * added exists builtin |
22:47 | |
| rrot: r38947 | bacek++ | branches/tt452_reduce_mmd/src/pmc/integer.pmc: [pmc] Fix Integer.modulus for BigInt argument |
22:52 | ||
| bacek | chromatic: I've got good name for "nano-ops" - Level One Language | ||
| or just "LOL" :) | |||
| Infinoid | lolasm | ||
| bacek | Infinoid: I fixed invocation of Integer.modulus. It failing in different way now... | 22:53 | |
| Infinoid | Cool. I will have some time to help debug it, once I'm done with this release stuff | 22:54 | |
| bacek | When "The Release"? | ||
| Infinoid | I just love how Changelog, docs/project/release_manager_guide.pod and tools/util/release.json all use different date formats. ("2009.05.19", "May 19, 2009" and "19 May 2009", respectively.) ISO8601, anyone? | ||
| bacek | Unix timestams! | ||
| Infinoid | The release will happen when tewk, myself, or someone else gets around to it. I'm working up the NEWS stuff right now for whoever ends up doing it | 22:55 | |
| dalek | rrot: r38948 | bacek++ | branches/tt452_reduce_mmd/src/pmc/bigint.pmc: [pmc] Don't use multi for BigInt.bitwise_shl |
||
| bacek | ah, ok | 22:56 | |
| seen tewk | |||
| purl | tewk was last seen on #parrot 8 days, 8 hours, 17 minutes and 26 seconds ago, saying: nevermind, I'm alreaddy using 8888 [May 11 14:35:31 2009] | ||
| chromatic | lol.ops... I dunno. | 22:59 | |
| I like nanoparrot.ops because that's the minimal amount of Parrot that nanoparrot needs, especially when running embedded. | 23:00 | ||
| LOL is a much better acronym though. | |||
| Whiteknight | okay, I'm getting a lot of test failures in t/examples/* | 23:02 | |
| Infinoid | msg Andy (re: r38751) The whole idea behind ASSERT_ARGS is to check this stuff at runtime, because gcc isn't capable of doing a very good job of it at compile-time. Is there something else we can (or need to) do to help splint? | ||
| purl | Message for andy stored. | ||
| Whiteknight | I seem to remember that's expected | ||
| bacek | Whiteknight: You put "Refactor GC API" into wrong news... | 23:04 | |
| Infinoid | Don't worry, I've got " + Clean up the GC API." in the right NEWS | ||
| bacek | :) | ||
| chromatic | Where's STARTS THREE TIMES FASTER YOU UNGRATEFUL IMBECILES? That's a nice speedup. | 23:05 | |
| Whiteknight | chromatic++ | ||
| he | Hm, anyone up for helping me debug a 0xdeadbeef de-reference while doing t/pmc/io.t? | 23:06 | |
| (on NetBSD/sparc64 5.0) | |||
| bacek | chromatic++ # I'M GRATEFUL IMBECILE | ||
| chromatic | Anyone who's grateful isn't an imbecile. | 23:07 | |
| Infinoid too; chromatic++ checked in a surprising number of performance improvements this month | |||
| (even though I had to revert one... sorry) | |||
| chromatic | he, there's a page on the wiki about debugging GC problems. I can't find the link now. | ||
| Infinoid | he: Got a backtrace? | 23:08 | |
| chromatic | Backtraces don't help as much as figuring out the point of that PMC allocation and why it's unanchored. | 23:09 | |
| Infinoid | oh, he already posted one. nopaste.snit.ch/16603 | ||
| he | yep, that's the one. | 23:10 | |
| vtable = 0xdeadbeef | |||
| or, rather, pccinvoke_meth->vtable. | |||
| Infinoid | Is it really safe to call Parrot_PCCINVOKE from within a destroy method? | 23:11 | |
| chromatic | Hm, that was a googlewhack. | ||
| It's safe, except that ... hey, look! An order of destruction problem! | |||
| Infinoid | I was afraid of that. | 23:12 | |
| he | Haven't seen this problem in my other testing, though, which I find strange. I've rebuilt and re-tested over the last 2-3 days. | 23:14 | |
| allison | ah, I see what's going on | 23:15 | |
| Infinoid | Have you been doing "svn update" between those? It might mean it's a recent change | ||
| chromatic | Anything that changes the order of PMCs in the pools will trigger it. | ||
| he | Yep, I have, but I went back to a revision which succeeded on NetBSD/sparc64 4.0, and still got the problem on my 5.0 system. | ||
| Re-testing now with an updated copy on 4.0. | 23:16 | ||
| allison | when get_class does the look up, it's by name from the current HLL, but inside PMCProxy, it decides whether to cache it based on a lookup by integer type | 23:18 | |
| Infinoid | chromatic: Can we (ab)use the mark() functions to detect destruction ordering issues? | ||
|
23:18
tetragon joined
|
|||
| allison | so, it needs to do the lookup by integer type too before creating a PMC proxy | 23:19 | |
| chromatic | How would we detect that? | ||
| We walk through the pools backwards first. | 23:20 | ||
| That's after a final GC run. | |||
| Infinoid | Well, for the sake of argument... say you have a bit in pobj.flags which says "I'm going to destroy this". You make up a linked list (or whatever) of all the objects you intend to destroy. | ||
|
23:20
donaldh joined
|
|||
| Infinoid | Then you go through and call all of their mark() functions, which call back into the GC. When that function encounters an object with the "I'm going to destroy this" bit set, that object gets moved to the front of the list | 23:21 | |
| Or something. Is it possible to make that fast/practical? | |||
| I mean, the mark() function is the only (and right) way to determine inter-object dependencies. It would be nice if we could use them for this. | 23:22 | ||
| chromatic | mark() would be better as a parameterizable visit() in that case. | ||
| Infinoid | true. | ||
| chromatic | Which isn't a bad thing either. | 23:23 | |
| But it won't be quick or easy to implement. | |||
| bacek and cotto notwithstanding. | |||
| bacek | what? | ||
| Infinoid | Yeah, it's a lot of changed code | ||
| bacek++: You are awesome. | |||
| bacek | :) | 23:24 | |
| Infinoid | Or maybe you just call the mark() function, let that recurse to the bottom level dependencies, and then start freeing them up as you go back up the stack | 23:25 | |
| chromatic | We *could* change the VTABLE_destroy() macro to do nothing if PMC->vtable is 0xdeadbeef. | ||
| Infinoid | Which would be a lot easier than the nasty linked list idea. | ||
| chromatic | There's no stack though, unless you're talking about inspecting the C stack to traverse that graph leaves first. | 23:26 | |
| It's those kinds of sentences that make non-programmers in my life claim I don't speak English. | |||
| Infinoid | hah | ||
| I was actually talking about freeing it up at the end of the Parrot_gc_mark_PObj_alive() function, which is a horrible nasty hack. | 23:27 | ||
| And it wouldn't work anyway, because there may still be some other object somewhere else which still depends on it, so nevermind. | |||
| chromatic | Right. It's a graph. | 23:28 | |
| Possibly -- and often -- cyclic. | |||
| Infinoid | You can spend a flag bit to skip the duplicates | ||
| Though I don't know if you can break all of the cycles afterwards | 23:29 | ||
|
23:29
tetragon_ joined
|
|||
| bacek heard hummers are good at breaking stuff | 23:29 | ||
| chromatic | Most of the PMCs aren't in these weird cycles. | 23:30 | |
| Infinoid | Cycles notwithstanding, I think we can be *very* smart about ordered destruction, I'm just not sure how that would perform | ||
| chromatic | Mostly it's not a problem. | ||
| We know that we have to destroy certain types of PMCs before other types of PMCs. | 23:31 | ||
| Maybe we need an "Ordered destruction" flag. | |||
| During the final pool sweeping, destroy everything without that set. | |||
| Then... magic happens... dunno. | |||
| Infinoid | Would that be per-object or per-class? | 23:32 | |
| bacek | What if two PMCs have pointer to each other in ATTRs? | ||
| Infinoid | A general way to say "destroy subs before namespaces" might be enough | ||
| nopaste | "allison" at 76.191.198.74 pasted "patch to avoid duplicate proxy creation" (26 lines) at nopaste.snit.ch/16616 | ||
| chromatic | Destruction ordering is per-class, I think. | 23:33 | |
| allison | Could someone Rakudo-ish please test that? | ||
| chromatic | I can test that. | ||
| Or I can punch up my dialogue in chapter 5. Grr. | 23:34 | ||
| allison | the test should be fast | ||
| chromatic | ResizableStringArray: Can't shift from an empty array! | 23:36 | |
| allison | chromatic: what's that from? | 23:37 | |
| chromatic | ResizableStringArray: Can't shift from an empty array! | ||
| current instr.: 'parrot;ResizablePMCArray;list' pc 257113 (src/gen_metaop.pir:99) (src/gen_setting.pm:3122) | |||
| called from Sub 'perl6;List;!flatten' pc 6578 (src/classes/List.pir:237) | |||
| called from Sub 'onload' pc 11624 (src/builtins/globals.pir:31) | |||
| called from Sub '_block151' pc -1 ((unknown file):-1) (src/gen_setting.pm:3122) | |||
| That's from Rakudo-in-HLL with that patch applied. | |||
| allison | I have no clue where that might be coming from | 23:38 | |
| how about Rakudo out of HLL with the patch applied? | |||
| chromatic | Works fine. | 23:40 | |
| jonathan | chromatic: You get that during the build? | 23:41 | |
| Or when running the perl6 produced by the build? | |||
| allison | why is ResizablePMCArray reporting an error from ResizableStringArray? | ||
| chromatic | The latter. | ||
| Infinoid | about 400 commits went into this release... 100 of those are within the last 4 days. Is that normal? | 23:42 | |
| jonathan | chromatic: Especially odd, since that bit of code is in the PIR and would be run by the stage 1 compiler too. :-| | ||
| Infinoid | (And does that seem insane to anyone else?) | 23:43 | |
| allison | Infinoid: seems pretty typical | ||
| good velocity | |||
| Infinoid | Yeah, the peak just before the commit seems crazy from a stability perspective tho | ||
| allison | and, the last 4 days is nearly a week, so about a quarter of the commits in a quarter of the month | ||
| jonathan | .oO( would more releases increate our average commit rate? ) |
||
| Infinoid | s/commit/release/ | ||
| allison | Infinoid: they're largely bug fixes, not feature additions | 23:44 | |
| Infinoid | I'm not complaining in any case, was just curious :) | ||
| jonathan | allison: I can only ponder the the list method is declared on RPA and copied into RSA somehow... | ||
| allison: Or invoked on it. | |||
| That or the report is bogus. | 23:45 | ||
| Whiteknight | I wonder if we should merge the PGE and NQP chapters into the PCT one | ||
| chromatic | PGE no. NQP probably. | ||
| jonathan | chromatic: Out of curiosity, does running perl6.pir and/or perl6.pbc make a difference? | 23:46 | |
| I'm expecting not... | |||
| allison | Whiteknight: I split them out because they were too long | ||
| Whiteknight: they have plenty of content and importance to stand as chapters | 23:47 | ||
| Whiteknight | okay, just double-checking | 23:48 | |
| chromatic | I haven't tried... seriously cramped for time at the moment. | ||
| jonathan | chromatic: OK, no worries. | ||
| chromatic | I probably won't get back to this until tomorrow morning. | 23:49 | |
| allison | I get some test failures anyway: set_number_native() not implemented in class 'Class' | ||
| chromatic | Yeah, looks like it's not creating enough PMCProxy PMCs. | ||
| jonathan | Ah, OK. | ||
|
23:50
whoppix joined
|
|||
| jonathan | I was going to apply it myself if it passed al Parrot tests, but if it's missing some of those, they'll be far easier to debug from than Rakudo. | 23:50 | |
| It's failing *very* early, fwiw. | |||
| he | hm, still succeeds in NetBSD/sparc64 4.0 | ||
| allison | jonathan: in Rakudo? | 23:52 | |
| jonathan | allison: Yeah | 23:55 | |
| Seems so. | |||
| It's in the :load :init blocks so far as I can tell. | |||
| allison: If you have Parrot test fails too though, they're probably a better point to hunt the issue down. | |||