|
Parrot 1.3.0 "Andean Swift" released | parrot.org Set by moderator on 23 June 2009. |
|||
|
00:02
patspam joined
|
|||
| mikehh | At the moment I can build, smoke and run fulltest in less than 30 minutes - at least on Ununtu 9.04 amd64 | 00:04 | |
| Austin | Grr. | 00:09 | |
| ... readin' mah code, findin' mah bugz. | |||
|
00:19
whoppix joined
|
|||
| Austin is singing along to the Pine Box Boys... "deth-country" 8-O | 00:19 | ||
|
00:19
skids joined
|
|||
| davidfetter | isn't that a little redundant? | 00:23 | |
| Austin | Oh, no. | 00:25 | |
| Country is like "I'm sad," or like "I was sad, but now I'm better." | 00:26 | ||
| Deth-country is like "I'm killing you, and it's because I'm sad." | |||
| davidfetter | and this is...? | ||
| heh | |||
| Austin | Makes all the difference, really. | ||
| davidfetter likes epic poetry | 00:27 | ||
| Austin | Or, "I'm going on a killing rampage, and it's because I'm nuts. And my daddy was, too." | ||
| davidfetter | which is almost always sung | ||
| Austin | Or rapped. | ||
| "Many-splendored Odysseus ..." | |||
| davidfetter | indeed :) | ||
| Austin | Try explaining to people that rap == epic poetry. You get some funny looks. | 00:28 | |
| :) | 00:29 | ||
| davidfetter | what's to explain? | 00:31 | |
| Austin sings, "Well, I left Kentucky back in '49 and went to Detroit working on a 'ssembly line. The first year they had me putting wheels on Cadillacs." | 00:32 | ||
| davidfetter <3 johnny cash | |||
| Austin | Ayup. | ||
| You buttocks Johnny Cash? | 00:33 | ||
| davidfetter | lol! | ||
| cotto | seen darbelo | ||
| purl | darbelo was last seen on #parrot 3 days, 2 hours, 33 minutes and 51 seconds ago, saying: If you get there first, it yours. [Jul 3 21:54:35 2009] | ||
| Austin | Another parrotQuote | ||
| davidfetter | "honey, take me for a spin" | ||
|
00:33
jimmy joined
|
|||
| Austin | "The first day I got me a fuel pump. The next day I got me an engine and a trunk..." | 00:33 | |
| Who is the Aesop character with the low-hanging fruit? | 00:34 | ||
| davidfetter | um | ||
| Tene | Tantalus? | ||
| Wait, no, that's greek. | 00:35 | ||
| Austin | Many-spendored Tantalus... | ||
| davidfetter | heh | ||
| Austin | yeah. | ||
|
00:35
davidfetter joined
|
|||
| davidfetter | grrr! firefox crash ftl :P | 00:36 | |
| Austin | Hmm.. Tantalus may be the best I can find. | 00:39 | |
| Google is not a very good friend today. | |||
| cotto | msg darbelo You should post something on your blog, even if it's just a note that you're not dead. | 00:41 | |
| purl | Message for darbelo stored. | ||
| Austin | Cotto: didn't you hear? Darbelo is dead. | ||
| It turns out darbelo == Michael Jackson. | |||
| More talented than any of us thought.. | 00:42 | ||
| singer, dancer, haxx0r | |||
| Many-spendored darbelo | |||
| hachi | cotto: ? | 00:43 | |
| Austin | Hello, hachi. | ||
| Did you get some messages about purl today? | |||
| hachi | /wi/win 26 | ||
| it's not special... it's 'are' instead of 'is' | 00:44 | ||
| I'll find a way to clear it | |||
| Austin hands hachi the purl plunger... | 00:45 | ||
| cotto | Austin, don't do that. | 00:46 | |
| Austin | Don't give hachi the plunger? | ||
| cotto | You scared me for the .5s before my common sense kicked in. | 00:47 | |
| Austin | Or don't make mortality jokes? | ||
| Or don't compare parrot haxxors to Michael Jackson? | |||
| cotto | I was going to say mortality jokes, but I guess I'd have to not make them first. | 00:48 | |
| Austin | :) | ||
| pot | Hey kettle, you're black. | ||
| Austin | Hachi, I can't find it, but there's an old Dilbert strip where Alice is complaining to the PHB about wanting a raise. And then the maintenance guy walks up with some kind of 5-limbed geebus stuck in his plunger and says, "Look what I found stuck in the toilet." | 00:49 | |
| hachi | O_o | ||
| davidfetter | 'sup hachi | 00:50 | |
| Austin | All the low-hanging fruits are plucked, at least for PAST::Block. :( | ||
|
00:53
zak_ joined
|
|||
| cotto gives Austin a cherry picker. | 00:54 | ||
| Austin | Say! | ||
| Thanks. | |||
| The paper today reported (in the "news of the strange") that a husband and wife won the men's and women's championships at the International Cherry-Pit Spitting contest. | |||
| cotto | How romantic. | 01:02 | |
| Austin | The couple that spits together .. | ||
| Okay, here's a challenge. | 01:04 | ||
| cotto | I imagine their home life is interesting. | ||
| Austin | PAST::Node defines a method that conflicts with a keyword in Close. What should I do? | 01:05 | |
| cotto | make the parser smarter | ||
| or is the keyword one that could reasonably be used in the same place a method could? | 01:06 | ||
| Austin | Well, first remember that methods and subs are basically the same (methods have an adverb attached). | 01:08 | |
| So yeah, a sub name could appear at the start of a line, and so could a storage class ("lexical"). | 01:09 | ||
| It would have to see the '(' afterwards, I guess. | |||
| cotto | The parser could certainly do that. | 01:10 | |
| Austin | Is that "Sure, the parser could do that ..."? Or is that "Yes, the parser could do that, and here's how ..." ? | 01:13 | |
| cotto goes off to download Close... | 01:14 | ||
| (but no cigar) | |||
| Austin | code.google.com/p/close/source/brow...grammar.pg | 01:15 | |
| If you know what the difference is between a "conventional C grammar" and one which could do that, I'll gladly take a hand-waving sentence or two. | 01:16 | ||
| cotto | What's the conflicting keyword? | ||
| Austin | lexical | ||
| It's a storage specifier, like "register" | 01:17 | ||
| cotto | and the current grammar doesn't parse it? | 01:19 | |
| Austin | It parses fine. | 01:20 | |
| But the PCT library (pct/src/PAST/Node.pir) which I'm trying to re-implement in Close defines a method named "lexical". | |||
| Which it can't do because that's a reserved word, etc. | |||
| cotto | Do you have a test case that needs to parse but doesn't? | 01:21 | |
| Austin | So in order to be able to transparently do PCT, I need to either (a) suck it up and rename that method, or (b) figure out how to smarten up the Close parser to allow (some) reserved words as identiifers. | ||
| cotto | I'd go with (b). | 01:22 | |
| Austin | nopaste.com/p/aCWaKapXX | 01:23 | |
| Change _lexical to lexical, it breaks. | |||
| purl | Austin: that doesn't look right | ||
| Austin | So the worst case scenario is something short. | 01:26 | |
| I think that as long as a paren or operator is required, identifiers can impinge on adverbial type reserved words (const, lexical, register). | 01:28 | ||
| They obviously shouldn't come close to statement reserved words, because "while (a) ;" is a valid statement, and would be ambiguous with a function call to "while". | |||
| Hmm.. C# cleverly works around this by permitting an @ sigil to require validity. | 01:31 | ||
| cotto | Does Close work fine with the latest Parrot from svn? | ||
| Austin | That's both hackish and lazy .. and therefore surprisingly attractive. | ||
| I don't know. Bide. | |||
| My parrot is @39808 | |||
| What's yours? | 01:32 | ||
| purl | yours is the best! | ||
| cotto | 39901 or so | ||
| Austin | Wow. I should try to catch up. | 01:33 | |
| I know Pm committed a couple of fixes for me. | |||
| I'll do that now. | 01:34 | ||
| 901. Now to build | 01:38 | ||
| cotto | it builds and the tests are running ok | ||
| Austin | "Today we salute you, Mr. Homemade Pontoon-Boat maker..." | ||
| cotto | looks good | 01:39 | |
| bacek_at_work | svn.parrot.org/languages/c99/trunk/src/c99.pg | 01:40 | |
| Austin | C99, bacek? | 01:41 | |
| bacek_at_work | it disallow using "keyword" as "identifier" | ||
| Yeah, old good C99... | |||
| Austin | Yes. (And between us chickens, I stole a bunch of stuff from there..) | 01:42 | |
| bacek_at_work | :) | ||
| It's Artistic License. You "borrowed" a bunch of stuff :) | |||
| dalek | rrot: r39902 | jkeenan++ | branches/darwinhints: Create branch to work on TT 727. |
01:43 | |
| Austin | Sure. I'm an Artiste. | ||
| cotto | Austin, why doesn't --target=parse work? | ||
| Austin | I have no idea. I didn't know there was such an animal. | 01:44 | |
| cotto | (past, post and pir work) | ||
| It's handy. | |||
| You should be getting it for free by using PCT. | |||
| Austin | What does it do? | ||
| Or what would it do if it worked? | |||
| cotto | It'd spit out the parse tree. | 01:45 | |
| Austin | Hmm. | ||
| Not the past tree? | |||
| (Of course, that would be --target=past) | |||
| What does it do instead? | 01:46 | ||
| cotto | dies horribly | ||
| Austin | ROFL | ||
| cotto | it seems to have something to do with some inline pir | ||
| Austin | Ahh. | 01:47 | |
| There you have it. | |||
| (??) | |||
| Does the --parse disable inline pir or something? | |||
| Because that'll kill the whole thing. | |||
| cotto | I'm not sure how it interacts with inline PIR. That'd be a good question for pmichaud. | 01:52 | |
| Austin | So many of them are... :) | ||
| cotto | pmichaud, watch out for buses. | 01:53 | |
| Austin | You think we could get one of those parrot foundation grants for putting pmichaud in a glassed-in zoo habitat. | ||
| cotto | seen pmichaud | 01:54 | |
| purl | pmichaud was last seen on #parrot 1 hours, 58 minutes and 37 seconds ago, saying: (2GB, in fact) | ||
| Austin whispers, "There he is, folks. Parrotus haxx0rus in his native habitat. Notice how he survives on bottled water and granola bars. But without his laptop, he'd be a ferocious beast indeed..." | 01:55 | ||
| A couple million for the asteroid shield, a few thousand for the anti-vehicle barricade... | 01:56 | ||
| cotto | It'd be good for Parrot but I think his family would object. | ||
| Austin | We could give them passes once a week. | ||
| Philadelphia Zoo sells some kind of seasonal thing for cheap. | |||
| Failed test: t/symlink | 01:57 | ||
| Surprise. | |||
| purl | HERPES! HLAGHLAGHLAGHLAGH | ||
| Austin | purl: forget surprise. | ||
| purl | Austin: I forgot surprise | ||
| Austin | Surprise. | ||
| sudo make install | 02:00 | ||
| purl: help purl | 02:01 | ||
| purl | Austin: what? | ||
| Austin | purl: purl? | ||
| purl | well, i am My mother's name is Eliza or some horror port of perl 4 to perl 5 or part of a bot net or hated or part of a botnet of hatred or a minor fork of floot, source and documentation at github.com/hachi/flooterbuck-purl/tree/master | ||
| Austin | purl: sudo is [sudo] password for $who: | 02:06 | |
| purl | ...but sudo is preferable to the alternatives in most cases, IME or xkcd.com/c149.html... | ||
| Austin | sudo | ||
| sudo? | |||
| purl | it has been said that sudo is preferable to the alternatives in most cases, IME or xkcd.com/c149.html | ||
| Austin | sudo make me a sandwich | ||
| dalek | rrot: r39903 | jkeenan++ | branches/darwinhints/lib/Parrot/Configure/Options/Test/Prepare.pm: Make one internal variable's name more self-documenting. |
||
| Austin | Okay, back to close. | 02:07 | |
| Infinoid | sudo | 02:11 | |
| sudo? | |||
| purl | [sudo] password for Infinoid: | ||
| Infinoid | oh well, I was close | ||
| Austin | Yeah. | ||
| I'm hoping. | |||
| Infinoid | Austin++ | 02:12 | |
| goodnight all | |||
|
02:12
Andy joined
|
|||
| Austin | g'night inf | 02:14 | |
|
02:15
ilia left
|
|||
| cotto | Austin, what's the reason you use all the DECL_MODE_FOO rules? Could the same effect not be achieved without the inline pir? | 02:17 | |
| Austin | At the cost of splitting the rules, yes. | 02:18 | |
| cotto | btw, the code works fine if you remove "lexical" from language_elements. I don't know if that's a good long-term solution though. | 02:19 | |
| Austin | :) | ||
| I kind of assume that it will work via backtracking. | |||
| But it's good to know. | |||
| Thanks. | 02:20 | ||
| (Backtracking == slooooooow.) | 02:23 | ||
|
02:29
tetragon_ joined
|
|||
| dalek | rrot: r39904 | jkeenan++ | branches/darwinhints/lib/Parrot/Configure/Options/Test/Prepare.pm: Inline comments as to what an internal sub does. |
02:33 | |
|
02:35
janus joined
|
|||
| Coke | wow. I am missing tortoise svn on my mac. | 02:41 | |
| Austin | :) | 02:42 | |
| svn status | |||
| svn update | |||
| purl | At revision 666. | ||
| Austin | svn commit -m "Comment" | ||
| What more do you need? | |||
| Coke wonders if he can use the new svn merge stuff in this repo. | 02:45 | ||
| Austin | What repo? | 02:46 | |
| purl | i heard repo was on search.cpan.org for modules that set it via repository() in their Makefile.PL or repo.or.cz/w/repo.git or repository | ||
| Coke | googlecode | ||
| purl | i guess googlecode is google's sourceforge replacement | ||
| Austin | Probably not - they're at 1.4 | ||
| dalek | rtcl: r520 | coke++ | branches/tclstring (6 files): Merge in r511:519 from trunk |
02:52 | |
| Coke | bah. if I take my TclString PMC, rename it to TclStringPMC, and create a PIR subclass of it, I get test failures. | 02:53 | |
| Coke tries to remember which bug this is tcling. | |||
| Austin | Why? | 02:54 | |
| purl | Left field. | ||
| Coke | why what? | ||
| purl | Left field. | ||
| Austin | Are they checking type, or is it just a mystery? | ||
| Coke | The type is (ostensibly) always TclString | ||
| in trunk, that's a PMC, in branch, that's a pir class. | 02:55 | ||
| Austin | Right, but if you just subclass and rename, everything should stay the same, no? | ||
| Except the class name, and maybe namespace. | |||
| (The p6object stuff, for instance, considers all PMCs to be in parrot:) | 02:56 | ||
| Coke | the class name is still 'TclString' | ||
| Austin | So what test is failing? | ||
| (Is this in the tclstring branch?) | 02:57 | ||
| Coke | t/cmd_expr.t, t/cmd_upvar.t | ||
| yes. | |||
| Austin | A particular one in expr? | 02:58 | |
| Coke | I'm looking at upvar first, as it's smaller. it's a segfault. | ||
| Austin | Yikes. GC problem, or something real? | 03:00 | |
| Coke | I bet something in class is overriding a vtable I used to get from one of my PMC's ancestors. | 03:01 | |
| er, class/object. | |||
| Austin | Maybe try it by delegating? | 03:02 | |
| nopaste | "Coke" at 72.228.52.192 pasted "backtrace from tclstring branch" (13 lines) at nopaste.snit.ch/17134 | 03:10 | |
| Austin | This is the $I0 = isa obj, $P1 version? | 03:15 | |
| Does tcl use HLL tcl? | 03:17 | ||
| Or does it still use parrot? | |||
| Coke | HLL | ||
| early adopter. | |||
| ah. no, it's this: trac.parrot.org/parrot/ticket/776 | 03:19 | ||
| I thought this felt familiar. :| | 03:20 | ||
|
03:20
donaldh joined,
buildbot joined
|
|||
| dalek | rtcl: r521 | coke++ | branches/tclstring/BRANCH_STATUS: note why this branch is failing so I don't diagnose it a /third/ time. |
03:21 | |
| Austin | Is undef a tcl class? | 03:22 | |
| Coke | Austin: no. see src/class/undef.pmc | ||
| Austin | Or the standard undef pmc | ||
| Okay. | |||
| Coke | er, src/pmc/undef.pmc | ||
| Austin | Do you have the tcl.pir checked in? | 03:23 | |
| Coke | ? | 03:24 | |
| Austin | The Tcl interpreter that is calling ISA here? | ||
| Or whatever code it is. | 03:25 | ||
| Coke | build tcl. you then have "tcl.pbc" | ||
| Austin | Because I had some problems with isa -- though none of them were core dumps -- when trying to "isa $P99, 'Undef'" | ||
| Because "Undef" is a parrot class, and I'm in the Close HLL namespace (/close/...) so I had to create a rooted key. | 03:26 | ||
| Coke | so, $I0 = isa foo, [ 'parrot'; 'Undef'] ? | 03:27 | |
| Austin | nopaste.com/p/aZFDrRZLnb | ||
| Pretty much, except that it's harder. | 03:28 | ||
| You wind up using the namespace, which has a _root_ variant. | |||
| Coke | it occurs to me that I should be using $I0 = defined foo ; anyway. | ||
| Austin | Umm. Will that work? | ||
| Okay. It's a vtable. Should work. | 03:30 | ||
| Coke | if I do that, the segfault moves to Parrot_Class_does | 03:33 | |
| Austin | Progress! | ||
| Because it's undef, and therefore doesn't? | 03:34 | ||
| But no. | |||
| Coke | I give up. | ||
|
03:44
cotto joined
|
|||
| cotto | Why can't there be any Linux DVD players that don't either suck or occasionally take down X? | 03:47 | |
| Austin | It's in the rules. | ||
| All testers work for MSFT. | |||
| cotto | Yeah right, testers. | 03:48 | |
| I wouldn't mind paying for one if it would only work reliably and not have any inane missing functionality. | 03:49 | ||
| Austin | $35 at Big Lots. | 03:52 | |
| Comes with 5.1 surround. | |||
| Plays DVDs. | |||
| AC or DC12v. | |||
| chromatic | Region free? | ||
| Austin | Probably not. | ||
| chromatic | No imports for you! | 03:53 | |
| cotto | region-sensitivity counts as inane missing functionality (as does the inability to skip "unskippable" sections) | 03:54 | |
| Austin | Where's kid51? xkcd.com/416/ | 03:55 | |
| bacek_at_work | "Everybody, meet Stig. Stig used to program Ruby, but now he's recovering." :) | 04:21 | |
| cotto: any progress with opsc? I'm tired to hinting gc bugs and want to switch something different... | 04:22 | ||
| cotto | I was going to hack out the parser after watching a movie, but the parser may end up being less frustrating. | 04:24 | |
| For some reason vlc doesn't want to display any video. | |||
| Have you been looking at ops2c? | 04:25 | ||
| Bah. Movies are overrated. | 04:31 | ||
| bacek_at_work, opsc is mostly empty files at this point. It's not at the point where more than one person can usefully hack on it. | 04:36 | ||
| bacek_at_work | cotto: I did look at ops2c. After few minutes my brainz melted and start laughing insanely... | 04:40 | |
| cotto | I wouldn't call it great code, but there's a method to the chaos. I did have to make a list of the files and their purposes before the code made sense, though. | 04:48 | |
| Is there a nice way to get Configure.pl to regenerate makefiles without going through the whole process? | 04:51 | ||
|
04:53
Theory joined
|
|||
| coke_segf_TT_776 | cotto: no, but that's what "reconfigure" is for, IIRC. | 04:54 | |
| cotto | coke_segf_TT_776, are you trying to draw attention to something? | 04:55 | |
| coke_segf_TT_776 | though tools/*/reconfigure.pl has a serious lack of user-facing docs. | ||
| cotto: that would be very passive aggressive of me. | |||
| dalek | rrot: r39905 | cotto++ | branches/ops_pct (5 files): [opsc] add more empty files, update Makefile template and configure code, add a minimal opsc.pir |
04:57 | |
| cotto | It compiles! | 05:01 | |
| purl | Ship it! | ||
| cotto | now to make it do something | ||
| dalek | rrot: r39906 | cotto++ | branches/ops_pct/compilers/opsc/opsc.pir: [opsc] update includes in opsc.pir |
05:04 | |
|
05:06
buildbot joined
06:01
uniejo joined
06:42
iblechbot joined
06:43
chromatic joined
|
|||
| dalek | rrot: r39907 | cotto++ | branches/ops_pct/compilers/opsc (2 files): [opsc] add enough parser code to parse a single op, although not usefully |
07:10 | |
| cotto | bacek_at_work, ping | 07:16 | |
| bacek_at_work | cotto: pong | 07:17 | |
| cotto | bacek, if you want to extend the parser, it needs to recognize certain chunks of code as being distinct, as they'll need to be transformed on a per-runcore basis. | 07:18 | |
| bacek_at_work | yeah. We have to fully parse op_body | ||
| either nano-C or some-special-op-language | 07:19 | ||
| cotto | I'm trying to avoid writing a C parser, but you're probably right. | ||
| bacek_at_work | let's borrow if from close | ||
| cotto | It can be very sloppy as long as it catches the special bits | ||
| bacek_at_work | :) | ||
| cotto | (which are listed in lib/Parrot/OpsFile.pm in the "Op Body" section) | 07:20 | |
| bacek_at_work | vardecl/function_call/if()/simple math. We probably can limit nano-C to those constructs. | ||
|
07:21
donaldh joined
|
|||
| bacek_at_work | (and steal bits from OpsFile of cause) | 07:21 | |
| cotto | idk about stealing from OpsFile.pm. It's pretty hacky. afaict it's mostly useful as documentation. | ||
| bacek_at_work | "imaginary bits" :) | 07:22 | |
| cotto | It's not too hard to do the equivalent of s/a/b/ in PIR using the "PGE::P6Regex" language. | 07:26 | |
| nopaste | "cotto" at 74.61.2.46 pasted "example of using PGE::Perl6Regex for search and replace" (91 lines) at nopaste.snit.ch/17137 | ||
| bacek_at_work | but for emitting L1 we have to understand semantic of body anyway | 07:27 | |
| cotto | Yes, but we won't be turning the current ops code into L1. | ||
| bacek_at_work | so we don't have to parse it at all. | 07:28 | |
| ok, I'll take a look at current OpsFile tonight. | 07:30 | ||
| clock? | |||
| purl | bacek_at_work: LAX: Tue 12:30am PDT / CHI: Tue 2:30am CDT / NYC: Tue 3:30am EDT / LON: Tue 8:30am BST / BER: Tue 9:30am CEST / IND: Tue 1:00pm IST / TOK: Tue 4:30pm JST / SYD: Tue 5:30pm EST / | ||
| cotto | no, except to make some substitutions for per-runcore stuff | ||
| bacek_at_work | cotto: ok. | ||
| What is your localtime()? | |||
| cotto | 0300 | 07:31 | |
| 0030 rather | |||
| bacek_at_work | ok... | ||
| bacek_at_work personally hate "EST" timezone for last 2 hours. | |||
| cotto | I'm in Seattle, Washington. | ||
| well, Bellevue, but it's near Seattle. | 07:32 | ||
| bacek_at_work | Technically "Sydney" is about 1x1 kilometers size. Even smaller. | 07:33 | |
| So I'm in "MacQuarie Park" atm | |||
| cotto | Hmm. Looking at the ops code, I'm thinking that it'll be less work just to slurp in the whole body and use PGE::Perl6Regex. | 07:36 | |
| There should be some ways to make it easier to read than the proof of concept code I nopasted. | 07:37 | ||
| bacek_at_work | I told ya, steal Rakudo's subst function! | ||
| cotto | Is that PIR-level? | 07:39 | |
| bacek_at_work | yes | ||
| cotto | We may need something slightly more flexible, but that'll be a very good starting point. | 07:41 | |
| nm. There's even a variant that takes a Sub as the second arg. | 07:42 | ||
| pmichaud++ for that | |||
| bacek_at_work | github.com/rakudo/rakudo/blob/99ad1...r.pir#L648 | ||
| cotto | yup | ||
|
07:44
zak_ joined
|
|||
| cotto | bacek++ | 07:44 | |
| That means we'll need to be a little careful about the order in which we apply the transformations, but we can just copy what OpsFile.pm does. | 07:46 | ||
| bacek_at_work | indeed. | ||
| cotto | Yay. We have a plan. | 07:47 | |
|
07:48
buildbot joined
|
|||
| bacek_at_work | I'll throw few lines of code into opsc tonight... If I'll not die before... | 07:49 | |
| cotto | btw, ops2c works by taking the names of all core .ops files at once, but it'll be pretty simple to make the compiler aware of that since pmichaud made $?FILES available as a lexical. | 07:50 | |
| I sense some days of productive hacking ahead. | 07:51 | ||
| bacek_at_work | $?FILES in NQP? | 07:52 | |
| It's great! | |||
| cotto | Yeah; now we don't need a custom evalfiles. | 07:53 | |
| bacek_at_work | ok, going home now. | 08:04 | |
| See you soon | |||
| cotto | I'm going to bed. Good night. | 08:06 | |
| dalek | kudo: 9f63647 | moritz++ | src/setting/Pair.pm: Implement Hash ~~ Pair smartmatching |
08:07 | |
|
08:29
patspam joined
08:32
bacek joined
|
|||
| bacek | cotto: is it ok to jump on ops_pct branch for some wild hacking? | 08:40 | |
| moritz | what's the name of the list that receives the trac mails? | 08:42 | |
| ah, parrot-tickets | 08:43 | ||
| bacek | look like cotto fell asleep... | 08:46 | |
| cotto | bacek, go ahead | ||
| bacek opening vim and start putting more code while no one see it | |||
| cotto can't fall asleep | |||
| I was actually hoping you'd do that. :] | |||
| bacek passing few sleeping pills to cotto | |||
| s/sleeping pills/bottles of vodka/ | 08:47 | ||
| cotto eyes bacek's Australian sleeping pills with suspicion | |||
| bacek | It's genuine Russian sleeping pills! | ||
|
08:48
Austin joined
|
|||
| dalek | rrot: r39908 | bacek++ | branches/ops_pct/compilers/opsc/compiler/grammar.pg: [opsc] Trailing whitespace removal. |
08:50 | |
| kudo: 7203e4b | moritz++ | t/spectest.data: re-add smartmatch.t to spectest.data average much more correct than our average test file. This commit also removes S12-attributes/class2.t which has been merged into class.t |
08:58 | ||
| kudo: e249a62 | moritz++ | src/ (2 files): move Hash.ACCEPTS to the setting, add more variants understand the magic with hash_ACCEPTS that the anonymous sub in src/classes/Hash.pir:32-41 does, but the spectest didn't throw up any black smoke. |
|||
| cotto | Maybe I can sleep now. Happy hacking, bacek! | 09:17 | |
| bacek | cotto: sleep well. | 09:18 | |
|
09:49
kid51 joined
09:53
MoC joined
|
|||
| dalek | rrot: r39909 | bacek++ | branches/ops_pct/compilers/opsc/t (2 files): Add t/common.pir mostly stolen from pmc_pct. |
09:53 | |
| rrot: r39910 | bacek++ | branches/ops_pct/compilers/opsc/t/01-parse.t: [t] Initial failing test for opsc |
09:57 | ||
| rrot: r39911 | bacek++ | branches/ops_pct/compilers/opsc/t/harness: [t] Steal t/harness from pmc_pct |
|||
| rrot: r39912 | bacek++ | branches/ops_pct/compilers/opsc/compiler/grammar.pg: Simplify parsing of op body. Actually don't parse it at all. |
|||
| rrot: r39913 | bacek++ | branches/ops_pct/compilers/opsc/compiler/grammar.pg: Fix op_body parsing. Actually treat op_body literally. |
|||
| rrot: r39914 | bacek++ | branches/ops_pct/compilers/opsc/t/01-parse.t: Add more tests |
|||
|
09:58
masak joined
|
|||
| dalek | rrot: r39915 | bacek++ | branches/ops_pct/compilers/opsc (2 files): Add handling of pod comments as ws. |
10:23 | |
| rrot: r39916 | jkeenan++ | branches/darwinhints/t/steps (4 files): Add subdirectories for steps tests. |
|||
| rrot: r39917 | jkeenan++ | branches/darwinhints (1 files): Reposition all steps tests into more finely specified directories. |
10:40 | ||
| rrot: r39918 | jkeenan++ | branches/darwinhints/t/steps (73 files): Make references to file's name correspond to new file path. |
10:57 | ||
|
11:01
flh joined
|
|||
| dalek | rrot: r39919 | bacek++ | branches/ops_pct/compilers/opsc (3 files): [opsc] Initial version of Actions. |
11:04 | |
|
11:21
donaldh joined
|
|||
| dalek | rrot: r39920 | bacek++ | branches/ops_pct/compilers/opsc/t/01-parse.t: [t] Add test for parsing ops file header. |
11:30 | |
| rrot: r39921 | bacek++ | branches/ops_pct/compilers/opsc/compiler/grammar.pg: [opsc] "Fake" parse header. |
|||
| rrot: r39922 | bacek++ | branches/ops_pct/compilers/opsc (2 files): Add tests for parsing op params and couple of workarounds for missing LTM. |
11:34 | ||
| kudo: 40251e4 | (Kevan Benson)++ | src/classes/Array.pir: Patch to change bahavior of .unshift to return modified array, not number of elements |
11:52 | ||
| kudo: 8a786f4 | (Kevan Benson)++ | src/classes/Array.pir: Patch to change bahavior of .push to return modified array, not number of elements |
|||
| rrot: r39923 | bacek++ | branches/ops_pct/compilers/opsc/builtins.pir: Steal builtins.pir from pmc_pct |
12:07 | ||
| rrot: r39924 | bacek++ | branches/ops_pct/compilers/opsc (3 files): Fully parse ops file header |
|||
| rrot: r39925 | bacek++ | branches/ops_pct/compilers/pge/PGE/Match.pir: Fix typo in PGE::Match.orig |
|||
| bacek | msg pmichaud trac.parrot.org/parrot/changeset/39925/ I found spot on the Sun! :) | 12:13 | |
| purl | Message for pmichaud stored. | ||
| dalek | rrot: r39926 | jkeenan++ | branches/darwinhints (2 files): Write inline comments re what needs to be changed. Change name of one subroutine to be more self-documenting. |
12:17 | |
| rrot: r39927 | bacek++ | branches/ops_pct/compilers/opsc/t (3 files): [t] Steal more stuff from pmc_pct - 02-parse-all-files.t |
12:24 | ||
| rrot: r39928 | bacek++ | branches/ops_pct/src/ops/bit.ops: [cage] Fix dangling '}' in bit.ops. |
|||
| bacek | strict parsing ftw! | 12:28 | |
| pmichaud++ # PCT is almost awesome (yeah, I really want LTM...) | 12:29 | ||
|
12:34
tetragon joined
12:36
Whiteknight joined
|
|||
| dalek | kudo: 0c7475a | moritz++ | README: [README] changed some quotes to C<...> POD markup the official test suite, we import all of official test suite |
12:45 | |
|
12:50
ruoso joined
|
|||
| dalek | rrot: r39929 | bacek++ | branches/ops_pct/compilers/opsc/t/01-parse.t: [t] Add tests for :flag parsing |
12:51 | |
|
12:52
ruoso joined
12:54
ruoso joined
12:59
skids joined
|
|||
| Whiteknight | good morning #parrot | 13:19 | |
| bacek starring at watch | 13:23 | ||
| good night, Whiteknight | |||
| Whiteknight | oh, i wish it was night and I was back in bed! | ||
| masak | I wish I could sleep during the nights. | 13:24 | |
| bacek imaging little pony | |||
| masak | bacek: you've read that one too?! | 13:25 | |
| I wouldn't call it quality literature, but that story sure has a point. | 13:26 | ||
| (which, I guess, can best be summarized as "little ponies aren't very good at making wishes") | |||
|
13:30
jdv79 joined
13:33
skids joined
13:49
skids joined
13:51
bacek joined
|
|||
| dalek | rrot: r39930 | bacek++ | branches/ops_pct/compilers/opsc/t/03-past.t: [t] Add stub for created PAST testing. |
13:55 | |
| rrot: r39931 | bacek++ | branches/ops_pct/compilers/opsc/t/03-past.t: [t] Add more PAST tests |
|||
| rrot: r39932 | bacek++ | branches/ops_pct/compilers/opsc (2 files): Inmplement handling :flags in PAST |
|||
| bacek | msg cotto Good morning. I almost finished parsing ops. Only op_params left. It's your turn now to emit something useful :) | 13:57 | |
| purl | Message for cotto stored. | ||
| bacek | msg cotto I've got some problems with Test::More. On my box it produces out-of-order test numbers. I didn't manage to figure why and fix it. | 14:00 | |
| purl | Message for cotto stored. | ||
|
14:17
amuck_ joined
14:26
bacek joined
|
|||
| dalek | rrot: r39933 | bacek++ | branches/ops_pct/compilers/opsc (3 files): [opsc] Implement PASTing of op's parameters |
14:28 | |
| rrot: r39934 | bacek++ | branches/ops_pct/compilers/opsc/compiler/grammar.pg: [opsc] Yet another simplify of op_body parsing. It's now twice faster than before. |
|||
| bacek | ok. enough for today. | 14:29 | |
|
14:35
skids joined,
Theory joined
|
|||
| bacek | msg cotto Parser/paster is done. It's your turn to drive this train. | 14:36 | |
| purl | Message for cotto stored. | ||
| bacek must sleep | 14:37 | ||
| purl | $bacek->sleep(8 * 3600); | ||
| bacek | good girl | ||
| purl | :) | ||
| Coke_segf_TT_776 | cotto: why the empty files? | ||
| bacek | Coke_segf_TT_776: ? | 14:39 | |
| Coke_segf_TT_776 | empty files were committed to the ops_pct branch. | ||
| bacek | Ah. Just for discuss/preserve directory layout. | ||
| And basic Makefile scaffolding | 14:40 | ||
| (and free karma of course :) | 14:42 | ||
| karma cotto | 14:43 | ||
| purl | cotto has karma of 736 | ||
| bacek trying to resist to type "karma bacek" | 14:44 | ||
| ... | |||
| EPIC FAIL | |||
| purl | EPIC FAIL is chopping chili and go pee without washing hands or whatever led to you being born | ||
| bacek | karma bacek | ||
| purl | bacek has karma of 717 | ||
| bacek | bah! | ||
| rg | bacek: you know, if you don't want us to know you're looking you can always /msg purl ;) | 14:45 | |
| bacek | rg: I know... But it's 12:45 here and my brain already gone... | 14:47 | |
| bacek must definitely sleep now | |||
| rg | have a good night :) | 14:48 | |
| bacek | rg: good night | 14:49 | |
|
15:20
donaldh joined
15:24
buildbot joined
15:38
flh joined
16:14
darbelo joined
|
|||
| moritz | it's #ps day, don't forget to pre-post your report! | 16:21 | |
| Whiteknight | moritz++ for the reminder! | 16:28 | |
| pmichaud | #ps in 118 | 16:32 | |
| Whiteknight | Coke: Which segfault was that, that you turned into pure PIR? | 16:55 | |
| Coke | Whiteknight: RT#63592 | 16:57 | |
| which is probably closable if rakudo now. | 16:58 | ||
| er, if rakudo is using that version of parrot. | |||
| NotFound | Coke: the patch isn't still applied | 16:59 | |
| Coke | NotFound: ah. | ||
| so it's not using that version then. =-) | |||
| NotFound | I'm waiting to ask about it #ps | ||
| Coke | k | 17:00 | |
|
17:03
Whiteknight_ joined,
abesapien joined
|
|||
| Whiteknight_ | stupid internet connection | 17:04 | |
|
17:04
chromatic joined
17:05
allison joined
|
|||
| Whiteknight_ | good morning chromatic and allison | 17:06 | |
|
17:08
Whiteknight left
|
|||
| allison | Whiteknight: good morning | 17:08 | |
| purl | Here I am, brain the size of a planet, and all they say is 'Good Morning' | ||
|
17:08
Whiteknight joined
|
|||
| NotFound | allison: Can you take a look at TT #804? | 17:08 | |
| allison | NotFound: sure | ||
| Whiteknight: (I managed to return your greeting exactly between dropoff and return) | 17:09 | ||
| Whiteknight | nice! my internet connection today is craptastic | ||
| chromatic | morning | 17:10 | |
|
17:13
Theory joined
|
|||
| dalek | rrot: r39935 | fperrad++ | trunk/config/gen/platform/win32 (3 files): [mingw] fix gcc 4.4.0 warning : |
17:16 | |
| allison | NotFound: the general principle is sound, how does it do in a full test run? | 17:18 | |
| NotFound | Uh, forgot to make a testf | 17:19 | |
| Doing now | 17:20 | ||
| Pass on linux amd64, going to try in linux i386... | 17:22 | ||
| Pass on linux i386 | 17:27 | ||
| allison | NotFound: it's a small enough change, and long enough before the next release that I'm okay with applying it to trunk now | 17:33 | |
| NotFound: find testers for the major platforms to make absolutely sure | 17:34 | ||
| NotFound: also, needs a more meaningful variable name than "newoffset" | |||
| NotFound: perhaps "handler_start" or "handler_body" | 17:36 | ||
| NotFound: and the value of that struct member needs to be reset to null after it's used | 17:37 | ||
| NotFound | Good idea. | ||
| purl | NotFound: Good Idea: Giving a small child a balloon. Bad Idea: Giving a small child a bunch of balloons. | ||
|
17:38
mikehh joined
17:45
hercynium joined
|
|||
| NotFound | make fulltest pass on both platforms | 17:47 | |
| dalek | website: darbelo++ | Not Dead Yet | 18:03 | |
| website: www.parrot.org/content/not-dead-yet | |||
| allison | NotFound: excellent | ||
| darbelo | Hmm. That took a while. Over 30 mins from post to dalek noticing. | 18:05 | |
|
18:05
jrtayloriv joined
18:21
barney joined
|
|||
| cotto | slowbot is slow | 18:22 | |
| chromatic | Robot robot is robot. | ||
| pmichaud | #ps in 7 | 18:23 | |
| Coke | Whiteknight: bet you a dollar you won't. | 18:48 | |
| Whiteknight | Before the 1.4 release? | ||
| chromatic | No guarantees for Tcl; I can't reproduce them. | ||
|
18:48
kurahaupo joined
18:49
brbrooks joined
|
|||
| Coke | chromatic: can't reproduce which? | 18:49 | |
| chromatic | I can't even run Tcl. | ||
| Coke | ... ah, because you won't install parrot? | ||
| brbrooks | how can I find out about future work for parrot GC | ||
| chromatic | Because installing Parrot every time I make a change is a right pain. | 18:50 | |
| Whiteknight | brbooks: what do you need? | 18:51 | |
| Coke | heh. I cannot tell you how wrong that is. Ah well. | ||
| Whiteknight | brbrooks* | ||
| chromatic | How wrong is it? | ||
| Coke | I can't tell you. | ||
| cotto | brbrooks, iiuc the future of the GC is that we're encouraging any interested hackers to write a new core. | ||
| chromatic | I make a one-line change to Parrot. I rebuild Parrot. I install all of Parrot and its supporting libraries. | 18:52 | |
| cotto | chromatic, is that evitable if you want to work from an installed Parrot? | ||
| chromatic | Yep. | ||
| I can play symlink games with libparrot, I suppose. | 18:53 | ||
| brbrooks | cotto: why? and... why new developers? | ||
| Whiteknight | brbrooks: old developers can work on i too | 18:54 | |
| work on it too * | |||
| (my keyboard foo is weak today) | |||
| cotto | brbrooks, The API should be stable and well-encapsulated enough to allow new GC cores. The next step is to get a second core in there to make sure it's possible. | ||
| Tene | pmichaud: I'll work on some of the library loading issues this afternoon (teaching class right now). I'll at least try to diagnose the namespace issue japhb was having. | 18:55 | |
| cotto | I never said "new", only "interested". ;) | ||
| Coke | I'm not sure if you're complaining about the /thought/ of having to do the install, the invocation of 'make install-dev', or the work done by the install-dev step. | ||
| chromatic | I'm complaining because it adds a lot of time and work to a process that's very quick and easy for other languages. | ||
| Tene | cdp | 18:56 | |
| Coke | I would agree with 'some time', but "a lot of work"? <shrug> Ok. hopefully it'll be moot in a week. | ||
| Whiteknight | chromatic: the way forward would seem to be install parrot once, find and isolate the bug to a pure-PIR snippet, and then take that back to your development environment to fix | ||
| Coke | (pure-PIR) that can't be done for a majority of the bugs I report. | ||
|
18:56
jrtayloriv joined
|
|||
| Tene | 'make install install-dev' is 13s for me, fwiw | 18:57 | |
| Coke | since they seem to involve bizarre PMC interactions. | ||
| pmichaud | There are other reasons that we need to fix the 'make' part of Parrot | ||
| right now "make test" doesn't test what gets installed | |||
| cotto | install-dev implies install, iirc | ||
| Whiteknight | Coke: I'm sure it can be done, and notice I didn't say "Small Pure-PIR snippet" | ||
| Coke | Whiteknight: no. some code is written is C. | ||
| C Ain't PIR. | |||
| brbrooks | cotto: doesn't parrot support different GC's now? | ||
| Whiteknight | that is a hurdle but a small one at best. We can build C in the development environment | ||
| Coke | yes, but /isolating/ that C is a PITA. | 18:58 | |
| Tene | brbrooks: not yet. refactoring to allow that is one of the tasks WhiteKnight is planning, iirc. | ||
| Whiteknight | brbrooks: in theory, yes. We just don't have any different ones to test with | ||
| Tene | Whiteknight: Oh? Huh, I must have missed that. | ||
| Coke | In many cases, it's just MUCH easier to say "please checkout my language and run it." | ||
| Tene | I've been very much out of parrot ever since I moved. I've been missing all the fun. :( | ||
| Coke | (except I can't do that right now, see blocker.) | ||
| Whiteknight | Tene: we do have an encapsulated API for the GC, the only step that's missing is creating the second core to test | ||
| cotto | brbrooks, the existing alternate GC cores haven't been maintained and don't currently work. | 19:00 | |
| brbrooks is wondering how long it would take to hack a new GC core | 19:01 | ||
| chromatic | The first one, probably longer than it should. | ||
| The second one, somewhat less. | |||
| The third... well, here's a beer. | |||
| Tene | oh man, a GC would be fun to write. | ||
| cotto wonders how Whiteknight feels about Tene's statement. | 19:02 | ||
| chromatic slaps the table in front of Tene | |||
| You left off a corollary. | |||
| A GC is difficult to debug. | |||
| Coke | before I forget and since I don't have the floor in PS - 'make test' on feather was failing in a built parrot because it conflicted with the installed 1.2.0 ; I thought we fixed this. | ||
| Whiteknight | it is decently fun to write | 19:03 | |
| it's seriously unfun to debug | |||
| brbrooks | how many sloc is the current? | 19:06 | |
| chromatic | Hm, tough to say. | ||
| Fewer than 5k sloc, I think. | |||
|
19:09
amuck_ left
|
|||
| Whiteknight | sloc? | 19:12 | |
| purl | sloc is, like, like penis size. or code minus whitespace, minus comments or www.dwheeler.com/sloc/ | ||
| cotto | Not really. I'd argue that smaller is generally better. | ||
| brbrooks | so a GC is not particularly small... but not huge | 19:13 | |
| Whiteknight | no, not huge at all | ||
| again, the difficulty is in testing and debugging | |||
|
19:20
flh joined,
brbrooks joined
|
|||
| brbrooks | does parrot make use of boehm gc? | 19:25 | |
| moritz | no, it's a custom gc | 19:26 | |
| (afaict) | |||
|
19:28
Whiteknight_ joined
|
|||
| brbrooks | Whiteknight: how practical is it to hook up a new core using the boehm gc | 19:32 | |
| Whiteknight | brbrooks: I've looked into the Boehm collector before, and I think it should be very possible | 19:33 | |
| moritz | first question: is the license compatible with artistic 2.0? | ||
| Whiteknight | moritz: no idea | ||
| darbelo | moritz: I think it's under an X11-ish license, so I would guess that it's compatible. | 19:38 | |
| moritz | I just looked at it, it looks BSDish (aka "very permissive") | 19:39 | |
| brbrooks | Even if it's just for dev purposes to have a new core to test the API with, never actually check any boehm source in it could be a good start | ||
| moritz | since all we have to do is to retain a copyright and license note, I see no problem either way | 19:40 | |
| cotto | istr Allison saying that there's a problem distributing BSD-licensed code with Parrot. | 19:43 | |
| darbelo | I think that in order for code to ship with parrot (read: be in the same tarball) it needs to be under the Artistic License | ||
| I think copyright assignement was also required, but I can't recall for sure. | 19:44 | ||
| chromatic | The question is "Isn't this mere aggregation?" but yes, assume that distributing code with Parrot requires AL 2.0. | 19:45 | |
| darbelo | The all-purpose guaranteed-safe solution seems to be "distribute separately". | 19:48 | |
| chromatic | Yep. | 19:49 | |
| cotto | Knowing that we could separately distribute a GC core would certainly help encapsulation, although I don't know how feasible it is atm. | ||
| chromatic | We don't have a way to load and initialize one externally. | 19:50 | |
| darbelo | I meant something more like what parrot does for ICU, "use if available at build-time" | 19:51 | |
| kurahaupo | chromatic: what about doing it the other way around: have a small wrapper that includes the GC then load parrot | ||
| chromatic | kurahaupo, that could work. I was just thinking today "What would pbc_to_exe need to do something like this?" | 19:52 | |
| Whiteknight | I don't see why we would need to disribute the Boehm source code with Parrot | ||
| create a wrapper, and require the user to download boehm separately if they want to use it | |||
|
19:53
tokuhirom_ joined
|
|||
| cotto | something like Rakudo's --gen-parrot | 19:54 | |
| pmichaud | or even auto-detect at Configure.pl time | 19:55 | |
| kurahaupo | What about a GC that can return memory to the OS when it's no longer required? | ||
| moritz | kurahaupo: many bonus points for that | ||
| chromatic | You need a compacting/copying GC for that. | 19:56 | |
| pmichaud | afk for a while | ||
| chromatic | That may not be a performance improvement. | ||
| kurahaupo | Not that I'm proposing to write one -- $dayjob takes too much time -- but what sort of framework would be needed | ||
| chromatic | You need a good mmap() implementation on all supported platforms, or else you have to be crazy enough to play sbrk() games yourself. | 19:57 | |
| brbrooks | would that really be *that* beneficial? | ||
| chromatic | In certain circumstances, yes. | ||
| kurahaupo | If your system in aggregate chews up so much memory that it swaps, conserving memory *is* a performance booster. | ||
| brbrooks | Yes, but I mean practically beneficial | 19:58 | |
| chromatic | It depends on the memory characteristics of individual applications. | ||
| brbrooks | e.g. Running Parrot in an embedded environment, which, you probably shouldn't be using parrot in the first place | ||
| chromatic | I can imagine plenty of applications that perform as most memory managers expect: they reach a high water mark and bounce around there until they exit. | 19:59 | |
| kurahaupo | $dayjob includes toys with 64GiB of RAM that every so often slow to a crawl because of swapping | ||
| So yes it's a practical advantage (to some people, anyway) | |||
| chromatic | I can imagine a few other applications where the high water mark is very, very high and they only hit that once every (let's say for the point of argument) 5 minutes. | ||
| Austin | kurahaupo: You guys hiring? | ||
| I could use some 64gb toys | |||
| kurahaupo regrets mentioning $dayjob | 20:00 | ||
| brbrooks | $dayjob permits 47mb :D | ||
| Austin | :) | ||
| Tene | www.rarst.net/images/Browsermemoryb...chmark.png | ||
| Austin | chromatic: What's the "best"/"rightest"/"simplest" way to call an arbitrary C function from PIR? | 20:01 | |
| chromatic | NCI | ||
| Austin | File/directory name? | ||
| examples/nci | |||
| chromatic | yep | 20:02 | |
| Austin loves `find` | |||
| chromatic | docs/pdds/draft/pdd??_nci.pod | ||
| moritz loves `ack -g' | |||
| Austin | Never heard of that. What is it? | ||
| pmichaud | App::Ack in CPAN | ||
| *much* nicer than grep and find for many searches | |||
| moritz | lets you rgrep with perl regexps | 20:03 | |
| chromatic | Powered by orphans. | ||
| pmichaud | and it doesn't search .git or .svn subdirs by default | ||
| moritz | very handy if you happen to know them by heart, but you can't remember the escaping rules for ordinary grep/egrep | ||
| kurahaupo | chromatic: (sorry for delayed response) given that we know which words within an object are references to other objects, do you think there is scope to do heap compaction? | ||
| as part of GC | 20:04 | ||
| Austin | Actually, it's just "ack" on CPAN. App::ack is a helper lib with anti-social documentation. | 20:05 | |
| pmichaud | oh. | ||
| I just know that I normally do "cpan App::Ack" to get it :-) | |||
| chromatic | kurahaupo, fixing up all references to a moving GCable is tricky. | 20:06 | |
| Doesn't mean it's not a good idea, nor worth doing. Just tricky. | |||
| Tene | I get it from yum. | 20:07 | |
| perl-ack | |||
| kurahaupo | I'm thinking that we could overwrite the old object memory with a proxy for the new copy while we go hunting for references | 20:08 | |
| Then whenever the GC finds a reference to such an object, it could change the referant | 20:09 | ||
| chromatic | That sounds like a stop-the-world GC. | 20:10 | |
| Not complaining, just noting. | |||
|
20:10
Theory joined
|
|||
| brbrooks | anybody familiar with region-based memory managment? | 20:11 | |
| Coke wonders if he ever opened the ticket about limiting the maximum amount of memory allocated by the GC> | |||
| Tene | if you're stopping the world, you wouldn't need a proxy. | ||
| chromatic | Sure you do. | ||
| Tene | ... oh, I misread. | 20:12 | |
| kurahaupo | What would the minimum number of words be that would have to be overwritten by a proxy; I'd be guessing 2 or 3 -- a reference to the new object, some sort of reference to the object type, and maybe a signature for good measure. Anything else? | ||
| chromatic | It gets tricky when you have to move something that's on the C stack. | ||
| kurahaupo | I'm thinking about a "soft compactor" that would "move" objects preemptively, but wait for the proxies to die of their own accord -- with a little help of course. So references in the C stack would just be left to expire -- eventually. | 20:14 | |
| chromatic | Leaving dangling references on the C stack sounds like a recipe for disaster. | 20:15 | |
| kurahaupo | Not dangling; pointing at proxies. | 20:16 | |
| The trick is to instantiate the proxies in a thread-safe way. | |||
| chromatic | That means that anything that wants to use any PMC which may have been on the C stack has to check for proxiness before performing any operation. | ||
| That means any PMC operation from C. | 20:17 | ||
|
20:18
estrabd joined
|
|||
| Austin | pmichaud: Are you aware of any code that actually makes use of the symbol_defaults method on PAST::Node? | 20:18 | |
| pmichaud | nqp might | ||
| kurahaupo | Forgive my lack of knowledge of object structure in RAM, but how does an object know its implementation type (Perl Array, Perl Hash, P6Object, Scalar, whatever)? | ||
| brbrooks | How do you profile parrot? gprof? | 20:19 | |
| chromatic | brbrooks, I use callgrind and kcachegrind. | ||
| kurahaupo, there are some type members of the vtable struct attached to every PMC. | |||
| pmichaud | abc might | 20:20 | |
| kurahaupo | Okay, so trick is to pivot the vtable reference, which I'm guessing can be done atomically on most architectures. | ||
| Austin | pmichaud: `find` says the only appearance in $PARROT/compilers is in PAST/Node.pir | ||
| Abc is a language? | |||
|
20:20
tokuhirom_ joined
|
|||
| chromatic | Hm, that handles the vtables. That's an interesting idea. | 20:21 | |
|
20:21
jan joined
|
|||
| chromatic | It doesn't handle PObj flags... but that's definitely an interesting idea. | 20:21 | |
| moritz | Austin: yes | ||
| (a `bc' like calculater) | |||
| kurahaupo | Need two alternative vtables -- one for active-proxy and one for proxy-under-construction. | ||
| Austin | moritz: Thanks. I don't have it in .../languages | ||
| moritz | Austin: they moved all out of the parrot repo | 20:22 | |
| Austin | Yeah, but tools/dev/fetch_languages has a list | ||
| (Of course, close isn't on the list, so abc might not be, either.) | 20:23 | ||
| moritz | (feel free to patch close in) | ||
|
20:24
skids joined
|
|||
| kurahaupo | All entries in vtable for proxy-under-construction would do "yield" then simply jump to the same entry on the same object. All entries in vtable for active-proxy would substitute target object for "self" and then do the same. | 20:26 | |
| chromatic | Sure, that's fine. But there are flags in the PMC header that get read directly, not through the vtable. | 20:28 | |
| cotto | yay! more variant vtables. I was wondering if anyone would ever want more than just RO. | 20:29 | |
| kurahaupo | What about writing to those bits? | ||
| Coke | I would posit that making our tools check to see if they're running from an installed version versus a build version is not a good strategy for long term support. | ||
| (Util_back_in_30_min:) | |||
| kurahaupo | (As long as bits are same on old and new objects, read doesn't matter.) | 20:31 | |
| cotto: I'd guess only two vtables would be needed, as long as the entry's index is still sitting in a CPU register somewhere | 20:33 | ||
| cotto | chromatic, are you saying it'd be a good idea to eventually not mess with PObj flags directly? | 20:34 | |
| pmichaud | Austin: squaak uses it | ||
| cotto | That might be a good cage or n00b task. | ||
| chromatic | Not necessarily. | ||
| Just considering what might be necessary to make copying/compacting work. | |||
| cotto gets back to opsc | 20:35 | ||
| Austin | Aha. Thanks, pmichaud. | ||
| chromatic | Writing to those bits from a proxy object is easy. | ||
| Writing to those bits in a proxied object while there may or may not be an active proxy is more difficult. | |||
| cotto | is compreg expensive? | ||
| chromatic | To be fair, I want to move those bits out of the objects themselves. | 20:36 | |
|
20:36
Andy joined
|
|||
| kurahaupo wonders what exactly "those bits" are for | 20:38 | ||
| Tene | cotto: compreg is a fetch from an interpreter hash, iirc | ||
| cotto | sounds cheap | ||
| Coke works on eliminating most of myops. | |||
| cotto | no need to think about caching that | 20:39 | |
| kurahaupo posits that if they can be moved out of the object, they're presumably not instance information, and so could live in or near the vtable | |||
| chromatic | Some of them are instance information. | ||
| The ones I meant are GC information: is this object live, does it have kids that need marking, is it on the free list, does it have special destruction, et cetera. | 20:40 | ||
| kurahaupo | Proxy would need those just like any other object | ||
| chromatic | Right, but we have to keep them synchronized between the proxy and the proxied. | 20:43 | |
| Going from proxy -> proxied is easy. Going the other way is not, at least as far as I can see. | |||
| kurahaupo | As far as GC is concerned, it's sort of like a scalar. No special treatment required (most of the time). | 20:44 | |
| Most of the magic is in the copy process and the vtables | 20:45 | ||
| What other information would need to be synchronized? | |||
| kurahaupo will have to go to $dayjob soon | 20:46 | ||
| chromatic | Any writes to PObj flags in the proxied PMC while there's a proxy pointing to it. | ||
| kurahaupo | I was assuming for the sake of this that we'd move all except the GC bits out of the object. Are there any other bits that can't be moved out? Of those, any that would be too expensive to use a method to get/set? | 20:47 | |
| Austin | The worst part about writing tests is that they sometimes find bugs... :( | 20:48 | |
| chromatic | Strings and other GCable elements which *don't* have vtables also have PObj flags. | ||
| kurahaupo | Ahh. I will ponder that on my way to work. Bye everyone... | 20:49 | |
| dalek | kudo: 19b8db2 | moritz++ | (2 files): sync Makefile and release_guide.pod about version formats. |
20:59 | |
|
21:06
jrtayloriv joined
21:16
Whiteknight joined
|
|||
| dalek | cnum-dynpmcs: r101 | darbelo++ | trunk/src/pmc/dec (3 files): Use a PObj_private flag instead of an INTVAL for the ieee total ordering |
21:19 | |
| purl | i think indicator is "how to tell if the form was submitted" | ||
|
21:21
bacek joined
|
|||
| Util | Coke: (re:not a good strategy) - Noted; thanks! | 21:38 | |
| bacek | good morning #parrot | 21:40 | |
|
21:45
Theory joined
|
|||
| Whiteknight | good morning bacek! | 21:47 | |
| bacek | Whiteknight: good morning | ||
| purl | Here I am, brain the size of a planet, and all they say is 'Good Morning' | ||
| Whiteknight | purl forget indicator | 21:50 | |
| purl | Whiteknight: I forgot indicator | ||
| Whiteknight | purl: you're retarded | 21:51 | |
| purl | Whiteknight: what? | ||
| Whiteknight | that's right | ||
| purl purl? | |||
| purl | i am My mother's name is Eliza or some horror port of perl 4 to perl 5 or part of a bot net or hated or part of a botnet of hatred or a minor fork of floot, source and documentation at github.com/hachi/flooterbuck-purl/tree/master | ||
| NotFound | Somone has tested TT #804 on some non linux platform? | 22:03 | |
| bacek | Non linux platform? Are they exist??? | 22:06 | |
| Austin | Bacek: plenty. Freebsd != linux. Solaris != linux. | 22:07 | |
| Windows != linux. MacOSX != linux | |||
| VMS != linux | |||
| :) | |||
| particle | BeOS != linux | ||
| cotto | qnx, os/2 | ||
| bacek logging to old good OS/360 | |||
| moritz | why, in numeric context they all evaluate to 0 ;-) | ||
| cotto | MULTICS | 22:08 | |
| Austin | Symbian. WinCE | ||
| brbrooks | minix | ||
| cotto | (because you know that users are clamoring for Parrot on MULTICS) | ||
| NotFound | I'd like better a cp/m implementation. | ||
| Austin | cotto: I thought we'd implement MULTICS on top of parrot. | ||
| bacek | Yay! Let's port parrot to C64! | ||
| Austin | The first 64-bit cpu. | ||
| The C64. | 22:09 | ||
| purl | rumour has it the c64 is GREAAT for games, dammit. or home.no/zaver/skoj/c64.jpg | ||
| Austin | It just sounds kick-ass.... | ||
| Everything is written in C. Everything is 64 bits. The C64. | |||
| What else could it be? | |||
| NotFound | Implacable logic | ||
| particle | cotto: i was thinking we should have some way of defining private flag names in a pmc declaration | 22:10 | |
| Austin | Particle: try "union" | ||
| cotto | particle, that makes more sense than asking users to #define them. | ||
| particle | such that pmc2c and pmcc autogenerate macro accessors | ||
| dalek | rrot: r39936 | cotto++ | trunk/lib/Parrot/OpsFile.pm: [ops2c] apply some creative formatting to try to increase readability |
22:11 | |
| cotto | That'd be a good newbie task too. | 22:12 | |
| bacek | cotto: wrong branch :) | ||
| NotFound | I'm starting to think that the best way to get it tested on several platforms is to commit it. | ||
|
22:13
Whiteknight joined
|
|||
| bacek | NotFound: ship it! TapTinder will test it for you | 22:13 | |
| cotto | heh. If the ops2c code is easier to understand I'm less likely to screw up the translation to pct. | ||
| bacek | NotFound: in about half an hour | ||
| NotFound | Good idea, in half an hour I'll be sleeping :) | 22:15 | |
| Austin | try t/library/pct/PAST/Node/02-block.t | 22:16 | |
| bacek | NotFound: than commit it and wait for nightmares to come :) | ||
| Austin | (Ignore that.) | ||
| (Wrong window) | |||
| NotFound | bacek: I just hope not to have a day nightmare of purl msg tomorrow morning X-) | 22:17 | |
| darbelo | NotFound: I can test on OpenBSD/amd64. What do you need me to do? | 22:18 | |
| bacek passing coin to NotFound | |||
| flip it. Most scientific way to decide :) | |||
| NotFound | darbelo: just build and make test, for a bonus, check the pir example on RT #63592 | 22:19 | |
| darbelo | NotFound: I see two patches attached to TT#804 which is the one I should test? | 22:21 | |
| NotFound | The last one, TT_804.patch | 22:22 | |
| MoC | NotFound: "Somone has tested TT #804 on some non linux platform?" -> smolder.plusthree.com/app/public_pr...ails/24611 (that io.t was broken before) | ||
| cotto | do we have an existing tag that's used to indicate that a ticket is suitable for someone just starting to hack on Parrot? | 22:23 | |
| Austin | Not overtly, but you could use a "Keyword" | 22:24 | |
| NotFound | cotto: the 'closed' stated X-) | ||
| MoC: thanks | |||
| cotto | Ok. I'll use "newbie" and put that on the new Parrot dev guide wiki page. | 22:25 | |
|
22:25
startPerl joined
|
|||
| dalek | TT #817 created by cotto++: [pmc2c] don't require custom #defines for private flags | 22:28 | |
|
22:29
mikehh_ joined
|
|||
| dalek | rrot: r39937 | NotFound++ | trunk (3 files): [core] do not enter an inner runloop to handle exceptions throw from C with a pir handler, TT #804 |
22:31 | |
| NotFound | Here we go, thanks for the feedback | ||
| Whiteknight | NotFound++ | 22:32 | |
| maybe parrot newbies should be called "chicks" | |||
| Whiteknight immediately reconsiders | |||
| pmichaud | latest rakudo gc issues posted to parrot-dev | 22:34 | |
| Whiteknight | yeah, I saw that | ||
| and I'm already thrilled about that | |||
| moritz | S05-mass/rx.t has been failing consistently for me, retrying... | 22:35 | |
|
22:36
rg1 joined
|
|||
| bacek discovered CONFIG_COMPAT_VDSO on linux yesterday. | 22:36 | ||
| cotto: did you try to run make test in opsc? | 22:37 | ||
| cotto | no | 22:38 | |
|
22:38
mikehh_ joined
|
|||
| nopaste | "bacek" at 122.110.42.109 pasted "Strange failure on opsc" (29 lines) at nopaste.snit.ch/17143 | 22:39 | |
| bacek | cotto: looks like "is" and "ok" uses different counters :/ | 22:40 | |
|
22:40
Limbic_Region joined
|
|||
| cotto | How nice. That's not confusing at all. | 22:41 | |
| bacek confused. | 22:43 | ||
| purl | You won't be after this episode of Soap! | ||
| bacek | Why it's not confusing? | ||
| cotto | sarcasm | ||
| bacek | ok. time for $dayjob. | 22:45 | |
| cotto: I'll try to implement more stuff in opsc tonight. If Moon will be in proper phase... | 22:46 | ||
|
22:49
jrtayloriv joined,
kid51 joined
|
|||
| dalek | rrot: r39938 | cotto++ | branches/ops_pct/compilers/opsc/t (2 files): [opsc] use is(1, 1, "xxx") as a workaround for ok(1, "xxx") apparently using a different counter than is() |
22:51 | |
| rrot: r39939 | pmichaud++ | trunk/src/library.c: [core]: Set versiondir/dynext to be last in search path. |
23:05 | ||
|
23:07
bacek joined
|
|||
| Whiteknight | anybody else here on amd64? | 23:07 | |
| dalek | kudo: 4549f3c | pmichaud++ | docs/release_guide.pod: Minor update to docs for parrot release number in build/PARROT_REVISION. |
23:08 | |
| rg | yes, but on freebsd | ||
| moritz | Whiteknight: amd64+linux | 23:09 | |
| Whiteknight | Are either of you guys seeing packfile test failures? | 23:10 | |
| in Parrot | |||
|
23:10
tetragon joined
|
|||
| chromatic | I saw some bad packfile freeing errors in Rakudo on 32-bit x86 Linux. | 23:11 | |
| Whiteknight | I get these same failures when PBC_COMPAT is bumped but new packfiles aren't generated for the tests | ||
| so I'm wondering if these failures are from that, or if it's something else | |||
| rg | Whiteknight: smolder isn't reporting any. running a new test now. | 23:12 | |
| Whiteknight | thanks | 23:13 | |
| I'm doing a smolder run now | 23:14 | ||
| okay, I'm disappearing now. Have to go shopping | 23:15 | ||
| darbelo | Whiteknight: I'm not seeing it on OpenBSD/amd64. Does it fail after a 'make realclean'? | ||
| dalek | TT #818 created by whiteknight++: packfile tests failing on amd64 | ||
| Whiteknight | darbelo: yes, even after a fresh checkout | ||
| I have an installed Parrot somewhere, could that be borking my tests? | 23:19 | ||
| particle | yes | ||
| Whiteknight | okay, that's interesting. How do I make uninstall? | ||
| rg | ok, the new report shows an eval.t failure, not packfile. | 23:20 | |
| particle | rm -rf Whatever | ||
| Whiteknight | rg: smolder.plusthree.com/app/public_pr...ails/24615 | 23:21 | |
| rg | yeah, mine is +1, but you're passing the eval.t | 23:23 | |
| i'm passing the packfile tests | |||
| darbelo | rg: what does your etal.t failure look like? | ||
| s/etal/eval/ | |||
| moritz | 'make test' with parrot HEAD passes here (amd64 linux) | 23:24 | |
| Whiteknight | okay, I have to disappear now, I'll figure this out when I get back (unless somebody beats me to it) | 23:25 | |
| rg | src/call/pcc.c:563: failed assertion 'PObj_is_PMC_TEST(sig_pmc)' | ||
| now if tap would tell me which test number that is, i could run gdb on it | 23:26 | ||
| darbelo | You didn't get a coredump? | ||
| rg | i did, but i don't like coredumps ;) | 23:27 | |
| -v is helping :) | |||
| darbelo | rg: take a look at TT#807. I think it's the same failure you're seeing. | 23:28 | |
| rg | looks like one of those gc bugs i've seen hunted. works fine with -G | ||
| darbelo: that looks very similar | 23:30 | ||
| darbelo | At the very least it fails the same assertion on the same test. Comparing backtraces will probably tell us if it's the same problem or not. | 23:33 | |
| rg | stacktrace is quite the same aswell | 23:35 | |
| i've added a short comment | 23:37 | ||
| darbelo | Welcome to the club. Feel free to "Me too" on TT#807 | ||
|
23:40
particle joined
23:58
Theory joined
|
|||