% Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot % masak has joined #parrot % ruoso has left ruoso!~ruoso@81.84.157.134 % jan has joined #parrot % clunker9__ is now known as clunker3 % cotto_home has left cotto_home!~cotto@75-92-237-130.sea.clearwire-dns.net % cotto_home has joined #parrot % iblechbot has joined #parrot % Zaba_ has joined #parrot % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % cosimo has left cosimo!~cosimo@pat-tdc.opera.com % kj has joined #parrot % cosimo has joined #parrot % bacek_ has left bacek_!~bacek@mcas-151.usr.optusnet.com.au anyone here bored enough to help me out? depends on the kind of help you need ;) trying to implement a compiler im pretty terrible at it but hey its my first attempt I'm not too familiar with PCT, so I can't promise to help well, i need to put function pointers in a pmcarray % ruoso has joined #parrot im not really sure how to go about how to make the PAST for doing so. would i use the 'sub' pmc? do you mean pointers to HLL functions? yes im implementing the language 'joy', which needs lists with functions in them so i figures a pmcarray would work best.. although i might be wrong I think it should work I know that perl6 implements anonymous subs already maybe you can find out they do it by looking at the code yeah i was looking at that just 2k lines in actions.pm ;-) morning heh good morning jonathan jonathan: be our (or better TiMBuS') saviour ;) how to store sub pointers in an array in PCT To get the Sub, I guess just use a PAST::Var node, with :scope(package) And :name(...) set to the name of the sub itself If you're tyring to do it in PAST, anyway. well the issue is, i want the sub inside a resizablepmcarray it won't be ran until something 'runs' the array yay homoiconic languages =/ Yes, using the PAST::Var node just gets you the Sub, it doesn't run it. Then you can put it in an array, using the keyed_int scope. ah And a PAST::Op node of pasttype bind to put it in there. ooh. so the PAST::Var node returns a 'Sub' pmc? Yes. % bacek has left bacek!~bacek@123-243-38-218.tpgi.com.au that should do it then Hopefully. :-) i probably should have made an ordinary imperative language but i haad to be different TiMBuS: you might have a look at the PCT tutorial in languages/squaak/doc, maybe there's some useful info there for you hey they've all been added. Heh, I'm planning to try getting ML running on Parrot. jonathan: exercise in type inference? ;-) moritz: Yes, exactly. jonathan: don't know if you've seen it yesterday... t/spec/S02-polymorphic_types/subset-range.t has a failure that shouldn't be there moritz: Thanks, will take a look. Just got a broken Parrot build at the moment Done realclean...fingers crossed.... Argh. Yes, my parrot is busted. :-( ..\..\parrot.exe ..\..\runtime\parrot\library\PGE\Perl6Grammar.pir --ou tput=PGE\builtins_gen.pir PGE\builtins.pg Null PMC access in invoke() jonathan: mine was broken yesterday already, but i thought it was because I broke something in my sandbox; just did a clean check out, still broken; same error parrot is fine, though; it's something with PGE i think smoke (after a realclean) is fine here Yes, it's PGE issue. kj: You found this on Win32? which means we really need PGE tests jonathan: yes Argh. It's not even a GC problem; -G doesn't fix it. i didn't report it yesterday ; didn't have time to check whether it was my local problem it may have been a rename of some sub in the grammar compiler I mean, there's some null access in invoke, so that would make sense Yeah, but @other who ain't on Win32 can build fine. oh really?? * purl removes pants I just got a clean checkout And it worked. Of course it worked you on win32 ? realclean didn't, but a clean checkout did... Yeah that's odd local changes? svn diff was clean. i'll do a realclean OK, phew...I can hack on Rakudo today after all. phew indeed :-) * jonathan makes a cup of tea and digs in jonathan: great slides by the way kj: Thanks; they were fun to deliver. % tetragon has left tetragon!~seneca@216.126.67.44 i can imagine :-) moritz: t\spec\S02-polymorphic_types\subset-range....ok # I guess I need to un-fudge something in there? jonathan: yes, or just copy it to t/localtest.dat and add a # pure comment at the end or run the .t file directly it's not a parse failure ok, will do once I've run the current bunch of tests * jonathan wants to make sure he has a clean set of passes before he starts the day's hacking jonathan: well i still have the same error i'll report a bug kj: Did you try getting a clean checkout? moritz: Actually the fact that two of the tests pass is actually a bug too. my Int $x = -1; # also gives type check error. testing++ Hmm. Actually there's three separate things that need fixing to make this test pass. :-) I thought it would be just a small range thing ;) jonathan: clean checkout) well, my svn flag is green well, just to make sure, will do a complete new checkout If you do prefix:- on an Int, you'd expect to get an Int back, right? right .sub 'prefix:-' :multi(_) .param num a $N0 = neg a .return ($N0) .end Is most probably wrong. yes because it makes a num out of everything and now you'd need generics ;) Nah, MMD. ;-) so we need 1) an Int multi 2) a num multi 3) a 'any' multi that coerces to num? or are 2 and 3 the same? I've left 2 and 3 the same for now. r28085 | jonathan++ | trunk: : [rakudo] prefix:+ and prefix:- should preserve integer type when done on an integer. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28085 OK, so that fixes the my Int $x = -42 bug Now, lists need smart-match. And then finally, I need to fix where :-) or to put it this way, I killed your productivity regarding new features These things need fixing anyway. I know, I just forgot the smily t/spec/S29-num/int.rakudo 58 5 8.62% 11-15 not ok 13 - int(-0.5) is -0 Oh. Hmm. list isn't in the smartmatch table. Range is. > say int(-0.5) -0 0 wtf? Ouch. :-S does is() try to do string comparison? Not sure yes multi sub is($got, $expected, $desc) { my $test = $got eq $expected; proclaim($test, $desc); } I'll now remove these ridcolous -0 from int.t and test is(-0, 0) OK. Erm, my fix makes the range subset test fail even more. Also, I've realized that since List isn't in the smartmatch table...we really need ranges proper to make that test pass. Since we have '!flatten' and 'list' now, that might just be possible, though. > say int(-0.4).WHAT Num Hmm. I've not got any int failure here. Oh, hmm. .sub 'int' .param num a .return 'truncate'(a) .end I'm not convinced that's right. Especially given above it we have the comment our Int multi Num::truncate ( Num $x ) % mire has joined #parrot moritz: Just smoking a fix for that, then will ci % mire has left mire!~Frodo@80-168-222-85.adsl.verat.net jonathan: I just commited more int test, specifically int($something).WHAT eq 'Int' great, I have that working here now jonathan: FYI: (clean checkout) works now; no problems anymore r28086 | jonathan++ | trunk: : [rakudo] Make return value of truncate match that in the specification/comment above. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28086 r28087 | jonathan++ | trunk: : [core] Implement get_iter vtable method on ResizableStringArray. Patch courtesy of chromatic++, test added by me. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28087 ok, now tehre are two failures in subset-range.t because that int bug doesn't prevent assignment of negative numbers any more ;) Yeah, I know! Leave it for now, I'm working towards fixes for that test file. ok Just need to try implementing a few things, to make it work. % bacek has joined #parrot good localtime() everyone hey bacek ;) moritz, hi there moritz, howisgoing? bacek: fine, I'm producing more failing tests for jonathan to fix ;-) jonathan: abs() needs similar fixing, abs($_).WHAT should be identical to $_.WHAT those tests are fudged as parsefail, because rakudo doesn't know WHAT as a sub yet parsefail? yes, but easy to work around by using the method form sent ticket anyway OK, thanks. % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru pmichaud++ asked to turn all missing features into tickets % Zaba has joined #parrot (at least those that are used in the test suite) > say abs(-2).WHAT 0 > abs(-2).WHAT.say Int b0rked What's...odd. s/W/T allison@perl.org | A foundation for Parrot: link: http://www.perlfoundation.org/parrot/index.cgi?a_foundation_for_parrot dalek's url is at http://xrl.us/bkxq5 allison@perl.org | Annual Conflict of Interest Statement: link: http://www.perlfoundation.org/parrot/index.cgi?annual_conflict_of_interest_statement dalek's url is at http://xrl.us/bmjh7 allison@perl.org | Annual Conflict of Interest Statement: link: http://www.perlfoundation.org/parrot/index.cgi?annual_conflict_of_interest_statement dalek's url is at http://xrl.us/bmjh7 allison@perl.org | Bylaws: link: http://www.perlfoundation.org/parrot/index.cgi?bylaws allison@perl.org | Bylaws: link: http://www.perlfoundation.org/parrot/index.cgi?bylaws % kj has left kj!~IceChat7@193.1.100.109 % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru moritz: The bad news: the test fails even harder at the moment. The good news: I've got .. constructing a range operator, which is lazy when used in iteration and eager elsewhere, with all other tests passing (sanity and spectest_regression). jonathan: "eager elsewhere", surely not in a smart match? Correct, smart-match it won't be eager in, but that doesn't count because I've no implemented it yet. ;-) allison@perl.org | Bylaws: link: http://www.perlfoundation.org/parrot/index.cgi?bylaws ;) r28088 | jonathan++ | trunk: : [rakudo] Make .. construct a Range object. Currently we don't have lazy lists implemented, so we eagerly flatten it into a list whenever it is used in list context (easily possible thanks to recent lists changes), however just using it as an iterator will give the lazy semantics. All tests that passed before this change in sanity and spectest_regression still pass. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28088 % Zaba has joined #parrot jonathan++ for also incorporating the root.in makefile changes (svn up||true) % TiMBuS has left TiMBuS!~Hurf@123-243-167-27.static.tpgi.com.au r28089 | jonathan++ | trunk: : [rakudo] Implement smart-matching for Range objects. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28089 % jan has left jan!~chatzilla@nsabfw1.nsab.se Hi... let me bring a question I just made in #perl6 that is probably better put here... there's something I'm very curious about parrot/rakudo... how are you planning to interoperate different object representations? like ... my $o = Object.CREATE(:repr); for instance... in SMOP I defined a specific API for that... jonathan: any further insights into the '$_' runtime error? % uniejo has left uniejo!~uniejo@langebro.adapt.dk All operations on objects are performed using v-table method calls. I haven't got to working out exactly how to get this working yet, but I think it'll be along the lines of... * Make a pmrole (at the Parrot/C level, I expect) that contains the object-y methods. * Build an anonymous subclass of the representation type that does this role I think :repr is in the bag of weirder things we'll worry about a little later. :-) much like what XS does for p5 pmichaud may also have thought this through more than I have. How are you approaching this in SMOP? masak: Remind me which one, or is there a ticket? SMOP defines much less things in low-level and there's a REPR api that even p6opaque will comply to jonathan: there is. let me see if I find the tnr OK. #55184 the only static lookup made on SMOP is for the MESSAGE member of the SMOP__ResponderInterface everything else is dynamic (MESSAGE, REFERENCE and RELEASE actually... but that's details) the v-table lookup happens *inside* the object and might be implemented any way wanted basically SMOP ends up being a series of SMOP_DISPATCH(interpreter, object, identifier, capture) where every parameter in there is already an SMOP__Object Sounds pretty neat. I'll give it a closer look, especially the way you're handling different representations. but anyway... If I could give you an advice, I would recommed taking a closer look at the repr issue earlier... that was a turning point in SMOP % bacek has left bacek!~bacek@123-243-38-218.tpgi.com.au and I'm gald I got to it early s/gald/glad/ Thanks, I'll have a look and think it through a bit more. I've been trying to get a bunch of potentially tricker stuff in earlier to make sure it can work, or at least making sure that we know how we will do various things in Rakudo even if we aren't doing them yet. you probably would like to take a look at the slides for the SMOP talk I'll present saturday http://people.debian.org/~ruoso/SMOP.pdf And as I said, pmichaud may have already got it nicely worked out in his head, how we will do this. ;-) :) Thanks....happy they are in English! :-) :) I was expecting to present it in YAPC::EU also, but I'm not sure I'll be able to be there... % iblechbot has left iblechbot!~iblechbot@105.16-dial.augustakom.net jonathan, btw... http://www.perlfoundation.org/perl6/index.cgi?smop_oo_api contains the summary of the REPR support Thanks, just reading through the slides now. % bacek has joined #parrot % TiMBuS has joined #parrot moritz: t\spec\S02-polymorphic_types\subset-range....ok Just running rest of tests, and if they're fine will check-in. Then you can un-fudge. :-) jonathan: while you are at it, S29-list/grep.t seems to pass as well (at least the fudged form I'm not seeing any unexpected pass warnings from that. r28090 | jonathan++ | trunk: : [rakudo] Make where without a block work. This gets us passing the subset-range test. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28090 OK, lunch time. _FUD! % Whiteknight has joined #parrot % tetragon has joined #parrot good morning, all. mornin' (though Europe has mid-afternoon already) pmichaud, hi pmichaud have you seen my comments on the join signature? (#perl6 backlog) yes, but didn't quite understand them. The method dispatching always falls back to sub-dispatching when it fails and only really fails if the sub dispatching fails right, I understand that part. so our multi sub join (Str $separator, Array @items) will be found on both join ', ', @items sure, but that's not what S29 has S29 can be fixed ;) and actually TimToady said earlier today (GMT day, that is) that we still have a rather liberal commit policy for S29 moritz: yes, I'm the one that asked that. pmichaud: ok, I forgot ;) our multi sub join (Str $oneitem, Str separator) would get the 'foo'.join(',') actually but I'm a bit concerned about that, because it means that we may be adding/changing behaviors without any real review our multi sub join (Object $oneitem, Str separator) would get the whatever-not-array.join(',') ruoso: yes, that's what TimToady and I concluded r28091 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] updating to trunk r28090 diff: http://www.parrotvm.org/svn/parrot/revision?rev=28091 pmichaud, ah... ok... I didn't see that part on the discussion... :) allison@perl.org | Bylaws: link: http://www.perlfoundation.org/parrot/index.cgi?bylaws pmichaud, about S29 review... I think S29 will have to evolve toguether with the implementations and the test suite or awesome and very educational and it will be easier if we see S29 as documentation rather than spec at this moment but that's kinda what concerns me -- someone could modify S29 just to make sure it matches what's in the test suite, without really asking if what is in the test suite is what ought to be correct in the first place that's the point of "it's not a spec yet" :) allison@perl.org | Articles of Incorporation: link: http://www.perlfoundation.org/parrot/index.cgi?articles_of_incorporation dalek's url is at http://xrl.us/bkyfj except the official test suite "is a spec" (agreed it's still evolving) anyway, we'll just keep evolving things as we go. pmichaud, yes... and the S29 part will be very unstable in the next few ?months? S29 part of the tests, I mean... but still the tests doesn't have the signatures... they only list some use cases and the signatures must be able to match them morning, pmichaud # finished eating lunch % tetragon has left tetragon!~seneca@216.126.67.44 r28092 | pmichaud++ | trunk: : [rakudo]: : * Change some :multi(Int) to :multi(Integer), just in case any Parrot : types leak into our code. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28092 r28060 has: + # Propagate exception to caller + $P0 = getinterp + $P0 = $P0['lexpad';1] + $P0['$!'] = exception ... is that right? I don't think so. well, that's what we're doing for Regex ACCEPTS, too, so I guess it is right. when looking at it I was thinking that would give OUTER, not CALLER Ah, OK. What I menat by "not right" is I think $! is supposed to collect exceptions on a fail. oh, that is in a fail. I'm not sure if this example here is meant to fail or die. well, we really need a 'fail' function. :-) Because the contextual variable $! contains all exceptions collected in the current lexical scope, saying die $! will throw all exceptions, whether they were handled or not. So it seems to collect 'em up. :-) Yes, we need a fail function. ;-) purl, nopaste nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://paste.husk.org/ or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or don't bother me while I'm eating or App::Nopaste or tools/dev/nopaste.pl "jonathan" at 85.216.151.226 pasted "proposed patch" (46 lines) at http://nopaste.snit.ch/13176 pmichaud: That nopaste should switch us over to using mutables, and it passes all of spectest and spectest_regression. Does it look sane? looks great. commit. % tetragon has joined #parrot OK, done. r28093 | jonathan++ | trunk: : [rakudo] Switch us over to using Mutable for scalars. Passes all sanity and spec tests. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28093 pmichaud: I think that maybe the is ro/rw/copy patch I did for parameters maybe can go in now and not break as much. But I know you were pondering doing some refactoring relating to parameters too. does it still use !TYPECHECKPARAM ? Yeah, I hadn't eliminated that. I'm not sure if we can for now. I was thinking that !DOTYPECHECK ought to be sufficient. Yes, I think so too. Plus I added a sub that generates the type constraint object. It'd be good to refactor params to call that instead. right. That was my intention when I factored it out before. Just never got to it yet. if the change to parameters doesn't break anything, feel free to (re-)commit it. But I may end up rearranging a lot of it soon. :-) % iblechbot has joined #parrot or you can just send it as a patch and I'll add/revise it as part of my refactoring. OK, I can put it in...and tests. Then it's there for you to refactor as you wish. r28094 | pmichaud++ | trunk: : [rakudo]: : * Fix hash() so that it again correctly reports "Odd number of : elements found where hash expected." diff: http://www.parrotvm.org/svn/parrot/revision?rev=28094 % gryphon has joined #parrot % tetragon has left tetragon!~seneca@69-196-141-26.dsl.teksavvy.com pmichaud: Well, geck. I just put the parameter stuff back in. And get one failure. Which is due to the Parrot GC bug. One in spectest_regression, that is. Not in sanity. I've been letting things commit if they work with -G OK because usually it clears up on its own I'll commit then. and if it doesn't, then we'll have stronger incentive to finally figure out what is breaking :-) But I know full well this won't clear up "on its own". Since I found a real GC bug (lack of marking something reachable). oh, you mean the sub bug? hrm. Yes. It only causes one failure in a (larger, thus why we see it) test. I leave it to your discretion, then. :-) OK, I'll put this in. I'm willing to live with the spectest_regression failure. Then I'll go look at the segfault. I can put in a workaround quite easily in find_name_op, but it's a *total* hack. I don't mind if spectest_regression has failures for short intervals ( O(days) ) if we know why they exist I'll have another glance at the GC bug now. And if no better fix comes to mind, I'll file a ticket with the details I have. At least it's a "we have a GC bug exactly here" rather than "these thousands of lines exhibit a GC bug". :-) r28095 | jonathan++ | trunk: : [rakudo] Get is ro, is rw and is copy, with ro being the default, working on parameters to subs. This time, we get just one failure in spectest_regression (on Win32), which is a result of a Parrot GC bug. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28095 % jan has joined #parrot pmichaud: Up for some testing? sure. I now have a patch that fixes the GC bug, giving a clean pass of Rakudo sanity and spectest_regression And also doesn't cause any new failures in Parrot tests. excellent. send patch. I'll test it immediately. (unless Paula needs me for something quickly -- getting ready to head off to chemo) "jonathan" at 85.216.151.226 pasted "GC fix" (13 lines) at http://nopaste.snit.ch/13177 there it is I would like test from you too, since I know the issues my last attempt caused were quite different than I had been seeing. right. I'll do a full test. Great, thanks. (parrot and rakudo) and rebuild, too. "jonathan" at 85.216.151.226 pasted "What works now" (11 lines) at http://nopaste.snit.ch/13178 oh, btw, it's "is readonly", not "is ro" Oh? OK :-) I couldn't find any instances of \bro\b in S04 sorry, in the Synopses OK, not sure where I got that from. I also find readonly too verbose. fortunately... it's the default. :-) that's good I guess having is rw made is ro feel kinda natural. :-) allison@perl.org | Articles of Incorporation: link: http://www.perlfoundation.org/parrot/index.cgi?articles_of_incorporation dalek's url is at http://xrl.us/bkyfj % jhorwitz has joined #parrot allison@perl.org | Articles of Incorporation: link: http://www.perlfoundation.org/parrot/index.cgi?articles_of_incorporation dalek's url is at http://xrl.us/bkyfj r28096 | pmichaud++ | trunk: : [rakudo]: : * Remove trailing spaces in Range.pir . diff: http://www.parrotvm.org/svn/parrot/revision?rev=28096 allison@perl.org | Articles of Incorporation: link: http://www.perlfoundation.org/parrot/index.cgi?articles_of_incorporation dalek's url is at http://xrl.us/bkyfj I got an odd failure in S29-str/capitalize.t --- but re-running it seems to cause it to pass. Running once more for a check. r28097 | jonathan++ | trunk: : [rakudo] ro trait is actually called readonly. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28097 jonathan: all tests pass here. +1 on the patch. (the GC fix) OK, great. r28098 | jonathan++ | trunk: : [core] Fix a GC bug where subs did not mark their context, which could cause LexPad PMCs referred to by the context to get collected. This fix does not have the issues that my previous attempt to fix the bug created. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28098 pmichaud: On VAR and .VAR, I think that since we keep properties in a hash right now, we're going to have to do quite some faking to make VAR($foo).readonly to work. really? * purl removes pants I think so, because find_method needs to return something invokabe seems to me that a MutableVAR would be able to define a .readonly method. Oh, hmm. OK, that special-cases 'em all. OK, we can do that for now. or even a .property('readonly') The Spec suggests VAR($foo).readonly or we can define a .readonly method on Perl6Scalar that returns its 'readonly' property then VAR($foo).readonly dtrt Yeah, that's a point. OK, that'll be cleanest for the future. % kj has joined #parrot % Andy has joined #parrot moritz: for RT#55338, what file tests WHAT() ? pmichaud: S29-num/abs.t perhaps mention it in the ticket? ;-) (thanks) ok, will do next time and why does abs.t use WHAT?! to ensure that the type doesn't change pmichaud: don't shout and it's good that it does, because we had some cases where int() returned a Num ;) We can't help it! S12 made us do it! :) shouldn't we be using ~~ instead? how? $abs($_) ~~ $_.WHAT perhaps? currently the test is WHAT(abs($_)) eq WHAT($_) sorry abs($_) ~~ $_.WHAT ok, that might be more permissive are we guaranteed that abs($_) shouldn't change type? or just in select cases? pmichaud: they are tests with Num and Int pmichaud: and I think in those it shouldn't change okay. works for me then. actually some of these tests failed quite horribly abs(-2).WHAT.say said "Int" and way abs(-2).WHAT said "-2" > abs(-2).WHAT.say Int > say abs(-2).WHAT 0 jonathan: i have some code review items of your ro, rw, copy patch: http://www.parrotvm.org/svn/parrot/revision?rev=28095 your error messages should include the trait name: $/.panic("Cannot apply traits to parameters yet."); it seems 'is rw is rw' won't error (should it, or just warn, which we haven't implemented yet) 'is rw is rw' does error here for me i think the last 'else {' in the bottom patch chunk is too permissive, should check "elsif $cont_trait eq 'copy'" specifically ah, yes, it will error. should it? And yes, including trait name would be a good thing, though the original message isn't so far off - we're not really applying traits proper yet. I'm not sure, but it'd seem odd specifying multiple. I was really tyring to catch is readonly is copy and other such meaningless fun. syntactically, it's allowed semantically, it has no meaning Oh, I know, but that doesn't mean the compiler should allow it. but, since it looks funny, it sends up a red flag my Int $x = "foo" is syntactically allowed. :-) yes, but that's semantically wrong On the last else, $cont_trait is something that we directly set ourselves, not the user. yes, correct but it doesn't match the cases above So from the block above we know it can't have any other value. if the block above is changed, then the block below needs changing but what if a rakudo committer changes the above without the below? those blocks are tightly coupled so i'm arguing that the if/elsif cases should match, to make that more clear Can be done. * pmichaud notes as an aside that he's still planning to refactor a lot of this. i can do the changes but i don't want to without discussion particle: I have no objections to the changes you're proposing. okie Generally, I don't mind clean-ups to anything I commit to make it more maintainable/readable/give better error messages. i'm reviewing your range commit now anyone who's going to yapc::na - msg me if you have an extra bed/couch/floor to offer - I'll pay for half..all of your housing costs... I need a place to crash. i hate that wicked gc bugs are usually solved by one line of code... after all that digging diakopter: i think there's a wiki page for such requests particle: it's pretty bare ah from the discussions here I get the impression that the GC is a bit crappy but why? is it neglected? or not well tested? moritz: it's not crappy particle: That one took about an hour and a half, in the C debugger, at the airport on Sunday to find. well, the performance is but we're replacing the current gc with a better one we = Whiteknight++ moritz: the hard part is programming for gc particle: ok, not crappy, but it still accounts for at least half the parrot bugs I'm confronted with that's the trouble with C if we could program in perl, we wouldn't have to worry about gc :) so are the "GC bugs" actually spread out over all the code base? unlike perl 5 source (refcounting), parrot's gc bugs are usually in one of a few places in any .pmc file The problems generally are things that are still somehow reachable, but we aren't telling the garbage collector that. perhaps the 'mark' vtable function, or 'init' That's the case in the one I just fixed. ok, thanks for the insight And to go with what particle just mentioned, the thing I just fixed was inside mark method of the Sub PMC. moritz: i thought of a new todo for rakudo tests... * jonathan finally finds a box with bison and flex versions that allow him to add parsing of :instanceof(blah) to IMCC. make sure that files marked # pure don't have any #?rakudo directives in them particle: sounds like a one-liner ;) yay for jonathan! well, perhaps a bit more than one line yep, pretty easy would make a nice util to add to the test suite maintainer toolkit any suggestions for a name? fudge-purity-warnings? purity_check? sure, i like fudge_purity_inspector.pl how do I add an inital $Id: tag to a file? just put $Id$, it will fill out the rest Infinoid: thanks r28099 | jonathan++ | trunk: : [core] Add parsing (but not semantics) for :instanceof('Type') adverb on .subs. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28099 feather++ # had correct versions of flex and bison to let me do this patch, at last moritz: need to set some svn properties, too, probably do we have a make target for that in perl6 now? in parrot we have 'codetest' run that after your svn add if it passes t/distro/file_metadata.t, $Id$ should work do we have a script for adding files and setting svn props? no, unlike pugs like pugs' util/svn-add-textfiles shouldn't be hard to steal that one, though stick it in parrot's tools/dev/ r28100 | infinoid++ | pdd13pbc: : [pdd13] Merge changes from trunk (-r27563:28099) into pdd13pbc branch. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28100 (make codetest) I'm thinking of moving the existing 'make test' target to 'make coretest', and then have 'make test' run both coretest and codetest then we can have 'make fulltest' that runs coretest, spectest_regression, and codetest % ruoso has left ruoso!~ruoso@195.23.92.2 pmichaud++ i think the default test target should have no body, just dependencies (unless that body is @echo whatever) that's what I'm thinking also. % ruoso has joined #parrot is MANIFEST generated somehow? perl tools/dev/mk_manifest_and_skip.pl tools/dev/mk_manifest_and_skip.pl heh :) ok, let's ask the other way round: is there a "must-read for new commiters" somewhere? (not that I'm a commiter yet...) % kj has left kj!~IceChat7@193.1.100.109 r28101 | jonathan++ | trunk: : [rakudo] Stub in MutableVAR PMC. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28101 The first law of the commitotic: "A commiter may not injure a human being or, through inaction, allow a human being to come to harm." "die Würde des Menschen ist unantastbar" - we have that in our constitution already ;) there's docs/project/committer_guide.pod "... to commit and serve" Thou shalt never commit anything that breaks t/codingstd/trailing_whitespace.t. ;-) sinner! * jonathan looks forward to having codetest run as part of make test for Rakudo. Aye. I'm still mystified, how I manage to end up with so many of these. jonathan: any ideas about making method calls fall back to sub calls? % davidfetter has joined #parrot pmichaud: Example of what you're trying to do? $foo.abs should call abs($foo) if no abs method is defined. Patch sent S12:207 pmichaud: Is that general Perl 6 sem....right. We need to override find_method. ouch more generally I think we need our own dispatcher We need to anyway. Because we need to get SubMethods in parent classes not to be dispatched to. And other such fun. and junctions junctions are what you call Quantum::Superpositions in Perl 6. or fun That's the MMD dispatcher, but yes. ...MMD dispatcher can do the autothreading? I will deal with that in July when I do the MMD work. Yes, that's my plan. so, wouldn't "fallback to sub" just be part of that, also? No, because find_method will never have returned you a multi to invoke. the mmd dispatcher for junctions won't work with methods? I'm confused. Let me try and explain better. For sub calls => either have a Sub in the namespace, which we just invoke directly, or it's a MultiSub, in which case on invoke it runs the MMD dispatcher. % peepsalot has joined #parrot For methods => call find_method. If find_method doesn't find anything, it instead does the "fallback to sub" logic. Otherwise, it returns what it found, which may or may not be a multisub. Then we proceed the same as if we'd looked a sub up so, what handles autothreading on Sub? (as opposed to MultiSub) Oh, urgh. isn't it handled *after* finding the correct sub? Yes, it is. And type check failure. The type check failure is caught (like no applicable methods is caught - but we probably won't bother throwing and catching anything here). moritz: isn't handled after the finding the correct sub? pmichaud: autothreading foo(1 | 'b') might invoke two different subs. And then we examine the signature, and if the failure was due to a parameter not taking a junction and we passed one, we change it to a multi, with the newly generated auto-threader inside it. Aye. The junction distributor just re-dispatches back to the multi, which will dispatch the correct way. I have a feeling that's not going to really work. Which bit? Which bit is probably the time part? Anyone? well, for one, I don't think that we should require every sub to check its arguments for Junctions that should really occur prior to dispatch. Subs are responsible for checking the types of things passed as parameters, I would have thought? ultimately I think every sub needs to carry a signature property, and then the dispatcher selects a sub based on matching signature and that's the part that does the type checking of arguments OK, but that's just moving the check done in each sub into one common place (e.g. done inside invoke) Which is neater, I agree. I'd been pondering that we probably need to have signature objects in place to do the MMD dispatcher properly. well, we know we have to have a Signature type re "every sub needs to carry a signature property", yes, you can even access it with .sig moritz: I think it's '.signature', but yes. Sure, it's just a little way down on the roadmap. But I suspect we should hoist it up and doing it before MMD. The :instanceof stuff I'm working on here and there, is one part of that. ultimately my guess is that we'll end up with our own custom MultiSub type and override its 'invoke' That was my plan. and then all of our Sub objects are that type Something like that. i.e., we don't have any Parrot 'Sub' objects, they're all 'Perl6Code' or whatever jonathan: actually both .sig and .signature is used in the synopsis :( moritz: Aliasing! :-) heh, you're right. pmichaud: Right. That's what I'm working towards. I think S03 is incorrect. then I think that instead of trying to fix find_method, we do something to generate method calls instead of $x.'foo' because i don't hold out a lot of hope for getting find_method to do what we want. I suppose it could work if we assume that everything isa Perl6Object pmichaud: I think we should use find_method, but we need to subclass the Object PMC. And implement our own semantics in there. that would seem to eliminate P6object I suspect just writing our own dispatcher and ignoring find_method is going to hurt language inter-op. Does P6Object subclass Object? Or is it just an instance of it? I'm guessing the second. I'm not saying ignore find_method, I'm saying that we don't use it as our primary form of method dispatch nothing subclasses Object I figured so. I think the original intention was to make class and object subclassable. So you can put your own dispatch etc semantics into them. well, if we want to do that, and to put PGE and PCT into that category, I guess that's okay. *however* this is a case where I think that it's the language that is dictating the semantics, not the object. i.e., if someone gets a hold of a Perl6Array in another HLL and invokes a method on it, perhaps we shouldn't have the "fall back to sub" semantic in that other HLL similarly, if I get a Python object into my Perl6 program, I should expect "fall back to sub" to work. Hmm. Good point. Thanks, jonathan, I'm glad you agree with me. so, perhaps a couple of dynops Implenting our own custom dispatcher? yes. OK, let's try this way then, and see how it goes. oh, hrm. here's another evil thought. :-) But there's still things like Signature to get in before we can do it really well. ;-) :-) Uh-oh. :-) we could implement a "pseudoclass" that always occurs at the end of the parent list and that pseudoclass reports all subs in the current lexical scope as being methods :-) and then find_method would work. :-P sounds too evil, though. Ewww! You're sick. :-) That would have...interesting...consequences for .* as an interim measure we could see about overriding the 'call' and 'callmethod' pasttypes in PAST::Op to call a custom dispatcher instead of the default Parrot one. I guess just callmethod for now, would get us the semantics you're after of sub fallback? yes, I think so. and would be a reasonable proof of concept. is there a way (in PIR) to determine if a multisub will dispatch? so, $foo.?abs will call abs($foo) ? particle: I'd not hope. i.e., if a given set of arguments will match a given MultiSub PMC pmichaud: Only to invoke it. hrm. I might want to add a method to MultiSub then. Yeah, we need to be able to do things like MySub or similar to get at particular variants too. I may be a little off on the syntax. I asked for this in the MMD PDD, but I don't think anything made it in there. Ultimately I think we're going to be using :load :init to set properties on our subs I don't think we'll be able to get every property we might want/need into PIR syntax. but having :instanceof is something we definitely need. why wouldn't $foo.?abs call abs($foo) ? :load :init - wouldn't :emit_pbc be better, so once we serialize the bytecode and sub PMCs we don't have to do it every load? I thought .? just said "call a method if we have it" I'm not sure, just feels kinda surprising it'd go for a sub instead. I guess if . does though... oh, I'm not familiar with :emit_pbc % TiMBuS has left TiMBuS!~Hurf@123-243-167-27.static.tpgi.com.au I *think* it runs it right after it compiled it. Or is it :immediate or something...I'm sure not long back I saw such a mechanism, for running during compile time. :immediate means that we do it during the compile, yes. ok I thought there was emit_pbc one as well, I may be wrong. (phone) but thinks that happen as part of :immediate don't show up in any .pbc output s/thinks/things that's why we have :load :init (:immediate was commonly used for compiler side-effects, such as loading a .so module prior to trying to obtain a type id) if/when we can do bytecode serialization then we'll probably be in better shape. that sounds like something PCT should offer. or the PIR compiler itself. I suppose if we can serialize the Eval PMC that comes back from compiling PIR then that might be good enough. Yeah, I guess so. This might be in the realm of, things that should work but maybe don't. and then we could do properties as :immediate If :load :init works for now though, I guess easier to use that while we work out what we need. right, that's been the approach I've been taking. it's mostly generated code, so easy to change when Parrot gets improvements. Sure. afk, lunch, kids kids for lunch :( % masak has left masak!~user@130.238.45.242 % barney has joined #parrot barney, ping hi cotto are you familiar with clean-room implementation? r28102 | jonathan++ | trunk: : [rakudo] Add readonly method to Mutable PMC. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28102 (with the concept) what's that ? Implementation according to spec ? my understanding is that it's a way of copying the idea behind code without copy the code one guy looks at the code and writes a spec r28103 | jonathan++ | trunk: : [rakudo] Fill out MutableVAR a bit more, and add a few (passing) tests for it. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28103 another looks at the spec and writes another implementation of the code sounds like "chinese wall" I was thinking that this method might be the easiest way to use an existing PHP grammar in Plumhead without dealing with relicensing issues particle, yes I remember that being mentioned WRT to Linux drivers If I used the Zend PHP5 implementation to write a spec for the grammar, would you be willing to implement the PGE grammar? (or the other way around) Have you investigated the PHC and Phalanger grammars? AFAICT they're both based on Zend, which probably means that they couldn't be relicensed afk, dinner and language study, back later % Theory has joined #parrot cotto: I'm willing to do the PGE and ANTLR implementation without looking at Zend code. In fact, that's what I did so far. yes, but working from a spec would help prevent surprises Of course using a spec from you. yes r28104 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] updates to comments and datastructures diff: http://www.parrotvm.org/svn/parrot/revision?rev=28104 OK. I'll start a spec on the wiki and send you a link once it nears usability. What is the license of the Zend parser? I think they distinguish between a basic PHP and some kind of accelerator. Zend 2.0 You may be thinking of Zend's opcode cache or optimizer cotto: I plan on a some free time in July and August. Being busy with a project in Darmstadt till end of June such is life tuits are usually in short supply Isn't that GPL-compatible? http://shiflett.org/blog/2006/apr/zend-framework-license I'll have to check if that's the same as the Zend 2.0 license bbs (work) * barney hitting the road to Munich % barney has left barney!~bernhard@dslb-084-058-128-075.pools.arcor-ip.net Yikes. I think this morning's scrollback may be too long to read without my brain melting .... japhb: just skip the whol karma battle ;) r28105 | particle++ | trunk: : #55346: [PATCH] tool for checking if '# pure' files still contain fudging : ~ applied with minor formatting corrections and enhancements : Courtesy of Moritz Lenz (moritz++) diff: http://www.parrotvm.org/svn/parrot/revision?rev=28105 oh, our test tools are looking much nicer these days! though I'm wondering if we should actually remove some tests from spectest_regression some of them have 100% skip, which only increases test time but doesn't add any value moritz: they shouldn't be in _regression, probably, but i'd like them in spectest particle: "spectest" runs *everything* ssorry, here's what i'm getting at: is it worthwhile to decorate all spec tests with #?rakudo markers? why should it? ...or only the tests we expect to be working soon only those that are partly implemented there's no use to fudge concurrency test when no concurrency is implemented does "use v6; plan 5;" count as partly implemented? :) ;) no % NotFound has left NotFound!~julian@50.Red-213-96-228.staticIP.rima-tde.net ok, then for those test files tha have all skipped, let's rip out #?rakudo and from _regression "moritz" at 89.13.199.151 pasted "patch for particle: less tests" (31 lines) at http://nopaste.snit.ch/13181 % NotFound has joined #parrot we don't do pi yet? seems like it could be a quick add sprintf, too, if we use parrot's directly didn't look at it, that's just the list of all skip-all tests does perl 6 have the same format as parrot? i don't know, but i bet it's a close-enough approximation for now parrot's is modelled after perl 5's oh it seems that S29-num/exp.t is overly fudged exp(5) fails from too low precision :( ah. that's fixable someday I wonder what Parrot's exp(5) is generating. > say exp(5) - 148.4131591025766 0.000159103 perl -wle 'print exp(5) - 148.4131591025766' 0 ticket? ticket is, like, saying to select a compiler based on the extension of the script file % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot grrrr I think someone changed the float code. % rdice has joined #parrot okay, better: > say exp(5) - 148.4131591025766 0 let's see what else breaks :-) btw I get a failure in t/spec/S02-polymorphic_types/subset-range.t (last test) odd, I don't. and eval_dies_ok doesn't prevent it from dying :( uhm, who fixes svn for me? I added tools/fudge_purity_inspector.pl locally then particle++ commited it r28106 | pmichaud++ | trunk: : [rakudo]: : * Avoid losing precision in floating point constants. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28106 at svn up: svn: Failed to add file 'languages/perl6/tools/fudge_purity_inspector.pl': object of the same name already exists so I deleted it now it says svn: Failed to add file 'languages/perl6/tools/fudge_purity_inspector.pl': object of the same name is already scheduled for addition is svn that broken? or am I? % ruoso has left ruoso!~ruoso@195.23.92.2 moritz: did you svn del? i bet you did svn add before i committed particle: I did but since you commited an identical file, what's the problem? it's not identical i modified the file well, then it could still report a merge conflict anyway, svn del --force fixed it, thanks particle++ how does exp.t perform after r28106 ? "moritz" at 89.13.199.151 pasted "failure in t/spec/S02-polymorphic_types/subset-range.t" (15 lines) at http://nopaste.snit.ch/13182 the problem wasn't exp(), it was that rakudo/parrot was encoding 148.413591025766 as 148.143 pmichaud: I'll check when my parrot build is finished % cotto_work has left cotto_work!~cotto@tide535.microsoft.com re paste, a clean rebuild of parrot and perl6 fixed that the subset-range stuff? yes and the exp() stuff is also fixed okay. I suspect jonathan had to update parrot in order to get it to work properly. yay for fixes ok, that resolves [perl #55350] % Zaba_ has joined #parrot (closed ticket, thanks) pmichaud: Updated Parrot needed due to GC fix. oh, right. That's only core change I did today. % tewk has joined #parrot hey, tewk! how's your tan? Not sure why you'd need to rebuild to get the subset range test to pass. pmichaud: $x.VAR and VAR($x), according to S12, are macros, not just methods/sub calls. had to regen makefile after that range commit Not bad. Meaning we should do 'em in the grammar. Any preferences where we stick them for now, until we have macros? % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru I think .VAR can just be a special case of dotty for now. jonathan: yes, that's fine with me. I wasn't thinking of them as method calls. (it's okay with me if they are done with method calls, but whatever implementation gets us the right semantics.) pmichaud: how are you counting passing spectests? i get: They're not meant to be method calls, and if they were we'd get the wrong semantics. :-) Files=58, Tests=1110, 285 wallclock secs particle: I subtract out the skipped tests. i don't have a list of skipped tests ah, you must be using a different version of Test::Harness OK, going to study for a while, and then back to hack on Rakudo more afterwards. I get: All tests successful (1 subtest UNEXPECTEDLY SUCCEEDED), 42 subtests skipped. Files=1, Tests=44, 4 wallclock secs ( 4.01 cusr + 0.05 csys = 4.06 CPU) (I just did 'make localtest') so, if that was the results for spectest_regression, I'd report 44 - 42 == 2 % cotto-work has joined #parrot you'd think that Microsoft would know how to prevent brownouts you'd be wrong cotto-work: not working on a laptop there? no laptop++ agreed reliable power++ (reliable power)++ * pmichaud wonders about kid power. now I get to go to lunch, wondering if my machines will be up when I get back Install power-generating playgrounds at schools around the country. Kids at play == power for the school (or local community) PerlJam: somebody designed something like that for africa one of those things that spins, with bars on top that you can push or hold on to (that somebody)++ it powers a well pump kids playing = water for community yay. It's still up. % Ivatar has joined #parrot r28107 | pmichaud++ | trunk: : [rakudo]: : * 'make coretest' now runs tests in t/00-parrot, t/01-sanity : * 'make codetest' runs Parrot's coding standards tests : * 'make test' runs coretest and codetest : * 'make fulltest' runs coretest, spectest_regression, and codetest diff: http://www.parrotvm.org/svn/parrot/revision?rev=28107 r28108 | pmichaud++ | trunk: : [rakudo]: : * Fix properties, trailing spaces, c file coda on src/pmc/mutablevar.pmc diff: http://www.parrotvm.org/svn/parrot/revision?rev=28108 r28109 | coke++ | trunk: : : > The attached patch fix a warning in optimized build in : > src/exceptions.c:Parrot_print_backtrace by moving a variable : > declaration inside the conditional branch that uses it. : Courtesy NotFound++ via RT#55296 diff: http://www.parrotvm.org/svn/parrot/revision?rev=28109 file_metadata.t fails on languages/perl6/t/pmc/mutablevar.t moritz: is that fixed in 28108? pmichaud: no oh, guess not. r28110 | pmichaud++ | trunk: : [rakudo]: : * Fix properties on perl6/t/pmc/mutablevar.t (moritz++) diff: http://www.parrotvm.org/svn/parrot/revision?rev=28110 % Zaba has joined #parrot % ruoso has joined #parrot r28111 | coke++ | trunk: : : Eliminate a magic constant and replace it with a magic define. : (RT#45953) diff: http://www.parrotvm.org/svn/parrot/revision?rev=28111 % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru r28112 | particle++ | trunk: : [rakudo] improve some error messages, and improve maintainability a bit diff: http://www.parrotvm.org/svn/parrot/revision?rev=28112 back % davidfetter has left davidfetter!~davidfett@start.fetter.org % davidfetter has joined #parrot r28113 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] flesh out algorithm a little more, add points 5, 6, and 7. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28113 r28114 | jonathan++ | trunk: : [rakudo] Implement VAR($x) and .VAR macros. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28114 % cjfields has joined #parrot % purl has left purl!purl@sentient.life % purl has joined #parrot r28115 | jonathan++ | trunk: : [rakudo] Make readonly return false when not set - scalars are normally rw - and implement rw defined in terms of ro. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28115 elsif $key eq 'VAR' { 888 $past := PAST::Op.new( 889 :inline("%r = new 'MutableVAR', %0\n"), 890 :node($/) 891 ); 892 } looks like it's missing a %0 child. nope, gets unshifted on further up. It's in dotty, which is a postfix. Though it was also wrong anyway - we can't just do something like this. As VAR is meant to hand back what it was given unless it was a scalar. Fixing that now. r28116 | jonathan++ | trunk: : [rakudo] Make VAR and .VAR just give what was given to them, unless it's a scalar, per S12. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28116 r28117 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] improve init function, deinit, comments. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28117 % cjfields_ has joined #parrot % cjfields has left cjfields!~cjfields@cjfields.igb.uiuc.edu % Zaba_ has joined #parrot % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru * jonathan tries to cram the S12 roles section fully into his head ENOSPACE Tell me about it. it is probably quite literally a Big Fucking Rock S12 roles are just too big for me :-) It's not so bad. There's some tricky bits. oh, I thought that about a lot of things when reading the synopses. Like S09. :-) But there's a decent bit of stuff that just de-sugars to simpler things. yes. Hmm. So on generics, I wish it was a tad more explicit But it seems role Pet[::Petfood = TableScraps] { The = here is just defining a default value. It's just parameter syntax, but types, not variables. Well, default type. role Pet[::ID;; $tag] { # one type param, one variable param $myobj does Array[:of(Int)](@initial) So from this, I would assume that in the square brackets, you can put a list of type parameters, if you have many. And a list of variable parameters in the parens afterwards. This only shows it for mix-in style stuff. Put I assume you can class Dog does Pet[:PetFood(PedigreeChum)] { ... } s/Put/But/ % cjfields_ has left cjfields_!~cjfields@cjfields.igb.uiuc.edu % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot % Zaba_ has joined #parrot jonathan: can you make rw = !ro instead of using ?: or, does RETURN (INTVAL !ro); work? that probably doesn't work, but i don't know that macro well enough % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru Pretty sure that kinda thing doesn't work. rw = !ro should work though I'm also not sure if I should be returning a PMC rather than an INTVAL - one of Bool::True or Bool::False Yeah, coulda done in that way...just like to be explicit about exactly what will be returned. probably should be a Bool Yeah pmichaud: readonly and rw methods on a Scalar should return a Bool? I don't know for sure. :-) % Zaba has joined #parrot i think those methods are asking a boolean question you should get a boolean answer normally I'd say yes, but :a is the same as :a(1) and :!a is the same as :a(0) so for some things our "boolean" interpretations are still 1 and 0 perhaps that should be :!a is same as :a(Bool::False) or, :a(+Bool::False) well, :a(+Bool::False) is the same as :a(0) I'm pretty sure the synopsis explicitly says 1 or 0 for colonpair syntax. that gets rid of some magic numbers from the spec % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru yes. I started to switch colonpairs to use Bool::True and Bool::False, but then noticed the synopsis said 1 and 0 It wasn't what I'd have guessed, but generally I just implement what the spec says. :-) re same here. :-) i just got a talk slot at YAPC::NA (not on parrot) anybody know where i can find some crash space at this late date? % japhb has left japhb!~geoff@76-191-190-8.dsl.static.sonic.net there are still rooms at YAPC::NA a message just went out about that. what mailing list aren't i on? * davidfetter didn't get that i haven't heard any yapc news http://conferences.mongueurs.net/yn2008/news/198 I have the yapc news in my RSS aggregator (Google Reader) % sjansen has joined #parrot the parrot hack thing is the weekend before, right? davidfetter: yes. what are you talking about? DBI-Link and the stuff inside pg the crew and i are doing to make it better it's written in pl/perlU nice we will have many beers. :) mmm...beers * davidfetter hopes to hit up some of that chicago music scene % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru r28118 | jonathan++ | trunk: : [rakudo] Make us able to use role names as type constraints again. We may have to revisit whether we want to register a Role proto at some point in the future; this gets things fixed for now. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28118 pmichaud: ping pong metaclass question % Zaba has joined #parrot .WHAT ? .WHAT is, like, like blessed i was using Protomaker to make generic parrot objects available to perl6. doesn't work now -- is there an easy way to make P6Object do the same? yes ummmmm. :) try P6metaobject.register('MyClass') should i create the class w/ new_class as well? or leave as is if the class already exists, don't (re-)create it with new_class ok if you want to use new_class to create the class, that works though. did you see my blog post about P6object ? yes, particle pointed me to that worked with it til i got confused. :) $P0.'register'('Apache::RequestRec') gives Null PMC access in get_string() at runtime/parrot/library/P6object.pir:306 gotta run soon, but i can do some more snooping later tonight. % japhb has joined #parrot .HOW? * jhorwitz wonders .WHY? .WHO is on :first? is Apache::RequestRec a Parrot class? r28119 | pmichaud++ | trunk: : [rakudo]: : * Bring the grammar a bit closer to STD.pm by using <.eat_terminator> diff: http://www.parrotvm.org/svn/parrot/revision?rev=28119 and is it 'Apache::RequestRec' or ['Apache';'RequestRec'] ? pmichaud: ['Apache'; 'RequestRec'] is ahhhhh i read that it handles :: for me, but obviously this has clued you into something... well, P6object splits '::' for the protoobjects, but it doesn't rename the class. however, you can do $P0 = get_class ['Apache';'RequestRec'] $P1.'register'($P0) i.e., pass the class object itself instead of a string name representation % Zaba_ has joined #parrot but I should get 'Apache::RequestRec' to dtrt and split if needed. I wonder if using P6object would now make it easy to get PGE::* and PAST::* to be ['PGE';*] and ['PAST';*] instead of the string constant names. that would make for a very nice consistency. :-) closer, but now i get: Method 'item' not found for invocant of class 'Apache;RequestRec' while evaling the perl6 % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru I should probably add that to P6object i have to run -- msg me if you have something else for me to try. thanks pm. % rdice has left rdice!~richard_d@CPE0014bfafbbd5-CM0011e6ecf48a.cpe.net.cable.rogers.com pmichaud: If you're doing some inline PIR, is there a way to say %r is an integer register? % davidfetter has left davidfetter!~davidfett@start.fetter.org r28120 | jonathan++ | trunk: : [rakudo] We should only initialize scalars with protoobjects; if it has a type that is a role or a constraint, it's just a Failure object. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28120 % teknomunk has joined #parrot jonathan: yes, by passing a signature. :inline(" %r = add %0, %1 "), :signature("III") %r, %0, and %1 are all I registers (the 0 and 1 arguments get coerced to I registers if they aren't already.) % iblechbot has left iblechbot!~iblechbot@14.16-dial.augustakom.net (%r becomes a unique I register that is the result of the node.) Ah! Neato, I'll go tidy my last patch. :-) even better, we can add 'isa' to the set of pirops then it can be :pirop(isa) and you don't need the :inline at all. or the casts. Where'd I do that? In PCT somewhere? yes, in src/PAST/Compiler.pir add an entry for piropsig['isa'] = 'IP~' hmmm...I did PAST::Op.new( :inline(" %r = isa %0, 'P6protoobject'\n"), :signature('IP'), $type ), And got Method 'signature' not found for invocant of class 'PAST::Op' % Limbic_Region has joined #parrot oh, maybe it's piropsig :piropsig that's probably it. pmichaud - unless things have changed yesterday, parrot fails to build on Win32/MinGW due to PGE and Win32/Cygwin hangs forever in the rakudo spectest "parrot fails to build due to PGE" usually means you need to check out a fresh copy of Parrot. nope I.e., it's not a PGE bug, it's just that PGE is the first parrot program that runs in the build. I always do a realclean Limbic_Region: that loop is a known issue with utf8 parsing not realclean. Heh, piropsig ain't it either. :-) fresh checkout. why would I need to do a fresh checkout? we don't know. but realclean isn't real clean for some reason. that makes little sense since I don't do anything other than build parrot and run the rakudo test suite Limbic_Region: 'make fulltest' for a non-hanging test thanks mortiz Limbic_Region: agreed. But you're not the first person to report this problem, and in each case a fresh checkout has solved it (where 'make realclean' didn't). Limbic_Region: tools/update_passing_test_data.pl circumvents the problem by deleting the looping test files :/ * Limbic_Region debates isolating what isn't cleaned in realclean that makes a fresh checkout work Limbic_Region: check out a fresh copy, and do a diff between the tainted but real-cleaned and the fresh checkout yeah, I knew what you meant perhapse delete all .svn dirs first I am just debating on if I feel like doing so is all % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru jonathan: oh, I was wrong. I don't have signatures on :inline nodes yet however, you can do :pirop('isa IP~') (no inline) Just added it to PAST compiler and that will generate an 'isa $Ix, $Px, *' instruction or you can add it to PAST compiler :-) morning everybody * bacek impressed by backlog jonathan: the problem with my $type_pir := " %r = new %0, %1\n setprop %r, 'type', %2\n"; is that it won't work if we switch $?PERL6SCALAR back to 'Failure' % Zaba has joined #parrot pmichaud: Hmm. True. r28121 | jonathan++ | trunk: : [pct] Add isa to known pirops. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28121 Are we wanting to do that, now we've got mutables passing all tests anyway? that's not necessarily bad, though, if we're very comfortable that Perl6Scalar will be permanent. we can leave it that way for now. Maybe fix the comments at the top so that we know what else to change . I suggest let's leave it in for a week or two and see how it goes with Perl6Scalar. okay. And yes, comment is good idea. Will do now. Limbic_Region: pmichaud: the realclean/new co problem is something in c2str.pl ah yes, of course. i suspect that if you delete all_cstring.str it may be cleaned up not sure if realclean deletes that file i can't find 'all_cstring' in Makefile anywhere r28122 | jonathan++ | trunk: : [rakudo] Tidy up use of isa thanks to adding isa as a known pirop in PCT. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28122 OK, I think I'll probably leave it there for today and write some report to post. sure. Didn't get much done on roles, as I'd hoped. oh, for future reference, in piropsig we keep the pirops in alphabetical order. Oh. Oops. :-) (but I'll fix that later, if you don't) "Free karma!" r28123 | jonathan++ | trunk: : [pct] Patch for the preservation of alphabetical ordering of pirops. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28123 Free karma indeed. karma jonathan jonathan has karma of 630 r28124 | particle++ | trunk: : [rakudo] improve eval_lives_ok and eval_dies_ok, courtesy of Ronald Schmidt diff: http://www.parrotvm.org/svn/parrot/revision?rev=28124 Geck, I'm not even four figures yet. % Zaba_ has joined #parrot here's a nice competition: karma particle particle has karma of 1343 karma pmichaud pmichaud has karma of 1345 karma c c has karma of 6957 :) ooh i'd better do some commits! % davidfetter has joined #parrot particle, go for it! :) % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru But there is some successor of "C Language" that helps 'c' a lot :) anybody got examples of using parrot's stuff to replace lexx/yacc ? as in, replacing it in an extant code base * bacek wanders can we generate something else from PAST/POST but PIR. % Zaba has joined #parrot davidfetter: do you want to parse stuff with PGE? moritz, well, i have fuzzy, inchoate ideas about removing some of postgres's grammatical pain using parrot somehow "fuzzy, inchoate" is perhaps generous ;) % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru davidfetter: but PGE doesn't emit C atm, so you'd have a parrot depency hrm that would be a sticking point btw I think that SQL is intrinsically evil to parse it's just not structured, really meh i think part of its evilness is the hardness from tools like yacc to see more than one step forward but why? LR[1] = LR[k] for k > 1 % IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk % gryphon has left gryphon!~gryphon@dsl-209-221-185-54.zipcon.net davidfetter, I'm looking at doing something like that with PHP's grammar, but I'm currently at the "wtf have I gotten myself into" stage oh, that can last a long time. beer helps. I'm thinking it will. but not at work cotto-work, i don't think SQL's grammar is quite as insane as php's for one thing, there's EBNF for it up through SQL:2008 pmichaud: How hard is / have you pondered parsing adverbs for operators? for 1..100 :by(2) -> { } picture a dim bulb flickering over my head so 'by' would be the adverb for '..' ? davidfetter: Yes. % cxreg has left cxreg!~count@62.f9.1243.static.theplanet.com I've pondered adverbs only a little bit. I think we need protoregexes to make that work reliably. OK, but a protoregex dependency rather than an LTM one. That's a nice thing. :-) % IllvilJa has joined #parrot I've been doing a lot of thinking about ltm in my "off" time -- I think it might not be as difficult as initially feared. A lot of Perl 6 stuff keeps ending up this way... :-) actually, might not even need protoregex, now that I look at it some more. but do need some introspection on operator precedence parsing (which we also need to get $a = 1, $b = 2 to parse properly) looks like STD.pm might be incomplete there, though. I think STD.pm is missing some stuff relating to does also. And property declaration my int property blah; could be. I know it was missing trait_auxiliary:does % davidfetter has left davidfetter!~davidfett@start.fetter.org (at least I _think_ it was trait_auxiliary. I'll have to check the irc logs.) If you can confirm it is a trait_auxiliary, I'll do the grammar clean-ups etc next time around. % davidfetter has joined #parrot in RT, how do I indicate when one ticket relies on a previous one? "Links" thanks! % peepsalot has left peepsalot!~peepsalot@bwext.kpimdp.com jonathan: (does) http://irclog.perlgeek.de/perl6/2008-05-31#i_321390 audreyt pmichaud: "does" is parsed as trait_auxiliary, mentioned around S12:1436 (or did I miss what you were asking about?) and TimToady confirmed that a bit later, although I forget where. afk, family stuff. % Ivatar has left Ivatar!~graham@tu055.demon.co.uk % cxreg has joined #parrot protoregexes protoregex? * davidfetter tries to picture, "the ascent of regex" maybe with a kleene star on the left side... % gmansi has left gmansi!~gmansi@190.55.35.246 jonathan: I'm not sure I believe in property declarations anymore, given that I'd forgotten about them myself... TimToady: OK, well, I'll leave it to you to decide whether to drop it from S12 or not. Were my ramblings about parametric types along the right lines? (A bit earlier in the backscroll) jonathan, does one of your presentations explain protoregexes? I think only the [] can officially be part of the role name iirc the () was only an initial value cotto-work: No, because I haven't come up with a good way to explain them yet... :-) TimToady: Can you have multiple type parameters inside the []? yes And can you say class Dog does Pet[:PetFood(PedigreeChum), :WalkingMechanism(Leash)) { ... } it's just a regular signature on some level erm the name "protoregex" makes them sound like undefined regexes, somewhat like "protoobjects" are undefined objects With the missing ] in there class Dog does Pet[:PetFood(PedigreeChum), :WalkingMechanism(Leash)] { ... } if it matches the signature, sure % gmansi has joined #parrot OK, but you are only allowed one value in the (...)? has to be something coercable, I think Sorry, I'm not sure what you mean by that. % tetragon has joined #parrot From S12: role Pet[::ID;; $tag] { Here $tag is just a variable. How do we initialize this? Pet[MyId, $mytag] just like extra args in a multi call it's the same ;; OK, or as named Pet[:ID(MyId), :tag($mytag)] I guess And should I read: "A role applied with does may be parameterized with an initializer in parentheses, but only if the role supplies exactly one attribute to the mixin class" To mean that you can only use the does RoleName($x) form for runtime mix-in? Or you can do it with a class to, subject to the role having just one attribute? s/to/too/ at the time I intended it only for run time And now? ;-) my brane isn't working well enough right now to decide anything critical :/ OK. I think you've given me enough to hurt my head over implementing. :-) Are you planning for "but" to stay pretty much as is? er, how is it? :) $a = 0 but answer(42) is basically $a = ($anonymous = 0) does answer(42); for 0 but True style things. yes, "but" implies a copy, which is done by your assignment there except we might need to force clone on non-value types OK, makes sense. Alright, thanks for the clarifications. I'll leave off your branes a bit. :-) And should probably sleep sometime soonish... % slightlyoff has joined #parrot % slightlyoff has left #parrot % sjansen has left sjansen!~sjansen@64.207.31.107 * japhb ponders why it is that Perl 6 is attracting mathematician zombies .... Progress report: http://use.perl.org/~JonathanWorthington/journal/36600 And now I will sleep. Night, all. 'night, jonathan % bacek_ has joined #parrot % clunker9_ has joined #parrot % clunker3 has left clunker3!~IRC@procura.xs4all.nl % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot % AndyA has left AndyA!~andy@82.152.157.85 % clunker9_ is now known as clunker3 % AndyA has joined #parrot % cotto-work has left cotto-work!~cotto@tide534.microsoft.com % japhb has left japhb!~geoff@208.201.228.107 % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.mn.comcast.net % Andy has left Andy!~AndyL@host3130.follett.com % jhorwitz has left jhorwitz!~chatzilla@96.245.16.45 % japhb has joined #parrot r28125 | pmichaud++ | trunk: : [rakudo]: : * Improved List.reduce (bacek++) : * Patch courtesy Vasily Chekalkin , RT#55368 diff: http://www.parrotvm.org/svn/parrot/revision?rev=28125 % Limbic_Region has left Limbic_Region!~Limbic_Re@c-68-49-236-220.hsd1.md.comcast.net % TiMBuS has joined #parrot % ank has left ank!~ank@ppp121-44-210-24.lns1.hba1.internode.on.net % ank has joined #parrot summon pmichaud spell failed... failed... looks funny what's up? The Canadian Dollar no shizzle, purl particle: huh? msg pmichaud 'Is it good idea to reimplement List.(map, grep, reduce, first,...) as free function which accepts Sub and Iterator. % purl has left purl!purl@sentient.life it will making of lazy lists more easy. particle: almost Lunch time. Hrm... decided to try running "make spectest", and a segfault fell out tetragon: which test? And it actually has SIGSEGV in the crash report, instead of the usual SIGBUS particle: I think it came from t/spec/S12-class/basic.t that's unexpected The trace I have when I tried to reproduce it is different to the one that popped out during make I'll paste my reproduction attempt It had a double free "tetragon" at 69.196.141.26 pasted "Fun with attempting to reproduce a spectest crash" (163 lines) at http://nopaste.snit.ch/13184 tetragon: you're running svn head, i assume? Yes, current as of a couple hours ago r28124 bacek_: how exactly do you mean? * bacek_ sub 'sort' :method .return '!sort' tetragon: definitely want a parrotbug filed on that % Patterner has joined #parrot * tetragon is busy hooking gdb up to the crash sub 'sort' method .param pmc e .return '!sort'(e, self.'iterator'()) And it's now sitting in malloc_error_break s/sort/grep/ why would we need a separate function for that? say (1..5).grep { $_ % 2) tetragon: if you run ../../parrot perl6.pbc t/spec/... do you get that segfault? ...or is perl6 there a link? naw, can't be link or alias i.e., why can't 'sort' return the generator directly? that's more what I would expect. er, grep. (since sort isn't really lazy) > say (1..5).grep({ $_ % 2}) "tetragon" at 69.196.141.26 pasted "Yay, gdb at the breakpoint suggested by Apple libc" (49 lines) at http://nopaste.snit.ch/13185 Method 'grep' not found for invocant of class 'Range' particle: No crash tetragon: after Parrot_exit! i'm the only one who's seen that before * particle hugs tetragon finally, that bug has been reproduced! ...and not on win32+msvc pmichaud: i agreed that 'grep' should return generator. This time on OS X 10.5/ppc bacek_: I'll have to think about it a bit. bacek_: it's a reasonable approach, but I'm not quite sure that it's "right" particle: So new ticket, or is there an existing one to append to? isn't List the lazy one? tetragon: new ticket please * tetragon now wonders which test it was that actually crashed during spectest pmichaud: software isn't cut from stone :) We can change it later actually '!grep' will return generator. So every other classes can get benefit from calling it r28126 | coke++ | trunk: : From RT#55358 : > The static function get_op is declared but not defined in several : > files, because the declaration is unconditionally generated in : > Ops2c/Utils.pm : NotFound++, this silences a few warnings when building with --cage. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28126 particle: You want anything from the gdb session I have open? tetragon: sorry, i'm too distracted right now, preparing for soccer List is lazy, yes, but so is Range yes, range is lazy too List and Range need to get off their asses and find jobs you're one to talk, Whiteknight :-P ...:( :) pmichaud: Range will for sure have a generator * Whiteknight got hit where it hurts. He'll shut up now Range needs a generator that works from either end % Patterner has left Patterner!~Psyche@e177230180.adsl.alicedsl.de % Psyche^ has joined #parrot % Psyche^ is now known as Patterner % purl has joined #parrot r28127 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] some work on flags, state, resume. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28127 The crash I was trying to find was in t/spec/S12-class/inheritance-class-methods.t particle: +1 for Range geneartor. reverse (1..10) should be lazy "tetragon" at 69.196.141.26 pasted "spectest crash I was trying to manually trigger" (161 lines) at http://nopaste.snit.ch/13186 % Maddingu1 has joined #parrot % bgeron_ has joined #parrot % skv_ has joined #parrot % mj41_ has joined #parrot % askie_ has joined #parrot % jq- has joined #parrot % Psyche^ has joined #parrot % pmichaud_ has joined #parrot % jonathan_ has joined #parrot % cosimo_ has joined #parrot % d4l3k_ has joined #parrot % cognominal_ has joined #parrot % Patterner has left Patterner!~Psyche@e177227215.adsl.alicedsl.de % AndyA has left AndyA!~andy@82.152.157.85 % ruoso has left ruoso!~ruoso@81.84.157.134 % cosimo has left cosimo!~cosimo@pat-tdc.opera.com % skv has left skv!~skv_@87.242.97.68 % ilbot2 has left ilbot2!moritz@faui2k3.org % mj41 has left mj41!~chatzilla@pc-jurosz.ro.vutbr.cz % TonyC has left TonyC!~tony@202-154-105-237.people.net.au % cognominal has left cognominal!~cognomina@82.67.232.89 % bgeron has left bgeron!bgeron@toad.stack.nl % pmichaud has left pmichaud!pmichaud@feather.perl6.nl % dalek has left dalek!dalek@feather.perl6.nl % Maddingue has left Maddingue!~Maddingue@profane.mongueurs.net % wolverian has left wolverian!wolverian@193.200.132.135 % leo has left leo!lt@193.200.132.135 % jonathan has left jonathan!jonathan@193.200.132.135 % askie has left askie!~askie@81.171.100.208 % cizra has left cizra!~cizra@gw.tdng.ttu.ee % vany has left vany!~vany@shustrik.urh.ru % integral has left integral!bsmith@adsl-212-20-244-147.lumison.co.uk % jq has left jq!~jquelin@merlin.mongueurs.net % Psyche^ is now known as Patterner % ilbot2 has joined #parrot % d4l3k_ is now known as dalek % AndyA has joined #parrot % wolverian has joined #parrot % leo has joined #parrot % integral has joined #parrot % ruoso has joined #parrot % cizra has joined #parrot % vany has joined #parrot actually, a range really *is* a generator of sorts % DietCoke has joined #parrot if I want to test something in the jit core on feather, is TEST_PROG_ARGS=-j prove t/path/to/file.t sufficient? (do I have to specifically config with --jitcapable? (doing that now just in case.)) pmichaud_: +1. 1 % tetragon has left tetragon!~seneca@69-196-141-26.dsl.teksavvy.com % Zaba_ has joined #parrot If anyone ever talks about PHP's design, they're wrong. There isn't one. % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru "Repeating 5 year old mistakes" there wasn't an excuse for this mess ever, much less 5 years ago of course, it'll totally be worth it once I can load a CPAN module from PHP php? purl, php? php is really badly designed or swahili for "child molestor" or or Philippine pesos or the best or PHP: Hardly Programming or brought to you by the teletubbies or proof there is no god or http://xrl.us/t6wx or more modular than perl or the little transgender brother of perl or a WOMBAT or http://tnx.nl/php or easy or or was better when it was a templating system or blamed on Rasmus Lerdorf A bit biased one might think. purl, php is also taking the worse-is-better approach to dazzling new depths i'm sorry, but that's too long, cotto_home stupid bot Up yours, too, bruddah! dumb bot. Go away or I'll replace you with a small and useless factoid! * Auzon enjoys poking purl haha, the "swahili for 'child molestor'" one had me actually laughing out loud do what you know how to, I guess (in response to the bot) :) purl, php is also taking worse-is-better to dazzling new depths that is too long, cotto_home grrr purl, php is also taking worse-is-better to new depths that is too long, cotto_home purl, nvb? no idea, cotto_home purl, nvb is not very bright OK, cotto_home. purl, purl is nvb ...but purl is a buggy piece of shit or a flooterbuck or a douchebag or an autonomic handjob system, well beyond the need for human intervention or a retard or a trannybot or a fuckslut in GumbyBRAIN's mind or going alone. or almost an anagram of Donaudampfschiffahrtskapitaensmuetzenkordel or a perv or an auto-triage bot or a she or a smartass or the sixth beatle. or http://github.com\/dagbrown\/flooterbuck\/... purl, purl is also nvb okay, cotto_home. purl, purl? rumour has it i am a buggy piece of shit or a flooterbuck or a douchebag or an autonomic handjob system, well beyond the need for human intervention or a retard or a trannybot or a fuckslut in GumbyBRAIN's mind or going alone. or almost an anagram of Donaudampfschiffahrtskapitaensmuetzenkordel or a perv or an auto-triage bot or a she or a smartass or the sixth beatle. or http://github.com\\\ or nvb If I can't make it do what I want, I can at least make it insult itself. % Ademan_ has joined #parrot % Ademan has left Ademan!~dan@h-68-167-207-98.snfccasy.dynamic.covad.net purl, auzon? you are, like, primarily working on rakudo test suite, yes It must've learned that on its own. I am doing stuff purl, cotto_home? somebody said cotto_home was doing stuff purl, karma? karma is just as useful as the Perlmonks XP :-) or at http://ircxory.jrock.us/ % tetragon has joined #parrot purl, forget me Auzon: I forgot me purl, I am working on the Perl 6 Test Suite that lives in the Pugs repo ...but auzon is primarily working on rakudo test suite, yes?... no purl, I am working on the Perl 6 Test Suite that lives in the Pugs repo okay, Auzon. purl, auzon? you are working on the Perl 6 Test Suite that lives in the Pugs repo purl, Auzon? i think Auzon is working on the Perl 6 Test Suite that lives in the Pugs repo purl, I am also watches a task file at pugs/t/TASKS okay, Auzon. purl, auzon? you are working on the Perl 6 Test Suite that lives in the Pugs repo or watches a task file at pugs/t/TASKS cognominal_, vany: New OpenGL portability patch for you two up on RT #55228 y'all are seriously making me work for it, aren't ya? % dcat_ has left dcat_!~dirtycat@ip70-188-6-59.rn.hr.cox.net japhb: Just so you know, normal OS X boxes don't have /usr/include/GL tetragon: yes, I know. er ... and? But they can have a number of different sets in /Developer/SDKs (which are normally only used if you're targetting a specific release) yep, noticed that from cognominal's hell japhb: I looked at the ticket and you mentioned that you weren't sent /usr/include/GL tetragon: Ah, gotcha, now I see where you're going My Macintel has the headers for 10.3.9 % Whiteknight has left Whiteknight!~nobody@c-71-230-33-251.hsd1.pa.comcast.net (And the 10.4 that is actually in use) Apparently, cognominal's box *did* have a /usr/include/GL, which included headers for non-core GL stuff, like GLEW. And GLEW was what was killing his configure. You can't count on any mac having headers in /opt/local. The ones that do obtained them via (Darwin|Mac)ports What I saw in the ticket was /opt/local/include, so getting it through darwinports I'm not even searching /opt/local/ ... should I? Is that "polite" on Mac OS X? Right now, I'm only doing /usr/include/GL/, /usr/local/include/GL/, and the Mac OS X Frameworks directories Oh, and the Win32 $ENV{INCLUDE} path I normally don't deal with anything there as I work from source (found fink and darwinports too annoying) * japhb wonders what crazy moon directories Solaris will want to use .... tetragon: nodnod % tetragon has left tetragon!~seneca@216.126.67.44 (searching) ... why not just search those paths that have already been identified as potential search paths? you shouldn't be duplicating that logic in your little slice of config. DietCoke: explain, please. kid51 told me back in the early days that Configure currently has no way to track locations of where system headers can be found. [OT] Oh ZOT! No wonder this $day_job sanity checking code is always returning false ... I forgot to add an "is sane" case. Sheesh. Been debugging that for half an hour ... % davidfetter has left davidfetter!~davidfett@start.fetter.org % cotto-work has joined #parrot % teknomunk has left teknomunk!~teknomunk@r74-195-239-111.stl1cmta01.stwrok.ok.dh.suddenlink.net japhb: perhaps it should? though if it's currently being stored anywhere, no need to refactor it to make your stuff work. not being. (but I know, for example, darwin is already probing for fink/darwinports) DietCoke: yes, I believe there are some probes for non-standard locations (as with, as you say, fink/darwinports) ... but no probing or storage of "standard" locations. % bacek has left bacek!~bacek@123-243-38-218.tpgi.com.au In general, I think the config system needs some refactoring, but it's a task I'm putting off for the moment .... For one thing, I need some more experience with the various pain points before I'm qualified to do a refactoring that doesn't just trade one set of problems for another. (Though I admit that the 'make clean' versus 'make realclean' issue is really starting to bug me.) well, if you're dabbling in config, that's unfortunately to be expected at the moment. though it seems a reconfig should be fine in most cases. Oh, I always do 'make realclean' anyway (old habit) ... it's the problem reports from other people who just did a 'make clean' after I committed an OpenGL change and something didn't work. It's a bug in the config/build process design, not a bug in my code per se, but I get the bug anyway. ah, that. I addressed some of that in my response to you a few days ago. I mean, if even someone who has been at it as long as you sometimes trips over that, there's a problem. oh, definitely. DietCoke: yep, that's what I was referring to. I'm leaving your ticket open at the moment while I ruminate on what I want to do about it. (How much do I want to bite off) most of my rant belongs in a new ticket(s). =-) true If you feel like opening a new ticket with the rant, and resolving the old one, that's fine by me. Just let me know what the new RT # is (or add me as a watcher or whatever the RT equivalent is) Because even if someone else does the work, it's still going to have a major effect on the OpenGL stuff. % bacek has joined #parrot % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru % Patterner has left Patterner!~Psyche@e177227215.adsl.alicedsl.de % Psyche^ has joined #parrot % Psyche^ is now known as Patterner % uniejo has joined #parrot % Maddingu1 is now known as Maddingue % Zaba has joined #parrot