|
www.parrot.org/ | Parrot 1.4.0 "Mundo Cani" Released! Set by moderator on 21 July 2009. |
|||
| dalek | nie: r81 | Bradley.Sif++ | trunk/ (5 files): Closure support for inner defs when returned by function. 'newclosure' generated. This is so that inner defs will generate closures properly. This may not be the best way to solve this problem, and it also does not handle assignment statements. |
00:11 | |
| cotto figured | 00:20 | ||
| dalek | kudo: e95ae57 | pmichaud++ | src/classes/Signature.pir: Remove unused all_types PMC creation. |
00:21 | |
| kudo: 186e36d | pmichaud++ | src/ (2 files): We don't need to store an Undef for cons_type; PMCNULL suffices. |
|||
|
00:24
patspam joined
|
|||
| dalek | nie: r82 | Bradley.Sif++ | trunk/ (3 files): Brought over CREDITS from Parrot's CREDITS files where they pertain to pynie. was split from Parrot. |
00:26 | |
|
00:29
wayland76 joined
00:48
kid51 joined
00:49
whoppix joined
01:07
whoppix joined
01:25
bkuhn joined
01:34
TiMBuS joined
|
|||
| mikehh | All tests PASS (pre/post-config, smolder, nqp_test, fulltest) at r40390 - Ubuntu 9.04 amd64 | 01:34 | |
| cotto | test coverage? | 01:39 | |
| purl | test coverage is much better | ||
| cotto | no, test coverage is tapir2.ro.vutbr.cz/cover/ | ||
| purl | okay, cotto. | ||
| dalek | nie: r83 | Bradley.Sif++ | trunk/ (2 files): Added test for lambda inside lambda closure. |
01:41 | |
| nie: r84 | Bradley.Sif++ | trunk/ (2 files): Added full Python 3.1 keyword list from Section 2.3.1 of The Python Language docs.python.org/3.1/reference/lexic...l#keywords |
|||
| purl | rumour has it reference is now stringified | ||
|
02:01
dukeleto joined
02:11
theory joined
|
|||
| dalek | rdinal: 0173911 | treed++ | Rakefile: A few minor fixes to the Rakefile. |
02:16 | |
| rdinal: 869b38d | treed++ | Rakefile: Make it so you can twiddle a global to run tests against CRuby instead of Cardinal. |
|||
| kudo: d51bca3 | pmichaud++ | src/classes/Signature.pir: Slurpy params should default to Object instead of Any. |
02:18 | ||
| kudo: 91408af | pmichaud++ | src/ (2 files): Move print() and say() functions to the setting. |
|||
| kid51 | pynie, cardinal, rakudo: All being worked on simultaneously! (Haven't seen much of that before now!) | ||
| treed | :-) | 02:19 | |
| pmichaud | scary stuff, isn't it? | 02:20 | |
| treed is just messing with the test suite. | |||
| Trying to get it to run faster. | |||
| kid51 | yeah. If I turn around, they might be swapping bytecode behind my back! | ||
| treed | If I precompile to .pir, it knocks about 4 and a half minutes off the time for test:all | 02:21 | |
| pmichaud | sure, parsing is known to be slow. | ||
| treed | (Of course, running the suite against cruby is still 2-3 seconds rather than the 30 or so parrot takes on the pir.) | ||
| pmichaud | that should be fixed rsn | ||
| treed | Well, Cardinal's parser is also particularly stupid. | ||
| purl | okay, treed. | ||
| pmichaud | and parsing should also speed up a lot when we get the calling conventions refactored. | ||
| treed | What did I just tell purl to do? | ||
| Cardinal's parser? | 02:22 | ||
| purl | Cardinal's parser is slower than partcl's or particularly stupid. | ||
| treed | LOL | ||
| Tene | pmichaud: cardinal's parser is crazy stupid. very bad. | 02:33 | |
| I remember vaguely thinking that I could use protoregexes to help a lot, but don't remember the details. | 02:34 | ||
| also does a lot of backtracking iirc. | 02:35 | ||
|
02:35
janus joined
02:46
Andy joined
|
|||
| Andy | Who wants to talk dependencies? | 03:01 | |
| cxreg | chemical? | 03:39 | |
| purl | chemical is probably called 'heat'. :) | ||
| Tene | Yay, dependencies! | 04:18 | |
| eternaleye | Q:chromatic/The "Dependencies Yay/Boo" Debate is Subtly Wrong/ | 04:20 | |
| Whoopsies | |||
| Made a quoting error ;-( | |||
|
04:39
wayland76 joined
|
|||
| Tene | purl: msg WhiteKnight I can't find any way to do select() or poll() on Parrot sockets. Is this going to come as part of your async IO work? I see an apparently-unused Parrot_io_poll. Can I add a 'poll' method to Socket.pmc that calls that? | 04:56 | |
| purl | Message for whiteknight stored. | ||
| dalek | kudo: 18598de | tene++ | src/setting/IO/Socket/INET.pm: Fix Socket::INET to re-use the appropriate attribute from its parent class. |
05:06 | |
| Andy | I'm kinda horrified at all the dependencies I see. | ||
| It's not just .c/.h | |||
| dalek | rrot: r40391 | petdance++ | branches/depends (3 files): more banging on dependencies |
05:08 | |
| rrot: r40392 | petdance++ | trunk/src/gc/mark_sweep.c: consting |
05:21 | ||
|
05:22
MikHel joined
|
|||
| Andy | Tomrorow at this time: Dependency tracking in Parrot and why it's going to kill me. | 05:26 | |
| Tene | That would be tragic. | 05:28 | |
| Andy | I didn't look at the existing dependencies. They're insanely Parrot- | ||
| specific. None of these existing tools will do the job. I've started | |||
| work on my own makedeps.pl. | |||
| trac.parrot.org/parrot/ticket/893#comment:7 | |||
| we have dependencies on .str and .vdump and this and that and the other and so on | 05:29 | ||
| soI need to dig more. | |||
| ok, nightynight | |||
| cotto | Yay! We get our own makedepend clone! | 05:32 | |
|
05:38
cognominal joined
|
|||
| treed | purl: msg pmichaud Tene suggests that you may be able to help figure out a problem I'm having with a namespace(?) bug: github.com/cardinal/cardinal/issues/#issue/31 Any help would be appreciated. | 05:42 | |
| purl | Message for pmichaud stored. | ||
|
05:48
tekky joined
|
|||
| dalek | rdinal: 35bb161 | treed++ | (2 files): Enable precompilation. |
05:49 | |
|
06:02
flh joined
|
|||
| dalek | rdinal: a155287 | treed++ | README: Update the README |
06:06 | |
|
06:10
uniejo joined
|
|||
| dalek | rdinal: 7e2651e | treed++ | Rakefile: Adjust filename for generated test files so that .gitignore catches them. |
06:23 | |
|
07:04
chromatic joined
07:53
payload joined
08:04
tekky joined
08:06
Gerd joined
|
|||
| Gerd | Hello Patrick | 08:07 | |
|
08:18
nillo left
09:14
bacek joined
09:19
donaldh joined
09:27
wayland76 joined
09:28
dukeleto joined
|
|||
| bacek | good evening | 09:32 | |
| dalek | tracwiki: v4 | bacek++ | KeysRefactor | 09:39 | |
| tracwiki: Unscratch KeysRefactor</a> idea | |||
| tracwiki: trac.parrot.org/parrot/wiki/KeysRe...ction=diff | |||
| bacek | msg Infinoid dalek has problems with trac's changes when "Description" contains "WikiWord" inside. | 09:40 | |
| purl | Message for infinoid stored. | ||
|
10:02
HG` joined
10:23
gaz joined
10:24
eiro__ joined
10:25
mokurai left
10:56
UltraDM joined
11:06
AndyA joined
11:07
AndyA joined
11:21
donaldh joined
11:25
payload joined
12:16
whiteknight joined
12:17
quek joined
|
|||
| whiteknight | good morning #parrot | 12:18 | |
| Tene: ping | |||
| purl msg Tene select and poll will be improved with AIO, yes. But you can add a poll method to the Socket PMC too if you want | 12:20 | ||
| purl | Message for tene stored. | ||
| wayland76 | moritz implied on #perl6 that many people are at YAPC::EU. That's why things are quiet | ||
| cono | :D | 12:29 | |
| pizza & soda.. yeah that's why so quiet :D | |||
|
12:44
payload joined
12:50
quek left
12:56
JimmyZ joined
|
|||
| Coke | when reporting bugs, it's a good idea to include the desired output and the actual output. :| | 13:12 | |
| JimmyZ | Coke: yes | 13:22 | |
|
13:57
Austin joined
|
|||
| Austin | hello, purl | 14:02 | |
| purl | hi, Austin. | ||
| whiteknight | good morning Austin | ||
| Austin | Good morning, Andrew. | ||
| What's new in GC-ville? | |||
| seen pmichaud? | 14:09 | ||
| purl | pmichaud was last seen on #parrot 11 hours, 48 minutes and 5 seconds ago, saying: and parsing should also speed up a lot when we get the calling conventions refactored. | ||
| Austin | laugh | 14:10 | |
| Coke wonders if there is a keypress that will tell more to give up and act like cat. | 14:22 | ||
|
14:32
Andy joined
14:42
tokuhirom__ joined
|
|||
| Coke ponders replacing his helper subs in _tcl with macros. | 14:52 | ||
|
14:52
uniejo joined
14:53
Psyche^ joined
14:54
dukeleto joined
14:56
payload joined
|
|||
| Tene | whiteknight: You said "improved"... is there a way to select() or poll() in Parrot right now that I'm missing? | 15:00 | |
| whiteknight | Parrot_io_poll | ||
| at least, that's all I'm aware of | |||
| Tene | whiteknight: Right, but that's not *used* anywhere afaict. | ||
| So you can't call it from PIR. | |||
| JimmyZ | epoll? | ||
| purl | epoll is at www.xmailserver.org/linux-patches/n...prove.html or at www.xmailserver.org/linux-patches/epoll.txt | ||
| whiteknight | oh, I didn't realize it wasn't called from anywhere then | 15:01 | |
| moritz | any news about the pcc-rewire branch? | ||
| whiteknight | none that I have heard | ||
|
15:02
theory joined
|
|||
| Tene | epoll looks like it would be nice. | 15:02 | |
|
15:03
davidfetter joined
|
|||
| Tene | whiteknight: If you follow to Parrot_io_poll_unix in src/io/socket_unix.c, you'll see it's not quite a standard poll(), and there's a little conversation in the POD about whether it's useful or not. | 15:03 | |
| whiteknight | yeah | ||
| Tene | whiteknight: Ideally, I'd like a way to watch several FDs at once. Should I maybe write a new opcode that takes an array of FDs? | 15:04 | |
| whiteknight | I've been trying to design a Poll PMC that would do that | 15:05 | |
| Tene | Ooo... | ||
| Nice. | |||
| So, I should just block this on io_cleanups? | |||
| nopaste | "tene" at 24.10.252.130 pasted "Add a poll() method to Socket.pmc for WhiteKnight++" (37 lines) at nopaste.snit.ch/17456 | 15:06 | |
| Tene | Does that look like a good commit to you? | ||
| whiteknight | yeah, looks reasonable | 15:08 | |
| moritz | a bit more documentation might not be bad :-) | ||
| Tene | moritz: the function above it that I copy/pasted didn't have documentation. :P | 15:10 | |
| OK | 15:11 | ||
| whiteknight: lthough... should the poll method be on Socket or on Handle? | 15:12 | ||
| whiteknight | I have no idea which would be better | 15:14 | |
| that's an allison question | |||
| Tene | Okay, I'll just add it and let someone else sort it out. :D | ||
| WhiteKnight++ for advice. :) | 15:20 | ||
|
15:21
donaldh joined
|
|||
| davidfetter wonders whether cisco is using parrot | 15:22 | ||
| davidfetter hopes donaldh can provide some enlightenment on this | 15:23 | ||
| dalek | rrot: r40393 | tene++ | trunk/src/pmc/socket.pmc: Add a poll method to Socket.pmc |
||
| Coke | davidfetter: cisco's a big place, but I doubt they're using it for anything production. | 15:24 | |
|
15:24
MikHel joined
|
|||
| JimmyZ | Is poll in socket.pmc support windows? | 15:25 | |
| s/Is/Does/ | |||
| davidfetter | they were using postgresql in production at a stage when i would have been cautious about doing so | ||
| as in, "un-updateable box-ware?!? are you out of your [long string of expletives] mind?!?" | 15:26 | ||
| Coke | davidfetter: I'm willing to be surprised. | 15:27 | |
|
15:27
ruoso joined
|
|||
| Coke | Has anything changed recently that would caus Getopt::Obj to be unavailable in an install? | 15:30 | |
| cognominal | whiteknight++ # very informative stuff on planet parrot | 15:37 | |
| whiteknight | thanks! | ||
| moderator | www.parrot.org/ | Parrot 1.4.0 "Mundo Cani" Released! | Planet Parrot planet.parrotcode.org/ | 15:38 | |
| Coke | my working copy of tclsh is borked. :| | 15:42 | |
| (ah, thankfully, it's just me.) | 15:45 | ||
| moritz | I'd rather see one tclsh broken than Coke broken | ||
| Coke wonders what =cut in PIR should do if we're not in pod mode. | 15:46 | ||
| Coke thinks "enabling POD" is not the right answer. | |||
| mikehh | All tests PASS (pre/post-config, smolder, nqp_test, fulltest) at r40392 - Ubuntu 9.04 amd64 | ||
| Coke | ah. not "=cut" but "=cut " | 15:47 | |
| moritz | ugh. | 15:48 | |
| nopaste | "coke" at 72.228.52.192 pasted "this prints nothing and doesn't error (note the extra space after the first cut." (9 lines) at nopaste.snit.ch/17457 | ||
| Coke | if someone wants to bugreport that, have fun. =-) | 15:49 | |
| I'm not sure what the right answer is. | |||
|
15:53
jan joined
|
|||
| Coke | (perl's podchecker doesn't complain about it.) | 15:54 | |
| cotto | msg darbelo When you write up your summary for #ps, be sure to mention how close you are to the timeline in your GSoC proposal. | 16:09 | |
| purl | Message for darbelo stored. | ||
| cotto | Hmmmm. Slow purl. | 16:10 | |
|
16:22
hercynium joined
16:43
hercynium joined
16:50
chromatic joined
|
|||
| Coke | would a CCLASS_ASCII be helpful? | 16:51 | |
|
16:55
payload joined
|
|||
| Coke finds himself wishing he had git in front of svn. | 16:57 | ||
|
17:09
davidfetter joined
|
|||
| Tene | Coke: I can give you a tarball of my git-svn repo. | 17:10 | |
| Coke | for partcl. =-) | ||
| thanks, though. | |||
| moritz | how many revisions are in the partcl source tree? | ||
| Coke | about 500. | ||
| about 550 | |||
| Tene | Coke: same | 17:11 | |
| although easy to grab yourself | |||
| I never use svn directly when I can avoid it. I can't manage to get the svn model in my head well enough to not screw things up. | 17:12 | ||
| PerlJam | Tene: It's weird to see anyone say that about svn. | ||
| Tene | It's weird to me when people say that about git, so we're even. ;) | 17:13 | |
| Coke | git-svn? | 17:16 | |
| purl | git-svn is amazingly great | ||
| Coke | any urls on how to use it other than the man page? | ||
| git-svn is trac.parrot.org/parrot/wiki/git-svn-tutorial | 17:20 | ||
| Infinoid | trac.parrot.org/parrot/wiki/git-svn-tutorial | ||
| Coke | git-svn is also trac.parrot.org/parrot/wiki/git-svn-tutorial | ||
| purl | okay, Coke. | ||
| Tene | Coke: does that tutorial work for you? I never heard any feedback after writing it. If you have any questions or difficulties, please let me know. | 17:21 | |
|
17:22
davidfetter joined
|
|||
| chromatic | whiteknight, adding all new items in a freshly allocated arena to the free list in the fixed-sized allocator is... ripe for optimization. | 17:25 | |
| whiteknight | yes, a very naive first attemp | ||
| attempt | |||
| more proof-of-concept then final implementation. Plus, it gives us a nice proving ground to test some lazy features in the PMC allocator | 17:26 | ||
| chromatic | The benchmarks won't be representative until we fix that is all. | ||
| Coke | tene: there's an unanswered question already on it. | 17:28 | |
| tene - you can squash commits, yes? That would be good to know. | 17:31 | ||
| chromatic | Only until you dcommit, but yes. | ||
| Coke wonders how long a git svn clone of parrot from r1 took. =-) | 17:33 | ||
| chromatic | A while. I cloned the prior ~2000 revisions. | 17:34 | |
| PerlJam | Coke: it takes a lot longer if the SVN repo is remote :) | ||
| Coke | msg tene - that example mentions tags, trunk and branches, but only checks out trunk. | 17:36 | |
| purl | Message for tene stored. | ||
| Coke | (which ties into the question.) | ||
| Tene | Coke: it makes the tags and branches available as git tags and branches. | 17:38 | |
| Coke | ok. a link to something that explains how that works but mentioning that you end up with 'trunk' would be helpful. | 17:40 | |
| hurm. git working copy won't build. | |||
| does git have something like 'svn st -q' ? | |||
| git diff --name-status | 17:42 | ||
| Tene | git can't handle empty directories. I think tcl might need one, iirc. | 17:44 | |
| Coke | yup. empty directory showed up as a file. wtf. | ||
| tene; added a .README to force the directory to be non-empty | 17:47 | ||
| dalek | rtcl: r566 | coke++ | trunk/dynext/.README: add placeholder so git-svn can work |
17:50 | |
| PerlJam | Coke: it's typical to use a .gitignore file for that purpose (FYI) | 17:52 | |
|
17:53
tokuhirom__ joined
17:54
gaz joined
|
|||
| Coke | PerlJam: I can give you a commit bit so you can fix it. =-) | 18:03 | |
| git doesn't respect svn:ignore properties, eh? | 18:05 | ||
| PerlJam | git svn create-ignore | 18:06 | |
| (makes .gitignore files from svn:ignore properties) | 18:07 | ||
| Coke | does it git-add them? | 18:11 | |
| (wow, slow0 | |||
|
18:14
joeri joined
18:19
tokuhirom__ joined
18:24
payload joined
|
|||
| Coke | PerlJam: I have a few commits pending locally. I just did a git add of all the .gitignore files - when I try to commit now, it shows me another file that I already commited earlier, but has no changes now. should I expect to see it in the comments when I do a 'git commit' ? | 18:26 | |
| hurm. i think I might have already committed those .gitignore files locally, which is why they're all showing up in teh same list. | 18:27 | ||
| yup, that's the problem. | 18:28 | ||
| treed | git status # tells you what files have been modified, are untracked | ||
| PerlJam | glad to have been of help :) | ||
| treed | git diff # shows a diff from HEAD | ||
| git commit --interactive # Best thing since sliced bread | |||
| moritz | treed: not quite (git diff) | 18:29 | |
| treed | I love that you can edit a diff in commit. | ||
| moritz: Oh? | |||
| moritz | treed: it doesn't show things from the staging area | ||
| treed | Ah. | ||
| moritz | you need git diff HEAD or git diff --cached for that | ||
| Coke | I would dislike editing in a commit because of testing issues. | ||
| treed edits commits to separate them out into more atomic commits. | |||
| If I had to fix a bug to get something working, OSLT. | |||
| I'll commit the bugfix first by itself. | 18:30 | ||
| In some cases, editing the diff so that it goes back to the original way without the new feature in. | |||
| Coke | if i git rm something and then git commit that... where can I see that if I do a git svn dcommit that it'll get deleted? | ||
| moritz | maybe 'git diff origin/trunk' | 18:32 | |
| Coke | fatal: ambiguous argument 'origin/trunk': unknown revision or path not in the working tree. | ||
| a, just trunk, yes, that works. | 18:33 | ||
| danke. | 18:34 | ||
| didn't seem to show up in just git diff --cached | |||
| moritz | --cached doesn't make a difference if you comitted it already | 18:35 | |
| Coke | tene++ | ||
| perljam++ | |||
| chromatic++ | |||
| moritz | only if you added but not commited | ||
| Coke | moritz++ | ||
| ok. I thought cached was "stuff you committed but hadn't dcomitted" | |||
| moritz | no, git doesn't know about these things, only git-svn does | 18:37 | |
|
18:38
athomason joined
|
|||
| dalek | ose: r88 | Austin++ | trunk/ (17 files): Grammar refactor checkpoint. Nothing works. |
18:41 | |
| particle | treed: use git commit -p # shortcuts to patch in interactive mode | 18:43 | |
| er, git add -p | 18:44 | ||
| i like to add before commit. | |||
| treed | Ah. | 18:46 | |
| I add in commit --interactive. | |||
| Mostly because I'm sometimes not sure how many different commits I'll want. | 18:47 | ||
| So I'll jump into commit --interactive, examine things, then start sorting it out in depends order. | |||
|
18:47
nillo joined
18:51
iblechbot joined
|
|||
| Coke | looks like I have it working enough that i can use it basically as a disconnected svn, which is all I needed. | 18:55 | |
| dalek | TT #900 created by Austin_Hastings++: NQP parses functions beginning with 'make' as keyword | 19:19 | |
|
19:25
sekimura left
19:38
hercynium joined
19:47
payload joined
19:53
theory joined
20:19
MoC joined
20:22
mokurai joined
20:33
JC1 joined,
cogno joined
21:00
bacek joined,
Whiteknight joined
|
|||
| Whiteknight | chromatic: ping | 21:01 | |
| chromatic | pong | 21:02 | |
| Whiteknight | I wanted to get more information from you about that lazy allocation idea | ||
| because I'm thinking about it, and I feel like it's going to be more expensive overall because of added runtime checks | |||
| chromatic | Amortized, it's about the same. | ||
| You have "Add everything to a free list on every new pool allocation", with all of that runtime cost. | 21:03 | ||
| Whiteknight | okay, so then what would be the benefit in doing one over the other? | ||
| right, but I'm adding everything at once in a very tight loop | |||
| chromatic | That also touches the page in a big way and moves empty, unused stuff into a cache. | ||
| Processor cache. | |||
| Whiteknight | ah, I see what you are saying then | ||
| chromatic | The other one is "Allocate, update the first_free_in_pool pointer". | ||
| Skip the add to free list. | 21:04 | ||
| Then when you want a new item, grab first free in pool, bump the pointer, then check if it's at the end. | |||
| You already have to do that check if you use the free list; you could have an empty free list. | |||
| Whiteknight | ok | ||
| chromatic | Grabbing a free item should check the free list first, then bump the pool pointer. | ||
| This strategy is also a step toward releasing allocated memory later. | 21:05 | ||
| Whiteknight | how's that? | ||
| chromatic | If we mmap() our pools and if we have a copying/compacting scheme, we can detect when a pool is unused. | ||
| Whiteknight | I feel like the only real step we can make in that direction is to introduce copying/compacting | ||
| chromatic | Then unmmap() it back to the OS, for platforms where that works. | ||
| Whiteknight | unfortunately we aren't going to have any good comparative benchmarks for this new allocator until NotFound moves forward with TT #895 | 21:07 | |
| chromatic | Conservative estimate: 10% improvement. | 21:08 | |
| Whiteknight | I could try to introduce that change into the PObj allocator instead, see how it works there | ||
| chromatic | Add another 5% for the pool change. | ||
| Whiteknight | 15% is a nice little change, for such a comparatively small amount of code to write | ||
| chromatic | It's a nice tuning without too much danger. | ||
| Whiteknight | so if we do this lazy pool thing on the PObj allocator, what do you estimate that will buy us? | 21:09 | |
| another 5%? | |||
| chromatic | 3-5% | ||
| purl | 2.95 | ||
| Whiteknight | ok | ||
| chromatic | But... | ||
| Whiteknight | ...? | ||
| purl | Yada yada yada hasn't been implemented yet! (unless you run bleadperl) | ||
| chromatic | It also lets us allocate larger pools. | ||
| Whiteknight | what do you mean "lets us"? Is there anything stopping us from allocating much larger pools now? | 21:10 | |
| chromatic | Adding a fresh pool to the free list is O(n). | ||
| Whiteknight | hell, our pool size grows by 1.5 times on every new allocation, they get huge after a while | ||
| chromatic | They start small. | ||
| Whiteknight | on a side note, they start too small considering our significant startup costs | ||
| chromatic | Exactly. | 21:11 | |
| If we didn't have that O(n), we could bump them up so that most of our test programs fit in the initial pools and avoid GC altogether. | |||
| I profiled it. That O(n) wipes out the costs of making them larger. | 21:12 | ||
| Wipes out the gains, I mean. | 21:13 | ||
| Whiteknight | okay, so implement that lazy allocation algorithm first, increase initial pool size, we're looking at about 15-20% improvement? | ||
| including TT #895 | |||
| chromatic | Maybe 15% overall. | 21:14 | |
| Whiteknight | okay, that's certainly worth my while | ||
| chromatic | If we increase the pool size, we can ignore GC in most of the test programs. | ||
| Figure another 10% improvement there, so our test suite could be some 25% faster. | |||
| Whiteknight | ok | 21:15 | |
| chromatic | Bump up the pools so that Rakudo doesn't have to run the GC to start up and.... | 21:16 | |
| Whiteknight | that optimization path has finite potential though, we can't hog too much memory | 21:19 | |
| cotto | says who? | ||
| purl | i think says is not reliable, in that errors are reported but no automatic retry. | ||
| chromatic | 10 MB startup cost is not hideous. | ||
| We can trim that. | |||
|
21:25
donaldh joined
|
|||
| Whiteknight | too big and there's a very real possibility that memory will start getting moved to disk | 21:26 | |
| 10MB is probably acceptable, probably even higher would be fine, but too much is too much | 21:27 | ||
| chromatic | We'll be able to profile Rakudo in the near future. | 21:28 | |
| cotto | Yes we will. | ||
| purl | o/` We will, we will ROCK YOU! o/` | ||
|
21:34
joeri left
21:37
MikHel joined
|
|||
| bacek | Good morning #parrot | 21:40 | |
| donaldh | Hi, reading the backlog, there seems to be some GC activity taking place. | 21:41 | |
| I'm in the process of hacking Boehm GC into parrot to see how it fares | 21:43 | ||
| Whiteknight | awesome! | 21:45 | |
| purl | rumour has it awesome is a window manager or at awesome.naquadah.org or awesome | ||
| Whiteknight | nopaste? | ||
| purl | nopaste is, like, at nopaste.snit.ch/ (ask TonyC for new channels) or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) or gist.github.com/ or paste or gtfo | ||
| nopaste | "Whiteknight" at 69.248.162.161 pasted "lazy allocator patch for chromatic++" (79 lines) at nopaste.snit.ch/17461 | 21:46 | |
| Whiteknight | chromatic, that patch should do what you are talking about with the lazy allocator | ||
| "this software is provided as-is without any warranty or even suspicion that it should work at all" | 21:47 | ||
| chromatic | That's pretty short. That's a decent proof of concept. What runs with it? | ||
| Whiteknight | nothing, haven't even tried building it yet | ||
| donaldh | Ends up being a bit of a hatchet job. Have to replace _everything_ with Boehm. It does flush out all the cases where things directly call malloc/free without going through mem_sys_alloc | ||
| Whiteknight | mostly want a sanity check that this is what you are talking about | ||
| chromatic | donaldh, can you send a patch to make things go through the mem_sys_* macros? | 21:48 | |
| Whiteknight | donaldh: where are you doing your work? in a branch? | ||
| donaldh | chromatic: I could probably make up a patch to do that. I would need to search/replace all GC_MALLOC calls with mem_sys_alloc. I was lazy, tsk. | 21:49 | |
| chromatic | Even if the Boehm replacement never works, that would be an advantage for Parrot. | 21:50 | |
| donaldh | Whiteknight: just on my checkout. | ||
| Whiteknight | okay, awesome. I would love to see it whenever you get a chance | 21:53 | |
| the only problem I found with Boehm was the difficulty in getting the VTABLE_destroy called | 21:54 | ||
| it doesn't make any guarantee whatsoever about order of destruction, or even timeliness of destruction | |||
| donaldh | Is that important semantically for parrot? | 21:55 | |
| Whiteknight | no, our current GC doesn't make those guarantees either | ||
| chromatic | Timeliness not so much. | ||
| Whiteknight | order of destruction would sure be nice, but at this point we are more likely to get it by asking Santa | 21:56 | |
| donaldh | If you GC _everything_ do you need a VTABLE_destroy? | ||
| chromatic | Yes. | ||
| Whiteknight | yes, because some PMC types still need custom finalization (think closing filehandles) | ||
| of course, far fewer PMCs would need them then what currently use them | |||
| donaldh | Ah, okay. That was my question. It is important sematically because it is parrot's finalize. | 21:57 | |
| Whiteknight | Boehm does provide a callback hook that you can pass a function pointer to to run custom cleanup on a freed item, but I never quite dug into that deep enough | 21:58 | |
| chromatic | I had to make that work in Haskell for Pugs. Found bug in GHC that way. | ||
| donaldh | Yes I read about that but decided to try an extremely simple approach first. | 21:59 | |
| Whiteknight | the simpler the better | ||
| donaldh | Okay, Failed 6/317 test programs. 49/9824 subtests failed. | 22:00 | |
| Whiteknight | chromatic: that patch had at least 1 typo and it segfaults somewhere when I test it | 22:03 | |
|
22:04
theory joined
|
|||
| chromatic | + pool->newfree = (PMC_Attribute_Free_List*)((char*)(pool->newfree) + pool->attr_size); | 22:04 | |
| could be | |||
| cotto | quality | ||
| chromatic | pool->newfree++ | ||
| donaldh | Do you want me to post a svn diff just now? I might not get back to this for a few days. | 22:05 | |
| Whiteknight | chromatic: can't be that because the ->newfree pointer doesn't know what size the object is | 22:06 | |
| cotto | chromatic, how do we feel about perl 5.10 features in the profile postprocessing script? | ||
| chromatic | Hm, I see. | ||
| cotto, which ones? given/when? | 22:07 | ||
| cotto | smart match | ||
| purl | hmmm... smart match is www.xray.mpe.mpg.de/mailing-lists/p...00561.html or L<perlsyn/Smart matching in detail> in >5.9.* or a feature from perl 6 | ||
| chromatic | Good for a first approximation anyway. | 22:08 | |
| cotto | Ok. It won't be hard. | ||
| just annoying | |||
| chromatic | To use smart match? | 22:10 | |
| cotto | yeah. I'm checking if a string is an element of a list. | 22:13 | |
|
22:14
ruoso joined
|
|||
| cotto | to *not* use smart match is annoying | 22:14 | |
| GeJ | Good morning everyone | 22:20 | |
| Whiteknight | good morning GeJ | 22:25 | |
|
22:31
kid51 joined
22:39
rg joined
|
|||
| Whiteknight | ah, found my errpr | 22:40 | |
| error | |||
| pool->newfree == NULL, insted of pool->newfree = NULL; | |||
| cotto | That didn't produce a warning? | 22:42 | |
| kid51 | [somewhat OT] When I am viewing either planet.parrotcode.org or Whiteknight's blog in Firefox and go to print, I only get the first page of any particular blog post -- and even the header doesn't get printed on the same page as the first paragraphs. | 22:47 | |
| Has anyone else experienced this? | |||
| Whiteknight | never heard of that | 22:49 | |
| kid51 | That's Firefox on Ubuntu Linux, BTW | ||
| Whiteknight | cotto: maybe, but the build zipped by so quickly I didn't see it | ||
|
22:51
Zak joined
|
|||
| cotto | seen rgrjr | 22:51 | |
| purl | rgrjr was last seen on #parrot 1 years, 96 days, 3 hours, 13 minutes and 19 seconds ago, saying: thx. [Apr 29 19:32:08 2008] | ||
| nopaste | "donaldh" at 213.123.171.12 pasted "chromatic: patch to replace malloc / free with mem_sys_allocate / mem_sys_free" (330 lines) at nopaste.snit.ch/17463 | ||
| kid51 | And, based on Preview, it looks like I'll get the same results printing from either Camino or SeaMonkey on Mac OS X | ||
| Whiteknight | well holy shit, I'm sure I've seen him in here more recently then 1.25 years ago | ||
| kid51 | seen rgr | 22:52 | |
| purl | rgr was last seen on #parrot 2 years, 230 days, 19 hours, 9 minutes and 3 seconds ago, saying: Anybody want to point me at something? [Dec 17 03:37:17 2006] | ||
| kid51 | Whiteknight's blog? | ||
| purl | it has been said that Whiteknight's blog is certainly not "authoritative", but Whiteknight is a committer, yes | ||
| chromatic | cotto, go ahead and use smart match (if it wasn't clear already). | 22:53 | |
| kid51 | purl forget Whiteknight's blog | ||
| purl | kid51: I forgot whiteknight's blog | ||
| kid51 | purl Whiteknight's blog is wknight8111.blogspot.com/ | ||
| purl | OK, kid51. | ||
| kid51 | Whiteknight's blog? | 22:54 | |
| purl | Whiteknight's blog is wknight8111.blogspot.com/ | ||
| dalek | rrot: r40394 | whiteknight++ | trunk/src/gc (2 files): [TT #895] improvement to the fixed-size allocator that uses a lazy allocation approach as suggested by chromatic++. May adapt this same methodology, after testing, to the PObj allocator as well for the win. |
||
|
22:54
mikehh_ joined
|
|||
| donaldh | chromatic: I realize that I've edited two generated lexer files in that patch but I don't have flex installed. | 22:54 | |
| chromatic | Did you edit the source files? | 22:55 | |
| donaldh | Yes. | 22:56 | |
| cotto | seen rj | ||
| purl | rj was last seen on #catalyst 3 years, 314 days, 20 hours, 55 minutes and 36 seconds ago, saying: who knows how to configure apache to run catalyst app? [Sep 24 01:55:25 2005] | ||
| chromatic | Shouldn't be a problem then. | 22:57 | |
| donaldh | I would need to dust off my flex knowledge to remember how to override yymalloc and yyfree. | 23:01 | |
| chromatic | + if(pool->newfree != NULL) { | 23:05 | |
| coding std! | |||
| I beat mikehh in reporting that one. | |||
| Could even be: | |||
| if (pool->newfree) { | |||
| donaldh | chromatic: I can revise that patch to fix the lex source files. It'll be tomorrow though. Sleep now. | 23:06 | |
| chromatic | Thanks. | ||
| eternaleye | purl: seen rjr | 23:26 | |
| purl | I haven't seen 'rjr', eternaleye. Close matches are: rgrjr [1y, 96d, 3:48:43], rjray [2y, 354d, 19:27:16] | ||
|
23:44
mberends joined
|
|||