Parrot 2.6.0 | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | merge html_cleanup (talk to Coke), merge gc_* branches, fix/replace/optimize hashing
Set by moderator on 10 August 2010.
00:00 Psyche^ joined
plobsing does parrot's core have any thread-local storage strategy beyond "just shove another member into interp"? 00:06
00:20 kid51 joined, luben joined
darbelo plobsing: parrot's core doesn't have functional threads, right now. 00:25
mikehh All tests PASS (pre/post-config, make corevm/make coretest, test, fulltest) at r48495 - Ubuntu 10.04 amd64 (g++ with --optimize) 00:26
00:28 preflex joined
plobsing darbelo: I'm just looking for a better way to do what IMCC's imc_info does now. 00:32
00:49 simcop2387 joined
darbelo plobsing: whiteknight's gsoc student (Chandon, I think) was working on threads, he might have some idea. 00:58
whiteknight eh? 01:28
dalek rrot: r48496 | jkeenan++ | trunk/t/native_pbc (4 files):
(Once again ...) Run tools/dev/mk_packfile_pbc to update t/native_pbc files for Darwin/PPC.
01:29
rrot: r48497 | jkeenan++ | trunk/src/pmc/callcontext.pmc:
[codingstd] Insert POD 'item' so that documentor will know where to add
plobsing whiteknight: any ideas about how a core parrot component (eg: packfile reading) should go about caching re-usable objects (I'm thinking some kind of thread-local cache) 01:31
but I'm not sure if we have anything like that
whiteknight we don't have anything like that now, no. I think that kind of stuff is a little bit tangential to what Chandon has been doing in his project
I think he's put some consideration towards it, but he's had other projects to work on first 01:32
plobsing cool
whiteknight in short, it's obviously something we want. We just aren't there yet 01:33
plobsing the root problem that I'm trying to solve is that we allocate 1 ImageIO (and 1 RPA) for every PBC constant we thaw. Rakudo thaws 10s maybe 100s of thousands of these. If we could somehow reuse the ImageIO we could probably get a pretty big win. 01:34
whiteknight purl msg Chandon people are very interested in your project. I don't know what your plans are, but a writeup about what all you've accomplished this summer, what else you think needs to get done, and how you think other interested developers can get involved (and there ARE several) would be very awesome. 01:37
purl Message for chandon stored.
whiteknight plobsing: yes, anytime we can cache/reuse a PMC like that it could be a win 01:38
plobsing btw, when we're allocating these, the GC is off.
whiteknight of course, some of that win is lost over long program runs by having to mark those PMCs for each GC run, so we really need some kind of generational GC to mark those kinds of PMCs as long-lived 01:39
ok
01:41 rurban_ joined
darbelo whiteknight: if you know the precise lifetime of the PMC you could allocate it in a constant pool and deallocate manually. 01:42
plobsing darbelo: is this strategy documented or used anywhere? this might be something I could use. 01:44
whiteknight darbelo: maybe, but the constant pool is pretty well disliked and we can't rely on it being around forever. A way to anchor a live PMC and move it to a rarely-scanned generation would be best
dalek rrot: r48498 | jkeenan++ | trunk/src/pmc/class.pmc:
Insert POD 'item' so that documentor will know where to add PMC function documentation. In several places, convert inline comments to POD.
01:46
darbelo plobsing: See Parrot_pmc_new_temporary(), line 637 of src/pmc.c 01:47
whiteknight temporaries are a little dangerous. They are not intended for any PMC which has a lifespan more than a C function 01:48
darbelo True, but a similar strategy could be applied to 'manually managed' PMCs. 01:49
plobsing what is wrong with yacc that causes every ~1/10 of my complete rebuilds to generate complete garbage in compilers/imcc/imcparser.c? 01:55
darbelo Are you running configure with --maintainer ? 01:56
plobsing yes
darbelo Oh, wait. You are *hacking* on IMCC. Sorry, nevermind. 01:57
plobsing I'm not right now. I do on occasion, so I have parrot-config aliased appropriately. 01:58
dalek rrot: r48499 | jkeenan++ | trunk/src/pmc/eval.pmc:
[codingstd] Insert POD 'item' so that documentor will know where to add
02:03
mikehh rakudo (9e1bcd4) builds on parrot r48495 - make test PASS, make stresstest (pugs r31999) PASS - Ubuntu 10.04 amd64 (g++ with --optimize) 02:06
02:09 simcop2387 joined
mikehh kid51: how are we doin' on pmc docs, haven't looked for a couple of days? 02:09
darbelo Hm. I guess over half an hour to compile rakudo is too high a price for building unde 300mb of RAM. 02:12
kid51 darbelo: See rt.perl.org for [perl #76828] 02:13
For me rakudo* failed to build on my venerable iBook G4, 256mb phys mem -- although it perl6 was certainly building on Parrot 2 years ago 02:14
Also, see my recent post to parrot-dev list on this subject
plobsing kid51: do static functions need POD doc? 02:15
darbelo I'm kid51 I've seen it. And I'm also, kind of, working on it.
kid51 plobsing: I assume all those PMC docs need documentation unless someone provides a good reason otherwise. 02:16
mikehh darbelo: my build took real 4m4.350s, user 4m40.460s, sys 0m4.610s
kid51 If you have such a good reason, you should post in trac.parrot.org/parrot/ticket/1726 02:17
plobsing as far as I'm concerned, static functions are implementation details.
kid51 Please post in that TT. I'm just going thru the ticket that mikehh created for me :-)
mikehh darbelo: stresstest - real 22m13.218s, user 71m14.060s, sys 2m17.160s
darbelo mikehh: On my box, the 'branch point' is 6min or so, current branch time is a bit under 8mins, after that last failed tune up, it took over half an hour.
I'm mostly using the rakudo build as stress test for pool compacting :) 02:18
kid51 mikehh: As posted in TT #1726, I've been going thru the .pmc files claimed to be deficient re docs by t/coding_std/pmc_docs.t.
I've been adding the POD =item headers, which (most of the time) converts the function from "missing documentation" to "boilerplate only." 02:19
dalek rrot: r48500 | jkeenan++ | trunk/src/pmc/imageio.pmc:
Insert POD 'item' so that documentor will know where to add PMC function documentation. In several places, convert inline comments to POD.
02:20
kid51 And then I've been emailing our various contributors to request assistance.
Hence, plobsing's question, which is probably a reaction to the email I've sent him! :-)
For the time being, I'll let others argue over what our PMC function documentation standard *ought* to be. 02:21
I'm just trying to make the documentors' job easier.
mikehh: But t/codingstd/pmc_docs.t, which is pretty much a clone of c_function_docs.t, has some problems. 02:22
Functions whose signatures are more than 100 characters (I think) or functions whose first lines or signatures we have broken into two+ lines to pass the linelength.t test, are still characterized as "missing" rather than boilerplate. 02:23
mikehh kid51: in what area, I do know it is requires "exact" documentation? 02:24
kid51 mikehh: Which 'it' are you referring to?
mikehh kid51: documentation, the line beeak apears to be 80 characters 02:25
break
darbelo kid51: For the record, I think static functions in PMC files *shouldn't* have POD documentation. They should be documented, yes, but not in POD. 02:26
kid51 So, pmc_docs.t is an imperfect tool.
mikehh for the pod documentation
kid51 darbelo: Can you post that in TT #1726?
mikehh in terms of the header item it seems to break lines at 80 characters c_function_docs.t at least 02:27
darbelo kid51: Will do.
kid51 darbelo, plobsing: If the consensus is that static functions in PMCs should not have POD, then we will try to change the tool to take that into account. 02:28
But, suggestions for modifying the coding standards have to start on TT or on list.
mikehh we should bring that up as the #ps meeting for a decision on it 02:29
kid51 knows very little personally about the structure/content of .pmc files ... but
kid51 does know how to insert POD formatting code! 02:30
Are static functions in PMCs the same as static functions in C? 02:31
plobsing yes. pmc2c just passes them through.
kid51 In the meantime, if there are any "non-static" functions in the .pmc files we asked you to take a look at, please try to write a few sentences of documentation for them. 02:32
And if you feel like substituting /* */ comments for POD =item for the static functions, please do so.
The main point is to make our source code more readily accessible to the next generation of Parrot developers, e.g., next year's GSOC students! 02:33
plobsing I understand that, but I see POD docs as documentation for people who just want to *use* the PMCs, without opening up the files. 02:35
comment documentation for people actually editing the files.
mikehh we seem to require pod documentation for static functions with c_function_docs.t 02:36
kid51 Well, post all your feelings about this issue in the TT.
plobsing I already made a short comment. 02:37
kid51 Yes, just got it. Thanks.
mikehh I am pretty sure that the coding standards were set up to make sure that functions were documented. both for the user and maintainer 02:45
we had too many instances of NO documentation at all 02:46
plobsing Yes, but what is signal to one is noise to the other and vice-versa. POD vs comments is a good way to create two communication channels.
mikehh trying to fix a problem often comes with gah what is that function for 02:47
perhaps for later, at this stage we need to enforce some documentation standard 02:48
02:48 janus joined
whiteknight is there any way in PIR to assign a key literal to a register? 02:49
mikehh and testing for the existance of documentation is difficult at any time, with some standard you at least can say there is SOME documentation 02:50
dalek rrot: r48501 | plobsing++ | trunk (4 files):
move cursor management into Parrot_{freeze,thaw}_pbc
02:53
mikehh with the tests in c_function_docs.t and now pmc_docs.t we can at least test that every function has some (or not) documentation.
It is not perfect,by any means, but better than nothing 02:54
kid51 mikehh: Agreed.
mikehh: Let's assume for the moment that all those POD =item markers I've been putting into .pmc files for the past couple of days -- or more precisely, those near 'static' functions -- are not the best approach ... 02:55
... nonetheless, more than 97% of those static functions have neither inline comments nor POD. 02:56
plobsing that's fair.
I'm also not sure how PDDs are supposed to factor into this. 02:57
mikehh kid51: definately - at some later stage we can maybe look at other methods of checking for documentation, at the moment we at least have something 02:58
02:58 preflex joined
kid51 must sleep 03:00
purl Sleep is for the weak.
kid51 purl forget sleep
purl kid51: I forgot sleep
whiteknight has something changed recently with library loading? 03:04
dalek rrot: r48502 | mikehh++ | trunk/src/pmc/class.pmc:
fix codetest failure - trailing whitespace
03:26
whiteknight bah. I don't know what happened, but I am suddenly unable to loadlib my library 03:38
Tene whiteknight: ask strace to show you where it's looking, and if it was found. 03:49
whiteknight Tene: I'm tracking it down. I think there's an error in my lib 03:50
Tene ahh
whiteknight pmc2c-- was silently breaking one of my dynpmcs, which I think was creating a dynpmc without all the exported symbols defined 03:51
Tene ack 03:52
mikehh All tests PASS (pre/post-config, make corevm/make coretest, test, fulltest) at r48502 - Ubuntu 10.04 amd64 (gcc with --optimize) 03:54
03:58 Coke left
dalek rrot-linear-algebra: 2694048 | Whiteknight++ | src/rakudo/nummatrix2d.pm:
jot down a quick wrapper for NumMatrix2D for Rakudo. I haven't tested it and
04:09
rrot-linear-algebra: 3489a10 | Whiteknight++ | (2 files):
update the rakudo class, and add a short example file proving that at least some
rrot-linear-algebra: d51befe | Whiteknight++ | src/pmc/pmcmatrix2d.pmc:
fix a build warning/error in pmcmatrix2d
rrot-linear-algebra: 4f25fcb | Whiteknight++ | s (4 files):
add a new MatrixProxy type, which is going to facilitate lvalue postcircumfix:<[

and converts scalar get/set on the proxy to keyed get/set on the matrix
rrot-linear-algebra: 9bd9299 | Whiteknight++ | src/pmc/complexmatrix2d.pmc:
add stub zgemm wrappers to ComplexMatrix2D. Commented out because it doesn't
whiteknight Rakudo is going to have a full-fledged linear algebra module soon, with ever-expanding interfaces to BLAS 04:11
The rest of the language might be slow, but it's matrix multiplications are going to be hella fast
but, it's after midnight now, so it's time for bed. Goodnight 04:12
04:12 simcop2387 left
dalek rrot-linear-algebra: 9db7bcd | Whiteknight++ | .gitignore:
update .gitignore to ignore generated files in src/nqp
04:15
mikehh rakudo (9e1bcd4) builds on parrot r48502 - make test PASS, make stresstest (pugs r31999) PASS - Ubuntu 10.04 amd64 (gcc with --optimize) 04:25
dalek rrot: r48503 | mikehh++ | trunk/src/pmc/bigint.pmc:
correct =item to pass boilerplate only in pmc_docs.t
05:08
05:13 Coke joined
Coke Does nqp-rx have a version of PGE::Util::split? 05:13
nevermind, moving to list. gnight. 05:18
05:18 Coke left
dalek rrot: r48504 | mikehh++ | trunk/src/pmc/callcontext.pmc:
correct =item(s) to pass boilerplate only in pmc_docs.t
05:24
rrot: r48505 | mikehh++ | trunk/src/pmc/class.pmc:
correct =item(s) to pass boilerplate only in pmc_docs.t
rrot: r48506 | mikehh++ | trunk/src/pmc/eval.pmc:
correct =item to pass boilerplate only in pmc_docs.t
05:36 ingy joined
mikehh enough for now - need a break, more later 05:54
dalek rrot: r48507 | mikehh++ | trunk/src/pmc/integer.pmc:
add documentation to pass pmc_docs.t
05:57
rrot: r48508 | mikehh++ | trunk/t/codingstd/pmc_docs.t:
remove src/pmc/integer.pmc from TODO list of pmc_docs.t
kudo: 8455499 | pmichaud++ | (17 files):
Merge branch 'master' into range
06:06
kudo: e8f2c6b | pmichaud++ | src/core/Range (2 files):
A few more Range updates for Whatever, .from, .to, .bounds.
kudo: 3f202d5 | pmichaud++ | src/core/ (3 files):
More range improvements. All spectests pass.
kudo: 6be4293 | pmichaud++ | src/core/Range.pm:
No longer need separate checks for +/- Inf in Range.
06:19 whiteknight joined 06:25 robin-gvx joined 06:48 fperrad joined 07:13 jsut_ joined 08:11 jsut joined 09:41 rurban_ joined 10:33 barney joined
dalek rrot: r48509 | barney++ | trunk/examples/languages/squaak/doc/tutorial_episode_1.pod:
Worked on episode 1 of the Squaak tutorial.
10:39
10:39 lucian joined
dalek rrot: r48510 | barney++ | trunk/examples/languages/squaak/doc/tutorial_episode_2.pod:
Fixed name of executable and name of pod file.
10:55
rrot: r48511 | barney++ | trunk/examples/languages/squaak/doc/tutorial_episode_1.pod:
Rectified error: installable_squaak compiles to PIR, not PBC.
11:52 preflex joined 11:58 lucian joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, test, fulltest) at r48511 - Ubuntu 10.04 amd64 (g++) 12:08
12:19 whiteknight joined
dalek kudo: 10041cb | (Solomon Foster)++ | src/core/ (2 files):
Implement infix:ļæ½<=>ļæ½(Num, Num), infix:ļæ½cmpļæ½(Num, Num), and

On the plus side, this knocks about 10% off the execution time of Range iteration on Nums. (It's still mysteriously about 50% slower than Range iteration on Ints.) On the minus side, all of these functions are violating the spec by not using the Order enum.
12:20
rrot: r48512 | mikehh++ | trunk/src/pmc/bignum.pmc:
add documentation to pass pmc_docs.t
12:35
rrot: r48513 | mikehh++ | trunk/t/codingstd/pmc_docs.t:
remove src/pmc/bignum.pmc from TODO list of pmc_docs.t
12:42 kid51 joined
kid51 mikehh: Did you stay up all night writing documentation? 12:44
(I had sent emails to several committers requesting their efforts.) 12:45
12:48 jan joined
dalek rrot: r48514 | mikehh++ | trunk/src/pmc/packfile.pmc:
add documentation to pass pmc_docs.t
12:51
rrot: r48515 | mikehh++ | trunk/t/codingstd/pmc_docs.t:
remove src/pmc/packfile.pmc from TODO list of pmc_docs.t
mikehh kid51: not all night - got a nap of about 4 hours 13:07
dalek rrot: r48516 | mikehh++ | trunk/src/pmc/orderedhash.pmc:
add documentation to pass pmc_docs.t
13:08
rrot: r48517 | mikehh++ | trunk/t/codingstd/pmc_docs.t:
remove src/pmc/orderedhash.pmc from TODO list of pmc_docs.t
mikehh kid51: about 3 files left with Undocumented functions:, going to leave it you for a bit, need to look at html_cleanup branch 13:15
kid51 mikehh: Well, my hope was that writing docs would not fall to just the Cage Cleaners. That's why I've sent email to about a dozen commiters requesting their help. 13:17
Infinoid mikehh++ 13:19
mikehh kid51: I put in some documentation where I thought I understood what was happening, and got caught up, but enough of that for now for me, just making sure I didn't break anything 13:20
whiteknight kid51: ping 13:29
13:31 barney joined
dalek TT #1744 created by whiteknight++: load_language "nqp" fails 13:31
TT #1744: trac.parrot.org/parrot/ticket/1744
13:50 macroron joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, test, fulltest) at r48517 - Ubuntu 10.04 amd64 (g++ with --optimize) 13:50
mikehh gotta go to a local LUG meetin' - bbl 13:51
whiteknight purl msg Austin in kakapo's unit tests, I would like a way to prove that a test runs to completion. I had a series of tests that were exiting early, but weren't failing any assertions so I didn't know about it 13:59
purl Message for austin stored.
moritz whiteknight: don't you have a test plan? 14:15
whiteknight moritz: kakapo's tests are modeled on xunit 14:24
each test is a function, the test "passes" unless an assertion is failed 14:25
moritz hm
14:26 bacek joined
bacek aloha, humans 14:26
14:28 aloha joined
whiteknight good morning, bacek 14:32
bacek whiteknight, it's about 10 pm here :)
clock?
purl bacek: LAX: Sun 7:32am PDT / CHI: Sun 9:32am CDT / NYC: Sun 10:32am EDT / LON: Sun 3:32pm BST / BER: Sun 4:32pm CEST / IND: Sun 8:02pm IST / TOK: Sun 11:32pm JST / SYD: Mon 12:32am EST /
whiteknight bacek: it's morning somewhere
bacek whiteknight, indeed
14:33 JimmyZ joined 14:52 jan joined 14:56 ruoso joined
arnsholt in PIR, .return () returns a NULL PMC, right? 15:00
15:01 lucian joined
whiteknight arnsholt: I don't know. I don't think it returns anything 15:03
arnsholt Ah. That probably explains the weirdness I'm seeing 15:05
Or not. More continuation weirdness. Yay 15:06
15:14 theory joined 15:15 darbelo joined
dalek kudo: 21f3104 | moritz++ | build/PARROT_REVISION:
bump PARROT_REVISION to get some testing after the merge of the parrot
15:16
kudo: 869b1fc | moritz++ | src/core/ (2 files):
Merge branch 'master' of github.com:rakudo/rakudo
15:21 ruoso joined
dalek kudo: f100e9d | pmichaud++ | src/core/ (3 files):
Using double-angles around 'cmp' makes them harder to find (e.g., with ack).
15:39
15:43 theory joined 15:57 gunnar_ joined 16:08 khairul joined 16:18 lucian joined
pmichaud whre can I find information about community repositories on github? 16:19
*where
16:22 lucian joined
pmichaud nm, I found it. 16:27
arnsholt Is a continuation supposed to reset registers to the value they had, or are subsequent changes supposed to remain? 16:44
16:56 ruoso joined 17:48 whiteknight joined 19:22 tcurtis joined
darbelo Okay, I think that's about as far as I'm going to get with compact_pool. Meh. 19:37
dalek kudo: c4b6df5 | (Solomon Foster)++ | src/core/ (2 files):
Move the infix:ļæ½<=>ļæ½(Numeric, Numeric) logic into infix:<cmp>(Numeric,

infix:<cmp>(Numeric, Numeric). Also implement both infix:<cmp>(Real, Real) and infix:ļæ½<=>ļæ½(Real, Real) in terms of infix:<cmp>.
19:38
sorear arnsholt: depends on the implementation of continuations 19:45
20:10 gbacon joined
arnsholt sorear: Well, Parrot's continuations, in this case 20:21
Parrot as is doesn't restore them. I was wondering if that is as specced or not 20:23
darbelo I think there was a ticket for a spec clarification on that. Don't know if it was acted upon. 20:24
arnsholt Right. I'll see if I can find that, then 20:26
darbelo Hm, I do wonder if we really need to zero out blocks in the string pool. 20:37
sorear Why do we even *have* a string pool? 20:40
darbelo Becouse if you have to put string contents somewhere? 20:54
21:22 kid51 joined
kid51 whiteknight: pong (very delayed) 21:22
21:59 davidfetter joined
dalek kudo: 83b2cdf | masak++ | (3 files):
[Buf] worked on &pack, .unpack and .encode

  * The directives they know about: A H C S L n N v V x
  * .encode now recognizes its $encoding parameter
  * It can handle utf-8 (default), latin-1, and ascii
22:19
22:26 hercynium joined
cotto msg khairul The User Guide should define the terms it uses like "probe" and "instrument", but in general any term that someone interested in your project might not think of in the same way you do. 22:33
purl Message for khairul stored.
cotto botsnack 22:34
purl :)
cotto iaieqwjenlkjavhhewkihewqirhewbotsnackqwuerkjwqnlkdfljlaksjkbwlkelgal;ldf 22:41
purl :)
jnthn thebotsnackered 22:43
purl :)
23:04 dngor joined 23:06 workbench joined 23:18 chromatic joined, s1n joined
whiteknight kid51: when you get a chance, could you take a look at #1744? I suspect it could be a very small task for somebody familiar with install_files.pl 23:19
purl msg kid51 when you get a chance, could you take a look at #1744? I suspect it could be a very small task for somebody familiar with install_files.pl 23:21
purl Message for kid51 stored.
whiteknight incoming 23:22
purl duck!
dalek rrot-linear-algebra: 2f9f3d6 | Whiteknight++ | :
<pre>m src/pmc/nummatrix2d.pmc

  </pre>
   <pre style='white-space:pre-wrap;width:81ex'>Found a bug where iterate_function_ didn't respect transpose state, and the result matrices were wrong. Added two tests for the new behavior, though only nummatrix is tested to actually pass the test now</pre>
23:33
rrot-linear-algebra: 1d88c1c | Whiteknight++ | :
<pre>m examples/nummatrix2d.rakudo.pm

  </pre>
   <pre style='white-space:pre-wrap;width:81ex'>more updates to my rakudo experiment. More things are working now with a custom BUILD submethod instead of a new method</pre>
rrot-linear-algebra: f53324f | Whiteknight++ | :
<pre>+ t/run_test.pir

   <pre style='white-space:pre-wrap;width:81ex'>add a run_test.pir, which is like the old nqp-based run_test, except it actually works</pre>
rrot-linear-algebra: 7193842 | Whiteknight++ | :
<pre>m setup.pir

   <pre style='white-space:pre-wrap;width:81ex'>I hate when distutils strips debug symbols from the generated binary. Force a flag which always prevents that</pre>
rrot-linear-algebra: 695e0f6 | Whiteknight++ | :
<pre>m src/pmc/nummatrix2d.pmc

   <pre style='white-space:pre-wrap;width:81ex'>fix nummatrix2d.iterate_function_inplace to iterate row-major</pre>
rrot-linear-algebra: 6a845b4 | Whiteknight++ | :
<pre>m t/testlib/matrixtest.nqp

   <pre style='white-space:pre-wrap;width:81ex'>The iteration method tests in matrixtest.nqp were all silently failing and I didn't know it. calling return() inside the -> lambda returns from the method, without ever hitting the assertions. Instead of -> lambdas, use nested subs, which handle return just fine. Also, avoid use of newclosure where not needed</pre>
rrot-linear-algebra: 2c2eaf1 | Whiteknight++ | :
<pre>m t/testlib/matrixtest.nqp

   <pre style='white-space:pre-wrap;width:81ex'>fix pmcmatrix to pass all the new tests. Start fixing complexmatrix, though it's still failing in weird ways</pre>
darbelo (html commits)-- 23:54
chromatic darbelo, did you see my patch on the list?
darbelo chromatic: No. Looking now. 23:55