|
Parrot 2.6.0 | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | fix 'make html' (talk to Coke), update tutorial (talk to tcurtis) Set by moderator on 21 July 2010. |
|||
|
00:03
dduncan joined
|
|||
| cotto_work | dukeleto (whenever you see this): do you know if any import of Parrot's svn repo to git will have the same revision hash values or if that's specific to the import? | 00:11 | |
|
00:14
dduncan left
00:22
jevin joined
00:28
jevin joined
|
|||
| particle | cotto_work: the hash values are deterministic | 00:29 | |
| they must be the same, as they're generated from the file contents | 00:30 | ||
| cotto_work | That's what I'd expect. | 00:31 | |
| sorear | it does, though, depend on the parameters of the conversion | ||
| if a different mailmap file is used, the hash will come ou differently | |||
|
01:08
plobsing joined
|
|||
| dukeleto | cotto_work: if an import starts on the same revision and uses the same import parameters (like mailmap and a few others) then I beleive the hash values are the same | 01:33 | |
|
01:46
ruoso joined
01:51
chromatic joined
|
|||
| chromatic | msg plobsing Suppose we had a mechanism to unpack PackFile constants lazily. | 01:52 | |
| purl | Message for plobsing stored. | ||
| plobsing | chromatic: that seems doable | ||
| chromatic | ping, I suppose | 01:53 | |
| some 28.75% of Rakudo's startup time is unpacking constants. | |||
| plobsing | already? I thought it wasn't using constants heavily. | ||
| chromatic | 25,391 of them by my count. | 01:54 | |
| almost 18k strings and the rest PMCs | |||
| plobsing | that does seem like a lot. I doubt they are deep though. How many are non-subs? | 01:55 | |
| and non-FIA | |||
| chromatic | That I can't tell you offhand. | ||
| plobsing | FIA and Sub are (in my completely unsupported-by-facts opinion) likely the bulk of the PMCs thawed and they don't recurse much. | 01:57 | |
| chromatic | You're probably right. | ||
| plobsing | we could still have a look at it though. Do we let the GC know we're allocating a ton of things that won't become free before it runs out of memory while we thaw? | 01:58 | |
| strings that is (I know we do for PMC) | 01:59 | ||
| chromatic | 22,422 Subs thawed, 19,436 LexInfos thawed, 5,801 Keys thawed, 7,501 Strings thawed, 691 FIAs thawed, 135 FPAs thawed. | ||
| Parrot_thaw_pbc suspends the GC. | 02:00 | ||
| plobsing | but what about for strings? | ||
| oh | |||
| nm | |||
| those LexInfos could get heavy. | 02:02 | ||
| dukeleto would love some feedback on news.perlfoundation.org/2010/08/201...posal.html | |||
|
02:07
bacek joined
|
|||
| plobsing | actually, lazily decoding the const table seems pretty easy. I've got half of a patch already. Should be done sometime tonight. | 02:17 | |
| doing it right might be a little tougher | |||
| chromatic | It seemed straightforward, if we have good encapsulation now. | 02:19 | |
|
02:19
kid51 joined
|
|||
| kid51 | Smolder down? | 02:20 | |
| Could not upload report to Smolder at smolder.plusthree.comHTTP CODE: 500 (Can't connect to smolder.plusthree.com:80 (connect: Connection refused)) | |||
| dalek | rrot: r48254 | jkeenan++ | branches/tt1725_headerizer_documentation/t/perl/testlib/imcc.y: Add a dummy file for testing headerizer. |
02:21 | |
| rrot: r48255 | jkeenan++ | branches/tt1725_headerizer_documentation/t/perl/testlib/dummy_imcc.y: Make filename self-documenting. |
|||
| rrot: r48256 | jkeenan++ | branches/tt1725_headerizer_documentation (2 files): Change name of file when mentioned inside. Add to MANIFEST. |
|||
| purl | dalek: that doesn't look right | ||
| rrot: r48257 | jkeenan++ | branches/tt1725_headerizer_documentation/tools/build/headerizer.pl: Move declaration of main() toward top of file. |
|||
| rrot: r48258 | jkeenan++ | branches/tt1725_headerizer_documentation (2 files): A little refactoring as we get started writing tests. |
|||
|
02:22
khairul joined
|
|||
| kid51 | dukeleto: I'm sure someone will ask: Why should the Perl Foundation fund a Parrot proposal? Why shouldn't the Parrot Foundation do that? (Now we know that PaFo hasn't bothered to raise any money yet, but ... ) | 02:23 | |
| chromatic | Looks like the ImageIO PMC's mark() should mark its constant table. | 02:24 | |
| plobsing | One pitfall is that constants are variably sized in PBC. I'll have to scan linearly for each constant on the first lookup. It'll be more costly, but it'll be amortized better. | 02:25 | |
| If and when that becomes a packfile pmc, sure. But it should be being held live by other sources. | 02:26 | ||
| Coke | msg chandon - I don't think the SDL examples have been maintained. | 02:33 | |
| purl | Message for chandon stored. | ||
| Coke | kid51: because Rakudo sits on top of parrot. | ||
| so the Perl 6 implementation with the biggest mindshare ATM would benefit. | 02:34 | ||
| As a GC member, I'd certainly consider a parrot-will-help-rakudo grant proposal. | |||
| kid51 | Coke: I'm not disagreeing. I'm just trying to avert a possible objection. | 02:37 | |
| dalek | rrot: r48259 | jkeenan++ | branches/tt1725_headerizer_documentation/t/perl/testlib/dummy_imcc.y: Start to trim down this dummy copy file to a more reasonable length. |
02:38 | |
| chromatic | plobsing, is it alive during thaw? | 02:41 | |
| plobsing | yes. it is the constant table of the currently-decoding bytecode | 02:43 | |
| it's a bit of a hack to allow for backreferences to previous constant strings in the const table | |||
|
02:44
TiMBuS joined
|
|||
| sorear | does any other implementation have any significant mindshare *at all*? | 02:44 | |
| plobsing | How much does allocating 1 small malloced object per constant cost us? | 02:50 | |
| seems like it could be an easy win to consolodate those into one big allocation | 02:51 | ||
| dalek | rrot: r48260 | plobsing++ | branches/dynop_mapping (129 files): sync with trunk |
02:54 | |
| Coke | sorear: one hates to presume. | 02:56 | |
| especially when one is both on the TPF GC and the PaFo board. ;) | 02:57 | ||
| khairul | cotto: ping | 02:58 | |
| cotto | khairul, pong | 03:00 | |
|
03:01
janus joined
03:03
Austin joined
|
|||
| dalek | rrot: r48261 | khairul++ | branches/gsoc_instrument/src/dynpmc (6 files): Refactored runcore functions out of Instrument.pmc |
03:11 | |
| rrot: r48262 | khairul++ | branches/gsoc_instrument/src/dynpmc/instrumentstubbase.pmc: Updated get_hook_list to return a STRING* instead. |
03:28 | ||
| rrot: r48263 | khairul++ | branches/gsoc_instrument/src/dynpmc/instrumentop.pmc: Updated to initialise using an Instrument instance. |
|||
| rrot: r48264 | khairul++ | branches/gsoc_instrument/src/dynpmc (3 files): Updated method instrumentation. |
03:29 | ||
| rrot: r48265 | khairul++ | branches/gsoc_instrument/src/pmc/pointer.pmc: Reverted previous change to pointer.pmc. |
|||
| rrot: r48266 | khairul++ | branches/gsoc_instrument/tools/build (2 files): Updated generator scripts. |
|||
| rrot: r48267 | khairul++ | branches/gsoc_instrument/src/dynpmc (2 files): Regenerated stub functions. |
|||
| rrot: r48268 | khairul++ | branches/gsoc_instrument/t (7 files): Updated test cases |
|||
| rrot: r48269 | khairul++ | branches/gsoc_instrument (6 files): Updated runtime library |
|||
| chromatic | Every so often, a malloc has to reinvent apple pie and costs a lot. | 03:33 | |
| Hm, why use an UnManagedStruct to hold the const table for ImageIO? Why not just use set_pointer() instead? | 03:35 | ||
| dalek | rrot: r48270 | khairul++ | branches/gsoc_instrument/MANIFEST: Updated manifest. |
03:45 | |
|
03:48
jsut joined
|
|||
| dalek | rrot: r48271 | khairul++ | branches/gsoc_instrument/config/gen/makefiles/root.in: Fixed build order |
04:01 | |
|
04:20
tcurtis joined
04:22
jsut joined,
Austin joined,
janus joined,
TiMBuS joined,
bacek joined,
chromatic joined,
ruoso joined,
plobsing joined,
Patterner joined,
workbench joined,
dngor joined,
estrabd joined,
cotto_work joined,
cxreg joined,
davidfetter joined,
zostay joined,
preflex joined,
NotFound joined,
s1n joined,
Coke joined,
mikehh joined,
snarkyboojum joined,
jan joined,
hudnix joined,
contingencyplan joined,
baest joined,
dalek joined,
simcop2387 joined,
cognominal joined,
AzureStone joined,
jjore joined,
pmichaud joined,
Util joined,
PerlJam joined,
dukeleto joined,
mj41 joined,
japhb joined,
slavorg joined,
slavorgn joined,
nopaste joined,
NOTevil joined,
ttbot joined,
kthakore joined,
ingy joined,
elmex joined,
KatrinaTheLamia joined,
Essobi joined,
Hunger joined,
Ryan52 joined,
szabgab joined,
cotto joined,
sjn joined,
silug joined,
knewt joined,
spinclad joined,
cosimo joined,
rblackwe joined,
jnthn joined,
moritz joined,
TimToady joined,
ascent joined,
bacek_at_work joined,
athomason joined,
jhelwig joined,
treed joined,
TonyC joined,
purl joined
04:41
Chandon joined
|
|||
| tcurtis | Tree::Optimizer.run(:combine(1)) is implemented!. \\o/ | 04:45 | |
|
04:49
LoganLK joined
|
|||
| dalek | rrot: r48272 | chromatic++ | trunk/src/pmc_freeze.c: [freeze] Tidied code; no functional changes. |
04:51 | |
| rrot: r48273 | chromatic++ | trunk/src (2 files): [PMC] Added set_pointer to ImageIO PMC. store a PackFile_ConstTable pointer in the ImageIO PMC. |
|||
|
04:58
petdance joined
05:15
chromatic joined
|
|||
| nopaste | "plobsing" at 192.168.1.3 pasted "[PATCH] Contiguous Constant Table" (5259 lines) at nopaste.snit.ch/22522 | 05:22 | |
| plobsing | That appears to shave 2% off of './perl6 -e "say qq{Hello World}" >/dev/null' | 05:23 | |
| worthwhile? | |||
| other benchmarks I should do? | |||
| chromatic | I thought it'd be more, but let me finish up a couple of things here. | ||
| Are you testing with Callgrind or wallclock? | |||
| plobsing | perl -MBenchmark -e 'Benchmark::cmpthese(100, {map {my $x = $_; $x => sub { `cd $x; ./perl6 -e "say qq{Hello World}" >/dev/null` }} ("rakudo", "rakudo-new")})' | ||
| chromatic | Too much jitter in that one for my tastes. | 05:24 | |
| plobsing | How should I be testing? | ||
| chromatic | alias cg='time valgrind --tool=callgrind --dump-instr=yes --trace-jump=yes' | 05:25 | |
| cg ./perl6 hi.p6 | |||
| That's what I use. | |||
| plobsing | btw, that's not the lazy constants we were talking about. That's just not making a zillion tiny objects for constants. | ||
| chromatic | Oh, the malloc coalescing. Very nice. | ||
| I have 2.4% improvements here so far in another part of the code, with another possibility. | 05:26 | ||
| Total improvement, 2.78%. | 05:31 | ||
| plobsing | OK, I've run the vallgrind. Now what? | 05:32 | |
| chromatic | Compare the instruction counts. | 05:33 | |
| ==4030== Events : Ir | |||
| ==4030== Collected : 1682101191 | |||
| The latter number is important. | |||
|
05:34
theory joined
|
|||
| plobsing | the counts differ by only 0.4% in favour of the new code | 05:34 | |
| all that work for 0.4% | 05:35 | ||
| chromatic | The new code *looks* better though. | 05:36 | |
| It's probably cache friendlier too. | |||
| plobsing | yes. many fewer dereferences. | 05:38 | |
| chromatic | A modest little improvement in instruction counts but cleaner code and fewer dereferences is a clear benefit, if it passes all tests. | 05:39 | |
| dalek | rrot: r48274 | chromatic++ | trunk/src/hash.c: [hash] Added get_hash_val(). speeds up the Rakudo startup benchmark by 1%. |
05:40 | |
| rrot: r48275 | chromatic++ | trunk/src/hash.c: [hash] Used more get_hash_val(). |
|||
| rrot: r48276 | chromatic++ | trunk/src/hash.c: [hash] Added more get_hash_val(). |
|||
| chromatic | I still think typed hashes are another 3% win. | ||
| plobsing | Typed hashes where? | ||
| chromatic | Instead of every hash struct being a bag full of function pointers, invert them. | 05:44 | |
| Have a string hash, an int hash, etc. | |||
| All of a sudden things like string hashing and comparison are inlinable. | 05:45 | ||
| plobsing | It wouldn't be too hard to hide those typed hashes behind the parrot_new_*_hash functions. | 05:48 | |
|
05:49
preflex joined
|
|||
| chromatic | Right, we're just moving the ad hoc polymorphic dispatch elsewhere in our system. | 05:49 | |
| plobsing | I do doubt however, that string comparison is significantly inlinable. Don't we have string operation indirection to support different encodings? | 05:55 | |
| dalek | rrot: r48277 | plobsing++ | trunk (22 files): Coallesce PackFile_Constant allocations into an array held in PackFile_ConstTable. |
05:57 | |
| chromatic | There are eight ways to short circuit the comparisons. | 06:09 | |
| We can't inline the most expensive ones, but we can inline the least expensive ones. | 06:10 | ||
| petdance | Boy, I leave Parrot alone for a few weeks, and peopel try to sneak in const fudging! | 06:12 | |
| plobsing | If you're complaining about the consts I deleted, they were causing warnings. | 06:13 | |
| dalek | rrot: r48278 | plobsing++ | trunk (2 files): remove now unused PackFile_Constant constructor and destructor |
||
| rrot: r48279 | petdance++ | trunk/tools/dev/pbc_to_exe.pir: bytecode_size should be expressed as size_t, not int |
|||
| petdance | "causing warnings" is not a problem. | ||
| plobsing | it is if you use vim and ':cn' to step through your build | ||
| petdance | Then other things need to be changed rather than throwing away consts. | ||
| plobsing | fair enough. I dislike warnigns about "unsafe casts" however. | 06:15 | |
| petdance | Throwing away consts is a short-term solution. | ||
| I dislike those warnings, too. | |||
| But then there are better solutions than pretending they don't exist. | 06:16 | ||
| I don't know what specifically you changed, and I'm not pointing at anyone. | |||
| I just know that I tried to build today and I barf on src/hash.c | |||
| plobsing | that wasn't me. | ||
| petdance | Not realy interested in who. | 06:17 | |
| Just want to fix it. | |||
| g++ is more stringent and I build under g++ because it makes sure everything isconst corect | |||
| plobsing | is there any way to create a string from a C buffer without copying? I promise to not change it underneath parrot. | 06:18 | |
| chromatic | We had one, but I think someone removed it. | ||
| plobsing | We copy every constant to a temporary string before thawing it to PBC. Just seems wasteful. | 06:19 | |
| s/PBC/PMC/ | 06:20 | ||
|
06:21
uniejo joined
|
|||
| chromatic | I fixed that a few months ago. | 06:22 | |
| I think immutable strings undid it. | |||
| Though I seem to remember thinking "This is possible now we have immutable strings." | 06:23 | ||
| One of the STRING flags, PObj_external_FLAG I think, used to note that Parrot didn't control the underlying buffer storage. | 06:24 | ||
| petdance | but now we don't have that any more, I think. | ||
| ok, we do | 06:25 | ||
| plobsing | yes. just found it. looks like it might do the trick | ||
| dalek | rrot: r48280 | petdance++ | trunk/config/gen/makefiles/root.in: add a "tags" target because I always forget what the tags target really is |
06:30 | |
| tracwiki: v9 | cotto++ | KhairulGSOC2010Schedule | 06:32 | ||
| tracwiki: trac.parrot.org/parrot/wiki/Khairul...ction=diff | |||
| petdance | plobsing: So what DID you unconst? I don't have any bummers other than src/hash.c. | 06:38 | |
| plobsing | some stuff in imageio.pmc IIRC | 06:39 | |
|
06:42
AndyA joined
|
|||
| plobsing | petdance: C++ question - how do I write initializers for mutually referential static objects? gcc says predeclaration isn't valid in C++. | 06:42 | |
| petdance | dunno off hand. | ||
| i'm about to head to bed. | |||
| ask me tomorrow? | |||
|
06:43
ruoso joined
|
|||
| dalek | rrot: r48281 | petdance++ | trunk/src/hash.c: put back proper consting |
06:47 | |
|
06:48
brianwisti joined
06:58
robin-gvx joined
07:20
ruoso joined
07:22
Casan joined
07:29
fperrad joined
|
|||
| moritz | sz? | 07:53 | |
| purl | sz is, like, www.flickr.com/photos/szbalint/3812...011879092/ | ||
|
08:00
ruoso joined
08:26
ruoso joined
08:41
smash joined
08:46
ruoso joined
08:49
preflex joined
09:17
ambs joined
|
|||
| dalek | rrot: r48282 | NotFound++ | trunk/src/pmc/imageio.pmc: add some const and change a UINTVAL to INTVAL to fix c++ and avoid warnings |
09:17 | |
| rrot: r48283 | NotFound++ | trunk/t/pmc/oplib.t: one more test for OpLib and define and document the magic values used in one place |
09:33 | ||
| kudo: 0a8ef0f | moritz++ | src/Perl6/Compiler.pir: split PERL6LIB on ; on MSWin32 platform - szabgab++ for telling us |
09:49 | ||
|
09:54
jsut_ joined
10:06
AndyA joined
10:16
jsut joined
|
|||
| dalek | rrot: r48284 | NotFound++ | trunk (2 files): some more tests and a bit of reorganization in Capture tests |
10:56 | |
| rrot: r48285 | NotFound++ | trunk/src/pmc/capture.pmc: revert a change included by mistake in r48284 |
|||
|
11:07
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 11:20 | |
|
11:40
ambs joined
11:45
Casan joined
|
|||
| dalek | rrot: r48286 | NotFound++ | trunk/t/pmc/packfile.t: some more Packfile testing |
11:45 | |
|
11:52
lucian joined
|
|||
| bacek | aloha, humans | 12:22 | |
|
12:23
aloha joined
|
|||
| bacek | blog.mozilla.com/rob-sayre/2010/08/...sentation/ - interesting idea for representation of objects in memory | 12:26 | |
|
12:30
ruoso joined
|
|||
| whiteknight | good morning, bacek | 12:31 | |
| bacek | good evening, whiteknight :) | ||
| whiteknight | very interesting idea. pointer tagging and NaN boxing would all be very cool to implement | 12:35 | |
|
12:38
bluescreen joined
|
|||
| bacek | whiteknight, indeed :) | 12:40 | |
| Coke | kid51: if you're going to copy a file in the repository for testing headerizer, can it be one that isn't copyright melvin? | 12:44 | |
| er, msging. | |||
| msg kid51 if you're going to copy a file in the repository for testing headerizer, can it be one that isn't copyright melvin? (and isn't IMCC? and is actual handrolled C instead of generated C? =-) | 12:45 | ||
| purl | Message for kid51 stored. | ||
| Coke spots a picture of allison... doing the macarena? | 12:49 | ||
| msg kid51 (I see the length is no longer an issue. I mostly withdraw my objection.) | 12:52 | ||
| purl | Message for kid51 stored. | ||
|
13:06
ruoso joined
13:08
bkuhn joined
|
|||
| kthakore | NotFound: ping? | 13:33 | |
| ambs | kthakore: sorry, not found. | 13:34 | |
| :D | |||
| kthakore | ambs: :p | ||
| ambs: what up? | 13:35 | ||
| ambs | in a sofa, at yapc eu, looking around and messing up with people on IRC :D | ||
| kthakore | hahahah | 13:36 | |
| ambs: :P | |||
| ambs: I am at work, wondering what NotFound did to stringhandle.pmc and io/api.c | |||
| ambs | :D | ||
| kthakore | yeah ... | ||
| purl doo wop doo wop // shang a langa shanga langaa | |||
| kthakore | ambs: so when does TPF deliberate on grants? | 13:37 | |
| ambs | kthakore: hope to get results published during 15th August | 13:38 | |
| but this time of the year is difficult | |||
| as a lot of people is in vacations. | |||
| kthakore | yeah | 13:39 | |
| ambs | but talking about that, probably a good time to send a mail to the committee members asking to vote before going in vacations. | 13:41 | |
| Coke | ambs: yah, a reminder of the deadline would be helpful. | 13:42 | |
| hey, for everyone that I told "I hate IRC"... I hate webex more. thank you. | 13:43 | ||
| kthakore | ambs: I can vote for anyone on vacation | 13:45 | |
| ambs: I volunteer | |||
| :p | |||
| ambs | :D | ||
| smash | Coke: IRC is nice | ||
| NotFound | kthakore: I just moved some code from one file to the other | ||
| kthakore | smash: I like you name. High five! | ||
| szbalint | IRC++ | 13:46 | |
| kthakore | NotFound: I know but ... why is it in io/api.c | ||
| NotFound: didn't we want to move it out? | |||
| kthakore is soooo confused now | |||
| NotFound | kthakore: What 'it' ? | ||
| purl | 'it' is a euphemism for having sex with hermaphroditic micro sheep | ||
| kthakore | ok | ||
| we have a else if for when PMC is stringhandle | |||
| right? | |||
| in io/api.c | |||
| for open and other methods? | 13:47 | ||
| you first asked me to remove those and move it to src/stringhandle.pmc | |||
| Coke | purl, forget 'it' | ||
| purl | Coke: I forgot 'it' | ||
| kthakore | but in the last commit you moved code from string...pmc to io/api.c | 13:48 | |
| Coke | purl: GDIAF | ||
| purl | Coke: sorry... | ||
| Coke | purl: DIAF? | ||
| purl | DIAF is Die in a Fire | ||
| Coke | right. do that. | ||
| kthakore | NotFound: ps. at this point I would like to say. thank you very much for being so patient. | ||
| Coke | smash, I'm willing to believe irc just sucks for me. | 13:49 | |
| ambs | Coke: here you go | ||
| kthakore | NotFound: btw the r48252 is what I am talking about | ||
| purl | talking about is "Yeah, you're alway talking and talking and talking. Shut up and code." | ||
| kthakore | ?? | ||
| purl: sowwy | |||
| purl | kthakore: excuse me? | ||
| smash | Coke: what irc client do you use ? | ||
| szbalint | shame about the no luck with bitchx on OSX. I haven't used that client for years and years, but it used to be good. | 13:50 | |
| NotFound | kthakore: Now there is a special case for FileHandle, or an HLL map of it, nothing else | ||
| ambs is using colloquy. Not liking it much | |||
| kthakore | HLL map? | 13:51 | |
| Coke | ambs: did you see kid51's question here about "why a parrot grant?" | ||
| ambs | no, I didn't | ||
| kthakore | gah ... I need to seriously sit down and read about io in parrot. | ||
| ambs | and although there is a parrot foundation | ||
| I think TPF should consider parrot grants :) | |||
| NotFound | kthakore: thre is no speccial case for StringHandle now in open nor in close. Are you reading the diff backwards? | 13:52 | |
| ambs | (no sure if that was thetype of the question) | ||
| Coke | ambs: Excellent. My thought as well. we'll see what happens. | ||
| kthakore | NotFound: omg ... maybe I am | ||
| ... | |||
| .../me facepalms | |||
| Coke ptats kthakore on the back. | |||
| hey, did I ever tell you about the time partcl was SO blazingly fast it beat tcl? Then i realized it was segfaulting on startup. | 13:53 | ||
| kthakore | Coke: hehe | 13:54 | |
| NotFound: ok I am throwing my code out | |||
| it is BS | |||
| NotFound: that patch is way too stupid | |||
| yay! sqaure one! | |||
| :\\ | |||
| dalek | kudo: 51cc37e | pmichaud++ | src/Perl6/ (2 files): Enable --target=pir to produce PIR code that can be run directly |
13:55 | |
| kthakore | Coke++ thanks more making me feel better | ||
| Coke: you are good at that | |||
| Coke | kthakore: ... huh. | ||
| well, people do come across differently online. | |||
| kthakore | Coke: I have rose tinted glasses on maybe | 13:56 | |
| NotFound | kthakore: maybe is a ticket a bif difficult for a start. | ||
| kthakore | NotFound: hehe ... too late now | ||
| my brain is broked | |||
| NotFound: I blame it on bacek :P | |||
| Coke | pmichaud: hey, what's the plan for PGE? | 13:59 | |
| Coke guesses: "Leave it alone, but don't remove it or add features" | |||
| (in which case, we can close several trac tickets with "please switch to nqp-rx" | |||
| kthakore | NotFound: is it really hard, or am I jsut not getting some things? | 14:01 | |
| Coke | kthakore: try this one instead: #1633. | 14:02 | |
| That's just ripping stuff out. | |||
| (and updating the wiki page about deprecations.) | |||
|
14:03
bubaflub joined
|
|||
| kthakore | Coke: well that is what bacek said of the other one ... | 14:05 | |
| Coke | kthakore: 1633 is a ticket /I/ was going to do, so I'm sure you can. =-) | 14:06 | |
| kthakore | haha | ||
| -.- | |||
| I am cynical now | |||
| :p | |||
| Coke | do you have commit bits? | ||
| (though I suppose the git mirror makes that irrelevant._) | 14:07 | ||
| kthakore | yeah | ||
| I only deal in patches | |||
| as I don't trust my code to have any merit for parrot yet | |||
| Coke: I mean ... I don't even know wth HLL map is | |||
| Coke | HLL map? | 14:08 | |
| bad purl | |||
| purl | U MAKE I CRY | ||
| kthakore | I dunno | ||
| Coke: NotFound said something about it | |||
| Coke | hll map is how you declare that your language's pmc's map to the core parrot pmcs, and force parrot to use them in place of the core ones when possible. | ||
| ambs | hmm.. I am missing coke... | ||
| ...fresh coke | |||
| Coke | ambs: ? | ||
| oh. | |||
| kthakore | ambs: follow the skinny models into the bathroom | 14:09 | |
| Coke | don't drink the real stuff, it'll go right to your hips. | ||
| ambs | only juice. damn :) | ||
| kthakore | oh ... that coke | ||
| :p | |||
| 0o#) <--- Coke'd | |||
| ambs | Coke: while the English might suck, I added a comment about that parrot issue on the parrot grant. | 14:15 | |
| Coke | ambs: good enough. | 14:20 | |
| ambs++ | |||
| ambs | Coke: thank you | ||
| PerlJam | kthakore: I thought it's supposed to be fat models and skinny controllers :) | ||
| kthakore | hehe | 14:21 | |
|
14:25
plobsing joined
14:30
hercynium joined
14:35
brianwisti joined
|
|||
| dalek | kudo: efe72cb | moritz++ | src/Perl6/Actions.pm: s:s/// |
14:35 | |
| kudo: cb45c52 | moritz++ | src/Perl6/ (2 files): :i/:ignorecase adverbs for s/// |
|||
|
14:41
whiteknight joined
15:17
Andy_ joined
15:18
ambs_ joined
15:31
khairul joined
15:35
ilbot2 joined
|
|||
| moderator | Parrot 2.6.0 | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | fix 'make html' (talk to Coke), update tutorial (talk to tcurtis) | ||
|
15:38
chromatic joined
15:40
chromatic joined
|
|||
| dalek | rrot: r48287 | petdance++ | trunk/src/hash.c: removed unused var |
15:54 | |
| Andy_ | Yeah, tha'ts right, all you unused variables watch out. | ||
| chromatic | Good stuff! | ||
| purl | i think good stuff is lazywebbed =) | ||
| kthakore | hi chromatic | 15:58 | |
| Coke: bah ... I crashed parrot again ... ok give me your ticket | 15:59 | ||
| Coke: the easy one? | |||
| purl | the easy one is the submit button | ||
| Coke | irclogs? | ||
| purl | somebody said irclogs was irclog.perlgeek.de/parrot/today or see also: infrared clogs | ||
| kthakore | Coke: ... fine be like that | ||
| 1533 | 16:00 | ||
| 16333 | |||
| Coke: /last Coke :p | |||
| trac? | |||
| purl | trac is a web-based software project management and bug/issue tracking system emphasizing ease of use and low ceremony. It provides an interface to the Subversion revision control systems, integrated Wiki and convenient report facilities. projects.edgewall.com/trac/ or Python, SQLite and ClearSilver or killing killtrac or a bug-tracking tool or at trac.parrot.org/parrot/ or slow or REALLY slow | ||
| kthakore | C\tahahha | 16:01 | |
| Coke: ahaha | |||
| Coke: this is the same as the bacek's one | 16:02 | ||
| Coke: :p | |||
| or similar | |||
| gee this looks deceptingily simple | |||
| but I know the truth now! | |||
| I have seen it! | |||
| :p | |||
| kthakore shuts up and goes to break parrot again | |||
| lunch & | 16:03 | ||
| and reading parrot docs | |||
|
16:03
whiteknight joined
|
|||
| kthakore | is there like a print button for this? | 16:04 | |
| brianwisti | That's my favorite lunch pastime as well - reading Parrot docs. | ||
| kthakore | brianwisti: reall? 0o | ||
|
16:04
theory joined
|
|||
| kthakore | brianwisti: I do it cause I suck soooo bad | 16:04 | |
| brianwisti | Likewise. That's a pretty good reason. | ||
| Coke | purl, jeter? | 16:05 | |
| purl | i don't know, coke | ||
| chromatic | I expect more bug reports on the docs in that case. | 16:07 | |
| Coke | chromatic: or patches! | 16:08 | |
| purl | patches are welcome | ||
| Coke | but purl is not. | ||
| I am beginning to agree with #perl6 that purl should be booted. though I like having a parrot-specific bot. | |||
| particle | what's so wrong with /ignore purl? | 16:09 | |
| chromatic | New channel denizens don't know to do it. | 16:13 | |
| particle | put it in /topic | 16:14 | |
| Coke | purl is like the MST of bots. | 16:16 | |
| purl is ALSO like the MST of bots. | |||
| purl | okay, Coke. | ||
| chromatic | Wow, coretest ran in 19 seconds. It hasn't been that fast ever. | 16:17 | |
| whiteknight | 19 seconds? | 16:21 | |
| purl | 19 seconds is good. | ||
| chromatic | Parallel coretest. | ||
| whiteknight | still, 19 seconds is fantastic | 16:22 | |
| Andy_ | make coretest took me 82 seconds | 16:24 | |
| chromatic | alias partest='mj coretest TEST_JOBS=5' | 16:25 | |
| Andy_ | mj = "make -j$TEST_JOBS" ? | ||
| chromatic | something like that, yes | 16:27 | |
|
16:28
tcurtis joined
|
|||
| Andy_ | still 80 seconds for me | 16:28 | |
| cotto | msg khairul Looks like you have some failing tests: nopaste.snit.ch/22534 | 16:33 | |
| purl | Message for khairul stored. | ||
| khairul | cotto: looks like i forgot to remove that file. | 16:34 | |
| bubaflub | coretest is running 74 seconds normally, 37 seconds with TEST_JOBS=5 for me | ||
| Andy_ | Isn't someone workin' on getting rid of imcc? | ||
| Many warnings there that I'd fix if there was reason to... | 16:35 | ||
| cotto | PIRATE has the potential to replace imcc, though speed and incompleteness are the current major obstacles atm. | 16:42 | |
| Coke | Andy_: pirc also ha the potential to replace IMCC, but as I recall, no one has been able to integrate it with parrot. | 16:45 | |
| dalek | rrot: r48288 | khairul++ | branches/gsoc_instrument/t/library/instrument_eventdispatcher.t: Removed test for deleted class. |
||
| rrot: r48289 | khairul++ | branches/gsoc_instrument/MANIFEST: Updated manifest. |
|||
| Coke | in fact, I think you tried at one point to headerize and clean it up and was stymied. | ||
| Andy_ | Coke: Yes, that's right. | 16:51 | |
| That's one of the reasons I'd be glad to see it go. | 16:52 | ||
| Coke | Andy_: what, pirc? | 16:57 | |
| Andy_ | no, imcc | 16:58 | |
| Coke | I was just talking about pirc. | ||
| Andy_ | Oh, yeah, that too. That was worse. | ||
| dukeleto | pirc == PIRATE, no? | ||
| Coke | no. | ||
| pirate is pir in nqp. | 16:59 | ||
| pirc is second system imcc. | |||
| (done in c, using bison...) | |||
|
17:04
ash_ joined
|
|||
| cotto_work | ~~ | 17:04 | |
| kthakore | win 3 | 17:10 | |
|
17:23
bubaflub joined
|
|||
| dalek | tracwiki: v1 | Chandon++ | GSOC_ThreadsInterpreterSplit | 17:27 | |
| tracwiki: trac.parrot.org/parrot/wiki/GSOC_Th...ction=diff | |||
|
17:28
preflex joined
|
|||
| dalek | rrot: r48290 | chromatic++ | trunk (3 files): [pf] Forbade null packfiles in PF_fetch_integer(). problem. This commit improves Rakudo startup modestly. |
17:34 | |
| rrot: r48291 | khairul++ | branches/gsoc_instrument/t/library/instrument_eventlibrary.t: Fixed broken test. |
|||
| Coke wonders when irssi stopped wrapping long lines. | 17:35 | ||
|
17:41
hercynium joined
|
|||
| kthakore | hercynium: hi | 17:44 | |
| purl | que tal, kthakore. | ||
| kthakore | Coke: set wrap? | ||
| hercynium | hey there, kthakore! | ||
| kthakore | hercynium: hi! | 17:49 | |
| hercynium: welcome to #parrot. They speak your language | |||
| or so I am told | |||
| hercynium | kthakore: oh, I've been lurking here for a long time :) | 17:51 | |
| kthakore | I just like saying welcome | ||
| and you don't come to #sdl so I have to do it here | 17:52 | ||
| :p | |||
| hercynium | hah! I should remedy that. There are a number of channels I need to save to auto-join | ||
|
17:53
AzureStone joined
|
|||
| Coke | kthakore: unknown setting "wrap" | 17:56 | |
| kthakore | Coke: I was joking but .. ok | 17:58 | |
| cotto_work | blog.mozilla.com/rob-sayre/2010/08/...sentation/ | ||
| chromatic | Hm, a 3.122% performance improvement. | 18:01 | |
| Coke | kthakore: ah, trick question anyway, it was screen. :P | 18:02 | |
| chromatic: +1 | |||
| purl | 1 | ||
| chromatic | That's 6.554% since last night. | 18:03 | |
| whiteknight | chromatic+ | ||
| or chromatic++ | |||
|
18:03
Chandon joined
|
|||
| chromatic | plobsing did a chunk of that too. | 18:04 | |
| That's 47 Perl 5 "Hello, world!"s faster. | 18:06 | ||
| Coke | chromatic: do you find that running the parrot profiling and converting it to cg is slow? | 18:10 | |
| chromatic | Very. | ||
| Coke | (in terms of whatever process you're following to test.) | ||
| chromatic | I'm profiling the C. The PIR profiler is currently too slow to help me much. | 18:11 | |
| Coke | I tried to profile some perl6 the other day, and it took forever (netbook not helping), and was crushed to find it broke a spectest somewhere. waaay too slow. | ||
| particle | is anyone profiling the pir profiler to make it faster? | 18:12 | |
| cotto_work | These are valuable data points. | ||
| Coke | particle: on my short list is to at least run the pprof -> cg perl script through nytprof | ||
| cotto_work | I suspect that the best way to speed that up will be to move the callgrind output code into the runcore. | 18:13 | |
| chromatic | It's two parts. | ||
| Coke | cotto_work: instead of outputing an intermediate format? | ||
| chromatic | First, the runcore is slow because finding annotations uses the Shlemiel the Painter algorithm. | ||
| Coke | *t | ||
| cotto_work | well, in addition to | ||
| chromatic | Second, the post-processing program is slow because it has to process a LOT of data. | 18:14 | |
| Coke | is the annotation finder used anywhere else? | ||
| that seems like a win to fix, if so. | |||
| chromatic | Sub introspection. | ||
| We have to change the way we store annotations in PBC to fix it, but we have all of the information to build the right data structure at PBC creation, and it's almost the most natural representation anyway. | 18:15 | ||
| dalek | tracwiki: v2 | Chandon++ | GSOC_ThreadsInterpreterSplit | 18:16 | |
| tracwiki: trac.parrot.org/parrot/wiki/GSOC_Th...ction=diff | |||
| Coke | cotto_work: is the nqp version of pprof2cg just for show? | 18:18 | |
| (I imagine it's got to be slower than the .pl version) | 18:19 | ||
| (even when compiled to pbc) | |||
| cotto_work | It was an experiment. It's way too slow to be useful. | ||
| iirc, at least | 18:20 | ||
| Coke | ok. we should probably remove it to avoid confusion. | ||
| cotto_work | sure | ||
| there's always vcs history | |||
| +1 if you want to remove it now | 18:21 | ||
| Coke | done. | 18:23 | |
| dalek | rrot: r48292 | coke++ | trunk (2 files): remove proof of concept port of pprof2cg.pl to NQP, cotto++ |
||
| cotto_work | danke | 18:28 | |
|
18:28
bluescreen joined
|
|||
| chromatic | Thawing could be a lot smarter. | 18:41 | |
| Coke | feather.perl6.nl/~coke/nytprof/nytprof/ NYTProf run against pprof2cg.pl against a rakudo program that loops over 100 ints and adds them together. | 18:48 | |
| mikehh | still can not connect to smolder.plusthree.com | 18:49 | |
| Coke | mpeters? | ||
| purl | mpeters is mailto:mpeters@plusthree.com | ||
| Coke | email him. | ||
| probably good to open a trac ticket first. | 18:50 | ||
| or second. | |||
| mikehh | Coke: 'k | ||
|
18:52
jevin joined
18:54
AndyA joined
|
|||
| dalek | rrot: r48293 | chromatic++ | trunk/src/pmc/imageio.pmc: [PMC] Optimized ImageIO PMC's shift_integer. Rakudo startup by 3.122%. |
18:58 | |
| rrot: r48294 | chromatic++ | trunk/src/pmc/imageio.pmc: [PMC] Tidied ImageIO PMC; no functional changes. |
|||
| rrot: r48295 | chromatic++ | trunk/src/hash.c: [hash] Special cased most common hash thawing. normal conditional "What kind of hash is this?" test in tight loops offers a modest performance improvement. |
18:59 | ||
| particle | Coke: nice work with the nytprof output | 19:00 | |
| Coke | particle: eh. easy to run. harder to do anything about. -) | 19:01 | |
| particle | one can shave off a few seconds by changing the first regex in process_input to an index call | ||
| Coke | speaking of which, line 183 is the worst offender. | ||
| purl 179/290 | |||
| purl | 0.617241379310345 | ||
| particle | oh, right... didn't see that yet | 19:02 | |
| wow, that can be sped up. | |||
| time spent should be added lazily | 19:09 | ||
| Coke | ? | 19:12 | |
| dalek | rrot: r48296 | NotFound++ | trunk/src/pmc/imageio.pmc: s/const const/const |
19:15 | |
| chromatic | That's one immutable variable. | 19:17 | |
| particle | coke: don't add the $time to every op in the "stack" every time an op is called. instead, save the accumulated time and add it when the stack is popped | 19:20 | |
|
19:21
ash_ joined
|
|||
| kthakore | ash_: hi | 19:22 | |
| ash_ | hi | ||
| purl | hi, ash_. | ||
| kthakore | ash_: may I have a minute of your time? | ||
| cotto_work | would /^OP:/ be meaningfully faster than /^OP:(.*)$/ ? | ||
| ash_ | sure | ||
| kthakore | ash_: what needs to be done for learn.perl6.org ? | ||
| ash_ | learn.perl6.org? | ||
| kthakore | ash_: that web REPL thing on moritz's github | ||
| cotto_work | or would they be optimized to the same thing | ||
| kthakore | .... | ||
| ash_ | ah, thats try.rakudo.org | ||
| kthakore | ash_: oops sorry | 19:23 | |
| yeah htat | |||
| ash_ | but, i am trying to build it and get the basics working, currently, i have a working example implementation thats kind bare bones for now | ||
| its all in the repo on github | |||
| it needs a few perl5 modules, cgi, and rakudo built | |||
| moritz++ gave me an account on feather3 with sudo access to set it up | 19:24 | ||
| but i have been failing to build rakudo, i was looking for moritz today, to figure out if/how to build rakudo | |||
| particle | cotto_work: yes, it would be faster not to capture | ||
| ash_ | building rakudo takes to much memory and that machine seems to have a limited amount | ||
| cotto_work | It's good to see that the code isn't yet completely optimal | 19:25 | |
| particle | if ( 0 == index $line, q{OP:}, 0 ) would be faster still | ||
|
19:26
bubaflub joined
|
|||
| Coke | particle: if the stack wasn't changing each time through, that might work. | 19:27 | |
| particle | the full stack doesn't change each time | ||
| Coke | particle: I wouldn't assume index is faster, btw. | 19:28 | |
| (but I'd test it, sure.) | |||
|
19:28
lucian_ joined
|
|||
| chromatic | if (s/^OP://) { ... } will be faster than greedy capture. | 19:28 | |
| particle | is the capture used? | ||
| mikehh | Coke: just got a reply from Michael Peters saying: Sorry, I'm having some problems with that machine. I'm going to have to move smolder some place else. Please bear with me as I find the time to do that. | 19:29 | |
| chromatic | Yes. | ||
| particle | ah, yes. | ||
| ash_ | kthakore: so, in short, i have been trying to get it setup, the perl 5 backend is in working order for a decent groundwork with a minimal implementation, i can get the perl 5 modules installed, but i haven't been able to build rakudo | ||
| Coke | particle: looks like the stack can change each time through: (line 222) | ||
| particle | caching the file, ns, or line hash lookups would reduce the fetches in that for loop | ||
| Coke | particle: on line 183? but those could change per $_, neh? | 19:30 | |
| cotto_work | The capture is used but there's no reason that $line couldn't be used directly. | 19:31 | |
| chromatic | Don't walk the stack for every op. | ||
| Keep a stack of cumulative costs, then keep that in sync with the size of the op stack. | |||
| particle | yeah, that's what i'm suggesting. well put. | 19:32 | |
| chromatic | Not sure you even need a cumulative stack; when you pop, add the value and keep going. | ||
| kthakore | ash_: what do you need for rakudo to be buildt? | ||
| ash_: I mean what problems are you having> | |||
| ash_: perl Configure.pl --gen-parrot && make install right? | |||
| ash_ | the system only has like 300mb of memory, (that i can use apparently) | 19:33 | |
| Coke | it's also interesting to me how much of that code is never invoked. | ||
| ash_ | and to build rakudo, you need about 1 gig | ||
| particle | and shift/unshift... is push/pop faster? | ||
| chromatic | Don't worry about the speed of shift/unshift versus push/pop. | ||
| This program is almost entirely IO bound. | |||
| cotto_work | print_stats is just for debugging | ||
| Coke | cotto_work: even in process_input. | 19:34 | |
| ash_ | kthakore: i could (in theory) build it on another machine and copy it over... but i don't have a debian based system around, i wanted to ask moritz what he thought i should do to build rakudo | ||
| cotto_work | Annotation aren't part of the profile by default because they slow down the profiling runcore some. | ||
| kthakore | ash_: wat arch and os do you need? | ||
| cotto_work | There are some surprises there. | 19:35 | |
| ash_ | debian squeeze/sid amd64 2.6.32-5-xen-amd64 | ||
| particle | Coke: your example program was pretty simplistic | 19:36 | |
| Coke | particle: fair enough. | ||
| nopaste is no longer reporting ANY channels. | |||
| nopaste.snit.ch/22537 | 19:37 | ||
| Summary: sample rakudo program used to gen nytprof output. | |||
| kthakore | ash_: I have a amd64 lets see if I have a 1gig of mem | 19:38 | |
| ash_: aww :\\ | |||
| no I don't | |||
| ash_ | how much do you hae? | ||
| have* | |||
| kthakore | 254 | ||
| 256 | |||
| mikehh | Coke: not in the robots list on the channel | 19:39 | |
| kthakore | ash_: I have the box for a month | ||
| ash_: I can give you access if you like? | |||
| mikehh | opbots, names | ||
| ash_ | nah, i have a linux box if i need one (its ubuntu, not normal debian) | 19:40 | |
| kthakore | hmmm .. ok | ||
| ash_: I will go bug people with more boxes | |||
| :D | |||
| ash_ | i might try building on my ubuntu box, but i still would rather talk to moritz about it | ||
| kthakore | ash_: ok | ||
| ash_ | and see what he suggests | ||
| kthakore | np | ||
| cotto_work | #ps in 50 | 19:41 | |
| kthakore | ash_: sowwy I couldn't help | ||
| ash_ | thanks though | ||
| i'd like to get it setup soon | |||
|
19:46
theory joined
|
|||
| chromatic | Is it just me, or is hash resizing as naive an algorithm as you can imagine? | 19:52 | |
| ash_ | anyone in here use feather3? | 19:55 | |
| cotto_work | It can't be naive. It uses bit shifting instead of multiplication. | 20:01 | |
| chromatic | Why realloc, then reshuffle? | 20:14 | |
| Coke | why roll our own hash algorithm in the first place? | 20:15 | |
| </deadhorse> | 20:16 | ||
|
20:17
LoganLK joined
|
|||
| chromatic | Because... dependencies... licensing... NIH.... | 20:18 | |
| Coke | yah, that last one. =-) | 20:19 | |
| chromatic | We do get some optimization possibilities in cases where we *know* our specific data needs, but that doesn't make up for the fact that our hashes are too expensive. | 20:20 | |
| atrodo | NIH is my favorite excuse to learn about something | ||
| chromatic | seen bacek | 20:22 | |
| purl | bacek was last seen on #parrot 7 hours, 41 minutes and 59 seconds ago, saying: whiteknight, indeed :) | ||
| particle | HAHAHA chromatic said optimize and hash in the same sentence | 20:24 | |
|
20:24
ambs joined
|
|||
| cotto_work | Would it be worthwhile to make hashing more pluggable and see if some other library would help us? | 20:26 | |
| Coke | I would /imagine/ so. | 20:27 | |
| or we could just have chromatic focus on cleaning up hashes! | |||
| chromatic | I'm not sure what the right approach is. | 20:28 | |
| Clearly we need a better algorithm, but our current algorithm is very fragile. | |||
| cotto_work | What do you mean by "fragile"? | 20:29 | |
| chromatic | Changing the growth factor causes segfaults. | 20:30 | |
| atrodo | that's always a plus | ||
| Coke | chromatic: the comments do say they do doubling for a reason. | ||
| cotto_work | ... | ||
| chromatic | #ps in 0 | 20:31 | |
| particle | changing the growth factor causes *segfaults*. WOW. shall i invoke the three-lettered former patchmonster for that? | 20:32 | |
|
20:33
Paul_the_Greek joined
|
|||
| Paul_the_Greek | Howdy folks. | 20:34 | |
| I have a question. | |||
| tcurtis | Hello, Paul_the_Greek. Ask away. | 20:35 | |
| Paul_the_Greek | I confused about SVN vs. SVK. | ||
| Which one do I use? | |||
| chromatic | Generally whichever you're most comfortable with. | 20:36 | |
| Paul_the_Greek | I want a simple command line interface. | ||
| chromatic | If you're new to both, choose SVN because SVK's developers have stopped maintaining it. | ||
| Paul_the_Greek | Okay, SVN. | ||
| Which command line version do you recommend? | |||
| chromatic | The newest one you can install. | 20:37 | |
| Paul_the_Greek | Collabnet or Slik? | ||
| tcurtis | subversion.apache.org/ | 20:38 | |
| Paul_the_Greek | Super, thanks. | 20:39 | |
| Do you mind an even newbier question? | |||
| chromatic | Ask away. | ||
| Paul_the_Greek | I'm thinking of diving in to contribute. I looked around and it seemed a good way to start is with PIRC. | 20:40 | |
| What does it mean when all the modules contains comments that effectively say not to make any changes or they will be lost? | |||
| It's something to do with annotating the function definitions. | |||
| chromatic | Some of our files contain preprocessed information. | 20:41 | |
|
20:41
tommyd joined
|
|||
| chromatic | The configuration/build system writes part or all of certain files. | 20:41 | |
| It's just code generation. If you need to make a change, change the code generator, not the generated code. | |||
| Paul_the_Greek | The .h files, I presume. | ||
| Oh, hmm. This was every .c file, I believe. | 20:42 | ||
| chromatic | Those, and probably the lexer and parser. | ||
| Paul_the_Greek | Let me look ... | ||
| Coke | Paul_the_Greek: it's not the whole file, but between 2 comments. | ||
| Paul_the_Greek | Yes, but I think it was the majority of the files. | ||
| Coke | yes. | ||
| so we don't have to write all the boilerplate, we can let a perl script do it. | 20:43 | ||
| cotto_work | chromatic: you had some ideas? | ||
| Paul_the_Greek | So I'm looking at pirregalloc.c | ||
| chromatic | 1) a binary format for annotation data, to perform less IO in producing and consuming | 20:44 | |
| 2) a binary heap to store annotation information | |||
| 3) ... just forgot | |||
| Paul_the_Greek | Never mind. Indeed, I'm seeing the function declarations added by the headerizer. | ||
| Coke | Paul_the_Greek: note that PIRC is not actually... really... part of parrot yet. | ||
| (I'm not even sure it's built by default.) | 20:45 | ||
| Happy to point you on the path to making it work and be usable, though. =-) | |||
| mikehh | chromatic: would that be platform independant | ||
| chromatic | Both should be. | ||
| Paul_the_Greek | Does it make sense to start with PIRC, to help get it ready? | ||
|
20:45
AndyA_ joined
|
|||
| Coke | well, the nice thing there is that it's hard to break it. ;) | 20:45 | |
| particle | we wrote a script to write source code to make it easier to compile our compiler which runs code generated from high-level languages | 20:46 | |
| Paul_the_Greek | Is there a more useful place to start, for a newb? | ||
| chromatic | Depends on your skills and interests, Paul_the_Greek. | 20:47 | |
| Paul_the_Greek | I've written machine emulators, assemblers, and the front ends of compilers. | ||
| Makes sense to start simple while learning the system, clearly. | 20:48 | ||
| cotto_work | chromatic: how do you regard pirc? My impression was that it has an uncertain future given that imcc "works" now and PIRATE is the more self-hosted implementation. | ||
| Coke | cotto_work: I wish someone would pick something and stick with it rather than having 3 ways to do something. =-) | 20:49 | |
| chromatic | The bus number concerns me. | ||
| cotto_work | Paul_the_Greek: you could jump into Lorito. It's still in the early design stages and input would be welcome. | 20:50 | |
| Paul_the_Greek | What is Lorito? | ||
| purl | somebody said Lorito was "little parrot" in spanish or xkcd.org/707/ or github.com/atrodo/lorito or trac.parrot.org/parrot/wiki/Lorito or github.com/ekiru/yalp-asm | ||
| Coke | but there's not much coding there. fwiw. | ||
| cotto_work | trac.parrot.org/parrot/wiki/LoritoD...nQuestions | ||
| Coke | Or you could grab a ticket from trac. | ||
| something that segfaults, perhaps. =-) | |||
| cotto_work | It really depends on your interest. Grab something fun and hack away. | ||
| particle | keep your hands off of imcc, and avert your eyes. | ||
| ...for your sanity. | 20:51 | ||
| cotto_work | I don't think that we do ourselves any favors by regarding imcc like that. It's not good code, but it doesn't make your brain bleed either. | ||
| particle | there are five really stupid things you can do when designing compilers. imcc does eight of them. | ||
| cotto_work: true, but that's after years of sanity-work and bugfixes | 20:52 | ||
| Paul_the_Greek | Does it represent octal numbers with leading zeroes? | ||
|
20:52
hercynium joined
|
|||
| Paul_the_Greek | If not, then it doesn't do every stoopid thing. | 20:52 | |
| chromatic | We're not even talking about that level of insanity. | ||
| Paul_the_Greek | A little internal insanity, perhaps? | 20:53 | |
| chromatic | I've said before I fixed an O(n^12) algorithm to be merely O(n^8) and I'm pretty sure I meant it. | ||
| Paul_the_Greek | Is there something about it that could really use fixing? | ||
| Or should it be left well enough alone? | |||
| chromatic | It's really at the well enough alone stage now. | 20:54 | |
| Paul_the_Greek | Okay. | ||
| chromatic | Paul_the_Greek, how familiar are you with testing and benchmarking? | ||
| particle | imcc was a prototype throwaway 8 or 9 years ago. | ||
| Paul_the_Greek | I've certainly written tests, but I wouldn't call myself a tester/benchmarker expert at all. | ||
| I'm more of a make-the-emulator-run-faster guy. | 20:55 | ||
| chromatic | We have a modest task of small parts that would help us make things run faster. | ||
| Paul_the_Greek | I've also built the full-featured macro subsystem for a language. | ||
| atrodo | Paul_the_Greek> url for your code? | 20:56 | |
| particle | hrmm... lorito+macros... | ||
| Paul_the_Greek | It's just a language that I use myself, so no URL. | ||
| So Lorito is a smaller VM core? | |||
| chromatic | Yes. | 20:57 | |
| Think of a VM for C. | |||
| Paul_the_Greek | Is the idea a small instruction set + macros, or a small instruction set + functions? | ||
| chromatic | At one level, there's no difference. | 20:58 | |
| Coke | given the anti-imcc feelings I see here, then I guess pirc is not off the table. | ||
| Tene | pirc is not far off of working, last I looked at it. | ||
| Paul_the_Greek | Will there be a PIRC-like assembler in which actual humans write code, or is it just a compiler target? | ||
| cotto_work | Paul_the_Greek: one problem with pirc is that its creator, kjs (kj on irc) hasn't been around recently | ||
| Tene | When I got into it, kjs wasn't around, and it wasn't too bad to get into. | 20:59 | |
| Paul_the_Greek | Yes, I got that impression from the change dates and such. | ||
| Tene | pretty straightforward and not badly documented. | ||
| chromatic | It's a compiler target. | ||
| Tene | there's also pirate, I hear, but I don't know anything about pirate. | ||
| Paul_the_Greek | So no need for a fancy assembler. | 21:00 | |
| chromatic | We'll write the fancy assembler on top of it. | ||
| Paul_the_Greek | Do people want macros in IMCC/PIRC, since they write code in it? | ||
| Ah, why a fancy assembler if humans don't write it? | 21:01 | ||
| Tene | there are currently macros in PIR | ||
| I use them. | |||
| tcurtis | Paul_the_Greek: PIR has a basic macro system(textual substitution style, not AST-manipulation style). | ||
| Paul_the_Greek | I wrote a macro facility for one language that manipulated tokens, so somewhere in between text and ASTs. | 21:02 | |
| I found it very annoying, so the one I'm working on now is text. | 21:03 | ||
| I'm guessing both text and ASTs would be good. | |||
| Although ASTs sound annoying too. I shouldn't claim that, since I don't know. | |||
| Lisp has the problem licked. | 21:04 | ||
|
21:04
Chandn joined
|
|||
| Chandn | Building Parrot is apparently good stress test for CPUs. | 21:05 | |
| darbelo | I know a guy who says "Never trust a machine that can't compile the OS it's running." | 21:06 | |
| chromatic | Chuck Moore? | 21:07 | |
| Coke | Chunk Noooris. | ||
| moderator | Parrot 2.6.0 | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | fix 'make html' (talk to Coke), merge gc_* branches, fix/replace/optimize hashing | 21:07 | |
| Coke | ARGH, I've been tagged. | 21:07 | |
| darbelo | Amusingly, he appears to trust his android phone :) | 21:08 | |
| Paul_the_Greek | Okay folks, thanks. Once I'm ready, I'll just grab a simple ticket and go for it. | ||
| Chandn | Bah. If you can't build Android on your phone you're not trying hard enough. | ||
|
21:12
ambs joined
21:18
ascent joined
|
|||
| pmichaud | good evening, #parrot | 21:24 | |
| darbelo | pmichaud: ping. | 21:25 | |
| pmichaud | darbelo: pong | ||
| darbelo | Is there a cannonical place/procedure for nqp-setting feature requests? | ||
| And the patches that implement them :) | 21:26 | ||
| of course. | |||
| purl | Indubitably. | ||
| ambs | hello, pmichaud. Back from the pizza? :D | ||
| pmichaud | darbelo: there's not a canonical place yet. I'm willing to consider pull requests. email to me also works. trac tickets don't work so well, as I'm not there frequently enough to look for them (although that might change soon) | 21:27 | |
| ambs: yes, pizza was good | |||
| ambs | pmichaud: :) | 21:28 | |
| moritz | I can confirm that :-) | 21:30 | |
| darbelo | pmichaud: Okay. I'll be throwing a patch adding sub replacement for subst() later this week. | 21:31 | |
| pmichaud | darbelo: I look forward to it. :-) | ||
| chromatic | pmichaud, ping | 21:33 | |
| pmichaud | chromatic: pong | ||
| chromatic | I think we need a suite of NQP-rx benchmarks. | 21:34 | |
| Any thoughts? | |||
| purl | Any thoughts are welcome =) | ||
| pmichaud | chromatic: I'm in favor of that :-) | ||
| cotto_work | chromatic: so we can see where to improve performance and watch it as it happens? | ||
| chromatic | Right. | ||
| cotto_work | +1 either way | ||
| pmichaud | we can make them live in the nqp-rx repo, if needed, or we can use a separate repo. either is fine with me. | ||
| the other piece we're still missing is some profiling tools that can work well with nqp and/or pct-based compilers. | 21:35 | ||
| chromatic | Any thoughts on the best way to encourage this to happen? | ||
| cotto_work | a separate repo might make it easier to test old versions | ||
| pmichaud: do you have a profiling wishlist? | 21:37 | ||
|
21:38
cognominal joined
|
|||
| pmichaud | some way to measure how much time is being spent in each nqp-rx subroutine or method? I know we had stuff using kcachegrind at one point, but I could never get it to work much with pge or nqp-rx because it seemed to have difficulty with tailcalls. | 21:38 | |
| bacek | Good morning, humans | ||
| pmichaud | since then I've tried to eliminate tailcalls from the codebase but haven't gotten back to trying out kcachegrind | ||
| cotto_work | hio bacek | 21:39 | |
| bacek | aloha, cotto_work | ||
| chromatic | Ah, we were just talking about bacek. | ||
| bacek | chromatic, in which context? :) | ||
| chromatic | Reviving the gc_* branches. | 21:40 | |
| bacek | chromatic, ah... gc_massacre should be pretty easy to revive. | ||
| chromatic | At least merging from trunk. | 21:41 | |
| bacek | It needs just two pieces of functionality - 1) calculating of total allocated memory to trigger GC; 2) Dynamically adjust GC triggering based on used memory. | 21:42 | |
| chromatic | That's not too bad. | ||
|
21:42
bubaflub joined
|
|||
| bacek | Couple days of work. | 21:43 | |
| But I was quite busy with RL/dayjob in last 6-8 weeks... | |||
| cotto_work | Is that a couple bacek-days or a couple normal person days? | 21:44 | |
| bacek | cotto_work, "bacek-days" :) | ||
| tcurtis | What's the proper way to separate a TT's keywords? Does it matter, since I suppose most queries on keywords are contains queries? | ||
| pmichaud | well, folks, I'm fading a bit quickly here, so off to bed | 21:45 | |
| chromatic | bacek, is this the branch with cheaper allocations? | ||
| cotto_work | clock? | ||
| purl | cotto_work: LAX: Tue 2:45pm PDT / CHI: Tue 4:45pm CDT / NYC: Tue 5:45pm EDT / LON: Tue 10:45pm BST / BER: Tue 11:45pm CEST / IND: Wed 3:15am IST / TOK: Wed 6:45am JST / SYD: Wed 7:45am EST / | ||
| bacek | chromatic, ? | ||
| purl | chromatic, is probably that typical of CG-ed (dynamic) languages? | ||
| cotto_work | forget chromatic, | 21:46 | |
| purl | cotto_work: I forgot chromatic, | ||
| cotto_work | #ps seems to have fizzled out | 21:47 | |
| chromatic | I thought you mentioned that allocations were cheaper in one of the GC branches. | 21:48 | |
| bacek | chromatic, nope. | ||
| sorear | it's a shame MAGnet doesn't have a +q channelmode | ||
| chromatic | That must have been a fever dream. | 21:49 | |
| bacek | I had non-recursive tri-color m&s. | ||
| chromatic | Non-recursive mark? | ||
| bacek | yes | ||
| chromatic | That came up the other day. | ||
| bacek | ah. | 21:50 | |
| Austin | Anyone here build parrot on Windows not using gcc? | 21:51 | |
| cotto_work | vgp? | 21:56 | |
| purl | vgp is valgrind --suppressions=tools/dev/parrot.supp --num-callers=500 --leak-check=full --leak-resolution=high --show-reachable=yes ./parrot --leak-test $@ or tools/dev/vgp | ||
|
21:58
ascent joined
|
|||
| dalek | parrot: c199d95 | (Jonathan "Duke" Leto)++ | t/sql/plperl6.sql: Add a two tests, one for a fibonacci using a pointy block, and for the |
21:59 | |
| parrot: 706b7dc | (Jonathan "Duke" Leto)++ | html/plperl6.html: Update PL/Perl6 page to describe using pointy blocks |
|||
| rrot: r48297 | Chandon++ | branches/gsoc_threads (28 files): [gsoc_threads] Kill ParrotThread and some other dead code. |
22:01 | ||
| Coke | msg tcurtis "needs-regression-test" is too verbose of a tag. I think just "tests" is fine. | 22:11 | |
| purl | Message for tcurtis stored. | ||
| cotto_work | "reg-test" could work in that case, though its meaning is less clear | 22:14 | |
| maybe "regression-test". I'll leave the remaining bikeshedding up to whoever makes the actual changes. | 22:23 | ||
| tcurtis | Coke: is "regression-test" concise enough? Distinguishing "Test all grammar rules of PIRC" from "Sub invocation consumes all memory. (needs fixing)" seems desirable to me. | 22:26 | |
| sorear | if sub invocation consumes all memory, a lot of other tests will break | 22:27 | |
| dalek | tracwiki: v27 | cotto++ | CottoTasklist | 22:30 | |
| tracwiki: clear out completed items, add some new ones | |||
| tracwiki: trac.parrot.org/parrot/wiki/CottoTa...ction=diff | |||
| tcurtis | s/needs fixing/needs testing/ | 22:33 | |
|
22:34
Austin_Hastings joined
|
|||
| dalek | rrot: r48298 | bacek++ | branches/gc_massacre (298 files): Merge branch 'master' into gc_massacre \tMANIFEST \tconfig/gen/makefiles/root.in \tsrc/call/context_accessors.c \tsrc/gc/gc_private.h \tsrc/pmc/imageio.pmc |
22:34 | |
| purl | i guess MANIFEST is useful for lots of stuff and don't forget to regenerate the manifest with perl tools/dev/mk_manifest_and_skip.pl, unless i am using git-svn | ||
| purl | config/gen/makefiles/root.in is what generates parrot/Makefile | ||
| rrot: r48299 | mikehh++ | failed to fetch changeset: merge trunk into branch |
|||
| tcurtis | sorear: not necessarily. That bug was for calling a sub with an empty body in a loop consuming all memory. A regression in that specific situation doesn't seem likely to break tests that aren't explicitly testing it. | 22:38 | |
|
22:43
Austin_Hastings joined
|
|||
| mikehh | not getting the latest parrot svn revision to my mail - usually come there before it gets here | 22:45 | |
| the last I got was r48296 90min ago | 22:46 | ||
| chromatic | same | 22:47 | |
| cotto_work too | 22:48 | ||
| mikehh | bacek: you want me to update MANIFEST/MANIFEST.SKIP in gc_massacre? | 22:49 | |
| dalek | rrot: r48300 | Chandon++ | failed to fetch changeset: [gsoc_threads] Merge from trunk. |
22:53 | |
|
22:53
Austin_Hastings joined
22:54
ascent joined
|
|||
| cotto_work | www.google.com/search?q=%26%238238%3B | 23:10 | |
| bacek_at_work | mikehh, yes, it will be helpful | 23:12 | |
| dalek | rrot: r48301 | mikehh++ | branches/gc_massacre (2 files): re-generate MANIFEST/MANIFEST.SKIP |
23:26 | |
| rrot: r48302 | mikehh++ | branches/gc_massacre (13 files): [gc_massacre] add missing svn properties |
|||
|
23:32
theory joined
|
|||
| tcurtis | bacek_at_work: I get "make: *** No rule to make target `src/global.o', needed by `blib/lib/libparrot.a'. Stop." trying to build gc_massacre. | 23:37 | |
| chromatic: Have a moment to talk about my GSoC? | 23:39 | ||
|
23:39
Paul_the_Greek joined
|
|||
| chromatic | Sure, what's on your mind? | 23:39 | |
| tcurtis | chromatic: I'm behind schedule. July 19-23 was scheduled for "Implement these convenience functions and classes." referring to the previous item on the schedule: "Design the convenience functions and classes in the vein of LLVM's FunctionPass, LoopPass, etc." | ||
| I got delayed in working on those because I was working on something like LLVM's PassManager/PassRegistry(Tree::Optimizer). Now I've basically got that finished. I'm going to add correct null-handling (and tests) and merge the branch I was working on it in into master. | |||
| I'm now firmly into the block of time scheduled for "Research other low-hanging-fruit optimizations." and "Implement some of these optimizations." Frankly, I'm not really certain what convenience classes like those of LLVM would be useful. Most of the pass classes LLVM has are either nonsensical for PAST or trivial to emulate with PAST::Patterns. | 23:40 | ||
| Should I try to figure out some pass classes that would be useful for PASTs or work on optimizations for the remainder of GSoC? | |||
| chromatic | If you work on optimizations, can we start using them by the end of the coding time? | 23:41 | |
| cotto_work | That seems to be a fictitious file. | 23:44 | |
| There's no src/global.c | |||
| tcurtis | chromatic: assuming whatever value of "we" we're using includes/requires my code for their project, yes. | ||
| chromatic | I consider the project a success if we can merge it into trunk and start using at least one optimization step. | 23:45 | |
| Ideally you can have more than one ready, with documentation on how to use them and how to add more stages. | 23:46 | ||
| cotto_work | msg khairul I'd like to meet briefly tonight (my time) to talk about your goals between now and the soft (9th) and hard (16th) gsoc pencils down dates. | ||
| purl | Message for khairul stored. | ||
| chromatic | Whatever you think serves those purposes best is fine with me. | ||
| mikehh | bacek_at_work: need to resolve src/call/context_accessors.c conflicts next, but need a break | 23:49 | |
| tcurtis | "start using at least one optimization step" in the sense of making HLLCompiler have it as one of the default stages? | ||
| chromatic | Yes. | 23:50 | |
| Or at least available for HLLCompiler users to use if they so choose. | |||
| tcurtis | Okay. With that in mind, here's my plan for the rest of GSoC: | 23:57 | |
| 1. Merge the pass-manager branch of my project's repo into master. 2. Take the NQP-rx optimizations I was experimenting with and extract them into a module such that they can easily be added to a compiler. 3. Expand those optimizations and add more until the "soft 'pencils down'" date Monday. 4. Spend the rest of the time improving documentation and testing. | |||
| chromatic | Works for me. | ||
|
23:58
Psyche^ joined
|
|||
| dalek | rrot: r48303 | mikehh++ | branches/gc_massacre/config/gen/makefiles/root.in: [gc_massacre] remove src/global$(0) from root.in |
23:59 | |