Camelia, the Perl 6 bug

IRC log for #parrot, 2009-07-07

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:02 patspam joined #parrot
00:04 mikehh At the moment I can build, smoke and run fulltest in less than 30 minutes - at least on Ununtu 9.04 amd64
00:09 Austin Grr.
00:09 Austin ... readin' mah code, findin' mah bugz.
00:19 whoppix joined #parrot
00:19 * Austin is singing along to the Pine Box Boys... "deth-country"    8-O
00:19 skids joined #parrot
00:23 davidfetter isn't that a little redundant?
00:25 Austin Oh, no.
00:26 Austin Country is like "I'm sad," or like "I was sad, but now I'm better."
00:26 Austin Deth-country is like "I'm killing you, and it's because I'm sad."
00:26 davidfetter and this is...?
00:26 davidfetter heh
00:26 Austin Makes all the difference, really.
00:27 * 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."
00:27 davidfetter which is almost always sung
00:27 Austin Or rapped.
00:27 Austin "Many-splendored Odysseus ..."
00:27 davidfetter indeed :)
00:28 Austin Try explaining to people that rap == epic poetry. You get some funny looks.
00:29 Austin :)
00:31 davidfetter what's to explain?
00:32 * 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
00:32 Austin Ayup.
00:33 Austin You buttocks Johnny Cash?
00:33 davidfetter lol!
00:33 cotto seen darbelo
00:33 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]
00:33 Austin Another parrotQuote
00:33 davidfetter "honey, take me for a spin"
00:33 jimmy joined #parrot
00:33 Austin "The first day I got me a fuel pump. The next day I got me an engine and a trunk..."
00:34 Austin Who is the Aesop character with the low-hanging fruit?
00:34 davidfetter um
00:34 Tene Tantalus?
00:35 Tene Wait, no, that's greek.
00:35 Austin Many-spendored Tantalus...
00:35 davidfetter heh
00:35 Austin yeah.
00:35 davidfetter joined #parrot
00:36 davidfetter grrr! firefox crash ftl :P
00:39 Austin Hmm.. Tantalus may be the best I can find.
00:39 Austin Google is not a very good friend today.
00:41 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.
00:41 Austin Cotto: didn't you hear? Darbelo is dead.
00:41 Austin It turns out darbelo == Michael Jackson.
00:42 Austin More talented than any of us thought..
00:42 Austin singer, dancer, haxx0r
00:42 Austin Many-spendored darbelo
00:43 hachi cotto: ?
00:43 Austin Hello, hachi.
00:43 Austin Did you get some messages about purl today?
00:43 hachi /wi/win 26
00:44 hachi it's not special... it's 'are' instead of 'is'
00:44 hachi I'll find a way to clear it
00:45 * Austin hands hachi the purl plunger...
00:46 cotto Austin, don't do that.
00:46 Austin Don't give hachi the plunger?
00:47 cotto You scared me for the .5s before my common sense kicked in.
00:47 Austin Or don't make mortality jokes?
00:47 Austin Or don't compare parrot haxxors to Michael Jackson?
00:48 cotto I was going to say mortality jokes, but I guess I'd have to not make them first.
00:48 Austin :)
00:48 pot Hey kettle, you're black.
00:49 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
00:50 davidfetter 'sup hachi
00:50 Austin All the low-hanging fruits are plucked, at least for PAST::Block. :(
00:53 zak_ joined #parrot
00:54 * cotto gives Austin a cherry picker.
00:54 Austin Say!
00:54 Austin Thanks.
00:54 Austin 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.
01:02 cotto How romantic.
01:02 Austin The couple that spits together ..
01:04 Austin Okay, here's a challenge.
01:04 cotto I imagine their home life is interesting.
01:05 Austin PAST::Node defines a method that conflicts with a keyword in Close. What should I do?
01:05 cotto make the parser smarter
01:06 cotto or is the keyword one that could reasonably be used in the same place a method could?
01:08 Austin Well, first remember that methods and subs are basically the same (methods have an adverb attached).
01:09 Austin So yeah, a sub name could appear at the start of a line, and so could a storage class ("lexical").
01:09 Austin It would have to see the '(' afterwards, I guess.
01:10 cotto The parser could certainly do that.
01:13 Austin Is that "Sure, the parser could do that ..."? Or is that "Yes, the parser could do that, and here's how ..." ?
01:14 * cotto goes off to download Close...
01:14 cotto (but no cigar)
01:15 Austin http://code.google.com/p/close/sourc​e/browse/trunk/src/parser/grammar.pg
01:16 Austin 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?
01:16 Austin lexical
01:17 Austin It's a storage specifier, like "register"
01:19 cotto and the current grammar doesn't parse it?
01:20 Austin It parses fine.
01:20 Austin But  the PCT library (pct/src/PAST/Node.pir) which I'm trying to re-implement in Close defines a method named "lexical".
01:20 Austin Which it can't do because that's a reserved word, etc.
01:21 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.
01:22 cotto I'd go with (b).
01:23 Austin http://nopaste.com/p/aCWaKapXX
01:23 Austin Change _lexical to lexical, it breaks.
01:23 purl Austin: that doesn't look right
01:26 Austin So the worst case scenario is something short.
01:28 Austin 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 Austin 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".
01:31 Austin 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?
01:31 Austin That's both hackish and lazy .. and therefore surprisingly attractive.
01:31 Austin I don't know. Bide.
01:31 Austin My parrot is @39808
01:32 Austin What's yours?
01:32 purl yours is the best!
01:32 cotto 39901 or so
01:33 Austin Wow. I should try to catch up.
01:33 Austin I know Pm committed a couple of fixes for me.
01:34 Austin I'll do that now.
01:38 Austin 901. Now to build
01:38 cotto it builds and the tests are running ok
01:38 Austin "Today we salute you, Mr. Homemade Pontoon-Boat maker..."
01:39 cotto looks good
01:40 bacek_at_work https://svn.parrot.org/lang​uages/c99/trunk/src/c99.pg
01:41 Austin C99, bacek?
01:41 bacek_at_work it disallow using "keyword" as "identifier"
01:41 bacek_at_work Yeah, old good C99...
01:42 Austin Yes. (And between us chickens, I stole a bunch of stuff from there..)
01:42 bacek_at_work :)
01:42 bacek_at_work It's Artistic License. You "borrowed" a bunch of stuff  :)
01:43 dalek parrot: r39902 | jkeenan++ | branches/darwinhints:
01:43 dalek parrot: Create branch to work on TT 727.
01:43 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39902/
01:43 Austin Sure. I'm an Artiste.
01:43 cotto Austin, why doesn't --target=parse work?
01:44 Austin I have no idea. I didn't know there was such an animal.
01:44 cotto (past, post and pir work)
01:44 cotto It's handy.
01:44 cotto You should be getting it for free by using PCT.
01:44 Austin What  does it do?
01:44 Austin Or what would it do if it worked?
01:45 cotto It'd spit out the parse tree.
01:45 Austin Hmm.
01:45 Austin Not the past tree?
01:45 Austin (Of course, that would be --target=past)
01:46 Austin What does it do instead?
01:46 cotto dies horribly
01:46 Austin ROFL
01:46 cotto it seems to have something to do with some inline pir
01:47 Austin Ahh.
01:47 Austin There you have it.
01:47 Austin (??)
01:47 Austin Does the --parse disable inline pir or something?
01:47 Austin Because that'll kill the whole thing.
01:52 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... :)
01:53 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.
01:54 cotto seen pmichaud
01:54 purl pmichaud was last seen on #parrot 1 hours, 58 minutes and 37 seconds ago, saying: (2GB, in fact)
01:55 * 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:56 Austin 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.
01:56 Austin We could give them passes once a week.
01:56 Austin Philadelphia Zoo sells some kind of seasonal thing for cheap.
01:57 Austin Failed test: t/symlink
01:57 Austin Surprise.
01:57 purl HERPES! HLAGHLAGHLAGHLAGH
01:57 Austin purl: forget surprise.
01:57 purl Austin: I forgot surprise
01:57 Austin Surprise.
02:00 Austin sudo make install
02:01 Austin purl: help purl
02:01 purl Austin: what?
02:01 Austin purl: purl?
02:01 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 http://github.com/hachi/fl​ooterbuck-purl/tree/master
02:06 Austin purl: sudo is [sudo] password for $who:
02:06 purl ...but sudo is preferable to the alternatives in most cases, IME or http://xkcd.com/c149.html...
02:06 Austin sudo
02:06 Austin sudo?
02:06 purl it has been said that sudo is preferable to the alternatives in most cases, IME or http://xkcd.com/c149.html
02:06 Austin sudo make me a sandwich
02:06 dalek parrot: r39903 | jkeenan++ | branches/darwinhints/lib/Parrot/C​onfigure/Options/Test/Prepare.pm:
02:06 dalek parrot: Make one internal variable's name more self-documenting.
02:06 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39903/
02:07 Austin Okay, back to close.
02:11 Infinoid sudo
02:11 Infinoid sudo?
02:11 purl [sudo] password for Infinoid:
02:11 Infinoid oh well, I was close
02:11 Austin Yeah.
02:11 Austin I'm hoping.
02:12 Infinoid Austin++
02:12 Infinoid goodnight all
02:12 Andy joined #parrot
02:14 Austin g'night inf
02:15 ilia left #parrot
02:17 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:18 Austin At the cost of splitting the rules, yes.
02:19 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 :)
02:19 Austin I kind of assume that it will work via backtracking.
02:19 Austin But it's good to know.
02:20 Austin Thanks.
02:23 Austin (Backtracking == slooooooow.)
02:29 tetragon_ joined #parrot
02:33 dalek parrot: r39904 | jkeenan++ | branches/darwinhints/lib/Parrot/C​onfigure/Options/Test/Prepare.pm:
02:33 dalek parrot: Inline comments as to what an internal sub does.
02:33 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39904/
02:35 janus joined #parrot
02:41 Coke wow. I am missing tortoise svn on my mac.
02:42 Austin :)
02:42 Austin svn status
02:42 Austin svn update
02:42 purl At revision 666.
02:42 Austin svn commit -m "Comment"
02:42 Austin What more do you need?
02:45 * Coke wonders if he can use the new svn merge stuff in this repo.
02:46 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
02:46 Coke googlecode
02:46 purl i guess googlecode is google's sourceforge replacement
02:46 Austin Probably not - they're at 1.4
02:52 dalek partcl: r520 | coke++ | branches/tclstring (6 files):
02:52 dalek partcl: Merge in r511:519 from trunk
02:52 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=520
02:53 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.
02:54 Austin Why?
02:54 purl Left field.
02:54 Coke why what?
02:54 purl Left field.
02:54 Austin Are they checking type, or is it just a mystery?
02:54 Coke The type is (ostensibly) always TclString
02:55 Coke 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?
02:55 Austin Except the class name, and maybe namespace.
02:56 Austin (The p6object stuff, for instance, considers all PMCs to be in parrot:)
02:56 Coke the class name is still 'TclString'
02:56 Austin So what test is failing?
02:57 Austin (Is this in the tclstring branch?)
02:57 Coke t/cmd_expr.t, t/cmd_upvar.t
02:57 Coke yes.
02:58 Austin A particular one in expr?
02:58 Coke I'm looking at upvar first, as it's smaller. it's a segfault.
03:00 Austin Yikes. GC problem, or something real?
03:01 Coke I bet something in class is overriding a vtable I used to get from one of my PMC's ancestors.
03:01 Coke er, class/object.
03:02 Austin Maybe try it by delegating?
03:10 nopaste "Coke" at 72.228.52.192 pasted "backtrace from tclstring branch" (13 lines) at http://nopaste.snit.ch/17134
03:15 Austin This is the $I0 = isa obj, $P1 version?
03:17 Austin Does tcl use HLL tcl?
03:17 Austin Or does it still use parrot?
03:17 Coke HLL
03:17 Coke early adopter.
03:19 Coke ah. no, it's this: https://trac.parrot.org/parrot/ticket/776
03:20 Coke I thought this felt familiar. :|
03:20 donaldh joined #parrot
03:20 buildbot joined #parrot
03:21 dalek partcl: r521 | coke++ | branches/tclstring/BRANCH_STATUS:
03:21 dalek partcl: note why this branch is failing so I don't diagnose it a /third/ time.
03:21 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=521
03:22 Austin Is undef a tcl class?
03:22 Coke Austin: no. see src/class/undef.pmc
03:22 Austin Or the standard undef pmc
03:22 Austin Okay.
03:22 Coke er, src/pmc/undef.pmc
03:23 Austin Do you have the tcl.pir checked in?
03:24 Coke ?
03:24 Austin The Tcl interpreter that is calling ISA here?
03:25 Austin Or whatever code it is.
03:25 Coke build tcl. you then have "tcl.pbc"
03:25 Austin Because I had some problems with isa -- though none of them were core dumps -- when trying to "isa $P99, 'Undef'"
03:26 Austin Because "Undef" is a parrot class, and I'm in the Close HLL namespace (/close/...) so I had to create a rooted key.
03:27 Coke so, $I0 = isa foo, [ 'parrot'; 'Undef'] ?
03:27 Austin http://nopaste.com/p/aZFDrRZLnb
03:28 Austin Pretty much, except that it's harder.
03:28 Austin You wind up using the namespace, which has a _root_ variant.
03:28 Coke it occurs to me that I should be using $I0 = defined foo ; anyway.
03:28 Austin Umm. Will that work?
03:30 Austin Okay. It's a vtable. Should work.
03:33 Coke if I do that, the segfault moves to Parrot_Class_does
03:33 Austin Progress!
03:34 Austin Because it's undef, and therefore doesn't?
03:34 Austin But no.
03:34 Coke I give up.
03:44 cotto joined #parrot
03:47 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.
03:47 Austin All testers work for MSFT.
03:48 cotto Yeah right, testers.
03:49 cotto I wouldn't mind paying for one if it would only work reliably and not have any inane missing functionality.
03:52 Austin $35 at Big Lots.
03:52 Austin Comes with 5.1 surround.
03:52 Austin Plays DVDs.
03:52 Austin AC or DC12v.
03:52 chromatic Region free?
03:52 Austin Probably not.
03:53 chromatic No imports for you!
03:54 cotto region-sensitivity counts as inane missing functionality (as does the inability to skip "unskippable" sections)
03:55 Austin Where's kid51? http://xkcd.com/416/
04:21 bacek_at_work "Everybody, meet Stig. Stig used to program Ruby, but now he's recovering." :)
04:22 bacek_at_work cotto: any progress with opsc? I'm tired to hinting gc bugs and want to switch something different...
04:24 cotto I was going to hack out the parser after watching a movie, but the parser may end up being less frustrating.
04:24 cotto For some reason vlc doesn't want to display any video.
04:25 cotto Have you been looking at ops2c?
04:31 cotto Bah.  Movies are overrated.
04:36 cotto 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:40 bacek_at_work cotto: I did look at ops2c. After few minutes my brainz melted and start laughing insanely...
04:48 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:51 cotto Is there a nice way to get Configure.pl to regenerate makefiles without going through the whole process?
04:53 Theory joined #parrot
04:54 coke_segf_TT_776 cotto: no, but that's what "reconfigure" is for, IIRC.
04:55 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.
04:55 coke_segf_TT_776 cotto: that would be very passive aggressive of me.
04:57 dalek parrot: r39905 | cotto++ | branches/ops_pct (5 files):
04:57 dalek parrot: [opsc] add more empty files, update Makefile template and configure code, add a minimal opsc.pir
04:57 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39905/
05:01 cotto It compiles!
05:01 purl Ship it!
05:01 cotto now to make it do something
05:04 dalek parrot: r39906 | cotto++ | branches/ops_pct/compilers/opsc/opsc.pir:
05:04 dalek parrot: [opsc] update includes in opsc.pir
05:04 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39906/
05:06 buildbot joined #parrot
06:01 uniejo joined #parrot
06:42 iblechbot joined #parrot
06:43 chromatic joined #parrot
07:10 dalek parrot: r39907 | cotto++ | branches/ops_pct/compilers/opsc (2 files):
07:10 dalek parrot: [opsc] add enough parser code to parse a single op, although not usefully
07:10 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39907/
07:16 cotto bacek_at_work, ping
07:17 bacek_at_work cotto: pong
07:18 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
07:19 bacek_at_work 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.
07:19 bacek_at_work let's borrow if from close
07:19 cotto It can be very sloppy as long as it catches the special bits
07:19 bacek_at_work :)
07:20 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 #parrot
07:21 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.
07:22 bacek_at_work "imaginary bits" :)
07:26 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 http://nopaste.snit.ch/17137
07:27 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.
07:28 bacek_at_work so we don't have to parse it at all.
07:30 bacek_at_work ok, I'll take a look at current OpsFile tonight.
07:30 bacek_at_work clock?
07:30 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 /
07:30 cotto no, except to make some substitutions for per-runcore stuff
07:30 bacek_at_work cotto: ok.
07:30 bacek_at_work What is your localtime()?
07:31 cotto 0300
07:31 cotto 0030 rather
07:31 bacek_at_work ok...
07:31 * bacek_at_work personally hate "EST" timezone for last 2 hours.
07:31 cotto I'm in Seattle, Washington.
07:32 cotto well, Bellevue, but it's near Seattle.
07:33 bacek_at_work Technically "Sydney" is about 1x1 kilometers size. Even smaller.
07:33 bacek_at_work So I'm in "MacQuarie Park" atm
07:36 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:37 cotto 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!
07:39 cotto Is that PIR-level?
07:39 bacek_at_work yes
07:41 cotto We may need something slightly more flexible, but that'll be a very good starting point.
07:42 cotto nm.  There's even a variant that takes a Sub as the second arg.
07:42 cotto pmichaud++ for that
07:42 bacek_at_work http://github.com/rakudo/rakudo/blob​/99ad1eba788968e9d758e4a381c691691b9​6286e/src/builtins/any-str.pir#L648
07:42 cotto yup
07:44 zak_ joined #parrot
07:44 cotto bacek++
07:46 cotto 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.
07:47 cotto Yay.  We have a plan.
07:48 buildbot joined #parrot
07:49 bacek_at_work I'll throw few lines of code into opsc tonight... If I'll not die before...
07:50 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:51 cotto I sense some days of productive hacking ahead.
07:52 bacek_at_work $?FILES in NQP?
07:52 bacek_at_work It's great!
07:53 cotto Yeah; now we don't need a custom evalfiles.
08:04 bacek_at_work ok, going home now.
08:04 bacek_at_work See you soon
08:06 cotto I'm going to bed.  Good night.
08:07 dalek rakudo: 9f63647 | moritz++ | src/setting/Pair.pm:
08:07 dalek rakudo: Implement Hash ~~ Pair smartmatching
08:07 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​f6364786438e2f0300ff8e43339d1104f3dc904
08:29 patspam joined #parrot
08:32 bacek joined #parrot
08:40 bacek cotto: is it ok to jump on ops_pct branch for some wild hacking?
08:42 moritz what's the name of the list that receives the trac mails?
08:43 moritz ah, parrot-tickets
08:46 bacek look like cotto fell asleep...
08:46 cotto bacek, go ahead
08:46 * bacek opening vim and start putting more code while no one see it
08:46 * cotto can't fall asleep
08:46 cotto I was actually hoping you'd do that. :]
08:46 * bacek passing few sleeping pills to cotto
08:47 bacek s/sleeping pills/bottles of vodka/
08:47 * cotto eyes bacek's Australian sleeping pills with suspicion
08:47 bacek It's genuine Russian sleeping pills!
08:48 Austin joined #parrot
08:50 dalek parrot: r39908 | bacek++ | branches/ops_pct/compilers​/opsc/compiler/grammar.pg:
08:50 dalek parrot: [opsc] Trailing whitespace removal.
08:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39908/
08:58 dalek rakudo: 7203e4b | moritz++ | t/spectest.data:
08:58 dalek rakudo: re-add smartmatch.t to spectest.data
08:58 dalek rakudo: I reviewed and improved it extensively in the last 12H, it should now be on
08:58 dalek rakudo: average much more correct than our average test file.
08:58 dalek rakudo: This commit also removes S12-attributes/class2.t which has been merged into
08:58 dalek rakudo: class.t
08:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​203e4bed2c4d86b5179fb0c8aaabeb8d409530b
08:59 dalek rakudo: e249a62 | moritz++ | src/ (2 files):
08:59 dalek rakudo: move Hash.ACCEPTS to the setting, add more variants
08:59 dalek rakudo: Actually I'm not fully convinced that this is right approach because I don't
08:59 dalek rakudo: understand the magic with hash_ACCEPTS that the anonymous sub in
08:59 dalek rakudo: src/classes/Hash.pir:32-41 does, but the spectest didn't throw up any black
08:59 dalek rakudo: smoke.
08:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​249a62914f02d6e5aeb2461979528b3341ce0ad
09:17 cotto Maybe I can sleep now.  Happy hacking, bacek!
09:18 bacek cotto: sleep well.
09:49 kid51 joined #parrot
09:53 MoC joined #parrot
09:53 dalek parrot: r39909 | bacek++ | branches/ops_pct/compilers/opsc/t (2 files):
09:53 dalek parrot: Add t/common.pir mostly stolen from pmc_pct.
09:53 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39909/
09:57 dalek parrot: r39910 | bacek++ | branches/ops_pct/compilers/opsc/t/01-parse.t:
09:57 dalek parrot: [t] Initial failing test for opsc
09:57 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39910/
09:57 dalek parrot: r39911 | bacek++ | branches/ops_pct/compilers/opsc/t/harness:
09:57 dalek parrot: [t] Steal t/harness from pmc_pct
09:57 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39911/
09:57 dalek parrot: r39912 | bacek++ | branches/ops_pct/compilers​/opsc/compiler/grammar.pg:
09:57 dalek parrot: Simplify parsing of op body. Actually don't parse it at all.
09:57 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39912/
09:57 dalek parrot: r39913 | bacek++ | branches/ops_pct/compilers​/opsc/compiler/grammar.pg:
09:57 dalek parrot: Fix op_body parsing. Actually treat op_body literally.
09:57 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39913/
09:57 dalek parrot: r39914 | bacek++ | branches/ops_pct/compilers/opsc/t/01-parse.t:
09:57 dalek parrot: Add more tests
09:57 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39914/
09:58 masak joined #parrot
10:23 dalek parrot: r39915 | bacek++ | branches/ops_pct/compilers/opsc (2 files):
10:23 dalek parrot: Add handling of pod comments as ws.
10:23 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39915/
10:23 dalek parrot: r39916 | jkeenan++ | branches/darwinhints/t/steps (4 files):
10:24 dalek parrot: Add subdirectories for steps tests.
10:24 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39916/
10:40 dalek parrot: r39917 | jkeenan++ | branches/darwinhints (1 files):
10:40 dalek parrot: Reposition all steps tests into more finely specified directories.
10:40 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39917/
10:57 dalek parrot: r39918 | jkeenan++ | branches/darwinhints/t/steps (73 files):
10:57 dalek parrot: Make references to file's name correspond to new file path.
10:57 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39918/
11:01 flh joined #parrot
11:04 dalek parrot: r39919 | bacek++ | branches/ops_pct/compilers/opsc (3 files):
11:04 dalek parrot: [opsc] Initial version of Actions.
11:04 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39919/
11:21 donaldh joined #parrot
11:30 dalek parrot: r39920 | bacek++ | branches/ops_pct/compilers/opsc/t/01-parse.t:
11:30 dalek parrot: [t] Add test for parsing ops file header.
11:30 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39920/
11:30 dalek parrot: r39921 | bacek++ | branches/ops_pct/compilers​/opsc/compiler/grammar.pg:
11:30 dalek parrot: [opsc] "Fake" parse header.
11:30 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39921/
11:34 dalek parrot: r39922 | bacek++ | branches/ops_pct/compilers/opsc (2 files):
11:34 dalek parrot: Add tests for parsing op params and couple of workarounds for missing LTM.
11:34 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39922/
11:52 dalek rakudo: 40251e4 | (Kevan Benson)++ | src/classes/Array.pir:
11:52 dalek rakudo: Patch to change bahavior of .unshift to return modified array, not number of elements
11:52 dalek rakudo: Signed-off-by: Moritz Lenz <mlenz@wvbh074.physik.uni-wuerzburg.de>
11:52 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​0251e4f9ad04f181e973a98e61d34d1023eb2ed
11:52 dalek rakudo: 8a786f4 | (Kevan Benson)++ | src/classes/Array.pir:
11:52 dalek rakudo: Patch to change bahavior of .push to return modified array, not number of elements
11:52 dalek rakudo: Signed-off-by: Moritz Lenz <mlenz@wvbh074.physik.uni-wuerzburg.de>
11:52 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​a786f4c99c027c518c3a7a59a832433d19e8d7b
12:07 dalek parrot: r39923 | bacek++ | branches/ops_pct/compilers/opsc/builtins.pir:
12:07 dalek parrot: Steal builtins.pir from pmc_pct
12:07 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39923/
12:07 dalek parrot: r39924 | bacek++ | branches/ops_pct/compilers/opsc (3 files):
12:07 dalek parrot: Fully parse ops file header
12:07 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39924/
12:07 dalek parrot: r39925 | bacek++ | branches/ops_pct/compilers/pge/PGE/Match.pir:
12:07 dalek parrot: Fix typo in PGE::Match.orig
12:07 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39925/
12:13 bacek msg pmichaud https://trac.parrot.org/parrot/changeset/39925/ I found spot on the Sun! :)
12:13 purl Message for pmichaud stored.
12:17 dalek parrot: r39926 | jkeenan++ | branches/darwinhints (2 files):
12:17 dalek parrot: Write inline comments re what needs to be changed.  Change name of one subroutine to be more self-documenting.
12:17 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39926/
12:24 dalek parrot: r39927 | bacek++ | branches/ops_pct/compilers/opsc/t (3 files):
12:24 dalek parrot: [t] Steal more stuff from pmc_pct - 02-parse-all-files.t
12:24 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39927/
12:24 dalek parrot: r39928 | bacek++ | branches/ops_pct/src/ops/bit.ops:
12:24 dalek parrot: [cage] Fix dangling '}' in bit.ops.
12:24 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39928/
12:28 bacek strict parsing ftw!
12:29 bacek pmichaud++ # PCT is almost awesome (yeah, I really want LTM...)
12:34 tetragon joined #parrot
12:36 Whiteknight joined #parrot
12:45 dalek rakudo: 0c7475a | moritz++ | README:
12:45 dalek rakudo: [README] changed some quotes to C<...> POD markup
12:45 dalek rakudo: Also changed wording a bit: since I only consider the part in t/spec/ to be
12:45 dalek rakudo: the official test suite, we import all of official test suite
12:45 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​c7475a1134994aaffcea26d1d018b52807e5241
12:50 ruoso joined #parrot
12:51 dalek parrot: r39929 | bacek++ | branches/ops_pct/compilers/opsc/t/01-parse.t:
12:51 dalek parrot: [t] Add tests for :flag parsing
12:51 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39929/
12:52 ruoso joined #parrot
12:54 ruoso joined #parrot
12:59 skids joined #parrot
13:19 Whiteknight good morning #parrot
13:23 * bacek starring at watch
13:23 bacek good night, Whiteknight
13:23 Whiteknight oh, i wish it was night and I was back in bed!
13:24 masak I wish I could sleep during the nights.
13:24 * bacek imaging little pony
13:25 masak bacek: you've read that one too?!
13:26 masak I wouldn't call it quality literature, but that story sure has a point.
13:26 masak (which, I guess, can best be summarized as "little ponies aren't very good at making wishes")
13:30 jdv79 joined #parrot
13:33 skids joined #parrot
13:49 skids joined #parrot
13:51 bacek joined #parrot
13:55 dalek parrot: r39930 | bacek++ | branches/ops_pct/compilers/opsc/t/03-past.t:
13:55 dalek parrot: [t] Add stub for created PAST testing.
13:55 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39930/
13:55 dalek parrot: r39931 | bacek++ | branches/ops_pct/compilers/opsc/t/03-past.t:
13:55 dalek parrot: [t] Add more PAST tests
13:55 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39931/
13:55 dalek parrot: r39932 | bacek++ | branches/ops_pct/compilers/opsc (2 files):
13:55 dalek parrot: Inmplement handling :flags in PAST
13:55 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39932/
13:57 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.
14:00 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 #parrot
14:26 bacek joined #parrot
14:28 dalek parrot: r39933 | bacek++ | branches/ops_pct/compilers/opsc (3 files):
14:28 dalek parrot: [opsc] Implement PASTing of op's parameters
14:28 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39933/
14:28 dalek parrot: r39934 | bacek++ | branches/ops_pct/compilers​/opsc/compiler/grammar.pg:
14:28 dalek parrot: [opsc] Yet another simplify of op_body parsing. It's now twice faster than before.
14:28 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39934/
14:29 bacek ok. enough for today.
14:35 skids joined #parrot
14:35 Theory joined #parrot
14:36 bacek msg cotto Parser/paster is done. It's your turn to drive this train.
14:36 purl Message for cotto stored.
14:37 * bacek must sleep
14:37 purl $bacek->sleep(8 * 3600);
14:37 bacek good girl
14:37 purl :)
14:37 Coke_segf_TT_776 cotto: why the empty files?
14:39 bacek Coke_segf_TT_776: ?
14:39 Coke_segf_TT_776 empty files were committed to the ops_pct branch.
14:39 bacek Ah. Just for discuss/preserve directory layout.
14:40 bacek And basic Makefile scaffolding
14:42 bacek (and free karma of course :)
14:43 bacek karma cotto
14:43 purl cotto has karma of 736
14:44 * bacek trying to resist to type "karma bacek"
14:44 bacek ...
14:44 bacek EPIC FAIL
14:44 purl EPIC FAIL is chopping chili and go pee without washing hands or whatever led to you being born
14:44 bacek karma bacek
14:44 purl bacek has karma of 717
14:44 bacek bah!
14:45 rg bacek: you know, if you don't want us to know you're looking you can always /msg purl ;)
14:47 bacek rg: I know... But it's 12:45 here and my brain already gone...
14:47 * bacek must definitely sleep now
14:48 rg have a good night :)
14:49 bacek rg: good night
15:20 donaldh joined #parrot
15:24 buildbot joined #parrot
15:38 flh joined #parrot
16:14 darbelo joined #parrot
16:21 moritz it's #ps day, don't forget to pre-post your report!
16:28 Whiteknight moritz++ for the reminder!
16:32 pmichaud #ps in 118
16:55 Whiteknight Coke: Which segfault was that, that you turned into pure PIR?
16:57 Coke Whiteknight: RT#63592
16:58 Coke which is probably closable if rakudo now.
16:58 Coke er, if rakudo is using that version of parrot.
16:59 NotFound Coke: the patch isn't still applied
16:59 Coke NotFound: ah.
16:59 Coke so it's not using that version then. =-)
16:59 NotFound I'm waiting to ask about it #ps
17:00 Coke k
17:03 Whiteknight_ joined #parrot
17:03 abesapien joined #parrot
17:04 Whiteknight_ stupid internet connection
17:04 chromatic joined #parrot
17:05 allison joined #parrot
17:06 Whiteknight_ good morning chromatic and allison
17:08 Whiteknight left #parrot
17:08 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 #parrot
17:08 NotFound allison: Can you take a look at TT #804?
17:08 allison NotFound: sure
17:09 allison Whiteknight: (I managed to return your greeting exactly between dropoff and return)
17:09 Whiteknight nice! my internet connection today is craptastic
17:10 chromatic morning
17:13 Theory joined #parrot
17:16 dalek parrot: r39935 | fperrad++ | trunk/config/gen/platform/win32 (3 files):
17:16 dalek parrot: [mingw] fix gcc 4.4.0 warning :
17:16 dalek parrot: request for implicit conversion from 'x' to 'y' not permitted in C++
17:16 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39935/
17:18 allison NotFound: the general principle is sound, how does it do in a full test run?
17:19 NotFound Uh, forgot to make a testf
17:20 NotFound Doing now
17:22 NotFound Pass on linux amd64, going to try in linux i386...
17:27 NotFound Pass on linux i386
17:33 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:34 allison NotFound: find testers for the major platforms to make absolutely sure
17:34 allison NotFound: also, needs a more meaningful variable name than "newoffset"
17:36 allison NotFound: perhaps "handler_start" or "handler_body"
17:37 allison NotFound: and the value of that struct member needs to be reset to null after it's used
17:37 NotFound Good idea.
17:37 purl NotFound: Good Idea: Giving a small child a balloon. Bad Idea: Giving a small child a bunch of balloons.
17:38 mikehh joined #parrot
17:45 hercynium joined #parrot
17:47 NotFound make fulltest pass on both platforms
18:03 dalek website: darbelo++ | Not Dead Yet
18:03 dalek website: http://www.parrot.org/content/not-dead-yet
18:03 allison NotFound: excellent
18:05 darbelo Hmm. That took a while. Over 30 mins from post to dalek noticing.
18:05 jrtayloriv joined #parrot
18:21 barney joined #parrot
18:22 cotto slowbot is slow
18:22 chromatic Robot robot is robot.
18:23 pmichaud #ps in 7
18:48 Coke Whiteknight: bet you a dollar you won't.
18:48 Whiteknight Before the 1.4 release?
18:48 chromatic No guarantees for Tcl; I can't reproduce them.
18:48 kurahaupo joined #parrot
18:49 brbrooks joined #parrot
18:49 Coke chromatic: can't reproduce which?
18:49 chromatic I can't even run Tcl.
18:49 Coke ... ah, because you won't install parrot?
18:49 brbrooks how can I find out about future work for parrot GC
18:50 chromatic Because installing Parrot every time I make a change is a right pain.
18:51 Whiteknight brbooks: what do you need?
18:51 Coke heh. I cannot tell you how wrong that is. Ah well.
18:51 Whiteknight brbrooks*
18:51 chromatic How wrong is it?
18:51 Coke I can't tell you.
18:51 cotto brbrooks, iiuc the future of the GC is that we're encouraging any interested hackers to write a new core.
18:52 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?
18:52 chromatic Yep.
18:53 chromatic I can play symlink games with libparrot, I suppose.
18:53 brbrooks cotto: why? and... why new developers?
18:54 Whiteknight brbrooks: old developers can work on i too
18:54 Whiteknight work on it too *
18:54 Whiteknight (my keyboard foo is weak today)
18:54 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.
18:55 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". ;)
18:55 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.
18:55 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.
18:56 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.
18:56 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
18:56 Coke (pure-PIR) that can't be done for a majority of the bugs I report.
18:56 jrtayloriv joined #parrot
18:57 Tene 'make install install-dev' is 13s for me, fwiw
18:57 Coke since they seem to involve bizarre PMC interactions.
18:57 pmichaud There are other reasons that we need to fix the 'make' part of Parrot
18:57 pmichaud right now "make test" doesn't test what gets installed
18:57 cotto install-dev implies install, iirc
18:57 Whiteknight Coke: I'm sure it can be done, and notice I didn't say "Small Pure-PIR snippet"
18:57 Coke Whiteknight: no. some code is written is C.
18:57 Coke C Ain't PIR.
18:57 brbrooks cotto: doesn't parrot support different GC's now?
18:57 Whiteknight that is a hurdle but a small one at best. We can build C in the development environment
18:58 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.
18:58 Whiteknight brbrooks: in theory, yes. We just don't have any different ones to test with
18:58 Tene Whiteknight: Oh?  Huh, I must have missed that.
18:58 Coke In many cases, it's just MUCH easier to say "please checkout my language and run it."
18:58 Tene I've been very much out of parrot ever since I moved.  I've been missing all the fun. :(
18:58 Coke (except I can't do that right now, see blocker.)
18:58 Whiteknight Tene: we do have an encapsulated API for the GC, the only step that's missing is creating the second core to test
19:00 cotto brbrooks, the existing alternate GC cores haven't been maintained and don't currently work.
19:01 * 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.
19:01 chromatic The second one, somewhat less.
19:01 chromatic The third... well, here's a beer.
19:01 Tene oh man, a GC would be fun to write.
19:02 * cotto wonders how Whiteknight feels about Tene's statement.
19:02 * chromatic slaps the table in front of Tene
19:02 chromatic You left off a corollary.
19:02 chromatic A GC is difficult to debug.
19:02 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.
19:03 Whiteknight it is decently fun to write
19:03 Whiteknight it's seriously unfun to debug
19:06 brbrooks how many sloc is the current?
19:06 chromatic Hm, tough to say.
19:06 chromatic Fewer than 5k sloc, I think.
19:09 amuck_ left #parrot
19:12 Whiteknight sloc?
19:12 purl sloc is, like, like penis size. or code minus whitespace, minus comments or http://www.dwheeler.com/sloc/
19:12 cotto Not really.  I'd argue that smaller is generally better.
19:13 brbrooks so a GC is not particularly small... but not huge
19:13 Whiteknight no, not huge at all
19:13 Whiteknight again, the difficulty is in testing and debugging
19:20 flh joined #parrot
19:20 brbrooks joined #parrot
19:25 brbrooks does parrot make use of boehm gc?
19:26 moritz no, it's a custom gc
19:26 moritz (afaict)
19:28 Whiteknight_ joined #parrot
19:32 brbrooks Whiteknight: how practical is it to hook up a new core using the boehm gc
19:33 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?
19:33 Whiteknight moritz: no idea
19:38 darbelo moritz: I think it's under an X11-ish license, so I would guess that it's compatible.
19:39 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
19:40 moritz since all we have to do is to retain a copyright and license note, I see no problem either way
19:43 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
19:44 darbelo I think copyright assignement was also required, but I can't recall for sure.
19:45 chromatic The question is "Isn't this mere aggregation?" but yes, assume that distributing code with Parrot requires AL 2.0.
19:48 darbelo The all-purpose guaranteed-safe solution seems to be "distribute separately".
19:49 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.
19:50 chromatic We don't have a way to load and initialize one externally.
19:51 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
19:52 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
19:52 Whiteknight create a wrapper, and require the user to download boehm separately if they want to use it
19:53 tokuhirom_ joined #parrot
19:54 cotto something like Rakudo's --gen-parrot
19:55 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?
19:55 moritz kurahaupo: many bonus points for that
19:56 chromatic You need a compacting/copying GC for that.
19:56 pmichaud afk for a while
19:56 chromatic That may not be a performance improvement.
19:56 kurahaupo Not that I'm proposing to write one -- $dayjob takes too much time -- but what sort of framework would be needed
19:57 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?
19:57 chromatic In certain circumstances, yes.
19:57 kurahaupo If your system in aggregate chews up so much memory that it swaps, conserving memory *is* a performance booster.
19:58 brbrooks Yes, but I mean practically beneficial
19:58 chromatic It depends on the memory characteristics of individual applications.
19:58 brbrooks e.g. Running Parrot in an embedded environment, which, you probably shouldn't be using parrot in the first place
19:59 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
19:59 kurahaupo So yes it's a practical advantage (to some people, anyway)
19:59 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.
19:59 Austin kurahaupo: You guys hiring?
19:59 Austin I could use some 64gb toys
20:00 * kurahaupo regrets mentioning $dayjob
20:00 brbrooks $dayjob permits 47mb :D
20:00 Austin :)
20:00 Tene http://www.rarst.net/images/Browser​memorybenchmarkplusliesanddamnlie_1​3ABF/browser_memory_benchmark.png
20:01 Austin chromatic: What's the "best"/"rightest"/"simplest" way to call an arbitrary C function from PIR?
20:01 chromatic NCI
20:01 Austin File/directory name?
20:01 Austin examples/nci
20:02 chromatic yep
20:02 * Austin loves `find`
20:02 chromatic docs/pdds/draft/pdd??_nci.pod
20:02 * moritz loves `ack -g'
20:02 Austin Never heard of that. What is it?
20:02 pmichaud App::Ack in CPAN
20:02 pmichaud *much* nicer than grep and find for many searches
20:03 moritz lets you rgrep with perl regexps
20:03 chromatic Powered by orphans.
20:03 pmichaud and it doesn't search .git or .svn subdirs by default
20:03 moritz very handy if you happen to know them by heart, but you can't remember the escaping rules for ordinary grep/egrep
20:03 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?
20:04 kurahaupo as part of GC
20:05 Austin Actually, it's just "ack" on CPAN. App::ack is a helper lib with anti-social documentation.
20:05 pmichaud oh.
20:05 pmichaud I just know that I normally do  "cpan App::Ack" to get it :-)
20:06 chromatic kurahaupo, fixing up all references to a moving GCable is tricky.
20:06 chromatic Doesn't mean it's not a good idea, nor worth doing.  Just tricky.
20:07 Tene I get it from yum.
20:07 Tene perl-ack
20:08 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:09 kurahaupo Then whenever the GC finds a reference to such an object, it could change the referant
20:10 chromatic That sounds like a stop-the-world GC.
20:10 chromatic Not complaining, just noting.
20:10 Theory joined #parrot
20:11 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>
20:11 Tene if you're stopping the world, you wouldn't need a proxy.
20:11 chromatic Sure you do.
20:12 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?
20:12 chromatic It gets tricky when you have to move something that's on the C stack.
20:14 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:15 chromatic Leaving dangling references on the C stack sounds like a recipe for disaster.
20:16 kurahaupo Not dangling; pointing at proxies.
20:16 kurahaupo The trick is to instantiate the proxies in a thread-safe way.
20:16 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.
20:17 chromatic That means any PMC operation from C.
20:18 estrabd joined #parrot
20:18 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
20:18 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)?
20:19 brbrooks How do you profile parrot? gprof?
20:19 chromatic brbrooks, I use callgrind and kcachegrind.
20:19 chromatic kurahaupo, there are some type members of the vtable struct attached to every PMC.
20:20 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.
20:20 Austin pmichaud: `find` says the only appearance in $PARROT/compilers is in PAST/Node.pir
20:20 Austin Abc is a language?
20:20 tokuhirom_ joined #parrot
20:21 chromatic Hm, that handles the vtables.  That's an interesting idea.
20:21 jan joined #parrot
20:21 chromatic It doesn't handle PObj flags... but that's definitely an interesting idea.
20:21 moritz Austin: yes
20:21 moritz (a `bc' like calculater)
20:21 kurahaupo Need two alternative vtables -- one for active-proxy and one for proxy-under-construction.
20:21 Austin moritz: Thanks. I don't have it in .../languages
20:22 moritz Austin: they moved all out of the parrot repo
20:22 Austin Yeah, but tools/dev/fetch_languages has a list
20:23 Austin (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 #parrot
20:26 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:28 chromatic Sure, that's fine.  But there are flags in the PMC header that get read directly, not through the vtable.
20:29 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?
20:29 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.
20:29 Coke (Util_back_in_30_min:)
20:31 kurahaupo (As long as bits are same on old and new objects, read doesn't matter.)
20:33 kurahaupo 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:34 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
20:34 cotto That might be a good cage or n00b task.
20:34 chromatic Not necessarily.
20:34 chromatic Just considering what might be necessary to make copying/compacting work.
20:35 * cotto gets back to opsc
20:35 Austin Aha. Thanks, pmichaud.
20:35 chromatic Writing to those bits from a proxy object is easy.
20:35 chromatic Writing to those bits in a proxied object while there may or may not be an active proxy is more difficult.
20:35 cotto is compreg expensive?
20:36 chromatic To be fair, I want to move those bits out of the objects themselves.
20:36 Andy joined #parrot
20:38 * kurahaupo wonders what exactly "those bits" are for
20:38 Tene cotto: compreg is a fetch from an interpreter hash, iirc
20:38 cotto sounds cheap
20:38 * Coke works on eliminating most of myops.
20:39 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
20:39 chromatic Some of them are instance information.
20:40 chromatic 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
20:43 chromatic Right, but we have to keep them synchronized between the proxy and the proxied.
20:43 chromatic Going from proxy -> proxied is easy.  Going the other way is not, at least as far as I can see.
20:44 kurahaupo As far as GC is concerned, it's sort of like a scalar. No special treatment required (most of the time).
20:45 kurahaupo Most of the magic is in the copy process and the vtables
20:45 kurahaupo What other information would need to be synchronized?
20:46 * 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.
20:47 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:48 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.
20:49 kurahaupo Ahh. I will ponder that on my way to work. Bye everyone...
20:59 dalek rakudo: 19b8db2 | moritz++ |  (2 files):
20:59 dalek rakudo: sync Makefile and release_guide.pod about version formats.
20:59 dalek rakudo: Also includes a POD fix.
20:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​9b8db2f544de3961b4a75ebe8ef4d51271d51b6
21:06 jrtayloriv joined #parrot
21:16 Whiteknight joined #parrot
21:19 dalek decnum-dynpmcs: r101 | darbelo++ | trunk/src/pmc/dec (3 files):
21:19 dalek decnum-dynpmcs: Use a PObj_private flag instead of an INTVAL for the ieee total ordering
21:19 dalek decnum-dynpmcs: indicator.
21:19 purl i think indicator is "how to tell if the form was submitted"
21:19 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=101
21:21 bacek joined #parrot
21:38 Util Coke: (re:not a good strategy) - Noted; thanks!
21:40 bacek good morning #parrot
21:45 Theory joined #parrot
21:47 Whiteknight good morning bacek!
21:47 bacek Whiteknight: good morning
21:47 purl Here I am, brain the size of a planet, and all they say is 'Good Morning'
21:50 Whiteknight purl forget indicator
21:50 purl Whiteknight: I forgot indicator
21:51 Whiteknight purl: you're retarded
21:51 purl Whiteknight: what?
21:51 Whiteknight that's right
21:51 Whiteknight purl purl?
21:51 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 http://github.com/hachi/fl​ooterbuck-purl/tree/master
22:03 NotFound Somone has tested TT #804 on some non linux platform?
22:06 bacek Non linux platform? Are they exist???
22:07 Austin Bacek: plenty. Freebsd != linux. Solaris != linux.
22:07 Austin Windows != linux. MacOSX != linux
22:07 Austin VMS != linux
22:07 Austin :)
22:07 particle BeOS != linux
22:07 cotto qnx, os/2
22:07 * bacek logging to old good OS/360
22:07 moritz why, in numeric context they all evaluate to 0 ;-)
22:08 cotto MULTICS
22:08 Austin Symbian. WinCE
22:08 brbrooks minix
22:08 cotto (because you know that users are clamoring for Parrot on MULTICS)
22:08 NotFound I'd like better a cp/m implementation.
22:08 Austin cotto: I thought we'd implement MULTICS on top of parrot.
22:08 bacek Yay! Let's port parrot to C64!
22:08 Austin The first 64-bit cpu.
22:09 Austin The C64.
22:09 purl rumour has it the c64 is GREAAT for games, dammit. or http://home.no/zaver/skoj/c64.jpg
22:09 Austin It just sounds kick-ass....
22:09 Austin Everything is written in C. Everything is 64 bits. The C64.
22:09 Austin What else could it be?
22:09 NotFound Implacable logic
22:10 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"
22:10 cotto particle, that makes more sense than asking users to #define them.
22:10 particle such that pmc2c and pmcc autogenerate macro accessors
22:11 dalek parrot: r39936 | cotto++ | trunk/lib/Parrot/OpsFile.pm:
22:11 dalek parrot: [ops2c] apply some creative formatting to try to increase readability
22:11 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39936/
22:12 cotto That'd be a good newbie task too.
22:12 bacek cotto: wrong branch :)
22:12 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 #parrot
22:13 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.
22:13 bacek NotFound: in about half an hour
22:15 NotFound Good idea, in half an hour I'll be sleeping :)
22:16 Austin try t/library/pct/PAST/Node/02-block.t
22:16 bacek NotFound: than commit it and wait for nightmares to come :)
22:16 Austin (Ignore that.)
22:16 Austin (Wrong window)
22:17 NotFound bacek: I just hope not to have a day nightmare of purl msg tomorrow morning X-)
22:18 darbelo NotFound: I can test on OpenBSD/amd64. What do you need me to do?
22:18 * bacek passing coin to NotFound
22:18 bacek flip it. Most scientific way to decide :)
22:19 NotFound darbelo: just build and make test, for a bonus, check the pir example on RT #63592
22:21 darbelo NotFound: I see two patches attached to TT#804 which is the one I should test?
22:22 NotFound The last one, TT_804.patch
22:22 MoC NotFound: "Somone has tested TT #804 on some non linux platform?" -> http://smolder.plusthree.com/app/pu​blic_projects/report_details/24611 (that io.t was broken before)
22:23 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:24 Austin Not overtly, but you could use a "Keyword"
22:24 NotFound cotto: the 'closed' stated X-)
22:24 NotFound MoC: thanks
22:25 cotto Ok.  I'll use "newbie" and put that on the new Parrot dev guide wiki page.
22:25 startPerl joined #parrot
22:28 dalek TT #817 created by cotto++: [pmc2c] don't require custom #defines for private flags
22:29 mikehh_ joined #parrot
22:31 dalek parrot: r39937 | NotFound++ | trunk (3 files):
22:31 dalek parrot: [core] do not enter an inner runloop to handle exceptions throw from C with a pir handler, TT #804
22:31 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39937/
22:31 NotFound Here we go, thanks for the feedback
22:32 Whiteknight NotFound++
22:32 Whiteknight maybe parrot newbies should be called "chicks"
22:32 * Whiteknight immediately reconsiders
22:34 pmichaud latest rakudo gc issues posted to parrot-dev
22:34 Whiteknight yeah, I saw that
22:34 Whiteknight and I'm already thrilled about that
22:35 moritz S05-mass/rx.t has been failing consistently for me, retrying...
22:36 rg1 joined #parrot
22:36 * bacek discovered CONFIG_COMPAT_VDSO on linux yesterday.
22:37 bacek cotto: did you try to run make test in opsc?
22:38 cotto no
22:38 mikehh_ joined #parrot
22:39 nopaste "bacek" at 122.110.42.109 pasted "Strange failure on opsc" (29 lines) at http://nopaste.snit.ch/17143
22:40 bacek cotto: looks like "is" and "ok" uses different counters :/
22:40 Limbic_Region joined #parrot
22:41 cotto How nice.  That's not confusing at all.
22:43 * bacek confused.
22:43 purl You won't be after this episode of Soap!
22:43 bacek Why it's not confusing?
22:43 cotto sarcasm
22:45 bacek ok. time for $dayjob.
22:46 bacek cotto: I'll try to implement more stuff in opsc tonight. If Moon will be in proper phase...
22:49 jrtayloriv joined #parrot
22:49 kid51 joined #parrot
22:51 dalek parrot: r39938 | cotto++ | branches/ops_pct/compilers/opsc/t (2 files):
22:51 dalek parrot: [opsc] use is(1, 1, "xxx") as a workaround for ok(1, "xxx") apparently using a different counter than is()
22:51 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39938/
23:05 dalek parrot: r39939 | pmichaud++ | trunk/src/library.c:
23:05 dalek parrot: [core]:  Set versiondir/dynext to be last in search path.
23:05 dalek parrot: (Per #parrotsketch discussion earlier today.)
23:05 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39939/
23:07 bacek joined #parrot
23:07 Whiteknight anybody else here on amd64?
23:08 dalek rakudo: 4549f3c | pmichaud++ | docs/release_guide.pod:
23:08 dalek rakudo: Minor update to docs for parrot release number in build/PARROT_REVISION.
23:08 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​549f3cee9274406e0d455ea673885ee8d4916b8
23:08 rg yes, but on freebsd
23:09 moritz Whiteknight: amd64+linux
23:10 Whiteknight Are either of you guys seeing packfile test failures?
23:10 Whiteknight in Parrot
23:10 tetragon joined #parrot
23:11 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
23:11 Whiteknight so I'm wondering if these failures are from that, or if it's something else
23:12 rg Whiteknight: smolder isn't reporting any. running a new test now.
23:13 Whiteknight thanks
23:14 Whiteknight I'm doing a smolder run now
23:15 Whiteknight 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'?
23:15 dalek TT #818 created by whiteknight++: packfile tests failing on amd64
23:15 Whiteknight darbelo: yes, even after a fresh checkout
23:19 Whiteknight I have an installed Parrot somewhere, could that be borking my tests?
23:19 particle yes
23:19 Whiteknight okay, that's interesting. How do I make uninstall?
23:20 rg ok, the new report shows an eval.t failure, not packfile.
23:20 particle rm -rf Whatever
23:21 Whiteknight rg: http://smolder.plusthree.com/app/pu​blic_projects/report_details/24615
23:23 rg yeah, mine is +1, but you're passing the eval.t
23:23 rg i'm passing the packfile tests
23:23 darbelo rg: what does your etal.t failure look like?
23:23 darbelo s/etal/eval/
23:24 moritz 'make test' with parrot HEAD passes here (amd64 linux)
23:25 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)'
23:26 rg 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?
23:27 rg i did, but i don't like coredumps ;)
23:27 rg -v is helping :)
23:28 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
23:30 rg darbelo: that looks very similar
23:33 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:35 rg stacktrace is quite the same aswell
23:37 rg 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 #parrot
23:58 Theory joined #parrot

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced