% bacek_ has left bacek_!~bacek@mcas-151.usr.optusnet.com.au % iblechbot has joined #parrot % masak has joined #parrot % ruoso has left ruoso!~ruoso@a81-84-27-88.cpe.netcabo.pt % ruoso has joined #parrot % contingencyplan has left contingencyplan!~contingen@cpe-76-186-27-146.tx.res.rr.com pmichaud++, jonathan++ # no failures in 'make spectest_regression' after rakoo merge % donaldh has joined #parrot % barney has joined #parrot % wknight8111 has joined #parrot % Zaba has joined #parrot % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru moritz++ # giving us spectest_regression % ejs has joined #parrot % ejs has left ejs!~ejs@80.91.178.218 % ejs has joined #parrot Looks like Plumhead is broken, PCT changes??? doing binary search * jonathan airport % IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk % wknight8111 has left wknight8111!~nobody@c-71-230-33-251.hsd1.pa.comcast.net % wknight8111 has joined #parrot % davidfetter has joined #parrot % iblechbot has left iblechbot!~iblechbot@111.16-dial.augustakom.net r27740 | allison++ | pdd25cx: : [pdd25cx] Bringing the pdd25cx branch up-to-date with trunk r27739. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27740 r27741 | bernhard++ | trunk: : [Plumhead PCT] : ' diff: http://www.parrotvm.org/svn/parrot/revision?rev=27741 * barney was late in doing homework, that is reading DEPRECATED.pod anyone alive? I have question about "dark magick" of "infix:=" in rakudo. How it actually should work? r27742 | bernhard++ | trunk: : [Plumhead] : Set up the superglobals $_GET and $_POST for all three variants. : PHC: Keep the sigil $ in the variable name. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27742 jonathan++ pmichaud++ r27743 | bernhard++ | trunk: : #31633: [TODO] Allow Languages to be self contained : Move more cleaning up of languages Makefiles to : from the root Makefile to languages/Makefile diff: http://www.parrotvm.org/svn/parrot/revision?rev=27743 r27744 | bernhard++ | trunk: : [Config] : Generate languages/lazy-k/Makefile diff: http://www.parrotvm.org/svn/parrot/revision?rev=27744 pong 11:17 anyone alive? I have question about "dark magick" of "infix:=" in rakudo. How it actually should work? what did you want to know? pmichaud, "dark magick" how Mapping should be created from List * bacek tries to forget 'Hash'.... here's my current guess: (1) infix:= will generate an assign opcode pmichaud, few days ago you pointed to 'hash' function in RT. And I'm very interesting in how this function should be invoked (2) the assign opcode for Hash containers will call the hash() function on its right operand prior to doing the assignment pmichaud, why not create few :multi(List,_), :multi(Mapping,_), etc? you mean for infix:= ? pmichaud, yes well, because I really think that for hll interop that I'd prefer it to be in the assign opcode also, note that it depends on the type of the container, so it would be :multi(Array,_) :multi(Hash,_) etc. next question: how opcodes handled in PGE? E.g. 'copy' is actually syntax sugar for method morph. Or I totally wrong in my assumptions? PGE? or PCT? PCT (PGE does regexes, PCT is the PIR code generator) 'copy' does more than morph the parrot alphabet soup is copious :) and it exists from when we didn't have a 'copy' opcode most opcodes are handled by creating a PAST::Op node with a :pirop('whatever') attribute pmichaud, hmm... So I'm totally wrong... 'copy' replaces a destination PMC with a new value (matching type of the source). It uses morph to do that, yes. pmichaud, I still don't understand... currently we generates 'copy' opcode. It handled in parrot and should invoke morph. If we will generates 'assign' pirop how we will handle it in rakudo ? rakudo will generate an assign op instead of copy 'copy' just exists to work around the problems with assign but since we'll be able to fix assign for container types, we can use assign (and that probably makes more sense anyway) % efunneko has joined #parrot I just updated parrot from SVN and it fails make now - expected? pmichaud, sorry... I still don't understand how we can provide implementation of 'assign'... make: *** No rule to make target `src/pmc/super.pmc', needed by `src/pmc/super.dump'. Stop. efunneko, make realclean; perl Configure.pl bacek: Thanks bacek: let's consider a statement like %x = ('a', 1, 'b', 2) %x is a Hash, the rhs is a List when we say "%x is a Hash', what we're really saying is that it's a variable with a "Hash" property set (just a sec, making breakfast for kids) %x just means "%x does Associative" which means in a perfect world that assignment would call ('a', 1, 'b', 2).Positional or it would walk a list of types that can be assigned to %x like Hash and Assocciative Oh my poor brain... It's explosing... :) (uhm, s/Positional/Associate/ in my second line) right, what moritz says :-) bacek: if a class holds a Foo method it can be automatically used for a coercion to type Foo r27745 | bernhard++ | trunk: : #31633: [TODO] Allow Languages to be self contained : Move remaining cleanup of languages makefiles : from root Makefile to languages/Makefile diff: http://www.parrotvm.org/svn/parrot/revision?rev=27745 moritz, o... So, if I'll add 'List' method to Mapping it will be magi^W automatically used for coercion? moritz, no. swap List and Mapping :) bacek: I don't know if that's implemented yet, but that's the plan on Perl 6 language level okay, back pmichaud, ok :) since %x has a "Hash" property on it, the assign opcode for Hash will coerce the right-hand operand into something that does the associative role er, Associative % davidfetter has left davidfetter!~chatzilla@start.fetter.org % slightlyoff has joined #parrot what if an assignment would need to coerce from A to C as in? rumour has it as in is he eating shrooms before the calls and A has a method B, and B has a method C does it do the coercion over B? % slightlyoff has left #parrot or does it simply fail? I don't know how Perl 6 specs that yet purl, forget as in moritz: I forgot as in * bacek just want working version of %h = (a=>1, b=>2)... bacek: well, I should soon have %h = { a=>1, b=>2 } working bacek: sometimes things aren't as simple as they seem ;) I guess (a => 1, b => 2) is a list of two Pairs, not four scalars? moritz: correct. so the list has to check if all items are pairs ??? is an assignment like my %h = (1, 2) allowed? I think something like ( a p5=> 1, b p5=> 2 ) is supposed to be four scalars moritz: I believe that's allowed, yes pmichaud: then these two cases have to be distinguished it means %h = { 1 => 2 }; * pmichaud re-checks S02. I mean in List.Associative that's why I don't think of it as List.Associative but rather as hash(...) although List.Associative could simply call hash(...) on itself. but that would stop my Blurb %h = (1, 2); from working when Blurb does Associative but not isa Hash? or is that one of the things you don't worry about yet? mostly don't worry about it yet ok From S02: There is no such thing as a hash list context. Assignment to a hash produces an ordinary list context. You may assign alternating keys and values just as in Perl 5. You may also assign lists of Pair objects, in which case each pair provides a key and a value. You may, in fact, mix the two forms, as long as the pairs come when a key is expected. If you wish to supply a Pair as a key, you must compose an outer Pair in which the key is the inner ah, that makes sense so basically a hash composer iterates a list, if an element is a Pair, then it uses that for the key+value, if it's not a Pair, then the element is the key and the next element is the value % tetragon has left tetragon!~seneca@216.126.67.44 my %h = ('a', 1, b => 2, 'c', 3, :d(4) ); pmichaud, and this is looks like behaviour of 'hash' function bacek: right. r27746 | bernhard++ | trunk: : Layout and alphabetic ordering in : languages/Makefile. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27746 (On the side note: can anyone review my patch from http://rt.perl.org/rt3/Ticket/Display.html?id=54642) it is 'map' impl. Not lazy at the moment. bacek: fwiw, patches for rakudo should probably go to rakudobug@perl.org instead of parrotbug@perl.org :-) (not a big deal -- I can switch the queue.) pmichaud, ok it would probably be better to use an iterator on the list than to count elements * bacek still tries to remember many acronyms. probably don't need (or want) + mapres = 'list'(mapres) (I could be wrong about that.) pmichaud, what about { $_, $_*2}? According to S29 we should flatten result unless we have @@ context if S29 says we flatten result, then yes * pmichaud checks S29 The actual return value is a multislice containing one slice per map iteration. In most contexts these slices are flattened into a single list. I think that means it's up to the outer context to do the flattening hmm... I understand all words. But probably don't understand phrase I don't think 'map' does it. pmichaud, ok. It will made life easier. of course, we don't implement slices (or multislices) yet pmichaud, let's think about bright future :) from S09: Conjecture: since @@x and @x are really the same object, any array can keep track of its dimensionality, and it only matters how you use it in contexts that care about the dimensionality: ho! So I remove flattering from map. right. * pmichaud likes that word "flattering" to mean "make flat" pmichaud, and it should be iter = new 'Iterator', self, ... English is my third language :) After Russian and C++ :) And where's perl in the list? % gryphon has joined #parrot bacek: (iter) yes. Tene, perl is little bit hard to pronounce. try Lingua::Perligata And it is little bit more complex to understand fully Than C++? pmichaud, it is Perl::Lingua::Perligata :) I stand corrected. Tene, yes (we talking about perl6 :) Heh. I found C++ quite hard to grasp, for example dealing with special casing templates and stuff pmichaud, shame on me... moritz, yes. C++ is very hard language to understand and use. okay, kids are off to school pmichaud, my already sleep :) afk for a bit BTW, can I use 'nopaste' bot? And how? chromatic++ # applying the patch I slept through! nopaste? i heard nopaste was 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 go to the first url. Pick parrot from the dropdown. done. or use tools/dev/nopaste.pl I had to drop 2 of mine at school on the way in this morning. 'nopaste' is gone... http://pastebin.org/37746 This is 'map' after pmichaud comments Debolaz, magick :) bacek: you still have 'map' in the TODO list "bacek" at 202.7.166.163 pasted "Reworked 'map'" (67 lines) at http://nopaste.snit.ch/13045 bacek, tab completion :) moritz, yes. This patch is not commited :) % uniejo has left uniejo!~uniejo@langebro.adapt.dk Debolaz, oops. r27747 | bernhard++ | trunk: : Remove trailing whitespace diff: http://www.parrotvm.org/svn/parrot/revision?rev=27747 % efunneko has left efunneko!cc65ac12@67.207.141.120 % uniejo has joined #parrot purl, good bot :) thanks bacek :) purl, S29? rumour has it S29 is http://svn.pugscode.org/pugs/docs/Perl6/Spec/Functions.pod 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 purl, PDD19? bugger all, i dunno, bacek purl, bad bot... :( It would be helpful if patches to add featurs also removed them from the TODO list. (not required, just helpful) % ambs has joined #parrot DietCoke, as you wish :) pdd19 is https://svn.perl.org/parrot/trunk/docs/pdds/draft/pdd19_pir.pod DietCoke's url is at http://xrl.us/bkvda DietCoke: give me a feature to add and I'll make sure to remove it from TODO. DietCoke, I'm just not 100% sure about patch quality... basically, anything that makes it easier to get the patch applied. same thing if you're deleting a deprecation, remove it from DEPRECATED.pod, etc. Tene, you need something to do ? =-) DietCoke, I know where is pdds. Maybe teach purl about it? I just did. pdd19? pdd19 is https://svn.perl.org/parrot/trunk/docs/pdds/draft/pdd19_pir.pod purl, PDD19? hmmm... PDD19 is https://svn.perl.org/parrot/trunk/docs/pdds/draft/pdd19_pir.pod you feed the bot with "foo is bar" statements. DietCoke, ok. It is 'publicly' available? except it doesn't work when you address the bot. bacek: so, which patch should I review/apply? DietCoke: yes, I'm having trouble deciding what to work on. me too. :-) pmichaud, http://rt.perl.org/rt3/Ticket/Display.html?id=54642#txn-410602 bacek's url is at http://xrl.us/bkvdp pmichaud, I just attached version with iter to initial ticket bacek: got it, looking now. (will take a couple of minutes because I also need to rebuild parrot) do we have any tests for 'map'? spectests So, what's the policy on the pile of different ways to call each function in the spectests? r27748 | pmichaud++ | rakoo: : Remove rakoo branch (merged back into trunk). diff: http://www.parrotvm.org/svn/parrot/revision?rev=27748 pmichaud, s/spectest/S29-list/map.t just doesn't compile.. tene: if you're bored, the typeids branch needs to be sync'd with trunk. =-) They require protoregexes support. we may need to add some skip markers Should the 'map' and 'grep' and 'sort' et al tests all also be testing invocant syntax, for example? (I had one small issue with the merge that would have taken more than 5m for me to figure out.) Tene: good question. I don't have an obvious answer. % ambs has left ambs!~ambs@255.92.54.77.rev.vodafone.pt I think we need to test that all of the invocant syntaxes work, but I don't think we need to test every case in every syntax I'd like to have two files, one mainly checking syntax, one mainly checking semantics I think perhaps one file with two sections i.e., check the various syntaxes at the top, then check semantics below this also helps because any 'skips' would tend to congregate near the top * moritz doesn't trust fudging enough for that % vany has joined #parrot some of the unicode test doen't even compile when fudged then we need to fix fudge :-) because of illegal characters in comments that PCT can't seem to handle at the moment noting, of course, that rakudo requires the --encoding=utf8 option to be able to read unicode source. so should we stuff that into harness? (unicode in rakudo is RT#54448) (stuff into harness) I don't know yet. we could certainly have the harness supply --encoding=utf8, but that would slow down testing. For spectests I don't know if slow testing is too much of an issue yet. bacek: looks like one of your perl6 patches ended up in the parrot queue. (moving it over.) pmichaud: I know that unicode is a pending issue, I just wanted to express my mistrust against fudge ;) moritz: ;-) % cognominal has left cognominal!~cognomina@82.67.232.89 DietCoke, yeah... pmichaud already told me correct mail address for rakudo's patches... so far I like fudge a whole lot which is all in all a very cool tool, but in my experience it's hard to work with really? I've found it to be incredibly easy. what do you find difficult about it? probably just missing practise or bad luck (like the unicode stuff) somehow I just didn't get those damn tests to pass but perhaps I wasn't rigorous enough with fudging part of it might be the inter-dependencies of the various test % iblechbot has joined #parrot * bacek discovered very strange bug in parrot... "bacek" at 202.7.166.163 pasted "map tests and bug" (16 lines) at http://nopaste.snit.ch/13046 % cognominal has joined #parrot If comment out 'my @result=...' and uncomment it inside block I got too few arguments passed (0) - 1 params expected % ambs has joined #parrot That's... interesting. r27749 | bernhard++ | trunk: : [config] : Add the pugs targets in languages/makefile diff: http://www.parrotvm.org/svn/parrot/revision?rev=27749 bacek: where does a trace -4 show you that's happening? ./parrot -t 4 perl6.pbc foo.pl % rdice has joined #parrot "bacek" at 202.7.166.163 pasted "map trace" (141 lines) at http://nopaste.snit.ch/13047 "pmichaud" at 76.183.97.54 pasted "rakudo has trouble parsing this" (43 lines) at http://nopaste.snit.ch/13048 rakudo is giving me a parse error there -- anyone see anything obvious that I'm overlooking? for some reason rakudo wants a semicolon at the end of the first block and it appears to have something to do with the =pod because commenting out or removing the =begin pod...=end pod section causes it to parse properly could anybody please give me an author account for rakudo.org? I'd like to blog about "make spectest_regression" ;-) sorry guys... I have to go to bed... It's midnight here and I have $otherjob on tomorrow good night bacek ;) moritz, see ya moritz: Andy is the person... but I was going to mention spectest_regression in my journal post this morning however, it might be better if you do it :-) pmichaud: I don't mind either way - what would you prefer? Andy? i guess Andy is the man with the feathered broom or mailto:andy@petdance.com or AIM:petdance or OK cat-xeger is BACK or trying to get Sun Studio 12 installed so I can lint lint lint. Yes? Andy: could you give me an author's account for rakudo.org? you have something to post? Andy: presumably, unless pmichaud does it what is your account that you have there already? I'm assuming you've posted replies on rakudo or perlbuzz Unless pmichaud does what? Andy: post about 'make spectest_regression' If it's a one-time deal, let him do it. ok If you're gonna post regularly, I'll go dig into permissions. moritz: going to be blogging regularly, I hope? pmichaud: don't know yet okay, I'll do it for this time if you're not sure. What did you want to say about it? I was just going to point out that it is incredibly useful and neat if you want to write up some text then I'll post that text that would be a big help ok "guest post" :-) What markup can/should I use? HTML? anything is fine -- I'll clean it up. I tend to stick with straight text. ok bacek: rakudo doesn't seem to recognize { $_ * 2 } as being a closure that takes a parameter pmichaud, are you speaking of parrotblog? cognominal: for this one I'm speaking more of use.perl and rakudo.org since it's rakudo-specific ho, I forgot this one. I read direcly parrotsketch from my irc log, thx for reminding me and jonathan on useperl, I think bacek: and, in this case, it probably / possibly shouldn't take a parameter, since { $_ * 2 } doesn't imply one. oh wait, yes it does * pmichaud re-configures his mental model. * pmichaud re-checks S04. moritz: a welcome task, if you don't trust fudge, is writing tests for it we need to update rakudo to recognize $_ as a parameter in a bare closure. pmichaud: it already does % tedkat has joined #parrot > my $f = { $_ * 2 }; say $f.arity particle: it's not the implementation I don't trust ;). But I'll keep it on my mental TODO list nonetheless 1 Tene: oh, you're right. hrm. 'make testtest' seems to trigger parse failures in rakudo aha the problem is that the { $_ * 2 } isn't being turned into a closure with C % barney has left barney!~bernhard@p549A3992.dip0.t-ipconnect.de Can you show me an example of what the PAST should look like? I think the PAST is correct here -- I'm guessing PCT forgot a newclosure op pmichaud: http://perlpunks.de/paste/show/483581fa.7f04.33d # blog post for rakudo.org oh, I forgot to s{}{}g no problem looks great, thanks! you're welcome * DietCoke wonders why "make -j" kills his OS X box, but "make -j 3" works fine. is there a way to see how many simultaneous processes -j with no args will run? DietCoke: 'make -j' will not limit the number of simultaneous processes. so it will use as many as it can. moritz: now published (http://www.rakudo.org/) % ambs has left ambs!~ambs@255.92.54.77.rev.vodafone.pt but, now I have a question the existing "make spectest" target only does a limited subset of tests in the spec/ repository as well the idea being to only run those tests that are "useful" so, aren't "make spectest" and "make spectest_regression" doing close to the same thing, only with different lists? in fact they are the difference is what you think should work, and what you wish to work soon. :) % uniejo has left uniejo!~uniejo@langebro.adapt.dk 'make spectest' has a list in config/makefiles/root.in yes, I agree. I'm wondering if we could change --regression-only in the harness to instead take a file argument and then the list that is in 'make spectest' could just be a different file while 'make spectest_regression' has a somewhat different list in t/passing_spec instead of being in the Makefile sounds sane it's far easier to edit files in t/ than to update the Makefile right % teknomunk has joined #parrot well, there should be at least option for just running everything there... as our 3+ more commits showed (that fixed whitespaces in Makefile) and in my mind that's "spectest" TimToady: that's fine too so "make spectest" runs without any file-limiting option "make spectest-regression" runs the known passing tests do we even need the third target? "make spectest-candidates" runs the tests we'd like to have work spectest-workonme :) ah hehe ;) spectest-todo pmichaud: they are all "todo" ;) spectest-todosoon except the ones that are todone spectest-next pmichaud: is it OK to use Getopt::Long in t/harness? it's okay by me, as long as we can expect everyone to have it (which I'm pretty sure we can) % Theory has joined #parrot pmichaud: if so I'd offer to refactor t/harness to include an option like '--whitelist-file' or '--filter-by-file' --tests-from-file, perhaps? but yes, a refactor is what I'd like (and for it to be "not me" to do it :-) --test-list ? For short. NotFound: that option is only used in Makefile, so it doesn't have to be short ;) I'm not too picky about the option name at this point :-) moritz: It also does not need to be long ;) % teknomunk has left teknomunk!~teknomunk@r74-195-239-111.stl1cmta01.stwrok.ok.dh.suddenlink.net * particle prefers we drop the 'spec' in 'spectest' and just call it 'test' I don't. spectest_regression is already in the main branch? "make test" is my minimum standard for submitting changes to rakudo. NotFound: yes pmichaud: eventually, that'll be the same as spectest yes, but that "eventually" is a long way from now. especially if "make spectest" comes to mean "run all spectests" in particular, I think that "make test" should continue to work even if someone doesn't have svn. pmichaud: agree. I might entertain the notion of "make coretest", though. make sometest ;) and then "make test" will run coretests, as well as spectest-regression as long as svn and/or t/spec are available. and "make coretest" runs the 00-parrot, 01-sanity, etc. tests i can dig it I hate gnu make, for dropping the nice message: "Don't know how to make love" I think gnu make was starting to have depression/performance issues from that :-) and we'll have spectest, spectest_regression, spectest_raw, spectest_fudge ; spectest points to one of those latter three "No rule to make target love" sucks. make spectest_regression pass in a C++ build. Files=31, Tests=564 also, I have a personal preference for hyphen over underscore, but that's just me i.e., "make spectest-fudge" as opposed to "make spectest_fudge" We can use camel case... is perl, after all ;) fine with me, one less left-pinky underscores sometimes get lost in text. By the way, will be nice to have a test about C++ reserverd words used as identifiers. NotFound: that's an excellent idea writing one could be a bit tricky. pmichaud: but not easy to implement, I think. % IllvilJa has joined #parrot don't we have one? i thought we did particle: If we have, it's not working well. check t/codingstd and t/distro it's possible it's not enabled, due to many failures Well, this week we have one: me :D however, perhaps it's just an idea that's come up before, but hasn't been done spectest_regression takes 144s on my unoptimized build yes, I think/hope protoregexes in PGE will help that is that next? it's high on the list * particle needs dev tasks right now I'm looking at getting { $_ * 2 } to properly invoke newclosure particle: do they have to be rakudo tasks? I may need a :blocktype('closure') or :closure flag on PAST::Block (you have at least one ticket assigned to you waiting for your feedback on a patch.) DietCoke: i already have a list of non-rakudo tasks... yep (as of 2 days ago.) many of the implementations in src/classes/*.pir could use a review DietCoke: currently, (and since last weekend) i get Failed 46/583 test programs. 209/11197 subtests failed. so something's funky with my env, modules, or parrot for example, I think that the "increment" and "decrement" methods in Bool.pir should be named differently but rakudo tests work fine, so i suspect it's not parrot it would be good to eliminate the calls to "get_hash" and "get_array" that still exist (e.g., in Tcl) pmichaud: can we get 'writing classes/methods/builtins in perl 6' done before yapc? yes. If you want to convert Digest::MD5 to be object-based that would be a big help. in fact ok, we need tickets for this stuff. this is a good list. oh, never mind. :-) want me to submit some tickets? that'd be lovely tickets++ if tcl is the only place that uses it, go ahead and break tcl. i forgot about all those things already tcl uses pct? for eval, is that right? expr, whatever tcl is not explicitly using pct at all. get_hash and get_array are in PGE ah (er, "were") for Match objects. moritz: i can verify that your new rakudo target works on osx/x86 m4, pheme, and tcl all appear to still be using get_array % lichtkind has joined #parrot get_hash appears to be safe to remove. pmichaud: your nominated :) yes, I'll probably do get_hash a bit later. DietCoke: thanks right now I need lunch, though. Didn't have much dinner last night. afk for a short while barney is working his way through DEPRECATED.pod i don't know if get_array made it in there, though particle: tickets submitted -- I'll send more as I think of them. pmichaud++ yes, get_array is in DEPRECATED.pod ok, then he should see it hrmm: No such attribute '%!properties' i wonder where that bug comes from... % IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk that appears in the output of S29-str/length.t plain scary - I just did an 'svn diff' and it found nothing, after changing the files for about half an hour... then I found out the shell I was using was on a remote machine ;) moritz: send yourself a patch ;) NotFound: no, I should just use the right shell ;) http://perlpunks.de/paste/show/48359273.5597.2fc # refactor t/harness this patch refactors t/harness as discussed, and makes 'spectest' test the whole thing 'spectest-workonme' or whatever we'll call it isn't implemented becasue I don't know what test you want to work on ;) That happened to me one time, with a shell and a ftp, creating a file in one and not seeing in the oter. 40 minutes later, I noted they were not in the same machine. c:\usr\local\parrot\release\languages\perl6>..\..\parrot perl6.pbc my $x = undef; No such attribute '%!properties' Nest thing I do was to put a big /etc/issue message in all machines :D my prompt actually includes the hostname in red, and still get confused ;) moritz: at work I have the hostname in the prompt... unfortunatelly we have a lot of machines called: samename.city % ejs_ has joined #parrot And in the prompt all says: samename % davidfetter has joined #parrot d'oh, that's bad I just check several times before doing shutdown at work time... and stil... X-) alias shutdown="echo don't do this!" ;-) % ejs has left ejs!~ejs@nat.ironport.com Shutdown is nice...was worse one time I pressed the buttom "Power down blade" in the web interface of a different Blade Center X-) ;) "System failure"... the system adminsitrator is a part of the system, after all. alias shutdown='hostname; uptime; echo "are you sure?"' echo "o rly?" echo "I don't trust you"; exit ok, patch sent to p6i moritz: the thing that helped a co-worker of mine that had that problem was putting the hostname of each system in a different color creating gnome-terminal profiles that start ssh to different machines and all have different backgrounds is helpful If you have 200 systems, you need a painter eye. "Wait, is this prompt lilac, or lavendar?" Tene: sounds like a good idea. So far it didn't cause any real trouble for me so I didn't find the motivation to find out how to do it ;) % kj has joined #parrot % ejs_ has left ejs_!~ejs@80.91.178.218 NotFound: well, that could be a problem yes % askie has left askie!~askie@81.171.100.208 % askie has joined #parrot % davidfetter has left davidfetter!~chatzilla@start.fetter.org % masak has left masak!~user@130.238.45.242 % davidfetter has joined #parrot moritz: on the spectest_regression Makefile target, what's the purpose of the final "t/spec" argument? oh, I see pmichaud: the directory to recurse the tests-from-file doesn't specify the leading t/spec ...but if we do tests-from-file, do we recurse? we recurse always now okay. so in tests-from-file I could say, e.g., "S12-class" and it would recurse into that directory? i.e., into t/spec/S12-class/* ? no oh. then I don't understand "recurse". wait, I think I wasn't very clear any directories that are passed in @ARGV are recursed into but file names in 'tests-from-file' need to be explicit, no wildcards here make ; make clean ; make make: *** No rule to make target `src/call_list.txt', needed by `src/nci.c'. Stop. is tests-from-file a list of tests to be run, or is it a filter to be applied to the directories given on the command line? it's a filter which is kinda sub-optimal no, that's not too bad. We could in theory treat it as glob patterns I just never thought of it as anything else than a filter having it as a filter so that we could specify a directory would be cool. :-) that's essentially what Parrot's t/harness does with files from the command line but this is great for now. improving the filter can come later :-) indeed what I learned yesterday and today is that parrot hacking can be fun, even if I know next to nothing about PIR indeed you should blog about that, too :-) or maybe I'll just include that quote in my post moritz: I have learned just the minimal pir needed to write tiny test programs. moritz++ # patch applied in r27750, thanks! NotFound: I'm eagerly awaiting the time when we can write builtins in Perl 6 itself, because then I can help directly with the implemenation r27750 | pmichaud++ | trunk: : [rakudo]: : * Refactor t/harness a bit to provide a --tests-from-file option we're working on that too : * Refactor makefile to use --tests-from-file : * Patch courtesy Moritz Lenz moritz++ diff: http://www.parrotvm.org/svn/parrot/revision?rev=27750 hello everybody Hello Dr. Nick! actually I'm wondering how useful a shared prelude/runtime could be (shared between the different implementations, that is) kj! one problem would be the need to use only the common subset of all supported syntaxes which would be kinda painful :/ hi tene. I saw you're a parrotblogger too now :-) I guess. ...parrotblog? did I miss an article? ooh, kj! hi there. hi particle :-) pmichaud: tene's a member of parrotblog contributors kj: some recent changes to pge/pct affect your tutorial no articles... yet ;-) particle: yes, I think I mailed pmichaud about that; not sure if I did; let me check. (mailed) yes I haven't had a chance to reply yet % davidfetter has left davidfetter!~chatzilla@start.fetter.org having a real job is bad for spare time... I'm torn between writing email, writing journal posts, and writing code. pmichaud: do the first two pmichaud: no worries. answering my email should be low priority you did quite enough code yesterday to keep me busy reading :) particle: oh, and we should do our abc update soon, too :-) yes, should do that. but I guess that maybe should wait for the pge / optable refactor although that won't change much can it wait? i mean, timeframe-wise can what wait? what kind of abc update is that? (what's the purpose?) kj: first, modify mk_language_shell.pl to include an opp I want to update abc to match the other language tools, and also build a second tutorial using it as an example. second, and third, what pmichaud said kj: I get >3 months of PTO at my real job. :) pmichaud: I also mailed you about that (the new tutorial) :-) kj: oh, that was the mail I received was there another about the squaak tutorial? yeah I think; lemme check yay, "use v6-alpha;" is officially gone from the synopses * DietCoke smacks tene. DietCoke: we're hiring. % leo has joined #parrot masak++ # making TimToady deprecate v6-alpha or was that masak? too many people around to remeber... ;) well, considering that the commit message says who it was... % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.mn.comcast.net % Theory has joined #parrot you and your crazy actually logging what you're doing... commit messages are my blog :) % itz_ has left itz_!~itz@62.3.198.45 pmichaud: can't find the other email. Never mind that for now. If I find it I'll get back to you okay, great. * particle considers a svn-commit-log-to-twitter interface * pmichaud considers slapping particle around the room. particle: you mentioned some changes to pge/pct that affected the squaak tutorial. any thing in particular? % itz has joined #parrot and <.foo> kj: mind you, i haven't read the tutorial yet, so i'm not sure exactly what ok; I already used <. > instead of I think yes, I think that's correct note that if something was already zero-length it doesn't matter which is used if the tutorial were in a file instead of on the net, i think i'd read it sooner not the shortcut for assigning matches to custom names i.e., and <.before ...> are effectively the same particle: I could convert to POD... can the tutorial be committed to the repo, so it can be kept up-to-date? we can post it at parrotcode.org same for <.panic: ...> and but I'd like to maintain only one... (that's hard already) it'd be nice if multiple people could maintain only one yeah. So shall I convert to pod and add it to docs/pct/tutorial/ ? either there or put it in languages/squaak/docs with reference to it in docs/ ok % grim_fandango has joined #parrot kj++ I'd like to update squaak anyway as soon as PCT has support for returning stuff I suppose I should try converting tcl to pct and see what breaks. :| kj: that should be coming very soon now. I have to think about allison's exception changes a bit, though. cotto mentioned that grokking NQP syntax was rather difficult (while reading the tutorial) I'm not really sure what to do about that; it's Perl 6 code after all. kj: I'd try to get specific examples. if $foo { ... } is pretty standard. crappity. segfault. % sjansen has joined #parrot Tene: yeah, so that doesn't need any explanation. Stuff like $( $ ) would.. but that's already explained inthe tutorial. would it be helpful if I came up with specific examples? cotto_work: very helpful. I'll post something to the list by this evening, then excellent. ooh. that sounds like a FAQ :-) "particle" at 24.19.3.148 pasted "tene: currently non-working lines in pugs' CGI.pm for rakudo" (76 lines) at http://nopaste.snit.ch/13049 I put the tutorial on the blog in the public domain; would there be a problem if the pod-ified version would be stored in the parrot repos. ? if there is, you can simply place the copy in the repo under "the same terms as perl itself" particle++ (backlogging) NotFound: Are you still having problems with call_list.txt? japhb: yeah. And it wasn't generated by 'perl Configure.pl'? Apparently make clean delete it but make does not recreate. moritz: should I remove the license section that each Episode has? NotFound: 'make' doesn't recreate anything created by Configure.pl. It just may not delete all of it. kj: don't know japhb: agree, but it does. It's always best to run 'perl Configure.pl' after any variant of 'make clean' NotFound: I'm confused. ENOREFERENT japhb: I misunderstand you. I mean, "make clean" is not usually expected to delete something that plain make can't crate. only 'make realclean' should do that. DietCoke: OK ... then I'm not sure what needs to change. I'm not sure what's broken. What happened? make ; make clean; make --> fails. ok, I can test that. =-) NotFound: yes, I understand that. NotFound: I meant, I'm not sure what to change to make that true, while still having 'realclean' actually delete it. s/true/work/ time for dinner. good night % kj has left kj!~IceChat7@193.1.100.109 ok. doing a realclean, svn up, configure, make, make clean, and make, and will report shortly. make those make -j's, but... Of build-related files, I see call_list.txt in MANIFEST.configure.generated, MANIFEST.generated, and config/gen/makefiles/root.in hi, newbie question, How to develop if trere isn't Apache2::Reload support? err, bad channel, sorry :-( In root.in, it appears in the definition of GEN_SOURCES, which is part of FLUID_FILES_1, which ends up as (one of many) parts of the 'clean' target. So perhaps it should be moved to one of the other 'clean' targets. But which one? Hmmm, I'm thinking it may need to be moved from GEN_SOURCES to STICKY_FILES (the latter is removed by realclean) I think whoever just updated our list of call signatures a few commits ago horked the deps. DietCoke: Can you try that? as this all used to work. DietCoke: That would be me. ah! I did not know that for Parrot 'make clean' was not supposed to affect the stuff generated by 'perl Configure.pl' And obviously, this is the sort of thing that 'make test' doesn't catch. :-) Since I never use 'make clean', always 'make realclean', because of working on WAY too many projects with completely hopeless 'make clean' targets, I didn't notice anything amiss either. Talking about make oddities: how is supposed compilers/imcc/imclexer.c to be regenerated? perl Configure.pl --maintainer; make % ambs has joined #parrot not everyone has lex. this is our compromise. dura lex sed lex But ignoring changes in his sources is a suboptimal solution ;) japhb: what revision removed call_list ? NotFound: better solutions will be considered. =-) ah. 27371. % purl has left purl!purl@sentient.life sorry, was AFK dealing with contractor that just arrived ok. so it's not moved, it's just autogen'd now? enopurl DietCoke: yes. It's generated from pieces, by config::gen::call_list, from config/gen/call_list/*.in And my next patch will make config/gen/call_list/opengl.in generated, then to be pulled in during the generation of call_list.txt. OOC, any reason why this is generated by config and not as part of make? Gen -> Gen -> Gen ah, is that why? to probe at config time for various signature for later inclusion? good enough. OOC? OOC is out of curiousity DietCoke: exactly feed the bot :) I did! i know! memristor? memristor is I hardly KNOW 'er. DietCoke-- #appropriate direction when you're on a diet % purl has joined #parrot er, now that the bot is here... % tedkat has left tedkat!~tedkat@24-119-222-126.cpe.cableone.net ooc? ooc is probably Out of curiosity. or out of commission or out of control or out of cocaine or out of context DietCoke: So in any case, can you try just moving the call_list.txt line in config/gen/makefiles/root.in from GEN_SOURCES to STICKY_FILES? hrmm, should STICKY_FILES be renamed to CONFIG_GENERATED_FILES for clarity? particle: +1 on that idea particle: there's a TODO for you. enjoy. =-) It's the name discussion day? what should we rename NotFound for clarity? :P ENOTFOUND Found ETOOMANYJOKES METOO Nice changelog entry, Debian: "* Don't build-depend on packages with a -1 debian revision." There's deep wisdom there. * particle wishes for svn -j up yah, svn is slow on winders. SVN doesn't exactly fly anywhere. (compared to an os x/86 box on the same network.) I recall clkao ranting about how SVK was (at least in the beginning) significantly faster when he replaced a lot of crappy SVN C code with less sucky Perl code. EOOPS pmichaud: ping % Ivatar has joined #parrot aha. it looks like Failure doesn't have a %!properties attribute i don't quite understand p6meta.'register'('Undef', 'parent'=>'Any', 'name'=>'Failure') in src/classes/Undef.pir % gryphon has left gryphon!~gryphon@dsl-209-221-185-54.zipcon.net * ambs feelks like slaping DietCoke particle: did you mean to send that to parrotbug? the cage ticket about makefile? yes. it went to the main list. =-) oh! thanks. np % gryphon has joined #parrot DietCoke, I can't find your 'single *' particle: pong 'my $x = undef;' causes problems now particle: yes, I saw that. Want me to (1) fix it or (2) explain how to fix it? seems Failure is missing %!properties or something ambs: looks like it got edited out. basically most of the second paragraph. 2 would be nice, but i'm far from understanding p6meta i fear it's not that hard, actually. care to explain p6meta by way of writing a blog post? "you keep saying that word. I don't think it means what you think it means." the line you posted says: "create a protoobject and metaclass for the existing 'Undef' class. Make sure that 'Undef' has all of the methods of 'Any', and call the resulting thing 'Failure') heh actually, I'm already about halfway through the post. fab pmichaud: can you pass a PREG to register for the first arg? in other words, that register line is trying to make Parrot's "Undef" objects act as if they were "Failure" in Perl 6 but, as you note, Undef doesn't have a %!properties attribute, so we need a real "Failure" class thus * pmichaud makes the switch. ok, i wondered about that so, we need a real Failure class also, adding ", 'attr'=>'%!properties' " to that register call results in a segfault right, because we can't add attributes to PMC classes. SEGFAULT is never right. error, sure. "pmichaud" at 76.183.97.54 pasted "revised Failure" (6 lines) at http://nopaste.snit.ch/13050 * DietCoke wonders if we can get a machine with better horsepower/bandwidth to serve the wikis. :| or a wiki with less horsepower requrements particle: in the new version we create a class called 'Failure' that has 'Undef' and 'Any' as parent classes pmichaud: i can see that now since 'Any' has a %!properties hash, we get to inherit that. and that belongs in Undef.pir? yes but or should it be renamed Failure.pir and include other types of Failures too (1) it really should be ren.... right (2) change the 'parent'=>'Any' in the last line to be 'parent'=>'Failure' ok do i need a 'name' option when registering Failure, since the name is the same as the class? you don't need a name option here p6meta.'register'('Failure', 'parent'=>'Any', 'name'=>'Failure') p6meta.'register'('Failure', 'parent'=>'Any') Hurm. I wonder if we should move some meta-parrot information out of the repository. better. we don't register Failure new_class does that for us. oh, right pmichaud: we don't know the meaning of the class! register is when we want to take an existing class and make it P6-like. (so what 'new_class' does is create a new class with all of the attributes and things we want, and then register it.) did c forget to update the release_manager_guide.pod ? (phone) particle: so, can you make+test+apply the changes for Failure for me? I'd like to keep writing. yes, will do DietCoke: what 'meta-parrot information' are your referring to? wait, I thought Undef wasn't supposed to be a class documentation about things that aren't parrot itself. Like "how to cut a release" That information is of marginal use in a tarball. (it's convenient at the moment to have it in the repo, of course.) r27751 | coke++ | trunk: : Remove useless listing of 'svn ls'. : Add note about updating this file's list of pending releases to remove the one : you're doing, removing all the ones that have already passed. Since we don't : have version numbers listed anymore, reformat the pending release section : slightly. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27751 correct, Undef is not a class in Perl 6. That's why we're remapping it to "Failure" DietCoke: Then it should stay in the repository, but be deleted by (one of) the script(s) that packages the release, just as DEVELOPING is deleted. but Parrot may still generate objects that are 'Undef', so the 'register' line tells rakudo to try to map those objects to 'Failure' pmichaud: so in Failure.pir, i new_class Failure, and in Undef.pir, i register Undef, correct? no, do both in Failure aha, okay ah, ok I'd like to get rid of Undef.pir wilco because there is no Undef class in Perl 6 smash? i think smash is an Offspring album or Nuno Carvalho. or at mailto:mestre.smash@gmail.com or irc.perl.org's Dr. Nick stopgap that's going away once all mention of Undef is removed, then? Eevee: well, I can't remove Undef from Parrot. japhb: that's an option, but I still don't think it belongs in the repo. Academic until we get closer to 1.0 (meta information) as a general rule, I'm much happier when the meta information is in the same place or storage as the thing it metas DietCoke: (honest question): Why would you not want everything related to managing the source tree, including packaging it, to remain in the source tree? I agree it may not need to appear in a tarball. ah alright Eevee: since we can't remove Undef from Parrot, we can at least try to make Rakudo handle it smartly when it encounters it and eventually %!properties may be going away :-) well.... I guess not. but it'll change a bit. Another good example is Float <=> Num . In Rakudo we have "Num" objects, but Parrot may occasionally throw us a "Float". So we use the register method to try to remap Floats into Nums when we encounter them. thus if I ask a Float what kind of object it is, it says "Num". If I do .isa(Num) on a Float object, it returns true. etc. spectest_regression++ moritz++ moritz should get a lot of karma from spectest_regression :-) I did already karma moritz moritz has karma of 19 new rakudo.org/use.perl.org post: http://use.perl.org/~pmichaud/journal/36494 we need a rakudo.org rss bot r27752 | particle++ | trunk: : [rakudo] Undef failed to inherit from Failure, so it didn't have a '%!properties' attribute. so 'my $x = undef;' didn't work. fixed by adding a Failure class, and registering parrot's Undef as a subclass of Failure (to inherit Failure's attributes). pmichaud++ for the pointers on the new p6meta syntax diff: http://www.parrotvm.org/svn/parrot/revision?rev=27752 haha, 'Eevee' in there looks ridiculous amongst all the full names I didn't have your full name handy -- I'll be happyto change it alex munroe this is a silly handle but it's pervasive to the point that I only really associate my full name with work and people who want my money lol Eevee: I prefer 'Tene' to my full name. Tene: do you prefer it that way in my posts, too? chromatic also prefers his chosen name. I prefer to refer to people however they prefer to be referred to pmichaud: sure. fair enough so, Eevee, leave it as Eevee, or switch it? sure, leave it (this is actually the name of a pokemon, which makes it look sillier. but shh don't tell anyone) Tene: want me to switch your reference to "Tene", also? * moritz wouldn't know such things ;) pmichaud: Sure. I'll parenthesize the name for this week since I referred to you last week as the full name, but from now on I'll use "Tene" I don't actually care enough to ask for it, but I'm entertained by making people do trivial work for me. :) names are important things to me 'Stephen' is my name, but the only people who call me that are my family. that's one of the reasons it took so long to find a name for "Perl 6 on Parrot" besides "perl6" :-) even my sister tends to call me Eevee when I say "pervasive".. % mncharity has joined #parrot % davidfetter has joined #parrot % Zaba_ has joined #parrot If it's any consolation, I knew it was a pokemon name before you said that. yes well I know your name is actually a drink! which I happen to be drinking % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru Eevee: I want your money. * Eevee gives NotFound 100,000 pokedollars your drink is made of my name Pika-pika-chuu Is include/parrot/io.h supposed to be available for embedding? Looks like not, it doesn't even compile. ? pretty sure it's used in compilation in the regular build. % DietCoke is now known as Coke % Coke is now known as DietCoke % iblechbot has left iblechbot!~iblechbot@ppp-62-216-200-22.dynamic.mnet-online.de Adding it in the extern tests fails. r27752 has deleted trunk/languages/perl6/src/classes/Undef.pir but is already in manifest seen chromatic chromatic was last seen on #parrot 1 day and 18 hours ago, saying: You know, the usual. [May 20 20:05:31 2008] Hmmm. His "Design Minutes" post seems to be somewhat mangled. There are a lot of single 'C' characters ... I'm guessing people doing C and the blog engine stripping the unrecognized "tag". or the engine ignoring and the browser discarding japhb: chromatic says something yesterday something about blog mangling, not remember exactly what. Eevee: not in the source code. It's gone before the browser sees it NotFound: ah. thanks maybe not then Oops, looks like particle forgot to update MANIFEST. Off with his head! should be fixed now in r27752 should be fixed now in r2775*3* r27753 | pmichaud++ | trunk: : [rakudo]: : * Update MANIFEST from changes introduced in r27752. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27753 NotFound: we don't do that anymore. We're much more civilized; we inject people with poison or make them inhale deadly gases. PerlJam says that, but all languages eventually become Lisp, and Lisp's fundamental operation (cdr) tends to chop the heads off of things. or something like that. :-) kids are begging me to take them swimming, so bbl PerlJam: we liked better to burn people in the main street. burning people tied to trees works. :-) (outta here.) Pm: But that's torture! (to the tree) PerlJam: the tree is already dead. % sjansen has left sjansen!~sjansen@hq-nat2.gurulabs.com hi all * jonathan is in Sweden now hi jonathan ;) hi jonathan % sjansen has joined #parrot hi jonathan morning everyone evening bacek good afternoon good night, folks :) % ambs has left ambs!~ambs@255.92.54.77.rev.vodafone.pt the core of the earth doesn't stand a chance... we have it surrounded Core dump. i heard core dump was not the problem. the three thousand lines later is the problem. or SEVEN LAYER BURRRRRRRRRRRRRRRRRITO # Failed test 'svn:keywords' languages/perl6/src/classes/Failure.pir A trailing space, looks like. momentito urk. running t/distro/file_metadata.t is quite verbose. ah, buggy local manifest. nevermind % rdice has left rdice!~richard_d@CPE0014bfafbbd5-CM0011e6ecf48a.cpe.net.cable.rogers.com NotFound++ # fixed % iblechbot has joined #parrot r27754 | coke++ | trunk: : [distro] : Fix svn properties on newly added file. : It's ok to do this when the file is added. =-) diff: http://www.parrotvm.org/svn/parrot/revision?rev=27754 pmichaud: I did some initial work on a Mutable PMC. % lichtkind has left lichtkind!~chatzilla@d90-134-91-109.cust.tele2.de pmichaud: Will check it in...I'm going to write a bunch of tests for it, start subclassing it for Scalar, Array, Hash... Plan to write a bunch of PIR tests to see how it works out, make sure it has the right kinda semantics. And do all this in trunk. Then once I think the semantics are right there, and you've reviewed it, I think at that point we make the branch to actually get Rakudo using it. What does the Mutable PMC do that the existing PMCs don't? % Andy has left Andy!~AndyL@host3130.follett.com Mutate? hmmm... Mutate is a better name than negate? is that the basic type for containers? moritz: Yes. wknight8111: We're separating out the notion of container and value in Rakudo, so we can implement various stuff that's just hard/messy/impossible to do otherwise. which is what Perl 6 does, too (Synopsis 2) jonathan: your plan sounds excellent -- great! BTW, it is now almost certain that I'll be at YAPC::EU Sounds like an action movie: "The attack of the mutating containers" pmichaud: Awesome! i heard awesome was not that word good time of a day. it's me about ticket 54520 . It is good when all classes must remember their childs ? vany: sounds bad to me. jonathan, thanks for the explanation! NotFound: and how to solve this problem ? i have think about two ways : all objects allways check their classes and pasrents when instantiates or when class changed to new - class rebuilds all his childs. vany: going from down to up, I suppose. NotFound: in what moment i Class must decide to check it's parents ? vany: not sure, but I think that the ticket is not about adding a new functionality, but a failure in method resolution. NotFound: Ok. I think some more time about it. % iblechbot has left iblechbot!~iblechbot@ppp-62-216-205-68.dynamic.mnet-online.de ticket #54520 is really about a problem with the existing method resolution algorithm -- it doesn't do what it's supposed to. if i understand pdd15 correctly, adding methods to a superclass after an instance is created is supposed to work. pmichaud: i already understand this. i try to solve this % davidfetter has left davidfetter!~chatzilla@start.fetter.org % tetragon has joined #parrot (of course, the problem I give doesn't involve adding methods after class composition or instance creation) pdd15 does talk about the case where an attribute gets added to a class after an instance has been created -- in this case a new class is created, but any existing objects continue to refer to the earlier class. % grim_fandango has left grim_fandango!~matt@bas2-kingston08-1167932179.dsl.bell.ca pmichaud: that info is not obsoleted? no, it's not, until all instances of that version of the class are desroyed in other words, every instance always reflects the attributes of the class that were in existence at the time the instance was created. we don't go back and try to adjust instances to include attributes created later. Right. It's just straightforward GC stuff. An object references the class it was instantiated with. (based on my testing that feature doesn't work yet, but that's what the spec says.) If you change the class, you clone it, and then the new class is bound to the namespace entry, looked up with get_class /* If we've been instantiated already, not allowed. */ if (_class->instantiated) { real_exception(interp, NULL, INVALID_OPERATION, "Modifications to classes are not allowed after instantiation.") } right now in parrot attempting to add an attribute to a class that already has an instance created causes an exception. but this part of the implementation is not following the pdd15 spec -- i.e., it's still "to do" class.pmc, add_attribute pmichaud: Right. You need to clone_pmc it, and then you get a clone of the class with the instantiated flag unset, and you modify that. right. I'm not planning to implement it, although P6object will be smart enough to handle such things when it does get implemented :-) If you want to modify an existing class so it affects existing instances, well, I don't know that PDD15 classes allow that. But you can always subclass it to get what you want. :-) pmichaud: given this and other comments in the code, I think that the "to do" is in the spec. NotFound: I don't understand. The point of the way the object system is, is that we have an interface and as long as you impelment that you can have a class system that works how you like. the source should be updated to add a TODO comment there &| the exception should note that the experted behavior isn't yet implemented particle++ # note the "not yet implemented" particle: Are you saying that PDD15 classes should allow modifications after instantiation, without cloning it and changing the clone instead? jonathan: all particle and I are saying is that the current implementation doesn't follow the spec. we're not advocating a change to the spec. pmichaud: OK, my understanding of the spec was that modifications aren't allowed after instantiation, without doing a clone. pmichaud: maybe I'm wrong, but I thinked that that part of the specification was pending of changes. and the only reason I piped up at all was to try to point out features of the spec to vany jonathan: from pdd15: If the class has already been instantiated, adding a new attribute triggers the creation of a new class, replacing the old class. See L Namespaces, and the Class Registry>. Aha. * particle apologizes for messing up metadata and manifest earlier i'm out of shape :( OK, I *thought* Allison and I had a discussion along the lines of, that went away in favor of the clone approach. Because otherwise add_method somehow has to change the address of the thing invocant...which can't happen. oh, hey, i thought about creating a make target that creates the MANIFEST file based on the files contained in svn ls jonathan: yes, I wondered about that as well when I was playing with it... jonathan: so, I think your approach may be the correct one. pmichaud: I'm pretty sure that we had a discussion along the lines of, "that way won't work, we have to do it the other way" jonathan: makes perfect sense to me. I suspect what has happened, is the new way was added to the spec, and the old way wasn't removed. I didn't see the new way added to the spec. clone_pmc isn't mentioned in there? no. Oops. seen ewilhelm? ewilhelm was last seen on #wxperl 15 hours and 56 minutes ago, saying: hmm, GetPane would be $self? Ok, I suspect that musta slipped through the cracks somehow, or one of Allison and I assumed the other would update the PDD. :-( In which case, sorry for the confusion I've created. no problem. Again, your approach sounds completely sane to me. OK, cool. I'll be happy to prototype the capability in P6object note that if we do need to need different things in Perl 6, like the ability to change the class to affect already instantiated objects, then we can do it. But we have to subclass the Class and Object PMCs. I think I was mixing the behaviour of classes and pmcs. The design was done so we can have languages doing their own behaviours like this, but still have them interoperate. :-) % Ivatar has left Ivatar!~graham@tu055.demon.co.uk pmichaud: Work I put in with Mutable so far is very preliminary, but feel free to take a look and tell me if it's a million miles of what you intended. But I don't expect it to be correct yet. I don't believe we need the ability for after-the-fact-changes in attribute to affect already instantiated objects. We might need it for methods, but I think that's something that could conceivably be handled in core parrot. (my response times may be slow for the rest of the evening... paula is tired from chemo today and I have to get dinner for kids and get them to bed.) % gryphon has left gryphon!~gryphon@dsl-209-221-185-54.zipcon.net I am sleeping now too...got meeting tomorrow morning and lecture to deliver in afternoon so, night from me % kid51 has joined #parrot r27755 | jonathan++ | trunk: : [rakudo] Very preliminary work on starting to get Mutable in place. It compiles, but that's about all. Needs tests, probably lots of fixes and so forth, not to mention cleanups. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27755 % cotto_work has left cotto_work!~cotto@tide534.microsoft.com It's not clear in the spec if a pmc extending other pmc is supposed to inherit his methods automatically. % particle has left particle!~particle@c-24-19-3-148.hsd1.wa.comcast.net NotFound: it is. (it is supposed to inherit methods) at least, that's how I always viewed it. Perhaps you're looking at a different spec. Was "ParTcl" renamed to just "Tcl"? or, a better question is, what is the Tcl compiler called now? wknight8111: looking for me? I am what's up? The birds, the sky, and the ceiling. % particle has joined #parrot svn admin? wknight8111: what about tcl? partcl::tcl rakudo::perl6 er, partcl:tcl::rakudo:perl6 r27756 | jkeenan++ | trunk: : Implementing particle's request for renaming of STICKY_FILES in RT 54666. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27756 I was just wondering what the Tcl implementation is called now Is it still called "ParTcl"? tcl ok yes, partcl in languages/tcl okay, i'm trying to update docs/book, and I want to get all the names right! % sjansen has left sjansen!~sjansen@hq-nat2.gurulabs.com % bacek_ has joined #parrot % bacek_ has left bacek_!~bacek@mcas-151.usr.optusnet.com.au % bacek_ has joined #parrot 'partcl', not "ParTcl" (plz.) % teknomunk has joined #parrot noted. * DietCoke tries to figure out where we test the calling conventions t/op/calling ? (why is that under -op-?) probably because it was 'invoke' at one time. draft of article about P6object : http://www.pmichaud.com/sandbox/post3.txt comments welcome (but right now I have to go to the grocery store, so bbiah) % donaldh has left donaldh!~chatzilla@proxy-sjc-1.cisco.com % donaldh has joined #parrot "new class exists in as a normal Parrot class" % ruoso has left ruoso!~ruoso@a81-84-27-88.cpe.netcabo.pt r27757 | Whiteknight++ | trunk: : [docs] update/improve chapter 2 of docs/book/. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27757 I run gdb on parrot. I try to set a breakpoint on Parrot_process_args; it claims to not know anything about it. any clues? % cognominal has left cognominal!~cognomina@82.67.232.89 r27758 | Whiteknight++ | trunk: : [docs] kill trailing whitespace in docs/book/ch01_overview.pod diff: http://www.parrotvm.org/svn/parrot/revision?rev=27758 % cognominal has joined #parrot % kid51 has left kid51!~jkeen@pool-70-107-5-46.ny325.east.verizon.net how many actual registers of each type are there now? Is it still limited to 32 per type? I seem to remember that the limit was raised, but I dont remember what it was raised to last I heard it was raised to infinity That's what I thought, but I couldn't remember if it was "$P0" registers or actual "P0" I take it also that P31 is not "reserved for spilling" then, and that extra registers don't need to be stored on the user stack? I mean, I know the user stack has been deleted r27759 | coke++ | trunk: : Add test for RT#39844 : mdiep++ for the original bug report. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27759 vany: ping r27760 | coke++ | trunk: : RT #45189 : Remove some deprecated PGE syntax. Modified version of patch originally supplied by chromatic++ with suggestions from pmichaud++. : prove t\library\File_Spec.t , all tests pass. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27760 * DietCoke digs out a 13 year old o'reilly lex & yacc signed by levine himself to try to figure something out. but we want to kill them :) kill whom? lex and yacc anyone here understand them? ask your question, may be I know I don't know enough to formulate the question. =-) (looking at http://rt.perl.org/rt3/Ticket/Display.html?id=46499). I have found "sub_params" in imcc.y and am trying to add in "LINECOMMENT" in the proper location . Bleh, seems like I still need to apply my -arch patch (#52214) for parrot to build formulating the question is the pass to the answer tetragon: That patch would be more like to be applied it if was just in the darwin section. ls config/init/hints/darwin.pm So, how would you suggest having that file only stop a fat build when the -arch flags come from the Perl 5 config * cognominal looks at imcc.y it's all run at config time. but if this is a darwin only thing, the place for it is in the darwin hints, I think. (at least for where you have $^O eq 'darwin') * DietCoke edges closer on his imcc issue! sub_param should allow a comment. but it doesn't. as I said, that's where I am. (ah, I forgot to mention I was in that sub.) yes. I have it working for an initial comment, now trying to get it working for an inter-param comment. ... crap. initial comments always worked. I should be in bed I don't see how comment can be other than in a line by themselves it can't. but .param 's only take up one line. look at the example in t/compilers/imcc/syn/regressions.t (last tiest) I have broken my tree, so I nedd to get at that first :( it seems that I got \h \v \H and \V to compile nope :( r27761 | Whiteknight++ | trunk: : [docs] update the first third of /docs/book/ch03_pir_basics. more updates needed. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27761 % Eevee has left Eevee!~eevee@c-67-160-3-54.hsd1.wa.comcast.net % Eevee has joined #parrot \h \v \H and \V supposedly work in PGE. do you have a case that shows them not working? see Expr.pir::1042 they are missing those aren't implemented in Exp.pir they're in Perl6Regex.pir arf so my rules are wrong Bleh, I have a build getting past the first gcc invocation now with a darwin hints flag munger, but ld is failing (for what would most likely be a reason unrelated to the munger) see also the tests for \h \v \H \v in t/compilers/pge/perl6regex/rx_metachars ld: duplicate symbol _Parrot_exec_rel_addr in src/jit.o and src/exec.o indeed, really go to bed now r27762 | coke++ | trunk: : RT#46499 : Update syntax tests for comments and whitespace before and in the middle of : .param lists diff: http://www.parrotvm.org/svn/parrot/revision?rev=27762 pmichaud: do you know lex/yacc? lex/yacc is my friend when parsing xml and sgml that reminds me, I need to install lex/yacc on my new system purl: perl6 will be your friend :) PerlJam: sorry... RT#45499 looks like it should be trivial to implement if one knows yacc, so I figured I had a shot at getting it to work. =-) anyone else lying about, feel free to have at it. let me look at it what's the number on it? 45499 seems to be pointing to dead space % Zaba has joined #parrot http://rt.perl.org/rt3/Ticket/Display.html?id=46499 my bad. thanks r27763 | coke++ | trunk: : ... Make sure the whitespace we're supposed to be testing is present. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27763 I assume we're patching IMCC and not PIRC? well, i guess there is nothing stopping me from doing both except a few tuits % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru Hrm... exec.c lost the extern on "char **Parrot_exec_rel_addr;" (line 64 of exec.c) since my last successful build (I think it was r27690) % starc has joined #parrot I could tackle #48549 too, now that i have lex/yacc installed! DietCoke, I'll be glad to do a release if I can ever get clearance from work. sorry I can't be more immediately helpful % mdiep_ has joined #parrot % mdiep_ has left #parrot So, r27736 broke building on my box % tetragon has left tetragon!~seneca@69-196-141-26.dsl.teksavvy.com % tetragon has joined #parrot % ank has left ank!~ank@ppp121-44-210-24.lns1.hba1.internode.on.net * tetragon notices that #54602 was updated as she was relocating her system % DietCoke has left DietCoke!~coke@cpe-72-228-52-192.nycap.res.rr.com % Coke has joined #parrot % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.mn.comcast.net % Coke has changed the topic of #parrot to: Parrot 0.6.2 "Reverse Sublimation" Released | http://parrotcode.org/ | 22/666 new/open tix pmichaud: can you look at http://rt.perl.org/rt3/Ticket/Display.html?id=53956 ? I'm not sure what cognomial is asking for, but it looks rakudo related. I think that ticket stems from a misunderstanding of what copy is supposed to do and how types will be implemented in Rakudo. So I'm not even sure how to respond. but I'll come up with something. done. % gmansi has joined #parrot -> z tutorial tutorial is doing exactly what the helper does and exactly what I'm telling you to do pct tutorial? hmmm... pct tutorial is done! See parrotblog.org. nopaste, pct tutorial is http://www.parrotblog.org/2008/03/targeting-parrot-vm.html nopaste, pct tutorial is http://www.parrotblog.org/2008/03/targeting-parrot-vm.html i already had it that way, cotto_home. pct tutorial is http://www.parrotblog.org/2008/03/targeting-parrot-vm.html no, pct tutorial is http://www.parrotblog.org/2008/03/targeting-parrot-vm.html okay, cotto_home. take that, autocomplete pct tutorial? http://www.parrotblog.org/2008/03/targeting-parrot-vm.html % wknight8111 has left wknight8111!~nobody@c-71-230-33-251.hsd1.pa.comcast.net % teknomunk has left teknomunk!~teknomunk@r74-195-239-111.stl1cmta01.stwrok.ok.dh.suddenlink.net % Andy has joined #parrot purl, forget nopaste, pct tutorial pmichaud: I forgot nopaste, pct tutorial thanks can someone please add documentation for commandline_banner and commandline_prompt to compilers/pct/src/PCT/HLLCompiler.pir? % mncharity has left mncharity!~jobsearch@c-98-216-106-134.hsd1.ma.comcast.net % donaldh has left donaldh!~chatzilla@proxy-sjc-1.cisco.com % donaldh has joined #parrot post3.txt++ pmichaud++ % cognominal has left cognominal!~cognomina@82.67.232.89 % Andy has left Andy!~Andy@64.81.227.163 % uniejo has joined #parrot % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot % AndyA has left AndyA!~andy@82.152.157.85 % starc has left starc!~chatzilla@69-12-248-205.dsl.dynamic.humboldt1.com % bsb has joined #parrot % bsb has left bsb!~bsb@sdcarl02.strategicdata.com.au % AndyA has joined #parrot % Ademan has left Ademan!~dan@h-69-3-235-19.snfccasy.dynamic.covad.net